{"version":3,"sources":["webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/forOwn.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/escape.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","webpack:///./node_modules/instantsearch.js/es/lib/escape-highlight.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/documentation.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/noop.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/checkRendering.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/find.js","webpack:///./node_modules/instantsearch.js/es/connectors/autocomplete/connectAutocomplete.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/logger.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isEqual.js","webpack:///./node_modules/instantsearch.js/es/connectors/breadcrumb/connectBreadcrumb.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/clearRefinements.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/unescapeRefinement.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getRefinements.js","webpack:///./node_modules/instantsearch.js/es/connectors/clear-refinements/connectClearRefinements.js","webpack:///./node_modules/instantsearch.js/es/lib/RoutingManager.js","webpack:///./node_modules/instantsearch.js/es/lib/stateMappings/simple.js","webpack:///./node_modules/instantsearch.js/es/lib/routers/history.js","webpack:///./node_modules/instantsearch.js/es/lib/version.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","webpack:///./node_modules/instantsearch.js/es/lib/suit.js","webpack:///./node_modules/instantsearch.js/es/helpers/highlight.js","webpack:///./node_modules/instantsearch.js/es/helpers/snippet.js","webpack:///./node_modules/instantsearch.js/es/lib/createHelpers.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/uniq.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/mergeDeep.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/findIndex.js","webpack:///./node_modules/instantsearch.js/es/lib/InstantSearch.js","webpack:///./node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","webpack:///./node_modules/instantsearch.js/es/connectors/current-refinements/connectCurrentRefinements.js","webpack:///./node_modules/instantsearch.js/es/connectors/hierarchical-menu/connectHierarchicalMenu.js","webpack:///./node_modules/instantsearch.js/es/lib/insights/client.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","webpack:///./node_modules/instantsearch.js/es/connectors/hits/connectHits.js","webpack:///./node_modules/instantsearch.js/es/connectors/hits/connectHitsWithInsights.js","webpack:///./node_modules/instantsearch.js/es/connectors/hits-per-page/connectHitsPerPage.js","webpack:///./node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js","webpack:///./node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.js","webpack:///./node_modules/instantsearch.js/es/connectors/menu/connectMenu.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isFiniteNumber.js","webpack:///./node_modules/instantsearch.js/es/connectors/numeric-menu/connectNumericMenu.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/range.js","webpack:///./node_modules/instantsearch.js/es/connectors/pagination/Paginator.js","webpack:///./node_modules/instantsearch.js/es/connectors/pagination/connectPagination.js","webpack:///./node_modules/instantsearch.js/es/connectors/query-rules/connectQueryRules.js","webpack:///./node_modules/instantsearch.js/es/connectors/range/connectRange.js","webpack:///./node_modules/instantsearch.js/es/connectors/rating-menu/connectRatingMenu.js","webpack:///./node_modules/instantsearch.js/es/connectors/refinement-list/connectRefinementList.js","webpack:///./node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","webpack:///./node_modules/instantsearch.js/es/connectors/sort-by/connectSortBy.js","webpack:///./node_modules/instantsearch.js/es/connectors/stats/connectStats.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/escapeRefinement.js","webpack:///./node_modules/instantsearch.js/es/connectors/toggleRefinement/connectToggleRefinement.js","webpack:///./node_modules/instantsearch.js/es/lib/voiceSearchHelper/index.js","webpack:///./node_modules/instantsearch.js/es/connectors/voice-search/connectVoiceSearch.js","webpack:///./node_modules/instantsearch.js/es/index.js","webpack:///./node_modules/vue-instantsearch/dist/vue-instantsearch.esm.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/algoliasearch-helper/src/functions/formatSort.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/modules/es.date.to-string.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/algoliasearch/src/version.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_getFuncName.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/lodash/_createCtor.js","webpack:///./node_modules/lodash/_stringToArray.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/isEmpty.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_basePick.js","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/shortener.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/isNaN.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/lodash/_baseInverter.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/partialRight.js","webpack:///./node_modules/algoliasearch/src/deprecatedMessage.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/pick.js","webpack:///./node_modules/lodash/_realNames.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/lodash/_baseValues.js","webpack:///./node_modules/lodash/bind.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/find.js","webpack:///./node_modules/lodash/invert.js","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/filterState.js","webpack:///./node_modules/lodash/_getData.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/wrapperLodash.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/algoliasearch-helper/src/DerivedHelper/index.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/lodash/_charsEndIndex.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_composeArgsRight.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/algoliasearch/src/merge.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_isLaziable.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/algoliasearch/src/omit.js","webpack:///./node_modules/lodash/omit.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/algoliasearch/src/browser/createAlgoliasearch.js","webpack:///./node_modules/algoliasearch-helper/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/lodash/values.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/lodash/_createInverter.js","webpack:///./node_modules/lodash/last.js","webpack:///./node_modules/lodash/mapKeys.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/lodash/_baseLodash.js","webpack:///./node_modules/lodash/_createCurry.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/_baseUnset.js","webpack:///./node_modules/lodash/isUndefined.js","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/index.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/lodash/flatten.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/algoliasearch-helper/src/functions/inherits.js","webpack:///./node_modules/lodash/_setWrapToString.js","webpack:///./node_modules/lodash/isNumber.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/lodash/findIndex.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_getHolder.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/lodash/_baseReduce.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/lodash/_createFind.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/startsWith.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_castArrayLikeObject.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/_LazyWrapper.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/lodash/trim.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/algoliasearch/src/errors.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/lodash/_arrayReduce.js","webpack:///./node_modules/lodash/_createHybrid.js","webpack:///./node_modules/lodash/_metaMap.js","webpack:///./node_modules/lodash/sumBy.js","webpack:///./node_modules/lodash/forEach.js","webpack:///./node_modules/algoliasearch/src/browser/inline-headers.js","webpack:///./node_modules/algoliasearch/node_modules/isarray/index.js","webpack:///./node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/core-js/internals/parse-float.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/algoliasearch/src/exitPromise.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/algoliasearch/node_modules/debug/src/debug.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/pickBy.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/algoliasearch/src/store.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/lodash/_parent.js","webpack:///./node_modules/lodash/_baseClamp.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_basePickBy.js","webpack:///./node_modules/lodash/_createBind.js","webpack:///./node_modules/lodash/includes.js","webpack:///./node_modules/algoliasearch/src/IndexCore.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/algoliasearch/node_modules/ms/index.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/filter.js","webpack:///./node_modules/lodash/orderBy.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/algoliasearch-helper/src/url.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/defaults.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/algoliasearch/src/deprecate.js","webpack:///./node_modules/algoliasearch-helper/src/functions/valToNumber.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/lodash/mapValues.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/lodash/_baseFilter.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/lodash/_reorder.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/_mergeData.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/partial.js","webpack:///./node_modules/algoliasearch/src/clone.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/lodash/_baseSetData.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/lodash/_baseIntersection.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_countHolders.js","webpack:///./node_modules/lodash/_charsStartIndex.js","webpack:///./node_modules/algoliasearch-helper/src/SearchResults/index.js","webpack:///./node_modules/lodash/_getWrapDetails.js","webpack:///./node_modules/lodash/indexOf.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/algoliasearch/src/browser/builds/algoliasearchLite.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/foreach/index.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/compact.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/lodash/_castSlice.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/lodash/_wrapperClone.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/reduce.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/lodash/_flatRest.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/lodash/_compareAscending.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_composeArgs.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_createPartial.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/algoliasearch/src/AlgoliaSearchCore.js","webpack:///./node_modules/lodash/intersection.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/algoliasearch-helper/src/requestBuilder.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/lodash/_baseSortBy.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_insertWrapDetails.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/map.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/lodash/_customOmitClone.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/algoliasearch/src/places.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/lodash/_createRecurry.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/algoliasearch-helper/src/version.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/lodash/_replaceHolders.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/lodash/_createWrap.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/lodash/_LodashWrapper.js","webpack:///./node_modules/algoliasearch-helper/src/algoliasearch.helper.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_baseSum.js","webpack:///./node_modules/algoliasearch/src/map.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/algoliasearch/node_modules/debug/src/browser.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/algoliasearch/src/buildSearchMethod.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/lodash/_setData.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/algoliasearch/src/browser/jsonp-request.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/lodash/_updateWrapDetails.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/lodash/isSymbol.js"],"names":["Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","value","isOwn","call","tag","unmasked","e","result","module","exports","baseForOwn","castFunction","forOwn","object","iteratee","isPrototype","nativeKeys","baseKeys","key","push","isArguments","isArray","spreadableSymbol","isConcatSpreadable","isFlattenable","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","f","O","P","error","htmlEscapes","regexUnescapedHtml","regexHasUnescapedHtml","RegExp","source","test","replace","character","_typeof","obj","iterator","constructor","getTag","isObjectLike","isPlainObject","getPrototypeOf","proto","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","apply","_objectSpread","target","i","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","TAG_PLACEHOLDER","highlightPreTag","highlightPostTag","TAG_REPLACEMENT","replaceTagsAndEscape","recursiveEscape","input","reduce","acc","Array","map","escapeHits","hits","__escaped","hit","_highlightResult","_snippetResult","escapeFacets","facetHits","h","highlighted","createDocumentationLink","_ref","name","_ref$connector","connector","join","createDocumentationMessageGenerator","_len","widgets","_key","links","widget","message","concat","Boolean","noop","checkRendering","rendering","usage","Error","find","items","predicate","thisArg","withUsage","connectAutocomplete","renderFn","unmountFn","widgetParams","_widgetParams$escapeH","escapeHTML","_widgetParams$indices","indices","getConfiguration","init","_this","this","instantSearchInstance","helper","_refine","refine","label","index","getIndex","results","_ref2","derivedHelper","derive","searchParameters","setIndex","on","saveResults","renderWithAllIndices","isFirstRendering","_ref3","derivedIndex","query","setQuery","search","render","_ref4","_ref5","_ref5$isFirstRenderin","currentRefinement","state","_ref6","dispose","slice","_ref7","detach","_warning","isPrimitive","isEqual","first","second","_i","_Object$keys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","TypeError","_arr","_n","_d","_e","_s","next","done","err","connectBreadcrumb","attributes","_widgetParams$separat","separator","_widgetParams$rootPat","rootPath","_widgetParams$transfo","transformItems","_attributes","hierarchicalFacetName","currentConfiguration","hierarchicalFacets","isFacetSet","createURL","_createURL","facetValue","breadcrumb","getHierarchicalFacetBreadcrumb","toggleRefinement","canRefine","_state$hierarchicalFa","facetName","facetValues","getFacetValues","data","shiftItemsValues","prepareItems","currentItem","isRefined","path","array","x","idx","clearRefinements","_ref$attributesToClea","attributesToClear","finalState","setPage","attribute","clearTags","indexOf","unescapeRefinement","String","getRefinement","type","attributeName","count","resultsFacets","res","facet","resultsFacet","facetDeclaration","getHierarchicalFacetByName","nameParts","split","getFacetRefinement","facetData","refinementKey","_loop","refinement","exhaustive","getRefinements","clearsQuery","_state$facetsRefineme","facetsRefinements","_state$facetsExcludes","facetsExcludes","_state$disjunctiveFac","disjunctiveFacetsRefinements","hierarchicalFacetsRefinements","_state$numericRefinem","numericRefinements","_state$tagRefinements","tagRefinements","refinements","facets","exclude","disjunctiveFacets","operators","operator","valueOrValues","numericValue","trim","connectClearRefinements","includedAttributes","excludedAttributes","_widgetParams$include","_widgetParams$exclude","getAttributesToClear","hasRefinements","setState","lastResults","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","RoutingManager","router","stateMapping","currentUiState","routeToState","read","currentSearchParameters","uiState","parameters","getWidgetSearchParameters","getWidgetState","onUpdate","route","nextUiState","widgetsUiState","getAllUiStates","getAllSearchParameters","overrideStateWithoutTriggeringChangeEvent","renderURLFromState","stateToRoute","write","firstRenderState","initState","a","SearchParameters","make","isFirstRender","setupRouting","removeListener","callback","_this2","SimpleUIStateMapping","routeState","isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_construct","Parent","args","Class","Function","bind","_setPrototypeOf","o","p","setPrototypeOf","__proto__","defaultCreateURL","qsModule","location","protocol","hostname","_location$port","port","pathname","hash","queryString","stringify","portWithPrefix","defaultParseURL","parse","arrayLimit","setWindowTitle","title","window","document","BrowserHistory","windowTitle","_ref3$writeDelay","writeDelay","_ref3$createURL","_ref3$parseURL","parseURL","writeTimer","url","clearTimeout","setTimeout","history","pushState","_onPopState","event","addEventListener","removeEventListener","getPropertyByPath","parts","current","NAMESPACE","component","componentName","descendantName","modifierName","descendent","modifier","suit","_ref$highlightedTagNa","highlightedTagName","attributeValue","className","hoganHelpers","numberLocale","formatNumber","Number","toLocaleString","highlight","options","highlightOptions","JSON","snippet","snippetOptions","uniq","self","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","from","arr2","mergeDeep","values","previousValue","nextValue","findIndex","comparator","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_getPrototypeOf","_inherits","subClass","superClass","create","ROUTING_DEFAULT_OPTIONS","simple","_EventEmitter","InstantSearch","_options$indexName","indexName","_options$routing","routing","searchFunction","_options$stalledSearc","stalledSearchDelay","_options$searchClient","searchClient","_options$insightsClie","insightsClient","urlSync","addAlgoliaAgent","version","client","templatesConfig","helpers","compileOptions","_stalledSearchDelay","_searchFunction","addWidgets","lastWidget","pop","started","enhanceConfiguration","_createAbsoluteURL","onHistoryChange","_onHistoryChange","removeWidgets","_this3","includes","w","nextState","clearCache","_this4","routingManager","_mainHelperSearch","helperSearchFunction","Promise","once","_init","_render","emit","_searchStalledTimer","_isSearchStalled","_state","removeAllListeners","params","setQueryParameters","_this5","hasPendingRequests","searchMetadata","isSearchStalled","_this6","configuration","widgetDefinition","partialConfiguration","partialWithoutHierarchcialFacets","configurationWithHierarchicalFacets","_","nextFacets","splice","connectConfigure","actualState","removeSearchParameters","nextSearchParameters","mutateMe","mutableState","connectCurrentRefinements","getFilteredRefinements","clearRefinement","clearRefinementFromState","_createURL2","filterFunction","item","normalizeRefinement","groupItemsByRefinements","removeFacetRefinement","removeDisjunctiveFacetRefinement","removeHierarchicalFacetRefinement","removeExcludeRefinement","removeNumericRefinement","removeTagRefinement","setQueryParameter","getOperatorSymbol","normalizedRefinement","sort","b","connectHierarchicalMenu","_widgetParams$showPar","showParentLevel","_widgetParams$limit","limit","_widgetParams$showMor","showMore","_widgetParams$showMor2","showMoreLimit","_widgetParams$sortBy","sortBy","isShowingMore","toggleShowMore","cachedToggleShowMore","createToggleShowMore","renderOptions","getLimit","isAttributesEqual","isSeparatorEqual","isRootPathEqual","isHierarchicalOptionsEqual","widgetConfiguration","currentMaxValuesPerFacet","maxValuesPerFacet","Math","max","canToggleShowMore","_prepareFacetValues","subValue","maxValuesPerFacetConfig","getQueryParameter","currentLimit","hasExhaustiveItems","isHierarchicalFacetRefined","removeHierarchicalFacet","hierarchicalMenu","selectedObjectIDs","objectID","selectedHits","queryIDs","__queryID","queryID","getPositions","__position","inferPayload","method","objectIDs","positions","wrapInsightsClient","aa","payload","inferredPayload","withInsights","wrapRenderFn","insights","addAbsolutePosition","page","hitsPerPage","addQueryID","connectHits","initialEscaped","connectHitsWithInsights","connectHitsPerPage","userItems","defaultValues","default","defaultValue","isCurrentInOptions","some","setHitsPerPage","helperState","_normalizeItems","hasNoResults","nbHits","prevState","showPrevious","_ref$escapeHTML","_ref$transformItems","_ref$showPrevious","hasShowPrevious","hitsCache","firstReceivedPage","Infinity","lastReceivedPage","getShowPrevious","getShowMore","isFirstPage","isLastPage","currentState","nbPages","uiPage","connectInfiniteHitsWithInsights","connectMenu","_helper$getHierarchic","_helper$getHierarchic2","refinedItem","facetItems","_searchParameters$get","_searchParameters$get2","menu","uiStateRefinedItem","isAlreadyRefined","_searchParameters$get3","_searchParameters$get4","isFiniteNumber","isFinite","connectNumericMenu","refinedState","_prepareItems","start","end","encodeURI","currentRefinements","getNumericRefinements","equal","numericMenu","lowerBound","upperBound","clearedParams","valueAsEqual","addNumericRefinement","_value$split$map","parseFloat","_value$split$map2","option","hasNumericRefinement","resolvedState","refinedOption","decodeURI","hasOperatorRefinements","range","_ref$start","_ref$step","step","limitStep","arrayLength","round","Paginator","currentPage","total","padding","totalDisplayedPages","nbPagesDisplayed","paddingLeft","calculatePaddingLeft","paddingRight","last","min","connectPagination","totalPages","_widgetParams$padding","pager","getPage","pages","getMaxPage","hasStateRefinements","escapeRuleContext","ruleName","getRuleContextsFromTrackedFilters","sharedHelperState","trackedFilters","ruleContexts","facetRefinements","getTrackedFacetValues","trackedFacetValues","facetRefinement","applyRuleContexts","initialRuleContexts","transformRuleContexts","previousRuleContexts","newRuleContexts","nextRuleContexts","unmount","_ref2$trackedFilters","_ref2$transformRuleCo","rules","_ref2$transformItems","onHelperChange","hasTrackedFilters","_x","_results$userData","userData","connectRange","minBound","maxBound","_widgetParams$precisi","precision","hasMinBound","hasMaxBound","formatToNumber","v","toFixed","rangeFormatter","to","_getCurrentRange","stats","pow","floor","ceil","_getCurrentRefinement","getNumericRefinement","minValue","maxValue","currentRange","newNextMin","newNextMax","nextMin","nextMax","currentRangeMin","currentRangeMax","_ref8","_ref9","_ref10","isResetMin","isResetMax","nextMinAsNumber","nextMaxAsNumber","isResetNewNextMin","isValidNewNextMin","isValidMinCurrentRange","isGreaterThanCurrentRange","isMinValid","isResetNewNextMax","isValidNewNextMax","isValidMaxCurrentRange","isLowerThanRange","isMaxValid","hasMinChange","hasMaxChange","isBoundsDefined","boundsAlreadyDefined","isMinBoundValid","isMaxBoundValid","isAbleToRefine","_ref11","format","_ref12","facetsFromResults","facetResult","_ref13","removeDisjunctiveFacet","_ref14","_ref15","_searchParameters$get5","previousMin","NaN","_searchParameters$get6","previousMax","connectRatingMenu","_widgetParams$max","_toggleRefinement","allValues","val","_v","refinedStar","_getRefinedStar","star","stars","ratingMenu","starRatingFromURL","clearedSearchParam","addDisjunctiveFacetRefinement","getDisjunctiveRefinements","r","connectRefinementList","_widgetParams$operato","_widgetParams$escapeF","escapeFacetValues","searchForFacetValues","triggerRefine","formatItems","_getLimit","lastResultsFromMainSearch","helperSpecializedSearchFacetValues","isFromSearch","isFirstSearch","searchFacetValues","canShowLess","canShowMore","searchForItems","createSearchForFacetValues","tags","then","normalizedFacetValues","removeFacet","getConjunctiveRefinements","refinementList","sp","addFacetRefinement","connectSearchBox","queryHook","clear","_clear","_cachedClear","previousQuery","setQueryAndSearch","q","doSearch","connectSortBy","currentIndex","isCurrentIndexInItems","initialIndex","isInitialIndex","connectStats","processingTimeMS","escapeRefinement","connectToggleRefinement","_widgetParams$on","userOn","userOff","off","hasAnOffValue","hasAnOnValue","isCurrentlyRefined","opts","isDisjunctiveFacetRefined","onFacetValue","offFacetValue","offValue","allFacetValues","onData","offData","nextRefinement","toggle","createVoiceSearchHelper","recognition","searchAsYouSpeak","onQueryChange","onStateChange","SpeechRecognitionAPI","webkitSpeechRecognition","SpeechRecognition","getDefaultState","status","transcript","isSpeechFinal","errorCode","isBrowserSupported","isListening","newState","getState","resetState","onStart","onError","onResult","isFinal","onEnd","interimResults","stop","toggleListening","_ref$voiceSearchHelpe","voiceSearchHelper","voiceListeningState","_widgetParams$searchA","_voiceSearchHelper","get","L","t","classNames","methods","s","n","Set","A","add","console","warn","inject","$options","_componentTag","created","factory","updateState","addWidget","hydrated","$isServer","__forceRender","beforeDestroy","removeWidget","watch","handler","deep","M","$createElement","_self","_c","class","_t","_m","staticRenderFns","mixins","required","computed","I","mapStateToCanRefine","emitter","$emit","hasAlreadyEmitted","F","attrs","href","click","preventDefault","_l","isLastItem","k","disabled","T","inheritAttrs","$attrs","$scopedSlots","C","noRefinement","_f","createItemKey","filters","capitalize","charAt","toLocaleUpperCase","N","level","B","U","components","HierarchicalMenuList","$","domProps","innerHTML","E","directives","rawName","selected","expression","change","_value","multiple","handleChange","H","V","D","provide","setClient","mounted","$nextTick","z","j","validator","apiKey","appId","$slots","$_ais","Q","refinePrevious","refineNext","Y","showShowMoreButton","W","currentTarget","G","checked","K","showFirst","showNext","showLast","J","header","footer","instantSearchPanelEmitter","$on","updateCanRefine","$destroy","X","algoliaUrl","rel","theme","staticStyle","height","width","viewBox","fill","d","Z","ee","te","se","submit","minInput","maxInput","placeholder","ne","display","xmlns","id","ie","action","role","novalidate","onFormSubmit","reset","onFormReset","ref","autocorrect","autocapitalize","autocomplete","spellcheck","maxlength","autofocus","focus","blur","submitTitle","hidden","showLoadingIndicator","shouldShowLoadingIndicator","fillRule","resetTitle","stroke","transform","cx","cy","dur","repeatCount","$refs","ae","re","searchable","searchablePlaceholder","model","searchForItemsQuery","searchForFacetValuesQuery","SearchInput","AisHighlight","set","assign","oe","ue","slot","localValue","$el","querySelector","isControlled","ce","le","he","fe","me","de","buttonTitle","disabledButtonTitle","handleClick","errorNotAllowed","_b","buttonSvgAttrs","x1","y1","x2","y2","innerSlotProps","rootSlotProps","strokeWidth","strokeLinecap","strokeLinejoin","pe","freeze","AisAutocomplete","AisBreadcrumb","AisClearRefinements","AisConfigure","AisCurrentRefinements","AisHierarchicalMenu","AisHits","AisHitsPerPage","AisInstantSearch","AisInstantSearchSsr","AisInfiniteHits","AisMenu","AisMenuSelect","AisNumericMenu","AisPagination","AisPanel","AisPoweredBy","AisQueryRuleContext","AisQueryRuleCustomData","AisRangeInput","AisRatingMenu","AisRefinementList","AisStateResults","AisSearchBox","AisSnippet","AisSortBy","AisStats","AisToggleRefinement","AisVoiceSearch","ge","install","SearchResults","stubFalse","arrayPush","offset","isObject","isStrictComparable","startsWith","defaults","out","sortInstruction","sortInstructions","similarDefault","strictIndexOf","fromIndex","baseIsNative","getValue","getNative","fails","createElement","redefine","DatePrototype","INVALID_DATE","TO_STRING","nativeDateToString","getTime","freeExports","nodeType","freeModule","moduleExports","Buffer","root","nativeIsBuffer","isBuffer","copyObject","keysIn","baseAssignIn","identity","overRest","setToString","baseRest","func","getSymbolsIn","copySymbolsIn","realNames","getFuncName","otherFunc","toInteger","requireObjectCoercible","repeat","str","RangeError","baseCreate","createCtor","Ctor","thisBinding","asciiToArray","hasUnicode","unicodeToArray","stringToArray","string","isKeyable","global","objectOrFunction","isFunction","_isArray","len","vertxNext","customSchedulerFn","asap","arg","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","process","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","node","createTextNode","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","attemptVertx","vertx","require","runOnLoop","runOnContext","onFulfillment","onRejection","parent","child","PROMISE_ID","makePromise","invokeCallback","_result","subscribe","resolve$1","promise","resolve","random","substring","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","nextId","validationError","Enumerator","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","c","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","all","entries","race","reject$1","needsResolver","needsNew","catch","finally","polyfill","local","promiseToString","cast","_setScheduler","_setAsap","_asap","coreJsData","maskSrcKey","uid","exec","IE_PROTO","isMasked","isArrayLike","isTypedArray","mapTag","setTag","isEmpty","size","assignValue","castPath","isIndex","toKey","baseSet","customizer","lastIndex","nested","newValue","objValue","basePickBy","hasIn","basePick","paths","invert","keys2Short","advancedSyntax","allowTyposOnNumericTokens","analyticsTags","analytics","aroundLatLngViaIP","aroundLatLng","aroundPrecision","aroundRadius","attributesToHighlight","attributesToRetrieve","attributesToSnippet","distinct","getRankingInfo","ignorePlurals","insideBoundingBox","insidePolygon","minimumAroundRadius","minProximity","minWordSizefor1Typo","minWordSizefor2Typos","numericFilters","optionalWords","queryType","removeWordsIfNoResults","replaceSynonymsInHighlight","restrictSearchableAttributes","synonyms","tagFilters","typoTolerance","optionalTagFilters","optionalFacetFilters","snippetEllipsisText","disableExactOnAttributes","enableExactOnSingleWordQuery","short2Keys","ENCODED_PARAMETERS","decode","shortKey","encode","baseIsEqual","isKey","matchesStrictComparable","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseMatchesProperty","srcValue","memoizeCapped","rePropName","reEscapeChar","stringToPath","charCodeAt","match","number","quote","subString","isNumber","isNaN","it","baseIsMap","baseGetAllKeys","getAllKeysIn","getBuiltIn","Uint8Array","eq","equalArrays","mapToArray","setToArray","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","symbolValueOf","valueOf","equalByTag","other","bitmask","equalFunc","stack","byteLength","byteOffset","buffer","convert","isPartial","stacked","wellKnownSymbol","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","isUndefined","isString","omit","lib","addRefinement","valueAsString","mod","removeRefinement","refinementType","hasChanged","newRefinementList","memo","facetList","refinementValue","containsRefinements","refinementValueAsString","SPECIES","METHOD_NAME","foo","hashDelete","__data__","getMapData","mapCacheSet","compareAscending","compareMultiple","orders","objCriteria","criteria","othCriteria","ordersLength","order","anObject","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterate","iterable","fn","that","AS_ENTRIES","IS_ITERATOR","iterFn","boundFunction","nativeMax","otherArgs","memoize","MAX_MEMOIZE_SIZE","cache","integer","baseInverter","setter","accumulator","createNonEnumerableProperty","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","internalObjectKeys","enumBugKeys","hiddenKeys","getOwnPropertyNames","baseFor","mapCacheGet","createWrap","getHolder","replaceHolders","WRAP_PARTIAL_RIGHT_FLAG","partialRight","partials","holders","previousUsage","newUsage","githubAnchorLink","toLowerCase","nativeCreate","HASH_UNDEFINED","hashSet","baseGetTag","argsTag","baseIsArguments","flatRest","pick","definePropertyModule","CONSTRUCTOR_NAME","arrayMap","baseValues","WRAP_BIND_FLAG","WRAP_PARTIAL_FLAG","baseHasIn","createFind","constant","createInverter","filterState","partialState","attributeFilters","aF","attr","isConjunctiveFacet","isFacetRefined","isDisjunctiveFacet","isHierarchicalFacet","parameterKey","metaMap","getData","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","listCacheClear","objectToString","LazyWrapper","LodashWrapper","baseLodash","wrapperClone","lodash","baseFindIndex","fromRight","emptyObject","isUndef","isDef","isTrue","isFalse","_toString","isRegExp","isValidArrayIndex","isPromise","toNumber","makeMap","expectsLowerCase","list","isReservedAttribute","remove","hasOwn","cached","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","l","_length","nativeBind","toArray","ret","extend","_from","toObject","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","popTarget","VNode","children","text","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getter","childOb","dependArray","newVal","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","def$$1","mergeOptions","_base","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","info","cur","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","setImmediate","counter","textNode","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","shift","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_q","_k","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","is","pre","applyNS","registerDeepBindings","force","style","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","ensureCtor","comp","base","__esModule","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","forceRender","renderCompleted","$forceUpdate","delay","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","el","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$listeners","propKeys","_propKeys","isInInactiveTree","direct","handlers","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","lazy","active","dirty","deps","newDeps","depIds","newDepIds","cleanupDeps","tmp","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_uid","initInternalComponent","vnodeComponentOptions","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","unshift","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","destroyed","ref$1","parseInt","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","createElement$1","tagName","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","baseModules","updateAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","ownerDocument","updateDOMListeners","svgContainer","events","updateDOMProps","oldProps","childNodes","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","pos","getBoundingClientRect","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","body","offsetHeight","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","left","dy","top","platformComponents","baseSlice","freeGlobal","freeSelf","inherits","DerivedHelper","mainHelper","main","EventEmitter","detachDerivedHelper","getModifiedState","defer","classof","html","clearImmediate","Dispatch","ONREADYSTATECHANGE","runner","listener","post","host","baseIndexOf","charsEndIndex","strSymbols","chrSymbols","arrayFilter","resIndex","overArg","getPrototype","isIterateeCall","createAssigner","assigner","sources","guard","stackDelete","composeArgsRight","isCurried","argsIndex","argsLength","holdersIndex","holdersLength","rightIndex","rightLength","rangeLength","isUncurried","isLength","foreach","merge","destination","keyName","baseAssignValue","stubArray","nativeGetSymbols","getSymbols","toSource","reRegExpChar","reIsHostCtor","funcProto","funcToString","reIsNative","Iterators","nullTag","undefinedTag","isLaziable","funcName","objectKeys","Properties","Stack","arrayEach","baseAssign","cloneBuffer","copyArray","copySymbols","getAllKeys","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","arrayTag","funcTag","genTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","cloneableTags","baseClone","isDeep","isFlat","isFull","isArr","isFunc","keysFunc","WeakMap","getMatchData","filtered","baseUnset","customOmitClone","AlgoliaSearch","uaSuffix","errors","inlineHeaders","jsonpRequest","places","algoliasearch","applicationID","cloneDeep","_ua","ua","AlgoliaSearchBrowser","initPlaces","__algolia","debug","support","hasXMLHttpRequest","hasXDomainRequest","cors","XMLHttpRequest","_request","headers","reqTimeout","timedOut","req","XDomainRequest","connected","onTimeout","timeouts","connect","onprogress","onProgress","onreadystatechange","onReadyStateChange","onload","onLoad","onerror","open","forceAuthHeaders","setRequestHeader","send","Network","responseText","statusCode","getAllResponseHeaders","UnparsableJSON","more","abort","RequestTimeout","onConnect","complete","readyState","content","_promise","ms","promises","AlgoliaSearchHelper","algoliasearchHelper","ctor","superCtor","super_","TempCtor","utils","formats","arrayPrefixGenerators","brackets","prefix","toISO","toISOString","delimiter","encoder","encodeValuesOnly","serializeDate","date","skipNulls","strictNullHandling","generateArrayPrefix","allowDots","formatter","keyValue","objKeys","formatters","arrayFormat","joined","addQueryPrefix","nativeKeysIn","baseKeysIn","isProto","baseMerge","srcIndex","arraySome","DataView","Map","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","arch","execPath","pid","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","toIteratee","baseIteratee","mapKeys","UNSCOPABLES","ArrayPrototype","createHybrid","createRecurry","createCurry","arity","wrapper","baseIsNaN","aFunction","defaultConstructor","S","createBaseEach","baseEach","hashClear","toFinite","remainder","intersection","valToNumber","RefinementList","findArray","searchedValue","currentValue","newParameters","_parseNumbers","paramValue","paramName","PARAMETERS","numbers","numberKeys","parsedValue","geoRect","parsedValues","vPrime","getHierarchicalRefinement","toggleHierarchicalFacetRefinement","validate","_clearNumericRefinements","newQuery","newPage","setFacets","setDisjunctiveFacets","setTypoTolerance","isNumericRefined","getExcludeRefinements","paramValueAsNumber","op","newNumericRefinements","operatorList","outValues","predicateResult","addFacet","addDisjunctiveFacet","addHierarchicalFacet","hierarchicalFacet","addExcludeRefinement","addTagRefinement","isTagRefined","modification","toggleFacetRefinement","toggleConjunctiveFacetRefinement","toggleDisjunctiveFacetRefinement","toggleExcludeFacetRefinement","_getHierarchicalFacetSeparator","upOneOrMultipleLevel","lastIndexOf","addHierarchicalFacetRefinement","toggleTagRefinement","isExcludeRefined","isOperatorDefined","isAttributeValueDefined","getRefinedDisjunctiveFacets","disjunctiveNumericRefinedFacets","getRefinedHierarchicalFacets","getUnrefinedDisjunctiveFacets","refinedFacets","managedParameters","getQueryParams","queryParams","parameter","parsedParams","newInstance","ks","_getHierarchicalFacetSortBy","_getHierarchicalRootPath","_getHierarchicalShowParentLevel","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","baseFlatten","flatten","$filter","arrayMethodHasSpeciesSupport","callbackfn","assignMergeValue","cloneTypedArray","isArrayLikeObject","safeGet","toPlainObject","baseMergeDeep","mergeFunc","isCommon","isBuff","isTyped","getWrapDetails","insertWrapDetails","updateWrapDetails","setWrapToString","reference","argument","baseTimes","stackHas","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","baseReduce","collection","initAccum","eachFunc","depth","isStrict","bitmap","findIndexFunc","cloneArrayBuffer","cloneDataView","dataView","baseClamp","baseToString","position","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","arrayIncludesWith","castArrayLikeObject","IndexedObject","nativeAssign","alphabet","chr","argumentsLength","objectCtorString","MAX_ARRAY_LENGTH","__wrapped__","__actions__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","webpackPolyfill","deprecate","INFINITY","MAX_INTEGER","sign","baseIsMatch","baseMatches","matchData","baseGet","originalArray","castSlice","charsStartIndex","reTrim","chars","AlgoliaSearchError","extraProperties","captureStackTrace","createCustomError","AlgoliaSearchCustomError","JSONPScriptFail","ValidUntilNotFound","JSONPScriptError","ObjectNotFound","Unknown","assocIndexOf","NATIVE_WEAK_MAP","objectHas","sharedKey","enforce","getterFor","wmget","wmhas","wmset","metadata","STATE","baseMap","baseSortBy","baseUnary","baseOrderBy","iteratees","arrayReduce","composeArgs","countHolders","reorder","WRAP_BIND_KEY_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_FLIP_FLAG","partialsRight","holdersRight","argPos","ary","isAry","isBind","isBindKey","isFlip","holdersCount","newHolders","reverse","baseSum","sumBy","shared","nativeFunctionToString","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","reFlags","cloneRegExp","regexp","arrayLikeKeys","inherited","isArg","isType","skipIndexes","nativeParseFloat","trimmedString","createBaseFor","baseIsTypedArray","nodeUtil","nodeIsTypedArray","_setTimeout","typedArrayTags","objectCreate","prevTime","selectColor","colors","abs","createDebug","enabled","curr","diff","prev","coerce","formatArgs","logFn","log","useColors","color","enable","namespaces","save","names","skips","substr","disable","humanize","pickBy","localStorageNamespace","moduleStore","localStorageStore","localStorage","localStorageFailure","cleanup","getOrSet","supportsLocalStorage","setItem","removeItem","hashHas","mapCacheClear","mapCacheDelete","mapCacheHas","MapCache","equalObjects","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","Hash","documentCreateElement","PROTOTYPE","Empty","createDict","iframeDocument","iframe","lt","script","gt","js","contentWindow","close","symbolsFunc","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","stackClear","stackGet","stackSet","setCacheAdd","lower","upper","propertyKey","hasPath","createBind","buildSearchMethod","deprecatedMessage","IndexCore","as","typeAheadArgs","typeAheadValueOption","similarSearch","browse","queryParameters","indexObj","_getSearchParams","_jsonRequest","encodeURIComponent","hostType","browseFrom","cursor","facetQuery","filteredParams","searchFacet","_search","additionalUA","getObject","getObjects","requests","request","arrayIncludes","m","y","fmtShort","fmtLong","plural","long","isNew","postfix","qs","sep","maxKeys","kstr","vstr","decodeURIComponent","xs","baseFilter","orderBy","shortener","mapValues","recursiveEncode","refinementsParameters","stateKeys","sortQueryStringValues","prefixRegexp","invertedMapping","isARefinements","isBRefinements","localeCompare","getStateFromQueryString","prefixForParameters","mapping","partialStateWithPrefix","hasPrefix","unprefixedKey","decodedKey","partialStateWithParsedNumbers","getUnrecognizedParametersInQueryString","foreignConfig","getQueryStringFromState","moreAttributes","safe","stateForUrl","encodedState","shortK","stateQs","moreQs","replacement","feature","detection","POLYFILL","NATIVE","asyncTag","proxyTag","propsIndex","propsLength","noCustomizer","createProperty","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","spreadable","freeProcess","types","generateTrees","prepareHierarchicalFacetSortBy","hierarchicalFacetResult","hierarchicalFacetIndex","hierarchicalFacetRefinement","hierarchicalSeparator","hierarchicalRootPath","hierarchicalShowParentLevel","generateTreeFn","generateHierarchicalTree","hierarchicalTree","currentHierarchicalLevel","onlyMatchingValuesFn","filterFacetValues","formatHierarchicalFacetValue","parentPath","facetCount","returnMethod","nativeDefineProperty","Attributes","warned","deprecated","allowPrototypes","decoder","parameterLimit","plainObjects","parseValues","cleanStr","ignoreQueryPrefix","part","bracketEqualsPos","parseObject","chain","leaf","cleanRoot","parseArrays","parseKeys","givenKey","segment","tempObj","newObj","compact","SetCache","cacheHas","arrLength","othLength","arrValue","othValue","compared","othIndex","cloneSymbol","baseSetToString","nativeMin","indexes","oldArray","NativePromise","speciesConstructor","promiseResolve","real","onFinally","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","PLACEHOLDER","WRAP_CURRY_BOUND_FLAG","WRAP_REARG_FLAG","srcBitmask","newBitmask","isCombo","parseFloatImplementation","PrototypeOfArrayIteratorPrototype","arrayIterator","partial","keysShim","toStr","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","theKeys","skipProto","skipConstructor","objProps","objLength","othProps","skipCtor","objCtor","othCtor","percentTwenties","RFC1738","RFC3986","baseSetData","baseIntersection","arrays","caches","maxLength","outer","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","head","macrotask","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","domain","task","NATIVE_SYMBOL","thisNumberValue","nativeToFixed","fractionDigits","fractDigits","multiply","c2","divide","dataToString","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","formatSort","getIndices","assignFacetStats","dest","facetStats","findMatchingHierarchicalFacetFromAttributeName","hierarchicalAttributeName","mainSubResponse","_rawResults","parsedQuery","automaticRadius","serverUsed","timeoutCounts","timeoutHits","exhaustiveFacetsCount","exhaustiveNbHits","facetsIndices","disjunctiveFacetsIndices","nextDisjunctiveResult","facetValueObject","facetKey","facetIndex","idxAttributeName","isFacetDisjunctive","isFacetConjunctive","facets_stats","disjunctiveFacet","facetResults","dfacet","attributeIndex","dataFromMainRequest","refinedFacet","excludes","extractNormalizedFacetValues","isExcluded","recSort","sortFn","sortedChildren","vanillaSortFn","getFacetStatsIfAvailable","splitted","configuredName","getFacetByName","DEFAULT_SORT","getFacetStats","reWrapDetails","reSplitDetails","AlgoliaSearchCore","createAlgoliasearch","hashGet","win","PREFERRED_STRING","reIsUint","shortOut","baseIsSet","__chain__","__index__","__values__","SHARED","g","typedArray","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","leftIndex","leftLength","EXISTS","nodeIsMap","newPromiseCapability","promiseCapability","symbolToString","createPartial","LARGE_ARRAY_SIZE","pairs","variable","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","exitPromise","MAX_API_KEY_LENGTH","RESET_APP_DATA_TIMER","_allowEmptyCredentials","hosts","_timeouts","_checkAppIdData","defaultHosts","_shuffleResult","hostNumber","mainSuffix","dsn","prepareHost","extraHeaders","_cache","_useCache","_useRequestCache","_useFallback","useFallback","safeJSONStringify","toJSON","shuffle","temporaryValue","randomIndex","removeCredentials","newHeaders","headerName","initIndex","setExtraHeader","getExtraHeader","unsetExtraHeader","algoliaAgent","algoliaAgentWithDelimiter","initialOpts","cacheID","requestDebug","tries","usingFallback","hasFallback","_computeRequestHeaders","withApiKey","debugData","doRequest","requester","reqOpts","startTime","isCacheValidWithCurrentID","jsonBody","_getTimeoutsForRequest","_setHostIndexByType","currentHost","_getHostByType","success","tryFallback","httpResponse","httpResponseOk","endTime","contentLength","shouldRetry","retryRequest","unrecoverableError","retryRequestWithHigherTimeout","_incrementHostIndex","_incrementTimeoutMultipler","useRequestCache","currentCache","currentCacheID","interopCallbackReturn","maybePromiseForCache","promiseForCache","requestHeaders","userToken","securityTags","queries","postObj","JSONPParams","requestId","strategy","setSecurityTags","strTags","oredTags","setUserToken","setRequestTimeout","milliseconds","setTimeouts","getTimeouts","_getAppIdData","_cacheAppIdData","_setAppIdData","lastChange","_resetInitialAppIdData","newData","hostIndexes","timeoutMultiplier","shuffleResult","_hostIndexes","_timeoutMultiplier","_partialAppIdDataUpdate","currentData","_getHostIndexByType","_getTimeoutMultiplier","hostIndex","newHostIndexes","mapped","nativePropertyIsEnumerable","NASHORN_BUG","1","hexTable","compactQueue","compacted","arrayToObject","mergeTarget","requestBuilder","_getQueries","_getHitsSearchParams","_getDisjunctiveFacetSearchParams","_getHitsHierarchicalFacetsAttributes","facetFilters","_getFacetFilters","_getNumericFilters","_getTagFilters","additionalParams","hierarchicalRootLevel","clickAnalytics","_getDisjunctiveHierarchicalFacetAttribute","vs","orFilters","attributeToRefine","attributesIndex","allAttributes","hierarchicalRefinement","newAttributes","rootLevel","parentLevel","getSearchForFacetQuery","maxFacetHits","stateForSearchForFacetValues","searchForFacetSearchParameters","aPossiblePrototype","CORRECT_SETTER","TAG","callee","comparer","setCacheHas","origKeys","originalKeys","shim","keysWorksWithArguments","nodeIsSet","reWrapComment","details","check","globalThis","normalizeArray","allowAboveRoot","up","basename","matchedSlash","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","dirname","code","hasRoot","ext","extname","startDot","startPart","preDotState","stringifyPrimitive","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","hasFunc","FUNC_ERROR_TEXT","memoized","Cache","basePropertyDeep","allocUnsafe","copy","createPlacesClient","qs3","appID","encoded","setData","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","fetch","versions","v8","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","HANDLED","UNHANDLED","empty","FakePromise","PromiseRejectionEvent","INCORRECT_ITERATION","isThenable","isReject","notified","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","wrap","capability","$promiseResolve","remaining","alreadyCalled","getOwnPropertyDescriptorModule","chainAll","doesClientAgentContainsHelper","_queryId","_lastQueryIdReceived","derivedHelpers","_currentNbQueries","setCurrentPage","_change","getCurrentPage","currentAgent","getQuery","searchOnce","tempState","_originalResponse","userState","clientHasSFFV","isDisjunctive","algoliaQuery","searchForFacetValuesPromise","addDisjunctiveRefine","addRefine","addFacetExclusion","addExclude","addTag","removeDisjunctiveRefine","removeRefine","removeFacetExclusion","removeExclude","removeTag","toggleFacetExclusion","toggleExclude","toggleRefine","toggleTag","nextPage","previousPage","getStateAsQueryString","getConfigurationFromQueryString","getForeignConfigurationInQueryString","setStateFromQueryString","triggerChange","updatedState","isDisjunctiveRefined","hasTag","hasTagRefinements","getTags","parameterName","conjRefinements","excludeRefinements","disjRefinements","mainQueries","states","queriesCount","derivedQueries","derivedState","queryId","_dispatchAlgoliaResponse","_dispatchAlgoliaError","specificResults","formattedResponse","containsRefinement","_hasDisjunctiveRefinements","disjunctiveRefinements","newClient","getClient","newArr","itemIndex","baseProperty","PromiseCapability","$$resolve","$$reject","documentElement","WebkitAppearance","firebug","exception","table","$1","lastC","storage","load","DEBUG","localstorage","chrome","HOT_COUNT","HOT_SPAN","nativeNow","lastCalled","stamp","queryParam","classofRaw","CORRECT_ARGUMENTS","tryGet","reIsDeepProp","reIsPlainProp","arrayBuffer","JSONPCounter","cbCalled","getElementsByTagName","cbName","removeGlobals","clean","ontimeout","readystatechange","ReflectOwnKeys","R","ReflectApply","receiver","ProcessEmitWarning","warning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","prepend","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","rawListeners","eventNames","wrapFlags","pair"],"mappings":"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","file":"js/chunk-vendors.89e9b322.js","sourcesContent":["var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/4.17.11-npm/escape.js\n */\n// Used to map characters to HTML entities.\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}; // Used to match HTML entities and HTML characters.\n\nvar regexUnescapedHtml = /[&<>\"']/g;\nvar regexHasUnescapedHtml = RegExp(regexUnescapedHtml.source);\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n */\n\nfunction escape(value) {\n return value && regexHasUnescapedHtml.test(value) ? value.replace(regexUnescapedHtml, function (character) {\n return htmlEscapes[character];\n }) : value;\n}\n\nexport default escape;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/master/isPlainObject.js\n */\nfunction getTag(value) {\n if (value === null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nfunction isObjectLike(value) {\n return _typeof(value) === 'object' && value !== null;\n}\n/**\n * Checks if `value` is a plain object.\n *\n * A plain object is an object created by the `Object`\n * constructor or with a `[[Prototype]]` of `null`.\n */\n\n\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n\n var proto = value;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(value) === proto;\n}\n\nexport default isPlainObject;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isPlainObject, escape } from '../lib/utils';\nexport var TAG_PLACEHOLDER = {\n highlightPreTag: '__ais-highlight__',\n highlightPostTag: '__/ais-highlight__'\n};\nexport var TAG_REPLACEMENT = {\n highlightPreTag: '',\n highlightPostTag: ''\n};\n\nfunction replaceTagsAndEscape(value) {\n return escape(value).replace(new RegExp(TAG_PLACEHOLDER.highlightPreTag, 'g'), TAG_REPLACEMENT.highlightPreTag).replace(new RegExp(TAG_PLACEHOLDER.highlightPostTag, 'g'), TAG_REPLACEMENT.highlightPostTag);\n}\n\nfunction recursiveEscape(input) {\n if (isPlainObject(input) && typeof input.value !== 'string') {\n return Object.keys(input).reduce(function (acc, key) {\n return _objectSpread({}, acc, _defineProperty({}, key, recursiveEscape(input[key])));\n }, {});\n }\n\n if (Array.isArray(input)) {\n return input.map(recursiveEscape);\n }\n\n return _objectSpread({}, input, {\n value: replaceTagsAndEscape(input.value)\n });\n}\n\nexport default function escapeHits(hits) {\n if (hits.__escaped === undefined) {\n hits = hits.map(function (hit) {\n if (hit._highlightResult) {\n hit._highlightResult = recursiveEscape(hit._highlightResult);\n }\n\n if (hit._snippetResult) {\n hit._snippetResult = recursiveEscape(hit._snippetResult);\n }\n\n return hit;\n });\n hits.__escaped = true;\n }\n\n return hits;\n}\nexport function escapeFacets(facetHits) {\n return facetHits.map(function (h) {\n return _objectSpread({}, h, {\n highlighted: replaceTagsAndEscape(h.highlighted)\n });\n });\n}","export var createDocumentationLink = function createDocumentationLink(_ref) {\n var name = _ref.name,\n _ref$connector = _ref.connector,\n connector = _ref$connector === void 0 ? false : _ref$connector;\n return ['https://www.algolia.com/doc/api-reference/widgets/', name, '/js/', connector ? '#connector' : ''].join('');\n};\nexport var createDocumentationMessageGenerator = function createDocumentationMessageGenerator() {\n for (var _len = arguments.length, widgets = new Array(_len), _key = 0; _key < _len; _key++) {\n widgets[_key] = arguments[_key];\n }\n\n var links = widgets.map(function (widget) {\n return createDocumentationLink(widget);\n }).join(', ');\n return function (message) {\n return [message, \"See documentation: \".concat(links)].filter(Boolean).join('\\n\\n');\n };\n};","function noop() {}\n\nexport default noop;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction checkRendering(rendering, usage) {\n if (rendering === undefined || typeof rendering !== 'function') {\n throw new Error(\"The render function is not valid (got type \\\"\".concat(_typeof(rendering), \"\\\").\\n\\n\").concat(usage));\n }\n}\n\nexport default checkRendering;","// We aren't using the native `Array.prototype.find` because the refactor away from Lodash is not\n// published as a major version.\n// Relying on the `find` polyfill on user-land, which before was only required for niche use-cases,\n// was decided as too risky.\n// @MAJOR Replace with the native `Array.prototype.find` method\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\nfunction find(items, predicate, thisArg) {\n if (!Array.prototype.find) {\n return items.filter(predicate, thisArg)[0];\n }\n\n return items.find(predicate, thisArg);\n}\n\nexport default find;","import escapeHits, { TAG_PLACEHOLDER } from '../../lib/escape-highlight';\nimport { checkRendering, createDocumentationMessageGenerator, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'autocomplete',\n connector: true\n});\n/**\n * @typedef {Object} Index\n * @property {string} index Name of the index.\n * @property {string} label Label of the index (for display purpose).\n * @property {Object[]} hits The hits resolved from the index matching the query.\n * @property {Object} results The full results object from Algolia API.\n */\n\n/**\n * @typedef {Object} AutocompleteRenderingOptions\n * @property {Index[]} indices The indices you provided with their hits and results and the main index as first position.\n * @property {function(string)} refine Search into the indices with the query provided.\n * @property {string} currentRefinement The actual value of the query.\n * @property {Object} widgetParams All original widget options forwarded to the `renderFn`.\n */\n\n/**\n * @typedef {Object} CustomAutocompleteWidgetOptions\n * @property {{value: string, label: string}[]} [indices = []] Name of the others indices to search into.\n * @property {boolean} [escapeHTML = true] If true, escape HTML tags from `hits[i]._highlightResult`.\n */\n\n/**\n * **Autocomplete** connector provides the logic to build a widget that will give the user the ability to search into multiple indices.\n *\n * This connector provides a `refine()` function to search for a query and a `currentRefinement` as the current query used to search.\n * @type {Connector}\n * @param {function(AutocompleteRenderingOptions, boolean)} renderFn Rendering function for the custom **Autocomplete** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomAutocompleteWidgetOptions)} Re-usable widget factory for a custom **Autocomplete** widget.\n */\n\nexport default function connectAutocomplete(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _widgetParams$escapeH = widgetParams.escapeHTML,\n escapeHTML = _widgetParams$escapeH === void 0 ? true : _widgetParams$escapeH,\n _widgetParams$indices = widgetParams.indices,\n indices = _widgetParams$indices === void 0 ? [] : _widgetParams$indices; // user passed a wrong `indices` option type\n\n if (!Array.isArray(indices)) {\n throw new Error(withUsage('The `indices` option expects an array of objects.'));\n }\n\n return {\n getConfiguration: function getConfiguration() {\n return escapeHTML ? TAG_PLACEHOLDER : undefined;\n },\n init: function init(_ref) {\n var _this = this;\n\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper;\n this._refine = this.refine(helper);\n this.indices = [{\n helper: helper,\n label: 'primary',\n index: helper.getIndex(),\n results: undefined,\n hits: []\n }]; // add additionnal indices into `this.indices`\n\n indices.forEach(function (_ref2) {\n var label = _ref2.label,\n value = _ref2.value;\n var derivedHelper = helper.derive(function (searchParameters) {\n return searchParameters.setIndex(value);\n });\n\n _this.indices.push({\n label: label,\n index: value,\n helper: derivedHelper,\n results: undefined,\n hits: []\n }); // update results then trigger render after a search from any helper\n\n\n derivedHelper.on('result', function (results) {\n return _this.saveResults({\n results: results,\n label: label\n });\n });\n });\n this.instantSearchInstance = instantSearchInstance;\n this.renderWithAllIndices({\n isFirstRendering: true\n });\n },\n saveResults: function saveResults(_ref3) {\n var results = _ref3.results,\n label = _ref3.label;\n var derivedIndex = find(this.indices, function (i) {\n return i.label === label;\n });\n\n if (escapeHTML && results && results.hits && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n\n derivedIndex.results = results;\n derivedIndex.hits = results && results.hits && Array.isArray(results.hits) ? results.hits : [];\n this.renderWithAllIndices();\n },\n refine: function refine(helper) {\n return function (query) {\n return helper.setQuery(query).search();\n };\n },\n render: function render(_ref4) {\n var results = _ref4.results;\n this.saveResults({\n results: results,\n label: this.indices[0].label\n });\n },\n renderWithAllIndices: function renderWithAllIndices() {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref5$isFirstRenderin = _ref5.isFirstRendering,\n isFirstRendering = _ref5$isFirstRenderin === void 0 ? false : _ref5$isFirstRenderin;\n\n var currentRefinement = this.indices[0].helper.state.query;\n renderFn({\n widgetParams: widgetParams,\n currentRefinement: currentRefinement,\n // we do not want to provide the `helper` to the end-user\n indices: this.indices.map(function (_ref6) {\n var index = _ref6.index,\n label = _ref6.label,\n hits = _ref6.hits,\n results = _ref6.results;\n return {\n index: index,\n label: label,\n hits: hits,\n results: results\n };\n }),\n instantSearchInstance: this.instantSearchInstance,\n refine: this._refine\n }, isFirstRendering);\n },\n dispose: function dispose() {\n // detach every derived indices from the main helper instance\n this.indices.slice(1).forEach(function (_ref7) {\n var helper = _ref7.helper;\n return helper.detach();\n });\n unmountFn();\n }\n };\n };\n}","import noop from './noop';\nvar deprecate = noop;\nvar warn = noop;\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n *\n * @returns {undefined}\n */\n\nvar _warning = noop;\n\nif (process.env.NODE_ENV === 'development') {\n warn = function warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"[InstantSearch.js]: \".concat(message.trim()));\n };\n\n deprecate = function deprecate(fn, message) {\n var hasAlreadyPrinted = false;\n return function () {\n if (!hasAlreadyPrinted) {\n hasAlreadyPrinted = true;\n warn(message);\n }\n\n return fn.apply(void 0, arguments);\n };\n };\n\n _warning = function warning(condition, message) {\n if (condition) {\n return;\n }\n\n var hasAlreadyPrinted = _warning.cache[message];\n\n if (!hasAlreadyPrinted) {\n _warning.cache[message] = true;\n warn(message);\n }\n };\n\n _warning.cache = {};\n}\n\nexport { warn, deprecate, _warning as warning };","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default isEqual;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { checkRendering, warning, createDocumentationMessageGenerator, isEqual, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'breadcrumb',\n connector: true\n});\n/**\n * @typedef {Object} BreadcrumbItem\n * @property {string} label Label of the category or subcategory.\n * @property {string} value Value of breadcrumb item.\n */\n\n/**\n * @typedef {Object} CustomBreadcrumbWidgetOptions\n * @property {string[]} attributes Attributes to use to generate the hierarchy of the breadcrumb.\n * @property {string} [rootPath = null] Prefix path to use if the first level is not the root level.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n *\n * You can also use a sort function that behaves like the standard Javascript [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Syntax).\n */\n\n/**\n * @typedef {Object} BreadcrumbRenderingOptions\n * @property {function(item.value): string} createURL Creates an url for the next state for a clicked item. The special value `null` is used for the `Home` (or root) item of the breadcrumb and will return an empty array.\n * @property {BreadcrumbItem[]} items Values to be rendered.\n * @property {function(item.value)} refine Sets the path of the hierarchical filter and triggers a new search.\n * @property {Object} widgetParams All original `CustomBreadcrumbWidgetOptions` forwarded to the `renderFn`.\n */\n\n/**\n * **Breadcrumb** connector provides the logic to build a custom widget\n * that will give the user the ability to see the current path in a hierarchical facet.\n *\n * This is commonly used in websites that have a large amount of content organized in a hierarchical manner (usually e-commerce websites).\n * @type {Connector}\n * @param {function(BreadcrumbRenderingOptions, boolean)} renderFn Rendering function for the custom **Breadcrumb* widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomBreadcrumbWidgetOptions)} Re-usable widget factory for a custom **Breadcrumb** widget.\n */\n\nexport default function connectBreadcrumb(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attributes = widgetParams.attributes,\n _widgetParams$separat = widgetParams.separator,\n separator = _widgetParams$separat === void 0 ? ' > ' : _widgetParams$separat,\n _widgetParams$rootPat = widgetParams.rootPath,\n rootPath = _widgetParams$rootPat === void 0 ? null : _widgetParams$rootPat,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n\n if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {\n throw new Error(withUsage('The `attributes` option expects an array of strings.'));\n }\n\n var _attributes = _slicedToArray(attributes, 1),\n hierarchicalFacetName = _attributes[0];\n\n return {\n getConfiguration: function getConfiguration(currentConfiguration) {\n if (currentConfiguration.hierarchicalFacets) {\n var isFacetSet = find(currentConfiguration.hierarchicalFacets, function (_ref) {\n var name = _ref.name;\n return name === hierarchicalFacetName;\n });\n\n if (isFacetSet) {\n warning(isEqual(isFacetSet.attributes, attributes) && isFacetSet.separator === separator && isFacetSet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.');\n return {};\n }\n }\n\n return {\n hierarchicalFacets: [{\n attributes: attributes,\n name: hierarchicalFacetName,\n separator: separator,\n rootPath: rootPath\n }]\n };\n },\n init: function init(_ref2) {\n var createURL = _ref2.createURL,\n helper = _ref2.helper,\n instantSearchInstance = _ref2.instantSearchInstance;\n\n this._createURL = function (facetValue) {\n if (!facetValue) {\n var breadcrumb = helper.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n\n if (breadcrumb.length > 0) {\n return createURL(helper.state.toggleRefinement(hierarchicalFacetName, breadcrumb[0]));\n }\n }\n\n return createURL(helper.state.toggleRefinement(hierarchicalFacetName, facetValue));\n };\n\n this._refine = function (facetValue) {\n if (!facetValue) {\n var breadcrumb = helper.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n\n if (breadcrumb.length > 0) {\n helper.toggleRefinement(hierarchicalFacetName, breadcrumb[0]).search();\n }\n } else {\n helper.toggleRefinement(hierarchicalFacetName, facetValue).search();\n }\n };\n\n renderFn({\n createURL: this._createURL,\n canRefine: false,\n instantSearchInstance: instantSearchInstance,\n items: [],\n refine: this._refine,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref3) {\n var instantSearchInstance = _ref3.instantSearchInstance,\n results = _ref3.results,\n state = _ref3.state;\n\n var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),\n facetName = _state$hierarchicalFa[0].name;\n\n var facetValues = results.getFacetValues(facetName);\n var data = Array.isArray(facetValues.data) ? facetValues.data : [];\n var items = transformItems(shiftItemsValues(prepareItems(data)));\n renderFn({\n canRefine: items.length > 0,\n createURL: this._createURL,\n instantSearchInstance: instantSearchInstance,\n items: items,\n refine: this._refine,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n }\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.path\n });\n\n if (Array.isArray(currentItem.data)) {\n result = result.concat(prepareItems(currentItem.data));\n }\n }\n\n return result;\n }, []);\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}","/**\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 * @param {object} $0 parameters\n * @param {Helper} $0.helper instance of the Helper\n * @param {string[]} [$0.attributesToClear = []] list of parameters to clear\n * @returns {SearchParameters} search parameters with refinements cleared\n */\nfunction 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 attributesToClear.forEach(function (attribute) {\n if (attribute === '_tags') {\n finalState = finalState.clearTags();\n } else {\n finalState = finalState.clearRefinements(attribute);\n }\n });\n\n if (attributesToClear.indexOf('query') !== -1) {\n finalState = finalState.setQuery('');\n }\n\n return finalState;\n}\n\nexport default clearRefinements;","function unescapeRefinement(value) {\n return String(value).replace(/^\\\\-/, '-');\n}\n\nexport default unescapeRefinement;","import find from './find';\nimport unescapeRefinement from './unescapeRefinement';\n\nfunction getRefinement(state, type, attributeName, name) {\n var resultsFacets = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var res = {\n type: type,\n attributeName: attributeName,\n name: name\n };\n var facet = find(resultsFacets, function (resultsFacet) {\n return resultsFacet.name === attributeName;\n });\n var count;\n\n if (type === 'hierarchical') {\n (function () {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var nameParts = name.split(facetDeclaration.separator);\n\n var getFacetRefinement = function getFacetRefinement(facetData) {\n return function (refinementKey) {\n return facetData[refinementKey];\n };\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\n for (var i = 0; facet !== undefined && i < nameParts.length; ++i) {\n _loop(i);\n }\n\n count = facet && facet.count;\n })();\n } else {\n count = facet && facet.data && facet.data[res.name];\n }\n\n var exhaustive = facet && facet.exhaustive;\n\n if (count !== undefined) {\n res.count = count;\n }\n\n if (exhaustive !== undefined) {\n res.exhaustive = exhaustive;\n }\n\n return res;\n}\n\nfunction getRefinements(results, state) {\n var clearsQuery = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var res = [];\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 (attributeName) {\n var refinements = facetsRefinements[attributeName];\n refinements.forEach(function (refinement) {\n res.push(getRefinement(state, 'facet', attributeName, refinement, results.facets));\n });\n });\n Object.keys(facetsExcludes).forEach(function (attributeName) {\n var refinements = facetsExcludes[attributeName];\n refinements.forEach(function (refinement) {\n res.push({\n type: 'exclude',\n attributeName: attributeName,\n name: refinement,\n exclude: true\n });\n });\n });\n Object.keys(disjunctiveFacetsRefinements).forEach(function (attributeName) {\n var refinements = disjunctiveFacetsRefinements[attributeName];\n refinements.forEach(function (refinement) {\n res.push(getRefinement(state, 'disjunctive', attributeName, // We unescape any disjunctive refined values with `unescapeRefinement` because\n // they can be escaped on negative numeric values with `escapeRefinement`.\n unescapeRefinement(refinement), results.disjunctiveFacets));\n });\n });\n Object.keys(hierarchicalFacetsRefinements).forEach(function (attributeName) {\n var refinements = hierarchicalFacetsRefinements[attributeName];\n refinements.forEach(function (refinement) {\n res.push(getRefinement(state, 'hierarchical', attributeName, refinement, results.hierarchicalFacets));\n });\n });\n Object.keys(numericRefinements).forEach(function (attributeName) {\n var operators = numericRefinements[attributeName];\n Object.keys(operators).forEach(function (operator) {\n var valueOrValues = operators[operator];\n var refinements = Array.isArray(valueOrValues) ? valueOrValues : [valueOrValues];\n refinements.forEach(function (refinement) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: \"\".concat(refinement),\n numericValue: refinement,\n operator: operator\n });\n });\n });\n });\n tagRefinements.forEach(function (refinement) {\n res.push({\n type: 'tag',\n attributeName: '_tags',\n name: refinement\n });\n });\n\n if (clearsQuery && state.query && state.query.trim()) {\n res.push({\n attributeName: 'query',\n type: 'query',\n name: state.query,\n query: state.query\n });\n }\n\n return res;\n}\n\nexport default getRefinements;","import { checkRendering, clearRefinements, getRefinements, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'clear-refinements',\n connector: true\n});\n/**\n * @typedef {Object} CustomClearRefinementsWidgetOptions\n * @property {string[]} [includedAttributes = []] The attributes to include in the refinements to clear (all by default). Cannot be used with `excludedAttributes`.\n * @property {string[]} [excludedAttributes = ['query']] The attributes to exclude from the refinements to clear. Cannot be used with `includedAttributes`.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * @typedef {Object} ClearRefinementsRenderingOptions\n * @property {function} refine Triggers the clear of all the currently refined values.\n * @property {boolean} hasRefinements Indicates if search state is refined.\n * @property {function} createURL Creates a url for the next state when refinements are cleared.\n * @property {Object} widgetParams All original `CustomClearRefinementsWidgetOptions` forwarded to the `renderFn`.\n */\n\n/**\n * **ClearRefinements** connector provides the logic to build a custom widget that will give the user\n * the ability to reset the search state.\n *\n * This connector provides a `refine` function to remove the current refined facets.\n *\n * The behaviour of this function can be changed with widget options. If `clearsQuery`\n * is set to `true`, `refine` will also clear the query and `excludedAttributes` can\n * prevent certain attributes from being cleared.\n *\n * @type {Connector}\n * @param {function(ClearRefinementsRenderingOptions, boolean)} renderFn Rendering function for the custom **ClearRefinements** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomClearRefinementsWidgetOptions)} Re-usable widget factory for a custom **ClearRefinements** widget.\n * @example\n * // custom `renderFn` to render the custom ClearRefinements widget\n * function renderFn(ClearRefinementsRenderingOptions, isFirstRendering) {\n * var containerNode = ClearRefinementsRenderingOptions.widgetParams.containerNode;\n * if (isFirstRendering) {\n * var markup = $('');\n * containerNode.append(markup);\n *\n * markup.on('click', function(event) {\n * event.preventDefault();\n * ClearRefinementsRenderingOptions.refine();\n * })\n * }\n *\n * var clearRefinementsCTA = containerNode.find('#custom-clear-all');\n * clearRefinementsCTA.attr('disabled', !ClearRefinementsRenderingOptions.hasRefinements)\n * };\n *\n * // connect `renderFn` to ClearRefinements logic\n * var customClearRefinementsWidget = instantsearch.connectors.connectClearRefinements(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customClearRefinementsWidget({\n * containerNode: $('#custom-clear-all-container'),\n * })\n * );\n */\n\nexport default function connectClearRefinements(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (widgetParams.includedAttributes && widgetParams.excludedAttributes) {\n throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));\n }\n\n var _widgetParams$include = widgetParams.includedAttributes,\n includedAttributes = _widgetParams$include === void 0 ? [] : _widgetParams$include,\n _widgetParams$exclude = widgetParams.excludedAttributes,\n excludedAttributes = _widgetParams$exclude === void 0 ? ['query'] : _widgetParams$exclude,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n instantSearchInstance = _ref.instantSearchInstance,\n createURL = _ref.createURL;\n var attributesToClear = getAttributesToClear({\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes,\n transformItems: transformItems\n });\n var hasRefinements = attributesToClear.length > 0;\n\n this._refine = function () {\n helper.setState(clearRefinements({\n helper: helper,\n attributesToClear: getAttributesToClear({\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes,\n transformItems: transformItems\n })\n })).search();\n };\n\n this._createURL = function () {\n return createURL(clearRefinements({\n helper: helper,\n attributesToClear: getAttributesToClear({\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes,\n transformItems: transformItems\n })\n }));\n };\n\n renderFn({\n hasRefinements: hasRefinements,\n refine: this._refine,\n createURL: this._createURL,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref2) {\n var helper = _ref2.helper,\n instantSearchInstance = _ref2.instantSearchInstance;\n var attributesToClear = getAttributesToClear({\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes,\n transformItems: transformItems\n });\n var hasRefinements = attributesToClear.length > 0;\n renderFn({\n hasRefinements: hasRefinements,\n refine: this._refine,\n createURL: this._createURL,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n }\n };\n };\n}\n\nfunction getAttributesToClear(_ref3) {\n var helper = _ref3.helper,\n includedAttributes = _ref3.includedAttributes,\n excludedAttributes = _ref3.excludedAttributes,\n transformItems = _ref3.transformItems;\n var clearsQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;\n return transformItems(getRefinements(helper.lastResults || {}, helper.state, clearsQuery).map(function (refinement) {\n return refinement.attributeName;\n }).filter(function (attribute) {\n return (// If the array is empty (default case), we keep all the attributes\n includedAttributes.length === 0 || // Otherwise, only add the specified attributes\n includedAttributes.indexOf(attribute) !== -1\n );\n }).filter(function (attribute) {\n return (// If the query is included, we ignore the default `excludedAttributes = ['query']`\n attribute === 'query' && clearsQuery || // Otherwise, ignore the excluded attributes\n excludedAttributes.indexOf(attribute) === -1\n );\n }));\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport algoliasearchHelper from 'algoliasearch-helper';\nimport { isEqual } from './utils';\n\nvar RoutingManager =\n/*#__PURE__*/\nfunction () {\n function RoutingManager(_ref) {\n var router = _ref.router,\n stateMapping = _ref.stateMapping,\n instantSearchInstance = _ref.instantSearchInstance;\n\n _classCallCheck(this, RoutingManager);\n\n _defineProperty(this, \"instantSearchInstance\", void 0);\n\n _defineProperty(this, \"router\", void 0);\n\n _defineProperty(this, \"stateMapping\", void 0);\n\n _defineProperty(this, \"isFirstRender\", true);\n\n _defineProperty(this, \"currentUiState\", void 0);\n\n _defineProperty(this, \"initState\", void 0);\n\n _defineProperty(this, \"renderURLFromState\", void 0);\n\n this.router = router;\n this.stateMapping = stateMapping;\n this.instantSearchInstance = instantSearchInstance;\n this.currentUiState = this.stateMapping.routeToState(this.router.read());\n }\n\n _createClass(RoutingManager, [{\n key: \"getAllSearchParameters\",\n value: function getAllSearchParameters(_ref2) {\n var currentSearchParameters = _ref2.currentSearchParameters,\n uiState = _ref2.uiState;\n var widgets = this.instantSearchInstance.widgets;\n return widgets.reduce(function (parameters, widget) {\n if (!widget.getWidgetSearchParameters) {\n return parameters;\n }\n\n return widget.getWidgetSearchParameters(parameters, {\n uiState: uiState\n });\n }, currentSearchParameters);\n }\n }, {\n key: \"getAllUiStates\",\n value: function getAllUiStates(_ref3) {\n var searchParameters = _ref3.searchParameters;\n var widgets = this.instantSearchInstance.widgets;\n var helper = this.instantSearchInstance.helper;\n return widgets.reduce(function (state, widget) {\n if (!widget.getWidgetState) {\n return state;\n }\n\n return widget.getWidgetState(state, {\n helper: helper,\n searchParameters: searchParameters\n });\n }, {});\n }\n }, {\n key: \"setupRouting\",\n value: function setupRouting(state) {\n var _this = this;\n\n var helper = this.instantSearchInstance.helper;\n this.router.onUpdate(function (route) {\n var nextUiState = _this.stateMapping.routeToState(route);\n\n var widgetsUiState = _this.getAllUiStates({\n searchParameters: helper.state\n });\n\n if (isEqual(nextUiState, widgetsUiState)) {\n return;\n }\n\n _this.currentUiState = nextUiState;\n\n var searchParameters = _this.getAllSearchParameters({\n currentSearchParameters: state,\n uiState: _this.currentUiState\n });\n\n helper.overrideStateWithoutTriggeringChangeEvent(searchParameters).search();\n });\n\n this.renderURLFromState = function (searchParameters) {\n _this.currentUiState = _this.getAllUiStates({\n searchParameters: searchParameters\n });\n\n var route = _this.stateMapping.stateToRoute(_this.currentUiState);\n\n _this.router.write(route);\n };\n\n helper.on('change', this.renderURLFromState); // Compare initial state and first render state to see if the query has been\n // changed by the `searchFunction`. It's required because the helper of the\n // `searchFunction` does not trigger change event (not the same instance).\n\n var firstRenderState = this.getAllUiStates({\n searchParameters: state\n });\n\n if (!isEqual(this.initState, firstRenderState)) {\n // Force update the URL, if the state has changed since the initial read.\n // We do this in order to make the URL update when there is `searchFunction`\n // that prevents the search of the initial rendering.\n // See: https://github.com/algolia/instantsearch.js/issues/2523#issuecomment-339356157\n this.currentUiState = firstRenderState;\n var route = this.stateMapping.stateToRoute(this.currentUiState);\n this.router.write(route);\n }\n }\n }, {\n key: \"getConfiguration\",\n value: function getConfiguration(currentConfiguration) {\n // We have to create a `SearchParameters` because `getAllSearchParameters`\n // expects an instance of `SearchParameters` and not a plain object.\n var currentSearchParameters = algoliasearchHelper.SearchParameters.make(currentConfiguration);\n return _objectSpread({}, this.getAllSearchParameters({\n uiState: this.currentUiState,\n currentSearchParameters: currentSearchParameters\n }));\n }\n }, {\n key: \"init\",\n value: function init(_ref4) {\n var state = _ref4.state;\n // Store the initial state from the storage to compare it with the state on next renders\n // in case the `searchFunction` has modified it.\n this.initState = this.getAllUiStates({\n searchParameters: state\n });\n }\n }, {\n key: \"render\",\n value: function render(_ref5) {\n var state = _ref5.state;\n\n if (this.isFirstRender) {\n this.isFirstRender = false;\n this.setupRouting(state);\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose(_ref6) {\n var helper = _ref6.helper,\n state = _ref6.state;\n\n if (this.renderURLFromState) {\n this.instantSearchInstance.helper.removeListener('change', this.renderURLFromState);\n }\n\n if (this.router.dispose) {\n this.router.dispose({\n helper: helper,\n state: state\n });\n }\n }\n }, {\n key: \"createURL\",\n value: function createURL(state) {\n var uiState = this.getAllUiStates({\n searchParameters: state\n });\n var route = this.stateMapping.stateToRoute(uiState);\n return this.router.createURL(route);\n }\n }, {\n key: \"onHistoryChange\",\n value: function onHistoryChange(callback) {\n var _this2 = this;\n\n var helper = this.instantSearchInstance.helper;\n this.router.onUpdate(function (route) {\n var nextUiState = _this2.stateMapping.routeToState(route);\n\n var widgetsUiState = _this2.getAllUiStates({\n searchParameters: helper.state\n });\n\n if (isEqual(nextUiState, widgetsUiState)) {\n return;\n }\n\n _this2.currentUiState = nextUiState;\n\n var searchParameters = _this2.getAllSearchParameters({\n currentSearchParameters: helper.state,\n uiState: _this2.currentUiState\n });\n\n callback(_objectSpread({}, searchParameters));\n });\n }\n }]);\n\n return RoutingManager;\n}();\n\nexport default RoutingManager;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar SimpleUIStateMapping =\n/*#__PURE__*/\nfunction () {\n function SimpleUIStateMapping() {\n _classCallCheck(this, SimpleUIStateMapping);\n }\n\n _createClass(SimpleUIStateMapping, [{\n key: \"stateToRoute\",\n value: function stateToRoute(uiState) {\n return uiState;\n }\n }, {\n key: \"routeToState\",\n value: function routeToState(routeState) {\n return routeState;\n }\n }]);\n\n return SimpleUIStateMapping;\n}();\n\nexport default function () {\n return new SimpleUIStateMapping();\n}","function isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport qs from 'qs';\n\nvar defaultCreateURL = function defaultCreateURL(_ref) {\n var qsModule = _ref.qsModule,\n routeState = _ref.routeState,\n location = _ref.location;\n var protocol = location.protocol,\n hostname = location.hostname,\n _location$port = location.port,\n port = _location$port === void 0 ? '' : _location$port,\n pathname = location.pathname,\n hash = location.hash;\n var queryString = qsModule.stringify(routeState);\n var portWithPrefix = port === '' ? '' : \":\".concat(port); // IE <= 11 has no proper `location.origin` so we cannot rely on it.\n\n if (!routeState || Object.keys(routeState).length === 0) {\n return \"\".concat(protocol, \"//\").concat(hostname).concat(portWithPrefix).concat(pathname).concat(hash);\n }\n\n return \"\".concat(protocol, \"//\").concat(hostname).concat(portWithPrefix).concat(pathname, \"?\").concat(queryString).concat(hash);\n};\n\nvar defaultParseURL = function defaultParseURL(_ref2) {\n var qsModule = _ref2.qsModule,\n location = _ref2.location;\n // `qs` by default converts arrays with more than 20 items to an object.\n // We want to avoid this because the data structure manipulated can therefore vary.\n // Setting the limit to `100` seems a good number because the engine's default is 100\n // (it can go up to 1000 but it is very unlikely to select more than 100 items in the UI).\n //\n // Using an `arrayLimit` of `n` allows `n + 1` items.\n //\n // See:\n // - https://github.com/ljharb/qs#parsing-arrays\n // - https://www.algolia.com/doc/api-reference/api-parameters/maxValuesPerFacet/\n return qsModule.parse(location.search.slice(1), {\n arrayLimit: 99\n });\n};\n\nvar setWindowTitle = function setWindowTitle(title) {\n if (title) {\n window.document.title = title;\n }\n};\n\nvar BrowserHistory =\n/*#__PURE__*/\nfunction () {\n /**\n * Initializes a new storage provider that syncs the search state to the URL\n * using web APIs (`window.location.pushState` and `onpopstate` event).\n */\n function BrowserHistory() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n windowTitle = _ref3.windowTitle,\n _ref3$writeDelay = _ref3.writeDelay,\n writeDelay = _ref3$writeDelay === void 0 ? 400 : _ref3$writeDelay,\n _ref3$createURL = _ref3.createURL,\n createURL = _ref3$createURL === void 0 ? defaultCreateURL : _ref3$createURL,\n _ref3$parseURL = _ref3.parseURL,\n parseURL = _ref3$parseURL === void 0 ? defaultParseURL : _ref3$parseURL;\n\n _classCallCheck(this, BrowserHistory);\n\n _defineProperty(this, \"windowTitle\", void 0);\n\n _defineProperty(this, \"writeDelay\", void 0);\n\n _defineProperty(this, \"_createURL\", void 0);\n\n _defineProperty(this, \"parseURL\", void 0);\n\n _defineProperty(this, \"writeTimer\", void 0);\n\n this.windowTitle = windowTitle;\n this.writeTimer = undefined;\n this.writeDelay = writeDelay;\n this._createURL = createURL;\n this.parseURL = parseURL;\n var title = this.windowTitle && this.windowTitle(this.read());\n setWindowTitle(title);\n }\n /**\n * Reads the URL and returns a syncable UI search state.\n */\n\n\n _createClass(BrowserHistory, [{\n key: \"read\",\n value: function read() {\n return this.parseURL({\n qsModule: qs,\n location: window.location\n });\n }\n /**\n * Pushes a search state into the URL.\n */\n\n }, {\n key: \"write\",\n value: function write(routeState) {\n var _this = this;\n\n var url = this.createURL(routeState);\n var title = this.windowTitle && this.windowTitle(routeState);\n\n if (this.writeTimer) {\n window.clearTimeout(this.writeTimer);\n }\n\n this.writeTimer = window.setTimeout(function () {\n setWindowTitle(title);\n window.history.pushState(routeState, title || '', url);\n _this.writeTimer = undefined;\n }, this.writeDelay);\n }\n /**\n * Sets a callback on the `onpopstate` event of the history API of the current page.\n * It enables the URL sync to keep track of the changes.\n */\n\n }, {\n key: \"onUpdate\",\n value: function onUpdate(callback) {\n var _this2 = this;\n\n this._onPopState = function (event) {\n if (_this2.writeTimer) {\n window.clearTimeout(_this2.writeTimer);\n _this2.writeTimer = undefined;\n }\n\n var routeState = event.state; // At initial load, the state is read from the URL without update.\n // Therefore the state object is not available.\n // In this case, we fallback and read the URL.\n\n if (!routeState) {\n callback(_this2.read());\n } else {\n callback(routeState);\n }\n };\n\n window.addEventListener('popstate', this._onPopState);\n }\n /**\n * Creates a complete URL from a given syncable UI state.\n *\n * It always generates the full URL, not a relative one.\n * This allows to handle cases like using a .\n * See: https://github.com/algolia/instantsearch.js/issues/790\n */\n\n }, {\n key: \"createURL\",\n value: function createURL(routeState) {\n return this._createURL({\n qsModule: qs,\n routeState: routeState,\n location: window.location\n });\n }\n /**\n * Removes the event listener and cleans up the URL.\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this._onPopState) {\n window.removeEventListener('popstate', this._onPopState);\n }\n\n if (this.writeTimer) {\n window.clearTimeout(this.writeTimer);\n }\n\n this.write({});\n }\n }]);\n\n return BrowserHistory;\n}();\n\nexport default function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(BrowserHistory, args);\n}","export default '3.7.0';","function getPropertyByPath(object, path) {\n var parts = path.split('.');\n return parts.reduce(function (current, key) {\n return current && current[key];\n }, object);\n}\n\nexport default getPropertyByPath;","var NAMESPACE = 'ais';\nexport var component = function component(componentName) {\n return function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n descendantName = _ref.descendantName,\n modifierName = _ref.modifierName;\n\n var descendent = descendantName ? \"-\".concat(descendantName) : '';\n var modifier = modifierName ? \"--\".concat(modifierName) : '';\n return \"\".concat(NAMESPACE, \"-\").concat(componentName).concat(descendent).concat(modifier);\n };\n};","import { getPropertyByPath } from '../lib/utils';\nimport { TAG_REPLACEMENT } from '../lib/escape-highlight';\nimport { component } from '../lib/suit';\nvar suit = component('Highlight');\nexport default function highlight(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit;\n var attributeValue = getPropertyByPath(hit, \"_highlightResult.\".concat(attribute, \".value\")) || '';\n var className = suit({\n descendantName: 'highlighted'\n });\n return attributeValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\n}","import { getPropertyByPath } from '../lib/utils';\nimport { TAG_REPLACEMENT } from '../lib/escape-highlight';\nimport { component } from '../lib/suit';\nvar suit = component('Snippet');\nexport default function snippet(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit;\n var attributeValue = getPropertyByPath(hit, \"_snippetResult.\".concat(attribute, \".value\")) || '';\n var className = suit({\n descendantName: 'highlighted'\n });\n return attributeValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { highlight as _highlight, snippet as _snippet } from '../helpers';\nexport default function hoganHelpers(_ref) {\n var numberLocale = _ref.numberLocale;\n return {\n formatNumber: function formatNumber(value, render) {\n return Number(render(value)).toLocaleString(numberLocale);\n },\n highlight: function highlight(options, render) {\n try {\n var highlightOptions = JSON.parse(options);\n return render(_highlight(_objectSpread({}, highlightOptions, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\nThe highlight helper expects a JSON object of the format:\\n{ \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n },\n snippet: function snippet(options, render) {\n try {\n var snippetOptions = JSON.parse(options);\n return render(_snippet(_objectSpread({}, snippetOptions, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\nThe snippet helper expects a JSON object of the format:\\n{ \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n }\n };\n}","function uniq(array) {\n return array.filter(function (value, index, self) {\n return self.indexOf(value) === index;\n });\n}\n\nexport default uniq;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport uniq from './uniq';\nimport isPlainObject from './isPlainObject';\n/**\n * Deeply merges all the object values in a new object.\n *\n * - Primitive values are replaced\n * - Arrays a concatenated and their values are made unique\n */\n\nfunction mergeDeep() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.reduce(function (acc) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(source).forEach(function (key) {\n var previousValue = acc[key];\n var nextValue = source[key];\n\n if (Array.isArray(previousValue) && Array.isArray(nextValue)) {\n acc[key] = uniq([].concat(_toConsumableArray(previousValue), _toConsumableArray(nextValue)));\n } else if (isPlainObject(previousValue) && isPlainObject(nextValue)) {\n acc[key] = mergeDeep(previousValue, nextValue);\n } else {\n acc[key] = nextValue;\n }\n });\n return acc;\n }, {});\n}\n\nexport default mergeDeep;","// We aren't using the native `Array.prototype.findIndex` because the refactor away from Lodash is not\n// published as a major version.\n// Relying on the `findIndex` polyfill on user-land, which before was only required for niche use-cases,\n// was decided as too risky.\n// @MAJOR Replace with the native `Array.prototype.findIndex` method\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex\nfunction findIndex(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport default findIndex;","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport algoliasearchHelper from 'algoliasearch-helper';\nimport EventEmitter from 'events';\nimport RoutingManager from './RoutingManager';\nimport simpleMapping from './stateMappings/simple';\nimport historyRouter from './routers/history';\nimport version from './version';\nimport createHelpers from './createHelpers';\nimport { createDocumentationMessageGenerator, createDocumentationLink, findIndex, isPlainObject, mergeDeep, noop, warning } from './utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'instantsearch'\n});\nvar ROUTING_DEFAULT_OPTIONS = {\n stateMapping: simpleMapping(),\n router: historyRouter()\n};\n\nfunction defaultCreateURL() {\n return '#';\n}\n/**\n * Widgets are the building blocks of InstantSearch.js. Any\n * valid widget must have at least a `render` or a `init` function.\n * @typedef {Object} Widget\n * @property {function} [render] Called after each search response has been received\n * @property {function} [getConfiguration] Let the widget update the configuration\n * of the search with new parameters\n * @property {function} [init] Called once before the first search\n */\n\n/**\n * The actual implementation of the InstantSearch. This is\n * created using the `instantsearch` factory function.\n * @fires Instantsearch#render This event is triggered each time a render is done\n */\n\n\nvar InstantSearch =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(InstantSearch, _EventEmitter);\n\n function InstantSearch(options) {\n var _this;\n\n _classCallCheck(this, InstantSearch);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InstantSearch).call(this));\n var _options$indexName = options.indexName,\n indexName = _options$indexName === void 0 ? null : _options$indexName,\n numberLocale = options.numberLocale,\n searchParameters = options.searchParameters,\n _options$routing = options.routing,\n routing = _options$routing === void 0 ? null : _options$routing,\n searchFunction = options.searchFunction,\n _options$stalledSearc = options.stalledSearchDelay,\n stalledSearchDelay = _options$stalledSearc === void 0 ? 200 : _options$stalledSearc,\n _options$searchClient = options.searchClient,\n searchClient = _options$searchClient === void 0 ? null : _options$searchClient,\n _options$insightsClie = options.insightsClient,\n insightsClient = _options$insightsClie === void 0 ? null : _options$insightsClie;\n\n if (indexName === null) {\n throw new Error(withUsage('The `indexName` option is required.'));\n }\n\n if (searchClient === null) {\n throw new Error(withUsage('The `searchClient` option is required.'));\n }\n\n if (typeof options.urlSync !== 'undefined') {\n throw new Error(withUsage('The `urlSync` option was removed in InstantSearch.js 3. You may want to use the `routing` option.'));\n }\n\n if (typeof searchClient.search !== 'function') {\n throw new Error(\"The `searchClient` must implement a `search` method.\\n\\nSee: https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/js/\");\n }\n\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n searchClient.addAlgoliaAgent(\"instantsearch.js (\".concat(version, \")\"));\n }\n\n if (insightsClient && typeof insightsClient !== 'function') {\n throw new Error('The provided `insightsClient` must be a function.');\n }\n\n warning(!searchParameters, \"The `searchParameters` option is deprecated and will not be supported in InstantSearch.js 4.x.\\n\\nYou can replace it with the `configure` widget:\\n\\n```\\nsearch.addWidgets([\\n configure(\".concat(JSON.stringify(searchParameters, null, 2), \")\\n]);\\n```\\n\\nSee \").concat(createDocumentationLink({\n name: 'configure'\n })));\n _this.client = searchClient;\n _this.insightsClient = insightsClient;\n _this.helper = null;\n _this.indexName = indexName;\n _this.searchParameters = _objectSpread({}, searchParameters, {\n index: indexName\n });\n _this.widgets = [];\n _this.templatesConfig = {\n helpers: createHelpers({\n numberLocale: numberLocale\n }),\n compileOptions: {}\n };\n _this._stalledSearchDelay = stalledSearchDelay;\n\n if (searchFunction) {\n _this._searchFunction = searchFunction;\n }\n\n if (routing === true) _this.routing = ROUTING_DEFAULT_OPTIONS;else if (isPlainObject(routing)) _this.routing = _objectSpread({}, ROUTING_DEFAULT_OPTIONS, {}, routing);\n return _this;\n }\n /**\n * Adds a widget. This can be done before and after InstantSearch has been started. Adding a\n * widget after InstantSearch started is considered **EXPERIMENTAL** and therefore\n * it is possibly buggy, if you find anything please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20hot%20addWidget).\n * @param {Widget} widget The widget to add to InstantSearch. Widgets are simple objects\n * that have methods that map the search life cycle in a UI perspective. Usually widgets are\n * created by [widget factories](widgets.html) like the one provided with InstantSearch.js.\n * @return {undefined} This method does not return anything\n */\n\n\n _createClass(InstantSearch, [{\n key: \"addWidget\",\n value: function addWidget(widget) {\n this.addWidgets([widget]);\n }\n /**\n * Adds multiple widgets. This can be done before and after the InstantSearch has been started. This feature\n * is considered **EXPERIMENTAL** and therefore it is possibly buggy, if you find anything please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20addWidgets).\n * @param {Widget[]} widgets The array of widgets to add to InstantSearch.\n * @return {undefined} This method does not return anything\n */\n\n }, {\n key: \"addWidgets\",\n value: function addWidgets(widgets) {\n var _this2 = this;\n\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `addWidgets` method expects an array of widgets. Please use `addWidget`.'));\n } // The routing manager widget is always added manually at the last position.\n // By removing it from the last position and adding it back after, we ensure\n // it keeps this position.\n // fixes #3148\n\n\n var lastWidget = this.widgets.pop();\n widgets.forEach(function (widget) {\n // Add the widget to the list of widget\n if (widget.render === undefined && widget.init === undefined) {\n throw new Error(\"The widget definition expects a `render` and/or an `init` method.\\n\\nSee: https://www.algolia.com/doc/guides/building-search-ui/widgets/create-your-own-widgets/js/\");\n }\n\n _this2.widgets.push(widget);\n }); // Second part of the fix for #3148\n\n if (lastWidget) this.widgets.push(lastWidget); // Init the widget directly if instantsearch has been already started\n\n if (this.started && Boolean(widgets.length)) {\n this.searchParameters = this.widgets.reduce(enhanceConfiguration, _objectSpread({}, this.helper.state));\n this.helper.setState(this.searchParameters);\n widgets.forEach(function (widget) {\n if (widget.init) {\n widget.init({\n state: _this2.helper.state,\n helper: _this2.helper,\n templatesConfig: _this2.templatesConfig,\n createURL: _this2._createAbsoluteURL,\n onHistoryChange: _this2._onHistoryChange,\n instantSearchInstance: _this2\n });\n }\n });\n this.helper.search();\n }\n }\n /**\n * Removes a widget. This can be done after the InstantSearch has been started. This feature\n * is considered **EXPERIMENTAL** and therefore it is possibly buggy, if you find anything please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20removeWidget).\n * @param {Widget} widget The widget instance to remove from InstantSearch. This widget must implement a `dispose()` method in order to be gracefully removed.\n * @return {undefined} This method does not return anything\n */\n\n }, {\n key: \"removeWidget\",\n value: function removeWidget(widget) {\n this.removeWidgets([widget]);\n }\n /**\n * Removes multiple widgets. This can be done only after the InstantSearch has been started. This feature\n * is considered **EXPERIMENTAL** and therefore it is possibly buggy, if you find anything please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20addWidgets).\n * @param {Widget[]} widgets Array of widgets instances to remove from InstantSearch.\n * @return {undefined} This method does not return anything\n */\n\n }, {\n key: \"removeWidgets\",\n value: function removeWidgets(widgets) {\n var _this3 = this;\n\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `removeWidgets` method expects an array of widgets. Please use `removeWidget`.'));\n }\n\n widgets.forEach(function (widget) {\n if (!_this3.widgets.includes(widget) || typeof widget.dispose !== 'function') {\n throw new Error(\"The `dispose` method is required to remove the widget.\\n\\nSee: https://www.algolia.com/doc/guides/building-search-ui/widgets/create-your-own-widgets/js/#the-widget-lifecycle-and-api\");\n }\n\n _this3.widgets = _this3.widgets.filter(function (w) {\n return w !== widget;\n });\n var nextState = widget.dispose({\n helper: _this3.helper,\n state: _this3.helper.state\n }); // re-compute remaining widgets to the state\n // in a case two widgets were using the same configuration but we removed one\n\n if (nextState) {\n _this3.searchParameters = _this3.widgets.reduce(enhanceConfiguration, _objectSpread({}, nextState));\n\n _this3.helper.setState(_this3.searchParameters);\n }\n }); // If there's multiple call to `removeWidget()` let's wait until they are all made\n // and then check for widgets.length & make a search on next tick\n //\n // This solves an issue where you unmount a page and removing widget by widget\n\n setTimeout(function () {\n // no need to trigger a search if we don't have any widgets left\n if (_this3.widgets.length > 0) {\n _this3.helper.search();\n }\n }, 0);\n }\n /**\n * Clears the cached answers from Algolia and triggers a new search.\n *\n * @return {undefined} Does not return anything\n */\n\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.helper) {\n this.helper.clearCache().search();\n }\n }\n /**\n * Ends the initialization of InstantSearch.js and triggers the\n * first search. This method should be called after all widgets have been added\n * to the instance of InstantSearch.js. InstantSearch.js also supports adding and removing\n * widgets after the start as an **EXPERIMENTAL** feature.\n *\n * @return {undefined} Does not return anything\n */\n\n }, {\n key: \"start\",\n value: function start() {\n var _this4 = this;\n\n if (this.started) {\n throw new Error(withUsage('The `start` method has already been called once.'));\n }\n\n if (this.routing) {\n var routingManager = new RoutingManager(_objectSpread({}, this.routing, {\n instantSearchInstance: this\n }));\n this._onHistoryChange = routingManager.onHistoryChange.bind(routingManager);\n this._createURL = routingManager.createURL.bind(routingManager);\n this._createAbsoluteURL = this._createURL;\n this.widgets.push(routingManager);\n } else {\n this._createURL = defaultCreateURL;\n this._createAbsoluteURL = defaultCreateURL;\n this._onHistoryChange = noop;\n }\n\n this.searchParameters = this.widgets.reduce(enhanceConfiguration, this.searchParameters);\n var helper = algoliasearchHelper(this.client, this.searchParameters.index || this.indexName, this.searchParameters);\n\n if (this._searchFunction) {\n this._mainHelperSearch = helper.search.bind(helper);\n\n helper.search = function () {\n var helperSearchFunction = algoliasearchHelper({\n search: function search() {\n return new Promise(noop);\n }\n }, helper.state.index, helper.state);\n helperSearchFunction.once('search', function (state) {\n helper.overrideStateWithoutTriggeringChangeEvent(state);\n\n _this4._mainHelperSearch();\n });\n\n _this4._searchFunction(helperSearchFunction);\n };\n }\n\n this.helper = helper;\n\n this._init(helper.state, this.helper);\n\n this.helper.on('result', this._render.bind(this, this.helper));\n this.helper.on('error', function (e) {\n _this4.emit('error', e);\n });\n this._searchStalledTimer = null;\n this._isSearchStalled = true;\n this.helper.search();\n this.helper.on('search', function () {\n if (!_this4._isSearchStalled && !_this4._searchStalledTimer) {\n _this4._searchStalledTimer = setTimeout(function () {\n _this4._isSearchStalled = true;\n\n _this4._render(_this4.helper, _this4.helper.lastResults, _this4.helper.lastResults._state);\n }, _this4._stalledSearchDelay);\n }\n }); // track we started the search if we add more widgets,\n // to init them directly after add\n\n this.started = true;\n }\n /**\n * Removes all widgets without triggering a search afterwards. This is an **EXPERIMENTAL** feature,\n * if you find an issue with it, please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20dispose).\n * @return {undefined} This method does not return anything\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.removeWidgets(this.widgets); // You can not start an instance two times, therefore a disposed instance needs to set started as false\n // otherwise this can not be restarted at a later point.\n\n this.started = false; // The helper needs to be reset to perform the next search from a fresh state.\n // If not reset, it would use the state stored before calling `dispose()`.\n\n this.helper.removeAllListeners();\n this.helper = null;\n }\n }, {\n key: \"createURL\",\n value: function createURL(params) {\n if (!this._createURL) {\n throw new Error('The `start` method needs to be called before `createURL`.');\n }\n\n return this._createURL(this.helper.state.setQueryParameters(params));\n }\n }, {\n key: \"_render\",\n value: function _render(helper, results, state) {\n var _this5 = this;\n\n if (!this.helper.hasPendingRequests()) {\n clearTimeout(this._searchStalledTimer);\n this._searchStalledTimer = null;\n this._isSearchStalled = false;\n }\n\n this.widgets.forEach(function (widget) {\n if (!widget.render) {\n return;\n }\n\n widget.render({\n templatesConfig: _this5.templatesConfig,\n results: results,\n state: state,\n helper: helper,\n createURL: _this5._createAbsoluteURL,\n instantSearchInstance: _this5,\n searchMetadata: {\n isSearchStalled: _this5._isSearchStalled\n }\n });\n });\n /**\n * Render is triggered when the rendering of the widgets has been completed\n * after a search.\n * @event InstantSearch#render\n */\n\n this.emit('render');\n }\n }, {\n key: \"_init\",\n value: function _init(state, helper) {\n var _this6 = this;\n\n this.widgets.forEach(function (widget) {\n if (widget.init) {\n widget.init({\n state: state,\n helper: helper,\n templatesConfig: _this6.templatesConfig,\n createURL: _this6._createAbsoluteURL,\n onHistoryChange: _this6._onHistoryChange,\n instantSearchInstance: _this6\n });\n }\n });\n }\n }]);\n\n return InstantSearch;\n}(EventEmitter);\n\nexport function enhanceConfiguration(configuration, widgetDefinition) {\n if (!widgetDefinition.getConfiguration) {\n return configuration;\n } // Get the relevant partial configuration asked by the widget\n\n\n var partialConfiguration = widgetDefinition.getConfiguration(configuration);\n\n if (!partialConfiguration) {\n return configuration;\n }\n\n if (!partialConfiguration.hierarchicalFacets) {\n return mergeDeep(configuration, partialConfiguration);\n }\n\n var hierarchicalFacets = partialConfiguration.hierarchicalFacets,\n partialWithoutHierarchcialFacets = _objectWithoutProperties(partialConfiguration, [\"hierarchicalFacets\"]); // The `mergeDeep` function uses a `uniq` function under the hood, but the\n // implementation does not support arrays of objects (we also had the issue\n // with the Lodash version). The `hierarchicalFacets` attribute is an array\n // of objects, which means that this attribute is never deduplicated. It\n // becomes problematic when widgets are frequently added/removed, since the\n // function `enhanceConfiguration` is called at each operation.\n // https://github.com/algolia/instantsearch.js/issues/3278\n\n\n var configurationWithHierarchicalFacets = _objectSpread({}, configuration, {\n hierarchicalFacets: hierarchicalFacets.reduce(function (facets, facet) {\n var index = findIndex(facets, function (_) {\n return _.name === facet.name;\n });\n\n if (index === -1) {\n return facets.concat(facet);\n }\n\n var nextFacets = facets.slice();\n nextFacets.splice(index, 1, facet);\n return nextFacets;\n }, configuration.hierarchicalFacets || [])\n });\n\n return mergeDeep(configurationWithHierarchicalFacets, partialWithoutHierarchcialFacets);\n}\nexport default InstantSearch;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createDocumentationMessageGenerator, noop, isPlainObject } from '../../lib/utils';\nimport { enhanceConfiguration } from '../../lib/InstantSearch';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'configure',\n connector: true\n});\n/**\n * @typedef {Object} CustomConfigureWidgetOptions\n * @property {Object} searchParameters The Configure widget options are search parameters\n */\n\n/**\n * @typedef {Object} ConfigureRenderingOptions\n * @property {function(searchParameters: Object)} refine Sets new `searchParameters` and trigger a search.\n * @property {Object} widgetParams All original `CustomConfigureWidgetOptions` forwarded to the `renderFn`.\n */\n\n/**\n * The **Configure** connector provides the logic to build a custom widget\n * that will give you ability to override or force some search parameters sent to Algolia API.\n *\n * @type {Connector}\n * @param {function(ConfigureRenderingOptions)} renderFn Rendering function for the custom **Configure** Widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomConfigureWidgetOptions)} Re-usable widget factory for a custom **Configure** widget.\n */\n\nexport default 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 () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!isPlainObject(widgetParams.searchParameters)) {\n throw new Error(withUsage('The `searchParameters` option expects an object.'));\n }\n\n return {\n getConfiguration: function getConfiguration() {\n return widgetParams.searchParameters;\n },\n init: function init(_ref) {\n var helper = _ref.helper;\n this._refine = this.refine(helper);\n renderFn({\n refine: this._refine,\n widgetParams: widgetParams\n }, true);\n },\n refine: function refine(helper) {\n var _this = this;\n\n return function (searchParameters) {\n // merge new `searchParameters` with the ones set from other widgets\n var actualState = _this.removeSearchParameters(helper.state);\n\n var nextSearchParameters = enhanceConfiguration(_objectSpread({}, actualState), {\n getConfiguration: function getConfiguration() {\n return searchParameters;\n }\n }); // trigger a search with the new merged searchParameters\n\n helper.setState(nextSearchParameters).search(); // update original `widgetParams.searchParameters` to the new refined one\n\n widgetParams.searchParameters = searchParameters;\n };\n },\n render: function render() {\n renderFn({\n refine: this._refine,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose(_ref2) {\n var state = _ref2.state;\n unmountFn();\n return this.removeSearchParameters(state);\n },\n removeSearchParameters: function removeSearchParameters(state) {\n // widgetParams are assumed 'controlled',\n // so they override whatever other widgets give the state\n return state.mutateMe(function (mutableState) {\n Object.keys(widgetParams.searchParameters).forEach(function (key) {\n delete mutableState[key];\n });\n });\n }\n };\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { getRefinements, checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'current-refinements',\n connector: true\n});\n/**\n * @typedef {Object} Refinement\n * @property {\"facet\"|\"exclude\"|\"disjunctive\"|\"hierarchical\"|\"numeric\"|\"query\"} type The type of the refinement\n * @property {string} attribute The attribute on which the refinement is applied\n * @property {string} label The label of the refinement to display\n * @property {string} value The raw value of the refinement\n * @property {string} [operator] The value of the operator, only if applicable\n * @property {boolean} [exhaustive] Whether the count is exhaustive, only if applicable\n * @property {number} [count] number of items found, if applicable\n */\n\n/**\n * @typedef {Object} RefinementItem\n * @property {string} attribute The attribute on which the refinement is applied\n * @property {function} refine The function to remove the refinement\n * @property {Refinement[]} refinements The current refinements\n */\n\n/**\n * @typedef {Object} CurrentRefinementsRenderingOptions\n * @property {function(item)} refine Clears a single refinement\n * @property {function(item): string} createURL Creates an individual URL where a single refinement is cleared\n * @property {RefinementItem[]} items All the refinement items\n * @property {Object} widgetParams All original `CustomCurrentRefinementsWidgetOptions` forwarded to the `renderFn`.\n */\n\n/**\n * @typedef {Object} CustomCurrentRefinementsWidgetOptions\n * @property {string[]} [includedAttributes] The attributes to include in the refinements (all by default). Cannot be used with `excludedAttributes`.\n * @property {string[]} [excludedAttributes = [\"query\"]] The attributes to exclude from the refinements. Cannot be used with `includedAttributes`.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * **CurrentRefinements** connector provides the logic to build a widget that will give\n * the user the ability to see all the currently applied filters and, remove some or all of\n * them.\n *\n * This provides a `refine(item)` function to remove a selected refinement.\n * Those functions can see their behaviour change based on the widget options used.\n * @type {Connector}\n * @param {function(CurrentRefinementsRenderingOptions)} renderFn Rendering function for the custom **CurrentRefinements** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomCurrentRefinementsWidgetOptions)} Re-usable widget factory for a custom **CurrentRefinements** widget.\n * @example\n * // custom `renderFn` to render the custom ClearRefinements widget\n * function renderFn(currentRefinementsRenderingOptions, isFirstRendering) {\n * var containerNode = currentRefinementsRenderingOptions.widgetParams.containerNode;\n * if (isFirstRendering) {\n * containerNode\n * .html('
');\n * }\n *\n * containerNode\n * .find('#cta-container > a')\n * .off('click');\n *\n * containerNode\n * .find('li > a')\n * .each(function() { $(this).off('click') });\n *\n * if (currentRefinementsRenderingOptions.items\n * && currentRefinementsRenderingOptions.items.length > 0) {\n * var list = currentRefinementsRenderingOptions.items.map(function(item) {\n * return '
  • ' + item.attribute +\n * ''\n * '
  • ';\n * });\n *\n * currentRefinementsRenderingOptions.find('ul').html(list);\n * } else {\n * containerNode.find('#cta-container').html('');\n * containerNode.find('ul').html('');\n * }\n * }\n *\n * // connect `renderFn` to CurrentRefinements logic\n * var customCurrentRefinements = instantsearch.connectors.connectCurrentRefinements(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customCurrentRefinements({\n * containerNode: $('#custom-crv-container'),\n * })\n * );\n */\n\nexport default function connectCurrentRefinements(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (widgetParams.includedAttributes && widgetParams.excludedAttributes) {\n throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));\n }\n\n var includedAttributes = widgetParams.includedAttributes,\n _widgetParams$exclude = widgetParams.excludedAttributes,\n excludedAttributes = _widgetParams$exclude === void 0 ? ['query'] : _widgetParams$exclude,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n _createURL = _ref.createURL,\n instantSearchInstance = _ref.instantSearchInstance;\n var items = transformItems(getFilteredRefinements({\n results: {},\n state: helper.state,\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes\n }));\n renderFn({\n items: items,\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 instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref2) {\n var results = _ref2.results,\n helper = _ref2.helper,\n state = _ref2.state,\n _createURL2 = _ref2.createURL,\n instantSearchInstance = _ref2.instantSearchInstance;\n var items = transformItems(getFilteredRefinements({\n results: results,\n state: state,\n helper: helper,\n includedAttributes: includedAttributes,\n excludedAttributes: excludedAttributes\n }));\n renderFn({\n items: items,\n refine: function refine(refinement) {\n return clearRefinement(helper, refinement);\n },\n createURL: function createURL(refinement) {\n return _createURL2(clearRefinementFromState(helper.state, refinement));\n },\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n }\n };\n };\n}\n\nfunction getFilteredRefinements(_ref3) {\n var results = _ref3.results,\n state = _ref3.state,\n helper = _ref3.helper,\n includedAttributes = _ref3.includedAttributes,\n excludedAttributes = _ref3.excludedAttributes;\n var clearsQuery = (includedAttributes || []).indexOf('query') !== -1 || (excludedAttributes || []).indexOf('query') === -1;\n var filterFunction = includedAttributes ? function (item) {\n return includedAttributes.indexOf(item.attributeName) !== -1;\n } : function (item) {\n return excludedAttributes.indexOf(item.attributeName) === -1;\n };\n var items = getRefinements(results, state, clearsQuery).filter(filterFunction).map(normalizeRefinement);\n return groupItemsByRefinements(items, helper);\n}\n\nfunction clearRefinementFromState(state, refinement) {\n switch (refinement.type) {\n case 'facet':\n return state.removeFacetRefinement(refinement.attribute, refinement.value);\n\n case 'disjunctive':\n return state.removeDisjunctiveFacetRefinement(refinement.attribute, refinement.value);\n\n case 'hierarchical':\n return state.removeHierarchicalFacetRefinement(refinement.attribute);\n\n case 'exclude':\n return state.removeExcludeRefinement(refinement.attribute, refinement.value);\n\n case 'numeric':\n return state.removeNumericRefinement(refinement.attribute, refinement.operator, refinement.value);\n\n case 'tag':\n return state.removeTagRefinement(refinement.value);\n\n case 'query':\n return state.setQueryParameter('query', '');\n\n default:\n throw new Error(\"clearRefinement: type \".concat(refinement.type, \" is not handled\"));\n }\n}\n\nfunction clearRefinement(helper, refinement) {\n helper.setState(clearRefinementFromState(helper.state, refinement)).search();\n}\n\nfunction getOperatorSymbol(operator) {\n switch (operator) {\n case '>=':\n return '≥';\n\n case '<=':\n return '≤';\n\n default:\n return operator;\n }\n}\n\nfunction normalizeRefinement(refinement) {\n var value = refinement.type === 'numeric' ? Number(refinement.name) : refinement.name;\n var label = refinement.operator ? \"\".concat(getOperatorSymbol(refinement.operator), \" \").concat(refinement.name) : refinement.name;\n var normalizedRefinement = {\n attribute: refinement.attributeName,\n type: refinement.type,\n value: value,\n label: label\n };\n\n if (refinement.operator !== undefined) {\n normalizedRefinement.operator = refinement.operator;\n }\n\n if (refinement.count !== undefined) {\n normalizedRefinement.count = refinement.count;\n }\n\n if (refinement.exhaustive !== undefined) {\n normalizedRefinement.exhaustive = refinement.exhaustive;\n }\n\n return normalizedRefinement;\n}\n\nfunction groupItemsByRefinements(items, helper) {\n return items.reduce(function (results, currentItem) {\n return [].concat(_toConsumableArray(results.filter(function (result) {\n return result.attribute !== currentItem.attribute;\n })), [{\n attribute: currentItem.attribute,\n label: currentItem.attribute,\n refinements: items.filter(function (result) {\n return result.attribute === currentItem.attribute;\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}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { checkRendering, warning, createDocumentationMessageGenerator, isEqual, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'hierarchical-menu',\n connector: true\n});\n/**\n * @typedef {Object} HierarchicalMenuItem\n * @property {string} value Value of the menu item.\n * @property {string} label Human-readable value of the menu item.\n * @property {number} count Number of matched results after refinement is applied.\n * @property {isRefined} boolean Indicates if the refinement is applied.\n * @property {Object} [data = undefined] n+1 level of items, same structure HierarchicalMenuItem (default: `undefined`).\n */\n\n/**\n * @typedef {Object} CustomHierarchicalMenuWidgetOptions\n * @property {string[]} attributes Attributes to use to generate the hierarchy of the menu.\n * @property {string} [separator = '>'] Separator used in the attributes to separate level values.\n * @property {string} [rootPath = null] Prefix path to use if the first level is not the root level.\n * @property {boolean} [showParentLevel=false] Show the siblings of the selected parent levels of the current refined value. This\n * does not impact the root level.\n * @property {number} [limit = 10] Max number of values to display.\n * @property {boolean} [showMore = false] Whether to display the \"show more\" button.\n * @property {number} [showMoreLimit = 20] Max number of values to display when showing more.\n * @property {string[]|function} [sortBy = ['name:asc']] How to sort refinements. Possible values: `count|isRefined|name:asc|name:desc`.\n *\n * You can also use a sort function that behaves like the standard Javascript [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Syntax).\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * @typedef {Object} HierarchicalMenuRenderingOptions\n * @property {function(item.value): string} createURL Creates an url for the next state for a clicked item.\n * @property {HierarchicalMenuItem[]} items Values to be rendered.\n * @property {function(item.value)} refine Sets the path of the hierarchical filter and triggers a new search.\n * @property {Object} widgetParams All original `CustomHierarchicalMenuWidgetOptions` forwarded to the `renderFn`.\n */\n\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 * There's a complete example available on how to write a custom **HierarchicalMenu**:\n * [hierarchicalMenu.js](https://github.com/algolia/instantsearch.js/blob/develop/storybook/app/jquery/widgets/hierarchicalMenu.js)\n * @type {Connector}\n * @param {function(HierarchicalMenuRenderingOptions)} renderFn Rendering function for the custom **HierarchicalMenu** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomHierarchicalMenuWidgetOptions)} Re-usable widget factory for a custom **HierarchicalMenu** widget.\n */\n\nexport default function connectHierarchicalMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attributes = widgetParams.attributes,\n _widgetParams$separat = widgetParams.separator,\n separator = _widgetParams$separat === void 0 ? ' > ' : _widgetParams$separat,\n _widgetParams$rootPat = widgetParams.rootPath,\n rootPath = _widgetParams$rootPat === void 0 ? null : _widgetParams$rootPat,\n _widgetParams$showPar = widgetParams.showParentLevel,\n showParentLevel = _widgetParams$showPar === void 0 ? true : _widgetParams$showPar,\n _widgetParams$limit = widgetParams.limit,\n limit = _widgetParams$limit === void 0 ? 10 : _widgetParams$limit,\n _widgetParams$showMor = widgetParams.showMore,\n showMore = _widgetParams$showMor === void 0 ? false : _widgetParams$showMor,\n _widgetParams$showMor2 = widgetParams.showMoreLimit,\n showMoreLimit = _widgetParams$showMor2 === void 0 ? 20 : _widgetParams$showMor2,\n _widgetParams$sortBy = widgetParams.sortBy,\n sortBy = _widgetParams$sortBy === void 0 ? ['name:asc'] : _widgetParams$sortBy,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n\n if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {\n throw new Error(withUsage('The `attributes` option expects an array of strings.'));\n }\n\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));\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\n\n var _attributes = _slicedToArray(attributes, 1),\n hierarchicalFacetName = _attributes[0];\n\n return {\n 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 toggleShowMore: function toggleShowMore() {},\n cachedToggleShowMore: function cachedToggleShowMore() {\n this.toggleShowMore();\n },\n createToggleShowMore: function createToggleShowMore(renderOptions) {\n var _this = this;\n\n return function () {\n _this.isShowingMore = !_this.isShowingMore;\n\n _this.render(renderOptions);\n };\n },\n getLimit: function getLimit() {\n return this.isShowingMore ? showMoreLimit : limit;\n },\n getConfiguration: function getConfiguration(currentConfiguration) {\n if (currentConfiguration.hierarchicalFacets) {\n var isFacetSet = find(currentConfiguration.hierarchicalFacets, function (_ref) {\n var name = _ref.name;\n return name === hierarchicalFacetName;\n });\n var isAttributesEqual = isFacetSet && isEqual(isFacetSet.attributes, attributes);\n var isSeparatorEqual = isFacetSet && isFacetSet.separator === separator;\n var isRootPathEqual = isFacetSet && isFacetSet.rootPath === rootPath;\n var isHierarchicalOptionsEqual = isAttributesEqual && isSeparatorEqual && isRootPathEqual;\n\n if (isFacetSet && !isHierarchicalOptionsEqual) {\n warning(false, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.');\n return {};\n }\n }\n\n var widgetConfiguration = {\n hierarchicalFacets: [{\n name: hierarchicalFacetName,\n attributes: attributes,\n separator: separator,\n rootPath: rootPath,\n showParentLevel: showParentLevel\n }]\n };\n var currentMaxValuesPerFacet = currentConfiguration.maxValuesPerFacet || 0;\n widgetConfiguration.maxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n return widgetConfiguration;\n },\n init: function init(_ref2) {\n var helper = _ref2.helper,\n createURL = _ref2.createURL,\n instantSearchInstance = _ref2.instantSearchInstance;\n this.cachedToggleShowMore = this.cachedToggleShowMore.bind(this);\n\n this._refine = function (facetValue) {\n helper.toggleRefinement(hierarchicalFacetName, facetValue).search();\n }; // Bind createURL to this specific attribute\n\n\n function _createURL(facetValue) {\n return createURL(helper.state.toggleRefinement(hierarchicalFacetName, facetValue));\n }\n\n renderFn({\n items: [],\n createURL: _createURL,\n refine: this._refine,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams,\n isShowingMore: false,\n toggleShowMore: this.cachedToggleShowMore,\n canToggleShowMore: false\n }, true);\n },\n _prepareFacetValues: function _prepareFacetValues(facetValues, state) {\n var _this2 = this;\n\n return facetValues.slice(0, this.getLimit()).map(function (_ref3) {\n var label = _ref3.name,\n value = _ref3.path,\n subValue = _objectWithoutProperties(_ref3, [\"name\", \"path\"]);\n\n if (Array.isArray(subValue.data)) {\n subValue.data = _this2._prepareFacetValues(subValue.data, state);\n }\n\n return _objectSpread({}, subValue, {\n label: label,\n value: value\n });\n });\n },\n render: function render(renderOptions) {\n var results = renderOptions.results,\n state = renderOptions.state,\n createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance;\n var facetValues = results.getFacetValues(hierarchicalFacetName, {\n sortBy: sortBy\n }).data || [];\n var items = transformItems(this._prepareFacetValues(facetValues), state); // Bind createURL to this specific attribute\n\n function _createURL(facetValue) {\n return createURL(state.toggleRefinement(hierarchicalFacetName, facetValue));\n }\n\n var maxValuesPerFacetConfig = state.getQueryParameter('maxValuesPerFacet');\n var currentLimit = this.getLimit(); // 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\n var hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;\n this.toggleShowMore = this.createToggleShowMore(renderOptions);\n renderFn({\n items: items,\n refine: this._refine,\n createURL: _createURL,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams,\n isShowingMore: this.isShowingMore,\n toggleShowMore: this.cachedToggleShowMore,\n canToggleShowMore: showMore && (this.isShowingMore || !hasExhaustiveItems)\n }, false);\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n // unmount widget from DOM\n unmountFn(); // compute nextState for the search\n\n var nextState = state;\n\n if (state.isHierarchicalFacetRefined(hierarchicalFacetName)) {\n nextState = state.removeHierarchicalFacetRefinement(hierarchicalFacetName);\n }\n\n nextState = nextState.removeHierarchicalFacet(hierarchicalFacetName);\n\n if (nextState.maxValuesPerFacet === limit) {\n nextState.setQueryParameters('maxValuesPerFacet', undefined);\n }\n\n return nextState;\n },\n getWidgetState: function getWidgetState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);\n if (!path || path.length === 0) return uiState;\n\n if (uiState.hierarchicalMenu && isEqual(path, uiState.hierarchicalMenu[hierarchicalFacetName])) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n hierarchicalMenu: _objectSpread({}, uiState.hierarchicalMenu, _defineProperty({}, hierarchicalFacetName, path))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n\n if (uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName]) {\n return searchParameters.clearRefinements(hierarchicalFacetName).toggleRefinement(hierarchicalFacetName, uiState.hierarchicalMenu[hierarchicalFacetName].join(separator));\n } else {\n return searchParameters;\n }\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { uniq, find } from '../utils';\n\nvar getSelectedHits = function getSelectedHits(hits, selectedObjectIDs) {\n return selectedObjectIDs.map(function (objectID) {\n var hit = find(hits, function (h) {\n return h.objectID === objectID;\n });\n\n if (typeof hit === 'undefined') {\n throw new Error(\"Could not find objectID \\\"\".concat(objectID, \"\\\" passed to `clickedObjectIDsAfterSearch` in the returned hits. This is necessary to infer the absolute position and the query ID.\"));\n }\n\n return hit;\n });\n};\n\nvar getQueryID = function getQueryID(selectedHits) {\n var queryIDs = uniq(selectedHits.map(function (hit) {\n return hit.__queryID;\n }));\n\n if (queryIDs.length > 1) {\n throw new Error('Insights currently allows a single `queryID`. The `objectIDs` provided map to multiple `queryID`s.');\n }\n\n var queryID = queryIDs[0];\n\n if (typeof queryID !== 'string') {\n throw new Error('Could not infer `queryID`. Ensure InstantSearch is configured with `clickAnalytics: true`');\n }\n\n return queryID;\n};\n\nvar getPositions = function getPositions(selectedHits) {\n return selectedHits.map(function (hit) {\n return hit.__position;\n });\n};\n\nexport var inferPayload = function inferPayload(_ref) {\n var method = _ref.method,\n results = _ref.results,\n hits = _ref.hits,\n objectIDs = _ref.objectIDs;\n var index = results.index;\n var selectedHits = getSelectedHits(hits, objectIDs);\n var queryID = getQueryID(selectedHits);\n\n switch (method) {\n case 'clickedObjectIDsAfterSearch':\n {\n var positions = getPositions(selectedHits);\n return {\n index: index,\n queryID: queryID,\n objectIDs: objectIDs,\n positions: positions\n };\n }\n\n case 'convertedObjectIDsAfterSearch':\n return {\n index: index,\n queryID: queryID,\n objectIDs: objectIDs\n };\n\n default:\n throw new Error(\"Unsupported method passed to insights: \\\"\".concat(method, \"\\\".\"));\n }\n};\n\nvar wrapInsightsClient = function wrapInsightsClient(aa, results, hits) {\n return function (method, payload) {\n if (!Array.isArray(payload.objectIDs)) {\n throw new TypeError('Expected `objectIDs` to be an array.');\n }\n\n var inferredPayload = inferPayload({\n method: method,\n results: results,\n hits: hits,\n objectIDs: payload.objectIDs\n });\n aa(method, _objectSpread({}, inferredPayload, {}, payload));\n };\n};\n\nexport default function withInsights(connector) {\n var wrapRenderFn = function wrapRenderFn(renderFn) {\n return function (renderOptions, isFirstRender) {\n var results = renderOptions.results,\n hits = renderOptions.hits,\n instantSearchInstance = renderOptions.instantSearchInstance;\n\n if (results && hits && instantSearchInstance && instantSearchInstance.insightsClient\n /* providing the insightsClient is optional */\n ) {\n var insights = wrapInsightsClient(instantSearchInstance.insightsClient, results, hits);\n return renderFn(_objectSpread({}, renderOptions, {\n insights: insights\n }), isFirstRender);\n }\n\n return renderFn(renderOptions, isFirstRender);\n };\n };\n\n return function (renderFn, unmountFn) {\n return connector(wrapRenderFn(renderFn), unmountFn);\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var addAbsolutePosition = function addAbsolutePosition(hits, page, hitsPerPage) {\n return hits.map(function (hit, idx) {\n return _objectSpread({}, hit, {\n __position: hitsPerPage * page + idx + 1\n });\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var addQueryID = function addQueryID(hits, queryID) {\n if (!queryID) {\n return hits;\n }\n\n return hits.map(function (hit) {\n return _objectSpread({}, hit, {\n __queryID: queryID\n });\n });\n};","import escapeHits, { TAG_PLACEHOLDER } from '../../lib/escape-highlight';\nimport { checkRendering, createDocumentationMessageGenerator, addAbsolutePosition, addQueryID, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'hits',\n connector: true\n});\n/**\n * @typedef {Object} HitsRenderingOptions\n * @property {Object[]} hits The matched hits from Algolia API.\n * @property {Object} results The complete results response from Algolia API.\n * @property {Object} widgetParams All original widget options forwarded to the `renderFn`.\n */\n\n/**\n * @typedef {Object} CustomHitsWidgetOptions\n * @property {boolean} [escapeHTML = true] Whether to escape HTML tags from `hits[i]._highlightResult`.\n * @property {function(Object[]):Object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * **Hits** connector provides the logic to create custom widgets that will render the results retrieved from Algolia.\n * @type {Connector}\n * @param {function(HitsRenderingOptions, boolean)} renderFn Rendering function for the custom **Hits** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomHitsWidgetOptions)} Re-usable widget factory for a custom **Hits** widget.\n * @example\n * // custom `renderFn` to render the custom Hits widget\n * function renderFn(HitsRenderingOptions) {\n * HitsRenderingOptions.widgetParams.containerNode.html(\n * HitsRenderingOptions.hits.map(function(hit) {\n * return '
    ' + hit._highlightResult.name.value + '
    ';\n * })\n * );\n * }\n *\n * // connect `renderFn` to Hits logic\n * var customHits = instantsearch.connectors.connectHits(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customHits({\n * containerNode: $('#custom-hits-container'),\n * })\n * );\n */\n\nexport default function connectHits(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _widgetParams$escapeH = widgetParams.escapeHTML,\n escapeHTML = _widgetParams$escapeH === void 0 ? true : _widgetParams$escapeH,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n return {\n getConfiguration: function getConfiguration() {\n return escapeHTML ? TAG_PLACEHOLDER : undefined;\n },\n init: function init(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance;\n renderFn({\n hits: [],\n results: undefined,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref2) {\n var results = _ref2.results,\n instantSearchInstance = _ref2.instantSearchInstance;\n\n if (escapeHTML && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n\n var initialEscaped = results.hits.__escaped;\n results.hits = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);\n results.hits = addQueryID(results.hits, results.queryID);\n results.hits = transformItems(results.hits); // Make sure the escaped tag stays, even after mapping over the hits.\n // This prevents the hits from being double-escaped if there are multiple\n // hits widgets mounted on the page.\n\n results.hits.__escaped = initialEscaped;\n renderFn({\n hits: results.hits,\n results: results,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n }\n };\n };\n}","import { withInsights } from '../../lib/insights';\nimport connectHits from './connectHits';\nvar connectHitsWithInsights = withInsights(connectHits);\nexport default connectHitsWithInsights;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { checkRendering, warning, createDocumentationMessageGenerator, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'hits-per-page',\n connector: true\n});\n/**\n * @typedef {Object} HitsPerPageRenderingOptionsItem\n * @property {number} value Number of hits to display per page.\n * @property {string} label Label to display in the option.\n * @property {boolean} isRefined Indicates if it's the current refined value.\n */\n\n/**\n * @typedef {Object} HitsPerPageWidgetOptionsItem\n * @property {number} value Number of hits to display per page.\n * @property {string} label Label to display in the option.\n * @property {boolean} default The default hits per page on first search.\n */\n\n/**\n * @typedef {Object} HitsPerPageRenderingOptions\n * @property {HitsPerPageRenderingOptionsItem[]} items Array of objects defining the different values and labels.\n * @property {function(item.value)} createURL Creates the URL for a single item name in the list.\n * @property {function(number)} refine Sets the number of hits per page and trigger a search.\n * @property {boolean} hasNoResults `true` if the last search contains no result.\n * @property {Object} widgetParams Original `HitsPerPageWidgetOptions` forwarded to `renderFn`.\n */\n\n/**\n * @typedef {Object} HitsPerPageWidgetOptions\n * @property {HitsPerPageWidgetOptionsItem[]} items Array of objects defining the different values and labels.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * **HitsPerPage** connector provides the logic to create custom widget that will\n * allow a user to choose to display more or less results from Algolia.\n *\n * This connector provides a `refine()` function to change the hits per page configuration and trigger a new search.\n * @type {Connector}\n * @param {function(HitsPerPageRenderingOptions, boolean)} renderFn Rendering function for the custom **HitsPerPage** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(HitsPerPageWidgetOptions)} Re-usable widget factory for a custom **HitsPerPage** widget.\n * @example\n * // custom `renderFn` to render the custom HitsPerPage widget\n * function renderFn(HitsPerPageRenderingOptions, isFirstRendering) {\n * var containerNode = HitsPerPageRenderingOptions.widgetParams.containerNode\n * var items = HitsPerPageRenderingOptions.items\n * var refine = HitsPerPageRenderingOptions.refine\n *\n * if (isFirstRendering) {\n * var markup = '';\n * containerNode.append(markup);\n * }\n *\n * const itemsHTML = items.map(({value, label, isRefined}) => `\n * \n * ${label}\n * \n * `);\n *\n * containerNode\n * .find('select')\n * .html(itemsHTML);\n *\n * containerNode\n * .find('select')\n * .off('change')\n * .on('change', e => { refine(e.target.value); });\n * }\n *\n * // connect `renderFn` to HitsPerPage logic\n * var customHitsPerPage = instantsearch.connectors.connectHitsPerPage(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customHitsPerPage({\n * containerNode: $('#custom-hits-per-page-container'),\n * items: [\n * {value: 6, label: '6 per page', default: true},\n * {value: 12, label: '12 per page'},\n * {value: 24, label: '24 per page'},\n * ],\n * })\n * );\n */\n\nexport default function connectHitsPerPage(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var userItems = widgetParams.items,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n var items = userItems;\n\n if (!Array.isArray(items)) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n\n var defaultValues = items.filter(function (item) {\n return item.default;\n });\n\n if (defaultValues.length > 1) {\n throw new Error(withUsage('More than one default value is specified in `items`.'));\n }\n\n var defaultValue = find(userItems, function (item) {\n return item.default === true;\n });\n return {\n getConfiguration: function getConfiguration() {\n return defaultValues.length > 0 ? {\n hitsPerPage: defaultValues[0].value\n } : {};\n },\n init: function init(_ref) {\n var helper = _ref.helper,\n createURL = _ref.createURL,\n state = _ref.state,\n instantSearchInstance = _ref.instantSearchInstance;\n var isCurrentInOptions = items.some(function (item) {\n return Number(state.hitsPerPage) === Number(item.value);\n });\n\n if (!isCurrentInOptions) {\n warning(state.hitsPerPage !== undefined, \"\\n`hitsPerPage` is not defined.\\nThe option `hitsPerPage` needs to be set using the `configure` widget.\\n\\nLearn more: https://community.algolia.com/instantsearch.js/v2/widgets/configure.html\\n \");\n 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.\"));\n items = [{\n value: '',\n label: ''\n }].concat(_toConsumableArray(items));\n }\n\n this.setHitsPerPage = function (value) {\n return !value && value !== 0 ? helper.setQueryParameter('hitsPerPage', undefined).search() : helper.setQueryParameter('hitsPerPage', value).search();\n };\n\n this.createURL = function (helperState) {\n return function (value) {\n return createURL(helperState.setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value));\n };\n };\n\n renderFn({\n items: transformItems(this._normalizeItems(state)),\n refine: this.setHitsPerPage,\n createURL: this.createURL(helper.state),\n hasNoResults: true,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, true);\n },\n render: function render(_ref2) {\n var state = _ref2.state,\n results = _ref2.results,\n instantSearchInstance = _ref2.instantSearchInstance;\n var hasNoResults = results.nbHits === 0;\n renderFn({\n items: transformItems(this._normalizeItems(state)),\n refine: this.setHitsPerPage,\n createURL: this.createURL(state),\n hasNoResults: hasNoResults,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, false);\n },\n _normalizeItems: function _normalizeItems(_ref3) {\n var hitsPerPage = _ref3.hitsPerPage;\n return items.map(function (item) {\n return _objectSpread({}, item, {\n isRefined: Number(item.value) === Number(hitsPerPage)\n });\n });\n },\n dispose: function dispose() {\n unmountFn();\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var hitsPerPage = searchParameters.hitsPerPage;\n\n if (defaultValue && hitsPerPage === defaultValue.value || hitsPerPage === undefined || uiState.hitsPerPage === hitsPerPage) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n hitsPerPage: hitsPerPage\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n var hitsPerPage = uiState.hitsPerPage;\n if (hitsPerPage) return searchParameters.setQueryParameter('hitsPerPage', uiState.hitsPerPage);\n\n if (defaultValue) {\n return searchParameters.setQueryParameter('hitsPerPage', defaultValue.value);\n }\n\n return searchParameters.setQueryParameter('hitsPerPage', undefined);\n }\n };\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport escapeHits, { TAG_PLACEHOLDER } from '../../lib/escape-highlight';\nimport { checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'infinite-hits',\n connector: true\n});\n\nvar connectInfiniteHits = 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 _ref = widgetParams || {},\n _ref$escapeHTML = _ref.escapeHTML,\n escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems,\n _ref$showPrevious = _ref.showPrevious,\n hasShowPrevious = _ref$showPrevious === void 0 ? false : _ref$showPrevious;\n\n var hitsCache = [];\n var firstReceivedPage = Infinity;\n var lastReceivedPage = -1;\n var prevState;\n var showPrevious;\n var showMore;\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({}, helper.state, {\n page: firstReceivedPage - 1\n })).search();\n };\n };\n\n var getShowMore = function getShowMore(helper) {\n return function () {\n helper.setPage(lastReceivedPage + 1).search();\n };\n };\n\n return {\n getConfiguration: function getConfiguration() {\n return escapeHTML ? TAG_PLACEHOLDER : {};\n },\n init: function init(_ref2) {\n var instantSearchInstance = _ref2.instantSearchInstance,\n helper = _ref2.helper;\n showPrevious = getShowPrevious(helper);\n showMore = getShowMore(helper);\n firstReceivedPage = helper.state.page;\n lastReceivedPage = helper.state.page;\n renderFn({\n hits: hitsCache,\n results: undefined,\n showPrevious: showPrevious,\n showMore: showMore,\n isFirstPage: firstReceivedPage === 0,\n isLastPage: true,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref3) {\n var results = _ref3.results,\n state = _ref3.state,\n instantSearchInstance = _ref3.instantSearchInstance;\n\n // Reset cache and received pages if anything changes in the\n // search state, except for the page.\n //\n // We're doing this to \"reset\" the widget if a refinement or the\n // query changes between renders, but we want to keep it as is\n // if we only change pages.\n var page = state.page,\n currentState = _objectWithoutProperties(state, [\"page\"]);\n\n if (!isEqual(currentState, prevState)) {\n hitsCache = [];\n firstReceivedPage = page;\n lastReceivedPage = page;\n prevState = currentState;\n }\n\n if (escapeHTML && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n\n var initialEscaped = results.hits.__escaped;\n results.hits = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);\n results.hits = addQueryID(results.hits, results.queryID);\n results.hits = transformItems(results.hits); // Make sure the escaped tag stays after mapping over the hits.\n // This prevents the hits from being double-escaped if there are multiple\n // hits widgets mounted on the page.\n\n results.hits.__escaped = initialEscaped;\n\n if (lastReceivedPage < page || !hitsCache.length) {\n hitsCache = [].concat(_toConsumableArray(hitsCache), _toConsumableArray(results.hits));\n lastReceivedPage = page;\n } else if (firstReceivedPage > page) {\n hitsCache = [].concat(_toConsumableArray(results.hits), _toConsumableArray(hitsCache));\n firstReceivedPage = page;\n }\n\n var isFirstPage = firstReceivedPage === 0;\n var isLastPage = results.nbPages <= results.page + 1;\n renderFn({\n hits: hitsCache,\n results: results,\n showPrevious: showPrevious,\n showMore: showMore,\n isFirstPage: isFirstPage,\n isLastPage: isLastPage,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var page = searchParameters.page;\n\n if (!hasShowPrevious || page === 0 || page + 1 === uiState.page) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n\n if (!hasShowPrevious) {\n return searchParameters;\n }\n\n var uiPage = uiState.page;\n\n if (uiPage) {\n return searchParameters.setQueryParameter('page', uiPage - 1);\n }\n\n return searchParameters.setQueryParameter('page', 0);\n }\n };\n };\n};\n\nexport default connectInfiniteHits;","import { withInsights } from '../../lib/insights';\nimport connectInfiniteHits from './connectInfiniteHits';\nvar connectInfiniteHitsWithInsights = withInsights(connectInfiniteHits);\nexport default connectInfiniteHitsWithInsights;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'menu',\n connector: true\n});\n/**\n * @typedef {Object} MenuItem\n * @property {string} value The value of the menu item.\n * @property {string} label Human-readable value of the menu item.\n * @property {number} count Number of results matched after refinement is applied.\n * @property {boolean} isRefined Indicates if the refinement is applied.\n */\n\n/**\n * @typedef {Object} CustomMenuWidgetOptions\n * @property {string} attribute Name of the attribute for faceting (eg. \"free_shipping\").\n * @property {number} [limit = 10] How many facets values to retrieve.\n * @property {boolean} [showMore = false] Whether to display a button that expands the number of items.\n * @property {number} [showMoreLimit = 20] How many facets values to retrieve when `toggleShowMore` is called, this value is meant to be greater than `limit` option.\n * @property {string[]|function} [sortBy = ['isRefined', 'name:asc']] How to sort refinements. Possible values: `count|isRefined|name:asc|name:desc`.\n *\n * You can also use a sort function that behaves like the standard Javascript [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Syntax).\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * @typedef {Object} MenuRenderingOptions\n * @property {MenuItem[]} items The elements that can be refined for the current search results.\n * @property {function(item.value): string} createURL Creates the URL for a single item name in the list.\n * @property {function(item.value)} refine Filter the search to item value.\n * @property {boolean} canRefine True if refinement can be applied.\n * @property {Object} widgetParams All original `CustomMenuWidgetOptions` forwarded to the `renderFn`.\n * @property {boolean} isShowingMore True if the menu is displaying all the menu items.\n * @property {function} toggleShowMore Toggles the number of values displayed between `limit` and `showMore.limit`.\n * @property {boolean} canToggleShowMore `true` if the toggleShowMore button can be activated (enough items to display more or\n * already displaying more than `limit` items)\n */\n\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 * @type {Connector}\n * @param {function(MenuRenderingOptions, boolean)} renderFn Rendering function for the custom **Menu** widget. widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomMenuWidgetOptions)} Re-usable widget factory for a custom **Menu** widget.\n * @example\n * // custom `renderFn` to render the custom Menu widget\n * function renderFn(MenuRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * MenuRenderingOptions.widgetParams.containerNode\n * .html(' ' +\n * item.label + '';\n * });\n *\n * NumericMenuRenderingOptions.widgetParams.containerNode.find('ul').html(list);\n * NumericMenuRenderingOptions.widgetParams.containerNode\n * .find('li[data-refine-value]')\n * .each(function() {\n * $(this).on('click', function(event) {\n * event.preventDefault();\n * event.stopPropagation();\n * NumericMenuRenderingOptions.refine($(this).data('refine-value'));\n * });\n * });\n * }\n *\n * // connect `renderFn` to NumericMenu logic\n * var customNumericMenu = instantsearch.connectors.connectNumericMenu(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customNumericMenu({\n * containerNode: $('#custom-numeric-menu-container'),\n * attribute: 'price',\n * items: [\n * {name: 'All'},\n * {end: 4, name: 'less than 4'},\n * {start: 4, end: 4, name: '4'},\n * {start: 5, end: 10, name: 'between 5 and 10'},\n * {start: 10, name: 'more than 10'},\n * ],\n * })\n * );\n */\n\nexport default function connectNumericMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attribute = widgetParams.attribute,\n items = widgetParams.items,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (x) {\n return x;\n } : _widgetParams$transfo;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n if (!items) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n createURL = _ref.createURL,\n instantSearchInstance = _ref.instantSearchInstance;\n\n this._refine = function (facetValue) {\n var refinedState = refine(helper.state, attribute, items, facetValue);\n helper.setState(refinedState).search();\n };\n\n this._createURL = function (state) {\n return function (facetValue) {\n return createURL(refine(state, attribute, items, facetValue));\n };\n };\n\n this._prepareItems = function (state) {\n return items.map(function (_ref2) {\n var start = _ref2.start,\n end = _ref2.end,\n label = _ref2.label;\n return {\n label: label,\n value: window.encodeURI(JSON.stringify({\n start: start,\n end: end\n })),\n isRefined: isRefined(state, attribute, {\n start: start,\n end: end\n })\n };\n });\n };\n\n renderFn({\n createURL: this._createURL(helper.state),\n items: transformItems(this._prepareItems(helper.state)),\n hasNoResults: true,\n refine: this._refine,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref3) {\n var results = _ref3.results,\n state = _ref3.state,\n instantSearchInstance = _ref3.instantSearchInstance;\n renderFn({\n createURL: this._createURL(state),\n items: transformItems(this._prepareItems(state)),\n hasNoResults: results.nbHits === 0,\n refine: this._refine,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n return state.clearRefinements(attribute);\n },\n getWidgetState: function getWidgetState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var currentRefinements = searchParameters.getNumericRefinements(attribute);\n var equal = currentRefinements['='] && currentRefinements['='][0];\n\n if (equal || equal === 0) {\n return _objectSpread({}, uiState, {\n numericMenu: _objectSpread({}, uiState.numericMenu, _defineProperty({}, attribute, \"\".concat(currentRefinements['='])))\n });\n }\n\n var lowerBound = currentRefinements['>='] && currentRefinements['>='][0] || '';\n var upperBound = currentRefinements['<='] && currentRefinements['<='][0] || '';\n\n if (lowerBound !== '' || upperBound !== '') {\n if (uiState.numericMenu && uiState.numericMenu[attribute] === \"\".concat(lowerBound, \":\").concat(upperBound)) return uiState;\n return _objectSpread({}, uiState, {\n numericMenu: _objectSpread({}, uiState.numericMenu, _defineProperty({}, attribute, \"\".concat(lowerBound, \":\").concat(upperBound)))\n });\n }\n\n return uiState;\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var clearedParams = searchParameters.clearRefinements(attribute);\n var value = uiState.numericMenu && uiState.numericMenu[attribute];\n\n if (!value) {\n return clearedParams;\n }\n\n var valueAsEqual = value.indexOf(':') === -1 && value;\n\n if (valueAsEqual) {\n return clearedParams.addNumericRefinement(attribute, '=', valueAsEqual);\n }\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\n if (isFiniteNumber(lowerBound)) {\n clearedParams = clearedParams.addNumericRefinement(attribute, '>=', lowerBound);\n }\n\n if (isFiniteNumber(upperBound)) {\n clearedParams = clearedParams.addNumericRefinement(attribute, '<=', upperBound);\n }\n\n return clearedParams;\n }\n };\n };\n}\n\nfunction isRefined(state, attribute, option) {\n var currentRefinements = state.getNumericRefinements(attribute);\n\n if (option.start !== undefined && option.end !== undefined) {\n if (option.start === option.end) {\n return hasNumericRefinement(currentRefinements, '=', option.start);\n }\n }\n\n if (option.start !== undefined) {\n return hasNumericRefinement(currentRefinements, '>=', option.start);\n }\n\n if (option.end !== undefined) {\n return hasNumericRefinement(currentRefinements, '<=', option.end);\n }\n\n if (option.start === undefined && option.end === undefined) {\n return Object.keys(currentRefinements).length === 0;\n }\n\n return undefined;\n}\n\nfunction refine(state, attribute, items, facetValue) {\n var resolvedState = state;\n var refinedOption = JSON.parse(window.decodeURI(facetValue));\n var currentRefinements = resolvedState.getNumericRefinements(attribute);\n\n if (refinedOption.start === undefined && refinedOption.end === undefined) {\n return resolvedState.clearRefinements(attribute);\n }\n\n if (!isRefined(resolvedState, attribute, refinedOption)) {\n resolvedState = resolvedState.clearRefinements(attribute);\n }\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\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\n return resolvedState;\n }\n }\n\n if (refinedOption.start !== undefined) {\n if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);\n } else {\n resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);\n }\n }\n\n if (refinedOption.end !== undefined) {\n if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {\n resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);\n } else {\n resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);\n }\n }\n\n resolvedState.page = 0;\n return resolvedState;\n}\n\nfunction hasNumericRefinement(currentRefinements, operator, value) {\n var hasOperatorRefinements = currentRefinements[operator] !== undefined;\n return hasOperatorRefinements && currentRefinements[operator].includes(value);\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction 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; // 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\n var arrayLength = Math.round((end - start) / limitStep);\n return _toConsumableArray(Array(arrayLength)).map(function (_, current) {\n return (start + current) * limitStep;\n });\n}\n\nexport default range;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { range } from '../../lib/utils';\n\nvar Paginator =\n/*#__PURE__*/\nfunction () {\n function Paginator(params) {\n _classCallCheck(this, Paginator);\n\n this.currentPage = params.currentPage;\n this.total = params.total;\n this.padding = params.padding;\n }\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\n if (totalDisplayedPages === total) {\n return range({\n end: total\n });\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\n if (current >= total - padding) {\n return totalDisplayedPages - (total - current);\n }\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\n return Paginator;\n}();\n\nexport default Paginator;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nimport Paginator from './Paginator';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'pagination',\n connector: true\n});\n/**\n * @typedef {Object} CustomPaginationWidgetOptions\n * @property {number} [totalPages] The total number of pages to browse.\n * @property {number} [padding = 3] The padding of pages to show around the current page\n */\n\n/**\n * @typedef {Object} PaginationRenderingOptions\n * @property {function(page): string} createURL Creates URLs for the next state, the number is the page to generate the URL for.\n * @property {number} currentRefinement The number of the page currently displayed.\n * @property {number} nbHits The number of hits computed for the last query (can be approximated).\n * @property {number} nbPages The number of pages for the result set.\n * @property {number[]} pages The actual pages relevant to the current situation and padding\n * @property {boolean} isFirstPage true if the current page is also the first page\n * @property {boolean} isLastPage true if the current page is also the last page\n * @property {function(page)} refine Sets the current page and trigger a search.\n * @property {Object} widgetParams All original `CustomPaginationWidgetOptions` forwarded to the `renderFn`.\n */\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 *\n * @type {Connector}\n * @param {function(PaginationRenderingOptions, boolean)} renderFn Rendering function for the custom **Pagination** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomPaginationWidgetOptions)} Re-usable widget factory for a custom **Pagination** widget.\n * @example\n * // custom `renderFn` to render the custom Pagination widget\n * function renderFn(PaginationRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * PaginationRenderingOptions.widgetParams.containerNode.html('');\n * }\n *\n * // remove event listeners before replacing markup\n * PaginationRenderingOptions.widgetParams.containerNode\n * .find('a[data-page]')\n * .each(function() { $(this).off('click'); });\n *\n * var pages = PaginationRenderingOptions.pages\n * .map(function(page) {\n * return '
  • ' +\n * '' +\n * (parseInt(page) + 1) + '
  • ';\n * });\n *\n * PaginationRenderingOptions.widgetParams.containerNode\n * .find('ul')\n * .html(pages);\n *\n * PaginationRenderingOptions.widgetParams.containerNode\n * .find('a[data-page]')\n * .each(function() {\n * $(this).on('click', function(event) {\n * event.preventDefault();\n * PaginationRenderingOptions.refine($(this).data('page'));\n * });\n * });\n * }\n *\n * // connect `renderFn` to Pagination logic\n * var customPagination = instantsearch.connectors.connectPagination(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customPagination({\n * containerNode: $('#custom-pagination-container'),\n * totalPages: 20,\n * padding: 4,\n * })\n * );\n */\n\nexport default function connectPagination(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var totalPages = widgetParams.totalPages,\n _widgetParams$padding = widgetParams.padding,\n padding = _widgetParams$padding === void 0 ? 3 : _widgetParams$padding;\n var pager = new Paginator({\n currentPage: 0,\n total: 0,\n padding: padding\n });\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n createURL = _ref.createURL,\n instantSearchInstance = _ref.instantSearchInstance;\n\n this.refine = function (page) {\n helper.setPage(page);\n helper.search();\n };\n\n this.createURL = function (state) {\n return function (page) {\n return createURL(state.setPage(page));\n };\n };\n\n renderFn({\n createURL: this.createURL(helper.state),\n currentRefinement: helper.getPage() || 0,\n nbHits: 0,\n nbPages: 0,\n pages: [],\n isFirstPage: true,\n isLastPage: true,\n refine: this.refine,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, true);\n },\n getMaxPage: function getMaxPage(_ref2) {\n var nbPages = _ref2.nbPages;\n return totalPages !== undefined ? Math.min(totalPages, nbPages) : nbPages;\n },\n render: function render(_ref3) {\n var results = _ref3.results,\n state = _ref3.state,\n instantSearchInstance = _ref3.instantSearchInstance;\n var nbPages = this.getMaxPage(results);\n pager.currentPage = state.page;\n pager.total = nbPages;\n renderFn({\n createURL: this.createURL(state),\n currentRefinement: state.page,\n refine: this.refine,\n nbHits: results.nbHits,\n nbPages: nbPages,\n pages: pager.pages(),\n isFirstPage: pager.isFirstPage(),\n isLastPage: pager.isLastPage(),\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var page = searchParameters.page;\n if (page === 0 || page + 1 === uiState.page) return uiState;\n return _objectSpread({}, uiState, {\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n var uiPage = uiState.page;\n if (uiPage) return searchParameters.setQueryParameter('page', uiState.page - 1);\n return searchParameters.setQueryParameter('page', 0);\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { checkRendering, createDocumentationMessageGenerator, warning, getRefinements, isEqual, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'query-rules',\n connector: true\n});\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} // 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\n\n\nfunction escapeRuleContext(ruleName) {\n return ruleName.replace(/[^a-z0-9-_]+/gi, '_');\n}\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).filter(function (refinement) {\n return refinement.attributeName === 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}\n\nfunction applyRuleContexts(sharedHelperState) {\n var helper = this.helper,\n initialRuleContexts = this.initialRuleContexts,\n trackedFilters = this.trackedFilters,\n transformRuleContexts = this.transformRuleContexts;\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 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\");\n var ruleContexts = transformRuleContexts(nextRuleContexts).slice(0, 10);\n\n if (!isEqual(previousRuleContexts, ruleContexts)) {\n helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread({}, sharedHelperState, {\n ruleContexts: ruleContexts\n }));\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\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; // 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\n var initialRuleContexts = [];\n var onHelperChange;\n return {\n init: function init(_ref3) {\n var helper = _ref3.helper,\n state = _ref3.state,\n instantSearchInstance = _ref3.instantSearchInstance;\n initialRuleContexts = state.ruleContexts || [];\n onHelperChange = applyRuleContexts.bind({\n helper: helper,\n initialRuleContexts: initialRuleContexts,\n trackedFilters: trackedFilters,\n transformRuleContexts: transformRuleContexts\n });\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(state);\n } // We track every change in the helper to override its state and add\n // any `ruleContexts` needed based on the `trackedFilters`.\n\n\n helper.on('change', onHelperChange);\n }\n\n render({\n items: [],\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function (_render) {\n function render(_x) {\n return _render.apply(this, arguments);\n }\n\n render.toString = function () {\n return _render.toString();\n };\n\n return render;\n }(function (_ref4) {\n var results = _ref4.results,\n instantSearchInstance = _ref4.instantSearchInstance;\n var _results$userData = results.userData,\n userData = _results$userData === void 0 ? [] : _results$userData;\n var items = transformItems(userData);\n render({\n items: items,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n }),\n dispose: function dispose(_ref5) {\n var helper = _ref5.helper,\n state = _ref5.state;\n unmount();\n\n if (hasTrackedFilters) {\n helper.removeListener('change', onHelperChange);\n return state.setQueryParameter('ruleContexts', initialRuleContexts);\n }\n\n return state;\n }\n };\n };\n};\n\nexport default connectQueryRules;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'range-input',\n connector: true\n}, {\n name: 'range-slider',\n connector: true\n});\n/**\n * @typedef {Object} CustomRangeWidgetOptions\n * @property {string} attribute Name of the attribute for faceting.\n * @property {number} [min = undefined] Minimal range value, default to automatically computed from the result set.\n * @property {number} [max = undefined] Maximal range value, default to automatically computed from the result set.\n * @property {number} [precision = 2] Number of digits after decimal point to use.\n */\n\n/**\n * @typedef {Object} RangeRenderingOptions\n * @property {function(Array)} refine Sets a range to filter the results on. Both values\n * are optional, and will default to the higher and lower bounds. You can use `undefined` to remove a\n * previously set bound or to set an infinite bound.\n * @property {{min: number, max: number}} range Results bounds without the current range filter.\n * @property {Array} start Current numeric bounds of the search.\n * @property {{from: function, to: function}} formatter Transform for the rendering `from` and/or `to` values.\n * Both functions take a `number` as input and should output a `string`.\n * @property {Object} widgetParams All original `CustomRangeWidgetOptions` forwarded to the `renderFn`.\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 * @type {Connector}\n * @param {function(RangeRenderingOptions, boolean)} renderFn Rendering function for the custom **Range** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomRangeWidgetOptions)} Re-usable widget factory for a custom **Range** widget.\n */\n\nexport default function connectRange(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attribute = widgetParams.attribute,\n minBound = widgetParams.min,\n maxBound = widgetParams.max,\n _widgetParams$precisi = widgetParams.precision,\n precision = _widgetParams$precisi === void 0 ? 2 : _widgetParams$precisi;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n var hasMinBound = isFiniteNumber(minBound);\n var hasMaxBound = isFiniteNumber(maxBound);\n\n var formatToNumber = function formatToNumber(v) {\n return Number(Number(v).toFixed(precision));\n };\n\n var rangeFormatter = {\n from: function from(v) {\n return v;\n },\n to: function to(v) {\n return formatToNumber(v).toLocaleString();\n }\n };\n return {\n _getCurrentRange: function _getCurrentRange(stats) {\n var pow = Math.pow(10, precision);\n var min;\n\n if (hasMinBound) {\n min = minBound;\n } else if (isFiniteNumber(stats.min)) {\n min = stats.min;\n } else {\n min = 0;\n }\n\n var max;\n\n if (hasMaxBound) {\n max = maxBound;\n } else if (isFiniteNumber(stats.max)) {\n max = stats.max;\n } else {\n max = 0;\n }\n\n return {\n min: Math.floor(min * pow) / pow,\n max: Math.ceil(max * pow) / pow\n };\n },\n _getCurrentRefinement: function _getCurrentRefinement(helper) {\n var _ref = helper.getNumericRefinement(attribute, '>=') || [],\n _ref2 = _slicedToArray(_ref, 1),\n minValue = _ref2[0];\n\n var _ref3 = helper.getNumericRefinement(attribute, '<=') || [],\n _ref4 = _slicedToArray(_ref3, 1),\n maxValue = _ref4[0];\n\n var min = isFiniteNumber(minValue) ? minValue : -Infinity;\n var max = isFiniteNumber(maxValue) ? maxValue : Infinity;\n return [min, max];\n },\n _refine: function _refine(helper, currentRange) {\n // eslint-disable-next-line complexity\n return function () {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [],\n _ref6 = _slicedToArray(_ref5, 2),\n nextMin = _ref6[0],\n nextMax = _ref6[1];\n\n var currentRangeMin = currentRange.min,\n currentRangeMax = currentRange.max;\n\n var _ref7 = helper.getNumericRefinement(attribute, '>=') || [],\n _ref8 = _slicedToArray(_ref7, 1),\n min = _ref8[0];\n\n var _ref9 = helper.getNumericRefinement(attribute, '<=') || [],\n _ref10 = _slicedToArray(_ref9, 1),\n max = _ref10[0];\n\n var isResetMin = nextMin === undefined || nextMin === '';\n var isResetMax = nextMax === undefined || nextMax === '';\n var nextMinAsNumber = !isResetMin ? parseFloat(nextMin) : undefined;\n var nextMaxAsNumber = !isResetMax ? parseFloat(nextMax) : undefined;\n var newNextMin;\n\n if (!hasMinBound && currentRangeMin === nextMinAsNumber) {\n newNextMin = undefined;\n } else if (hasMinBound && isResetMin) {\n newNextMin = minBound;\n } else {\n newNextMin = nextMinAsNumber;\n }\n\n var newNextMax;\n\n if (!hasMaxBound && currentRangeMax === nextMaxAsNumber) {\n newNextMax = undefined;\n } else if (hasMaxBound && isResetMax) {\n newNextMax = maxBound;\n } else {\n newNextMax = nextMaxAsNumber;\n }\n\n var isResetNewNextMin = newNextMin === undefined;\n var isValidNewNextMin = isFiniteNumber(newNextMin);\n var isValidMinCurrentRange = isFiniteNumber(currentRangeMin);\n var isGreaterThanCurrentRange = isValidMinCurrentRange && currentRangeMin <= newNextMin;\n var isMinValid = isResetNewNextMin || isValidNewNextMin && (!isValidMinCurrentRange || isGreaterThanCurrentRange);\n var isResetNewNextMax = newNextMax === undefined;\n var isValidNewNextMax = isFiniteNumber(newNextMax);\n var isValidMaxCurrentRange = isFiniteNumber(currentRangeMax);\n var isLowerThanRange = isValidMaxCurrentRange && currentRangeMax >= newNextMax;\n var isMaxValid = isResetNewNextMax || isValidNewNextMax && (!isValidMaxCurrentRange || isLowerThanRange);\n var hasMinChange = min !== newNextMin;\n var hasMaxChange = max !== newNextMax;\n\n if ((hasMinChange || hasMaxChange) && isMinValid && isMaxValid) {\n helper.clearRefinements(attribute);\n\n if (isValidNewNextMin) {\n helper.addNumericRefinement(attribute, '>=', formatToNumber(newNextMin));\n }\n\n if (isValidNewNextMax) {\n helper.addNumericRefinement(attribute, '<=', formatToNumber(newNextMax));\n }\n\n helper.search();\n }\n };\n },\n getConfiguration: function getConfiguration(currentConfiguration) {\n var configuration = {\n disjunctiveFacets: [attribute]\n };\n var isBoundsDefined = hasMinBound || hasMaxBound;\n var boundsAlreadyDefined = currentConfiguration && currentConfiguration.numericRefinements && currentConfiguration.numericRefinements[attribute] !== undefined;\n var isMinBoundValid = isFiniteNumber(minBound);\n var isMaxBoundValid = isFiniteNumber(maxBound);\n var isAbleToRefine = isMinBoundValid && isMaxBoundValid ? minBound < maxBound : isMinBoundValid || isMaxBoundValid;\n\n if (isBoundsDefined && !boundsAlreadyDefined && isAbleToRefine) {\n configuration.numericRefinements = _defineProperty({}, attribute, {});\n\n if (hasMinBound) {\n configuration.numericRefinements[attribute]['>='] = [minBound];\n }\n\n if (hasMaxBound) {\n configuration.numericRefinements[attribute]['<='] = [maxBound];\n }\n }\n\n return configuration;\n },\n init: function init(_ref11) {\n var helper = _ref11.helper,\n instantSearchInstance = _ref11.instantSearchInstance;\n var stats = {};\n\n var currentRange = this._getCurrentRange(stats);\n\n var start = this._getCurrentRefinement(helper);\n\n renderFn({\n // On first render pass an empty range\n // to be able to bypass the validation\n // related to it\n refine: this._refine(helper, {}),\n format: rangeFormatter,\n range: currentRange,\n widgetParams: _objectSpread({}, widgetParams, {\n precision: precision\n }),\n start: start,\n instantSearchInstance: instantSearchInstance\n }, true);\n },\n render: function render(_ref12) {\n var results = _ref12.results,\n helper = _ref12.helper,\n instantSearchInstance = _ref12.instantSearchInstance;\n var facetsFromResults = results.disjunctiveFacets || [];\n var facet = find(facetsFromResults, function (facetResult) {\n return facetResult.name === attribute;\n });\n var stats = facet && facet.stats || {};\n\n var currentRange = this._getCurrentRange(stats);\n\n var start = this._getCurrentRefinement(helper);\n\n renderFn({\n refine: this._refine(helper, currentRange),\n format: rangeFormatter,\n range: currentRange,\n widgetParams: _objectSpread({}, widgetParams, {\n precision: precision\n }),\n start: start,\n instantSearchInstance: instantSearchInstance\n }, false);\n },\n dispose: function dispose(_ref13) {\n var state = _ref13.state;\n unmountFn();\n var nextState = state.removeNumericRefinement(attribute).removeDisjunctiveFacet(attribute);\n return nextState;\n },\n getWidgetState: function getWidgetState(uiState, _ref14) {\n var searchParameters = _ref14.searchParameters;\n\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\n if (min === '' && max === '' || uiState && uiState.range && uiState.range[attribute] === \"\".concat(min, \":\").concat(max)) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n range: _objectSpread({}, uiState.range, _defineProperty({}, attribute, \"\".concat(min, \":\").concat(max)))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref15) {\n var uiState = _ref15.uiState;\n var value = uiState && uiState.range && uiState.range[attribute];\n\n if (!value || value.indexOf(':') === -1) {\n return searchParameters;\n }\n\n var _searchParameters$get4 = searchParameters.getNumericRefinements(attribute),\n _searchParameters$get5 = _searchParameters$get4['>='],\n previousMin = _searchParameters$get5 === void 0 ? [NaN] : _searchParameters$get5,\n _searchParameters$get6 = _searchParameters$get4['<='],\n previousMax = _searchParameters$get6 === void 0 ? [NaN] : _searchParameters$get6;\n\n var clearedParams = searchParameters.clearRefinements(attribute);\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\n if (previousMin.includes(lowerBound) && previousMax.includes(upperBound)) {\n return searchParameters;\n }\n\n if (isFiniteNumber(lowerBound)) {\n clearedParams = clearedParams.addNumericRefinement(attribute, '>=', lowerBound);\n }\n\n if (isFiniteNumber(upperBound)) {\n clearedParams = clearedParams.addNumericRefinement(attribute, '<=', upperBound);\n }\n\n return clearedParams;\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'rating-menu',\n connector: true\n});\n/**\n * @typedef {Object} StarRatingItems\n * @property {string} name Name corresponding to the number of stars.\n * @property {string} value Number of stars as string.\n * @property {number} count Count of matched results corresponding to the number of stars.\n * @property {boolean[]} stars Array of length of maximum rating value with stars to display or not.\n * @property {boolean} isRefined Indicates if star rating refinement is applied.\n */\n\n/**\n * @typedef {Object} CustomStarRatingWidgetOptions\n * @property {string} attribute Name of the attribute for faceting (eg. \"free_shipping\").\n * @property {number} [max = 5] The maximum rating value.\n */\n\n/**\n * @typedef {Object} StarRatingRenderingOptions\n * @property {StarRatingItems[]} items Possible star ratings the user can apply.\n * @property {function(string): string} createURL Creates an URL for the next\n * state (takes the item value as parameter). Takes the value of an item as parameter.\n * @property {function(string)} refine Selects a rating to filter the results\n * (takes the filter value as parameter). Takes the value of an item as parameter.\n * @property {boolean} hasNoResults `true` if the last search contains no result.\n * @property {Object} widgetParams All original `CustomStarRatingWidgetOptions` forwarded to the `renderFn`.\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 * @type {Connector}\n * @param {function(StarRatingRenderingOptions, boolean)} renderFn Rendering function for the custom **StarRating** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomStarRatingWidgetOptions)} Re-usable widget factory for a custom **StarRating** widget.\n * @example\n * // custom `renderFn` to render the custom StarRating widget\n * function renderFn(StarRatingRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * StarRatingRenderingOptions.widgetParams.containerNode.html('
      ');\n * }\n *\n * StarRatingRenderingOptions.widgetParams.containerNode\n * .find('li[data-refine-value]')\n * .each(function() { $(this).off('click'); });\n *\n * var listHTML = StarRatingRenderingOptions.items.map(function(item) {\n * return '
    • ' +\n * '' +\n * item.stars.map(function(star) { return star === false ? '☆' : '★'; }).join(' ') +\n * '& up (' + item.count + ')' +\n * '
    • ';\n * });\n *\n * StarRatingRenderingOptions.widgetParams.containerNode\n * .find('ul')\n * .html(listHTML);\n *\n * StarRatingRenderingOptions.widgetParams.containerNode\n * .find('li[data-refine-value]')\n * .each(function() {\n * $(this).on('click', function(event) {\n * event.preventDefault();\n * event.stopPropagation();\n *\n * StarRatingRenderingOptions.refine($(this).data('refine-value'));\n * });\n * });\n * }\n *\n * // connect `renderFn` to StarRating logic\n * var customStarRating = instantsearch.connectors.connectRatingMenu(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customStarRating({\n * containerNode: $('#custom-rating-menu-container'),\n * attribute: 'rating',\n * max: 5,\n * })\n * );\n */\n\nexport default function connectRatingMenu(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attribute = widgetParams.attribute,\n _widgetParams$max = widgetParams.max,\n max = _widgetParams$max === void 0 ? 5 : _widgetParams$max;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n return {\n getConfiguration: function getConfiguration() {\n return {\n disjunctiveFacets: [attribute]\n };\n },\n init: function init(_ref) {\n var helper = _ref.helper,\n createURL = _ref.createURL,\n instantSearchInstance = _ref.instantSearchInstance;\n this._toggleRefinement = this._toggleRefinement.bind(this, helper);\n\n this._createURL = function (state) {\n return function (facetValue) {\n return createURL(state.toggleRefinement(attribute, facetValue));\n };\n };\n\n renderFn({\n instantSearchInstance: instantSearchInstance,\n items: [],\n hasNoResults: true,\n refine: this._toggleRefinement,\n createURL: this._createURL(helper.state),\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref2) {\n var helper = _ref2.helper,\n results = _ref2.results,\n state = _ref2.state,\n instantSearchInstance = _ref2.instantSearchInstance;\n var facetValues = [];\n var allValues = {};\n\n for (var v = max; v >= 0; --v) {\n allValues[v] = 0;\n }\n\n results.getFacetValues(attribute).forEach(function (facet) {\n var val = Math.round(facet.name);\n\n if (!val || val > max) {\n return;\n }\n\n for (var _v = val; _v >= 1; --_v) {\n allValues[_v] += facet.count;\n }\n });\n\n var refinedStar = this._getRefinedStar(helper.state);\n\n for (var star = max - 1; star >= 1; --star) {\n var count = allValues[star];\n\n if (refinedStar && star !== refinedStar && count === 0) {\n // skip count==0 when at least 1 refinement is enabled\n // eslint-disable-next-line no-continue\n continue;\n }\n\n var stars = [];\n\n for (var i = 1; i <= max; ++i) {\n stars.push(i <= star);\n }\n\n facetValues.push({\n stars: stars,\n name: String(star),\n value: String(star),\n count: count,\n isRefined: refinedStar === star\n });\n }\n\n renderFn({\n instantSearchInstance: instantSearchInstance,\n items: facetValues,\n hasNoResults: results.nbHits === 0,\n refine: this._toggleRefinement,\n createURL: this._createURL(state),\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose(_ref3) {\n var state = _ref3.state;\n unmountFn();\n var nextState = state.removeDisjunctiveFacetRefinement(attribute).removeDisjunctiveFacet(attribute);\n return nextState;\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n\n var refinedStar = this._getRefinedStar(searchParameters);\n\n if (refinedStar === undefined || uiState && uiState.ratingMenu && uiState.ratingMenu[attribute] === refinedStar) return uiState;\n return _objectSpread({}, uiState, {\n ratingMenu: _objectSpread({}, uiState.ratingMenu, _defineProperty({}, attribute, refinedStar))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n var starRatingFromURL = uiState.ratingMenu && uiState.ratingMenu[attribute];\n\n var refinedStar = this._getRefinedStar(searchParameters);\n\n if (starRatingFromURL === refinedStar) return searchParameters;\n var clearedSearchParam = searchParameters.clearRefinements(attribute);\n\n if (starRatingFromURL !== undefined) {\n for (var val = Number(starRatingFromURL); val <= max; ++val) {\n clearedSearchParam = clearedSearchParam.addDisjunctiveFacetRefinement(attribute, val);\n }\n }\n\n return clearedSearchParam;\n },\n _toggleRefinement: function _toggleRefinement(helper, facetValue) {\n var isRefined = this._getRefinedStar(helper.state) === Number(facetValue);\n helper.clearRefinements(attribute);\n\n if (!isRefined) {\n for (var val = Number(facetValue); val <= max; ++val) {\n helper.addDisjunctiveFacetRefinement(attribute, val);\n }\n }\n\n helper.search();\n },\n _getRefinedStar: function _getRefinedStar(searchParameters) {\n var refinedStar = undefined;\n var refinements = searchParameters.getDisjunctiveRefinements(attribute);\n refinements.forEach(function (r) {\n if (!refinedStar || Number(r) < refinedStar) {\n refinedStar = Number(r);\n }\n });\n return refinedStar;\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { checkRendering, createDocumentationMessageGenerator, isEqual, noop } from '../../lib/utils';\nimport { escapeFacets, TAG_PLACEHOLDER, TAG_REPLACEMENT } from '../../lib/escape-highlight';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'refinement-list',\n connector: true\n});\n/**\n * @typedef {Object} RefinementListItem\n * @property {string} value The value of the refinement list item.\n * @property {string} label Human-readable value of the refinement list item.\n * @property {number} count Number of matched results after refinement is applied.\n * @property {boolean} isRefined Indicates if the list item is refined.\n */\n\n/**\n * @typedef {Object} CustomRefinementListWidgetOptions\n * @property {string} attribute The name of the attribute in the records.\n * @property {\"and\"|\"or\"} [operator = 'or'] How the filters are combined together.\n * @property {number} [limit = 10] The max number of items to display when\n * `showMoreLimit` is not set or if the widget is showing less value.\n * @property {boolean} [showMore = false] Whether to display a button that expands the number of items.\n * @property {number} [showMoreLimit = 20] The max number of items to display if the widget\n * is showing more items.\n * @property {string[]|function} [sortBy = ['isRefined', 'count:desc', 'name:asc']] How to sort refinements. Possible values: `count|isRefined|name:asc|name:desc`.\n * @property {boolean} [escapeFacetValues = true] Escapes the content of the facet values.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * @typedef {Object} RefinementListRenderingOptions\n * @property {RefinementListItem[]} items The list of filtering values returned from Algolia API.\n * @property {function(item.value): string} createURL Creates the next state url for a selected refinement.\n * @property {function(item.value)} refine Action to apply selected refinements.\n * @property {function} searchForItems Searches for values inside the list.\n * @property {boolean} isFromSearch `true` if the values are from an index search.\n * @property {boolean} canRefine `true` if a refinement can be applied.\n * @property {boolean} canToggleShowMore `true` if the toggleShowMore button can be activated (enough items to display more or\n * already displaying more than `limit` items)\n * @property {Object} widgetParams All original `CustomRefinementListWidgetOptions` forwarded to the `renderFn`.\n * @property {boolean} isShowingMore True if the menu is displaying all the menu items.\n * @property {function} toggleShowMore Toggles the number of values displayed between `limit` and `showMoreLimit`.\n */\n\n/**\n * **RefinementList** connector provides the logic to build a custom widget that will let the\n * user filter the results based on the values of a specific facet.\n *\n * This connector provides a `toggleShowMore()` function to display more or less items and a `refine()`\n * function to select an item.\n * @type {Connector}\n * @param {function(RefinementListRenderingOptions, boolean)} renderFn Rendering function for the custom **RefinementList** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomRefinementListWidgetOptions)} Re-usable widget factory for a custom **RefinementList** widget.\n * @example\n * // custom `renderFn` to render the custom RefinementList widget\n * function renderFn(RefinementListRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * RefinementListRenderingOptions.widgetParams.containerNode\n * .html('
        ')\n * }\n *\n * RefinementListRenderingOptions.widgetParams.containerNode\n * .find('li[data-refine-value]')\n * .each(function() { $(this).off('click'); });\n *\n * if (RefinementListRenderingOptions.canRefine) {\n * var list = RefinementListRenderingOptions.items.map(function(item) {\n * return `\n *
      • \n * \n * \n * ${item.label} (${item.count})\n * \n *
      • \n * `;\n * });\n *\n * RefinementListRenderingOptions.widgetParams.containerNode.find('ul').html(list);\n * RefinementListRenderingOptions.widgetParams.containerNode\n * .find('li[data-refine-value]')\n * .each(function() {\n * $(this).on('click', function(event) {\n * event.stopPropagation();\n * event.preventDefault();\n *\n * RefinementListRenderingOptions.refine($(this).data('refine-value'));\n * });\n * });\n * } else {\n * RefinementListRenderingOptions.widgetParams.containerNode.find('ul').html('');\n * }\n * }\n *\n * // connect `renderFn` to RefinementList logic\n * var customRefinementList = instantsearch.connectors.connectRefinementList(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customRefinementList({\n * containerNode: $('#custom-refinement-list-container'),\n * attribute: 'categories',\n * limit: 10,\n * })\n * );\n */\n\nexport default function connectRefinementList(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attribute = widgetParams.attribute,\n _widgetParams$operato = widgetParams.operator,\n operator = _widgetParams$operato === void 0 ? 'or' : _widgetParams$operato,\n _widgetParams$limit = widgetParams.limit,\n limit = _widgetParams$limit === void 0 ? 10 : _widgetParams$limit,\n _widgetParams$showMor = widgetParams.showMore,\n showMore = _widgetParams$showMor === void 0 ? false : _widgetParams$showMor,\n _widgetParams$showMor2 = widgetParams.showMoreLimit,\n showMoreLimit = _widgetParams$showMor2 === void 0 ? 20 : _widgetParams$showMor2,\n _widgetParams$sortBy = widgetParams.sortBy,\n sortBy = _widgetParams$sortBy === void 0 ? ['isRefined', 'count:desc', 'name:asc'] : _widgetParams$sortBy,\n _widgetParams$escapeF = widgetParams.escapeFacetValues,\n escapeFacetValues = _widgetParams$escapeF === void 0 ? true : _widgetParams$escapeF,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (items) {\n return items;\n } : _widgetParams$transfo;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n if (!/^(and|or)$/.test(operator)) {\n throw new Error(withUsage(\"The `operator` must one of: `\\\"and\\\"`, `\\\"or\\\"` (got \\\"\".concat(operator, \"\\\").\")));\n }\n\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('`showMoreLimit` should be greater than `limit`.'));\n }\n\n var formatItems = function formatItems(_ref) {\n var label = _ref.name,\n item = _objectWithoutProperties(_ref, [\"name\"]);\n\n return _objectSpread({}, item, {\n label: label,\n value: label,\n highlighted: label\n });\n };\n\n var _getLimit = function getLimit(isShowingMore) {\n return isShowingMore ? showMoreLimit : limit;\n };\n\n var lastResultsFromMainSearch = [];\n var hasExhaustiveItems = true;\n var searchForFacetValues;\n var triggerRefine;\n\n var _render = function render(_ref2) {\n var items = _ref2.items,\n state = _ref2.state,\n createURL = _ref2.createURL,\n helperSpecializedSearchFacetValues = _ref2.helperSpecializedSearchFacetValues,\n refine = _ref2.refine,\n isFromSearch = _ref2.isFromSearch,\n isFirstSearch = _ref2.isFirstSearch,\n isShowingMore = _ref2.isShowingMore,\n toggleShowMore = _ref2.toggleShowMore,\n instantSearchInstance = _ref2.instantSearchInstance;\n\n // Compute a specific createURL method able to link to any facet value state change\n var _createURL = function _createURL(facetValue) {\n return createURL(state.toggleRefinement(attribute, facetValue));\n }; // Do not mistake searchForFacetValues and searchFacetValues which is the actual search\n // function\n\n\n var searchFacetValues = helperSpecializedSearchFacetValues && helperSpecializedSearchFacetValues(state, createURL, helperSpecializedSearchFacetValues, refine, instantSearchInstance, isShowingMore);\n var canShowLess = isShowingMore && lastResultsFromMainSearch.length > limit;\n var canShowMore = showMore && !isFromSearch && !hasExhaustiveItems;\n var canToggleShowMore = canShowLess || canShowMore;\n renderFn({\n createURL: _createURL,\n items: items,\n refine: refine,\n searchForItems: searchFacetValues,\n instantSearchInstance: instantSearchInstance,\n isFromSearch: isFromSearch,\n canRefine: isFromSearch || items.length > 0,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n canToggleShowMore: canToggleShowMore,\n toggleShowMore: toggleShowMore,\n hasExhaustiveItems: hasExhaustiveItems\n }, isFirstSearch);\n };\n /* eslint-disable max-params */\n\n\n var createSearchForFacetValues = function createSearchForFacetValues(helper, toggleShowMore) {\n return function (state, createURL, helperSpecializedSearchFacetValues, toggleRefinement, instantSearchInstance, isShowingMore) {\n return function (query) {\n if (query === '' && lastResultsFromMainSearch) {\n // render with previous data from the helper.\n _render({\n items: lastResultsFromMainSearch,\n state: state,\n createURL: createURL,\n helperSpecializedSearchFacetValues: helperSpecializedSearchFacetValues,\n refine: toggleRefinement,\n isFromSearch: false,\n isFirstSearch: false,\n instantSearchInstance: instantSearchInstance,\n toggleShowMore: toggleShowMore,\n // and yet it will be\n isShowingMore: isShowingMore // so we need to restore in the state of show more as well\n\n });\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, _getLimit(isShowingMore), tags).then(function (results) {\n var facetValues = escapeFacetValues ? escapeFacets(results.facetHits) : results.facetHits;\n var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {\n var value = _ref3.value,\n item = _objectWithoutProperties(_ref3, [\"value\"]);\n\n return _objectSpread({}, item, {\n value: value,\n label: value\n });\n }));\n\n _render({\n items: normalizedFacetValues,\n state: state,\n createURL: createURL,\n helperSpecializedSearchFacetValues: helperSpecializedSearchFacetValues,\n refine: toggleRefinement,\n isFromSearch: true,\n isFirstSearch: false,\n instantSearchInstance: instantSearchInstance,\n isShowingMore: isShowingMore\n });\n });\n }\n };\n };\n };\n /* eslint-enable max-params */\n\n\n return {\n 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 toggleShowMore: function toggleShowMore() {},\n cachedToggleShowMore: function cachedToggleShowMore() {\n this.toggleShowMore();\n },\n createToggleShowMore: function createToggleShowMore(renderOptions) {\n var _this = this;\n\n return function () {\n _this.isShowingMore = !_this.isShowingMore;\n\n _this.render(renderOptions);\n };\n },\n getLimit: function getLimit() {\n return _getLimit(this.isShowingMore);\n },\n getConfiguration: function getConfiguration() {\n var configuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var widgetConfiguration = _defineProperty({}, operator === 'and' ? 'facets' : 'disjunctiveFacets', [attribute]);\n\n var currentMaxValuesPerFacet = configuration.maxValuesPerFacet || 0;\n widgetConfiguration.maxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n return widgetConfiguration;\n },\n init: function init(_ref4) {\n var helper = _ref4.helper,\n createURL = _ref4.createURL,\n instantSearchInstance = _ref4.instantSearchInstance;\n this.cachedToggleShowMore = this.cachedToggleShowMore.bind(this);\n\n triggerRefine = function triggerRefine(facetValue) {\n return helper.toggleRefinement(attribute, facetValue).search();\n };\n\n searchForFacetValues = createSearchForFacetValues(helper, this.cachedToggleShowMore);\n\n _render({\n items: [],\n state: helper.state,\n createURL: createURL,\n helperSpecializedSearchFacetValues: searchForFacetValues,\n refine: triggerRefine,\n isFromSearch: false,\n isFirstSearch: true,\n instantSearchInstance: instantSearchInstance,\n isShowingMore: this.isShowingMore,\n toggleShowMore: this.cachedToggleShowMore\n });\n },\n render: function render(renderOptions) {\n var results = renderOptions.results,\n state = renderOptions.state,\n createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance;\n var facetValues = results.getFacetValues(attribute, {\n sortBy: sortBy\n });\n var items = transformItems(facetValues.slice(0, this.getLimit()).map(formatItems));\n var maxValuesPerFacetConfig = state.getQueryParameter('maxValuesPerFacet');\n var currentLimit = this.getLimit(); // 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\n hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;\n lastResultsFromMainSearch = items;\n this.toggleShowMore = this.createToggleShowMore(renderOptions);\n\n _render({\n items: items,\n state: state,\n createURL: createURL,\n helperSpecializedSearchFacetValues: searchForFacetValues,\n refine: triggerRefine,\n isFromSearch: false,\n isFirstSearch: false,\n instantSearchInstance: instantSearchInstance,\n isShowingMore: this.isShowingMore,\n toggleShowMore: this.cachedToggleShowMore\n });\n },\n dispose: function dispose(_ref5) {\n var state = _ref5.state;\n unmountFn();\n\n if (operator === 'and') {\n return state.removeFacetRefinement(attribute).removeFacet(attribute);\n } else {\n return state.removeDisjunctiveFacetRefinement(attribute).removeDisjunctiveFacet(attribute);\n }\n },\n getWidgetState: function getWidgetState(uiState, _ref6) {\n var searchParameters = _ref6.searchParameters;\n var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);\n\n if (values.length === 0 || uiState.refinementList && isEqual(values, uiState.refinementList[attribute])) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n refinementList: _objectSpread({}, uiState.refinementList, _defineProperty({}, attribute, values))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref7) {\n var uiState = _ref7.uiState;\n var values = uiState.refinementList && uiState.refinementList[attribute];\n if (values === undefined) return searchParameters;\n return values.reduce(function (sp, v) {\n return operator === 'or' ? sp.addDisjunctiveFacetRefinement(attribute, v) : sp.addFacetRefinement(attribute, v);\n }, searchParameters.clearRefinements(attribute));\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'search-box',\n connector: true\n});\n/**\n * @typedef {Object} CustomSearchBoxWidgetOptions\n * @property {function(string, function(string))} [queryHook = undefined] A function that will be called every time\n * a new value for the query is set. The first parameter is the query and the second is a\n * function to actually trigger the search. The function takes the query as the parameter.\n *\n * This queryHook can be used to debounce the number of searches done from the searchBox.\n */\n\n/**\n * @typedef {Object} SearchBoxRenderingOptions\n * @property {string} query The query from the last search.\n * @property {function(string)} refine Sets a new query and searches.\n * @property {function()} clear Remove the query and perform search.\n * @property {Object} widgetParams All original `CustomSearchBoxWidgetOptions` forwarded to the `renderFn`.\n * @property {boolean} isSearchStalled `true` if the search results takes more than a certain time to come back\n * from Algolia servers. This can be configured on the InstantSearch constructor with the attribute\n * `stalledSearchDelay` which is 200ms, by default.\n */\n\n/**\n * **SearchBox** connector provides the logic to build a widget that will let the user search for a query.\n *\n * The connector provides to the rendering: `refine()` to set the query. The behaviour of this function\n * may be impacted by the `queryHook` widget parameter.\n * @type {Connector}\n * @param {function(SearchBoxRenderingOptions, boolean)} renderFn Rendering function for the custom **SearchBox** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomSearchBoxWidgetOptions)} Re-usable widget factory for a custom **SearchBox** widget.\n * @example\n * // custom `renderFn` to render the custom SearchBox widget\n * function renderFn(SearchBoxRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * SearchBoxRenderingOptions.widgetParams.containerNode.html('');\n * SearchBoxRenderingOptions.widgetParams.containerNode\n * .find('input')\n * .on('keyup', function() {\n * SearchBoxRenderingOptions.refine($(this).val());\n * });\n * SearchBoxRenderingOptions.widgetParams.containerNode\n * .find('input')\n * .val(SearchBoxRenderingOptions.query);\n * }\n * }\n *\n * // connect `renderFn` to SearchBox logic\n * var customSearchBox = instantsearch.connectors.connectSearchBox(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customSearchBox({\n * containerNode: $('#custom-searchbox'),\n * })\n * );\n */\n\nexport default function connectSearchBox(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var queryHook = widgetParams.queryHook;\n\n function clear(helper) {\n return function () {\n helper.setQuery('');\n helper.search();\n };\n }\n\n return {\n _clear: function _clear() {},\n _cachedClear: function _cachedClear() {\n this._clear();\n },\n init: function init(_ref) {\n var helper = _ref.helper,\n instantSearchInstance = _ref.instantSearchInstance;\n this._cachedClear = this._cachedClear.bind(this);\n this._clear = clear(helper);\n\n this._refine = function () {\n var previousQuery;\n\n var setQueryAndSearch = function setQueryAndSearch(q) {\n var doSearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (q !== helper.state.query) {\n previousQuery = helper.state.query;\n helper.setQuery(q);\n }\n\n if (doSearch && previousQuery !== undefined && previousQuery !== q) helper.search();\n };\n\n return queryHook ? function (q) {\n return queryHook(q, setQueryAndSearch);\n } : setQueryAndSearch;\n }();\n\n renderFn({\n query: helper.state.query,\n refine: this._refine,\n clear: this._cachedClear,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, true);\n },\n render: function render(_ref2) {\n var helper = _ref2.helper,\n instantSearchInstance = _ref2.instantSearchInstance,\n searchMetadata = _ref2.searchMetadata;\n this._clear = clear(helper);\n renderFn({\n query: helper.state.query,\n refine: this._refine,\n clear: this._cachedClear,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance,\n isSearchStalled: searchMetadata.isSearchStalled\n }, false);\n },\n dispose: function dispose(_ref3) {\n var state = _ref3.state;\n unmountFn();\n return state.setQuery('');\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var query = searchParameters.query;\n\n if (query === '' || uiState && uiState.query === query) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n query: query\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n return searchParameters.setQuery(uiState.query || '');\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, createDocumentationMessageGenerator, find, warning, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'sort-by',\n connector: true\n});\n/**\n * @typedef {Object} SortByItem\n * @property {string} value The name of the index to target.\n * @property {string} label The label of the index to display.\n */\n\n/**\n * @typedef {Object} CustomSortByWidgetOptions\n * @property {SortByItem[]} items Array of objects defining the different indices to choose from.\n * @property {function(object[]):object[]} [transformItems] Function to transform the items passed to the templates.\n */\n\n/**\n * @typedef {Object} SortByRenderingOptions\n * @property {string} currentRefinement The currently selected index.\n * @property {SortByItem[]} options All the available indices\n * @property {function(string)} refine Switches indices and triggers a new search.\n * @property {boolean} hasNoResults `true` if the last search contains no result.\n * @property {Object} widgetParams All original `CustomSortByWidgetOptions` forwarded to the `renderFn`.\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 * This connector provides the `refine` function that allows to switch indices.\n * The connector provides to the rendering: `refine()` to switch the current index and\n * `options` that are the values that can be selected. `refine` should be used\n * with `options.value`.\n * @type {Connector}\n * @param {function(SortByRenderingOptions, boolean)} renderFn Rendering function for the custom **SortBy** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomSortByWidgetOptions)} Re-usable widget factory for a custom **SortBy** widget.\n * @example\n * // custom `renderFn` to render the custom SortBy widget\n * function renderFn(SortByRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) {\n * SortByRenderingOptions.widgetParams.containerNode.html('');\n * SortByRenderingOptions.widgetParams.containerNode\n * .find('select')\n * .on('change', function(event) {\n * SortByRenderingOptions.refine(event.target.value);\n * });\n * }\n *\n * var optionsHTML = SortByRenderingOptions.options.map(function(option) {\n * return `\n * \n * ${option.label}\n * \n * `;\n * });\n *\n * SortByRenderingOptions.widgetParams.containerNode\n * .find('select')\n * .html(optionsHTML);\n * }\n *\n * // connect `renderFn` to SortBy logic\n * var customSortBy = instantsearch.connectors.connectSortBy(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customSortBy({\n * containerNode: $('#custom-sort-by-container'),\n * items: [\n * { value: 'instant_search', label: 'Most relevant' },\n * { value: 'instant_search_price_asc', label: 'Lowest price' },\n * { value: 'instant_search_price_desc', label: 'Highest price' },\n * ],\n * })\n * );\n */\n\nexport default function connectSortBy(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var items = widgetParams.items,\n _widgetParams$transfo = widgetParams.transformItems,\n transformItems = _widgetParams$transfo === void 0 ? function (x) {\n return x;\n } : _widgetParams$transfo;\n\n if (!Array.isArray(items)) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n instantSearchInstance = _ref.instantSearchInstance;\n var currentIndex = helper.state.index;\n var isCurrentIndexInItems = find(items, function (item) {\n return item.value === currentIndex;\n }); // The `initialIndex` is the one set at the top level not the one used\n // at `init`. The value of `index` at `init` could come from the URL. We\n // want the \"real\" initial value, this one should never change. If it changes\n // between the lifecycles of the widget the current refinement won't be\n // pushed into the `uiState`. Because we never push the \"initial\" value to\n // avoid to pollute the URL.\n // Note that it might be interesting to manage this at the state mapping\n // level and always push the index value into the `uiState`. It is a\n // breaking change.\n // @MAJOR\n\n this.initialIndex = instantSearchInstance.indexName;\n\n this.setIndex = function (indexName) {\n helper.setIndex(indexName).search();\n };\n\n warning(isCurrentIndexInItems, \"The index named \\\"\".concat(currentIndex, \"\\\" is not listed in the `items` of `sortBy`.\"));\n renderFn({\n currentRefinement: currentIndex,\n options: transformItems(items),\n refine: this.setIndex,\n hasNoResults: true,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, true);\n },\n render: function render(_ref2) {\n var helper = _ref2.helper,\n results = _ref2.results,\n instantSearchInstance = _ref2.instantSearchInstance;\n renderFn({\n currentRefinement: helper.state.index,\n options: transformItems(items),\n refine: this.setIndex,\n hasNoResults: results.nbHits === 0,\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, false);\n },\n dispose: function dispose(_ref3) {\n var state = _ref3.state;\n unmountFn();\n return state.setIndex(this.initialIndex);\n },\n getWidgetState: function getWidgetState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var currentIndex = searchParameters.getQueryParameter('index');\n var isInitialIndex = currentIndex === this.initialIndex;\n\n if (isInitialIndex || uiState && uiState.sortBy === currentIndex) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n sortBy: searchParameters.getQueryParameter('index')\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n return searchParameters.setQueryParameter('index', uiState.sortBy || this.initialIndex);\n }\n };\n };\n}","import { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'stats',\n connector: true\n});\n/**\n * @typedef {Object} StatsRenderingOptions\n * @property {number} hitsPerPage The maximum number of hits per page returned by Algolia.\n * @property {number} nbHits The number of hits in the result set.\n * @property {number} nbPages The number of pages computed for the result set.\n * @property {number} page The current page.\n * @property {number} processingTimeMS The time taken to compute the results inside the Algolia engine.\n * @property {string} query The query used for the current search.\n * @property {object} widgetParams All original `CustomStatsWidgetOptions` forwarded to the `renderFn`.\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 * @type {Connector}\n * @param {function(StatsRenderingOptions, boolean)} renderFn Rendering function for the custom **Stats** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function} Re-usable widget factory for a custom **Stats** widget.\n * @example\n * // custom `renderFn` to render the custom Stats widget\n * function renderFn(StatsRenderingOptions, isFirstRendering) {\n * if (isFirstRendering) return;\n *\n * StatsRenderingOptions.widgetParams.containerNode\n * .html(StatsRenderingOptions.nbHits + ' results found in ' + StatsRenderingOptions.processingTimeMS);\n * }\n *\n * // connect `renderFn` to Stats logic\n * var customStatsWidget = instantsearch.connectors.connectStats(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customStatsWidget({\n * containerNode: $('#custom-stats-container'),\n * })\n * );\n */\n\nexport default function connectStats(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n init: function init(_ref) {\n var helper = _ref.helper,\n instantSearchInstance = _ref.instantSearchInstance;\n renderFn({\n instantSearchInstance: instantSearchInstance,\n hitsPerPage: helper.state.hitsPerPage,\n nbHits: 0,\n nbPages: 0,\n page: helper.state.page,\n processingTimeMS: -1,\n query: helper.state.query,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref2) {\n var results = _ref2.results,\n instantSearchInstance = _ref2.instantSearchInstance;\n renderFn({\n instantSearchInstance: instantSearchInstance,\n hitsPerPage: results.hitsPerPage,\n nbHits: results.nbHits,\n nbPages: results.nbPages,\n page: results.page,\n processingTimeMS: results.processingTimeMS,\n query: results.query,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose() {\n unmountFn();\n }\n };\n };\n}","function escapeRefinement(value) {\n if (typeof value === 'number' && value < 0) {\n value = String(value).replace(/^-/, '\\\\-');\n }\n\n return value;\n}\n\nexport default escapeRefinement;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, escapeRefinement, unescapeRefinement, createDocumentationMessageGenerator, find, noop } from '../../lib/utils';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'toggle-refinement',\n connector: true\n});\n/**\n * @typedef {Object} ToggleValue\n * @property {boolean} isRefined `true` if the toggle is on.\n * @property {number} count Number of results matched after applying the toggle refinement.\n * @property {Object} onFacetValue Value of the toggle when it's on.\n * @property {Object} offFacetValue Value of the toggle when it's off.\n */\n\n/**\n * @typedef {Object} CustomToggleWidgetOptions\n * @property {string} attribute Name of the attribute for faceting (eg. \"free_shipping\").\n * @property {Object} [on = true] Value to filter on when toggled.\n * @property {Object} [off] Value to filter on when not toggled.\n */\n\n/**\n * @typedef {Object} ToggleRenderingOptions\n * @property {ToggleValue} value The current toggle value.\n * @property {function():string} createURL Creates an URL for the next state.\n * @property {function(value)} refine Updates to the next state by applying the toggle refinement.\n * @property {Object} widgetParams All original `CustomToggleWidgetOptions` forwarded to the `renderFn`.\n */\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 *\n * @type {Connector}\n * @param {function(ToggleRenderingOptions, boolean)} renderFn Rendering function for the custom **Toggle** widget.\n * @param {function} unmountFn Unmount function called when the widget is disposed.\n * @return {function(CustomToggleWidgetOptions)} Re-usable widget factory for a custom **Toggle** widget.\n * @example\n * // custom `renderFn` to render the custom ClearAll widget\n * function renderFn(ToggleRenderingOptions, isFirstRendering) {\n * ToggleRenderingOptions.widgetParams.containerNode\n * .find('a')\n * .off('click');\n *\n * var buttonHTML = `\n * \n * \n * ${ToggleRenderingOptions.value.name} (${ToggleRenderingOptions.value.count})\n * \n * `;\n *\n * ToggleRenderingOptions.widgetParams.containerNode.html(buttonHTML);\n * ToggleRenderingOptions.widgetParams.containerNode\n * .find('a')\n * .on('click', function(event) {\n * event.preventDefault();\n * event.stopPropagation();\n *\n * ToggleRenderingOptions.refine(ToggleRenderingOptions.value);\n * });\n * }\n *\n * // connect `renderFn` to Toggle logic\n * var customToggle = instantsearch.connectors.connectToggleRefinement(renderFn);\n *\n * // mount widget on the page\n * search.addWidget(\n * customToggle({\n * containerNode: $('#custom-toggle-container'),\n * attribute: 'free_shipping',\n * })\n * );\n */\n\nexport default function connectToggleRefinement(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function () {\n var widgetParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var attribute = widgetParams.attribute,\n _widgetParams$on = widgetParams.on,\n userOn = _widgetParams$on === void 0 ? true : _widgetParams$on,\n userOff = widgetParams.off;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n var hasAnOffValue = userOff !== undefined;\n var hasAnOnValue = userOn !== undefined;\n var on = hasAnOnValue ? escapeRefinement(userOn) : undefined;\n var off = hasAnOffValue ? escapeRefinement(userOff) : undefined;\n return {\n getConfiguration: function getConfiguration() {\n return {\n disjunctiveFacets: [attribute]\n };\n },\n _toggleRefinement: function _toggleRefinement(helper) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n isRefined = _ref.isRefined;\n\n // Checking\n if (!isRefined) {\n if (hasAnOffValue) {\n helper.removeDisjunctiveFacetRefinement(attribute, off);\n }\n\n helper.addDisjunctiveFacetRefinement(attribute, on);\n } else {\n // Unchecking\n helper.removeDisjunctiveFacetRefinement(attribute, on);\n\n if (hasAnOffValue) {\n helper.addDisjunctiveFacetRefinement(attribute, off);\n }\n }\n\n helper.search();\n },\n init: function init(_ref2) {\n var _this = this;\n\n var state = _ref2.state,\n helper = _ref2.helper,\n createURL = _ref2.createURL,\n instantSearchInstance = _ref2.instantSearchInstance;\n\n this._createURL = function (isCurrentlyRefined) {\n return function () {\n return createURL(state.removeDisjunctiveFacetRefinement(attribute, isCurrentlyRefined ? on : off).addDisjunctiveFacetRefinement(attribute, isCurrentlyRefined ? off : on));\n };\n };\n\n this.toggleRefinement = function (opts) {\n _this._toggleRefinement(helper, opts);\n };\n\n var isRefined = state.isDisjunctiveFacetRefined(attribute, on); // no need to refine anything at init if no custom off values\n\n if (hasAnOffValue) {\n // Add filtering on the 'off' value if set\n if (!isRefined) {\n var currentPage = helper.getPage();\n helper.addDisjunctiveFacetRefinement(attribute, off).setPage(currentPage);\n }\n }\n\n var onFacetValue = {\n isRefined: isRefined,\n count: 0\n };\n var offFacetValue = {\n isRefined: hasAnOffValue && !isRefined,\n count: 0\n };\n var value = {\n name: attribute,\n isRefined: isRefined,\n count: null,\n onFacetValue: onFacetValue,\n offFacetValue: offFacetValue\n };\n renderFn({\n value: value,\n createURL: this._createURL(value.isRefined),\n refine: this.toggleRefinement,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, true);\n },\n render: function render(_ref3) {\n var helper = _ref3.helper,\n results = _ref3.results,\n state = _ref3.state,\n instantSearchInstance = _ref3.instantSearchInstance;\n var isRefined = helper.state.isDisjunctiveFacetRefined(attribute, on);\n var offValue = off === undefined ? false : off;\n var allFacetValues = results.getFacetValues(attribute);\n var onData = find(allFacetValues, function (_ref4) {\n var name = _ref4.name;\n return name === unescapeRefinement(on);\n });\n var onFacetValue = {\n isRefined: onData !== undefined ? onData.isRefined : false,\n count: onData === undefined ? null : onData.count\n };\n var offData = hasAnOffValue ? find(allFacetValues, function (_ref5) {\n var name = _ref5.name;\n return name === unescapeRefinement(offValue);\n }) : undefined;\n var offFacetValue = {\n isRefined: offData !== undefined ? offData.isRefined : false,\n count: offData === undefined ? allFacetValues.reduce(function (total, _ref6) {\n var count = _ref6.count;\n return total + count;\n }, 0) : offData.count\n }; // what will we show by default,\n // if checkbox is not checked, show: [ ] free shipping (countWhenChecked)\n // if checkbox is checked, show: [x] free shipping (countWhenNotChecked)\n\n var nextRefinement = isRefined ? offFacetValue : onFacetValue;\n var value = {\n name: attribute,\n isRefined: isRefined,\n count: nextRefinement === undefined ? null : nextRefinement.count,\n onFacetValue: onFacetValue,\n offFacetValue: offFacetValue\n };\n renderFn({\n value: value,\n state: state,\n createURL: this._createURL(value.isRefined),\n refine: this.toggleRefinement,\n helper: helper,\n instantSearchInstance: instantSearchInstance,\n widgetParams: widgetParams\n }, false);\n },\n dispose: function dispose(_ref7) {\n var state = _ref7.state;\n unmountFn();\n var nextState = state.removeDisjunctiveFacetRefinement(attribute).removeDisjunctiveFacet(attribute);\n return nextState;\n },\n getWidgetState: function getWidgetState(uiState, _ref8) {\n var searchParameters = _ref8.searchParameters;\n var isRefined = searchParameters.isDisjunctiveFacetRefined(attribute, on);\n\n if (!isRefined || uiState && uiState.toggle && uiState.toggle[attribute] === isRefined) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n toggle: _objectSpread({}, uiState.toggle, _defineProperty({}, attribute, isRefined))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref9) {\n var uiState = _ref9.uiState;\n var isRefined = Boolean(uiState.toggle && uiState.toggle[attribute]);\n\n if (isRefined) {\n if (hasAnOffValue) return searchParameters.removeDisjunctiveFacetRefinement(attribute, off).addDisjunctiveFacetRefinement(attribute, on);\n return searchParameters.addDisjunctiveFacetRefinement(attribute, on);\n }\n\n if (hasAnOffValue) return searchParameters.removeDisjunctiveFacetRefinement(attribute, on).addDisjunctiveFacetRefinement(attribute, off);\n return searchParameters.removeDisjunctiveFacetRefinement(attribute, on);\n }\n };\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport default function createVoiceSearchHelper(_ref) {\n var searchAsYouSpeak = _ref.searchAsYouSpeak,\n onQueryChange = _ref.onQueryChange,\n onStateChange = _ref.onStateChange;\n var SpeechRecognitionAPI = window.webkitSpeechRecognition || window.SpeechRecognition;\n\n var getDefaultState = function getDefaultState(status) {\n return {\n status: status,\n transcript: '',\n isSpeechFinal: false,\n errorCode: undefined\n };\n };\n\n var state = getDefaultState('initial');\n var recognition;\n\n var isBrowserSupported = function isBrowserSupported() {\n return Boolean(SpeechRecognitionAPI);\n };\n\n var isListening = function isListening() {\n return state.status === 'askingPermission' || state.status === 'waiting' || state.status === 'recognizing';\n };\n\n var setState = function setState() {\n var newState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n state = _objectSpread({}, state, {}, newState);\n onStateChange();\n };\n\n var getState = function getState() {\n return state;\n };\n\n var resetState = function resetState() {\n var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n setState(getDefaultState(status));\n };\n\n var onStart = function onStart() {\n setState({\n status: 'waiting'\n });\n };\n\n var onError = function onError(event) {\n setState({\n status: 'error',\n errorCode: event.error\n });\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\n if (searchAsYouSpeak && state.transcript) {\n onQueryChange(state.transcript);\n }\n };\n\n var onEnd = function onEnd() {\n if (!state.errorCode && state.transcript && !searchAsYouSpeak) {\n onQueryChange(state.transcript);\n }\n\n if (state.status !== 'error') {\n setState({\n status: 'finished'\n });\n }\n };\n\n var start = function start() {\n recognition = new SpeechRecognitionAPI();\n\n if (!recognition) {\n return;\n }\n\n resetState('askingPermission');\n recognition.interimResults = true;\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\n var dispose = function dispose() {\n if (!recognition) {\n return;\n }\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\n var stop = function stop() {\n dispose(); // 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\n resetState('finished');\n };\n\n var toggleListening = function toggleListening() {\n if (!isBrowserSupported()) {\n return;\n }\n\n if (isListening()) {\n stop();\n } else {\n start();\n }\n };\n\n return {\n getState: getState,\n isBrowserSupported: isBrowserSupported,\n isListening: isListening,\n toggleListening: toggleListening,\n dispose: dispose\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { checkRendering, createDocumentationMessageGenerator, noop } from '../../lib/utils';\nimport createVoiceSearchHelper from '../../lib/voiceSearchHelper';\nvar withUsage = createDocumentationMessageGenerator({\n name: 'voice-search',\n connector: true\n});\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 _render = function render(_ref) {\n var isFirstRendering = _ref.isFirstRendering,\n instantSearchInstance = _ref.instantSearchInstance,\n _ref$voiceSearchHelpe = _ref.voiceSearchHelper,\n isBrowserSupported = _ref$voiceSearchHelpe.isBrowserSupported,\n isListening = _ref$voiceSearchHelpe.isListening,\n toggleListening = _ref$voiceSearchHelpe.toggleListening,\n getState = _ref$voiceSearchHelpe.getState;\n renderFn({\n isBrowserSupported: isBrowserSupported(),\n isListening: isListening(),\n toggleListening: toggleListening,\n voiceListeningState: getState(),\n widgetParams: widgetParams,\n instantSearchInstance: instantSearchInstance\n }, isFirstRendering);\n };\n\n var _widgetParams$searchA = widgetParams.searchAsYouSpeak,\n searchAsYouSpeak = _widgetParams$searchA === void 0 ? false : _widgetParams$searchA;\n return {\n init: function init(_ref2) {\n var _this = this;\n\n var helper = _ref2.helper,\n instantSearchInstance = _ref2.instantSearchInstance;\n\n this._refine = function () {\n var previousQuery;\n\n var setQueryAndSearch = function setQueryAndSearch(query) {\n if (query !== helper.state.query) {\n previousQuery = helper.state.query;\n helper.setQuery(query);\n }\n\n if (typeof previousQuery !== 'undefined' && previousQuery !== query) {\n helper.search();\n }\n };\n\n return setQueryAndSearch;\n }();\n\n this._voiceSearchHelper = createVoiceSearchHelper({\n searchAsYouSpeak: searchAsYouSpeak,\n onQueryChange: function onQueryChange(query) {\n return _this._refine(query);\n },\n onStateChange: function onStateChange() {\n _render({\n isFirstRendering: false,\n instantSearchInstance: instantSearchInstance,\n voiceSearchHelper: _this._voiceSearchHelper\n });\n }\n });\n\n _render({\n isFirstRendering: true,\n instantSearchInstance: instantSearchInstance,\n voiceSearchHelper: this._voiceSearchHelper\n });\n },\n render: function render(_ref3) {\n var instantSearchInstance = _ref3.instantSearchInstance;\n\n _render({\n isFirstRendering: false,\n instantSearchInstance: instantSearchInstance,\n voiceSearchHelper: this._voiceSearchHelper\n });\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n\n this._voiceSearchHelper.dispose();\n\n unmountFn();\n return state.setQuery('');\n },\n getWidgetState: function getWidgetState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var query = searchParameters.query;\n\n if (query === '' || uiState && uiState.query === query) {\n return uiState;\n }\n\n return _objectSpread({}, uiState, {\n query: query\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n return searchParameters.setQuery(uiState.query || '');\n }\n };\n };\n};\n\nexport default connectVoiceSearch;","import InstantSearch from './lib/InstantSearch';\nimport version from './lib/version';\nimport { snippet, highlight } from './helpers';\n\nvar instantsearch = function instantsearch(options) {\n return new InstantSearch(options);\n};\n\ninstantsearch.version = version;\ninstantsearch.snippet = snippet;\ninstantsearch.highlight = highlight;\nObject.defineProperty(instantsearch, 'widgets', {\n get: function get() {\n throw new ReferenceError(\"\\\"instantsearch.widgets\\\" are not available from the ES build.\\n\\nTo import the widgets:\\n\\nimport { searchBox } from 'instantsearch.js/es/widgets'\");\n }\n});\nObject.defineProperty(instantsearch, 'connectors', {\n get: function get() {\n throw new ReferenceError(\"\\\"instantsearch.connectors\\\" are not available from the ES build.\\n\\nTo import the connectors:\\n\\nimport { connectSearchBox } from 'instantsearch.js/es/connectors'\");\n }\n});\nexport default instantsearch;\n","import{connectAutocomplete as e,connectBreadcrumb as t,connectClearRefinements as s,connectConfigure as n,connectCurrentRefinements as i,connectHierarchicalMenu as a,connectHitsWithInsights as r,connectHitsPerPage as o,connectInfiniteHitsWithInsights as u,connectMenu as c,connectNumericMenu as l,connectPagination as h,connectQueryRules as f,connectRange as m,connectRatingMenu as d,connectRefinementList as p,connectSearchBox as g,connectSortBy as v,connectStats as _,connectToggleRefinement as b,connectVoiceSearch as y}from\"instantsearch.js/es/connectors\";import R from\"vue\";import S from\"instantsearch.js/es\";import w from\"algoliasearch-helper\";var L=function(e){var t=e.name;return{props:{classNames:{type:Object,default:void 0}},methods:{suit:function(e,s){var n=function(e,t,s){if(!e)throw new Error(\"You need to provide `widgetName` in your data\");var n=[\"ais-\"+e];return t&&n.push(\"-\"+t),s&&n.push(\"--\"+s),n.join(\"\")}(t,e,s),i=this.classNames&&this.classNames[n];return i?[n,i].join(\" \"):n}}}},P=new Set;function A(e){P.has(e)||(P.add(e),console.warn(e))}var x=function(e){void 0===e&&(e={});var t=e.connector;return{inject:{instantSearchInstance:{name:\"instantSearchInstance\",default:function(){var e=this.$options._componentTag;throw new TypeError('It looks like you forgot to wrap your Algolia search component \"<'+e+'>\" inside of an \"\" component.')}}},data:function(){return{state:null}},created:function(){if(\"function\"==typeof t){this.factory=t(this.updateState,function(){}),this.widget=this.factory(this.widgetParams),this.instantSearchInstance.addWidget(this.widget);var e=this.instantSearchInstance,s=e.hydrated;if(!e.started&&s||this.$isServer){if(\"function\"!=typeof this.instantSearchInstance.__forceRender)throw new Error(\"You are using server side rendering with instead of .\");this.instantSearchInstance.__forceRender(this.widget)}}else!0!==t&&A(\"You are using the InstantSearch widget mixin, but didn't provide a connector.\\nWhile this is technically possible, and will give you access to the Helper,\\nit's not the recommended way of making custom components.\\n\\nIf you want to disable this message, pass { connector: true } to the mixin.\\n\\nRead more on using connectors: https://alg.li/vue-custom\")},beforeDestroy:function(){this.widget&&this.widget.dispose&&this.instantSearchInstance.started&&this.instantSearchInstance.removeWidget(this.widget)},watch:{widgetParams:{handler:function(e){this.state=null,this.widget.dispose&&this.instantSearchInstance.started&&this.instantSearchInstance.removeWidget(this.widget),this.widget=this.factory(e),this.instantSearchInstance.addWidget(this.widget)},deep:!0}},methods:{updateState:function(e,t){void 0===e&&(e={}),t||(this.state=e)}}}},M={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(\"p\",[e._v(\"This widget doesn't render anything without a filled in default slot.\")]),e._v(\" \"),s(\"p\",[e._v(\"query, function to refine and results are provided.\")]),e._v(\" \"),s(\"pre\",[e._v(\"refine: Function\")]),e._v(\" \"),s(\"pre\",[e._v('currentRefinement: \"'+e._s(e.state.currentRefinement)+'\"')]),e._v(\" \"),s(\"details\",[e._m(0),e._v(\" \"),s(\"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:[x({connector:e}),L({name:\"Autocomplete\"})],props:{indices:{type:Array,required:!1,default:void 0},escapeHTML:{type:Boolean,required:!1,default:!0}},computed:{widgetParams:function(){return{indices:this.indices,escapeHTML:this.escapeHTML}}}},I=function(e){var t=e.mapStateToCanRefine;return{inject:{emitter:{from:\"instantSearchPanelEmitter\",default:function(){return{$emit:function(){}}}}},data:function(){return{state:null,hasAlreadyEmitted:!1}},watch:{state:function(e,s){if(s&&e){var n=t(s),i=t(e);this.hasAlreadyEmitted&&n===i||(this.emitter.$emit(\"PANEL_CHANGE_EVENT\",i),this.hasAlreadyEmitted=!0)}}}}},F={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\")},[s(\"li\",{class:[e.suit(\"item\"),!e.state.items.length&&e.suit(\"item\",\"selected\")]},[Boolean(e.state.items.length)?s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.state.createURL()},on:{click:function(t){t.preventDefault(),e.state.refine()}}},[e._t(\"rootLabel\",[e._v(\"Home\")])],2):s(\"span\",[e._t(\"rootLabel\",[e._v(\"Home\")])],2)]),e._v(\" \"),e._l(e.state.items,function(t,n){return s(\"li\",{key:t.label,class:[e.suit(\"item\"),e.isLastItem(n)&&e.suit(\"item\",\"selected\")]},[s(\"span\",{class:e.suit(\"separator\"),attrs:{\"aria-hidden\":\"true\"}},[e._t(\"separator\",[e._v(\">\")])],2),e._v(\" \"),e.isLastItem(n)?s(\"span\",[e._v(e._s(t.label))]):s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.state.createURL(t.value)},on:{click:function(s){s.preventDefault(),e.state.refine(t.value)}}},[e._v(e._s(t.label))])])})],2)],{items:e.state.items,canRefine:e.state.canRefine,refine:e.state.refine,createURL:e.state.createURL})],2):e._e()},staticRenderFns:[],name:\"AisBreadcrumb\",mixins:[x({connector:t}),I({mapStateToCanRefine:function(e){return e.canRefine}}),L({name:\"Breadcrumb\"})],props:{attributes:{type:Array,required:!0},separator:{type:String,default:\" > \"},rootPath:{type:String,default:null},transformItems:{type:Function,default:function(e){return e}}},computed:{widgetParams:function(){return{attributes:this.attributes,separator:this.separator,rootPath:this.rootPath,transformItems:this.transformItems}}},methods:{isLastItem:function(e){return this.state.items.length-1===e}}},k={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(\"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:[x({connector:s}),I({mapStateToCanRefine:function(e){return e.hasRefinements}}),L({name:\"ClearRefinements\"})],props:{excludedAttributes:{type:Array},includedAttributes:{type:Array},transformItems:{type:Function,default:function(e){return e}}},computed:{widgetParams:function(){return{includedAttributes:this.includedAttributes,excludedAttributes:this.excludedAttributes,transformItems:this.transformItems}},canRefine:function(){return this.state.hasRefinements}}},T={inheritAttrs:!1,name:\"AisConfigure\",mixins:[L({name:\"Configure\"}),x({connector:n})],computed:{widgetParams:function(){return{searchParameters:this.$attrs}}},render:function(e){return this.state&&this.$scopedSlots.default?e(\"div\",{class:this.suit()},[this.$scopedSlots.default({refine:this.state.refine,searchParameters:this.state.widgetParams.searchParameters})]):null}},C={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:[e.suit(),e.noRefinement&&e.suit(\"\",\"noRefinement\")]},[e._t(\"default\",[s(\"ul\",{class:e.suit(\"list\")},e._l(e.state.items,function(t){return s(\"li\",{key:t.attribute,class:e.suit(\"item\")},[e._t(\"item\",[s(\"span\",{class:e.suit(\"label\")},[e._v(e._s(e._f(\"capitalize\")(t.label))+\": \")]),e._v(\" \"),e._l(t.refinements,function(n){return s(\"span\",{key:e.createItemKey(n),class:e.suit(\"category\")},[e._t(\"refinement\",[s(\"span\",{class:e.suit(\"categoryLabel\")},[\"query\"===n.attribute?s(\"q\",[e._v(e._s(n.label))]):[e._v(\" \"+e._s(n.label)+\" \")]],2),e._v(\" \"),s(\"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:[L({name:\"CurrentRefinements\"}),x({connector:i}),I({mapStateToCanRefine:function(e){return e.items.length>0}})],props:{includedAttributes:{type:Array},excludedAttributes:{type:Array},transformItems:{type:Function,default:function(e){return e}}},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,s=e.value;return[t,e.type,s,e.operator].join(\":\")}},filters:{capitalize:function(e){return e?e.toString().charAt(0).toLocaleUpperCase()+e.toString().slice(1):\"\"}}},N={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(\"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 s(\"li\",{key:t.value,class:[e.suit(\"item\"),t.data&&e.suit(\"item\",\"parent\"),t.isRefined&&e.suit(\"item\",\"selected\")]},[s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.createURL(t.value)},on:{click:function(s){s.preventDefault(),e.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(\" \"),t.data?s(\"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}}},B=function(e){return e.items.length>0},U={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(\"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?s(\"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})],2):e._e()},staticRenderFns:[],name:\"AisHierarchicalMenu\",mixins:[L({name:\"HierarchicalMenu\"}),x({connector:a}),I({mapStateToCanRefine:B})],components:{HierarchicalMenuList:N},props:{attributes:{type:Array,required:!0},limit:{type:Number,default:10},showMoreLimit:{type:Number,default:20},showMore:{type:Boolean,default:!1},sortBy:{type:[Array,Function],default:function(){return[\"name:asc\"]}},separator:{type:String,default:\" > \"},rootPath:{type:String,default:null},showParentLevel:{type:Boolean,default:!0},transformItems:{type:Function,default:function(e){return e}}},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 B(this.state)}}},$={render:function(){var e=this.$createElement;return(this._self._c||e)(\"span\",{class:this.suit(),domProps:{innerHTML:this._s(this.innerHTML)}})},staticRenderFns:[],name:\"AisHighlight\",mixins:[L({name:\"Highlight\"})],props:{hit:{type:Object,required:!0},attribute:{type:String,required:!0},highlightedTagName:{type:String,default:\"mark\"}},computed:{innerHTML:function(){return S.highlight({attribute:this.attribute,hit:this.hit,highlightedTagName:this.highlightedTagName})}}},q={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(\"ol\",{class:e.suit(\"list\")},e._l(e.items,function(t,n){return s(\"li\",{key:t.objectID,class:e.suit(\"item\")},[e._t(\"item\",[e._v(\"objectID: \"+e._s(t.objectID)+\", index: \"+e._s(n))],{item:t,index:n,insights:e.state.insights})],2)}))],{items:e.items,insights:e.state.insights})],2):e._e()},staticRenderFns:[],name:\"AisHits\",mixins:[x({connector:r}),L({name:\"Hits\"})],props:{escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:function(e){return e}}},computed:{items:function(){return this.state.hits},widgetParams:function(){return{escapeHTML:this.escapeHTML,transformItems:this.transformItems}}}},E={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:[L({name:\"HitsPerPage\"}),x({connector:o}),I({mapStateToCanRefine:function(e){return!e.hasNoResults}})],props:{items:{type:Array,required:!0,default:function(){return[]}},transformItems:{type:Function,default:function(e){return e}}},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)}}};function H(e){for(var t=arguments,s=1;s1}})],props:{padding:{type:Number,default:3,validator:function(e){return e>0}},totalPages:{type:Number,default:void 0,validator:function(e){return e>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(e){var t=Math.min(Math.max(e,0),this.state.nbPages-1);this.state.refine(t),this.$emit(\"page-change\",t)}}},J={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(\"div\",{class:[e.suit(),!e.canRefine&&e.suit(\"\",\"noRefinement\")]},[e.$slots.header||e.$scopedSlots.header?s(\"div\",{class:e.suit(\"header\")},[e._t(\"header\",null,{hasRefinements:e.canRefine})],2):e._e(),e._v(\" \"),s(\"div\",{class:e.suit(\"body\")},[e._t(\"default\",null,{hasRefinements:e.canRefine})],2),e._v(\" \"),e.$slots.footer||e.$scopedSlots.footer?s(\"div\",{class:e.suit(\"footer\")},[e._t(\"footer\",null,{hasRefinements:e.canRefine})],2):e._e()])},staticRenderFns:[],name:\"AisPanel\",mixins:[L({name:\"Panel\"}),{props:{emitter:{type:Object,required:!1,default:function(){return new R({name:\"PanelProvider\"})}}},provide:function(){var e;return(e={}).instantSearchPanelEmitter=this.emitter,e},data:function(){return{canRefine:!0}},created:function(){var e=this;this.emitter.$on(\"PANEL_CHANGE_EVENT\",function(t){e.updateCanRefine(t)})},beforeDestroy:function(){this.emitter.$destroy()},methods:{updateCanRefine:function(e){this.canRefine=e}}}]},X={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(\"div\",{class:e.suit()},[s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.algoliaUrl,target:\"_blank\",rel:\"noopener\",\"aria-label\":\"search by Algolia\"}},[s(\"svg\",{class:[e.suit(\"logo\"),e.suit(\"\",e.theme)],staticStyle:{height:\"1.2em\",width:\"auto\"},attrs:{viewBox:\"0 0 168 24\"}},[s(\"path\",{attrs:{fill:\"dark\"===e.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\"}}),e._v(\" \"),s(\"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\"}}),e._v(\" \"),s(\"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\"}}),e._v(\" \"),s(\"path\",{attrs:{fill:\"dark\"===e.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:[L({name:\"PoweredBy\"})],props:{theme:{default:\"light\",validator:function(e){return-1!==[\"light\",\"dark\"].indexOf(e)}}},computed:{algoliaUrl:function(){return\"https://www.algolia.com/?utm_source=vue-instantsearch&utm_medium=website&utm_content=\"+(location?location.hostname:\"\")+\"&utm_campaign=poweredby\"}}},Z={name:\"AisQueryRuleContext\",mixins:[L({name:\"QueryRuleContext\"}),x({connector:f})],props:{trackedFilters:{type:Object,required:!0},transformRuleContexts:{type:Function,required:!1,default:function(e){return e}}},computed:{widgetParams:function(){return{trackedFilters:this.trackedFilters,transformRuleContexts:this.transformRuleContexts}}},render:function(){return null}},ee={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state?s(\"div\",{class:e.suit()},[e._t(\"default\",e._l(e.state.items,function(t,n){return s(\"div\",{key:n},[e._t(\"item\",[s(\"pre\",[e._v(e._s(t))])],{item:t})],2)}),{items:e.state.items})],2):e._e()},staticRenderFns:[],name:\"AisQueryRuleCustomData\",mixins:[L({name:\"QueryRuleCustomData\"}),x({connector:f})],props:{transformItems:{type:Function,required:!1,default:function(e){return e}}},computed:{widgetParams:function(){return{transformItems:this.transformItems}}}},te=function(e){return e&&e.range&&e.range.min!==e.range.max},se={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(\"form\",{class:e.suit(\"form\"),on:{submit:function(t){t.preventDefault(),e.refine({min:e.minInput,max:e.maxInput})}}},[s(\"label\",{class:e.suit(\"label\")},[e._t(\"minLabel\"),e._v(\" \"),s(\"input\",{class:[e.suit(\"input\"),e.suit(\"input\",\"min\")],attrs:{type:\"number\",step:e.step,min:e.state.range.min,max:e.state.range.max,placeholder:e.state.range.min},domProps:{value:e.values.min},on:{change:function(t){e.minInput=t.currentTarget.value}}})],2),e._v(\" \"),s(\"span\",{class:e.suit(\"separator\")},[e._t(\"separator\",[e._v(\"to\")])],2),e._v(\" \"),s(\"label\",{class:e.suit(\"label\")},[e._t(\"maxLabel\"),e._v(\" \"),s(\"input\",{class:[e.suit(\"input\"),e.suit(\"input\",\"max\")],attrs:{type:\"number\",step:e.step,min:e.state.range.min,max:e.state.range.max,placeholder:e.state.range.max},domProps:{value:e.values.max},on:{change:function(t){e.maxInput=t.currentTarget.value}}})],2),e._v(\" \"),s(\"button\",{class:e.suit(\"submit\"),attrs:{type:\"submit\"}},[e._t(\"submitLabel\",[e._v(\"Go\")])],2)])],{currentRefinement:e.values,refine:e.refine,canRefine:e.canRefine,range:e.state.range})],2):e._e()},staticRenderFns:[],name:\"AisRangeInput\",mixins:[L({name:\"RangeInput\"}),x({connector:m}),I({mapStateToCanRefine:te})],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}},computed:{widgetParams:function(){return{attribute:this.attribute,min:this.min,max:this.max,precision:this.precision}},canRefine:function(){return te(this.state)},step:function(){return 1/Math.pow(10,this.precision)},values:function(){var e=this.state.start,t=e[0],s=e[1],n=this.state.range,i=n.min,a=n.max;return{min:t!==-1/0&&t!==i?t:null,max:s!==1/0&&s!==a?s:null}}},methods:{refine:function(e){var t=e.min,s=e.max;this.state.refine([t,s])}}},ne={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(\"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\"}})]),e._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\"}})])]),e._v(\" \"),s(\"ul\",{class:e.suit(\"list\")},e._l(e.state.items,function(t,n){return s(\"li\",{key:n,class:[e.suit(\"item\"),t.isRefined&&e.suit(\"item\",\"selected\")]},[s(\"a\",{class:e.suit(\"link\"),attrs:{href:e.state.createURL(t),\"aria-label\":t.value+\" & Up\"},on:{click:function(s){s.preventDefault(),e.state.refine(t.value)}}},[e._l(t.stars,function(t,n){return[t?s(\"svg\",{key:n,class:[e.suit(\"starIcon\"),e.suit(\"starIcon--full\")],attrs:{\"aria-hidden\":\"true\",width:\"24\",height:\"24\"}},[s(\"use\",{attrs:{\"xlink:href\":\"#ais-RatingMenu-starSymbol\"}})]):s(\"svg\",{key:n,class:[e.suit(\"starIcon\"),e.suit(\"starIcon--empty\")],attrs:{\"aria-hidden\":\"true\",width:\"24\",height:\"24\"}},[s(\"use\",{attrs:{\"xlink:href\":\"#ais-RatingMenu-starEmptySymbol\"}})])]}),e._v(\" \"),s(\"span\",{class:e.suit(\"label\"),attrs:{\"aria-hidden\":\"true\"}},[e._t(\"andUp\",[e._v(\"& Up\")])],2),e._v(\" \"),s(\"span\",{class:e.suit(\"count\")},[e._v(e._s(t.count))])],2)])}))],{items:e.state.items,refine:e.state.refine,createURL:e.state.createURL})],2):e._e()},staticRenderFns:[],name:\"AisRatingMenu\",mixins:[L({name:\"RatingMenu\"}),x({connector:d}),I({mapStateToCanRefine:function(e){return!e.hasNoResults}})],props:{attribute:{type:String,required:!0},max:{type:Number,default:5}},computed:{widgetParams:function(){return{attribute:this.attribute,max:this.max}}}},ie={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(\"form\",{class:e.suit(\"form\"),attrs:{action:\"\",role:\"search\",novalidate:\"\"},on:{submit:function(t){return t.preventDefault(),e.onFormSubmit(t)},reset:function(t){return t.preventDefault(),e.onFormReset(t)}}},[s(\"input\",{ref:\"input\",class:e.suit(\"input\"),attrs:{type:\"search\",autocorrect:\"off\",autocapitalize:\"off\",autocomplete:\"off\",spellcheck:\"false\",required:\"\",maxlength:\"512\",\"aria-label\":\"Search\",placeholder:e.placeholder,autofocus:e.autofocus},domProps:{value:e.value},on:{focus:function(t){e.$emit(\"focus\",t)},blur:function(t){e.$emit(\"blur\",t)},input:function(t){e.$emit(\"input\",t.target.value)}}}),e._v(\" \"),s(\"button\",{class:e.suit(\"submit\"),attrs:{type:\"submit\",title:e.submitTitle,hidden:e.showLoadingIndicator&&e.shouldShowLoadingIndicator}},[e._t(\"submit-icon\",[s(\"svg\",{class:e.suit(\"submitIcon\"),attrs:{role:\"img\",xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\",viewBox:\"0 0 40 40\"}},[s(\"path\",{attrs:{d:\"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\",fillRule:\"evenodd\"}})])])],2),e._v(\" \"),s(\"button\",{class:e.suit(\"reset\"),attrs:{type:\"reset\",title:e.resetTitle,hidden:!e.value||e.showLoadingIndicator&&e.shouldShowLoadingIndicator}},[e._t(\"reset-icon\",[s(\"svg\",{class:e.suit(\"resetIcon\"),attrs:{role:\"img\",xmlns:\"http://www.w3.org/2000/svg\",width:\"1em\",height:\"1em\",viewBox:\"0 0 20 20\"}},[s(\"path\",{attrs:{d:\"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\",fillRule:\"evenodd\"}})])])],2),e._v(\" \"),e.showLoadingIndicator?s(\"span\",{class:e.suit(\"loadingIndicator\"),attrs:{hidden:!e.shouldShowLoadingIndicator}},[e._t(\"loading-indicator\",[s(\"svg\",{class:e.suit(\"loadingIcon\"),attrs:{role:\"img\",\"aria-label\":\"Results are loading\",width:\"16\",height:\"16\",xmlns:\"http://www.w3.org/2000/svg\",stroke:\"#444\",viewBox:\"0 0 38 38\"}},[s(\"g\",{attrs:{fill:\"none\",\"fill-rule\":\"evenodd\"}},[s(\"g\",{attrs:{transform:\"translate(1 1)\",\"stroke-width\":\"2\"}},[s(\"circle\",{attrs:{\"stroke-opacity\":\".5\",cx:\"18\",cy:\"18\",r:\"18\"}}),e._v(\" \"),s(\"path\",{attrs:{d:\"M36 18c0-9.94-8.06-18-18-18\"}},[s(\"animateTransform\",{attrs:{attributeName:\"transform\",type:\"rotate\",from:\"0 18 18\",to:\"360 18 18\",dur:\"1s\",repeatCount:\"indefinite\"}})],1)])])])])],2):e._e()])},staticRenderFns:[],name:\"SearchInput\",mixins:[L({name:\"SearchBox\"})],props:{placeholder:{type:String,default:\"Search here…\"},autofocus:{type:Boolean,default:!1},showLoadingIndicator:{type:Boolean,default:!1},shouldShowLoadingIndicator:{type:Boolean,default:!1},submitTitle:{type:String,default:\"Search\"},resetTitle:{type:String,default:\"Clear\"},value:{type:String,required:!0}},data:function(){return{query:\"\"}},methods:{onFormSubmit:function(){this.$refs.input.blur()},onFormReset:function(){this.$emit(\"input\",\"\"),this.$emit(\"reset\")}}},ae=function(){},re={render:function(){var e,t=this,s=t.$createElement,n=t._self._c||s;return t.state?n(\"div\",{class:[t.suit(),!t.state.canRefine&&t.suit(\"\",\"noRefinement\")]},[t._t(\"default\",[t.searchable?n(\"div\",{class:t.suit(\"searchBox\")},[n(\"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\",[n(\"div\",{class:t.suit(\"noResults\")},[t._v(\"No results.\")])],{query:t.searchForFacetValues}):t._e(),t._v(\" \"),n(\"ul\",{class:t.suit(\"list\")},t._l(t.items,function(e){return n(\"li\",{key:e.value,class:[t.suit(\"item\"),e.isRefined&&t.suit(\"item\",\"selected\")]},[t._t(\"item\",[n(\"label\",{class:t.suit(\"label\")},[n(\"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?n(\"span\",{class:t.suit(\"labelText\")},[n(\"ais-highlight\",{attrs:{attribute:\"item\",hit:e}})],1):n(\"span\",{class:t.suit(\"labelText\")},[t._v(t._s(e.label))]),t._v(\" \"),n(\"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?n(\"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})],2):t._e()},staticRenderFns:[],name:\"AisRefinementList\",components:{SearchInput:ie,AisHighlight:$},mixins:[L({name:\"RefinementList\"}),x({connector:p}),I({mapStateToCanRefine:function(e){return e.canRefine}})],props:{attribute:{type:String,required:!0},searchable:{type:Boolean,default:!1},searchablePlaceholder:{default:\"Search here…\",type:String,required:!1},operator:{default:\"or\",validator:function(e){return\"and\"===e||\"or\"===e},required:!1},limit:{type:Number,default:10,required:!1},showMoreLimit:{type:Number,default:20,required:!1},showMore:{type:Boolean,default:!1,required:!1},sortBy:{type:[Array,Function],default:function(){return[\"isRefined\",\"count:desc\",\"name:asc\"]},required:!1},transformItems:{type:Function,default:function(e){return e},required:!1}},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||ae},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=\"\"}}},oe={render:function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.state&&e.state.results?s(\"div\",{class:e.suit()},[e._t(\"default\",[s(\"p\",[e._v(\"Use this component to have a different layout based on a certain state.\")]),e._v(\" \"),e._m(0),e._v(\" \"),s(\"pre\",[e._v(e._s(Object.keys(e.state.results)))])],null,e.state.results)],2):e._e()},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t(\"p\",[this._v(\"Fill in the slot, and get access to the following things on the \"),t(\"code\",[this._v(\"slot-scope\")]),this._v(\":\")])}],name:\"AisStateResults\",mixins:[x({connector:function(e,t){return function(s){return void 0===s&&(s={}),{init:function(t){var n=t.instantSearchInstance;e({results:void 0,instantSearchInstance:n,widgetParams:s},!0)},render:function(t){var n=t.results,i=t.instantSearchInstance,a=Object.assign({},n);delete a._state,e({results:a,instantSearchInstance:i,widgetParams:s},!1)},dispose:function(){t()}}}}}),L({name:\"StateResults\"})]},ue={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(\"search-input\",{attrs:{placeholder:e.placeholder,autofocus:e.autofocus,\"show-loading-indicator\":e.showLoadingIndicator,\"should-show-loading-indicator\":e.state.isSearchStalled,\"submit-title\":e.submitTitle,\"reset-title\":e.resetTitle,\"class-names\":e.classNames},on:{focus:function(t){e.$emit(\"focus\",t)},blur:function(t){e.$emit(\"blur\",t)},reset:function(t){e.$emit(\"reset\")}},model:{value:e.currentRefinement,callback:function(t){e.currentRefinement=t},expression:\"currentRefinement\"}},[e._t(\"loading-indicator\",null,{slot:\"loading-indicator\"}),e._v(\" \"),e._t(\"submit-icon\",null,{slot:\"submit-icon\"}),e._v(\" \"),e._t(\"reset-icon\",null,{slot:\"reset-icon\"})],2)],{currentRefinement:e.currentRefinement,isSearchStalled:e.state.isSearchStalled,refine:e.state.refine})],2):e._e()},staticRenderFns:[],name:\"AisSearchBox\",mixins:[x({connector:g}),L({name:\"SearchBox\"})],components:{SearchInput:ie},props:{placeholder:{type:String,default:\"Search here…\"},autofocus:{type:Boolean,default:!1},showLoadingIndicator:{type:Boolean,default:!1},submitTitle:{type:String,default:\"Search\"},resetTitle:{type:String,default:\"Clear\"},value:{type:String,default:void 0}},data:function(){return{localValue:\"\"}},methods:{onFormSubmit:function(){this.$el.querySelector(\"input[type=search]\").blur()},onFormReset:function(){this.state.refine(\"\")}},computed:{isControlled:function(){return void 0!==this.value},currentRefinement:{get:function(){return this.isControlled&&this.value!==this.localValue&&(this.localValue=this.value,this.$emit(\"input\",this.value),this.state.refine(this.value)),this.value||this.state.query||\"\"},set:function(e){this.localValue=e,this.state.refine(e),this.isControlled&&this.$emit(\"input\",e)}}}},ce={render:function(){var e=this.$createElement;return(this._self._c||e)(\"span\",{class:this.suit(),domProps:{innerHTML:this._s(this.innerHTML)}})},staticRenderFns:[],name:\"AisSnippet\",mixins:[L({name:\"Snippet\"})],props:{hit:{type:Object,required:!0},attribute:{type:String,required:!0},highlightedTagName:{type:String,default:\"mark\"}},computed:{innerHTML:function(){return S.snippet({attribute:this.attribute,hit:this.hit,highlightedTagName:this.highlightedTagName})}}},le={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:[L({name:\"SortBy\"}),x({connector:v}),I({mapStateToCanRefine:function(e){return!e.hasNoResults}})],props:{items:{type:Array,required:!0},transformItems:{type:Function,default:function(e){return e}}},computed:{widgetParams:function(){return{items:this.items,transformItems:this.transformItems}}}},he={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(\"span\",{class:e.suit(\"text\")},[e._v(e._s(e.state.nbHits.toLocaleString())+\" results found in \"+e._s(e.state.processingTimeMS.toLocaleString())+\"ms\")])],{results:e.state.instantSearchInstance.helper.lastResults},e.state)],2):e._e()},staticRenderFns:[],name:\"AisStats\",mixins:[x({connector:_}),L({name:\"Stats\"})],computed:{widgetParams:function(){return{}}}},fe=function(e){return Boolean(e.value.count)},me={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(\"label\",{class:e.suit(\"label\")},[s(\"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(\" \"),s(\"span\",{class:e.suit(\"labelText\")},[e._v(e._s(e.label))]),e._v(\" \"),null!==e.state.value.count?s(\"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})],2):e._e()},staticRenderFns:[],name:\"AisToggleRefinement\",mixins:[L({name:\"ToggleRefinement\"}),x({connector:b}),I({mapStateToCanRefine:fe})],props:{attribute:{type:String,required:!0},label:{type:String,required:!0},on:{type:[String,Number,Boolean],required:!1,default:!0},off:{type:[String,Number,Boolean],required:!1,default:void 0}},computed:{widgetParams:function(){return{attribute:this.attribute,label:this.label,on:this.on,off:this.off}},canRefine:function(){return fe(this.state)}}},de={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(\"button\",{class:e.suit(\"button\"),attrs:{type:\"button\",title:e.state.isBrowserSupported?e.buttonTitle:e.disabledButtonTitle,disabled:!e.state.isBrowserSupported},on:{click:e.handleClick}},[e._t(\"buttonText\",[e.errorNotAllowed?s(\"svg\",e._b({},\"svg\",e.buttonSvgAttrs,!1),[s(\"line\",{attrs:{x1:\"1\",y1:\"1\",x2:\"23\",y2:\"23\"}}),e._v(\" \"),s(\"path\",{attrs:{d:\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"}}),e._v(\" \"),s(\"path\",{attrs:{d:\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"}}),e._v(\" \"),s(\"line\",{attrs:{x1:\"12\",y1:\"19\",x2:\"12\",y2:\"23\"}}),e._v(\" \"),s(\"line\",{attrs:{x1:\"8\",y1:\"23\",x2:\"16\",y2:\"23\"}})]):s(\"svg\",e._b({},\"svg\",e.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:e.state.isListening?\"currentColor\":\"none\"}}),e._v(\" \"),s(\"path\",{attrs:{d:\"M19 10v2a7 7 0 0 1-14 0v-2\"}}),e._v(\" \"),s(\"line\",{attrs:{x1:\"12\",y1:\"19\",x2:\"12\",y2:\"23\"}}),e._v(\" \"),s(\"line\",{attrs:{x1:\"8\",y1:\"23\",x2:\"16\",y2:\"23\"}})])],null,e.innerSlotProps)],2),e._v(\" \"),s(\"div\",{class:e.suit(\"status\")},[e._t(\"status\",[s(\"p\",[e._v(e._s(e.state.voiceListeningState.transcript))])],null,e.innerSlotProps)],2)],null,e.rootSlotProps)],2):e._e()},staticRenderFns:[],name:\"AisVoiceSearch\",mixins:[x({connector:y}),L({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(e){e.currentTarget.blur(),this.state.toggleListening()}}},pe=Object.freeze({AisAutocomplete:M,AisBreadcrumb:F,AisClearRefinements:k,AisConfigure:T,AisCurrentRefinements:C,AisHierarchicalMenu:U,AisHighlight:$,AisHits:q,AisHitsPerPage:E,AisInstantSearch:j,AisInstantSearchSsr:O,AisInfiniteHits:Q,AisMenu:Y,AisMenuSelect:W,AisNumericMenu:G,AisPagination:K,AisPanel:J,AisPoweredBy:X,AisQueryRuleContext:Z,AisQueryRuleCustomData:ee,AisRangeInput:se,AisRatingMenu:ne,AisRefinementList:re,AisStateResults:oe,AisSearchBox:ue,AisSnippet:ce,AisSortBy:le,AisStats:he,AisToggleRefinement:me,AisVoiceSearch:de}),ge={install:function(e){Object.keys(pe).forEach(function(t){e.component(pe[t].name,pe[t])})}},ve=w.SearchParameters,_e=w.SearchResults,be=function(e){var t=S(e),s=e.searchClient,n=e.indexName;return t.findResultsState=function(e){return t.helper=w(s,n,H({},e,{highlightPreTag:\"__ais-highlight__\",highlightPostTag:\"__/ais-highlight__\"})),t.helper.searchOnce().then(function(e){var s=e.content;t.helper.lastResults=s})},t.__forceRender=function(e){t.helper?(e.init({state:t.helper.lastResults._state,helper:t.helper,templatesConfig:{},createURL:function(){return\"#\"},onHistoryChange:function(){},instantSearchInstance:t}),e.render({state:t.helper.lastResults._state,results:t.helper.lastResults,helper:t.helper,templatesConfig:{},createURL:function(){return\"#\"},instantSearchInstance:t,searchMetadata:{isSearchStalled:!1}})):A(\"`instantsearch.findResultsState()` needs to be called when using `ais-instant-search-ssr`.\")},t.getState=function(){if(null!==t.helper&&t.helper.lastResults)return{lastResults:JSON.parse(JSON.stringify(t.helper.lastResults))}},t.hydrate=function(e){if(e&&e.lastResults){var i=e.lastResults;t.searchParameters=i._state,t.helper=w(s,n,i._state),t.helper.lastResults=new _e(new ve(i._state),i._rawResults),t.hydrated=!0}else A(\"The result of `getState()` needs to be passed to `hydrate()`.\")},{instantsearch:t,rootMixin:{provide:function(){return{$_ais:t}}}}};export default ge;export{M as AisAutocomplete,F as AisBreadcrumb,k as AisClearRefinements,T as AisConfigure,C as AisCurrentRefinements,U as AisHierarchicalMenu,$ as AisHighlight,q as AisHits,E as AisHitsPerPage,Q as AisInfiniteHits,j as AisInstantSearch,O as AisInstantSearchSsr,Y as AisMenu,W as AisMenuSelect,G as AisNumericMenu,K as AisPagination,J as AisPanel,X as AisPoweredBy,Z as AisQueryRuleContext,ee as AisQueryRuleCustomData,se as AisRangeInput,ne as AisRatingMenu,re as AisRefinementList,ue as AisSearchBox,ce as AisSnippet,le as AisSortBy,oe as AisStateResults,he as AisStats,me as AisToggleRefinement,de as AisVoiceSearch,be as createInstantSearch,L as createSuitMixin,x as createWidgetMixin};\n//# sourceMappingURL=vue-instantsearch.esm.js.map\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","'use strict';\n\nvar reduce = require('lodash/reduce');\nvar find = require('lodash/find');\nvar startsWith = require('lodash/startsWith');\n\n/**\n * Transform sort format from user friendly notation to lodash format\n * @param {string[]} sortBy array of predicate of the form \"attribute:order\"\n * @return {array.} array containing 2 elements : attributes, orders\n */\nmodule.exports = function formatSort(sortBy, defaults) {\n return reduce(sortBy, function preparePredicate(out, sortInstruction) {\n var sortInstructions = sortInstruction.split(':');\n if (defaults && sortInstructions.length === 1) {\n var similarDefault = find(defaults, function(predicate) {\n return startsWith(predicate, sortInstruction[0]);\n });\n if (similarDefault) {\n sortInstructions = similarDefault.split(':');\n }\n }\n out[0].push(sortInstructions[0]);\n out[1].push(sortInstructions[1]);\n return out;\n }, [[], []]);\n};\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","'use strict';\n\nmodule.exports = '3.35.1';\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var realNames = require('./_realNames');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","'use strict';\n\nvar invert = require('lodash/invert');\nvar keys = require('lodash/keys');\n\nvar keys2Short = {\n advancedSyntax: 'aS',\n allowTyposOnNumericTokens: 'aTONT',\n analyticsTags: 'aT',\n analytics: 'a',\n aroundLatLngViaIP: 'aLLVIP',\n aroundLatLng: 'aLL',\n aroundPrecision: 'aP',\n aroundRadius: 'aR',\n attributesToHighlight: 'aTH',\n attributesToRetrieve: 'aTR',\n attributesToSnippet: 'aTS',\n disjunctiveFacetsRefinements: 'dFR',\n disjunctiveFacets: 'dF',\n distinct: 'd',\n facetsExcludes: 'fE',\n facetsRefinements: 'fR',\n facets: 'f',\n getRankingInfo: 'gRI',\n hierarchicalFacetsRefinements: 'hFR',\n hierarchicalFacets: 'hF',\n highlightPostTag: 'hPoT',\n highlightPreTag: 'hPrT',\n hitsPerPage: 'hPP',\n ignorePlurals: 'iP',\n index: 'idx',\n insideBoundingBox: 'iBB',\n insidePolygon: 'iPg',\n length: 'l',\n maxValuesPerFacet: 'mVPF',\n minimumAroundRadius: 'mAR',\n minProximity: 'mP',\n minWordSizefor1Typo: 'mWS1T',\n minWordSizefor2Typos: 'mWS2T',\n numericFilters: 'nF',\n numericRefinements: 'nR',\n offset: 'o',\n optionalWords: 'oW',\n page: 'p',\n queryType: 'qT',\n query: 'q',\n removeWordsIfNoResults: 'rWINR',\n replaceSynonymsInHighlight: 'rSIH',\n restrictSearchableAttributes: 'rSA',\n synonyms: 's',\n tagFilters: 'tF',\n tagRefinements: 'tR',\n typoTolerance: 'tT',\n optionalTagFilters: 'oTF',\n optionalFacetFilters: 'oFF',\n snippetEllipsisText: 'sET',\n disableExactOnAttributes: 'dEOA',\n enableExactOnSingleWordQuery: 'eEOSWQ'\n};\n\nvar short2Keys = invert(keys2Short);\n\nmodule.exports = {\n /**\n * All the keys of the state, encoded.\n * @const\n */\n ENCODED_PARAMETERS: keys(short2Keys),\n /**\n * Decode a shorten attribute\n * @param {string} shortKey the shorten attribute\n * @return {string} the decoded attribute, undefined otherwise\n */\n decode: function(shortKey) {\n return short2Keys[shortKey];\n },\n /**\n * Encode an attribute into a short version\n * @param {string} key the attribute\n * @return {string} the shorten attribute\n */\n encode: function(key) {\n return keys2Short[key];\n }\n};\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","'use strict';\n\n/**\n * Functions to manipulate refinement lists\n *\n * The RefinementList is not formally defined through a prototype but is based\n * on a specific structure.\n *\n * @module SearchParameters.refinementList\n *\n * @typedef {string[]} SearchParameters.refinementList.Refinements\n * @typedef {Object.} SearchParameters.refinementList.RefinementList\n */\n\nvar isUndefined = require('lodash/isUndefined');\nvar isString = require('lodash/isString');\nvar isFunction = require('lodash/isFunction');\nvar isEmpty = require('lodash/isEmpty');\nvar defaults = require('lodash/defaults');\n\nvar reduce = require('lodash/reduce');\nvar filter = require('lodash/filter');\nvar omit = require('lodash/omit');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute] ?\n [valueAsString] :\n refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaults({}, mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(refinementList, attribute, value) {\n if (isUndefined(value)) {\n return lib.clearRefinement(refinementList, attribute);\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function(v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(refinementList, attribute, value) {\n if (isUndefined(value)) throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(refinementList, attribute, refinementType) {\n if (isUndefined(attribute)) {\n if (isEmpty(refinementList)) return refinementList;\n return {};\n } else if (isString(attribute)) {\n if (isEmpty(refinementList[attribute])) return refinementList;\n return omit(refinementList, attribute);\n } else if (isFunction(attribute)) {\n var hasChanged = false;\n\n var newRefinementList = reduce(refinementList, function(memo, values, key) {\n var facetList = filter(values, function(value) {\n return !attribute(value, key, refinementType);\n });\n\n if (!isEmpty(facetList)) {\n if (facetList.length !== values.length) hasChanged = true;\n memo[key] = facetList;\n }\n else hasChanged = true;\n\n return memo;\n }, {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean}\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var indexOf = require('lodash/indexOf');\n\n var containsRefinements = !!refinementList[attribute] &&\n refinementList[attribute].length > 0;\n\n if (isUndefined(refinementValue) || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return indexOf(refinementList[attribute], refinementValueAsString) !== -1;\n }\n};\n\nmodule.exports = lib;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n return !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var baseForOwn = require('./_baseForOwn');\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nmodule.exports = baseInverter;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var baseRest = require('./_baseRest'),\n createWrap = require('./_createWrap'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nmodule.exports = partialRight;\n","module.exports = function deprecatedMessage(previousUsage, newUsage) {\n var githubAnchorLink = previousUsage.toLowerCase()\n .replace(/[\\.\\(\\)]/g, '');\n\n return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage +\n '`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#' + githubAnchorLink;\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","var baseRest = require('./_baseRest'),\n createWrap = require('./_createWrap'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nmodule.exports = bind;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var constant = require('./constant'),\n createInverter = require('./_createInverter'),\n identity = require('./identity');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nmodule.exports = invert;\n","'use strict';\n\nvar forEach = require('lodash/forEach');\nvar filter = require('lodash/filter');\nvar map = require('lodash/map');\nvar isEmpty = require('lodash/isEmpty');\nvar indexOf = require('lodash/indexOf');\n\nfunction filterState(state, filters) {\n var partialState = {};\n var attributeFilters = filter(filters, function(f) { return f.indexOf('attribute:') !== -1; });\n var attributes = map(attributeFilters, function(aF) { return aF.split(':')[1]; });\n\n if (indexOf(attributes, '*') === -1) {\n forEach(attributes, function(attr) {\n if (state.isConjunctiveFacet(attr) && state.isFacetRefined(attr)) {\n if (!partialState.facetsRefinements) partialState.facetsRefinements = {};\n partialState.facetsRefinements[attr] = state.facetsRefinements[attr];\n }\n\n if (state.isDisjunctiveFacet(attr) && state.isDisjunctiveFacetRefined(attr)) {\n if (!partialState.disjunctiveFacetsRefinements) partialState.disjunctiveFacetsRefinements = {};\n partialState.disjunctiveFacetsRefinements[attr] = state.disjunctiveFacetsRefinements[attr];\n }\n\n if (state.isHierarchicalFacet(attr) && state.isHierarchicalFacetRefined(attr)) {\n if (!partialState.hierarchicalFacetsRefinements) partialState.hierarchicalFacetsRefinements = {};\n partialState.hierarchicalFacetsRefinements[attr] = state.hierarchicalFacetsRefinements[attr];\n }\n\n var numericRefinements = state.getNumericRefinements(attr);\n if (!isEmpty(numericRefinements)) {\n if (!partialState.numericRefinements) partialState.numericRefinements = {};\n partialState.numericRefinements[attr] = state.numericRefinements[attr];\n }\n });\n } else {\n if (!isEmpty(state.numericRefinements)) {\n partialState.numericRefinements = state.numericRefinements;\n }\n if (!isEmpty(state.facetsRefinements)) partialState.facetsRefinements = state.facetsRefinements;\n if (!isEmpty(state.disjunctiveFacetsRefinements)) {\n partialState.disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements;\n }\n if (!isEmpty(state.hierarchicalFacetsRefinements)) {\n partialState.hierarchicalFacetsRefinements = state.hierarchicalFacetsRefinements;\n }\n }\n\n var searchParameters = filter(\n filters,\n function(f) {\n return f.indexOf('attribute:') === -1;\n }\n );\n\n forEach(\n searchParameters,\n function(parameterKey) {\n partialState[parameterKey] = state[parameterKey];\n }\n );\n\n return partialState;\n}\n\nmodule.exports = filterState;\n","var metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/*!\n * Vue.js v2.6.10\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Techinically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.