{"version":3,"mappings":"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","names":["runtime","exports","Op","hasOwn","defineProperty","obj","key","desc","undefined","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","value","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","fn","arg","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","prototype","method","genFun","ctor","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","iter","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","methodName","info","pushTryEntry","locs","entry","resetTryEntry","val","object","keys","next","iterable","iteratorMethod","i","skipTempReset","name","rootEntry","rootRecord","exception","handle","loc","caught","hasCatch","hasFinally","type","finallyEntry","afterLoc","finallyLoc","tryLoc","thrown","resultName","nextLoc","module","window","ua","timer","dummySrc","fixRespimg","img","source","sizes","picture","findPictureImgs","imgs","onResize","mq","init","document","eminpx","alwaysCheckWDescriptor","evalId","pf","isSupportTestReady","noop","image","getImgAttr","setImgAttr","removeImgAttr","docElem","types","cfg","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","baseStyle","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","units","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","evt","capture","memoize","cache","input","isSpace","c","evalCSS","regLength","replace","args","index","string","buildStr","css","length","parsedLength","setResolution","candidate","sizesattr","picturefill","opt","elements","plen","options","detectTypeSupport","typeUri","updateMetrics","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","applyBestCandidate","srcSetCandidates","matchingSet","evaluated","ascendingSort","a","b","setSrcToCur","src","set","getCandidateForSrc","candidates","getAllSourceElements","len","srcset","sources","parseSrcset","collectCharacters","regEx","chars","match","pos","inputLength","url","descriptors","currentDescriptor","parseDescriptors","pError","w","d","h","lastChar","intVal","floatVal","tokenize","parseSizes","strValue","regexCssLengthWithUnits","regexCssCalc","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","parseComponentValues","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","isValidNonNegativeSourceSizeValue","s","image2","width2","width1","test","width","sel","media","sourceSizeValue","sourceSizeStr","body","div","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","winningLength","j","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","imageData","dpr","origWidth","supportsType","sets","element","parent","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","extreme","isDomReady","regReady","run","readyState","timerId","debounce","func","wait","timeout","timestamp","later","last","lastClientWidth","factory","lazySizes","Date","lazysizes","lazySizesCfg","prop","lazySizesDefaults","supportPicture","_addEventListener","_getAttribute","addEventListener","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","forEach","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","add","action","triggerEvent","elem","detail","noBubbles","noCancelable","event","updatePolyfill","el","full","polyfill","getCSS","style","getWidth","rAF","running","waiting","firstFns","secondFns","fns","runFns","rafBatch","queue","rAFIt","simple","that","throttle","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","loader","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","e","isVisible","isNestedVisible","elemExpand","outerRect","visible","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","hFac","lazyloadElems","unveilElement","throttledCheckElements","switchLoadingClass","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","handleSources","customMedia","sourceSrcset","lazyUnveil","isAuto","isImg","isPicture","firesLoad","isLoaded","autoSizer","afterScroll","altLoadmodeScrollListner","onload","loadingElements","autosizesElems","sizeElement","getSizeElement","dataAttr","updateElementsSizes","debouncedUpdateElementsSizes","globalInstall","require$$0","regDescriptors","regCssFit","regCssObject","parentFit","parentSel","parentNode","tmpMatch","parentObj","content","ratio","height","displayRatio","imageRatio","retWidth","fitObj","fit","fitElem","regWhite","regSplitSet","regSource","regType","regBgUrlEscape","allowedBackgroundSize","proxyWidth","getBgSize","bgSize","setTypeOrMedia","typeMatch","createPicture","optimumx","proxyLoad","bg","useSrc","clearRefinements","_ref","helper","_ref$attributesToClea","attributesToClear","finalState","attribute","isFacetRefined","facet","ownKeys","enumerableOnly","symbols","sym","_objectSpread","target","_defineProperty","_toPropertyKey","_toPrimitive","_typeof","hint","prim","res","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","createSendEventForFacet","instantSearchInstance","attr","widgetType","sendEventForFacet","_len","_key","facetValue","_args$","eventName","_args$2","additionalData","_args$0$split","_args$0$split2","eventType","eventModifier","unescapeFacetValue","escapeFacetValue","getRefinement","resultsFacets","find","resultsFacet","count","facetDeclaration","nameParts","getFacetRefinement","facetData","refinementKey","_loop","refinement","getRefinements","results","includesQuery","refinements","_state$facetsRefineme","facetsRefinements","_state$facetsExcludes","facetsExcludes","_state$disjunctiveFac","disjunctiveFacetsRefinements","_state$hierarchicalFa","hierarchicalFacetsRefinements","_state$numericRefinem","numericRefinements","_state$tagRefinements","tagRefinements","refinementNames","refinementName","operators","operatorOriginal","operator","valueOrValues","getWidgetAttribute","widget","initOptions","_widget$getWidgetRend","renderState","widgetParams","isFiniteNumber","walkIndex","indexWidget","callback","isIndexWidget","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","range","_ref$start","start","end","_ref$step","step","limitStep","arrayLength","_","current","toArray","withUsage","createDocumentationMessageGenerator","getInitialSearchParameters","acc","connectConfigure","renderFn","unmountFn","isPlainObject","connectorState","refine","searchParameters","actualState","nextSearchParameters","mergeSearchParameters","algoliasearchHelper","renderOptions","_renderState$configur","widgetRenderState","_ref2","_ref3","uiState","createOptionalFilter","attributeName","attributeValue","attributeScore","connectConfigureRelatedItems","hit","matchingPatterns","_ref2$transformSearch","transformSearchParameters","x","optionalFilters","getPropertyByPath","attributeSubValue","makeWidget","connectDynamicWidgets","checkRendering","widgets","_widgetParams$maxValu","maxValuesPerFacet","_widgetParams$facets","facets","_widgetParams$transfo","transformItems","items","fallbackWidget","localWidgets","widgetsToUnmount","widgetsToMount","isMounted","shouldMount","toRemove","curr","_ref4","_results$renderingCon","_results$renderingCon2","_results$renderingCon3","_results$renderingCon4","attributesToRender","connectClearRefinements","_ref$includedAttribut","includedAttributes","_ref$excludedAttribut","excludedAttributes","_ref$transformItems","cachedRefine","cachedCreateURL","createURL","scopedResults","scopedResult","getAttributesToClear","indexHelper","canRefine","attributeToClear","_ref5","uniq","connectCurrentRefinements","_createURL","getItems","accResults","getRefinementsItems","clearRefinement","clearRefinementFromState","indexId","filterFunction","item","normalizeRefinement","allItems","currentItem","getOperatorSymbol","getValue","label","normalizedRefinement","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","DEFAULT_SORT","connectHierarchicalMenu","attributes","_ref$separator","separator","_ref$rootPath","rootPath","_ref$showParentLevel","showParentLevel","_ref$limit","limit","_ref$showMore","showMore","_ref$showMoreLimit","showMoreLimit","_ref$sortBy","sortBy","_attributes","hierarchicalFacetName","sendEvent","toggleShowMore","cachedToggleShowMore","_refine","isShowingMore","createToggleShowMore","getLimit","_prepareFacetValues","facetValues","data","subValue","_this","canToggleShowMore","facetItems","hasExhaustiveItems","path","removeEmptyRefinementsFromUiState","_ref6","withFacetConfiguration","currentMaxValuesPerFacet","nextMaxValuesPerFacet","withMaxValuesPerFacet","indexUiState","connectHitsPerPage","userItems","defaultItems","defaultItem","normalizeItems","hitsPerPage","getWidgetUiState","isCurrentInOptions","_ref7","_excluded2","getStateWithoutPage","rest","normalizeState","getInMemoryCache","cachedHits","cachedState","isEqual","hits","extractHitsFromCachedHits","page","connectInfiniteHits","_ref5$escapeHTML","escapeHTML","_ref5$transformItems","_ref5$cache","showPrevious","bindEvent","getFirstReceivedPage","_state$page","pages","getLastReceivedPage","_state$page2","getShowPrevious","getShowMore","existingState","isFirstPage","currentPageHits","banner","createSendEventForHits","createBindEventForHits","_state$page3","_page","escapeHits","hitsWithAbsolutePosition","addAbsolutePosition","hitsWithAbsolutePositionAndQueryID","addQueryID","transformedHits","hasDynamicWidgets","$$type","hasNoFacets","f","isLastPage","_ref8","stateWithoutPage","TAG_PLACEHOLDER","_ref9","_ref10","widgetSearchParameters","connectInfiniteHitsWithInsights","withInsights","connectMenu","_helper$getHierarchic","_helper$getHierarchic2","refinedItem","_searchParameters$get","_searchParameters$get2","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","_e3","createSendEvent","connectNumericMenu","_ref2$attribute","_ref2$items","_ref2$transformItems","prepareItems","isRefined","equal","min","max","withoutRefinements","isExact","_value$split$map","_value$split$map2","withMinRefinement","withMaxRefinement","refinedState","getRefinedState","newState","hasNoResults","preparedItems","allIsSelected","_iterator","_step","option","currentRefinements","hasNumericRefinement","resolvedState","refinedOption","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","Paginator","params","total","currentPage","padding","totalDisplayedPages","paddingLeft","paddingRight","first","connectPagination","totalPages","_ref$padding","pager","getMaxPage","nbPages","toPrecision","precision","pow","connectRange","minBound","maxBound","_ref2$precision","formatToNumber","v","rangeFormatter","currentRange","nextMin","nextMax","currentRangeMin","currentRangeMax","isResetMin","isResetMax","_toPrecision","nextMinAsNumber","nextMaxAsNumber","newNextMin","newNextMax","isResetNewNextMin","isGreaterThanCurrentRange","isMinValid","isResetNewNextMax","isLowerThanRange","isMaxValid","hasMinChange","hasMaxChange","_getCurrentRange","stats","_getCurrentRefinement","minValue","maxValue","_ref11","_ref12","_ref13","facetsFromResults","facetResult","_ref14","_ref15","_searchParameters$get3","_ref16","lowerBound","upperBound","connectRefinementList","_ref$operator","_ref$escapeFacetValue","escapeFacetValues","formatItems","lastResultsFromMainSearch","lastItemsFromMainSearch","triggerRefine","searchForFacetValues","createSearchForFacetValues","query","searchResults","tags","TAG_REPLACEMENT","escapeFacets","normalizedFacetValues","escapedValue","maxValuesPerFacetConfig","currentLimit","searchFacetValues","canShowLess","canShowMore","withoutMaxValuesPerFacet","isDisjunctive","parameters","connectSortBy","currentIndex","indexName","STEP","getRefinedStar","connectRatingMenu","_ref2$max","_getRefinedStar","_values$","getFacetsMaxDecimalPlaces","facetResults","maxDecimalPlaces","_facetResult$name$spl","_facetResult$name$spl2","_facetResult$name$spl3","decimal","emptyState","toggleRefinement","refinementIsApplied","totalCount","refinedStar","star","sum","stars","_v","_ret","withDisjunctiveFacet","connectStats","sendEventForToggle","connectToggleRefinement","_ref2$on","userOn","userOff","hasAnOffValue","off","toggleRefinementFactory","valuesToRemove","valuesToAdd","onFacetValue","offFacetValue","offValue","allFacetValues","onData","offData","nextRefinement","_uiState$toggle","connectBreadcrumb","breadcrumb","facetName","shiftItemsValues","array","idx","connectAutocomplete","_ref$escapeHTML","indices","stateWithoutQuery","hasStateRefinements","escapeRuleContext","ruleName","getRuleContextsFromTrackedFilters","sharedHelperState","trackedFilters","ruleContexts","facetRefinements","getTrackedFacetValues","trackedFacetValues","facetRefinement","applyRuleContexts","initialRuleContexts","transformRuleContexts","previousRuleContexts","newRuleContexts","nextRuleContexts","connectQueryRules","_render","unmount","_ref2$trackedFilters","_ref2$transformRuleCo","rules","hasTrackedFilters","onHelperChange","_ref4$userData","userData","createVoiceSearchHelper","searchAsYouSpeak","language","onQueryChange","onStateChange","SpeechRecognitionAPI","getDefaultState","status","recognition","isBrowserSupported","isListening","setState","getState","resetState","onStart","onError","onResult","onEnd","startListening","dispose","stopListening","connectVoiceSearch","_widgetParams$searchA","additionalQueryParameters","_widgetParams$createV","builtInCreateVoiceSearchHelper","queryLanguages","_voiceSearchHelper","additional","toReset","connectRelevantSort","relevancyStrictness","appliedRelevancyStrictness","isVirtualReplica","_uiState$relevantSort","EXPERIMENTAL_connectConfigureRelatedItems","deprecate","EXPERIMENTAL_connectDynamicWidgets","Autocomplete_vue","t","r","Breadcrumb_vue","ClearRefinements_vue","Configure","ConfigureRelatedItems","CurrentRefinements_vue","r$2","HierarchicalMenu_vue","u","g","l","i$1","a$2","HitsPerPage_vue","Index","InfiniteHits_vue","Menu_vue","MenuSelect_vue","NumericMenu_vue","Pagination_vue","Panel_vue","PoweredBy_vue","QueryRuleContext","QueryRuleCustomData_vue","RangeInput_vue","RatingMenu_vue","RefinementList_vue","StateResults_vue","Snippet_vue","SortBy_vue","Stats_vue","ToggleRefinement_vue","VoiceSearch_vue","RelevantSort_vue","DynamicWidgets","this","Vue","VScrollLock","InstantSearch","VueSocialSharing","Sentry.init","VueIntegration","modules","__vitePreload","componentName","eventBus","EventBus","header","footer","navToggles","nav","modal","reportDownloadButton","reportLeadCaptureButton","ctaButton","ctaModule","firstModule","navOpen","payload","toggleReportPrompt","visibility","toggleCtaPrompt","ctaCheckForVisibility","ctaIsModuleVisible","isFirstModuleVisible","ctaObserverOptions","ctaObserver","entries","checkForVisibility","isButtonBelowViewport","lastKnownButtonEntry","lastKnownFooterEntry","observerOptions","observer","toggle","navToggleIcon","section","active","heightSize","isOpen","videoOverlay","overlayVisible","collapseSection","sectionHeight","elementTransition","expandSection","transitionExpandFinished","collapsible","trigger","arrow","isCollapsed","category"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],"sources":["../../../node_modules/regenerator-runtime/runtime.js","../../../node_modules/picturefill/dist/picturefill.js","../../../node_modules/lazysizes/lazysizes.js","../../../node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js","../../../node_modules/lazysizes/plugins/bgset/ls.bgset.js","../../../node_modules/instantsearch.js/es/lib/utils/clearRefinements.js","../../../node_modules/instantsearch.js/es/lib/utils/isFacetRefined.js","../../../node_modules/instantsearch.js/es/lib/utils/createSendEventForFacet.js","../../../node_modules/instantsearch.js/es/lib/utils/escapeFacetValue.js","../../../node_modules/instantsearch.js/es/lib/utils/getRefinements.js","../../../node_modules/instantsearch.js/es/lib/utils/getWidgetAttribute.js","../../../node_modules/instantsearch.js/es/lib/utils/isFiniteNumber.js","../../../node_modules/instantsearch.js/es/lib/utils/walkIndex.js","../../../node_modules/instantsearch.js/es/lib/utils/range.js","../../../node_modules/instantsearch.js/es/lib/utils/toArray.js","../../../node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","../../../node_modules/instantsearch.js/es/connectors/configure-related-items/connectConfigureRelatedItems.js","../../../node_modules/instantsearch.js/es/connectors/dynamic-widgets/connectDynamicWidgets.js","../../../node_modules/instantsearch.js/es/connectors/clear-refinements/connectClearRefinements.js","../../../node_modules/instantsearch.js/es/connectors/current-refinements/connectCurrentRefinements.js","../../../node_modules/instantsearch.js/es/connectors/hierarchical-menu/connectHierarchicalMenu.js","../../../node_modules/instantsearch.js/es/connectors/hits-per-page/connectHitsPerPage.js","../../../node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js","../../../node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.js","../../../node_modules/instantsearch.js/es/connectors/menu/connectMenu.js","../../../node_modules/instantsearch.js/es/connectors/numeric-menu/connectNumericMenu.js","../../../node_modules/instantsearch.js/es/connectors/pagination/Paginator.js","../../../node_modules/instantsearch.js/es/connectors/pagination/connectPagination.js","../../../node_modules/instantsearch.js/es/connectors/range/connectRange.js","../../../node_modules/instantsearch.js/es/connectors/refinement-list/connectRefinementList.js","../../../node_modules/instantsearch.js/es/connectors/sort-by/connectSortBy.js","../../../node_modules/instantsearch.js/es/connectors/rating-menu/connectRatingMenu.js","../../../node_modules/instantsearch.js/es/connectors/stats/connectStats.js","../../../node_modules/instantsearch.js/es/connectors/toggle-refinement/connectToggleRefinement.js","../../../node_modules/instantsearch.js/es/connectors/breadcrumb/connectBreadcrumb.js","../../../node_modules/instantsearch.js/es/connectors/autocomplete/connectAutocomplete.js","../../../node_modules/instantsearch.js/es/connectors/query-rules/connectQueryRules.js","../../../node_modules/instantsearch.js/es/lib/voiceSearchHelper/index.js","../../../node_modules/instantsearch.js/es/connectors/voice-search/connectVoiceSearch.js","../../../node_modules/instantsearch.js/es/connectors/relevant-sort/connectRelevantSort.js","../../../node_modules/instantsearch.js/es/connectors/index.js","../../../node_modules/vue-instantsearch/es/src/components/Autocomplete.vue.js","../../../node_modules/vue-instantsearch/es/src/mixins/panel.js","../../../node_modules/vue-instantsearch/es/src/components/Breadcrumb.vue.js","../../../node_modules/vue-instantsearch/es/src/components/ClearRefinements.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Configure.js","../../../node_modules/vue-instantsearch/es/src/components/ConfigureRelatedItems.js","../../../node_modules/vue-instantsearch/es/src/components/CurrentRefinements.vue.js","../../../node_modules/vue-instantsearch/es/src/components/HierarchicalMenuList.vue.js","../../../node_modules/vue-instantsearch/es/src/components/HierarchicalMenu.vue.js","../../../node_modules/vue-instantsearch/es/src/util/unescape.js","../../../node_modules/vue-instantsearch/es/src/util/parseAlgoliaHit.js","../../../node_modules/vue-instantsearch/es/src/components/Highlighter.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Highlight.vue.js","../../../node_modules/vue-instantsearch/es/src/components/HitsPerPage.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Index.js","../../../node_modules/vue-instantsearch/es/src/components/InstantSearchSsr.js","../../../node_modules/vue-instantsearch/es/src/components/InfiniteHits.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Menu.vue.js","../../../node_modules/vue-instantsearch/es/src/components/MenuSelect.vue.js","../../../node_modules/vue-instantsearch/es/src/components/NumericMenu.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Pagination.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Panel.vue.js","../../../node_modules/vue-instantsearch/es/src/components/PoweredBy.vue.js","../../../node_modules/vue-instantsearch/es/src/components/QueryRuleContext.js","../../../node_modules/vue-instantsearch/es/src/components/QueryRuleCustomData.vue.js","../../../node_modules/vue-instantsearch/es/src/components/RangeInput.vue.js","../../../node_modules/vue-instantsearch/es/src/components/RatingMenu.vue.js","../../../node_modules/vue-instantsearch/es/src/components/RefinementList.vue.js","../../../node_modules/vue-instantsearch/es/src/connectors/connectStateResults.js","../../../node_modules/vue-instantsearch/es/src/components/StateResults.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Snippet.vue.js","../../../node_modules/vue-instantsearch/es/src/components/SortBy.vue.js","../../../node_modules/vue-instantsearch/es/src/components/Stats.vue.js","../../../node_modules/vue-instantsearch/es/src/components/ToggleRefinement.vue.js","../../../node_modules/vue-instantsearch/es/src/components/VoiceSearch.vue.js","../../../node_modules/vue-instantsearch/es/src/components/RelevantSort.vue.js","../../../node_modules/vue-instantsearch/es/src/components/DynamicWidgets.js","../../../node_modules/vue-instantsearch/es/src/plugin.js","../../../node_modules/vue-social-sharing/dist/vue-social-sharing.js","../../../app/javascript/entrypoints/application.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t'use strict';\n\n\tif(!window.addEventListener){return;}\n\n\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\tvar regCssFit = /parent-fit[\"']*\\s*:\\s*[\"']*(contain|cover|width)/;\n\tvar regCssObject = /parent-container[\"']*\\s*:\\s*[\"']*(.+?)(?=(\\s|$|,|'|\"|;))/;\n\tvar regPicture = /^picture$/i;\n\tvar cfg = lazySizes.cfg;\n\n\tvar getCSS = function (elem){\n\t\treturn (getComputedStyle(elem, null) || {});\n\t};\n\n\tvar parentFit = {\n\n\t\tgetParent: function(element, parentSel){\n\t\t\tvar parent = element;\n\t\t\tvar parentNode = element.parentNode;\n\n\t\t\tif((!parentSel || parentSel == 'prev') && parentNode && regPicture.test(parentNode.nodeName || '')){\n\t\t\t\tparentNode = parentNode.parentNode;\n\t\t\t}\n\n\t\t\tif(parentSel != 'self'){\n\t\t\t\tif(parentSel == 'prev'){\n\t\t\t\t\tparent = element.previousElementSibling;\n\t\t\t\t} else if(parentSel && (parentNode.closest || window.jQuery)){\n\t\t\t\t\tparent = (parentNode.closest ?\n\t\t\t\t\t\t\tparentNode.closest(parentSel) :\n\t\t\t\t\t\t\tjQuery(parentNode).closest(parentSel)[0]) ||\n\t\t\t\t\t\tparentNode\n\t\t\t\t\t;\n\t\t\t\t} else {\n\t\t\t\t\tparent = parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn parent;\n\t\t},\n\n\t\tgetFit: function(element){\n\t\t\tvar tmpMatch, parentObj;\n\t\t\tvar css = getCSS(element);\n\t\t\tvar content = css.content || css.fontFamily;\n\t\t\tvar obj = {\n\t\t\t\tfit: element._lazysizesParentFit || element.getAttribute('data-parent-fit')\n\t\t\t};\n\n\t\t\tif(!obj.fit && content && (tmpMatch = content.match(regCssFit))){\n\t\t\t\tobj.fit = tmpMatch[1];\n\t\t\t}\n\n\t\t\tif(obj.fit){\n\t\t\t\tparentObj = element._lazysizesParentContainer || element.getAttribute('data-parent-container');\n\n\t\t\t\tif(!parentObj && content && (tmpMatch = content.match(regCssObject))){\n\t\t\t\t\tparentObj = tmpMatch[1];\n\t\t\t\t}\n\n\t\t\t\tobj.parent = parentFit.getParent(element, parentObj);\n\n\n\t\t\t} else {\n\t\t\t\tobj.fit = css.objectFit;\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t},\n\n\t\tgetImageRatio: function(element){\n\t\t\tvar i, srcset, media, ratio, match, width, height;\n\t\t\tvar parent = element.parentNode;\n\t\t\tvar elements = parent && regPicture.test(parent.nodeName || '') ?\n\t\t\t\t\tparent.querySelectorAll('source, img') :\n\t\t\t\t\t[element]\n\t\t\t\t;\n\n\t\t\tfor(i = 0; i < elements.length; i++){\n\t\t\t\telement = elements[i];\n\t\t\t\tsrcset = element.getAttribute(cfg.srcsetAttr) || element.getAttribute('srcset') || element.getAttribute('data-pfsrcset') || element.getAttribute('data-risrcset') || '';\n\t\t\t\tmedia = element._lsMedia || element.getAttribute('media');\n\t\t\t\tmedia = cfg.customMedia[element.getAttribute('data-media') || media] || media;\n\n\t\t\t\tif(srcset && (!media || (window.matchMedia && matchMedia(media) || {}).matches )){\n\t\t\t\t\tratio = parseFloat(element.getAttribute('data-aspectratio'));\n\n\t\t\t\t\tif (!ratio) {\n\t\t\t\t\t\tmatch = srcset.match(regDescriptors);\n\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\t\twidth = match[1];\n\t\t\t\t\t\t\t\theight = match[3];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twidth = match[3];\n\t\t\t\t\t\t\t\theight = match[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidth = element.getAttribute('width');\n\t\t\t\t\t\t\theight = element.getAttribute('height');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tratio = width / height;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ratio;\n\t\t},\n\n\t\tcalculateSize: function(element, width){\n\t\t\tvar displayRatio, height, imageRatio, retWidth;\n\t\t\tvar fitObj = this.getFit(element);\n\t\t\tvar fit = fitObj.fit;\n\t\t\tvar fitElem = fitObj.parent;\n\n\t\t\tif(fit != 'width' && ((fit != 'contain' && fit != 'cover') || !(imageRatio = this.getImageRatio(element)))){\n\t\t\t\treturn width;\n\t\t\t}\n\n\t\t\tif(fitElem){\n\t\t\t\twidth = fitElem.clientWidth;\n\t\t\t} else {\n\t\t\t\tfitElem = element;\n\t\t\t}\n\n\t\t\tretWidth = width;\n\n\t\t\tif(fit == 'width'){\n\t\t\t\tretWidth = width;\n\t\t\t} else {\n\t\t\t\theight = fitElem.clientHeight;\n\n\t\t\t\tif((displayRatio = width / height) && ((fit == 'cover' && displayRatio < imageRatio) || (fit == 'contain' && displayRatio > imageRatio))){\n\t\t\t\t\tretWidth = width * (imageRatio / displayRatio);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retWidth;\n\t\t}\n\t};\n\n\tlazySizes.parentFit = parentFit;\n\n\tdocument.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || e.detail.instance != lazySizes){return;}\n\n\t\tvar element = e.target;\n\t\te.detail.width = parentFit.calculateSize(element, e.detail.width);\n\t});\n}));\n","(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t'use strict';\n\tif(!window.addEventListener){return;}\n\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar regWhite = /\\s+/g;\n\tvar regSplitSet = /\\s*\\|\\s+|\\s+\\|\\s*/g;\n\tvar regSource = /^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])(?:\\s+\\[\\s*(.+?)\\s*\\])?$/;\n\tvar regType = /^\\s*\\(*\\s*type\\s*:\\s*(.+?)\\s*\\)*\\s*$/;\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar allowedBackgroundSize = {contain: 1, cover: 1};\n\tvar proxyWidth = function(elem){\n\t\tvar width = lazySizes.gW(elem, elem.parentNode);\n\n\t\tif(!elem._lazysizesWidth || width > elem._lazysizesWidth){\n\t\t\telem._lazysizesWidth = width;\n\t\t}\n\t\treturn elem._lazysizesWidth;\n\t};\n\tvar getBgSize = function(elem){\n\t\tvar bgSize;\n\n\t\tbgSize = (getComputedStyle(elem) || {getPropertyValue: function(){}}).getPropertyValue('background-size');\n\n\t\tif(!allowedBackgroundSize[bgSize] && allowedBackgroundSize[elem.style.backgroundSize]){\n\t\t\tbgSize = elem.style.backgroundSize;\n\t\t}\n\n\t\treturn bgSize;\n\t};\n\tvar setTypeOrMedia = function(source, match){\n\t\tif(match){\n\t\t\tvar typeMatch = match.match(regType);\n\t\t\tif(typeMatch && typeMatch[1]){\n\t\t\t\tsource.setAttribute('type', typeMatch[1]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute('media', lazySizesCfg.customMedia[match] || match);\n\t\t\t}\n\t\t}\n\t};\n\tvar createPicture = function(sets, elem, img){\n\t\tvar picture = document.createElement('picture');\n\t\tvar sizes = elem.getAttribute(lazySizesCfg.sizesAttr);\n\t\tvar ratio = elem.getAttribute('data-ratio');\n\t\tvar optimumx = elem.getAttribute('data-optimumx');\n\n\t\tif(elem._lazybgset && elem._lazybgset.parentNode == elem){\n\t\t\telem.removeChild(elem._lazybgset);\n\t\t}\n\n\t\tObject.defineProperty(img, '_lazybgset', {\n\t\t\tvalue: elem,\n\t\t\twritable: true\n\t\t});\n\t\tObject.defineProperty(elem, '_lazybgset', {\n\t\t\tvalue: picture,\n\t\t\twritable: true\n\t\t});\n\n\t\tsets = sets.replace(regWhite, ' ').split(regSplitSet);\n\n\t\tpicture.style.display = 'none';\n\t\timg.className = lazySizesCfg.lazyClass;\n\n\t\tif(sets.length == 1 && !sizes){\n\t\t\tsizes = 'auto';\n\t\t}\n\n\t\tsets.forEach(function(set){\n\t\t\tvar match;\n\t\t\tvar source = document.createElement('source');\n\n\t\t\tif(sizes && sizes != 'auto'){\n\t\t\t\tsource.setAttribute('sizes', sizes);\n\t\t\t}\n\n\t\t\tif((match = set.match(regSource))){\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, match[1]);\n\n\t\t\t\tsetTypeOrMedia(source, match[2]);\n\t\t\t\tsetTypeOrMedia(source, match[3]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, set);\n\t\t\t}\n\n\t\t\tpicture.appendChild(source);\n\t\t});\n\n\t\tif(sizes){\n\t\t\timg.setAttribute(lazySizesCfg.sizesAttr, sizes);\n\t\t\telem.removeAttribute(lazySizesCfg.sizesAttr);\n\t\t\telem.removeAttribute('sizes');\n\t\t}\n\t\tif(optimumx){\n\t\t\timg.setAttribute('data-optimumx', optimumx);\n\t\t}\n\t\tif(ratio) {\n\t\t\timg.setAttribute('data-ratio', ratio);\n\t\t}\n\n\t\tpicture.appendChild(img);\n\n\t\telem.appendChild(picture);\n\t};\n\n\tvar proxyLoad = function(e){\n\t\tif(!e.target._lazybgset){return;}\n\n\t\tvar image = e.target;\n\t\tvar elem = image._lazybgset;\n\t\tvar bg = image.currentSrc || image.src;\n\n\n\t\tif(bg){\n\t\t\tvar useSrc = regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg;\n\t\t\tvar event = lazySizes.fire(elem, 'bgsetproxy', {\n\t\t\t\tsrc: bg,\n\t\t\t\tuseSrc: useSrc,\n\t\t\t\tfullSrc: null,\n\t\t\t});\n\n\t\t\tif(!event.defaultPrevented){\n\t\t\t\telem.style.backgroundImage = event.detail.fullSrc || 'url(' + event.detail.useSrc + ')';\n\t\t\t}\n\t\t}\n\n\t\tif(image._lazybgsetLoading){\n\t\t\tlazySizes.fire(elem, '_lazyloaded', {}, false, true);\n\t\t\tdelete image._lazybgsetLoading;\n\t\t}\n\t};\n\n\taddEventListener('lazybeforeunveil', function(e){\n\t\tvar set, image, elem;\n\n\t\tif(e.defaultPrevented || !(set = e.target.getAttribute('data-bgset'))){return;}\n\n\t\telem = e.target;\n\t\timage = document.createElement('img');\n\n\t\timage.alt = '';\n\n\t\timage._lazybgsetLoading = true;\n\t\te.detail.firesLoad = true;\n\n\t\tcreatePicture(set, elem, image);\n\n\t\tsetTimeout(function(){\n\t\t\tlazySizes.loader.unveil(image);\n\n\t\t\tlazySizes.rAF(function(){\n\t\t\t\tlazySizes.fire(image, '_lazyloaded', {}, true, true);\n\t\t\t\tif(image.complete) {\n\t\t\t\t\tproxyLoad({target: image});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t});\n\n\tdocument.addEventListener('load', proxyLoad, true);\n\n\twindow.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.detail.instance != lazySizes){return;}\n\t\tif(e.target._lazybgset && e.detail.dataAttr){\n\t\t\tvar elem = e.target._lazybgset;\n\t\t\tvar bgSize = getBgSize(elem);\n\n\t\t\tif(allowedBackgroundSize[bgSize]){\n\t\t\t\te.target._lazysizesParentFit = bgSize;\n\n\t\t\t\tlazySizes.rAF(function(){\n\t\t\t\t\te.target.setAttribute('data-parent-fit', bgSize);\n\t\t\t\t\tif(e.target._lazysizesParentFit){\n\t\t\t\t\t\tdelete e.target._lazysizesParentFit;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, true);\n\n\tdocument.documentElement.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || !e.target._lazybgset || e.detail.instance != lazySizes){return;}\n\t\te.detail.width = proxyWidth(e.target._lazybgset);\n\t});\n}));\n","/**\n * Clears the refinements of a SearchParameters object based on rules provided.\n * The included attributes list is applied before the excluded attributes list. If the list\n * is not provided, this list of all the currently refined attributes is used as included attributes.\n * @returns search parameters with refinements cleared\n */\nexport function clearRefinements(_ref) {\n var helper = _ref.helper,\n _ref$attributesToClea = _ref.attributesToClear,\n attributesToClear = _ref$attributesToClea === void 0 ? [] : _ref$attributesToClea;\n var finalState = helper.state.setPage(0);\n finalState = attributesToClear.reduce(function (state, attribute) {\n if (finalState.isNumericRefined(attribute)) {\n return state.removeNumericRefinement(attribute);\n }\n if (finalState.isHierarchicalFacet(attribute)) {\n return state.removeHierarchicalFacetRefinement(attribute);\n }\n if (finalState.isDisjunctiveFacet(attribute)) {\n return state.removeDisjunctiveFacetRefinement(attribute);\n }\n if (finalState.isConjunctiveFacet(attribute)) {\n return state.removeFacetRefinement(attribute);\n }\n return state;\n }, finalState);\n if (attributesToClear.indexOf('query') !== -1) {\n finalState = finalState.setQuery('');\n }\n return finalState;\n}","export function isFacetRefined(helper, facet, value) {\n if (helper.state.isHierarchicalFacet(facet)) {\n return helper.state.isHierarchicalFacetRefined(facet, value);\n } else if (helper.state.isConjunctiveFacet(facet)) {\n return helper.state.isFacetRefined(facet, value);\n } else {\n return helper.state.isDisjunctiveFacetRefined(facet, value);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { isFacetRefined } from \"./isFacetRefined.js\";\nexport function createSendEventForFacet(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper,\n attr = _ref.attribute,\n widgetType = _ref.widgetType;\n var sendEventForFacet = function sendEventForFacet() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var facetValue = args[1],\n _args$ = args[2],\n eventName = _args$ === void 0 ? 'Filter Applied' : _args$,\n _args$2 = args[3],\n additionalData = _args$2 === void 0 ? {} : _args$2;\n var _args$0$split = args[0].split(':'),\n _args$0$split2 = _slicedToArray(_args$0$split, 2),\n eventType = _args$0$split2[0],\n eventModifier = _args$0$split2[1];\n var attribute = typeof attr === 'string' ? attr : attr(facetValue);\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n instantSearchInstance.sendEventToInsights(args[0]);\n } else if (eventType === 'click' && args.length >= 2 && args.length <= 4) {\n if (!isFacetRefined(helper, attribute, facetValue)) {\n // send event only when the facet is being checked \"ON\"\n instantSearchInstance.sendEventToInsights({\n insightsMethod: 'clickedFilters',\n widgetType: widgetType,\n eventType: eventType,\n eventModifier: eventModifier,\n payload: _objectSpread({\n eventName: eventName,\n index: helper.getIndex(),\n filters: [\"\".concat(attribute, \":\").concat(facetValue)]\n }, additionalData),\n attribute: attribute\n });\n }\n } else if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass between two and four arguments like:\\n sendEvent('click', facetValue, eventName?, additionalData?);\\n\\nIf you want to send a custom payload, you can pass one object: sendEvent(customPayload);\\n\");\n }\n };\n return sendEventForFacet;\n}","export function unescapeFacetValue(value) {\n if (typeof value === 'string') {\n return value.replace(/^\\\\-/, '-');\n }\n return value;\n}\nexport function escapeFacetValue(value) {\n if (typeof value === 'number' && value < 0 || typeof value === 'string') {\n return String(value).replace(/^-/, '\\\\-');\n }\n return value;\n}","import { unescapeFacetValue, escapeFacetValue } from \"./escapeFacetValue.js\";\nimport { find } from \"./find.js\";\nfunction getRefinement(state, type, attribute, name) {\n var resultsFacets = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var res = {\n type: type,\n attribute: attribute,\n name: name,\n escapedValue: escapeFacetValue(name)\n };\n var facet = find(resultsFacets, function (resultsFacet) {\n return resultsFacet.name === attribute;\n });\n var count;\n if (type === 'hierarchical') {\n var facetDeclaration = state.getHierarchicalFacetByName(attribute);\n var nameParts = name.split(facetDeclaration.separator);\n var getFacetRefinement = function getFacetRefinement(facetData) {\n return function (refinementKey) {\n return facetData[refinementKey];\n };\n };\n var _loop = function _loop(i) {\n facet = facet && facet.data && find(Object.keys(facet.data).map(getFacetRefinement(facet.data)), function (refinement) {\n return refinement.name === nameParts[i];\n });\n };\n for (var i = 0; facet !== undefined && i < nameParts.length; ++i) {\n _loop(i);\n }\n count = facet && facet.count;\n } else {\n count = facet && facet.data && facet.data[res.name];\n }\n if (count !== undefined) {\n res.count = count;\n }\n if (facet && facet.exhaustive !== undefined) {\n res.exhaustive = facet.exhaustive;\n }\n return res;\n}\nexport function getRefinements(results, state) {\n var includesQuery = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var refinements = [];\n var _state$facetsRefineme = state.facetsRefinements,\n facetsRefinements = _state$facetsRefineme === void 0 ? {} : _state$facetsRefineme,\n _state$facetsExcludes = state.facetsExcludes,\n facetsExcludes = _state$facetsExcludes === void 0 ? {} : _state$facetsExcludes,\n _state$disjunctiveFac = state.disjunctiveFacetsRefinements,\n disjunctiveFacetsRefinements = _state$disjunctiveFac === void 0 ? {} : _state$disjunctiveFac,\n _state$hierarchicalFa = state.hierarchicalFacetsRefinements,\n hierarchicalFacetsRefinements = _state$hierarchicalFa === void 0 ? {} : _state$hierarchicalFa,\n _state$numericRefinem = state.numericRefinements,\n numericRefinements = _state$numericRefinem === void 0 ? {} : _state$numericRefinem,\n _state$tagRefinements = state.tagRefinements,\n tagRefinements = _state$tagRefinements === void 0 ? [] : _state$tagRefinements;\n Object.keys(facetsRefinements).forEach(function (attribute) {\n var refinementNames = facetsRefinements[attribute];\n refinementNames.forEach(function (refinementName) {\n refinements.push(getRefinement(state, 'facet', attribute, refinementName, results.facets));\n });\n });\n Object.keys(facetsExcludes).forEach(function (attribute) {\n var refinementNames = facetsExcludes[attribute];\n refinementNames.forEach(function (refinementName) {\n refinements.push({\n type: 'exclude',\n attribute: attribute,\n name: refinementName,\n exclude: true\n });\n });\n });\n Object.keys(disjunctiveFacetsRefinements).forEach(function (attribute) {\n var refinementNames = disjunctiveFacetsRefinements[attribute];\n refinementNames.forEach(function (refinementName) {\n refinements.push(getRefinement(state, 'disjunctive', attribute,\n // We unescape any disjunctive refined values with `unescapeFacetValue` because\n // they can be escaped on negative numeric values with `escapeFacetValue`.\n unescapeFacetValue(refinementName), results.disjunctiveFacets));\n });\n });\n Object.keys(hierarchicalFacetsRefinements).forEach(function (attribute) {\n var refinementNames = hierarchicalFacetsRefinements[attribute];\n refinementNames.forEach(function (refinement) {\n refinements.push(getRefinement(state, 'hierarchical', attribute, refinement, results.hierarchicalFacets));\n });\n });\n Object.keys(numericRefinements).forEach(function (attribute) {\n var operators = numericRefinements[attribute];\n Object.keys(operators).forEach(function (operatorOriginal) {\n var operator = operatorOriginal;\n var valueOrValues = operators[operator];\n var refinementNames = Array.isArray(valueOrValues) ? valueOrValues : [valueOrValues];\n refinementNames.forEach(function (refinementName) {\n refinements.push({\n type: 'numeric',\n attribute: attribute,\n name: \"\".concat(refinementName),\n numericValue: refinementName,\n operator: operator\n });\n });\n });\n });\n tagRefinements.forEach(function (refinementName) {\n refinements.push({\n type: 'tag',\n attribute: '_tags',\n name: refinementName\n });\n });\n if (includesQuery && state.query && state.query.trim()) {\n refinements.push({\n attribute: 'query',\n type: 'query',\n name: state.query,\n query: state.query\n });\n }\n return refinements;\n}","export function getWidgetAttribute(widget, initOptions) {\n var _widget$getWidgetRend;\n var renderState = (_widget$getWidgetRend = widget.getWidgetRenderState) === null || _widget$getWidgetRend === void 0 ? void 0 : _widget$getWidgetRend.call(widget, initOptions);\n var attribute = null;\n if (renderState && renderState.widgetParams) {\n // casting as widgetParams is checked just before\n var widgetParams = renderState.widgetParams;\n if (widgetParams.attribute) {\n attribute = widgetParams.attribute;\n } else if (Array.isArray(widgetParams.attributes)) {\n attribute = widgetParams.attributes[0];\n }\n }\n if (typeof attribute !== 'string') {\n throw new Error(\"Could not find the attribute of the widget:\\n\\n\".concat(JSON.stringify(widget), \"\\n\\nPlease check whether the widget's getWidgetRenderState returns widgetParams.attribute correctly.\"));\n }\n return attribute;\n}","// This is the `Number.isFinite()` polyfill recommended by MDN.\n// We do not provide any tests for this function.\n// See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n// @MAJOR Replace with the native `Number.isFinite` method\nexport function isFiniteNumber(value) {\n return typeof value === 'number' && isFinite(value);\n}","import { isIndexWidget } from \"./isIndexWidget.js\";\n/**\n * Recurse over all child indices\n */\nexport function walkIndex(indexWidget, callback) {\n callback(indexWidget);\n indexWidget.getWidgets().forEach(function (widget) {\n if (isIndexWidget(widget)) {\n walkIndex(widget, callback);\n }\n });\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nexport function range(_ref) {\n var _ref$start = _ref.start,\n start = _ref$start === void 0 ? 0 : _ref$start,\n end = _ref.end,\n _ref$step = _ref.step,\n step = _ref$step === void 0 ? 1 : _ref$step;\n // We can't divide by 0 so we re-assign the step to 1 if it happens.\n var limitStep = step === 0 ? 1 : step;\n\n // In some cases the array to create has a decimal length.\n // We therefore need to round the value.\n // Example:\n // { start: 1, end: 5000, step: 500 }\n // => Array length = (5000 - 1) / 500 = 9.998\n var arrayLength = Math.round((end - start) / limitStep);\n return _toConsumableArray(Array(arrayLength)).map(function (_, current) {\n return start + current * limitStep;\n });\n}","export function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport algoliasearchHelper from 'algoliasearch-helper';\nimport { createDocumentationMessageGenerator, isPlainObject, mergeSearchParameters, noop } from \"../../lib/utils/index.js\";\n\n/**\n * Refine the given search parameters.\n */\n\nvar withUsage = createDocumentationMessageGenerator({\n name: 'configure',\n connector: true\n});\nfunction getInitialSearchParameters(state, widgetParams) {\n // We leverage the helper internals to remove the `widgetParams` from\n // the state. The function `setQueryParameters` omits the values that\n // are `undefined` on the next state.\n return state.setQueryParameters(Object.keys(widgetParams.searchParameters).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n}\nvar connectConfigure = function connectConfigure() {\n var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n return function (widgetParams) {\n if (!widgetParams || !isPlainObject(widgetParams.searchParameters)) {\n throw new Error(withUsage('The `searchParameters` option expects an object.'));\n }\n var connectorState = {};\n function refine(helper) {\n return function (searchParameters) {\n // Merge new `searchParameters` with the ones set from other widgets\n var actualState = getInitialSearchParameters(helper.state, widgetParams);\n var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));\n\n // Update original `widgetParams.searchParameters` to the new refined one\n widgetParams.searchParameters = searchParameters;\n\n // Trigger a search with the resolved search parameters\n helper.setState(nextSearchParameters).search();\n };\n }\n return {\n $$type: 'ais.configure',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref) {\n var state = _ref.state;\n unmountFn();\n return getInitialSearchParameters(state, widgetParams);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n var _renderState$configur;\n var widgetRenderState = this.getWidgetRenderState(renderOptions);\n return _objectSpread(_objectSpread({}, renderState), {}, {\n configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {\n widgetParams: _objectSpread(_objectSpread({}, widgetRenderState.widgetParams), {}, {\n searchParameters: mergeSearchParameters(new algoliasearchHelper.SearchParameters((_renderState$configur = renderState.configure) === null || _renderState$configur === void 0 ? void 0 : _renderState$configur.widgetParams.searchParameters), new algoliasearchHelper.SearchParameters(widgetRenderState.widgetParams.searchParameters)).getQueryParams()\n })\n })\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var helper = _ref2.helper;\n if (!connectorState.refine) {\n connectorState.refine = refine(helper);\n }\n return {\n refine: connectorState.refine,\n widgetParams: widgetParams\n };\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref3) {\n var uiState = _ref3.uiState;\n return mergeSearchParameters(state, new algoliasearchHelper.SearchParameters(_objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)));\n },\n getWidgetUiState: function getWidgetUiState(uiState) {\n return _objectSpread(_objectSpread({}, uiState), {}, {\n configure: _objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)\n });\n }\n };\n };\n};\nexport default connectConfigure;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport algoliasearchHelper from 'algoliasearch-helper';\nimport { createDocumentationMessageGenerator, getObjectType, warning, getPropertyByPath } from \"../../lib/utils/index.js\";\nimport connectConfigure from \"../configure/connectConfigure.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'configure-related-items',\n connector: true\n});\nfunction createOptionalFilter(_ref) {\n var attributeName = _ref.attributeName,\n attributeValue = _ref.attributeValue,\n attributeScore = _ref.attributeScore;\n return \"\".concat(attributeName, \":\").concat(attributeValue, \"\");\n}\nvar connectConfigureRelatedItems = function connectConfigureRelatedItems(renderFn, unmountFn) {\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n hit = _ref2.hit,\n matchingPatterns = _ref2.matchingPatterns,\n _ref2$transformSearch = _ref2.transformSearchParameters,\n transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {\n return x;\n } : _ref2$transformSearch;\n if (!hit) {\n throw new Error(withUsage('The `hit` option is required.'));\n }\n if (!matchingPatterns) {\n throw new Error(withUsage('The `matchingPatterns` option is required.'));\n }\n var optionalFilters = Object.keys(matchingPatterns).reduce(function (acc, attributeName) {\n var attribute = matchingPatterns[attributeName];\n var attributeValue = getPropertyByPath(hit, attributeName);\n var attributeScore = attribute.score;\n if (Array.isArray(attributeValue)) {\n return [].concat(_toConsumableArray(acc), [attributeValue.map(function (attributeSubValue) {\n return createOptionalFilter({\n attributeName: attributeName,\n attributeValue: attributeSubValue,\n attributeScore: attributeScore\n });\n })]);\n }\n if (typeof attributeValue === 'string') {\n return [].concat(_toConsumableArray(acc), [createOptionalFilter({\n attributeName: attributeName,\n attributeValue: attributeValue,\n attributeScore: attributeScore\n })]);\n }\n process.env.NODE_ENV === 'development' ? warning(false, \"\\nThe `matchingPatterns` option returned a value of type \".concat(getObjectType(attributeValue), \" for the \\\"\").concat(attributeName, \"\\\" key. This value was not sent to Algolia because `optionalFilters` only supports strings and array of strings.\\n\\nYou can remove the \\\"\").concat(attributeName, \"\\\" key from the `matchingPatterns` option.\\n\\nSee https://www.algolia.com/doc/api-reference/api-parameters/optionalFilters/\\n \")) : void 0;\n return acc;\n }, []);\n var searchParameters = _objectSpread({}, transformSearchParameters(new algoliasearchHelper.SearchParameters({\n sumOrFiltersScores: true,\n facetFilters: [\"objectID:-\".concat(hit.objectID)],\n optionalFilters: optionalFilters\n })));\n var makeWidget = connectConfigure(renderFn, unmountFn);\n return _objectSpread(_objectSpread({}, makeWidget({\n searchParameters: searchParameters\n })), {}, {\n $$type: 'ais.configureRelatedItems'\n });\n };\n};\n\n/** @deprecated use connectRelatedItems instead */\nexport default connectConfigureRelatedItems;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { checkRendering, createDocumentationMessageGenerator, getWidgetAttribute, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'dynamic-widgets',\n connector: true\n});\nvar MAX_WILDCARD_FACETS = 20;\nvar connectDynamicWidgets = function connectDynamicWidgets(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var widgets = widgetParams.widgets,\n _widgetParams$maxValu = widgetParams.maxValuesPerFacet,\n maxValuesPerFacet = _widgetParams$maxValu === void 0 ? 20 : _widgetParams$maxValu,\n _widgetParams$facets = widgetParams.facets,\n facets = _widgetParams$facets === void 0 ? ['*'] : _widgetParams$facets,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo,\n fallbackWidget = widgetParams.fallbackWidget;\n if (!(widgets && Array.isArray(widgets) && widgets.every(function (widget) {\n return _typeof(widget) === 'object';\n }))) {\n throw new Error(withUsage('The `widgets` option expects an array of widgets.'));\n }\n if (!Array.isArray(facets)) {\n throw new Error(withUsage(\"The `facets` option only accepts an array of facets, you passed \".concat(JSON.stringify(facets))));\n }\n var localWidgets = new Map();\n return {\n $$type: 'ais.dynamicWidgets',\n init: function init(initOptions) {\n widgets.forEach(function (widget) {\n var attribute = getWidgetAttribute(widget, initOptions);\n localWidgets.set(attribute, {\n widget: widget,\n isMounted: false\n });\n });\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var parent = renderOptions.parent;\n var renderState = this.getWidgetRenderState(renderOptions);\n var widgetsToUnmount = [];\n var widgetsToMount = [];\n if (fallbackWidget) {\n renderState.attributesToRender.forEach(function (attribute) {\n if (!localWidgets.has(attribute)) {\n var widget = fallbackWidget({\n attribute: attribute\n });\n localWidgets.set(attribute, {\n widget: widget,\n isMounted: false\n });\n }\n });\n }\n localWidgets.forEach(function (_ref, attribute) {\n var widget = _ref.widget,\n isMounted = _ref.isMounted;\n var shouldMount = renderState.attributesToRender.indexOf(attribute) > -1;\n if (!isMounted && shouldMount) {\n widgetsToMount.push(widget);\n localWidgets.set(attribute, {\n widget: widget,\n isMounted: true\n });\n } else if (isMounted && !shouldMount) {\n widgetsToUnmount.push(widget);\n localWidgets.set(attribute, {\n widget: widget,\n isMounted: false\n });\n }\n });\n parent.addWidgets(widgetsToMount);\n // make sure this only happens after the regular render, otherwise it\n // happens too quick, since render is \"deferred\" for the next microtask,\n // so this needs to be a whole task later\n setTimeout(function () {\n return parent.removeWidgets(widgetsToUnmount);\n }, 0);\n renderFn(_objectSpread(_objectSpread({}, renderState), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref2) {\n var parent = _ref2.parent;\n var toRemove = [];\n localWidgets.forEach(function (_ref3) {\n var widget = _ref3.widget,\n isMounted = _ref3.isMounted;\n if (isMounted) {\n toRemove.push(widget);\n }\n });\n parent.removeWidgets(toRemove);\n unmountFn();\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(state) {\n return facets.reduce(function (acc, curr) {\n return acc.addFacet(curr);\n }, state.setQueryParameters({\n maxValuesPerFacet: Math.max(maxValuesPerFacet || 0, state.maxValuesPerFacet || 0)\n }));\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n dynamicWidgets: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref4) {\n var _results$renderingCon, _results$renderingCon2, _results$renderingCon3, _results$renderingCon4;\n var results = _ref4.results,\n state = _ref4.state;\n if (!results) {\n return {\n attributesToRender: [],\n widgetParams: widgetParams\n };\n }\n var attributesToRender = transformItems((_results$renderingCon = (_results$renderingCon2 = results.renderingContent) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.facetOrdering) === null || _results$renderingCon3 === void 0 ? void 0 : (_results$renderingCon4 = _results$renderingCon3.facets) === null || _results$renderingCon4 === void 0 ? void 0 : _results$renderingCon4.order) !== null && _results$renderingCon !== void 0 ? _results$renderingCon : [], {\n results: results\n });\n if (!Array.isArray(attributesToRender)) {\n throw new Error(withUsage('The `transformItems` option expects a function that returns an Array.'));\n }\n process.env.NODE_ENV === 'development' ? warning(maxValuesPerFacet >= (state.maxValuesPerFacet || 0), \"The maxValuesPerFacet set by dynamic widgets (\".concat(maxValuesPerFacet, \") is smaller than one of the limits set by a widget (\").concat(state.maxValuesPerFacet, \"). This causes a mismatch in query parameters and thus an extra network request when that widget is mounted.\")) : void 0;\n process.env.NODE_ENV === 'development' ? warning(attributesToRender.length <= MAX_WILDCARD_FACETS || widgetParams.facets !== undefined, \"More than \".concat(MAX_WILDCARD_FACETS, \" facets are requested to be displayed without explicitly setting which facets to retrieve. This could have a performance impact. Set \\\"facets\\\" to [] to do two smaller network requests, or explicitly to ['*'] to avoid this warning.\")) : void 0;\n return {\n attributesToRender: attributesToRender,\n widgetParams: widgetParams\n };\n }\n };\n };\n};\nexport default connectDynamicWidgets;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, clearRefinements, getRefinements, createDocumentationMessageGenerator, noop, uniq, mergeSearchParameters } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'clear-refinements',\n connector: true\n});\nvar connectClearRefinements = function connectClearRefinements(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n _ref$includedAttribut = _ref.includedAttributes,\n includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,\n _ref$excludedAttribut = _ref.excludedAttributes,\n excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (widgetParams && widgetParams.includedAttributes && widgetParams.excludedAttributes) {\n throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));\n }\n var connectorState = {\n refine: noop,\n createURL: function createURL() {\n return '';\n },\n attributesToClear: []\n };\n var cachedRefine = function cachedRefine() {\n return connectorState.refine();\n };\n var cachedCreateURL = function cachedCreateURL() {\n return connectorState.createURL();\n };\n return {\n $$type: 'ais.clearRefinements',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n clearRefinements: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var createURL = _ref2.createURL,\n scopedResults = _ref2.scopedResults,\n results = _ref2.results;\n connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {\n return attributesToClear.concat(getAttributesToClear({\n scopedResult: scopedResult,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes,\n transformItems: transformItems,\n results: results\n }));\n }, []);\n connectorState.refine = function () {\n connectorState.attributesToClear.forEach(function (_ref3) {\n var indexHelper = _ref3.helper,\n items = _ref3.items;\n indexHelper.setState(clearRefinements({\n helper: indexHelper,\n attributesToClear: items\n })).search();\n });\n };\n connectorState.createURL = function () {\n return createURL(mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {\n var indexHelper = _ref4.helper,\n items = _ref4.items;\n return clearRefinements({\n helper: indexHelper,\n attributesToClear: items\n });\n }))));\n };\n var canRefine = connectorState.attributesToClear.some(function (attributeToClear) {\n return attributeToClear.items.length > 0;\n });\n return {\n canRefine: canRefine,\n hasRefinements: canRefine,\n refine: cachedRefine,\n createURL: cachedCreateURL,\n widgetParams: widgetParams\n };\n }\n };\n };\n};\nfunction getAttributesToClear(_ref5) {\n var scopedResult = _ref5.scopedResult,\n includedAttributes = _ref5.includedAttributes,\n excludedAttributes = _ref5.excludedAttributes,\n transformItems = _ref5.transformItems,\n results = _ref5.results;\n var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;\n return {\n helper: scopedResult.helper,\n items: transformItems(uniq(getRefinements(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {\n return refinement.attribute;\n }).filter(function (attribute) {\n return (\n // If the array is empty (default case), we keep all the attributes\n includedAttributes.length === 0 ||\n // Otherwise, only add the specified attributes\n includedAttributes.indexOf(attribute) !== -1\n );\n }).filter(function (attribute) {\n return (\n // If the query is included, we ignore the default `excludedAttributes = ['query']`\n attribute === 'query' && includesQuery ||\n // Otherwise, ignore the excluded attributes\n excludedAttributes.indexOf(attribute) === -1\n );\n })), {\n results: results\n })\n };\n}\nexport default connectClearRefinements;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getRefinements, checkRendering, createDocumentationMessageGenerator, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'current-refinements',\n connector: true\n});\nvar connectCurrentRefinements = function connectCurrentRefinements(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n if ((widgetParams || {}).includedAttributes && (widgetParams || {}).excludedAttributes) {\n throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));\n }\n var _ref = widgetParams || {},\n includedAttributes = _ref.includedAttributes,\n _ref$excludedAttribut = _ref.excludedAttributes,\n excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n return {\n $$type: 'ais.currentRefinements',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n currentRefinements: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var results = _ref2.results,\n scopedResults = _ref2.scopedResults,\n _createURL = _ref2.createURL,\n helper = _ref2.helper;\n function getItems() {\n if (!results) {\n return transformItems(getRefinementsItems({\n results: {},\n helper: helper,\n indexId: helper.state.index,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes\n }), {\n results: results\n });\n }\n return scopedResults.reduce(function (accResults, scopedResult) {\n return accResults.concat(transformItems(getRefinementsItems({\n results: scopedResult.results,\n helper: scopedResult.helper,\n indexId: scopedResult.indexId,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes\n }), {\n results: results\n }));\n }, []);\n }\n var items = getItems();\n return {\n items: items,\n canRefine: items.length > 0,\n refine: function refine(refinement) {\n return clearRefinement(helper, refinement);\n },\n createURL: function createURL(refinement) {\n return _createURL(clearRefinementFromState(helper.state, refinement));\n },\n widgetParams: widgetParams\n };\n }\n };\n };\n};\nfunction getRefinementsItems(_ref3) {\n var results = _ref3.results,\n helper = _ref3.helper,\n indexId = _ref3.indexId,\n includedAttributes = _ref3.includedAttributes,\n excludedAttributes = _ref3.excludedAttributes;\n var includesQuery = (includedAttributes || []).indexOf('query') !== -1 || (excludedAttributes || []).indexOf('query') === -1;\n var filterFunction = includedAttributes ? function (item) {\n return includedAttributes.indexOf(item.attribute) !== -1;\n } : function (item) {\n return excludedAttributes.indexOf(item.attribute) === -1;\n };\n var items = getRefinements(results, helper.state, includesQuery).map(normalizeRefinement).filter(filterFunction);\n return items.reduce(function (allItems, currentItem) {\n return [].concat(_toConsumableArray(allItems.filter(function (item) {\n return item.attribute !== currentItem.attribute;\n })), [{\n indexName: helper.state.index,\n indexId: indexId,\n attribute: currentItem.attribute,\n label: currentItem.attribute,\n refinements: items.filter(function (result) {\n return result.attribute === currentItem.attribute;\n })\n // We want to keep the order of refinements except the numeric ones.\n .sort(function (a, b) {\n return a.type === 'numeric' ? a.value - b.value : 0;\n }),\n refine: function refine(refinement) {\n return clearRefinement(helper, refinement);\n }\n }]);\n }, []);\n}\nfunction clearRefinementFromState(state, refinement) {\n state = state.resetPage();\n switch (refinement.type) {\n case 'facet':\n return state.removeFacetRefinement(refinement.attribute, String(refinement.value));\n case 'disjunctive':\n return state.removeDisjunctiveFacetRefinement(refinement.attribute, String(refinement.value));\n case 'hierarchical':\n return state.removeHierarchicalFacetRefinement(refinement.attribute);\n case 'exclude':\n return state.removeExcludeRefinement(refinement.attribute, String(refinement.value));\n case 'numeric':\n return state.removeNumericRefinement(refinement.attribute, refinement.operator, String(refinement.value));\n case 'tag':\n return state.removeTagRefinement(String(refinement.value));\n case 'query':\n return state.setQueryParameter('query', '');\n default:\n process.env.NODE_ENV === 'development' ? warning(false, \"The refinement type \\\"\".concat(refinement.type, \"\\\" does not exist and cannot be cleared from the current refinements.\")) : void 0;\n return state;\n }\n}\nfunction clearRefinement(helper, refinement) {\n helper.setState(clearRefinementFromState(helper.state, refinement)).search();\n}\nfunction getOperatorSymbol(operator) {\n switch (operator) {\n case '>=':\n return '≥';\n case '<=':\n return '≤';\n default:\n return operator;\n }\n}\nfunction normalizeRefinement(refinement) {\n var value = getValue(refinement);\n var label = refinement.operator ? \"\".concat(getOperatorSymbol(refinement.operator), \" \").concat(refinement.name) : refinement.name;\n var normalizedRefinement = {\n attribute: refinement.attribute,\n type: refinement.type,\n value: value,\n label: label\n };\n if (refinement.operator !== undefined) {\n normalizedRefinement.operator = refinement.operator;\n }\n if (refinement.count !== undefined) {\n normalizedRefinement.count = refinement.count;\n }\n if (refinement.exhaustive !== undefined) {\n normalizedRefinement.exhaustive = refinement.exhaustive;\n }\n return normalizedRefinement;\n}\nfunction getValue(refinement) {\n if (refinement.type === 'numeric') {\n return Number(refinement.name);\n }\n if ('escapedValue' in refinement) {\n return refinement.escapedValue;\n }\n return refinement.name;\n}\nexport default connectCurrentRefinements;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"name\", \"escapedValue\", \"data\", \"path\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { checkRendering, warning, createDocumentationMessageGenerator, createSendEventForFacet, isEqual, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'hierarchical-menu',\n connector: true\n});\nvar DEFAULT_SORT = ['name:asc'];\n/**\n * **HierarchicalMenu** connector provides the logic to build a custom widget\n * that will give the user the ability to explore facets in a tree-like structure.\n *\n * This is commonly used for multi-level categorization of products on e-commerce\n * websites. From a UX point of view, we suggest not displaying more than two\n * levels deep.\n *\n * @type {Connector}\n * @param {function(HierarchicalMenuRenderingOptions, boolean)} renderFn Rendering function for the custom **HierarchicalMenu** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomHierarchicalMenuWidgetParams)} Re-usable widget factory for a custom **HierarchicalMenu** widget.\n */\nvar connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attributes = _ref.attributes,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? ' > ' : _ref$separator,\n _ref$rootPath = _ref.rootPath,\n rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,\n _ref$showParentLevel = _ref.showParentLevel,\n showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 10 : _ref$limit,\n _ref$showMore = _ref.showMore,\n showMore = _ref$showMore === void 0 ? false : _ref$showMore,\n _ref$showMoreLimit = _ref.showMoreLimit,\n showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {\n throw new Error(withUsage('The `attributes` option expects an array of strings.'));\n }\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));\n }\n // we need to provide a hierarchicalFacet name for the search state\n // so that we can always map $hierarchicalFacetName => real attributes\n // we use the first attribute name\n var _attributes = _slicedToArray(attributes, 1),\n hierarchicalFacetName = _attributes[0];\n var sendEvent;\n\n // Provide the same function to the `renderFn` so that way the user\n // has to only bind it once when `isFirstRendering` for instance\n var toggleShowMore = function toggleShowMore() {};\n function cachedToggleShowMore() {\n toggleShowMore();\n }\n var _refine;\n var isShowingMore = false;\n function createToggleShowMore(renderOptions, widget) {\n return function () {\n isShowingMore = !isShowingMore;\n widget.render(renderOptions);\n };\n }\n function getLimit() {\n return isShowingMore ? showMoreLimit : limit;\n }\n function _prepareFacetValues(facetValues) {\n return facetValues.slice(0, getLimit()).map(function (_ref2) {\n var label = _ref2.name,\n value = _ref2.escapedValue,\n data = _ref2.data,\n path = _ref2.path,\n subValue = _objectWithoutProperties(_ref2, _excluded);\n var item = _objectSpread(_objectSpread({}, subValue), {}, {\n value: value,\n label: label,\n data: null\n });\n if (Array.isArray(data)) {\n item.data = _prepareFacetValues(data);\n }\n return item;\n });\n }\n return {\n $$type: 'ais.hierarchicalMenu',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n toggleShowMore = createToggleShowMore(renderOptions, this);\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref3) {\n var state = _ref3.state;\n unmountFn();\n return state.removeHierarchicalFacet(hierarchicalFacetName).setQueryParameter('maxValuesPerFacet', undefined);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n hierarchicalMenu: _objectSpread(_objectSpread({}, renderState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref4) {\n var _this = this;\n var results = _ref4.results,\n state = _ref4.state,\n createURL = _ref4.createURL,\n instantSearchInstance = _ref4.instantSearchInstance,\n helper = _ref4.helper;\n var items = [];\n var canToggleShowMore = false;\n\n // Bind createURL to this specific attribute\n var _createURL = function _createURL(facetValue) {\n return createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue),\n helper: helper\n });\n });\n };\n if (!sendEvent) {\n sendEvent = createSendEventForFacet({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n attribute: function attribute(facetValue) {\n var index = facetValue.split(separator).length - 1;\n return attributes[index];\n },\n widgetType: this.$$type\n });\n }\n if (!_refine) {\n _refine = function _refine(facetValue) {\n sendEvent('click:internal', facetValue);\n helper.toggleFacetRefinement(hierarchicalFacetName, facetValue).search();\n };\n }\n if (results) {\n var facetValues = results.getFacetValues(hierarchicalFacetName, {\n sortBy: sortBy,\n facetOrdering: sortBy === DEFAULT_SORT\n });\n var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];\n\n // If the limit is the max number of facet retrieved it is impossible to know\n // if the facets are exhaustive. The only moment we are sure it is exhaustive\n // is when it is strictly under the number requested unless we know that another\n // widget has requested more values (maxValuesPerFacet > getLimit()).\n // Because this is used for making the search of facets unable or not, it is important\n // to be conservative here.\n var hasExhaustiveItems = (state.maxValuesPerFacet || 0) > getLimit() ? facetItems.length <= getLimit() : facetItems.length < getLimit();\n canToggleShowMore = showMore && (isShowingMore || !hasExhaustiveItems);\n items = transformItems(_prepareFacetValues(facetItems), {\n results: results\n });\n }\n return {\n items: items,\n refine: _refine,\n canRefine: items.length > 0,\n createURL: _createURL,\n sendEvent: sendEvent,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n toggleShowMore: cachedToggleShowMore,\n canToggleShowMore: canToggleShowMore\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))\n }), hierarchicalFacetName);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];\n if (searchParameters.isConjunctiveFacet(hierarchicalFacetName) || searchParameters.isDisjunctiveFacet(hierarchicalFacetName)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"HierarchicalMenu: Attribute \\\"\".concat(hierarchicalFacetName, \"\\\" is already used by another widget applying conjunctive or disjunctive faceting.\\nAs this is not supported, please make sure to remove this other widget or this HierarchicalMenu widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {\n var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);\n process.env.NODE_ENV === 'development' ? warning(isEqual(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;\n }\n var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({\n name: hierarchicalFacetName,\n attributes: attributes,\n separator: separator,\n rootPath: rootPath,\n showParentLevel: showParentLevel\n });\n var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;\n var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);\n if (!values) {\n return withMaxValuesPerFacet.setQueryParameters({\n hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))\n });\n }\n return withMaxValuesPerFacet.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));\n }\n };\n };\n};\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.hierarchicalMenu) {\n return indexUiState;\n }\n if (!indexUiState.hierarchicalMenu[attribute] || indexUiState.hierarchicalMenu[attribute].length === 0) {\n delete indexUiState.hierarchicalMenu[attribute];\n }\n if (Object.keys(indexUiState.hierarchicalMenu).length === 0) {\n delete indexUiState.hierarchicalMenu;\n }\n return indexUiState;\n}\nexport default connectHierarchicalMenu;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, warning, createDocumentationMessageGenerator, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'hits-per-page',\n connector: true\n});\nvar connectHitsPerPage = function connectHitsPerPage(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n userItems = _ref.items,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!Array.isArray(userItems)) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n var items = userItems;\n var defaultItems = items.filter(function (item) {\n return item.default === true;\n });\n if (defaultItems.length === 0) {\n throw new Error(withUsage(\"A default value must be specified in `items`.\"));\n }\n if (defaultItems.length > 1) {\n throw new Error(withUsage('More than one default value is specified in `items`.'));\n }\n var defaultItem = defaultItems[0];\n var normalizeItems = function normalizeItems(_ref2) {\n var hitsPerPage = _ref2.hitsPerPage;\n return items.map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n isRefined: Number(item.value) === Number(hitsPerPage)\n });\n });\n };\n var connectorState = {\n getRefine: function getRefine(helper) {\n return function (value) {\n return !value && value !== 0 ? helper.setQueryParameter('hitsPerPage', undefined).search() : helper.setQueryParameter('hitsPerPage', value).search();\n };\n },\n createURLFactory: function createURLFactory(_ref3) {\n var state = _ref3.state,\n createURL = _ref3.createURL,\n getWidgetUiState = _ref3.getWidgetUiState,\n helper = _ref3.helper;\n return function (value) {\n return createURL(function (uiState) {\n return getWidgetUiState(uiState, {\n searchParameters: state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value),\n helper: helper\n });\n });\n };\n }\n };\n return {\n $$type: 'ais.hitsPerPage',\n init: function init(initOptions) {\n var state = initOptions.state,\n instantSearchInstance = initOptions.instantSearchInstance;\n var isCurrentInOptions = items.some(function (item) {\n return Number(state.hitsPerPage) === Number(item.value);\n });\n if (!isCurrentInOptions) {\n process.env.NODE_ENV === 'development' ? warning(state.hitsPerPage !== undefined, \"\\n`hitsPerPage` is not defined.\\nThe option `hitsPerPage` needs to be set using the `configure` widget.\\n\\nLearn more: https://www.algolia.com/doc/api-reference/widgets/hits-per-page/js/\\n \") : void 0;\n process.env.NODE_ENV === 'development' ? warning(false, \"\\nThe `items` option of `hitsPerPage` does not contain the \\\"hits per page\\\" value coming from the state: \".concat(state.hitsPerPage, \".\\n\\nYou may want to add another entry to the `items` option with this value.\")) : void 0;\n items = [\n // The helper will convert the empty string to `undefined`.\n {\n value: '',\n label: ''\n }].concat(_toConsumableArray(items));\n }\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n return state.setQueryParameter('hitsPerPage', undefined);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n hitsPerPage: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref5) {\n var state = _ref5.state,\n results = _ref5.results,\n createURL = _ref5.createURL,\n helper = _ref5.helper;\n var canRefine = results ? results.nbHits > 0 : false;\n return {\n items: transformItems(normalizeItems(state), {\n results: results\n }),\n refine: connectorState.getRefine(helper),\n createURL: connectorState.createURLFactory({\n state: state,\n createURL: createURL,\n getWidgetUiState: this.getWidgetUiState,\n helper: helper\n }),\n hasNoResults: !canRefine,\n canRefine: canRefine,\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref6) {\n var searchParameters = _ref6.searchParameters;\n var hitsPerPage = searchParameters.hitsPerPage;\n if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n hitsPerPage: hitsPerPage\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref7) {\n var uiState = _ref7.uiState;\n return searchParameters.setQueryParameters({\n hitsPerPage: uiState.hitsPerPage || defaultItem.value\n });\n }\n };\n };\n};\nexport default connectHitsPerPage;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"page\"],\n _excluded2 = [\"clickAnalytics\", \"userToken\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits, walkIndex } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'infinite-hits',\n connector: true\n});\nfunction getStateWithoutPage(state) {\n var _ref = state || {},\n page = _ref.page,\n rest = _objectWithoutProperties(_ref, _excluded);\n return rest;\n}\nfunction normalizeState(state) {\n var _ref2 = state || {},\n clickAnalytics = _ref2.clickAnalytics,\n userToken = _ref2.userToken,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n return rest;\n}\nfunction getInMemoryCache() {\n var cachedHits = null;\n var cachedState = null;\n return {\n read: function read(_ref3) {\n var state = _ref3.state;\n return isEqual(cachedState, getStateWithoutPage(state)) ? cachedHits : null;\n },\n write: function write(_ref4) {\n var state = _ref4.state,\n hits = _ref4.hits;\n cachedState = getStateWithoutPage(state);\n cachedHits = hits;\n }\n };\n}\nfunction extractHitsFromCachedHits(cachedHits) {\n return Object.keys(cachedHits).map(Number).sort(function (a, b) {\n return a - b;\n }).reduce(function (acc, page) {\n return acc.concat(cachedHits[page]);\n }, []);\n}\nexport default (function connectInfiniteHits(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref5 = widgetParams || {},\n _ref5$escapeHTML = _ref5.escapeHTML,\n escapeHTML = _ref5$escapeHTML === void 0 ? true : _ref5$escapeHTML,\n _ref5$transformItems = _ref5.transformItems,\n transformItems = _ref5$transformItems === void 0 ? function (items) {\n return items;\n } : _ref5$transformItems,\n _ref5$cache = _ref5.cache,\n cache = _ref5$cache === void 0 ? getInMemoryCache() : _ref5$cache;\n var showPrevious;\n var showMore;\n var sendEvent;\n var bindEvent;\n var getFirstReceivedPage = function getFirstReceivedPage(state, cachedHits) {\n var _state$page = state.page,\n page = _state$page === void 0 ? 0 : _state$page;\n var pages = Object.keys(cachedHits).map(Number);\n if (pages.length === 0) {\n return page;\n } else {\n return Math.min.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n var getLastReceivedPage = function getLastReceivedPage(state, cachedHits) {\n var _state$page2 = state.page,\n page = _state$page2 === void 0 ? 0 : _state$page2;\n var pages = Object.keys(cachedHits).map(Number);\n if (pages.length === 0) {\n return page;\n } else {\n return Math.max.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n var getShowPrevious = function getShowPrevious(helper) {\n return function () {\n // Using the helper's `overrideStateWithoutTriggeringChangeEvent` method\n // avoid updating the browser URL when the user displays the previous page.\n helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {\n page: getFirstReceivedPage(helper.state, cache.read({\n state: normalizeState(helper.state)\n }) || {}) - 1\n })).searchWithoutTriggeringOnStateChange();\n };\n };\n var getShowMore = function getShowMore(helper) {\n return function () {\n helper.setPage(getLastReceivedPage(helper.state, cache.read({\n state: normalizeState(helper.state)\n }) || {}) + 1).search();\n };\n };\n return {\n $$type: 'ais.infiniteHits',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n var widgetRenderState = this.getWidgetRenderState(renderOptions);\n renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n sendEvent('view:internal', widgetRenderState.currentPageHits);\n },\n getRenderState: function getRenderState(renderState, renderOptions\n // Type is explicitly redefined, to avoid having the TWidgetParams type in the definition\n ) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n infiniteHits: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref6) {\n var _results$renderingCon, _results$renderingCon2, _results$renderingCon3;\n var results = _ref6.results,\n helper = _ref6.helper,\n parent = _ref6.parent,\n existingState = _ref6.state,\n instantSearchInstance = _ref6.instantSearchInstance;\n var isFirstPage;\n var currentPageHits = [];\n /**\n * We bail out of optimistic UI here, as the cache is based on search\n * parameters, and we don't want to invalidate the cache when the search\n * is loading.\n */\n var state = parent.getPreviousState() || existingState;\n var cachedHits = cache.read({\n state: normalizeState(state)\n }) || {};\n var banner = results === null || results === void 0 ? void 0 : (_results$renderingCon = results.renderingContent) === null || _results$renderingCon === void 0 ? void 0 : (_results$renderingCon2 = _results$renderingCon.widgets) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.banners) === null || _results$renderingCon3 === void 0 ? void 0 : _results$renderingCon3[0];\n if (!results) {\n showPrevious = getShowPrevious(helper);\n showMore = getShowMore(helper);\n sendEvent = createSendEventForHits({\n instantSearchInstance: instantSearchInstance,\n getIndex: function getIndex() {\n return helper.getIndex();\n },\n widgetType: this.$$type\n });\n bindEvent = createBindEventForHits({\n getIndex: function getIndex() {\n return helper.getIndex();\n },\n widgetType: this.$$type,\n instantSearchInstance: instantSearchInstance\n });\n isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;\n } else {\n var _state$disjunctiveFac, _state$hierarchicalFa;\n var _state$page3 = state.page,\n _page = _state$page3 === void 0 ? 0 : _state$page3;\n if (escapeHTML && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);\n var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);\n var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {\n results: results\n });\n\n /*\n With dynamic widgets, facets are not included in the state before their relevant widgets are mounted. Until then, we need to bail out of writing this incomplete state representation in cache.\n */\n var hasDynamicWidgets = false;\n walkIndex(instantSearchInstance.mainIndex, function (indexWidget) {\n if (!hasDynamicWidgets && indexWidget.getWidgets().some(function (_ref7) {\n var $$type = _ref7.$$type;\n return $$type === 'ais.dynamicWidgets';\n })) {\n hasDynamicWidgets = true;\n }\n });\n var hasNoFacets = !((_state$disjunctiveFac = state.disjunctiveFacets) !== null && _state$disjunctiveFac !== void 0 && _state$disjunctiveFac.length) && !(state.facets || []).filter(function (f) {\n return f !== '*';\n }).length && !((_state$hierarchicalFa = state.hierarchicalFacets) !== null && _state$hierarchicalFa !== void 0 && _state$hierarchicalFa.length);\n if (cachedHits[_page] === undefined && !results.__isArtificial && instantSearchInstance.status === 'idle' && !(hasDynamicWidgets && hasNoFacets)) {\n cachedHits[_page] = transformedHits;\n cache.write({\n state: normalizeState(state),\n hits: cachedHits\n });\n }\n currentPageHits = transformedHits;\n isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;\n }\n var items = extractHitsFromCachedHits(cachedHits);\n var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;\n return {\n hits: items,\n items: items,\n currentPageHits: currentPageHits,\n sendEvent: sendEvent,\n bindEvent: bindEvent,\n banner: banner,\n results: results,\n showPrevious: showPrevious,\n showMore: showMore,\n isFirstPage: isFirstPage,\n isLastPage: isLastPage,\n widgetParams: widgetParams\n };\n },\n dispose: function dispose(_ref8) {\n var state = _ref8.state;\n unmountFn();\n var stateWithoutPage = state.setQueryParameter('page', undefined);\n if (!escapeHTML) {\n return stateWithoutPage;\n }\n return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref9) {\n var searchParameters = _ref9.searchParameters;\n var page = searchParameters.page || 0;\n if (!page) {\n // return without adding `page` to uiState\n // because we don't want `page=1` in the URL\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n // The page in the UI state is incremented by one\n // to expose the user value (not `0`).\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref10) {\n var uiState = _ref10.uiState;\n var widgetSearchParameters = searchParameters;\n if (escapeHTML) {\n // @MAJOR: set this globally, not in the InfiniteHits widget to allow InfiniteHits to be conditionally used\n widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);\n }\n\n // The page in the search parameters is decremented by one\n // to get to the actual parameter value from the UI state.\n var page = uiState.page ? uiState.page - 1 : 0;\n return widgetSearchParameters.setQueryParameter('page', page);\n }\n };\n };\n});","import { withInsights } from \"../../lib/insights/index.js\";\nimport connectInfiniteHits from \"./connectInfiniteHits.js\";\n\n/**\n * Due to https://github.com/microsoft/web-build-tools/issues/1050, we need\n * Connector<...> imported in this file, even though it is only used implicitly.\n * This _uses_ Connector<...> so it is not accidentally removed by someone.\n */ // eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar connectInfiniteHitsWithInsights = withInsights(connectInfiniteHits);\nexport default connectInfiniteHitsWithInsights;","var _excluded = [\"name\", \"escapedValue\", \"path\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'menu',\n connector: true\n});\nvar DEFAULT_SORT = ['isRefined', 'name:asc'];\n/**\n * **Menu** connector provides the logic to build a widget that will give the user the ability to choose a single value for a specific facet. The typical usage of menu is for navigation in categories.\n *\n * This connector provides a `toggleShowMore()` function to display more or less items and a `refine()`\n * function to select an item. While selecting a new element, the `refine` will also unselect the\n * one that is currently selected.\n *\n * **Requirement:** the attribute passed as `attribute` must be present in \"attributes for faceting\" on the Algolia dashboard or configured as attributesForFaceting via a set settings call to the Algolia API.\n */\nvar connectMenu = function connectMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attribute = _ref.attribute,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 10 : _ref$limit,\n _ref$showMore = _ref.showMore,\n showMore = _ref$showMore === void 0 ? false : _ref$showMore,\n _ref$showMoreLimit = _ref.showMoreLimit,\n showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));\n }\n var sendEvent;\n var _createURL;\n var _refine;\n\n // Provide the same function to the `renderFn` so that way the user\n // has to only bind it once when `isFirstRendering` for instance\n var isShowingMore = false;\n var toggleShowMore = function toggleShowMore() {};\n function createToggleShowMore(renderOptions, widget) {\n return function () {\n isShowingMore = !isShowingMore;\n widget.render(renderOptions);\n };\n }\n function cachedToggleShowMore() {\n toggleShowMore();\n }\n function getLimit() {\n return isShowingMore ? showMoreLimit : limit;\n }\n return {\n $$type: 'ais.menu',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref2) {\n var state = _ref2.state;\n unmountFn();\n return state.removeHierarchicalFacet(attribute).setQueryParameter('maxValuesPerFacet', undefined);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n menu: _objectSpread(_objectSpread({}, renderState.menu), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(renderOptions) {\n var _this = this;\n var results = renderOptions.results,\n createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance,\n helper = renderOptions.helper;\n var items = [];\n var canToggleShowMore = false;\n if (!sendEvent) {\n sendEvent = createSendEventForFacet({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n attribute: attribute,\n widgetType: this.$$type\n });\n }\n if (!_createURL) {\n _createURL = function _createURL(facetValue) {\n return createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: helper.state.resetPage().toggleFacetRefinement(attribute, facetValue),\n helper: helper\n });\n });\n };\n }\n if (!_refine) {\n _refine = function _refine(facetValue) {\n var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),\n _helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),\n refinedItem = _helper$getHierarchic2[0];\n sendEvent('click:internal', facetValue ? facetValue : refinedItem);\n helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();\n };\n }\n if (renderOptions.results) {\n toggleShowMore = createToggleShowMore(renderOptions, this);\n }\n if (results) {\n var facetValues = results.getFacetValues(attribute, {\n sortBy: sortBy,\n facetOrdering: sortBy === DEFAULT_SORT\n });\n var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];\n canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());\n items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {\n var label = _ref3.name,\n value = _ref3.escapedValue,\n path = _ref3.path,\n item = _objectWithoutProperties(_ref3, _excluded);\n return _objectSpread(_objectSpread({}, item), {}, {\n label: label,\n value: value\n });\n }), {\n results: results\n });\n }\n return {\n items: items,\n createURL: _createURL,\n refine: _refine,\n sendEvent: sendEvent,\n canRefine: items.length > 0,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n toggleShowMore: cachedToggleShowMore,\n canToggleShowMore: canToggleShowMore\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),\n _searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),\n value = _searchParameters$get2[0];\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))\n }), attribute);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n var value = uiState.menu && uiState.menu[attribute];\n if (searchParameters.isConjunctiveFacet(attribute) || searchParameters.isDisjunctiveFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"Menu: Attribute \\\"\".concat(attribute, \"\\\" is already used by another widget applying conjunctive or disjunctive faceting.\\nAs this is not supported, please make sure to remove this other widget or this Menu widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n var withFacetConfiguration = searchParameters.removeHierarchicalFacet(attribute).addHierarchicalFacet({\n name: attribute,\n attributes: [attribute]\n });\n var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;\n var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);\n if (!value) {\n return withMaxValuesPerFacet.setQueryParameters({\n hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))\n });\n }\n return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);\n }\n };\n };\n};\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.menu) {\n return indexUiState;\n }\n if (indexUiState.menu[attribute] === undefined) {\n delete indexUiState.menu[attribute];\n }\n if (Object.keys(indexUiState.menu).length === 0) {\n delete indexUiState.menu;\n }\n return indexUiState;\n}\nexport default connectMenu;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'numeric-menu',\n connector: true\n});\nvar $$type = 'ais.numericMenu';\nvar createSendEvent = function createSendEvent(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance;\n return function () {\n if (arguments.length === 1) {\n instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);\n return;\n }\n };\n};\nvar connectNumericMenu = function connectNumericMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n _ref2$attribute = _ref2.attribute,\n attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,\n _ref2$items = _ref2.items,\n items = _ref2$items === void 0 ? [] : _ref2$items,\n _ref2$transformItems = _ref2.transformItems,\n transformItems = _ref2$transformItems === void 0 ? function (item) {\n return item;\n } : _ref2$transformItems;\n if (attribute === '') {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n if (!items || items.length === 0) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n var prepareItems = function prepareItems(state) {\n return items.map(function (_ref3) {\n var start = _ref3.start,\n end = _ref3.end,\n label = _ref3.label;\n return {\n label: label,\n value: encodeURI(JSON.stringify({\n start: start,\n end: end\n })),\n isRefined: isRefined(state, attribute, {\n start: start,\n end: end,\n label: label\n })\n };\n });\n };\n var connectorState = {};\n return {\n $$type: $$type,\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n return state.removeNumericRefinement(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var values = searchParameters.getNumericRefinements(attribute);\n var equal = values['='] && values['='][0];\n if (equal || equal === 0) {\n return _objectSpread(_objectSpread({}, uiState), {}, {\n numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, \"\".concat(values['='])))\n });\n }\n var min = values['>='] && values['>='][0] || '';\n var max = values['<='] && values['<='][0] || '';\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, \"\".concat(min, \":\").concat(max)))\n }), attribute);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var value = uiState.numericMenu && uiState.numericMenu[attribute];\n var withoutRefinements = searchParameters.setQueryParameters({\n numericRefinements: _objectSpread(_objectSpread({}, searchParameters.numericRefinements), {}, _defineProperty({}, attribute, {}))\n });\n if (!value) {\n return withoutRefinements;\n }\n var isExact = value.indexOf(':') === -1;\n if (isExact) {\n return withoutRefinements.addNumericRefinement(attribute, '=', Number(value));\n }\n var _value$split$map = value.split(':').map(parseFloat),\n _value$split$map2 = _slicedToArray(_value$split$map, 2),\n min = _value$split$map2[0],\n max = _value$split$map2[1];\n var withMinRefinement = isFiniteNumber(min) ? withoutRefinements.addNumericRefinement(attribute, '>=', min) : withoutRefinements;\n var withMaxRefinement = isFiniteNumber(max) ? withMinRefinement.addNumericRefinement(attribute, '<=', max) : withMinRefinement;\n return withMaxRefinement;\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n numericMenu: _objectSpread(_objectSpread({}, renderState.numericMenu), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref7) {\n var _this = this;\n var results = _ref7.results,\n state = _ref7.state,\n instantSearchInstance = _ref7.instantSearchInstance,\n helper = _ref7.helper,\n createURL = _ref7.createURL;\n if (!connectorState.refine) {\n connectorState.refine = function (facetValue) {\n var refinedState = getRefinedState(helper.state, attribute, facetValue);\n connectorState.sendEvent('click:internal', facetValue);\n helper.setState(refinedState).search();\n };\n }\n if (!connectorState.createURL) {\n connectorState.createURL = function (newState) {\n return function (facetValue) {\n return createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: getRefinedState(newState, attribute, facetValue),\n helper: helper\n });\n });\n };\n };\n }\n if (!connectorState.sendEvent) {\n connectorState.sendEvent = createSendEvent({\n instantSearchInstance: instantSearchInstance\n });\n }\n var hasNoResults = results ? results.nbHits === 0 : true;\n var preparedItems = prepareItems(state);\n var allIsSelected = true;\n // @TODO avoid for..of for polyfill reasons\n // eslint-disable-next-line no-restricted-syntax\n var _iterator = _createForOfIteratorHelper(preparedItems),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n if (item.isRefined && decodeURI(item.value) !== '{}') {\n allIsSelected = false;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return {\n createURL: connectorState.createURL(state),\n items: transformItems(preparedItems, {\n results: results\n }),\n hasNoResults: hasNoResults,\n canRefine: !(hasNoResults && allIsSelected),\n refine: connectorState.refine,\n sendEvent: connectorState.sendEvent,\n widgetParams: widgetParams\n };\n }\n };\n };\n};\nfunction isRefined(state, attribute, option) {\n // @TODO: same as another spot, why is this mixing arrays & elements?\n var currentRefinements = state.getNumericRefinements(attribute);\n if (option.start !== undefined && option.end !== undefined) {\n if (option.start === option.end) {\n return hasNumericRefinement(currentRefinements, '=', option.start);\n } else {\n return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);\n }\n }\n if (option.start !== undefined) {\n return hasNumericRefinement(currentRefinements, '>=', option.start);\n }\n if (option.end !== undefined) {\n return hasNumericRefinement(currentRefinements, '<=', option.end);\n }\n if (option.start === undefined && option.end === undefined) {\n return Object.keys(currentRefinements).every(function (operator) {\n return (currentRefinements[operator] || []).length === 0;\n });\n }\n return false;\n}\nfunction getRefinedState(state, attribute, facetValue) {\n var resolvedState = state;\n var refinedOption = JSON.parse(decodeURI(facetValue));\n\n // @TODO: why is array / element mixed here & hasRefinements; seems wrong?\n var currentRefinements = resolvedState.getNumericRefinements(attribute);\n if (refinedOption.start === undefined && refinedOption.end === undefined) {\n return resolvedState.removeNumericRefinement(attribute);\n }\n if (!isRefined(resolvedState, attribute, refinedOption)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute);\n }\n if (refinedOption.start !== undefined && refinedOption.end !== undefined) {\n if (refinedOption.start > refinedOption.end) {\n throw new Error('option.start should be > to option.end');\n }\n if (refinedOption.start === refinedOption.end) {\n if (hasNumericRefinement(currentRefinements, '=', refinedOption.start)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute, '=', refinedOption.start);\n } else {\n resolvedState = resolvedState.addNumericRefinement(attribute, '=', refinedOption.start);\n }\n return resolvedState;\n }\n }\n if (refinedOption.start !== undefined) {\n if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);\n }\n resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);\n }\n if (refinedOption.end !== undefined) {\n if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);\n }\n resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);\n }\n if (typeof resolvedState.page === 'number') {\n resolvedState.page = 0;\n }\n return resolvedState;\n}\nfunction hasNumericRefinement(currentRefinements, operator, value) {\n return currentRefinements[operator] !== undefined && currentRefinements[operator].includes(value);\n}\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.numericMenu) {\n return indexUiState;\n }\n if (indexUiState.numericMenu[attribute] === ':') {\n delete indexUiState.numericMenu[attribute];\n }\n if (Object.keys(indexUiState.numericMenu).length === 0) {\n delete indexUiState.numericMenu;\n }\n return indexUiState;\n}\nexport default connectNumericMenu;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { range } from \"../../lib/utils/index.js\";\nvar Paginator = /*#__PURE__*/function () {\n function Paginator(params) {\n _classCallCheck(this, Paginator);\n _defineProperty(this, \"currentPage\", void 0);\n _defineProperty(this, \"total\", void 0);\n _defineProperty(this, \"padding\", void 0);\n this.currentPage = params.currentPage;\n this.total = params.total;\n this.padding = params.padding;\n }\n _createClass(Paginator, [{\n key: \"pages\",\n value: function pages() {\n var total = this.total,\n currentPage = this.currentPage,\n padding = this.padding;\n if (total === 0) return [0];\n var totalDisplayedPages = this.nbPagesDisplayed(padding, total);\n if (totalDisplayedPages === total) {\n return range({\n end: total\n });\n }\n var paddingLeft = this.calculatePaddingLeft(currentPage, padding, total, totalDisplayedPages);\n var paddingRight = totalDisplayedPages - paddingLeft;\n var first = currentPage - paddingLeft;\n var last = currentPage + paddingRight;\n return range({\n start: first,\n end: last\n });\n }\n }, {\n key: \"nbPagesDisplayed\",\n value: function nbPagesDisplayed(padding, total) {\n return Math.min(2 * padding + 1, total);\n }\n }, {\n key: \"calculatePaddingLeft\",\n value: function calculatePaddingLeft(current, padding, total, totalDisplayedPages) {\n if (current <= padding) {\n return current;\n }\n if (current >= total - padding) {\n return totalDisplayedPages - (total - current);\n }\n return padding;\n }\n }, {\n key: \"isLastPage\",\n value: function isLastPage() {\n return this.currentPage >= this.total - 1;\n }\n }, {\n key: \"isFirstPage\",\n value: function isFirstPage() {\n return this.currentPage <= 0;\n }\n }]);\n return Paginator;\n}();\nexport default Paginator;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, noop } from \"../../lib/utils/index.js\";\nimport Paginator from \"./Paginator.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'pagination',\n connector: true\n});\n/**\n * **Pagination** connector provides the logic to build a widget that will let the user\n * choose the current page of the results.\n *\n * When using the pagination with Algolia, you should be aware that the engine won't provide you pages\n * beyond the 1000th hits by default. You can find more information on the [Algolia documentation](https://www.algolia.com/doc/guides/searching/pagination/#pagination-limitations).\n */\nvar connectPagination = function connectPagination(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n totalPages = _ref.totalPages,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 3 : _ref$padding;\n var pager = new Paginator({\n currentPage: 0,\n total: 0,\n padding: padding\n });\n var connectorState = {};\n function getMaxPage(_ref2) {\n var nbPages = _ref2.nbPages;\n return totalPages !== undefined ? Math.min(totalPages, nbPages) : nbPages;\n }\n return {\n $$type: 'ais.pagination',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref3) {\n var state = _ref3.state;\n unmountFn();\n return state.setQueryParameter('page', undefined);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var page = searchParameters.page || 0;\n if (!page) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n var page = uiState.page ? uiState.page - 1 : 0;\n return searchParameters.setQueryParameter('page', page);\n },\n getWidgetRenderState: function getWidgetRenderState(_ref6) {\n var results = _ref6.results,\n helper = _ref6.helper,\n state = _ref6.state,\n createURL = _ref6.createURL;\n if (!connectorState.refine) {\n connectorState.refine = function (page) {\n helper.setPage(page);\n helper.search();\n };\n }\n if (!connectorState.createURL) {\n connectorState.createURL = function (page) {\n return createURL(function (uiState) {\n return _objectSpread(_objectSpread({}, uiState), {}, {\n page: page + 1\n });\n });\n };\n }\n var page = state.page || 0;\n var nbPages = getMaxPage(results || {\n nbPages: 0\n });\n pager.currentPage = page;\n pager.total = nbPages;\n return {\n createURL: connectorState.createURL,\n refine: connectorState.refine,\n canRefine: nbPages > 1,\n currentRefinement: page,\n nbHits: (results === null || results === void 0 ? void 0 : results.nbHits) || 0,\n nbPages: nbPages,\n pages: results ? pager.pages() : [],\n isFirstPage: pager.isFirstPage(),\n isLastPage: pager.isLastPage(),\n widgetParams: widgetParams\n };\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n pagination: this.getWidgetRenderState(renderOptions)\n });\n }\n };\n };\n};\nexport default connectPagination;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, find, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'range-input',\n connector: true\n}, {\n name: 'range-slider',\n connector: true\n});\nvar $$type = 'ais.range';\n\n// @MAJOR: potentially we should consolidate these types\n\nfunction toPrecision(_ref) {\n var min = _ref.min,\n max = _ref.max,\n precision = _ref.precision;\n var pow = Math.pow(10, precision);\n return {\n min: min ? Math.floor(min * pow) / pow : min,\n max: max ? Math.ceil(max * pow) / pow : max\n };\n}\n\n/**\n * **Range** connector provides the logic to create custom widget that will let\n * the user refine results using a numeric range.\n *\n * This connectors provides a `refine()` function that accepts bounds. It will also provide\n * information about the min and max bounds for the current result set.\n */\nvar connectRange = function connectRange(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n _ref2$attribute = _ref2.attribute,\n attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,\n minBound = _ref2.min,\n maxBound = _ref2.max,\n _ref2$precision = _ref2.precision,\n precision = _ref2$precision === void 0 ? 0 : _ref2$precision;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n if (isFiniteNumber(minBound) && isFiniteNumber(maxBound) && minBound > maxBound) {\n throw new Error(withUsage(\"The `max` option can't be lower than `min`.\"));\n }\n var formatToNumber = function formatToNumber(v) {\n return Number(Number(v).toFixed(precision));\n };\n var rangeFormatter = {\n from: function from(v) {\n return v.toLocaleString();\n },\n to: function to(v) {\n return formatToNumber(v).toLocaleString();\n }\n };\n\n // eslint-disable-next-line complexity\n var getRefinedState = function getRefinedState(helper, currentRange, nextMin, nextMax) {\n var resolvedState = helper.state;\n var currentRangeMin = currentRange.min,\n currentRangeMax = currentRange.max;\n var _ref3 = resolvedState.getNumericRefinement(attribute, '>=') || [],\n _ref4 = _slicedToArray(_ref3, 1),\n min = _ref4[0];\n var _ref5 = resolvedState.getNumericRefinement(attribute, '<=') || [],\n _ref6 = _slicedToArray(_ref5, 1),\n max = _ref6[0];\n var isResetMin = nextMin === undefined || nextMin === '';\n var isResetMax = nextMax === undefined || nextMax === '';\n var _toPrecision = toPrecision({\n min: !isResetMin ? parseFloat(nextMin) : undefined,\n max: !isResetMax ? parseFloat(nextMax) : undefined,\n precision: precision\n }),\n nextMinAsNumber = _toPrecision.min,\n nextMaxAsNumber = _toPrecision.max;\n var newNextMin;\n if (!isFiniteNumber(minBound) && currentRangeMin === nextMinAsNumber) {\n newNextMin = undefined;\n } else if (isFiniteNumber(minBound) && isResetMin) {\n newNextMin = minBound;\n } else {\n newNextMin = nextMinAsNumber;\n }\n var newNextMax;\n if (!isFiniteNumber(maxBound) && currentRangeMax === nextMaxAsNumber) {\n newNextMax = undefined;\n } else if (isFiniteNumber(maxBound) && isResetMax) {\n newNextMax = maxBound;\n } else {\n newNextMax = nextMaxAsNumber;\n }\n var isResetNewNextMin = newNextMin === undefined;\n var isGreaterThanCurrentRange = isFiniteNumber(currentRangeMin) && currentRangeMin <= newNextMin;\n var isMinValid = isResetNewNextMin || isFiniteNumber(newNextMin) && (!isFiniteNumber(currentRangeMin) || isGreaterThanCurrentRange);\n var isResetNewNextMax = newNextMax === undefined;\n var isLowerThanRange = isFiniteNumber(newNextMax) && currentRangeMax >= newNextMax;\n var isMaxValid = isResetNewNextMax || isFiniteNumber(newNextMax) && (!isFiniteNumber(currentRangeMax) || isLowerThanRange);\n var hasMinChange = min !== newNextMin;\n var hasMaxChange = max !== newNextMax;\n if ((hasMinChange || hasMaxChange) && isMinValid && isMaxValid) {\n resolvedState = resolvedState.removeNumericRefinement(attribute);\n if (isFiniteNumber(newNextMin)) {\n resolvedState = resolvedState.addNumericRefinement(attribute, '>=', newNextMin);\n }\n if (isFiniteNumber(newNextMax)) {\n resolvedState = resolvedState.addNumericRefinement(attribute, '<=', newNextMax);\n }\n return resolvedState.resetPage();\n }\n return null;\n };\n var createSendEvent = function createSendEvent(instantSearchInstance) {\n return function () {\n if (arguments.length === 1) {\n instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);\n return;\n }\n };\n };\n function _getCurrentRange(stats) {\n var min;\n if (isFiniteNumber(minBound)) {\n min = minBound;\n } else if (isFiniteNumber(stats.min)) {\n min = stats.min;\n } else {\n min = 0;\n }\n var max;\n if (isFiniteNumber(maxBound)) {\n max = maxBound;\n } else if (isFiniteNumber(stats.max)) {\n max = stats.max;\n } else {\n max = 0;\n }\n return toPrecision({\n min: min,\n max: max,\n precision: precision\n });\n }\n function _getCurrentRefinement(helper) {\n var _ref7 = helper.getNumericRefinement(attribute, '>=') || [],\n _ref8 = _slicedToArray(_ref7, 1),\n minValue = _ref8[0];\n var _ref9 = helper.getNumericRefinement(attribute, '<=') || [],\n _ref10 = _slicedToArray(_ref9, 1),\n maxValue = _ref10[0];\n var min = isFiniteNumber(minValue) ? minValue : -Infinity;\n var max = isFiniteNumber(maxValue) ? maxValue : Infinity;\n return [min, max];\n }\n function _refine(helper, currentRange) {\n return function () {\n var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [undefined, undefined],\n _ref12 = _slicedToArray(_ref11, 2),\n nextMin = _ref12[0],\n nextMax = _ref12[1];\n var refinedState = getRefinedState(helper, currentRange, nextMin, nextMax);\n if (refinedState) {\n helper.setState(refinedState).search();\n }\n };\n }\n return {\n $$type: $$type,\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n range: _objectSpread(_objectSpread({}, renderState.range), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref13) {\n var results = _ref13.results,\n helper = _ref13.helper,\n instantSearchInstance = _ref13.instantSearchInstance;\n var facetsFromResults = results && results.disjunctiveFacets || [];\n var facet = find(facetsFromResults, function (facetResult) {\n return facetResult.name === attribute;\n });\n var stats = facet && facet.stats || {\n min: undefined,\n max: undefined\n };\n var currentRange = _getCurrentRange(stats);\n var start = _getCurrentRefinement(helper);\n var refine;\n if (!results) {\n // On first render pass an empty range\n // to be able to bypass the validation\n // related to it\n refine = _refine(helper, {\n min: undefined,\n max: undefined\n });\n } else {\n refine = _refine(helper, currentRange);\n }\n return {\n refine: refine,\n canRefine: currentRange.min !== currentRange.max,\n format: rangeFormatter,\n range: currentRange,\n sendEvent: createSendEvent(instantSearchInstance),\n widgetParams: _objectSpread(_objectSpread({}, widgetParams), {}, {\n precision: precision\n }),\n start: start\n };\n },\n dispose: function dispose(_ref14) {\n var state = _ref14.state;\n unmountFn();\n return state.removeDisjunctiveFacet(attribute).removeNumericRefinement(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref15) {\n var searchParameters = _ref15.searchParameters;\n var _searchParameters$get = searchParameters.getNumericRefinements(attribute),\n _searchParameters$get2 = _searchParameters$get['>='],\n min = _searchParameters$get2 === void 0 ? [] : _searchParameters$get2,\n _searchParameters$get3 = _searchParameters$get['<='],\n max = _searchParameters$get3 === void 0 ? [] : _searchParameters$get3;\n if (min.length === 0 && max.length === 0) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n range: _objectSpread(_objectSpread({}, uiState.range), {}, _defineProperty({}, attribute, \"\".concat(min, \":\").concat(max)))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref16) {\n var uiState = _ref16.uiState;\n var widgetSearchParameters = searchParameters.addDisjunctiveFacet(attribute).setQueryParameters({\n numericRefinements: _objectSpread(_objectSpread({}, searchParameters.numericRefinements), {}, _defineProperty({}, attribute, {}))\n });\n if (isFiniteNumber(minBound)) {\n widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', minBound);\n }\n if (isFiniteNumber(maxBound)) {\n widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', maxBound);\n }\n var value = uiState.range && uiState.range[attribute];\n if (!value || value.indexOf(':') === -1) {\n return widgetSearchParameters;\n }\n var _value$split$map = value.split(':').map(parseFloat),\n _value$split$map2 = _slicedToArray(_value$split$map, 2),\n lowerBound = _value$split$map2[0],\n upperBound = _value$split$map2[1];\n if (isFiniteNumber(lowerBound) && (!isFiniteNumber(minBound) || minBound < lowerBound)) {\n widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '>=');\n widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', lowerBound);\n }\n if (isFiniteNumber(upperBound) && (!isFiniteNumber(maxBound) || upperBound < maxBound)) {\n widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '<=');\n widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', upperBound);\n }\n return widgetSearchParameters;\n }\n };\n };\n};\nexport default connectRange;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"name\", \"escapedValue\"],\n _excluded2 = [\"escapedValue\", \"value\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { escapeFacets, TAG_PLACEHOLDER, TAG_REPLACEMENT, checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'refinement-list',\n connector: true\n});\nvar DEFAULT_SORT = ['isRefined', 'count:desc', 'name:asc'];\n/**\n * **RefinementList** connector provides the logic to build a custom widget that\n * will let the user filter the results based on the values of a specific facet.\n *\n * **Requirement:** the attribute passed as `attribute` must be present in\n * attributesForFaceting of the searched index.\n *\n * This connector provides:\n * - a `refine()` function to select an item.\n * - a `toggleShowMore()` function to display more or less items\n * - a `searchForItems()` function to search within the items.\n */\nvar connectRefinementList = function connectRefinementList(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attribute = _ref.attribute,\n _ref$operator = _ref.operator,\n operator = _ref$operator === void 0 ? 'or' : _ref$operator,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 10 : _ref$limit,\n _ref$showMore = _ref.showMore,\n showMore = _ref$showMore === void 0 ? false : _ref$showMore,\n _ref$showMoreLimit = _ref.showMoreLimit,\n showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,\n _ref$escapeFacetValue = _ref.escapeFacetValues,\n escapeFacetValues = _ref$escapeFacetValue === void 0 ? true : _ref$escapeFacetValue,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n if (!/^(and|or)$/.test(operator)) {\n throw new Error(withUsage(\"The `operator` must one of: `\\\"and\\\"`, `\\\"or\\\"` (got \\\"\".concat(operator, \"\\\").\")));\n }\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('`showMoreLimit` should be greater than `limit`.'));\n }\n var formatItems = function formatItems(_ref2) {\n var label = _ref2.name,\n value = _ref2.escapedValue,\n item = _objectWithoutProperties(_ref2, _excluded);\n return _objectSpread(_objectSpread({}, item), {}, {\n value: value,\n label: label,\n highlighted: label\n });\n };\n var lastResultsFromMainSearch;\n var lastItemsFromMainSearch = [];\n var hasExhaustiveItems = true;\n var triggerRefine;\n var sendEvent;\n var isShowingMore = false;\n // Provide the same function to the `renderFn` so that way the user\n // has to only bind it once when `isFirstRendering` for instance\n var toggleShowMore = function toggleShowMore() {};\n function cachedToggleShowMore() {\n toggleShowMore();\n }\n function createToggleShowMore(renderOptions, widget) {\n return function () {\n isShowingMore = !isShowingMore;\n widget.render(renderOptions);\n };\n }\n function getLimit() {\n return isShowingMore ? showMoreLimit : limit;\n }\n var searchForFacetValues = function searchForFacetValues() {\n return function () {};\n };\n var createSearchForFacetValues = function createSearchForFacetValues(helper, widget) {\n return function (renderOptions) {\n return function (query) {\n var instantSearchInstance = renderOptions.instantSearchInstance,\n searchResults = renderOptions.results;\n if (query === '' && lastItemsFromMainSearch) {\n // render with previous data from the helper.\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n } else {\n var tags = {\n highlightPreTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPreTag : TAG_REPLACEMENT.highlightPreTag,\n highlightPostTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPostTag : TAG_REPLACEMENT.highlightPostTag\n };\n helper.searchForFacetValues(attribute, query,\n // We cap the `maxFacetHits` value to 100 because the Algolia API\n // doesn't support a greater number.\n // See https://www.algolia.com/doc/api-reference/api-parameters/maxFacetHits/\n Math.min(getLimit(), 100), tags).then(function (results) {\n var facetValues = escapeFacetValues ? escapeFacets(results.facetHits) : results.facetHits;\n var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {\n var escapedValue = _ref3.escapedValue,\n value = _ref3.value,\n item = _objectWithoutProperties(_ref3, _excluded2);\n return _objectSpread(_objectSpread({}, item), {}, {\n value: escapedValue,\n label: value\n });\n }), {\n results: searchResults\n });\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n items: normalizedFacetValues,\n canToggleShowMore: false,\n canRefine: true,\n isFromSearch: true,\n instantSearchInstance: instantSearchInstance\n }), false);\n });\n }\n };\n };\n };\n return {\n $$type: 'ais.refinementList',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n refinementList: _objectSpread(_objectSpread({}, renderState.refinementList), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(renderOptions) {\n var _this = this;\n var results = renderOptions.results,\n state = renderOptions.state,\n _createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance,\n helper = renderOptions.helper;\n var items = [];\n var facetValues = [];\n if (!sendEvent || !triggerRefine || !searchForFacetValues) {\n sendEvent = createSendEventForFacet({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n attribute: attribute,\n widgetType: this.$$type\n });\n triggerRefine = function triggerRefine(facetValue) {\n sendEvent('click:internal', facetValue);\n helper.toggleFacetRefinement(attribute, facetValue).search();\n };\n searchForFacetValues = createSearchForFacetValues(helper, this);\n }\n if (results) {\n var values = results.getFacetValues(attribute, {\n sortBy: sortBy,\n facetOrdering: sortBy === DEFAULT_SORT\n });\n facetValues = values && Array.isArray(values) ? values : [];\n items = transformItems(facetValues.slice(0, getLimit()).map(formatItems), {\n results: results\n });\n var maxValuesPerFacetConfig = state.maxValuesPerFacet;\n var currentLimit = getLimit();\n // If the limit is the max number of facet retrieved it is impossible to know\n // if the facets are exhaustive. The only moment we are sure it is exhaustive\n // is when it is strictly under the number requested unless we know that another\n // widget has requested more values (maxValuesPerFacet > getLimit()).\n // Because this is used for making the search of facets unable or not, it is important\n // to be conservative here.\n hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;\n lastResultsFromMainSearch = results;\n lastItemsFromMainSearch = items;\n if (renderOptions.results) {\n toggleShowMore = createToggleShowMore(renderOptions, this);\n }\n }\n\n // Do not mistake searchForFacetValues and searchFacetValues which is the actual search\n // function\n var searchFacetValues = searchForFacetValues && searchForFacetValues(renderOptions);\n var canShowLess = isShowingMore && lastItemsFromMainSearch.length > limit;\n var canShowMore = showMore && !hasExhaustiveItems;\n var canToggleShowMore = canShowLess || canShowMore;\n return {\n createURL: function createURL(facetValue) {\n return _createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: state.resetPage().toggleFacetRefinement(attribute, facetValue),\n helper: helper\n });\n });\n },\n items: items,\n refine: triggerRefine,\n searchForItems: searchFacetValues,\n isFromSearch: false,\n canRefine: items.length > 0,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n canToggleShowMore: canToggleShowMore,\n toggleShowMore: cachedToggleShowMore,\n sendEvent: sendEvent,\n hasExhaustiveItems: hasExhaustiveItems\n };\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n var withoutMaxValuesPerFacet = state.setQueryParameter('maxValuesPerFacet', undefined);\n if (operator === 'and') {\n return withoutMaxValuesPerFacet.removeFacet(attribute);\n }\n return withoutMaxValuesPerFacet.removeDisjunctiveFacet(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n refinementList: _objectSpread(_objectSpread({}, uiState.refinementList), {}, _defineProperty({}, attribute, values))\n }), attribute);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var isDisjunctive = operator === 'or';\n if (searchParameters.isHierarchicalFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"RefinementList: Attribute \\\"\".concat(attribute, \"\\\" is already used by another widget applying hierarchical faceting.\\nAs this is not supported, please make sure to remove this other widget or this RefinementList widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n if (isDisjunctive && searchParameters.isConjunctiveFacet(attribute) || !isDisjunctive && searchParameters.isDisjunctiveFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"RefinementList: Attribute \\\"\".concat(attribute, \"\\\" is used by another refinement list with a different operator.\\nAs this is not supported, please make sure to only use this attribute with one of the two operators.\")) : void 0;\n return searchParameters;\n }\n var values = uiState.refinementList && uiState.refinementList[attribute];\n var withFacetConfiguration = isDisjunctive ? searchParameters.addDisjunctiveFacet(attribute).removeDisjunctiveFacetRefinement(attribute) : searchParameters.addFacet(attribute).removeFacetRefinement(attribute);\n var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;\n var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);\n if (!values) {\n var key = isDisjunctive ? 'disjunctiveFacetsRefinements' : 'facetsRefinements';\n return withMaxValuesPerFacet.setQueryParameters(_defineProperty({}, key, _objectSpread(_objectSpread({}, withMaxValuesPerFacet[key]), {}, _defineProperty({}, attribute, []))));\n }\n return values.reduce(function (parameters, value) {\n return isDisjunctive ? parameters.addDisjunctiveFacetRefinement(attribute, value) : parameters.addFacetRefinement(attribute, value);\n }, withMaxValuesPerFacet);\n }\n };\n };\n};\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.refinementList) {\n return indexUiState;\n }\n if (!indexUiState.refinementList[attribute] || indexUiState.refinementList[attribute].length === 0) {\n delete indexUiState.refinementList[attribute];\n }\n if (Object.keys(indexUiState.refinementList).length === 0) {\n delete indexUiState.refinementList;\n }\n return indexUiState;\n}\nexport default connectRefinementList;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, find, warning, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'sort-by',\n connector: true\n});\n\n/**\n * The **SortBy** connector provides the logic to build a custom widget that will display a\n * list of indices. With Algolia, this is most commonly used for changing ranking strategy. This allows\n * a user to change how the hits are being sorted.\n */\n\nvar connectSortBy = function connectSortBy(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n var connectorState = {};\n return function (widgetParams) {\n var _ref = widgetParams || {},\n items = _ref.items,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (x) {\n return x;\n } : _ref$transformItems;\n if (!Array.isArray(items)) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n return {\n $$type: 'ais.sortBy',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n var widgetRenderState = this.getWidgetRenderState(initOptions);\n var currentIndex = widgetRenderState.currentRefinement;\n var isCurrentIndexInItems = find(items, function (item) {\n return item.value === currentIndex;\n });\n process.env.NODE_ENV === 'development' ? warning(isCurrentIndexInItems !== undefined, \"The index named \\\"\".concat(currentIndex, \"\\\" is not listed in the `items` of `sortBy`.\")) : void 0;\n renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref2) {\n var state = _ref2.state;\n unmountFn();\n return connectorState.initialIndex ? state.setIndex(connectorState.initialIndex) : state;\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n sortBy: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref3) {\n var results = _ref3.results,\n helper = _ref3.helper,\n state = _ref3.state,\n parent = _ref3.parent;\n if (!connectorState.initialIndex && parent) {\n connectorState.initialIndex = parent.getIndexName();\n }\n if (!connectorState.setIndex) {\n connectorState.setIndex = function (indexName) {\n helper.setIndex(indexName).search();\n };\n }\n var hasNoResults = results ? results.nbHits === 0 : true;\n return {\n currentRefinement: state.index,\n options: transformItems(items, {\n results: results\n }),\n refine: connectorState.setIndex,\n hasNoResults: hasNoResults,\n canRefine: !hasNoResults && items.length > 0,\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var currentIndex = searchParameters.index;\n return _objectSpread(_objectSpread({}, uiState), {}, {\n sortBy: currentIndex !== connectorState.initialIndex ? currentIndex : undefined\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n return searchParameters.setQueryParameter('index', uiState.sortBy || connectorState.initialIndex || searchParameters.index);\n }\n };\n };\n};\nexport default connectSortBy;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { checkRendering, createDocumentationLink, createDocumentationMessageGenerator, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'rating-menu',\n connector: true\n});\nvar $$type = 'ais.ratingMenu';\nvar MAX_VALUES_PER_FACET_API_LIMIT = 1000;\nvar STEP = 1;\nvar createSendEvent = function createSendEvent(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper,\n getRefinedStar = _ref.getRefinedStar,\n attribute = _ref.attribute;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1) {\n instantSearchInstance.sendEventToInsights(args[0]);\n return;\n }\n var facetValue = args[1],\n _args$ = args[2],\n eventName = _args$ === void 0 ? 'Filter Applied' : _args$;\n var _args$0$split = args[0].split(':'),\n _args$0$split2 = _slicedToArray(_args$0$split, 2),\n eventType = _args$0$split2[0],\n eventModifier = _args$0$split2[1];\n if (eventType !== 'click') {\n return;\n }\n var isRefined = getRefinedStar() === Number(facetValue);\n if (!isRefined) {\n instantSearchInstance.sendEventToInsights({\n insightsMethod: 'clickedFilters',\n widgetType: $$type,\n eventType: eventType,\n eventModifier: eventModifier,\n payload: {\n eventName: eventName,\n index: helper.getIndex(),\n filters: [\"\".concat(attribute, \">=\").concat(facetValue)]\n },\n attribute: attribute\n });\n }\n };\n};\n/**\n * **StarRating** connector provides the logic to build a custom widget that will let\n * the user refine search results based on ratings.\n *\n * The connector provides to the rendering: `refine()` to select a value and\n * `items` that are the values that can be selected. `refine` should be used\n * with `items.value`.\n */\nvar connectRatingMenu = function connectRatingMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n attribute = _ref2.attribute,\n _ref2$max = _ref2.max,\n max = _ref2$max === void 0 ? 5 : _ref2$max;\n var sendEvent;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n var _getRefinedStar = function getRefinedStar(state) {\n var _values$;\n var values = state.getNumericRefinements(attribute);\n if (!((_values$ = values['>=']) !== null && _values$ !== void 0 && _values$.length)) {\n return undefined;\n }\n return values['>='][0];\n };\n var getFacetsMaxDecimalPlaces = function getFacetsMaxDecimalPlaces(facetResults) {\n var maxDecimalPlaces = 0;\n facetResults.forEach(function (facetResult) {\n var _facetResult$name$spl = facetResult.name.split('.'),\n _facetResult$name$spl2 = _slicedToArray(_facetResult$name$spl, 2),\n _facetResult$name$spl3 = _facetResult$name$spl2[1],\n decimal = _facetResult$name$spl3 === void 0 ? '' : _facetResult$name$spl3;\n maxDecimalPlaces = Math.max(maxDecimalPlaces, decimal.length);\n });\n return maxDecimalPlaces;\n };\n var getFacetValuesWarningMessage = function getFacetValuesWarningMessage(_ref3) {\n var maxDecimalPlaces = _ref3.maxDecimalPlaces,\n maxFacets = _ref3.maxFacets,\n maxValuesPerFacet = _ref3.maxValuesPerFacet;\n var maxDecimalPlacesInRange = Math.max(0, Math.floor(Math.log10(MAX_VALUES_PER_FACET_API_LIMIT / max)));\n var maxFacetsInRange = Math.min(MAX_VALUES_PER_FACET_API_LIMIT, Math.pow(10, maxDecimalPlacesInRange) * max);\n var solutions = [];\n if (maxFacets > MAX_VALUES_PER_FACET_API_LIMIT) {\n solutions.push(\"- Update your records to lower the precision of the values in the \\\"\".concat(attribute, \"\\\" attribute (for example: \").concat(5.123456789.toPrecision(maxDecimalPlaces + 1), \" to \").concat(5.123456789.toPrecision(maxDecimalPlacesInRange + 1), \")\"));\n }\n if (maxValuesPerFacet < maxFacetsInRange) {\n solutions.push(\"- Increase the maximum number of facet values to \".concat(maxFacetsInRange, \" using the \\\"configure\\\" widget \").concat(createDocumentationLink({\n name: 'configure'\n }), \" and the \\\"maxValuesPerFacet\\\" parameter https://www.algolia.com/doc/api-reference/api-parameters/maxValuesPerFacet/\"));\n }\n return \"The \".concat(attribute, \" attribute can have \").concat(maxFacets, \" different values (0 to \").concat(max, \" with a maximum of \").concat(maxDecimalPlaces, \" decimals = \").concat(maxFacets, \") but you retrieved only \").concat(maxValuesPerFacet, \" facet values. Therefore the number of results that match the refinements can be incorrect.\\n \").concat(solutions.length ? \"To resolve this problem you can:\\n\".concat(solutions.join('\\n')) : \"\");\n };\n function getRefinedState(state, facetValue) {\n var isRefined = _getRefinedStar(state) === Number(facetValue);\n var emptyState = state.resetPage().removeNumericRefinement(attribute);\n if (!isRefined) {\n return emptyState.addNumericRefinement(attribute, '<=', max).addNumericRefinement(attribute, '>=', Number(facetValue));\n }\n return emptyState;\n }\n var toggleRefinement = function toggleRefinement(helper, facetValue) {\n sendEvent('click:internal', facetValue);\n helper.setState(getRefinedState(helper.state, facetValue)).search();\n };\n var connectorState = {\n toggleRefinementFactory: function toggleRefinementFactory(helper) {\n return toggleRefinement.bind(null, helper);\n },\n createURLFactory: function createURLFactory(_ref4) {\n var state = _ref4.state,\n createURL = _ref4.createURL,\n getWidgetUiState = _ref4.getWidgetUiState,\n helper = _ref4.helper;\n return function (value) {\n return createURL(function (uiState) {\n return getWidgetUiState(uiState, {\n searchParameters: getRefinedState(state, value),\n helper: helper\n });\n });\n };\n }\n };\n return {\n $$type: $$type,\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n ratingMenu: _objectSpread(_objectSpread({}, renderState.ratingMenu), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref5) {\n var helper = _ref5.helper,\n results = _ref5.results,\n state = _ref5.state,\n instantSearchInstance = _ref5.instantSearchInstance,\n createURL = _ref5.createURL;\n var facetValues = [];\n if (!sendEvent) {\n sendEvent = createSendEvent({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n getRefinedStar: function getRefinedStar() {\n return _getRefinedStar(helper.state);\n },\n attribute: attribute\n });\n }\n var refinementIsApplied = false;\n var totalCount = 0;\n var facetResults = results === null || results === void 0 ? void 0 : results.getFacetValues(attribute, {});\n if (results && facetResults) {\n var maxValuesPerFacet = facetResults.length;\n var maxDecimalPlaces = getFacetsMaxDecimalPlaces(facetResults);\n var maxFacets = Math.pow(10, maxDecimalPlaces) * max;\n process.env.NODE_ENV === 'development' ? warning(maxFacets <= maxValuesPerFacet || Boolean(results.__isArtificial), getFacetValuesWarningMessage({\n maxDecimalPlaces: maxDecimalPlaces,\n maxFacets: maxFacets,\n maxValuesPerFacet: maxValuesPerFacet\n })) : void 0;\n var refinedStar = _getRefinedStar(state);\n var _loop = function _loop(star) {\n var isRefined = refinedStar === star;\n refinementIsApplied = refinementIsApplied || isRefined;\n var count = facetResults.filter(function (f) {\n return Number(f.name) >= star && Number(f.name) <= max;\n }).map(function (f) {\n return f.count;\n }).reduce(function (sum, current) {\n return sum + current;\n }, 0);\n totalCount += count;\n if (refinedStar && !isRefined && count === 0) {\n // skip count==0 when at least 1 refinement is enabled\n // eslint-disable-next-line no-continue\n return \"continue\";\n }\n var stars = _toConsumableArray(new Array(Math.floor(max / STEP))).map(function (_v, i) {\n return i * STEP < star;\n });\n facetValues.push({\n stars: stars,\n name: String(star),\n label: String(star),\n value: String(star),\n count: count,\n isRefined: isRefined\n });\n };\n for (var star = STEP; star < max; star += STEP) {\n var _ret = _loop(star);\n if (_ret === \"continue\") continue;\n }\n }\n facetValues = facetValues.reverse();\n var hasNoResults = results ? results.nbHits === 0 : true;\n return {\n items: facetValues,\n hasNoResults: hasNoResults,\n canRefine: (!hasNoResults || refinementIsApplied) && totalCount > 0,\n refine: connectorState.toggleRefinementFactory(helper),\n sendEvent: sendEvent,\n createURL: connectorState.createURLFactory({\n state: state,\n createURL: createURL,\n helper: helper,\n getWidgetUiState: this.getWidgetUiState\n }),\n widgetParams: widgetParams\n };\n },\n dispose: function dispose(_ref6) {\n var state = _ref6.state;\n unmountFn();\n return state.removeNumericRefinement(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref7) {\n var searchParameters = _ref7.searchParameters;\n var value = _getRefinedStar(searchParameters);\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n ratingMenu: _objectSpread(_objectSpread({}, uiState.ratingMenu), {}, _defineProperty({}, attribute, typeof value === 'number' ? value : undefined))\n }), attribute);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref8) {\n var uiState = _ref8.uiState;\n var value = uiState.ratingMenu && uiState.ratingMenu[attribute];\n var withDisjunctiveFacet = searchParameters.addDisjunctiveFacet(attribute).removeNumericRefinement(attribute).removeDisjunctiveFacetRefinement(attribute);\n if (!value) {\n return withDisjunctiveFacet.setQueryParameters({\n numericRefinements: _objectSpread(_objectSpread({}, withDisjunctiveFacet.numericRefinements), {}, _defineProperty({}, attribute, {}))\n });\n }\n return withDisjunctiveFacet.addNumericRefinement(attribute, '<=', max).addNumericRefinement(attribute, '>=', value);\n }\n };\n };\n};\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.ratingMenu) {\n return indexUiState;\n }\n if (typeof indexUiState.ratingMenu[attribute] !== 'number') {\n delete indexUiState.ratingMenu[attribute];\n }\n if (Object.keys(indexUiState.ratingMenu).length === 0) {\n delete indexUiState.ratingMenu;\n }\n return indexUiState;\n}\nexport default connectRatingMenu;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'stats',\n connector: true\n});\n\n/**\n * **Stats** connector provides the logic to build a custom widget that will displays\n * search statistics (hits number and processing time).\n */\n\nvar connectStats = function connectStats(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n return {\n $$type: 'ais.stats',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n stats: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref) {\n var results = _ref.results,\n state = _ref.state;\n if (!results) {\n return {\n hitsPerPage: state.hitsPerPage,\n nbHits: 0,\n nbSortedHits: undefined,\n areHitsSorted: false,\n nbPages: 0,\n page: state.page || 0,\n processingTimeMS: -1,\n query: state.query || '',\n widgetParams: widgetParams\n };\n }\n return {\n hitsPerPage: results.hitsPerPage,\n nbHits: results.nbHits,\n nbSortedHits: results.nbSortedHits,\n areHitsSorted: typeof results.appliedRelevancyStrictness !== 'undefined' && results.appliedRelevancyStrictness > 0 && results.nbSortedHits !== results.nbHits,\n nbPages: results.nbPages,\n page: results.page,\n processingTimeMS: results.processingTimeMS,\n query: results.query,\n widgetParams: widgetParams\n };\n }\n };\n };\n};\nexport default connectStats;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { checkRendering, escapeFacetValue, createDocumentationMessageGenerator, find, noop, toArray, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'toggle-refinement',\n connector: true\n});\nvar $$type = 'ais.toggleRefinement';\nvar createSendEvent = function createSendEvent(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper,\n attribute = _ref.attribute,\n on = _ref.on;\n var sendEventForToggle = function sendEventForToggle() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1) {\n instantSearchInstance.sendEventToInsights(args[0]);\n return;\n }\n var isRefined = args[1],\n _args$ = args[2],\n eventName = _args$ === void 0 ? 'Filter Applied' : _args$;\n var _args$0$split = args[0].split(':'),\n _args$0$split2 = _slicedToArray(_args$0$split, 2),\n eventType = _args$0$split2[0],\n eventModifier = _args$0$split2[1];\n if (eventType !== 'click' || on === undefined) {\n return;\n }\n\n // only send an event when the refinement gets applied,\n // not when it gets removed\n if (!isRefined) {\n instantSearchInstance.sendEventToInsights({\n insightsMethod: 'clickedFilters',\n widgetType: $$type,\n eventType: eventType,\n eventModifier: eventModifier,\n payload: {\n eventName: eventName,\n index: helper.getIndex(),\n filters: on.map(function (value) {\n return \"\".concat(attribute, \":\").concat(value);\n })\n },\n attribute: attribute\n });\n }\n };\n return sendEventForToggle;\n};\n/**\n * **Toggle** connector provides the logic to build a custom widget that will provide\n * an on/off filtering feature based on an attribute value or values.\n *\n * Two modes are implemented in the custom widget:\n * - with or without the value filtered\n * - switch between two values.\n */\nvar connectToggleRefinement = function connectToggleRefinement(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n attribute = _ref2.attribute,\n _ref2$on = _ref2.on,\n userOn = _ref2$on === void 0 ? true : _ref2$on,\n userOff = _ref2.off;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n var hasAnOffValue = userOff !== undefined;\n // even though facet values can be numbers and boolean,\n // the helper methods only accept string in the type\n var on = toArray(userOn).map(escapeFacetValue);\n var off = hasAnOffValue ? toArray(userOff).map(escapeFacetValue) : undefined;\n var sendEvent;\n var toggleRefinementFactory = function toggleRefinementFactory(helper) {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n isRefined: false\n },\n isRefined = _ref3.isRefined;\n if (!isRefined) {\n sendEvent('click:internal', isRefined);\n if (hasAnOffValue) {\n off.forEach(function (v) {\n return helper.removeDisjunctiveFacetRefinement(attribute, v);\n });\n }\n on.forEach(function (v) {\n return helper.addDisjunctiveFacetRefinement(attribute, v);\n });\n } else {\n on.forEach(function (v) {\n return helper.removeDisjunctiveFacetRefinement(attribute, v);\n });\n if (hasAnOffValue) {\n off.forEach(function (v) {\n return helper.addDisjunctiveFacetRefinement(attribute, v);\n });\n }\n }\n helper.search();\n };\n };\n var connectorState = {\n createURLFactory: function createURLFactory(isRefined, _ref4) {\n var state = _ref4.state,\n createURL = _ref4.createURL,\n getWidgetUiState = _ref4.getWidgetUiState,\n helper = _ref4.helper;\n return function () {\n state = state.resetPage();\n var valuesToRemove = isRefined ? on : off;\n if (valuesToRemove) {\n valuesToRemove.forEach(function (v) {\n state = state.removeDisjunctiveFacetRefinement(attribute, v);\n });\n }\n var valuesToAdd = isRefined ? off : on;\n if (valuesToAdd) {\n valuesToAdd.forEach(function (v) {\n state = state.addDisjunctiveFacetRefinement(attribute, v);\n });\n }\n return createURL(function (uiState) {\n return getWidgetUiState(uiState, {\n searchParameters: state,\n helper: helper\n });\n });\n };\n }\n };\n return {\n $$type: $$type,\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref5) {\n var state = _ref5.state;\n unmountFn();\n return state.removeDisjunctiveFacet(attribute);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n toggleRefinement: _objectSpread(_objectSpread({}, renderState.toggleRefinement), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref6) {\n var state = _ref6.state,\n helper = _ref6.helper,\n results = _ref6.results,\n createURL = _ref6.createURL,\n instantSearchInstance = _ref6.instantSearchInstance;\n var isRefined = results ? on.every(function (v) {\n return state.isDisjunctiveFacetRefined(attribute, v);\n }) : on.every(function (v) {\n return state.isDisjunctiveFacetRefined(attribute, v);\n });\n var onFacetValue = {\n isRefined: isRefined,\n count: 0\n };\n var offFacetValue = {\n isRefined: hasAnOffValue && !isRefined,\n count: 0\n };\n if (results) {\n var offValue = toArray(off || false);\n var allFacetValues = results.getFacetValues(attribute, {}) || [];\n var onData = on.map(function (v) {\n return find(allFacetValues, function (_ref7) {\n var escapedValue = _ref7.escapedValue;\n return escapedValue === escapeFacetValue(String(v));\n });\n }).filter(function (v) {\n return v !== undefined;\n });\n var offData = hasAnOffValue ? offValue.map(function (v) {\n return find(allFacetValues, function (_ref8) {\n var escapedValue = _ref8.escapedValue;\n return escapedValue === escapeFacetValue(String(v));\n });\n }).filter(function (v) {\n return v !== undefined;\n }) : [];\n onFacetValue = {\n isRefined: onData.length ? onData.every(function (v) {\n return v.isRefined;\n }) : false,\n count: onData.reduce(function (acc, v) {\n return acc + v.count;\n }, 0) || null\n };\n offFacetValue = {\n isRefined: offData.length ? offData.every(function (v) {\n return v.isRefined;\n }) : false,\n count: offData.reduce(function (acc, v) {\n return acc + v.count;\n }, 0) || allFacetValues.reduce(function (total, _ref9) {\n var count = _ref9.count;\n return total + count;\n }, 0)\n };\n }\n if (!sendEvent) {\n sendEvent = createSendEvent({\n instantSearchInstance: instantSearchInstance,\n attribute: attribute,\n on: on,\n helper: helper\n });\n }\n var nextRefinement = isRefined ? offFacetValue : onFacetValue;\n return {\n value: {\n name: attribute,\n isRefined: isRefined,\n count: results ? nextRefinement.count : null,\n onFacetValue: onFacetValue,\n offFacetValue: offFacetValue\n },\n createURL: connectorState.createURLFactory(isRefined, {\n state: state,\n createURL: createURL,\n helper: helper,\n getWidgetUiState: this.getWidgetUiState\n }),\n sendEvent: sendEvent,\n canRefine: Boolean(results ? nextRefinement.count : null),\n refine: toggleRefinementFactory(helper),\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref10) {\n var searchParameters = _ref10.searchParameters;\n var isRefined = on && on.every(function (v) {\n return searchParameters.isDisjunctiveFacetRefined(attribute, v);\n });\n if (!isRefined) {\n var _uiState$toggle;\n // This needs to be done in the case `uiState` comes from `createURL`\n (_uiState$toggle = uiState.toggle) === null || _uiState$toggle === void 0 ? true : delete _uiState$toggle[attribute];\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n toggle: _objectSpread(_objectSpread({}, uiState.toggle), {}, _defineProperty({}, attribute, isRefined))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref11) {\n var uiState = _ref11.uiState;\n if (searchParameters.isHierarchicalFacet(attribute) || searchParameters.isConjunctiveFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"ToggleRefinement: Attribute \\\"\".concat(attribute, \"\\\" is already used by another widget of a different type.\\nAs this is not supported, please make sure to remove this other widget or this ToggleRefinement widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n var withFacetConfiguration = searchParameters.addDisjunctiveFacet(attribute).removeDisjunctiveFacetRefinement(attribute);\n var isRefined = Boolean(uiState.toggle && uiState.toggle[attribute]);\n if (isRefined) {\n if (on) {\n on.forEach(function (v) {\n withFacetConfiguration = withFacetConfiguration.addDisjunctiveFacetRefinement(attribute, v);\n });\n }\n return withFacetConfiguration;\n }\n\n // It's not refined with an `off` value\n if (hasAnOffValue) {\n if (off) {\n off.forEach(function (v) {\n withFacetConfiguration = withFacetConfiguration.addDisjunctiveFacetRefinement(attribute, v);\n });\n }\n return withFacetConfiguration;\n }\n\n // It's not refined without an `off` value\n return withFacetConfiguration.setQueryParameters({\n disjunctiveFacetsRefinements: _objectSpread(_objectSpread({}, searchParameters.disjunctiveFacetsRefinements), {}, _defineProperty({}, attribute, []))\n });\n }\n };\n };\n};\nexport default connectToggleRefinement;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { checkRendering, warning, createDocumentationMessageGenerator, isEqual, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'breadcrumb',\n connector: true\n});\nvar connectBreadcrumb = function connectBreadcrumb(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n var connectorState = {};\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attributes = _ref.attributes,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? ' > ' : _ref$separator,\n _ref$rootPath = _ref.rootPath,\n rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {\n throw new Error(withUsage('The `attributes` option expects an array of strings.'));\n }\n var _attributes = _slicedToArray(attributes, 1),\n hierarchicalFacetName = _attributes[0];\n function getRefinedState(state, facetValue) {\n if (!facetValue) {\n var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n if (breadcrumb.length === 0) {\n return state;\n } else {\n return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);\n }\n }\n return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);\n }\n return {\n $$type: 'ais.breadcrumb',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n breadcrumb: _objectSpread(_objectSpread({}, renderState.breadcrumb), {}, _defineProperty({}, hierarchicalFacetName, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var _this = this;\n var helper = _ref2.helper,\n createURL = _ref2.createURL,\n results = _ref2.results,\n state = _ref2.state;\n function getItems() {\n // The hierarchicalFacets condition is required for flavors\n // that render immediately with empty results, without relying\n // on init() (like React InstantSearch).\n if (!results || state.hierarchicalFacets.length === 0) {\n return [];\n }\n var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),\n facetName = _state$hierarchicalFa[0].name;\n var facetValues = results.getFacetValues(facetName, {});\n var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];\n var items = transformItems(shiftItemsValues(prepareItems(facetItems)), {\n results: results\n });\n return items;\n }\n var items = getItems();\n if (!connectorState.createURL) {\n connectorState.createURL = function (facetValue) {\n return createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: getRefinedState(helper.state, facetValue),\n helper: helper\n });\n });\n };\n }\n if (!connectorState.refine) {\n connectorState.refine = function (facetValue) {\n helper.setState(getRefinedState(helper.state, facetValue)).search();\n };\n }\n return {\n canRefine: items.length > 0,\n createURL: connectorState.createURL,\n items: items,\n refine: connectorState.refine,\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref3) {\n var searchParameters = _ref3.searchParameters;\n var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n return removeEmptyRefinementsFromUiState(_objectSpread(_objectSpread({}, uiState), {}, {\n hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))\n }), hierarchicalFacetName);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref4) {\n var uiState = _ref4.uiState;\n var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];\n if (searchParameters.isConjunctiveFacet(hierarchicalFacetName) || searchParameters.isDisjunctiveFacet(hierarchicalFacetName)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"HierarchicalMenu: Attribute \\\"\".concat(hierarchicalFacetName, \"\\\" is already used by another widget applying conjunctive or disjunctive faceting.\\nAs this is not supported, please make sure to remove this other widget or this HierarchicalMenu widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {\n var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);\n process.env.NODE_ENV === 'development' ? warning(isEqual(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;\n }\n var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({\n name: hierarchicalFacetName,\n attributes: attributes,\n separator: separator,\n rootPath: rootPath\n });\n if (!values) {\n return withFacetConfiguration.setQueryParameters({\n hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withFacetConfiguration.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))\n });\n }\n return withFacetConfiguration.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));\n }\n };\n };\n};\nfunction prepareItems(data) {\n return data.reduce(function (result, currentItem) {\n if (currentItem.isRefined) {\n result.push({\n label: currentItem.name,\n value: currentItem.escapedValue\n });\n if (Array.isArray(currentItem.data)) {\n result = result.concat(prepareItems(currentItem.data));\n }\n }\n return result;\n }, []);\n}\nfunction shiftItemsValues(array) {\n return array.map(function (x, idx) {\n return {\n label: x.label,\n value: idx + 1 === array.length ? null : array[idx + 1].value\n };\n });\n}\nfunction removeEmptyRefinementsFromUiState(indexUiState, attribute) {\n if (!indexUiState.hierarchicalMenu) {\n return indexUiState;\n }\n if (!indexUiState.hierarchicalMenu[attribute] || !indexUiState.hierarchicalMenu[attribute].length) {\n delete indexUiState.hierarchicalMenu[attribute];\n }\n if (Object.keys(indexUiState.hierarchicalMenu).length === 0) {\n delete indexUiState.hierarchicalMenu;\n }\n return indexUiState;\n}\nexport default connectBreadcrumb;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, createSendEventForHits, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'autocomplete',\n connector: true\n});\nvar connectAutocomplete = function connectAutocomplete(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n _ref$escapeHTML = _ref.escapeHTML,\n escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;\n process.env.NODE_ENV === 'development' ? warning(!widgetParams.indices, \"\\nThe option `indices` has been removed from the Autocomplete connector.\\n\\nThe indices to target are now inferred from the widgets tree.\\n\".concat(Array.isArray(widgetParams.indices) ? \"\\nAn alternative would be:\\n\\nconst autocomplete = connectAutocomplete(renderer);\\n\\nsearch.addWidgets([\\n \".concat(widgetParams.indices.map(function (_ref2) {\n var value = _ref2.value;\n return \"index({ indexName: '\".concat(value, \"' }),\");\n }).join('\\n '), \"\\n autocomplete()\\n]);\\n\") : '', \"\\n \")) : void 0;\n var connectorState = {};\n return {\n $$type: 'ais.autocomplete',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n var renderState = this.getWidgetRenderState(renderOptions);\n renderState.indices.forEach(function (_ref3) {\n var sendEvent = _ref3.sendEvent,\n hits = _ref3.hits;\n sendEvent('view:internal', hits);\n });\n renderFn(_objectSpread(_objectSpread({}, renderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n autocomplete: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref4) {\n var _this = this;\n var helper = _ref4.helper,\n state = _ref4.state,\n scopedResults = _ref4.scopedResults,\n instantSearchInstance = _ref4.instantSearchInstance;\n if (!connectorState.refine) {\n connectorState.refine = function (query) {\n helper.setQuery(query).search();\n };\n }\n var indices = scopedResults.map(function (scopedResult) {\n // We need to escape the hits because highlighting\n // exposes HTML tags to the end-user.\n scopedResult.results.hits = escapeHTML ? escapeHits(scopedResult.results.hits) : scopedResult.results.hits;\n var sendEvent = createSendEventForHits({\n instantSearchInstance: instantSearchInstance,\n getIndex: function getIndex() {\n return scopedResult.results.index;\n },\n widgetType: _this.$$type\n });\n return {\n indexId: scopedResult.indexId,\n indexName: scopedResult.results.index,\n hits: scopedResult.results.hits,\n results: scopedResult.results,\n sendEvent: sendEvent\n };\n });\n return {\n currentRefinement: state.query || '',\n indices: indices,\n refine: connectorState.refine,\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var query = searchParameters.query || '';\n if (query === '' || uiState && uiState.query === query) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n query: query\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var parameters = {\n query: uiState.query || ''\n };\n if (!escapeHTML) {\n return searchParameters.setQueryParameters(parameters);\n }\n return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), TAG_PLACEHOLDER));\n },\n dispose: function dispose(_ref7) {\n var state = _ref7.state;\n unmountFn();\n var stateWithoutQuery = state.setQueryParameter('query', undefined);\n if (!escapeHTML) {\n return stateWithoutQuery;\n }\n return stateWithoutQuery.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n }\n };\n };\n};\nexport default connectAutocomplete;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { checkRendering, createDocumentationMessageGenerator, warning, getRefinements, isEqual, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'query-rules',\n connector: true\n});\nfunction hasStateRefinements(state) {\n return [state.disjunctiveFacetsRefinements, state.facetsRefinements, state.hierarchicalFacetsRefinements, state.numericRefinements].some(function (refinement) {\n return Boolean(refinement && Object.keys(refinement).length > 0);\n });\n}\n\n// A context rule must consist only of alphanumeric characters, hyphens, and underscores.\n// See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context\nfunction escapeRuleContext(ruleName) {\n return ruleName.replace(/[^a-z0-9-_]+/gi, '_');\n}\nfunction getRuleContextsFromTrackedFilters(_ref) {\n var helper = _ref.helper,\n sharedHelperState = _ref.sharedHelperState,\n trackedFilters = _ref.trackedFilters;\n var ruleContexts = Object.keys(trackedFilters).reduce(function (facets, facetName) {\n var facetRefinements = getRefinements(helper.lastResults || {}, sharedHelperState, true).filter(function (refinement) {\n return refinement.attribute === facetName;\n }).map(function (refinement) {\n return refinement.numericValue || refinement.name;\n });\n var getTrackedFacetValues = trackedFilters[facetName];\n var trackedFacetValues = getTrackedFacetValues(facetRefinements);\n return [].concat(_toConsumableArray(facets), _toConsumableArray(facetRefinements.filter(function (facetRefinement) {\n return trackedFacetValues.includes(facetRefinement);\n }).map(function (facetValue) {\n return escapeRuleContext(\"ais-\".concat(facetName, \"-\").concat(facetValue));\n })));\n }, []);\n return ruleContexts;\n}\nfunction applyRuleContexts(event) {\n var helper = this.helper,\n initialRuleContexts = this.initialRuleContexts,\n trackedFilters = this.trackedFilters,\n transformRuleContexts = this.transformRuleContexts;\n var sharedHelperState = event.state;\n var previousRuleContexts = sharedHelperState.ruleContexts || [];\n var newRuleContexts = getRuleContextsFromTrackedFilters({\n helper: helper,\n sharedHelperState: sharedHelperState,\n trackedFilters: trackedFilters\n });\n var nextRuleContexts = [].concat(_toConsumableArray(initialRuleContexts), _toConsumableArray(newRuleContexts));\n process.env.NODE_ENV === 'development' ? warning(nextRuleContexts.length <= 10, \"\\nThe maximum number of `ruleContexts` is 10. They have been sliced to that limit.\\nConsider using `transformRuleContexts` to minimize the number of rules sent to Algolia.\\n\") : void 0;\n var ruleContexts = transformRuleContexts(nextRuleContexts).slice(0, 10);\n if (!isEqual(previousRuleContexts, ruleContexts)) {\n helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, sharedHelperState), {}, {\n ruleContexts: ruleContexts\n }));\n }\n}\nvar connectQueryRules = function connectQueryRules(_render) {\n var unmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(_render, withUsage());\n return function (widgetParams) {\n var _ref2 = widgetParams || {},\n _ref2$trackedFilters = _ref2.trackedFilters,\n trackedFilters = _ref2$trackedFilters === void 0 ? {} : _ref2$trackedFilters,\n _ref2$transformRuleCo = _ref2.transformRuleContexts,\n transformRuleContexts = _ref2$transformRuleCo === void 0 ? function (rules) {\n return rules;\n } : _ref2$transformRuleCo,\n _ref2$transformItems = _ref2.transformItems,\n transformItems = _ref2$transformItems === void 0 ? function (items) {\n return items;\n } : _ref2$transformItems;\n Object.keys(trackedFilters).forEach(function (facetName) {\n if (typeof trackedFilters[facetName] !== 'function') {\n throw new Error(withUsage(\"'The \\\"\".concat(facetName, \"\\\" filter value in the `trackedFilters` option expects a function.\")));\n }\n });\n var hasTrackedFilters = Object.keys(trackedFilters).length > 0;\n\n // We store the initial rule contexts applied before creating the widget\n // so that we do not override them with the rules created from `trackedFilters`.\n var initialRuleContexts = [];\n var onHelperChange;\n return {\n $$type: 'ais.queryRules',\n init: function init(initOptions) {\n var helper = initOptions.helper,\n state = initOptions.state,\n instantSearchInstance = initOptions.instantSearchInstance;\n initialRuleContexts = state.ruleContexts || [];\n onHelperChange = applyRuleContexts.bind({\n helper: helper,\n initialRuleContexts: initialRuleContexts,\n trackedFilters: trackedFilters,\n transformRuleContexts: transformRuleContexts\n });\n if (hasTrackedFilters) {\n // We need to apply the `ruleContexts` based on the `trackedFilters`\n // before the helper changes state in some cases:\n // - Some filters are applied on the first load (e.g. using `configure`)\n // - The `transformRuleContexts` option sets initial `ruleContexts`.\n if (hasStateRefinements(state) || Boolean(widgetParams.transformRuleContexts)) {\n onHelperChange({\n state: state\n });\n }\n\n // We track every change in the helper to override its state and add\n // any `ruleContexts` needed based on the `trackedFilters`.\n helper.on('change', onHelperChange);\n }\n _render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n _render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n getWidgetRenderState: function getWidgetRenderState(_ref3) {\n var results = _ref3.results;\n var _ref4 = results || {},\n _ref4$userData = _ref4.userData,\n userData = _ref4$userData === void 0 ? [] : _ref4$userData;\n var items = transformItems(userData, {\n results: results\n });\n return {\n items: items,\n widgetParams: widgetParams\n };\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n queryRules: this.getWidgetRenderState(renderOptions)\n });\n },\n dispose: function dispose(_ref5) {\n var helper = _ref5.helper,\n state = _ref5.state;\n unmount();\n if (hasTrackedFilters) {\n helper.removeListener('change', onHelperChange);\n return state.setQueryParameter('ruleContexts', initialRuleContexts);\n }\n return state;\n }\n };\n };\n};\nexport default connectQueryRules;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// `SpeechRecognition` is an API used on the browser so we can safely disable\n// the `window` check.\n/* eslint-disable no-restricted-globals */\n/* global SpeechRecognition SpeechRecognitionEvent */\n\nvar createVoiceSearchHelper = function createVoiceSearchHelper(_ref) {\n var searchAsYouSpeak = _ref.searchAsYouSpeak,\n language = _ref.language,\n onQueryChange = _ref.onQueryChange,\n onStateChange = _ref.onStateChange;\n var SpeechRecognitionAPI = window.webkitSpeechRecognition || window.SpeechRecognition;\n var getDefaultState = function getDefaultState(status) {\n return {\n status: status,\n transcript: '',\n isSpeechFinal: false,\n errorCode: undefined\n };\n };\n var state = getDefaultState('initial');\n var recognition;\n var isBrowserSupported = function isBrowserSupported() {\n return Boolean(SpeechRecognitionAPI);\n };\n var isListening = function isListening() {\n return state.status === 'askingPermission' || state.status === 'waiting' || state.status === 'recognizing';\n };\n var setState = function setState() {\n var newState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n state = _objectSpread(_objectSpread({}, state), newState);\n onStateChange();\n };\n var getState = function getState() {\n return state;\n };\n var resetState = function resetState() {\n var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n setState(getDefaultState(status));\n };\n var onStart = function onStart() {\n setState({\n status: 'waiting'\n });\n };\n var onError = function onError(event) {\n setState({\n status: 'error',\n errorCode: event.error\n });\n };\n var onResult = function onResult(event) {\n setState({\n status: 'recognizing',\n transcript: event.results[0] && event.results[0][0] && event.results[0][0].transcript || '',\n isSpeechFinal: event.results[0] && event.results[0].isFinal\n });\n if (searchAsYouSpeak && state.transcript) {\n onQueryChange(state.transcript);\n }\n };\n var onEnd = function onEnd() {\n if (!state.errorCode && state.transcript && !searchAsYouSpeak) {\n onQueryChange(state.transcript);\n }\n if (state.status !== 'error') {\n setState({\n status: 'finished'\n });\n }\n };\n var startListening = function startListening() {\n recognition = new SpeechRecognitionAPI();\n if (!recognition) {\n return;\n }\n resetState('askingPermission');\n recognition.interimResults = true;\n if (language) {\n recognition.lang = language;\n }\n recognition.addEventListener('start', onStart);\n recognition.addEventListener('error', onError);\n recognition.addEventListener('result', onResult);\n recognition.addEventListener('end', onEnd);\n recognition.start();\n };\n var dispose = function dispose() {\n if (!recognition) {\n return;\n }\n recognition.stop();\n recognition.removeEventListener('start', onStart);\n recognition.removeEventListener('error', onError);\n recognition.removeEventListener('result', onResult);\n recognition.removeEventListener('end', onEnd);\n recognition = undefined;\n };\n var stopListening = function stopListening() {\n dispose();\n // Because `dispose` removes event listeners, `end` listener is not called.\n // So we're setting the `status` as `finished` here.\n // If we don't do it, it will be still `waiting` or `recognizing`.\n resetState('finished');\n };\n return {\n getState: getState,\n isBrowserSupported: isBrowserSupported,\n isListening: isListening,\n startListening: startListening,\n stopListening: stopListening,\n dispose: dispose\n };\n};\nexport default createVoiceSearchHelper;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, noop } from \"../../lib/utils/index.js\";\nimport builtInCreateVoiceSearchHelper from \"../../lib/voiceSearchHelper/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'voice-search',\n connector: true\n});\nvar connectVoiceSearch = function connectVoiceSearch(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _widgetParams$searchA = widgetParams.searchAsYouSpeak,\n searchAsYouSpeak = _widgetParams$searchA === void 0 ? false : _widgetParams$searchA,\n language = widgetParams.language,\n additionalQueryParameters = widgetParams.additionalQueryParameters,\n _widgetParams$createV = widgetParams.createVoiceSearchHelper,\n createVoiceSearchHelper = _widgetParams$createV === void 0 ? builtInCreateVoiceSearchHelper : _widgetParams$createV;\n return {\n $$type: 'ais.voiceSearch',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n voiceSearch: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(renderOptions) {\n var _this = this;\n var helper = renderOptions.helper,\n instantSearchInstance = renderOptions.instantSearchInstance;\n if (!this._refine) {\n this._refine = function (query) {\n if (query !== helper.state.query) {\n var queryLanguages = language ? [language.split('-')[0]] : undefined;\n // @ts-ignore queryLanguages is allowed to be a string, not just an array\n helper.setQueryParameter('queryLanguages', queryLanguages);\n if (typeof additionalQueryParameters === 'function') {\n helper.setState(helper.state.setQueryParameters(_objectSpread({\n ignorePlurals: true,\n removeStopWords: true,\n // @ts-ignore optionalWords is allowed to be a string too\n optionalWords: query\n }, additionalQueryParameters({\n query: query\n }))));\n }\n helper.setQuery(query).search();\n }\n };\n }\n if (!this._voiceSearchHelper) {\n this._voiceSearchHelper = createVoiceSearchHelper({\n searchAsYouSpeak: searchAsYouSpeak,\n language: language,\n onQueryChange: function onQueryChange(query) {\n return _this._refine(query);\n },\n onStateChange: function onStateChange() {\n renderFn(_objectSpread(_objectSpread({}, _this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n }\n });\n }\n var _voiceSearchHelper = this._voiceSearchHelper,\n isBrowserSupported = _voiceSearchHelper.isBrowserSupported,\n isListening = _voiceSearchHelper.isListening,\n startListening = _voiceSearchHelper.startListening,\n stopListening = _voiceSearchHelper.stopListening,\n getState = _voiceSearchHelper.getState;\n return {\n isBrowserSupported: isBrowserSupported(),\n isListening: isListening(),\n toggleListening: function toggleListening() {\n if (!isBrowserSupported()) {\n return;\n }\n if (isListening()) {\n stopListening();\n } else {\n startListening();\n }\n },\n voiceListeningState: getState(),\n widgetParams: widgetParams\n };\n },\n dispose: function dispose(_ref) {\n var state = _ref.state;\n this._voiceSearchHelper.dispose();\n unmountFn();\n var newState = state;\n if (typeof additionalQueryParameters === 'function') {\n var additional = additionalQueryParameters({\n query: ''\n });\n var toReset = additional ? Object.keys(additional).reduce(function (acc, current) {\n // @ts-ignore search parameters is typed as readonly in v4\n acc[current] = undefined;\n return acc;\n }, {}) : {};\n newState = state.setQueryParameters(_objectSpread({\n // @ts-ignore (queryLanguages is not added to algoliasearch v3)\n queryLanguages: undefined,\n ignorePlurals: undefined,\n removeStopWords: undefined,\n optionalWords: undefined\n }, toReset));\n }\n return newState.setQueryParameter('query', undefined);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref2) {\n var searchParameters = _ref2.searchParameters;\n var query = searchParameters.query || '';\n if (!query) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n query: query\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref3) {\n var uiState = _ref3.uiState;\n return searchParameters.setQueryParameter('query', uiState.query || '');\n }\n };\n };\n};\nexport default connectVoiceSearch;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { noop } from \"../../lib/utils/index.js\";\nvar connectRelevantSort = function connectRelevantSort() {\n var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n return function (widgetParams) {\n var connectorState = {};\n return {\n $$type: 'ais.relevantSort',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref) {\n var state = _ref.state;\n unmountFn();\n return state.setQueryParameter('relevancyStrictness', undefined);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n relevantSort: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var results = _ref2.results,\n helper = _ref2.helper;\n if (!connectorState.refine) {\n connectorState.refine = function (relevancyStrictness) {\n helper.setQueryParameter('relevancyStrictness', relevancyStrictness).search();\n };\n }\n var _ref3 = results || {},\n appliedRelevancyStrictness = _ref3.appliedRelevancyStrictness;\n var isVirtualReplica = appliedRelevancyStrictness !== undefined;\n return {\n isRelevantSorted: typeof appliedRelevancyStrictness !== 'undefined' && appliedRelevancyStrictness > 0,\n isVirtualReplica: isVirtualReplica,\n canRefine: isVirtualReplica,\n refine: connectorState.refine,\n widgetParams: widgetParams\n };\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref4) {\n var _uiState$relevantSort;\n var uiState = _ref4.uiState;\n return state.setQueryParameter('relevancyStrictness', (_uiState$relevantSort = uiState.relevantSort) !== null && _uiState$relevantSort !== void 0 ? _uiState$relevantSort : state.relevancyStrictness);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n return _objectSpread(_objectSpread({}, uiState), {}, {\n relevantSort: searchParameters.relevancyStrictness || uiState.relevantSort\n });\n }\n };\n };\n};\nexport default connectRelevantSort;","import { deprecate } from \"../lib/utils/index.js\";\nimport connectAnswers from \"./answers/connectAnswers.js\";\nimport connectConfigureRelatedItems from \"./configure-related-items/connectConfigureRelatedItems.js\";\nimport connectDynamicWidgets from \"./dynamic-widgets/connectDynamicWidgets.js\";\n\n/** @deprecated answers is no longer supported */\nexport var EXPERIMENTAL_connectAnswers = deprecate(connectAnswers, 'answers is no longer supported');\n\n/** @deprecated use connectRelatedItems instead */\nexport var EXPERIMENTAL_connectConfigureRelatedItems = deprecate(connectConfigureRelatedItems, 'EXPERIMENTAL_connectConfigureRelatedItems is deprecated and will be removed in a next minor version of InstantSearch. Please use connectRelatedItems instead.');\n\n/** @deprecated use connectDynamicWidgets */\nexport var EXPERIMENTAL_connectDynamicWidgets = deprecate(connectDynamicWidgets, 'use connectDynamicWidgets');\nexport { connectDynamicWidgets };\nexport { default as connectClearRefinements } from \"./clear-refinements/connectClearRefinements.js\";\nexport { default as connectCurrentRefinements } from \"./current-refinements/connectCurrentRefinements.js\";\nexport { default as connectHierarchicalMenu } from \"./hierarchical-menu/connectHierarchicalMenu.js\";\nexport { default as connectHits } from \"./hits/connectHits.js\";\nexport { default as connectHitsWithInsights } from \"./hits/connectHitsWithInsights.js\";\nexport { default as connectHitsPerPage } from \"./hits-per-page/connectHitsPerPage.js\";\nexport { default as connectInfiniteHits } from \"./infinite-hits/connectInfiniteHits.js\";\nexport { default as connectInfiniteHitsWithInsights } from \"./infinite-hits/connectInfiniteHitsWithInsights.js\";\nexport { default as connectMenu } from \"./menu/connectMenu.js\";\nexport { default as connectNumericMenu } from \"./numeric-menu/connectNumericMenu.js\";\nexport { default as connectPagination } from \"./pagination/connectPagination.js\";\nexport { default as connectRange } from \"./range/connectRange.js\";\nexport { default as connectRefinementList } from \"./refinement-list/connectRefinementList.js\";\nexport { default as connectRelatedProducts } from \"./related-products/connectRelatedProducts.js\";\nexport { default as connectSearchBox } from \"./search-box/connectSearchBox.js\";\nexport { default as connectSortBy } from \"./sort-by/connectSortBy.js\";\nexport { default as connectRatingMenu } from \"./rating-menu/connectRatingMenu.js\";\nexport { default as connectStats } from \"./stats/connectStats.js\";\nexport { default as connectToggleRefinement } from \"./toggle-refinement/connectToggleRefinement.js\";\nexport { default as connectTrendingItems } from \"./trending-items/connectTrendingItems.js\";\nexport { default as connectBreadcrumb } from \"./breadcrumb/connectBreadcrumb.js\";\nexport { default as connectGeoSearch } from \"./geo-search/connectGeoSearch.js\";\nexport { default as connectPoweredBy } from \"./powered-by/connectPoweredBy.js\";\nexport { default as connectConfigure } from \"./configure/connectConfigure.js\";\nexport { default as connectAutocomplete } from \"./autocomplete/connectAutocomplete.js\";\nexport { default as connectQueryRules } from \"./query-rules/connectQueryRules.js\";\nexport { default as connectVoiceSearch } from \"./voice-search/connectVoiceSearch.js\";\nexport { default as connectRelevantSort } from \"./relevant-sort/connectRelevantSort.js\";\nexport { default as connectFrequentlyBoughtTogether } from \"./frequently-bought-together/connectFrequentlyBoughtTogether.js\";\nexport { default as connectLookingSimilar } from \"./looking-similar/connectLookingSimilar.js\";","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectAutocomplete as n}from\"instantsearch.js/es/connectors\";export default{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.state?n(\"div\",{class:e.suit()},[e._t(\"default\",[n(\"p\",[e._v(\"This widget doesn't render anything without a filled in default slot.\")]),e._v(\" \"),n(\"p\",[e._v(\"query, function to refine and results are provided.\")]),e._v(\" \"),n(\"pre\",[e._v(\"refine: Function\")]),e._v(\" \"),n(\"pre\",[e._v('currentRefinement: \"'+e._s(e.state.currentRefinement)+'\"')]),e._v(\" \"),n(\"details\",[e._m(0),e._v(\" \"),n(\"pre\",[e._v(e._s(e.state.indices))])])],{refine:e.state.refine,currentRefinement:e.state.currentRefinement,indices:e.state.indices})],2):e._e()},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t(\"summary\",[t(\"code\",[this._v(\"indices\")]),this._v(\":\")])}],name:\"AisAutocomplete\",mixins:[t({connector:n}),e({name:\"Autocomplete\"})],props:{escapeHTML:{type:Boolean,required:!1,default:!0}},computed:{widgetParams:function(){return{escapeHTML:this.escapeHTML}}}};\n//# sourceMappingURL=Autocomplete.vue.js.map\n","import t from\"vue\";var e=\"instantSearchPanelEmitter\",n=\"PANEL_CHANGE_EVENT\",i=function(){return{props:{emitter:{type:Object,required:!1,default:function(){return new t({name:\"PanelProvider\"})}}},provide:function(){var t;return(t={}).instantSearchPanelEmitter=this.emitter,t},data:function(){return{canRefine:!0}},created:function(){var t=this;this.emitter.$on(\"PANEL_CHANGE_EVENT\",function(e){t.updateCanRefine(e)})},beforeDestroy:function(){this.emitter.$destroy()},methods:{updateCanRefine:function(t){this.canRefine=t}}}},r=function(t){var e=t.mapStateToCanRefine;return{inject:{emitter:{from:\"instantSearchPanelEmitter\",default:function(){return{$emit:function(){}}}}},data:function(){return{state:null,hasAlreadyEmitted:!1}},watch:{state:{immediate:!0,handler:function(t,n){if(t){var i=e(n||{}),r=e(t);this.hasAlreadyEmitted&&i===r||(this.emitter.$emit(\"PANEL_CHANGE_EVENT\",r),this.hasAlreadyEmitted=!0)}}}}}};export{n as PANEL_CHANGE_EVENT,e as PANEL_EMITTER_NAMESPACE,r as createPanelConsumerMixin,i as createPanelProviderMixin};\n//# sourceMappingURL=panel.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectBreadcrumb as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as a}from\"../mixins/panel.js\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state?s(\"div\",{class:[t.suit(),!t.state.canRefine&&t.suit(\"\",\"noRefinement\")]},[t._t(\"default\",[s(\"ul\",{class:t.suit(\"list\")},[s(\"li\",{class:[t.suit(\"item\"),!t.state.items.length&&t.suit(\"item\",\"selected\")]},[Boolean(t.state.items.length)?s(\"a\",{class:t.suit(\"link\"),attrs:{href:t.state.createURL()},on:{click:function(e){e.preventDefault(),t.state.refine()}}},[t._t(\"rootLabel\",[t._v(\"Home\")])],2):s(\"span\",[t._t(\"rootLabel\",[t._v(\"Home\")])],2)]),t._v(\" \"),t._l(t.state.items,function(e,a){return s(\"li\",{key:e.label,class:[t.suit(\"item\"),t.isLastItem(a)&&t.suit(\"item\",\"selected\")]},[s(\"span\",{class:t.suit(\"separator\"),attrs:{\"aria-hidden\":\"true\"}},[t._t(\"separator\",[t._v(\">\")])],2),t._v(\" \"),t.isLastItem(a)?s(\"span\",[t._v(t._s(e.label))]):s(\"a\",{class:t.suit(\"link\"),attrs:{href:t.state.createURL(e.value)},on:{click:function(s){s.preventDefault(),t.state.refine(e.value)}}},[t._v(t._s(e.label))])])})],2)],{items:t.state.items,canRefine:t.state.canRefine,refine:t.state.refine,createURL:t.state.createURL})],2):t._e()},staticRenderFns:[],name:\"AisBreadcrumb\",mixins:[e({connector:s}),a({mapStateToCanRefine:function(t){return Boolean(t.canRefine)}}),t({name:\"Breadcrumb\"})],props:{attributes:{type:Array,required:!0},separator:{type:String,default:void 0},rootPath:{type:String,default:void 0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{attributes:this.attributes,separator:this.separator,rootPath:this.rootPath,transformItems:this.transformItems}}},methods:{isLastItem:function(t){return this.state.items.length-1===t}}};\n//# sourceMappingURL=Breadcrumb.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectClearRefinements as n}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as i}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.state?n(\"div\",{class:e.suit()},[e._t(\"default\",[n(\"button\",{class:[e.suit(\"button\"),!e.canRefine&&e.suit(\"button\",\"disabled\")],attrs:{type:\"reset\",disabled:!e.canRefine},on:{click:function(t){return t.preventDefault(),e.state.refine(t)}}},[e._t(\"resetLabel\",[e._v(\"Clear refinements\")])],2)],{canRefine:e.canRefine,refine:e.state.refine,createURL:e.state.createURL})],2):e._e()},staticRenderFns:[],name:\"AisClearRefinements\",mixins:[t({connector:n}),i({mapStateToCanRefine:function(e){return Boolean(e.hasRefinements)}}),e({name:\"ClearRefinements\"})],props:{excludedAttributes:{type:Array,default:void 0},includedAttributes:{type:Array,default:void 0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{includedAttributes:this.includedAttributes,excludedAttributes:this.excludedAttributes,transformItems:this.transformItems}},canRefine:function(){return this.state.hasRefinements}}};\n//# sourceMappingURL=ClearRefinements.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectConfigure as s}from\"instantsearch.js/es/connectors\";export default{inheritAttrs:!1,name:\"AisConfigure\",mixins:[t({name:\"Configure\"}),e({connector:s})],computed:{widgetParams:function(){return{searchParameters:this.$attrs}}},render:function(t){return this.state&&this.$scopedSlots.default?t(\"div\",{class:this.suit()},[this.$scopedSlots.default({refine:this.state.refine,searchParameters:this.state.widgetParams.searchParameters})]):null}};\n//# sourceMappingURL=Configure.js.map\n","import{createWidgetMixin as t}from\"../mixins/widget.js\";import{EXPERIMENTAL_connectConfigureRelatedItems as e}from\"instantsearch.js/es/connectors\";export default{inheritAttrs:!1,name:\"AisExperimentalConfigureRelatedItems\",mixins:[t({connector:e})],props:{hit:{type:Object,required:!0},matchingPatterns:{type:Object,required:!0},transformSearchParameters:{type:Function,required:!1}},computed:{widgetParams:function(){return{hit:this.hit,matchingPatterns:this.matchingPatterns,transformSearchParameters:this.transformSearchParameters}}},render:function(){return null}};\n//# sourceMappingURL=ConfigureRelatedItems.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectCurrentRefinements as i}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as n}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.state?i(\"div\",{class:[e.suit(),e.noRefinement&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[i(\"ul\",{class:e.suit(\"list\")},e._l(e.state.items,function(t){return i(\"li\",{key:t.attribute,class:e.suit(\"item\")},[e._t(\"item\",[i(\"span\",{class:e.suit(\"label\")},[e._v(e._s(e._f(\"capitalize\")(t.label))+\": \")]),e._v(\" \"),e._l(t.refinements,function(n){return i(\"span\",{key:e.createItemKey(n),class:e.suit(\"category\")},[e._t(\"refinement\",[i(\"span\",{class:e.suit(\"categoryLabel\")},[\"query\"===n.attribute?i(\"q\",[e._v(e._s(n.label))]):[e._v(\" \"+e._s(n.label)+\" \")]],2),e._v(\" \"),i(\"button\",{class:e.suit(\"delete\"),on:{click:function(e){t.refine(n)}}},[e._v(\" ✕ \")])],{refine:t.refine,refinement:n,createURL:e.state.createURL})],2)})],{refine:t.refine,item:t,createURL:e.state.createURL})],2)}))],{refine:e.state.refine,items:e.state.items,createURL:e.state.createURL})],2):e._e()},staticRenderFns:[],name:\"AisCurrentRefinements\",mixins:[e({name:\"CurrentRefinements\"}),t({connector:i}),n({mapStateToCanRefine:function(e){return Boolean(e.items)&&e.items.length>0}})],props:{includedAttributes:{type:Array,default:void 0},excludedAttributes:{type:Array,default:void 0},transformItems:{type:Function,default:void 0}},computed:{noRefinement:function(){return this.state&&0===this.state.items.length},widgetParams:function(){return{includedAttributes:this.includedAttributes,excludedAttributes:this.excludedAttributes,transformItems:this.transformItems}}},methods:{createItemKey:function(e){var t=e.attribute,i=e.value;return[t,e.type,i,e.operator].join(\":\")}},filters:{capitalize:function(e){return e?e.toString().charAt(0).toLocaleUpperCase()+e.toString().slice(1):\"\"}}};\n//# sourceMappingURL=CurrentRefinements.vue.js.map\n","export default{render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"ul\",{class:[e.suit(\"list\"),e.level>0&&e.suit(\"list\",\"child\"),e.suit(\"list\",\"lvl\"+e.level)]},e._l(e.items,function(t){return i(\"li\",{key:t.value,class:[e.suit(\"item\"),t.data&&e.suit(\"item\",\"parent\"),t.isRefined&&e.suit(\"item\",\"selected\")]},[i(\"a\",{class:e.suit(\"link\"),attrs:{href:e.createURL(t.value)},on:{click:function(i){i.preventDefault(),e.refine(t.value)}}},[i(\"span\",{class:e.suit(\"label\")},[e._v(e._s(t.label))]),e._v(\" \"),i(\"span\",{class:e.suit(\"count\")},[e._v(e._s(t.count))])]),e._v(\" \"),t.data?i(\"hierarchical-menu-list\",{attrs:{items:t.data,level:e.level+1,refine:e.refine,createURL:e.createURL,suit:e.suit}}):e._e()],1)}))},staticRenderFns:[],name:\"HierarchicalMenuList\",props:{items:{type:Array,required:!0},level:{type:Number,required:!0},refine:{type:Function,required:!0},createURL:{type:Function,required:!0},suit:{type:Function,required:!0}}};\n//# sourceMappingURL=HierarchicalMenuList.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectHierarchicalMenu as o}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as i}from\"../mixins/panel.js\";import r from\"./HierarchicalMenuList.vue.js\";var s=function(e){return Boolean(e.items)&&e.items.length>0};export default{render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return e.state?o(\"div\",{class:[e.suit(),!e.canRefine&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[o(\"hierarchical-menu-list\",{attrs:{items:e.state.items,level:0,refine:e.state.refine,createURL:e.state.createURL,suit:e.suit}}),e._v(\" \"),e.showMore?o(\"button\",{class:[e.suit(\"showMore\"),!e.state.canToggleShowMore&&e.suit(\"showMore\",\"disabled\")],attrs:{disabled:!e.state.canToggleShowMore},on:{click:function(t){return t.preventDefault(),e.state.toggleShowMore(t)}}},[e._t(\"showMoreLabel\",[e._v(e._s(e.state.isShowingMore?\"Show less\":\"Show more\"))],{isShowingMore:e.state.isShowingMore})],2):e._e()],{items:e.state.items,canRefine:e.canRefine,canToggleShowMore:e.state.canToggleShowMore,isShowingMore:e.state.isShowingMore,refine:e.state.refine,createURL:e.state.createURL,toggleShowMore:e.state.toggleShowMore,sendEvent:e.state.sendEvent})],2):e._e()},staticRenderFns:[],name:\"AisHierarchicalMenu\",mixins:[e({name:\"HierarchicalMenu\"}),t({connector:o}),i({mapStateToCanRefine:s})],components:{HierarchicalMenuList:r},props:{attributes:{type:Array,required:!0},limit:{type:Number,default:void 0},showMoreLimit:{type:Number,default:void 0},showMore:{type:Boolean,default:!1},sortBy:{type:[Array,Function],default:void 0},separator:{type:String,default:void 0},rootPath:{type:String,default:void 0},showParentLevel:{type:Boolean,default:void 0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{attributes:this.attributes,limit:this.limit,showMore:this.showMore,showMoreLimit:this.showMoreLimit,separator:this.separator,rootPath:this.rootPath,showParentLevel:this.showParentLevel,sortBy:this.sortBy,transformItems:this.transformItems}},canRefine:function(){return s(this.state)}}};\n//# sourceMappingURL=HierarchicalMenu.vue.js.map\n","var t={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},e=/&(?:amp|lt|gt|quot|#39);/g,r=RegExp(e.source);function u(u){return u&&r.test(u)?u.replace(e,function(e){return t[e]}):u}export{u as unescape};\n//# sourceMappingURL=unescape.js.map\n","import{getPropertyByPath as i}from\"instantsearch.js/es/lib/utils\";import{unescape as h}from\"./unescape.js\";var t={highlightPreTag:\"__ais-highlight__\",highlightPostTag:\"__/ais-highlight__\"};function r(i){var h=i.preTag,t=i.postTag,r=i.highlightedValue;void 0===r&&(r=\"\");var a=r.split(h),g=a.shift(),e=\"\"===g?[]:[{value:g,isHighlighted:!1}];if(t===h){var l=!0;a.forEach(function(i){e.push({value:i,isHighlighted:l}),l=!l})}else a.forEach(function(i){var h=i.split(t);e.push({value:h[0],isHighlighted:!0}),\"\"!==h[1]&&e.push({value:\" \"===h[1]?\" \":h[1],isHighlighted:!1})});return e}function a(a){var g=a.preTag;void 0===g&&(g=t.highlightPreTag);var e=a.postTag;void 0===e&&(e=t.highlightPostTag);var l=a.highlightProperty,s=a.attribute,o=a.hit;if(!o)throw new Error(\"`hit`, the matching record, must be provided\");var u=i(o[l],s)||{};return Array.isArray(u)?u.map(function(i){return r({preTag:g,postTag:e,highlightedValue:h(i.value)})}):r({preTag:g,postTag:e,highlightedValue:h(u.value)})}export{a as parseAlgoliaHit};\n//# sourceMappingURL=parseAlgoliaHit.js.map\n","import{parseAlgoliaHit as t}from\"../util/parseAlgoliaHit.js\";export default{render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"span\",{class:t.suit()},t._l(t.parsedHighlights,function(e,r){var g=e.value,h=e.isHighlighted;return i(h?t.highlightedTagName:t.textNode,{key:r,tag:\"component\",class:[h&&t.suit(\"highlighted\")]},[t._v(t._s(g))])}),1)},staticRenderFns:[],name:\"AisHighlighter\",props:{hit:{type:Object,required:!0},attribute:{type:String,required:!0},highlightedTagName:{type:String,default:\"mark\"},suit:{type:Function,required:!0},highlightProperty:{type:String,required:!0},preTag:{type:String,required:!0},postTag:{type:String,required:!0}},data:function(){return{textNode:{functional:!0,render:function(t,e){return e.slots().default}}}},computed:{parsedHighlights:function(){return t({attribute:this.attribute,hit:this.hit,highlightProperty:this.highlightProperty,preTag:this.preTag,postTag:this.postTag})}}};\n//# sourceMappingURL=Highlighter.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import i from\"./Highlighter.vue.js\";export default{render:function(){var t=this.$createElement;return(this._self._c||t)(\"ais-highlighter\",{attrs:{hit:this.hit,attribute:this.attribute,\"highlighted-tag-name\":this.highlightedTagName,suit:this.suit,\"highlight-property\":\"_highlightResult\",\"pre-tag\":\"\",\"post-tag\":\"\"}})},staticRenderFns:[],name:\"AisHighlight\",mixins:[t({name:\"Highlight\"})],components:{AisHighlighter:i},props:{hit:{type:Object,required:!0},attribute:{type:String,required:!0},highlightedTagName:{type:String,default:\"mark\"}}};\n//# sourceMappingURL=Highlight.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectHitsPerPage as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as n}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:e.suit()},[e._t(\"default\",[s(\"select\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.selected,expression:\"selected\"}],class:e.suit(\"select\"),on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){return\"_value\"in e?e._value:e.value});e.selected=t.target.multiple?s:s[0]},e.handleChange]}},e._l(e.state.items,function(t){return s(\"option\",{key:t.value,class:e.suit(\"option\"),domProps:{value:t.value}},[e._v(e._s(t.label))])}))],{items:e.state.items,refine:e.state.refine,hasNoResults:e.state.hasNoResults})],2):e._e()},staticRenderFns:[],name:\"AisHitsPerPage\",mixins:[e({name:\"HitsPerPage\"}),t({connector:s}),n({mapStateToCanRefine:function(e){return!1===e.hasNoResults}})],props:{items:{type:Array,required:!0},transformItems:{type:Function,default:void 0}},data:function(){return{selected:this.items.find(function(e){return!0===e.default}).value}},computed:{widgetParams:function(){return{items:this.items,transformItems:this.transformItems}}},methods:{handleChange:function(){this.state.refine(this.selected)}}};\n//# sourceMappingURL=HitsPerPage.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as i}from\"../mixins/widget.js\";import n from\"instantsearch.js/es/widgets/index/index\";export default{name:\"AisIndex\",mixins:[e({name:\"Index\"}),i({connector:function(){return n}})],provide:function(){var e=this;return{$_ais_getParentIndex:function(){return e.widget}}},props:{indexName:{type:String,required:!0},indexId:{type:String,required:!1}},render:function(e){return e(\"div\",{},this.$slots.default)},computed:{widgetParams:function(){return{indexName:this.indexName,indexId:this.indexId}}}};\n//# sourceMappingURL=Index.js.map\n","import{createInstantSearchComponent as t}from\"../util/createInstantSearchComponent.js\";export default t({name:\"AisInstantSearchSsr\",inject:{$_ais_ssrInstantSearchInstance:{default:function(){throw new Error(\"`createServerRootMixin` is required when using SSR.\")}}},data:function(){return{instantSearchInstance:this.$_ais_ssrInstantSearchInstance}},render:function(t){var n;return t(\"div\",{class:(n={},n[this.suit()]=!0,n[this.suit(\"\",\"ssr\")]=!0,n)},this.$slots.default)}});\n//# sourceMappingURL=InstantSearchSsr.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectInfiniteHitsWithInsights as s}from\"instantsearch.js/es/connectors\";export default{render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:e.suit()},[e.showPrevious?e._t(\"loadPrevious\",[s(\"button\",{class:[e.suit(\"loadPrevious\"),e.state.isFirstPage&&e.suit(\"loadPrevious\",\"disabled\")],attrs:{disabled:e.state.isFirstPage},on:{click:function(t){e.refinePrevious()}}},[e._v(\"Show previous results\")])],{refinePrevious:e.refinePrevious,page:e.state.results.page,isFirstPage:e.state.isFirstPage}):e._e(),e._v(\" \"),e._t(\"default\",[s(\"ol\",{class:e.suit(\"list\")},e._l(e.items,function(t,i){return s(\"li\",{key:t.objectID,class:e.suit(\"item\")},[e._t(\"item\",[e._v(\"objectID: \"+e._s(t.objectID)+\", index: \"+e._s(i))],{item:t,index:i,insights:e.state.insights})],2)})),e._v(\" \"),e._t(\"loadMore\",[s(\"button\",{class:[e.suit(\"loadMore\"),e.state.isLastPage&&e.suit(\"loadMore\",\"disabled\")],attrs:{disabled:e.state.isLastPage},on:{click:function(t){e.refineNext()}}},[e._v(\"Show more results\")])],{refineNext:e.refineNext,refine:e.refineNext,page:e.state.results.page,isLastPage:e.state.isLastPage})],{items:e.items,results:e.state.results,isLastPage:e.state.isLastPage,refinePrevious:e.refinePrevious,refineNext:e.refineNext,refine:e.refineNext,insights:e.state.insights,sendEvent:e.state.sendEvent})],2):e._e()},staticRenderFns:[],name:\"AisInfiniteHits\",mixins:[t({connector:s}),e({name:\"InfiniteHits\"})],props:{showPrevious:{type:Boolean,default:!1},escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:void 0},cache:{type:Object,default:void 0}},computed:{widgetParams:function(){return{showPrevious:this.showPrevious,escapeHTML:this.escapeHTML,transformItems:this.transformItems,cache:this.cache}},items:function(){return this.state.hits}},methods:{refinePrevious:function(){this.state.showPrevious()},refineNext:function(){this.state.showMore()}}};\n//# sourceMappingURL=InfiniteHits.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectMenu as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as o}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:[e.suit(),!e.state.canRefine&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[s(\"ul\",{class:e.suit(\"list\")},e._l(e.state.items,function(t){return s(\"li\",{key:t.value,class:[e.suit(\"item\"),t.isRefined&&e.suit(\"item\",\"selected\")]},[s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.state.createURL(t.value)},on:{click:function(s){s.preventDefault(),e.state.refine(t.value)}}},[s(\"span\",{class:e.suit(\"label\")},[e._v(e._s(t.label))]),e._v(\" \"),s(\"span\",{class:e.suit(\"count\")},[e._v(e._s(t.count))])])])})),e._v(\" \"),e.showShowMoreButton?s(\"button\",{class:[e.suit(\"showMore\"),!e.state.canToggleShowMore&&e.suit(\"showMore\",\"disabled\")],attrs:{disabled:!e.state.canToggleShowMore},on:{click:function(t){t.preventDefault(),e.state.toggleShowMore()}}},[e._t(\"showMoreLabel\",[e._v(e._s(e.state.isShowingMore?\"Show less\":\"Show more\"))],{isShowingMore:e.state.isShowingMore})],2):e._e()],{items:e.state.items,canRefine:e.state.canRefine,canToggleShowMore:e.state.canToggleShowMore,isShowingMore:e.state.isShowingMore,refine:e.state.refine,createURL:e.state.createURL,toggleShowMore:e.state.toggleShowMore,sendEvent:e.state.sendEvent})],2):e._e()},staticRenderFns:[],name:\"AisMenu\",mixins:[e({name:\"Menu\"}),t({connector:s}),o({mapStateToCanRefine:function(e){return Boolean(e.canRefine)}})],props:{attribute:{type:String,required:!0},limit:{type:Number,default:void 0},showMoreLimit:{type:Number,default:void 0},showMore:{type:Boolean,default:!1},sortBy:{type:[Array,Function],default:void 0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{attribute:this.attribute,limit:this.limit,showMore:this.showMore,showMoreLimit:this.showMoreLimit,sortBy:this.sortBy,transformItems:this.transformItems}},showShowMoreButton:function(){return this.state.canRefine&&this.showMore}}};\n//# sourceMappingURL=Menu.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectMenu as n}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as i}from\"../mixins/panel.js\";export default{render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.state?n(\"div\",{class:[t.suit(),!t.state.canRefine&&t.suit(\"\",\"noRefinement\")]},[t._t(\"default\",[n(\"select\",{class:t.suit(\"select\"),on:{change:function(e){t.refine(e.currentTarget.value)}}},[n(\"option\",{class:t.suit(\"option\"),attrs:{value:\"\"}},[t._t(\"defaultOption\",[t._v(\"See all\")])],2),t._v(\" \"),t._l(t.state.items,function(e){return n(\"option\",{key:e.value,class:t.suit(\"option\"),domProps:{value:e.value,selected:e.isRefined}},[t._t(\"item\",[t._v(t._s(e.label)+\" (\"+t._s(e.count)+\")\")],{item:e})],2)})],2)],{items:t.state.items,canRefine:t.state.canRefine,refine:t.refine,createURL:t.state.createURL,sendEvent:t.state.sendEvent})],2):t._e()},staticRenderFns:[],name:\"AisMenuSelect\",mixins:[t({name:\"MenuSelect\"}),e({connector:n}),i({mapStateToCanRefine:function(t){return Boolean(t.canRefine)}})],props:{attribute:{type:String,required:!0},limit:{type:Number,default:10},sortBy:{type:[Array,Function],default:void 0},transformItems:{type:Function,default:function(t){return t}}},computed:{widgetParams:function(){return{attribute:this.attribute,limit:this.limit,sortBy:this.sortBy,transformItems:this.transformItems}}},methods:{refine:function(t){this.state.refine(t)}}};\n//# sourceMappingURL=MenuSelect.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectNumericMenu as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as i}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:[e.suit(),!e.canRefine&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[s(\"ul\",{class:[e.suit(\"list\")]},e._l(e.state.items,function(t){return s(\"li\",{key:t.label,class:[e.suit(\"item\"),t.isRefined&&e.suit(\"item\",\"selected\")]},[s(\"label\",{class:e.suit(\"label\")},[s(\"input\",{class:e.suit(\"radio\"),attrs:{type:\"radio\",name:e.attribute},domProps:{value:t.value,checked:t.isRefined},on:{change:function(t){e.state.refine(t.target.value)}}}),e._v(\" \"),s(\"span\",{class:e.suit(\"labelText\")},[e._v(e._s(t.label))])])])}))],{items:e.state.items,canRefine:e.canRefine,refine:e.state.refine,createURL:e.state.createURL,sendEvent:e.state.sendEvent})],2):e._e()},staticRenderFns:[],name:\"AisNumericMenu\",mixins:[t({connector:s}),e({name:\"NumericMenu\"}),i({mapStateToCanRefine:function(e){return!1===e.hasNoResults}})],props:{attribute:{type:String,required:!0},items:{type:Array,required:!0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{attribute:this.attribute,transformItems:this.transformItems,items:this.items}},canRefine:function(){return!this.state.hasNoResults}}};\n//# sourceMappingURL=NumericMenu.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectPagination as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as a}from\"../mixins/panel.js\";export default{render:function(){var t,e,s,a,i=this,n=i.$createElement,r=i._self._c||n;return i.state?r(\"div\",{class:i.suit()},[i._t(\"default\",[r(\"ul\",{class:i.suit(\"list\")},[i.showFirst?r(\"li\",{class:(t={},t[i.suit(\"item\")]=!0,t[i.suit(\"item\",\"firstPage\")]=!0,t[i.suit(\"item\",\"disabled\")]=i.state.isFirstPage,t)},[i._t(\"first\",[i.state.isFirstPage?[r(\"span\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"First\"}},[i._v(\"‹‹\")])]:[r(\"a\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"First\",href:i.state.createURL(0)},on:{click:function(t){t.preventDefault(),i.refine(0)}}},[i._v(\"‹‹\")])]],{createURL:function(){return i.state.createURL(0)},isFirstPage:i.state.isFirstPage,refine:function(){return i.refine(0)}})],2):i._e(),i._v(\" \"),i.showPrevious?r(\"li\",{class:(e={},e[i.suit(\"item\")]=!0,e[i.suit(\"item\",\"previousPage\")]=!0,e[i.suit(\"item\",\"disabled\")]=i.state.isFirstPage,e)},[i._t(\"previous\",[i.state.isFirstPage?[r(\"span\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Previous\"}},[i._v(\"‹\")])]:[r(\"a\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Previous\",href:i.state.createURL(i.state.currentRefinement-1)},on:{click:function(t){t.preventDefault(),i.refine(i.state.currentRefinement-1)}}},[i._v(\"‹\")])]],{createURL:function(){return i.state.createURL(i.state.currentRefinement-1)},isFirstPage:i.state.isFirstPage,refine:function(){return i.refine(i.state.currentRefinement-1)}})],2):i._e(),i._v(\" \"),i._l(i.state.pages,function(t){var e;return r(\"li\",{key:t,class:(e={},e[i.suit(\"item\")]=!0,e[i.suit(\"item\",\"selected\")]=i.state.currentRefinement===t,e)},[i._t(\"item\",[r(\"a\",{class:i.suit(\"link\"),attrs:{href:i.state.createURL(t)},on:{click:function(e){e.preventDefault(),i.refine(t)}}},[i._v(i._s(t+1))])],{page:t,createURL:function(){return i.state.createURL(t)},isFirstPage:i.state.isFirstPage,isLastPage:i.state.isLastPage,refine:function(){return i.refine(t)}})],2)}),i._v(\" \"),i.showNext?r(\"li\",{class:(s={},s[i.suit(\"item\")]=!0,s[i.suit(\"item\",\"nextPage\")]=!0,s[i.suit(\"item\",\"disabled\")]=i.state.isLastPage,s)},[i._t(\"next\",[i.state.isLastPage?[r(\"span\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Next\"}},[i._v(\"›\")])]:[r(\"a\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Next\",href:i.state.createURL(i.state.currentRefinement+1)},on:{click:function(t){t.preventDefault(),i.refine(i.state.currentRefinement+1)}}},[i._v(\"›\")])]],{createURL:function(){return i.state.createURL(i.state.currentRefinement+1)},isLastPage:i.state.isLastPage,refine:function(){return i.refine(i.state.currentRefinement+1)}})],2):i._e(),i._v(\" \"),i.showLast?r(\"li\",{class:(a={},a[i.suit(\"item\")]=!0,a[i.suit(\"item\",\"lastPage\")]=!0,a[i.suit(\"item\",\"disabled\")]=i.state.isLastPage,a)},[i._t(\"last\",[i.state.isLastPage?[r(\"span\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Last\"}},[i._v(\"››\")])]:[r(\"a\",{class:i.suit(\"link\"),attrs:{\"aria-label\":\"Last\",href:i.state.createURL(i.state.nbPages-1)},on:{click:function(t){t.preventDefault(),i.refine(i.state.nbPages-1)}}},[i._v(\"››\")])]],{createURL:function(){return i.state.createURL(i.state.nbPages-1)},isLastPage:i.state.isLastPage,refine:function(){return i.refine(i.state.nbPages-1)}})],2):i._e()],2)],{refine:i.refine,createURL:i.state.createURL,currentRefinement:i.state.currentRefinement,nbHits:i.state.nbHits,nbPages:i.state.nbPages,pages:i.state.pages,isFirstPage:i.state.isFirstPage,isLastPage:i.state.isLastPage})],2):i._e()},staticRenderFns:[],name:\"AisPagination\",mixins:[t({name:\"Pagination\"}),e({connector:s}),a({mapStateToCanRefine:function(t){return t.nbPages>1}})],props:{padding:{type:Number,default:void 0,validator:function(t){return t>0}},totalPages:{type:Number,default:void 0,validator:function(t){return t>0}},showFirst:{type:Boolean,default:!0},showLast:{type:Boolean,default:!0},showNext:{type:Boolean,default:!0},showPrevious:{type:Boolean,default:!0}},computed:{widgetParams:function(){return{padding:this.padding,totalPages:this.totalPages}}},methods:{refine:function(t){var e=Math.min(Math.max(t,0),this.state.nbPages-1);this.state.refine(e),this.$emit(\"page-change\",e)}}};\n//# sourceMappingURL=Pagination.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createPanelProviderMixin as s}from\"../mixins/panel.js\";export default{render:function(){var e=this,s=e.$createElement,n=e._self._c||s;return n(\"div\",{class:[e.suit(),!e.canRefine&&e.suit(\"\",\"noRefinement\")]},[e.$slots.header||e.$scopedSlots.header?n(\"div\",{class:e.suit(\"header\")},[e._t(\"header\",null,{hasRefinements:e.canRefine})],2):e._e(),e._v(\" \"),n(\"div\",{class:e.suit(\"body\")},[e._t(\"default\",null,{hasRefinements:e.canRefine})],2),e._v(\" \"),e.$slots.footer||e.$scopedSlots.footer?n(\"div\",{class:e.suit(\"footer\")},[e._t(\"footer\",null,{hasRefinements:e.canRefine})],2):e._e()])},staticRenderFns:[],name:\"AisPanel\",mixins:[e({name:\"Panel\"}),s()]};\n//# sourceMappingURL=Panel.vue.js.map\n","import{createSuitMixin as a}from\"../mixins/suit.js\";export default{render:function(){var a=this,c=a.$createElement,t=a._self._c||c;return t(\"div\",{class:a.suit()},[t(\"a\",{class:a.suit(\"link\"),attrs:{href:a.algoliaUrl,target:\"_blank\",rel:\"noopener\",\"aria-label\":\"search by Algolia\"}},[t(\"svg\",{class:[a.suit(\"logo\"),a.suit(\"\",a.theme)],staticStyle:{height:\"1.2em\",width:\"auto\"},attrs:{viewBox:\"0 0 168 24\"}},[t(\"path\",{attrs:{fill:\"dark\"===a.theme?\"#FFF\":\"#5D6494\",d:\"M6.97 6.68V8.3a4.47 4.47 0 0 0-2.42-.67 2.2 2.2 0 0 0-1.38.4c-.34.26-.5.6-.5 1.02 0 .43.16.77.49 1.03.33.25.83.53 1.51.83a7.04 7.04 0 0 1 1.9 1.08c.34.24.58.54.73.89.15.34.23.74.23 1.18 0 .95-.33 1.7-1 2.24a4 4 0 0 1-2.6.81 5.71 5.71 0 0 1-2.94-.68v-1.71c.84.63 1.81.94 2.92.94.58 0 1.05-.14 1.39-.4.34-.28.5-.65.5-1.13 0-.29-.1-.55-.3-.8a2.2 2.2 0 0 0-.65-.53 23.03 23.03 0 0 0-1.64-.78 13.67 13.67 0 0 1-1.11-.64c-.12-.1-.28-.22-.46-.4a1.72 1.72 0 0 1-.39-.5 4.46 4.46 0 0 1-.22-.6c-.07-.23-.1-.48-.1-.75 0-.91.33-1.63 1-2.17a4 4 0 0 1 2.57-.8c.97 0 1.8.18 2.47.52zm7.47 5.7v-.3a2.26 2.26 0 0 0-.5-1.44c-.3-.35-.74-.53-1.32-.53-.53 0-.99.2-1.37.58-.38.39-.62.95-.72 1.68h3.91zm1 2.79v1.4c-.6.34-1.38.51-2.36.51a4.02 4.02 0 0 1-3-1.13 4.04 4.04 0 0 1-1.11-2.97c0-1.3.34-2.32 1.02-3.06a3.38 3.38 0 0 1 2.6-1.1c1.03 0 1.85.32 2.46.96.6.64.9 1.57.9 2.78 0 .33-.03.68-.09 1.04h-5.31c.1.7.4 1.24.89 1.61.49.38 1.1.56 1.85.56.86 0 1.58-.2 2.15-.6zm6.61-1.78h-1.21c-.6 0-1.05.12-1.35.36-.3.23-.46.53-.46.89 0 .37.12.66.36.88.23.2.57.32 1.02.32.5 0 .9-.15 1.2-.43.3-.28.44-.65.44-1.1v-.92zm-4.07-2.55V9.33a4.96 4.96 0 0 1 2.5-.55c2.1 0 3.17 1.03 3.17 3.08V17H22.1v-.96c-.42.68-1.15 1.02-2.19 1.02-.76 0-1.38-.22-1.84-.66-.46-.44-.7-1-.7-1.68 0-.78.3-1.38.88-1.81.59-.43 1.4-.65 2.46-.65h1.34v-.46c0-.55-.13-.97-.4-1.25-.26-.29-.7-.43-1.32-.43-.86 0-1.65.24-2.35.72zm9.34-1.93v1.42c.39-1 1.1-1.5 2.12-1.5.15 0 .31.02.5.05v1.53c-.23-.1-.48-.14-.76-.14-.54 0-.99.24-1.34.71a2.8 2.8 0 0 0-.52 1.71V17h-1.57V8.91h1.57zm5 4.09a3 3 0 0 0 .76 2.01c.47.53 1.14.8 2 .8.64 0 1.24-.18 1.8-.53v1.4c-.53.32-1.2.48-2 .48a3.98 3.98 0 0 1-4.17-4.18c0-1.16.38-2.15 1.14-2.98a4 4 0 0 1 3.1-1.23c.7 0 1.34.15 1.92.44v1.44a3.24 3.24 0 0 0-1.77-.5A2.65 2.65 0 0 0 32.33 13zm7.92-7.28v4.58c.46-1 1.3-1.5 2.5-1.5.8 0 1.42.24 1.9.73.48.5.72 1.17.72 2.05V17H43.8v-5.1c0-.56-.14-.99-.43-1.29-.28-.3-.65-.45-1.1-.45-.54 0-1 .2-1.42.6-.4.4-.61 1.02-.61 1.85V17h-1.56V5.72h1.56zM55.2 15.74c.6 0 1.1-.25 1.5-.76.4-.5.6-1.16.6-1.95 0-.92-.2-1.62-.6-2.12-.4-.5-.92-.74-1.55-.74-.56 0-1.05.22-1.5.67-.44.45-.66 1.13-.66 2.06 0 .96.22 1.67.64 2.14.43.47.95.7 1.57.7zM53 5.72v4.42a2.74 2.74 0 0 1 2.43-1.34c1.03 0 1.86.38 2.51 1.15.65.76.97 1.78.97 3.05 0 1.13-.3 2.1-.92 2.9-.62.81-1.47 1.21-2.54 1.21s-1.9-.45-2.46-1.34V17h-1.58V5.72H53zm9.9 11.1l-3.22-7.9h1.74l1 2.62 1.26 3.42c.1-.32.48-1.46 1.15-3.42l.91-2.63h1.66l-2.92 7.87c-.78 2.07-1.96 3.1-3.56 3.1-.28 0-.53-.02-.73-.07v-1.34c.17.04.35.06.54.06 1.03 0 1.76-.57 2.17-1.7z\"}}),a._v(\" \"),t(\"path\",{attrs:{fill:\"#5468FF\",d:\"M78.99.94h16.6a2.97 2.97 0 0 1 2.96 2.96v16.6a2.97 2.97 0 0 1-2.97 2.96h-16.6a2.97 2.97 0 0 1-2.96-2.96V3.9A2.96 2.96 0 0 1 79 .94\"}}),a._v(\" \"),t(\"path\",{attrs:{fill:\"#FFF\",d:\"M89.63 5.97v-.78a.98.98 0 0 0-.98-.97h-2.28a.98.98 0 0 0-.97.97V6c0 .09.08.15.17.13a7.13 7.13 0 0 1 3.9-.02c.08.02.16-.04.16-.13m-6.25 1L83 6.6a.98.98 0 0 0-1.38 0l-.46.46a.97.97 0 0 0 0 1.38l.38.39c.06.06.15.04.2-.02a7.49 7.49 0 0 1 1.63-1.62c.07-.04.08-.14.02-.2m4.16 2.45v3.34c0 .1.1.17.2.12l2.97-1.54c.06-.03.08-.12.05-.18a3.7 3.7 0 0 0-3.08-1.87c-.07 0-.14.06-.14.13m0 8.05a4.49 4.49 0 1 1 0-8.98 4.49 4.49 0 0 1 0 8.98m0-10.85a6.37 6.37 0 1 0 0 12.74 6.37 6.37 0 0 0 0-12.74\"}}),a._v(\" \"),t(\"path\",{attrs:{fill:\"dark\"===a.theme?\"#FFF\":\"#5468FF\",d:\"M120.92 18.8c-4.38.02-4.38-3.54-4.38-4.1V1.36l2.67-.42v13.25c0 .32 0 2.36 1.71 2.37v2.24zm-10.84-2.18c.82 0 1.43-.04 1.85-.12v-2.72a5.48 5.48 0 0 0-1.57-.2c-.3 0-.6.02-.9.07-.3.04-.57.12-.81.24-.24.11-.44.28-.58.49a.93.93 0 0 0-.22.65c0 .63.22 1 .61 1.23.4.24.94.36 1.62.36zm-.23-9.7c.88 0 1.62.11 2.23.33.6.22 1.09.53 1.44.92.36.4.61.92.76 1.48.16.56.23 1.17.23 1.85v6.87c-.4.1-1.03.2-1.86.32-.84.12-1.78.18-2.82.18-.69 0-1.32-.07-1.9-.2a4 4 0 0 1-1.46-.63c-.4-.3-.72-.67-.96-1.13a4.3 4.3 0 0 1-.34-1.8c0-.66.13-1.08.39-1.53.26-.45.6-.82 1.04-1.1.45-.3.95-.5 1.54-.62a8.8 8.8 0 0 1 3.79.05v-.44c0-.3-.04-.6-.11-.87a1.78 1.78 0 0 0-1.1-1.22c-.31-.12-.7-.2-1.15-.2a9.75 9.75 0 0 0-2.95.46l-.33-2.19c.34-.12.84-.23 1.48-.35.65-.12 1.34-.18 2.08-.18zm52.84 9.63c.82 0 1.43-.05 1.85-.13V13.7a5.42 5.42 0 0 0-1.57-.2c-.3 0-.6.02-.9.07-.3.04-.57.12-.81.24-.24.12-.44.28-.58.5a.93.93 0 0 0-.22.65c0 .63.22.99.61 1.23.4.24.94.36 1.62.36zm-.23-9.7c.88 0 1.63.11 2.23.33.6.22 1.1.53 1.45.92.35.39.6.92.76 1.48.15.56.23 1.18.23 1.85v6.88c-.41.08-1.03.19-1.87.31-.83.12-1.77.18-2.81.18-.7 0-1.33-.06-1.9-.2a4 4 0 0 1-1.47-.63c-.4-.3-.72-.67-.95-1.13a4.3 4.3 0 0 1-.34-1.8c0-.66.13-1.08.38-1.53.26-.45.61-.82 1.05-1.1.44-.3.95-.5 1.53-.62a8.8 8.8 0 0 1 3.8.05v-.43c0-.31-.04-.6-.12-.88-.07-.28-.2-.52-.38-.73a1.78 1.78 0 0 0-.73-.5c-.3-.1-.68-.2-1.14-.2a9.85 9.85 0 0 0-2.95.47l-.32-2.19a11.63 11.63 0 0 1 3.55-.53zm-8.03-1.27a1.62 1.62 0 0 0 0-3.24 1.62 1.62 0 1 0 0 3.24zm1.35 13.22h-2.7V7.27l2.7-.42V18.8zm-4.72 0c-4.38.02-4.38-3.54-4.38-4.1l-.01-13.34 2.67-.42v13.25c0 .32 0 2.36 1.72 2.37v2.24zm-8.7-5.9a4.7 4.7 0 0 0-.74-2.79 2.4 2.4 0 0 0-2.07-1 2.4 2.4 0 0 0-2.06 1 4.7 4.7 0 0 0-.74 2.8c0 1.16.25 1.94.74 2.62a2.4 2.4 0 0 0 2.07 1.02c.88 0 1.57-.34 2.07-1.02.49-.68.73-1.46.73-2.63zm2.74 0a6.46 6.46 0 0 1-1.52 4.23c-.49.53-1.07.94-1.76 1.22-.68.29-1.73.45-2.26.45-.53 0-1.58-.15-2.25-.45a5.1 5.1 0 0 1-2.88-3.13 7.3 7.3 0 0 1-.01-4.84 5.13 5.13 0 0 1 2.9-3.1 5.67 5.67 0 0 1 2.22-.42c.81 0 1.56.14 2.24.42.69.29 1.28.69 1.75 1.22.49.52.87 1.15 1.14 1.89a7 7 0 0 1 .43 2.5zm-20.14 0c0 1.11.25 2.36.74 2.88.5.52 1.13.78 1.91.78a4.07 4.07 0 0 0 2.12-.6V9.33c-.19-.04-.99-.2-1.76-.23a2.67 2.67 0 0 0-2.23 1 4.73 4.73 0 0 0-.78 2.8zm7.44 5.27c0 1.82-.46 3.16-1.4 4-.94.85-2.37 1.27-4.3 1.27-.7 0-2.17-.13-3.34-.4l.43-2.11c.98.2 2.27.26 2.95.26 1.08 0 1.84-.22 2.3-.66.46-.43.68-1.08.68-1.94v-.44a5.2 5.2 0 0 1-2.54.6 5.6 5.6 0 0 1-2.01-.36 4.2 4.2 0 0 1-2.58-2.71 9.88 9.88 0 0 1 .02-5.35 4.92 4.92 0 0 1 2.93-2.96 6.6 6.6 0 0 1 2.43-.46 19.64 19.64 0 0 1 4.43.66v10.6z\"}})])])])},staticRenderFns:[],name:\"AisPoweredBy\",mixins:[a({name:\"PoweredBy\"})],props:{theme:{default:\"light\",validator:function(a){return-1!==[\"light\",\"dark\"].indexOf(a)}}},computed:{algoliaUrl:function(){return\"https://www.algolia.com/?utm_source=vue-instantsearch&utm_medium=website&utm_content=\"+(location?location.hostname:\"\")+\"&utm_campaign=poweredby\"}}};\n//# sourceMappingURL=PoweredBy.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectQueryRules as r}from\"instantsearch.js/es/connectors\";export default{name:\"AisQueryRuleContext\",mixins:[t({name:\"QueryRuleContext\"}),e({connector:r})],props:{trackedFilters:{type:Object,required:!0},transformRuleContexts:{type:Function,required:!1,default:void 0}},computed:{widgetParams:function(){return{trackedFilters:this.trackedFilters,transformRuleContexts:this.transformRuleContexts}}},render:function(){return null}};\n//# sourceMappingURL=QueryRuleContext.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectQueryRules as s}from\"instantsearch.js/es/connectors\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state?s(\"div\",{class:t.suit()},[t._t(\"default\",t._l(t.state.items,function(e,r){return s(\"div\",{key:r},[t._t(\"item\",[s(\"pre\",[t._v(t._s(e))])],{item:e})],2)}),{items:t.state.items})],2):t._e()},staticRenderFns:[],name:\"AisQueryRuleCustomData\",mixins:[t({name:\"QueryRuleCustomData\"}),e({connector:s})],props:{transformItems:{type:Function,required:!1,default:void 0}},computed:{widgetParams:function(){return{transformItems:this.transformItems}}}};\n//# sourceMappingURL=QueryRuleCustomData.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectRange as n}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as i}from\"../mixins/panel.js\";var a=function(t){return t&&Boolean(t.range)&&t.range.min!==t.range.max};export default{render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.state?n(\"div\",{class:[t.suit(),!t.canRefine&&t.suit(\"\",\"noRefinement\")]},[t._t(\"default\",[n(\"form\",{class:t.suit(\"form\"),on:{submit:function(e){e.preventDefault(),t.refine({min:t.pick(t.minInput,t.values.min),max:t.pick(t.maxInput,t.values.max)})}}},[n(\"label\",{class:t.suit(\"label\")},[t._t(\"minLabel\"),t._v(\" \"),n(\"input\",{class:[t.suit(\"input\"),t.suit(\"input\",\"min\")],attrs:{type:\"number\",step:t.step,min:t.state.range.min,max:t.state.range.max,placeholder:t.state.range.min},domProps:{value:t.values.min},on:{change:function(e){t.minInput=e.currentTarget.value}}})],2),t._v(\" \"),n(\"span\",{class:t.suit(\"separator\")},[t._t(\"separator\",[t._v(\"to\")])],2),t._v(\" \"),n(\"label\",{class:t.suit(\"label\")},[t._t(\"maxLabel\"),t._v(\" \"),n(\"input\",{class:[t.suit(\"input\"),t.suit(\"input\",\"max\")],attrs:{type:\"number\",step:t.step,min:t.state.range.min,max:t.state.range.max,placeholder:t.state.range.max},domProps:{value:t.values.max},on:{change:function(e){t.maxInput=e.currentTarget.value}}})],2),t._v(\" \"),n(\"button\",{class:t.suit(\"submit\"),attrs:{type:\"submit\"}},[t._t(\"submitLabel\",[t._v(\"Go\")])],2)])],{currentRefinement:t.values,refine:t.refine,canRefine:t.canRefine,range:t.state.range,sendEvent:t.state.sendEvent})],2):t._e()},staticRenderFns:[],name:\"AisRangeInput\",mixins:[t({name:\"RangeInput\"}),e({connector:n}),i({mapStateToCanRefine:a})],props:{attribute:{type:String,required:!0},min:{type:Number,required:!1,default:-1/0},max:{type:Number,required:!1,default:1/0},precision:{type:Number,required:!1,default:0}},data:function(){return{minInput:void 0,maxInput:void 0}},updated:function(){this.minInput=void 0,this.maxInput=void 0},computed:{widgetParams:function(){return{attribute:this.attribute,min:this.min,max:this.max,precision:this.precision}},canRefine:function(){return a(this.state)},step:function(){return 1/Math.pow(10,this.precision)},values:function(){var t=this.state.start,e=t[0],n=t[1],i=this.state.range,a=i.min,s=i.max;return{min:e!==-1/0&&e!==a?e:void 0,max:n!==1/0&&n!==s?n:void 0}}},methods:{pick:function(t,e){return null!=t?t:e},refine:function(t){var e=t.min,n=t.max;this.state.refine([e,n])}}};\n//# sourceMappingURL=RangeInput.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectRatingMenu as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as a}from\"../mixins/panel.js\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state?s(\"div\",{class:t.suit()},[t._t(\"default\",[s(\"svg\",{staticStyle:{display:\"none\"},attrs:{xmlns:\"http://www.w3.org/2000/svg\"}},[s(\"symbol\",{attrs:{id:\"ais-RatingMenu-starSymbol\",viewBox:\"0 0 24 24\"}},[s(\"path\",{attrs:{d:\"M12 .288l2.833 8.718h9.167l-7.417 5.389 2.833 8.718-7.416-5.388-7.417 5.388 2.833-8.718-7.416-5.389h9.167z\"}})]),t._v(\" \"),s(\"symbol\",{attrs:{id:\"ais-RatingMenu-starEmptySymbol\",viewBox:\"0 0 24 24\"}},[s(\"path\",{attrs:{d:\"M12 6.76l1.379 4.246h4.465l-3.612 2.625 1.379 4.246-3.611-2.625-3.612 2.625 1.379-4.246-3.612-2.625h4.465l1.38-4.246zm0-6.472l-2.833 8.718h-9.167l7.416 5.389-2.833 8.718 7.417-5.388 7.416 5.388-2.833-8.718 7.417-5.389h-9.167l-2.833-8.718z\"}})])]),t._v(\" \"),s(\"ul\",{class:t.suit(\"list\")},t._l(t.state.items,function(e,a){return s(\"li\",{key:a,class:[t.suit(\"item\"),e.isRefined&&t.suit(\"item\",\"selected\")]},[s(\"a\",{class:t.suit(\"link\"),attrs:{href:t.state.createURL(e.value),\"aria-label\":e.value+\" & Up\"},on:{click:function(s){s.preventDefault(),t.state.refine(e.value)}}},[t._l(e.stars,function(e,a){return[e?s(\"svg\",{key:a+\"-full\",class:[t.suit(\"starIcon\"),t.suit(\"starIcon--full\")],attrs:{\"aria-hidden\":\"true\",width:\"24\",height:\"24\"}},[s(\"use\",{attrs:{\"xlink:href\":\"#ais-RatingMenu-starSymbol\"}})]):s(\"svg\",{key:a+\"-empty\",class:[t.suit(\"starIcon\"),t.suit(\"starIcon--empty\")],attrs:{\"aria-hidden\":\"true\",width:\"24\",height:\"24\"}},[s(\"use\",{attrs:{\"xlink:href\":\"#ais-RatingMenu-starEmptySymbol\"}})])]}),t._v(\" \"),s(\"span\",{class:t.suit(\"label\"),attrs:{\"aria-hidden\":\"true\"}},[t._t(\"andUp\",[t._v(\"& Up\")])],2),t._v(\" \"),s(\"span\",{class:t.suit(\"count\")},[t._v(t._s(e.count))])],2)])}))],{items:t.state.items,refine:t.state.refine,createURL:t.state.createURL,sendEvent:t.state.sendEvent})],2):t._e()},staticRenderFns:[],name:\"AisRatingMenu\",mixins:[t({name:\"RatingMenu\"}),e({connector:s}),a({mapStateToCanRefine:function(t){return!1===t.hasNoResults}})],props:{attribute:{type:String,required:!0},max:{type:Number,default:void 0}},computed:{widgetParams:function(){return{attribute:this.attribute,max:this.max}}}};\n//# sourceMappingURL=RatingMenu.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectRefinementList as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as r}from\"../mixins/panel.js\";import a from\"./Highlight.vue.js\";import i from\"./SearchInput.vue.js\";var o=function(){};export default{render:function(){var e,t=this,s=t.$createElement,r=t._self._c||s;return t.state?r(\"div\",{class:[t.suit(),!t.state.canRefine&&t.suit(\"\",\"noRefinement\")]},[t._t(\"default\",[t.searchable?r(\"div\",{class:t.suit(\"searchBox\")},[r(\"search-input\",{attrs:{placeholder:t.searchablePlaceholder,\"class-names\":t.classNames},model:{value:t.searchForFacetValues,callback:function(e){t.searchForFacetValues=e},expression:\"searchForFacetValues\"}})],1):t._e(),t._v(\" \"),t.state.isFromSearch&&0===t.items.length?t._t(\"noResults\",[r(\"div\",{class:t.suit(\"noResults\")},[t._v(\"No results.\")])],{query:t.searchForFacetValues}):t._e(),t._v(\" \"),r(\"ul\",{class:t.suit(\"list\")},t._l(t.items,function(e){return r(\"li\",{key:e.value,class:[t.suit(\"item\"),e.isRefined&&t.suit(\"item\",\"selected\")]},[t._t(\"item\",[r(\"label\",{class:t.suit(\"label\")},[r(\"input\",{class:t.suit(\"checkbox\"),attrs:{type:\"checkbox\"},domProps:{value:e.value,checked:e.isRefined},on:{change:function(s){t.refine(e.value)}}}),t._v(\" \"),t.searchable?r(\"span\",{class:t.suit(\"labelText\")},[r(\"ais-highlight\",{attrs:{attribute:\"item\",hit:e}})],1):r(\"span\",{class:t.suit(\"labelText\")},[t._v(t._s(e.label))]),t._v(\" \"),r(\"span\",{class:t.suit(\"count\")},[t._v(t._s(e.count))])])],{item:e,refine:t.refine,createURL:t.state.createURL})],2)})),t._v(\" \"),t.showMore?r(\"button\",{class:[t.suit(\"showMore\"),(e={},e[t.suit(\"showMore\",\"disabled\")]=!t.state.canToggleShowMore,e)],attrs:{disabled:!t.state.canToggleShowMore},on:{click:t.toggleShowMore}},[t._t(\"showMoreLabel\",[t._v(\"Show \"+t._s(t.state.isShowingMore?\"less\":\"more\"))],{isShowingMore:t.state.isShowingMore})],2):t._e()],{items:t.items,refine:t.refine,searchForItems:t.state.searchForItems,searchForItemsQuery:t.searchForFacetValuesQuery,toggleShowMore:t.toggleShowMore,canToggleShowMore:t.state.canToggleShowMore,isShowingMore:t.state.isShowingMore,createURL:t.state.createURL,isFromSearch:t.state.isFromSearch,canRefine:t.state.canRefine,sendEvent:t.state.sendEvent})],2):t._e()},staticRenderFns:[],name:\"AisRefinementList\",components:{SearchInput:i,AisHighlight:a},mixins:[e({name:\"RefinementList\"}),t({connector:s}),r({mapStateToCanRefine:function(e){return Boolean(e.canRefine)}})],props:{attribute:{type:String,required:!0},searchable:{type:Boolean,default:void 0},searchablePlaceholder:{type:String,required:!1,default:\"Search here…\"},operator:{default:\"or\",validator:function(e){return\"and\"===e||\"or\"===e},required:!1},limit:{type:Number,required:!1,default:void 0},showMoreLimit:{type:Number,required:!1,default:void 0},showMore:{type:Boolean,required:!1,default:!1},sortBy:{type:[Array,Function],required:!1,default:void 0},transformItems:{type:Function,required:!1,default:void 0}},data:function(){return{searchForFacetValuesQuery:\"\"}},computed:{searchForFacetValues:{get:function(){return this.searchForFacetValuesQuery},set:function(e){this.state.searchForItems(e),this.searchForFacetValuesQuery=e}},toggleShowMore:function(){return this.state.toggleShowMore||o},items:function(){return this.state.items.map(function(e){return Object.assign({},e,{_highlightResult:{item:{value:e.highlighted}}})})},widgetParams:function(){return{attribute:this.attribute,operator:this.operator,limit:this.limit,showMore:this.showMore,showMoreLimit:this.showMoreLimit,sortBy:this.sortBy,escapeFacetValues:!0,transformItems:this.transformItems}}},methods:{refine:function(e){this.state.refine(e),this.searchForFacetValuesQuery=\"\"}}};\n//# sourceMappingURL=RefinementList.vue.js.map\n","import{_objectSpread as t}from\"../util/polyfills.js\";export default function(n,e){return void 0===e&&(e=function(){}),function(s){return void 0===s&&(s={}),{init:function(t){var e=t.instantSearchInstance;n({state:void 0,results:void 0,instantSearchInstance:e,widgetParams:s},!0)},render:function(e){var a=e.results,i=e.instantSearchInstance,r=e.state,o=t({},a),c=t({},r);n({results:o,state:c,instantSearchInstance:i,widgetParams:s},!1)},dispose:function(){e()}}}}\n//# sourceMappingURL=connectStateResults.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{_objectSpread as s}from\"../util/polyfills.js\";import a from\"../connectors/connectStateResults.js\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state&&t.state.state&&t.state.results?s(\"div\",{class:t.suit()},[t._t(\"default\",[s(\"p\",[t._v(\" Use this component to have a different layout based on a certain state. \")]),t._v(\" \"),t._m(0),t._v(\" \"),s(\"pre\",[t._v(\"results: \"+t._s(Object.keys(t.state.results)))]),t._v(\" \"),s(\"pre\",[t._v(\"state: \"+t._s(Object.keys(t.state.state)))])],null,t.stateResults)],2):t._e()},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e(\"p\",[this._v(\" Fill in the slot, and get access to the following things on the \"),e(\"code\",[this._v(\"slot-scope\")]),this._v(\": \")])}],name:\"AisStateResults\",mixins:[e({connector:a}),t({name:\"StateResults\"})],computed:{stateResults:function(){var t=this.state,e=t.state,a=t.results;return s({},a,{results:a,state:e})}}};\n//# sourceMappingURL=StateResults.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import i from\"./Highlighter.vue.js\";export default{render:function(){var t=this.$createElement;return(this._self._c||t)(\"ais-highlighter\",{attrs:{hit:this.hit,attribute:this.attribute,\"highlighted-tag-name\":this.highlightedTagName,suit:this.suit,\"highlight-property\":\"_snippetResult\",\"pre-tag\":\"\",\"post-tag\":\"\"}})},staticRenderFns:[],name:\"AisSnippet\",mixins:[t({name:\"Snippet\"})],components:{AisHighlighter:i},props:{hit:{type:Object,required:!0},attribute:{type:String,required:!0},highlightedTagName:{type:String,default:\"mark\"}}};\n//# sourceMappingURL=Snippet.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectSortBy as s}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as n}from\"../mixins/panel.js\";export default{render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:e.suit()},[e._t(\"default\",[s(\"select\",{class:e.suit(\"select\"),on:{change:function(t){e.state.refine(t.currentTarget.value)}}},e._l(e.state.options,function(t){return s(\"option\",{key:t.value,class:e.suit(\"option\"),domProps:{value:t.value,selected:t.value===e.state.currentRefinement}},[e._v(e._s(t.label))])}))],{items:e.state.options,hasNoResults:e.state.hasNoResults,refine:e.state.refine,currentRefinement:e.state.currentRefinement})],2):e._e()},staticRenderFns:[],name:\"AisSortBy\",mixins:[e({name:\"SortBy\"}),t({connector:s}),n({mapStateToCanRefine:function(e){return!1===e.hasNoResults}})],props:{items:{type:Array,required:!0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{items:this.items,transformItems:this.transformItems}}}};\n//# sourceMappingURL=SortBy.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as s}from\"../mixins/widget.js\";import{connectStats as e}from\"instantsearch.js/es/connectors\";export default{render:function(){var t=this,s=t.$createElement,e=t._self._c||s;return t.state?e(\"div\",{class:t.suit()},[t._t(\"default\",[e(\"span\",{class:t.suit(\"text\")},[t.state.areHitsSorted?[t._v(t._s(t.state.nbSortedHits.toLocaleString())+\" relevant results sorted out of \"+t._s(t.state.nbHits.toLocaleString()))]:[t._v(t._s(t.state.nbHits.toLocaleString())+\" results\")],t._v(\" found in \"+t._s(t.state.processingTimeMS.toLocaleString())+\"ms\")],2)],{results:t.state.instantSearchInstance.helper.lastResults},t.state)],2):t._e()},staticRenderFns:[],name:\"AisStats\",mixins:[s({connector:e}),t({name:\"Stats\"})],computed:{widgetParams:function(){return{}}}};\n//# sourceMappingURL=Stats.vue.js.map\n","import{createSuitMixin as e}from\"../mixins/suit.js\";import{createWidgetMixin as t}from\"../mixins/widget.js\";import{connectToggleRefinement as n}from\"instantsearch.js/es/connectors\";import{createPanelConsumerMixin as a}from\"../mixins/panel.js\";var i=function(e){return Boolean(e.value&&e.value.count)};export default{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.state?n(\"div\",{class:[e.suit(),!e.canRefine&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[n(\"label\",{class:e.suit(\"label\")},[n(\"input\",{class:e.suit(\"checkbox\"),attrs:{type:\"checkbox\",name:e.state.value.name},domProps:{value:e.on,checked:e.state.value.isRefined},on:{change:function(t){e.state.refine(e.state.value)}}}),e._v(\" \"),n(\"span\",{class:e.suit(\"labelText\")},[e._v(e._s(e.label))]),e._v(\" \"),null!==e.state.value.count?n(\"span\",{class:e.suit(\"count\")},[e._v(e._s(e.state.value.count.toLocaleString()))]):e._e()])],{value:e.state.value,canRefine:e.canRefine,refine:e.state.refine,createURL:e.state.createURL,sendEvent:e.state.sendEvent})],2):e._e()},staticRenderFns:[],name:\"AisToggleRefinement\",mixins:[e({name:\"ToggleRefinement\"}),t({connector:n}),a({mapStateToCanRefine:i})],props:{attribute:{type:String,required:!0},label:{type:String,required:!0},on:{type:[String,Number,Boolean,Array],required:!1,default:!0},off:{type:[String,Number,Boolean,Array],required:!1,default:void 0}},computed:{widgetParams:function(){return{attribute:this.attribute,label:this.label,on:this.on,off:this.off}},canRefine:function(){return i(this.state)}}};\n//# sourceMappingURL=ToggleRefinement.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectVoiceSearch as s}from\"instantsearch.js/es/connectors\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state?s(\"div\",{class:t.suit()},[t._t(\"default\",[s(\"button\",{class:t.suit(\"button\"),attrs:{type:\"button\",title:t.state.isBrowserSupported?t.buttonTitle:t.disabledButtonTitle,disabled:!t.state.isBrowserSupported},on:{click:t.handleClick}},[t._t(\"buttonText\",[t.errorNotAllowed?s(\"svg\",t._b({},\"svg\",t.buttonSvgAttrs,!1),[s(\"line\",{attrs:{x1:\"1\",y1:\"1\",x2:\"23\",y2:\"23\"}}),t._v(\" \"),s(\"path\",{attrs:{d:\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"}}),t._v(\" \"),s(\"path\",{attrs:{d:\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"}}),t._v(\" \"),s(\"line\",{attrs:{x1:\"12\",y1:\"19\",x2:\"12\",y2:\"23\"}}),t._v(\" \"),s(\"line\",{attrs:{x1:\"8\",y1:\"23\",x2:\"16\",y2:\"23\"}})]):s(\"svg\",t._b({},\"svg\",t.buttonSvgAttrs,!1),[s(\"path\",{attrs:{d:\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\",fill:t.state.isListening?\"currentColor\":\"none\"}}),t._v(\" \"),s(\"path\",{attrs:{d:\"M19 10v2a7 7 0 0 1-14 0v-2\"}}),t._v(\" \"),s(\"line\",{attrs:{x1:\"12\",y1:\"19\",x2:\"12\",y2:\"23\"}}),t._v(\" \"),s(\"line\",{attrs:{x1:\"8\",y1:\"23\",x2:\"16\",y2:\"23\"}})])],null,t.innerSlotProps)],2),t._v(\" \"),s(\"div\",{class:t.suit(\"status\")},[t._t(\"status\",[s(\"p\",[t._v(t._s(t.state.voiceListeningState.transcript))])],null,t.innerSlotProps)],2)],null,t.rootSlotProps)],2):t._e()},staticRenderFns:[],name:\"AisVoiceSearch\",mixins:[e({connector:s}),t({name:\"VoiceSearch\"})],props:{searchAsYouSpeak:{type:Boolean,required:!1,default:void 0},buttonTitle:{type:String,required:!1,default:\"Search by voice\"},disabledButtonTitle:{type:String,required:!1,default:\"Search by voice (not supported on this browser)\"}},data:function(){return{buttonSvgAttrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}}},computed:{widgetParams:function(){return{searchAsYouSpeak:this.searchAsYouSpeak}},errorNotAllowed:function(){return\"error\"===this.state.voiceListeningState.status&&\"not-allowed\"===this.state.voiceListeningState.errorCode},rootSlotProps:function(){return{isBrowserSupported:this.state.isBrowserSupported,isListening:this.state.isListening,toggleListening:this.state.toggleListening,voiceListeningState:this.state.voiceListeningState}},innerSlotProps:function(){return{status:this.state.voiceListeningState.status,errorCode:this.state.voiceListeningState.errorCode,isListening:this.state.isListening,transcript:this.state.voiceListeningState.transcript,isSpeechFinal:this.state.voiceListeningState.isSpeechFinal,isBrowserSupported:this.state.isBrowserSupported}}},methods:{handleClick:function(t){t.currentTarget.blur(),this.state.toggleListening()}}};\n//# sourceMappingURL=VoiceSearch.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as e}from\"../mixins/widget.js\";import{connectRelevantSort as s}from\"instantsearch.js/es/connectors\";export default{render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.state&&t.state.isVirtualReplica?s(\"div\",{class:t.suit()},[t._t(\"default\",[s(\"div\",{class:t.suit(\"text\")},[t._t(\"text\",null,{isRelevantSorted:t.state.isRelevantSorted})],2),t._v(\" \"),s(\"button\",{class:t.suit(\"button\"),attrs:{type:\"button\"},on:{click:function(e){t.refine()}}},[t._t(\"button\",[t._v(t._s(t.state.isRelevantSorted?\"See all results\":\"See relevant results\"))],{isRelevantSorted:t.state.isRelevantSorted})],2)],{isRelevantSorted:t.state.isRelevantSorted,refine:t.state.refine})],2):t._e()},staticRenderFns:[],name:\"AisRelevantSort\",mixins:[t({name:\"RelevantSort\"}),e({connector:s})],methods:{refine:function(){this.state.isRelevantSorted?this.state.refine(0):this.state.refine(void 0)}}};\n//# sourceMappingURL=RelevantSort.vue.js.map\n","import{createSuitMixin as t}from\"../mixins/suit.js\";import{createWidgetMixin as r}from\"../mixins/widget.js\";import{EXPERIMENTAL_connectDynamicWidgets as i}from\"instantsearch.js/es/connectors\";export default{name:\"AisExperimentalDynamicWidgets\",mixins:[r({connector:i}),t({name:\"DynamicWidgets\"})],props:{transformItems:{type:Function,default:void 0}},render:function(t){var r=this,i=new Map;if((this.$slots.default||[]).forEach(function(n){var e=function t(r){var i=r.componentOptions&&r.componentOptions.propsData;if(i){if(i.attribute)return i.attribute;if(Array.isArray(i.attributes))return i.attributes[0]}var n=r.componentOptions&&r.componentOptions.children?r.componentOptions.children:r.children;if(Array.isArray(n))return n.reduce(function(r,i){return r||t(i)},void 0)}(n);e&&i.set(e,t(\"div\",{key:e,class:[r.suit(\"widget\")]},[n]))}),!this.state){var n=[];return i.forEach(function(t){return n.push(t)}),t(\"div\",{attrs:{hidden:!0},class:[this.suit()]},n)}return t(\"div\",{class:[this.suit()]},this.state.attributesToRender.map(function(t){return i.get(t)}))},computed:{widgetParams:function(){return{transformItems:this.transformItems,widgets:[]}}}};\n//# sourceMappingURL=DynamicWidgets.js.map\n","import*as n from\"./widgets.js\";var o={install:function(o){Object.keys(n).forEach(function(t){o.component(n[t].name,n[t])})}};export{o as plugin};\n//# sourceMappingURL=plugin.js.map\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueSocialSharing=e():t.VueSocialSharing=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\"\",i(i.s=0)}([function(t,e,i){t.exports=i(1)},function(t,e,i){\"use strict\";i.r(e),i.d(e,\"ShareNetwork\",(function(){return o}));var r={baidu:\"http://cang.baidu.com/do/add?iu=@u&it=@t\",buffer:\"https://bufferapp.com/add?text=@t&url=@u\",email:\"mailto:?subject=@t&body=@u%0D%0A@d\",evernote:\"https://www.evernote.com/clip.action?url=@u&title=@t\",facebook:\"https://www.facebook.com/sharer/sharer.php?u=@u&title=@t&description=@d"e=@q&hashtag=@h\",flipboard:\"https://share.flipboard.com/bookmarklet/popout?v=2&url=@u&title=@t\",hackernews:\"https://news.ycombinator.com/submitlink?u=@u&t=@t\",instapaper:\"http://www.instapaper.com/edit?url=@u&title=@t&description=@d\",line:\"http://line.me/R/msg/text/?@t%0D%0A@u%0D%0A@d\",linkedin:\"https://www.linkedin.com/sharing/share-offsite/?url=@u\",messenger:\"fb-messenger://share/?link=@u\",odnoklassniki:\"https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl=@u&st.comments=@t\",pinterest:\"https://pinterest.com/pin/create/button/?url=@u&media=@m&description=@t\",pocket:\"https://getpocket.com/save?url=@u&title=@t\",quora:\"https://www.quora.com/share?url=@u&title=@t\",reddit:\"https://www.reddit.com/submit?url=@u&title=@t\",skype:\"https://web.skype.com/share?url=@t%0D%0A@u%0D%0A@d\",sms:\"sms:?body=@t%0D%0A@u%0D%0A@d\",stumbleupon:\"https://www.stumbleupon.com/submit?url=@u&title=@t\",telegram:\"https://t.me/share/url?url=@u&text=@t%0D%0A@d\",tumblr:\"https://www.tumblr.com/share/link?url=@u&name=@t&description=@d\",twitter:\"https://twitter.com/intent/tweet?text=@t&url=@u&hashtags=@h@tu\",viber:\"viber://forward?text=@t%0D%0A@u%0D%0A@d\",vk:\"https://vk.com/share.php?url=@u&title=@t&description=@d&image=@m&noparse=true\",weibo:\"http://service.weibo.com/share/share.php?url=@u&title=@t&pic=@m\",whatsapp:\"https://api.whatsapp.com/send?text=@t%0D%0A@u%0D%0A@d\",wordpress:\"https://wordpress.com/press-this.php?u=@u&t=@t&s=@d&i=@m\",xing:\"https://www.xing.com/social/share/spi?op=share&url=@u&title=@t\",yammer:\"https://www.yammer.com/messages/new?login=true&status=@t%0D%0A@u%0D%0A@d\"},n=\"undefined\"!=typeof window?window:null;var o={name:\"ShareNetwork\",props:{network:{type:String,required:!0},url:{type:String,required:!0},title:{type:String,required:!0},description:{type:String,default:\"\"},quote:{type:String,default:\"\"},hashtags:{type:String,default:\"\"},twitterUser:{type:String,default:\"\"},media:{type:String,default:\"\"},tag:{type:String,default:\"a\"},popup:{type:Object,default:function(){return{width:626,height:436}}}},data:function(){return{popupTop:0,popupLeft:0,popupWindow:void 0,popupInterval:null}},computed:{networks:function(){return this.$SocialSharing?this.$SocialSharing.options.networks:r},key:function(){return this.network.toLowerCase()},rawLink:function(){var t=navigator.userAgent.toLowerCase();return\"sms\"===this.key&&(t.indexOf(\"iphone\")>-1||t.indexOf(\"ipad\")>-1)?this.networks[this.key].replace(\":?\",\":&\"):this.networks[this.key]},shareLink:function(){var t=this.rawLink;return\"twitter\"===this.key&&(this.hashtags.length||(t=t.replace(\"&hashtags=@h\",\"\")),this.twitterUser.length||(t=t.replace(\"@tu\",\"\"))),t.replace(/@tu/g,\"&via=\"+encodeURIComponent(this.twitterUser)).replace(/@u/g,encodeURIComponent(this.url)).replace(/@t/g,encodeURIComponent(this.title)).replace(/@d/g,encodeURIComponent(this.description)).replace(/@q/g,encodeURIComponent(this.quote)).replace(/@h/g,this.encodedHashtags).replace(/@m/g,encodeURIComponent(this.media))},encodedHashtags:function(){return\"facebook\"===this.key&&this.hashtags.length?\"%23\"+this.hashtags.split(\",\")[0]:this.hashtags}},render:function(t){var e=this;if(!this.networks.hasOwnProperty(this.key))throw new Error(\"Network \"+this.key+\" does not exist\");var i={class:\"share-network-\"+this.key,on:{click:function(){return e[\"http\"===e.rawLink.substring(0,4)?\"share\":\"touch\"]()}}};return\"a\"===this.tag&&(i.attrs={href:\"javascript:void(0)\"}),t(this.tag,i,this.$slots.default)},methods:{resizePopup:function(){var t=n.innerWidth||document.documentElement.clientWidth||n.screenX,e=n.innerHeight||document.documentElement.clientHeight||n.screenY,i=t/n.screen.availWidth;this.popupLeft=(t-this.popup.width)/2/i+(void 0!==n.screenLeft?n.screenLeft:n.screenX),this.popupTop=(e-this.popup.height)/2/i+(void 0!==n.screenTop?n.screenTop:n.screenY)},share:function(){var t=this;this.resizePopup(),this.popupWindow&&this.popupInterval&&(clearInterval(this.popupInterval),this.popupWindow.close(),this.emit(\"change\")),this.popupWindow=n.open(this.shareLink,\"sharer-\"+this.key,\",height=\"+this.popup.height+\",width=\"+this.popup.width+\",left=\"+this.popupLeft+\",top=\"+this.popupTop+\",screenX=\"+this.popupLeft+\",screenY=\"+this.popupTop),this.popupWindow&&(this.popupWindow.focus(),this.popupInterval=setInterval((function(){t.popupWindow&&!t.popupWindow.closed||(clearInterval(t.popupInterval),t.popupWindow=null,t.emit(\"close\"))}),500),this.emit(\"open\"))},touch:function(){window.open(this.shareLink,\"_blank\"),this.emit(\"open\")},emit:function(t){this.$root.$emit(\"share_network_\"+t,this.key,this.url),this.$emit(t,this.key,this.url)}}};e.default={install:function(t,e){t.component(o.name,o),t.prototype.$SocialSharing={options:{networks:e&&e.hasOwnProperty(\"networks\")?Object.assign(r,e.networks):r}}}}}])}));","// To see this message, add the following to the `` section in your\n// views/layouts/application.html.erb\n//\n// <%= vite_client_tag %>\n// <%= vite_javascript_tag 'application' %>\nconsole.log('Vite ⚡️ Rails')\n\n// If using a TypeScript entrypoint file:\n// <%= vite_typescript_tag 'application' %>\n//\n// If you want to use .jsx or .tsx, add the extension:\n// <%= vite_javascript_tag 'application.jsx' %>\n\nconsole.log('Visit the guide for more information: ', 'https://vite-ruby.netlify.app/guide/rails')\n\n// Example: Load Rails libraries in Vite.\n//\n// import * as Turbo from '@hotwired/turbo'\n// Turbo.start()\n//\n// import ActiveStorage from '@rails/activestorage'\n// ActiveStorage.start()\n//\n// // Import all channels.\n// const channels = import.meta.globEager('./**/*_channel.js')\n\n// Example: Import a stylesheet in app/frontend/index.css\n// import '~/index.css'\n\nimport \"regenerator-runtime/runtime\";\nimport \"picturefill\";\nimport Vue from 'vue/dist/vue.esm.js';\nimport * as Sentry from '@sentry/browser';\nimport { Vue as VueIntegration } from '@sentry/integrations';\nimport { EventBus } from '../utils/event-bus';\nimport 'lazysizes';\nimport 'lazysizes/plugins/parent-fit/ls.parent-fit';\nimport 'lazysizes/plugins/bgset/ls.bgset';\n\nimport VScrollLock from 'v-scroll-lock'\nVue.use(VScrollLock, {\n bodyScrollOptions: {\n reserveScrollBarGap: true,\n },\n})\n\n// Register Angolia Search Component\nimport InstantSearch from 'vue-instantsearch';\nVue.use(InstantSearch);\n\n// Social Sharing\nimport VueSocialSharing from 'vue-social-sharing'\nVue.use(VueSocialSharing);\n\nif (!window.location.hostname == \"localhost\" && !window.location.hostname == \"127.0.0.1\") {\n Sentry.init({\n dsn: 'https://e6c72a61e28e4bdfbb96b01a39533f3d:728c8fb660c741b4b8933c0044a9ea62@o44241.ingest.sentry.io/5261870',\n integrations: [new VueIntegration({Vue, attachProps: true})],\n });\n}\n\n// Register all Components Globally\nconst modules = import.meta.glob('../components/**/*.vue')\n\nObject.entries(modules).forEach(([path, module]) => {\n const componentName = path.split('/').pop().replace(/\\.\\w+$/, '')\n \n // Register component with lazy loading\n Vue.component(componentName, () => module())\n})\n\n// Register the App\ndocument.addEventListener('DOMContentLoaded', () => {\n new Vue({\n el: '[data-behavior=\"vue\"]',\n // apolloProvider,\n });\n})\n\ndocument.addEventListener('DOMContentLoaded', function() {\n const eventBus = EventBus;\n const body = document.querySelector('body');\n const header = document.querySelector('header');\n const footer = document.querySelector('footer');\n const navToggles = document.querySelectorAll('.nav-toggle');\n const nav = document.querySelector('.mobile-nav');\n const modal = document.querySelector('.modal');\n const reportDownloadButton = document.querySelector('.m-news__single-article__report__download');\n const reportLeadCaptureButton = document.querySelector('.m-news__single-article__report__leadcapture');\n const ctaButton = document.querySelector('.cta-bar');\n const ctaModule = document.querySelector('.cta-module');\n const firstModule = document.querySelector('main section:not(.s-header-spacer)');\n let navOpen = false;\n\n eventBus.$on('bodyNoScroll', (payload) => {\n if(payload.scroll == 'false') {\n body.classList.add('no-scroll');\n } else {\n body.classList.remove('no-scroll');\n }\n });\n\n const toggleReportPrompt = function(visibility) {\n eventBus.$emit('toggleReportPrompt', {visibility: visibility});\n }\n const toggleCtaPrompt = function(visibility) {\n eventBus.$emit('toggleCtaPrompt', {visibility: visibility});\n }\n\n if(ctaButton) {\n\n let ctaIsModuleVisible;\n let isFirstModuleVisible;\n\n function ctaCheckForVisibility() {\n\n if(ctaIsModuleVisible || isFirstModuleVisible) {\n toggleCtaPrompt('hide');\n } else {\n toggleCtaPrompt('show');\n }\n \n }\n\n const ctaObserverOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0\n }\n\n const ctaObserver = new IntersectionObserver(function(entries) {\n entries.forEach(entry => { \n if(entry.target.dataset.obsid == 'cta-module') {\n ctaIsModuleVisible = entry.isIntersecting;\n }\n if(entry.target.attributes.id == firstModule.attributes.id) {\n isFirstModuleVisible = entry.isIntersecting;\n }\n ctaCheckForVisibility();\n });\n }, ctaObserverOptions);\n\n ctaObserver.observe(ctaModule);\n ctaObserver.observe(firstModule);\n }\n\n if(reportDownloadButton) {\n if (reportLeadCaptureButton) {\n reportLeadCaptureButton.addEventListener('click', function() {\n eventBus.$emit('showReportDownloadForm');\n eventBus.$emit('toggleModal', {visibility: 'show'});\n eventBus.$emit('bodyNoScroll', {scroll: 'false'});\n });\n }\n\n let lastKnownButtonEntry;\n let lastKnownFooterEntry;\n let isButtonBelowViewport;\n\n function checkForVisibility() {\n if(isButtonBelowViewport) {\n toggleReportPrompt('hide');\n } else {\n if(!lastKnownButtonEntry) {\n toggleReportPrompt('show');\n } else {\n toggleReportPrompt('hide');\n }\n eventBus.$emit('toggleReportPromptSticky', !lastKnownButtonEntry && !!lastKnownFooterEntry); \n }\n }\n\n const observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0\n }\n\n const observer = new IntersectionObserver(function(entries) {\n entries.forEach(entry => {\n if(entry.target.dataset.obsid == 'download') {\n if(entry.boundingClientRect.top > entry.rootBounds.bottom) {\n isButtonBelowViewport = true;\n } else {\n isButtonBelowViewport = false;\n }\n }\n \n if(entry.target.dataset.obsid == 'download') {\n lastKnownButtonEntry = entry.isIntersecting;\n } else if(entry.target.dataset.obsid == 'footer') {\n lastKnownFooterEntry = entry.isIntersecting;\n }\n checkForVisibility();\n });\n }, observerOptions);\n\n observer.observe(reportDownloadButton);\n observer.observe(footer);\n }\n \n\n navToggles && navToggles.forEach(toggle => {\n toggle.addEventListener('click', function() {\n if(!navOpen) {\n this.classList.add('is-active');\n const navToggleIcon = document.querySelector('.nav-toggle-icon');\n navToggleIcon && navToggleIcon.classList.add('is-active');\n nav.classList.add('is-visible');\n modal && modal.classList.add('is-visible');\n body.classList.add('no-scroll');\n header.classList.add('mobile-nav-active');\n navOpen = true;\n } else {\n this.classList.remove('is-active');\n const navToggleIcon = document.querySelector('.nav-toggle-icon');\n navToggleIcon && navToggleIcon.classList.remove('is-active');\n nav.classList.remove('is-visible');\n modal && modal.classList.remove('is-visible');\n body.classList.remove('no-scroll');\n header.classList.remove('mobile-nav-active');\n navOpen = false;\n }\n });\n })\n\n // Slide Toggle\n const SlideToggleSections = Array.from(document.querySelectorAll('.slide-toggle'));\n\n SlideToggleSections.forEach((section, index) => {\n\n section.querySelector(\".slide-toggle__trigger\").addEventListener('click', function() {\n section.classList.toggle('is-active');\n let active = section.classList.contains('is-active');\n\n section.querySelectorAll(\".slide-toggle__toggleable\").forEach(t => {\n t.classList.toggle('is-active', active);\n const heightSize = active ? t.scrollHeight : 0\n \n t.style.overflow = 'hidden';\n t.style.transitionProperty = 'height';\n t.style.height = `${heightSize}px`;\n t.style.transitionDuration = '300ms'; \n })\n })\n })\n\n // Mobile nav sections\n const mobileNavSections = Array.from(document.querySelectorAll('.mobile-nav__section--collapsible'));\n\n function closeAll() {\n mobileNavSections.forEach(section => {\n section.querySelectorAll(\".mobile-nav__section__content\").forEach(t => {\n t.style.overflow = 'hidden';\n t.style.height = `${t.scrollHeight}px`; // cancel set to auto but specific value for transition\n setTimeout(() => t.style.height = '0px', 10)\n }) \n });\n }\n\n // function setMobileNavHeights() {\n // mobileNavSections.forEach((section, index) => {\n // let content = section.lastElementChild;\n // if(!(content.dataset.mheight && content.dataset.mheight > 0)) {\n // content.dataset.mheight = content.scrollHeight\n // }\n // })\n // }\n\n // setMobileNavHeights()\n\n // window.addEventListener('resize', setMobileNavHeights);\n\n mobileNavSections.forEach((section, index) => {\n let content = section.lastElementChild;\n let contentHeight = content.scrollHeight;\n\n section.querySelector(\".mobile-nav__section__trigger\").addEventListener('click', function(e) {\n section.classList.toggle('is-active');\n let isOpen = section.classList.contains('is-active');\n \n if(!isOpen) {\n // closeAll();\n }\n\n section.querySelectorAll(\".mobile-nav__section__content\").forEach(t => {\n const heightSize = isOpen ? t.scrollHeight : 0\n \n t.style.overflow = 'hidden';\n t.style.transitionProperty = 'height';\n t.style.transitionDuration = '300ms'; \n if (isOpen) {\n t.style.height = `${t.scrollHeight}px`;\n setTimeout(() => t.style.height = 'auto', 300)\n } else {\n t.style.height = `${t.scrollHeight}px`; // cancel set to auto but specific value for transition\n setTimeout(() => t.style.height = '0px', 10)\n }\n }) \n });\n });\n\n // Careers page video overlay\n const videoOverlay = document.querySelector('.s-careers-intro__video__overlay');\n let overlayVisible = true;\n\n videoOverlay && videoOverlay.addEventListener('click', function() {\n if(overlayVisible) {\n this.classList.add('is-hidden');\n overlayVisible = false;\n } else {\n this.classList.remove('is-hidden');\n overlayVisible = true;\n }\n });\n\n\n // Content Long Form Collapsible Structures\n function collapseSection(element) {\n // get the height of the element's inner content, regardless of its actual size\n var sectionHeight = element.scrollHeight;\n \n // temporarily disable all css transitions\n var elementTransition = element.style.transition;\n element.style.transition = '';\n \n // on the next frame (as soon as the previous style change has taken effect),\n // explicitly set the element's height to its current pixel height, so we \n // aren't transitioning out of 'auto'\n requestAnimationFrame(function() {\n element.style.height = sectionHeight + 'px';\n element.style.transition = elementTransition;\n \n // on the next frame (as soon as the previous style change has taken effect),\n // have the element transition to height: 0\n requestAnimationFrame(function() {\n element.style.height = 0 + 'px';\n });\n });\n }\n \n function expandSection(element) {\n // get the height of the element's inner content, regardless of its actual size\n var sectionHeight = element.scrollHeight;\n \n // have the element transition to the height of its inner content\n element.style.height = sectionHeight + 'px';\n \n // when the next css transition finishes (which should be the one we just triggered)\n element.addEventListener('transitionend', function transitionExpandFinished(e) {\n // remove this event listener so it only gets triggered once\n element.removeEventListener('transitionend', transitionExpandFinished);\n \n // remove \"height\" from the element's inline styles, so it can return to its initial value\n element.style.height = null;\n });\n }\n\n const collapsibles = Array.from(document.querySelectorAll('.collapsible'));\n collapsibles.forEach((collapsible, index) => {\n var trigger = collapsible.querySelector('.collapsible--trigger');\n var section = collapsible.querySelector('.collapsible--content');\n var arrow = collapsible.querySelector('.arrow');\n\n trigger.addEventListener('click', function(e) {\n var isCollapsed = collapsible.getAttribute('data-collapsed') === 'true';\n if(isCollapsed) {\n expandSection(section)\n arrow.classList.remove('down')\n collapsible.setAttribute('data-collapsed', 'false')\n } else {\n collapseSection(section)\n arrow.classList.add('down')\n collapsible.setAttribute('data-collapsed', 'true')\n }\n });\n });\n\n\n // Ga Event Tracking\n const gaEnabled = document.querySelectorAll('[data-ga-enable=\"true\"]');\n\n gaEnabled.forEach((element, index) => {\n element.addEventListener('click', function(e) {\n var category = element.getAttribute('data-ga-category');\n var action = element.getAttribute('data-ga-action');\n var label = element.getAttribute('data-ga-label');\n \n // if(category && action && label) {\n gtag('event', 'GAEvent', {\n 'event_category': category,\n 'event_action': action,\n 'event_label': label\n }); \n // }\n });\n });\n\n});\n\n\n// Allow for auto-clicking of elements on page load, i.e. for cookie settings page\ndocument.addEventListener('DOMContentLoaded', () => {\n document.querySelectorAll('[data-auto-click=\"true\"]').forEach((element, index) => {\n setTimeout(() => element.click(), 1000);\n });\n})\n"],"file":"assets/application-CTwtOMkA.js"}