{"version":3,"file":"application.js","mappings":"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","sources":["webpack://app/./node_modules/@algolia/events/events.js","webpack://app/./node_modules/algoliasearch-helper/index.js","webpack://app/./node_modules/algoliasearch-helper/src/DerivedHelper/index.js","webpack://app/./node_modules/algoliasearch-helper/src/RecommendParameters/index.js","webpack://app/./node_modules/algoliasearch-helper/src/RecommendResults/index.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchParameters/index.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchResults/index.js","webpack://app/./node_modules/algoliasearch-helper/src/algoliasearch.helper.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/compact.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/defaultsPure.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/find.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/findIndex.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/flat.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/formatSort.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/inherits.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/intersection.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/merge.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/mergeNumericMax.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/omit.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/orderBy.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/valToNumber.js","webpack://app/./node_modules/algoliasearch-helper/src/requestBuilder.js","webpack://app/./node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","webpack://app/./node_modules/algoliasearch-helper/src/utils/sortAndMergeRecommendations.js","webpack://app/./node_modules/algoliasearch-helper/src/version.js","webpack://app/./node_modules/hogan.js/lib/compiler.js","webpack://app/./node_modules/hogan.js/lib/hogan.js","webpack://app/./node_modules/hogan.js/lib/template.js","webpack://app/./node_modules/htmx.org/dist/htmx.min.js","webpack://app/./node_modules/qs/lib/formats.js","webpack://app/./node_modules/qs/lib/index.js","webpack://app/./node_modules/qs/lib/parse.js","webpack://app/./node_modules/qs/lib/stringify.js","webpack://app/./node_modules/qs/lib/utils.js","webpack://app/webpack/bootstrap","webpack://app/./node_modules/alpinejs/dist/module.esm.js","webpack://app/./node_modules/@alpinejs/intersect/dist/module.esm.js","webpack://app/./node_modules/@algolia/client-common/dist/common.js","webpack://app/./node_modules/algoliasearch/dist/lite/builds/browser.js","webpack://app/./node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js","webpack://app/./node_modules/instantsearch.js/es/lib/suit.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/escape-html.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/highlight.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/helpers/reverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/snippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/reverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/serializer.js","webpack://app/./node_modules/instantsearch.js/es/helpers/insights.js","webpack://app/./node_modules/instantsearch.js/es/helpers/get-insights-anonymous-user-token.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isEqual.js","webpack://app/./node_modules/instantsearch.js/es/lib/infiniteHitsCache/sessionStorage.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/noop.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/find.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getAppIdAndApiKey.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/uuid.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/render-args.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/routers/history.js","webpack://app/./node_modules/instantsearch.js/es/lib/stateMappings/simple.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/documentation.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/uniq.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/findIndex.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/addWidgetId.js","webpack://app/./node_modules/instantsearch.js/es/widgets/index/index.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","webpack://app/./node_modules/instantsearch.js/es/lib/createHelpers.js","webpack://app/./node_modules/instantsearch.js/es/lib/formatNumber.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/defer.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hydrateSearchClient.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hydrateRecommendCache.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","webpack://app/./node_modules/instantsearch.js/es/lib/version.js","webpack://app/./node_modules/instantsearch.js/es/lib/InstantSearch.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/logger.js","webpack://app/./node_modules/instantsearch.js/es/index.js","webpack://app/./node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","webpack://app/./node_modules/instantsearch.js/es/widgets/configure/configure.js","webpack://app/./node_modules/instantsearch-ui-components/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://app/./node_modules/instantsearch-ui-components/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://app/./node_modules/instantsearch-ui-components/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://app/./node_modules/instantsearch-ui-components/dist/es/lib/cx.js","webpack://app/./node_modules/instantsearch-ui-components/dist/es/components/Hits.js","webpack://app/./node_modules/preact/dist/preact.module.js","webpack://app/./node_modules/instantsearch-ui-components/dist/es/components/Highlight.js","webpack://app/./node_modules/htm/dist/htm.module.js","webpack://app/./node_modules/htm/preact/index.module.js","webpack://app/./node_modules/instantsearch.js/es/components/InternalHighlight/InternalHighlight.js","webpack://app/./node_modules/instantsearch.js/es/components/Highlight/Highlight.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/toArray.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/Highlight.js","webpack://app/./node_modules/instantsearch.js/es/components/ReverseHighlight/ReverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/ReverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/components/Snippet/Snippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/Snippet.js","webpack://app/./node_modules/instantsearch.js/es/components/ReverseSnippet/ReverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/ReverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/lib/templating/renderTemplate.js","webpack://app/./node_modules/instantsearch.js/es/components/Template/Template.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/checkRendering.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getObjectType.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","webpack://app/./node_modules/instantsearch.js/es/connectors/hits/connectHits.js","webpack://app/./node_modules/instantsearch.js/es/lib/insights/client.js","webpack://app/./node_modules/instantsearch.js/es/lib/insights/listener.js","webpack://app/./node_modules/instantsearch.js/es/lib/templating/prepareTemplateProps.js","webpack://app/./node_modules/instantsearch.js/es/widgets/hits/defaultTemplates.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/omit.js","webpack://app/./node_modules/instantsearch.js/es/widgets/hits/hits.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getContainerNode.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isDomElement.js","webpack://app/./node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","webpack://app/./app/javascript/application.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\n// EventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","'use strict';\n\nvar AlgoliaSearchHelper = require('./src/algoliasearch.helper');\nvar RecommendParameters = require('./src/RecommendParameters');\nvar RecommendResults = require('./src/RecommendResults');\nvar SearchParameters = require('./src/SearchParameters');\nvar SearchResults = require('./src/SearchResults');\n\n/**\n * The algoliasearchHelper module is the function that will let its\n * contains everything needed to use the Algoliasearch\n * Helper. It is a also a function that instanciate the helper.\n * To use the helper, you also need the Algolia JS client v3.\n * @example\n * //using the UMD build\n * var client = algoliasearch('latency', '6be0576ff61c053d5f9a3225e2a90f76');\n * var helper = algoliasearchHelper(client, 'bestbuy', {\n * facets: ['shipping'],\n * disjunctiveFacets: ['category']\n * });\n * helper.on('result', function(event) {\n * console.log(event.results);\n * });\n * helper\n * .toggleFacetRefinement('category', 'Movies & TV Shows')\n * .toggleFacetRefinement('shipping', 'Free shipping')\n * .search();\n * @example\n * // The helper is an event emitter using the node API\n * helper.on('result', updateTheResults);\n * helper.once('result', updateTheResults);\n * helper.removeListener('result', updateTheResults);\n * helper.removeAllListeners('result');\n * @module algoliasearchHelper\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the name of the index to query\n * @param {SearchParameters|object} opts an object defining the initial config of the search. It doesn't have to be a {SearchParameters}, just an object containing the properties you need from it.\n * @param {SearchResultsOptions|object} searchResultsOptions an object defining the options to use when creating the search results.\n * @return {AlgoliaSearchHelper} The helper instance\n */\nfunction algoliasearchHelper(client, index, opts, searchResultsOptions) {\n return new AlgoliaSearchHelper(client, index, opts, searchResultsOptions);\n}\n\n/**\n * The version currently used\n * @member module:algoliasearchHelper.version\n * @type {number}\n */\nalgoliasearchHelper.version = require('./src/version');\n\n/**\n * Constructor for the Helper.\n * @member module:algoliasearchHelper.AlgoliaSearchHelper\n * @type {AlgoliaSearchHelper}\n */\nalgoliasearchHelper.AlgoliaSearchHelper = AlgoliaSearchHelper;\n\n/**\n * Constructor for the object containing all the parameters of the search.\n * @member module:algoliasearchHelper.SearchParameters\n * @type {SearchParameters}\n */\nalgoliasearchHelper.SearchParameters = SearchParameters;\n\n/**\n * Constructor for the object containing all the parameters for Recommend.\n * @member module:algoliasearchHelper.RecommendParameters\n * @type {RecommendParameters}\n */\nalgoliasearchHelper.RecommendParameters = RecommendParameters;\n\n/**\n * Constructor for the object containing the results of the search.\n * @member module:algoliasearchHelper.SearchResults\n * @type {SearchResults}\n */\nalgoliasearchHelper.SearchResults = SearchResults;\n\n/**\n * Constructor for the object containing the results for Recommend.\n * @member module:algoliasearchHelper.RecommendResults\n * @type {RecommendResults}\n */\nalgoliasearchHelper.RecommendResults = RecommendResults;\n\nmodule.exports = algoliasearchHelper;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\n\nvar inherits = require('../functions/inherits');\n\n/**\n * A DerivedHelper is a way to create sub requests to\n * Algolia from a main helper.\n * @class\n * @classdesc The DerivedHelper provides an event based interface for search callbacks:\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * @param {AlgoliaSearchHelper} mainHelper the main helper\n * @param {function} fn the function to create the derived state for search\n * @param {function} recommendFn the function to create the derived state for recommendations\n */\nfunction DerivedHelper(mainHelper, fn, recommendFn) {\n this.main = mainHelper;\n this.fn = fn;\n this.recommendFn = recommendFn;\n this.lastResults = null;\n this.lastRecommendResults = null;\n}\n\ninherits(DerivedHelper, EventEmitter);\n\n/**\n * Detach this helper from the main helper\n * @return {undefined}\n * @throws Error if the derived helper is already detached\n */\nDerivedHelper.prototype.detach = function () {\n this.removeAllListeners();\n this.main.detachDerivedHelper(this);\n};\n\nDerivedHelper.prototype.getModifiedState = function (parameters) {\n return this.fn(parameters);\n};\n\nDerivedHelper.prototype.getModifiedRecommendState = function (parameters) {\n return this.recommendFn(parameters);\n};\n\nmodule.exports = DerivedHelper;\n","'use strict';\n\n/**\n * RecommendParameters is the data structure that contains all the information\n * usable for getting recommendations from the Algolia API. It doesn't do the\n * search itself, nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It\n * will be provided when needed.\n * @constructor\n * @classdesc contains all the parameters for recommendations\n * @param {RecommendParametersOptions} opts the options to create the object\n */\nfunction RecommendParameters(opts) {\n opts = opts || {};\n this.params = opts.params || [];\n}\n\nRecommendParameters.prototype = {\n constructor: RecommendParameters,\n\n addParams: function (params) {\n var newParams = this.params.slice();\n\n newParams.push(params);\n\n return new RecommendParameters({ params: newParams });\n },\n\n removeParams: function (id) {\n return new RecommendParameters({\n params: this.params.filter(function (param) {\n return param.$$id !== id;\n }),\n });\n },\n\n addFrequentlyBoughtTogether: function (params) {\n return this.addParams(\n Object.assign({}, params, { model: 'bought-together' })\n );\n },\n\n addRelatedProducts: function (params) {\n return this.addParams(\n Object.assign({}, params, { model: 'related-products' })\n );\n },\n\n addTrendingItems: function (params) {\n return this.addParams(\n Object.assign({}, params, { model: 'trending-items' })\n );\n },\n\n addTrendingFacets: function (params) {\n return this.addParams(\n Object.assign({}, params, { model: 'trending-facets' })\n );\n },\n\n addLookingSimilar: function (params) {\n return this.addParams(\n Object.assign({}, params, { model: 'looking-similar' })\n );\n },\n\n _buildQueries: function (indexName, cache) {\n return this.params\n .filter(function (params) {\n return cache[params.$$id] === undefined;\n })\n .map(function (params) {\n var query = Object.assign({}, params, {\n indexName: indexName,\n // @TODO: remove this if it ever gets handled by the API\n threshold: params.threshold || 0,\n });\n delete query.$$id;\n\n return query;\n });\n },\n};\n\nmodule.exports = RecommendParameters;\n","'use strict';\n\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {RecommendParameters} state state that led to the response\n * @param {Record} results the results from algolia client\n **/\nfunction RecommendResults(state, results) {\n this._state = state;\n this._rawResults = {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n\n state.params.forEach(function (param) {\n var id = param.$$id;\n self[id] = results[id];\n self._rawResults[id] = results[id];\n });\n}\n\nRecommendResults.prototype = {\n constructor: RecommendResults,\n};\n\nmodule.exports = RecommendResults;\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 defaultsPure = require('../functions/defaultsPure');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/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 defaultsPure(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(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\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(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n 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(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n\n memo[key] = facetList;\n\n return memo;\n },\n {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\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} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n","'use strict';\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar find = require('../functions/find');\nvar intersection = require('../functions/intersection');\nvar merge = require('../functions/merge');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\nvar valToNumber = require('../functions/valToNumber');\nvar isValidUserToken = require('../utils/isValidUserToken');\n\nvar RefinementList = require('./RefinementList');\n\n/**\n * isEqual, but only for numeric refinement values, possible values:\n * - 5\n * - [5]\n * - [[5]]\n * - [[5,5],[4]]\n * @param {any} a numeric refinement value\n * @param {any} b numeric refinement value\n * @return {boolean} true if the values are equal\n */\nfunction isEqualNumericRefinement(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (\n a.length === b.length &&\n a.every(function (el, i) {\n return isEqualNumericRefinement(b[i], el);\n })\n );\n }\n return a === b;\n}\n\n/**\n * like _.find but using deep equality to be able to use it\n * to find arrays.\n * @private\n * @param {any[]} array array to search into (elements are base or array of base)\n * @param {any} searchedValue the value we're looking for (base or array of base)\n * @return {any} the searched value or undefined\n */\nfunction findArray(array, searchedValue) {\n return find(array, function (currentValue) {\n return isEqualNumericRefinement(currentValue, searchedValue);\n });\n}\n\n/**\n * The facet list is the structure used to store the list of values used to\n * filter a single attribute.\n * @typedef {string[]} SearchParameters.FacetList\n */\n\n/**\n * Structure to store numeric filters with the operator as the key. The supported operators\n * are `=`, `>`, `<`, `>=`, `<=` and `!=`.\n * @typedef {Object.>} SearchParameters.OperatorList\n */\n\n/**\n * SearchParameters is the data structure that contains all the information\n * usable for making a search to Algolia API. It doesn't do the search itself,\n * nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It will\n * be provided when needed. This object is documented for reference as you'll\n * get it from events generated by the {@link AlgoliaSearchHelper}.\n * If need be, instantiate the Helper from the factory function {@link SearchParameters.make}\n * @constructor\n * @classdesc contains all the parameters of a search\n * @param {object|SearchParameters} newParameters existing parameters or partial object\n * for the properties of a new SearchParameters\n * @see SearchParameters.make\n * @example SearchParameters of the first query in\n * the instant search demo\n{\n \"query\": \"\",\n \"disjunctiveFacets\": [\n \"customerReviewCount\",\n \"category\",\n \"salePrice_range\",\n \"manufacturer\"\n ],\n \"maxValuesPerFacet\": 30,\n \"page\": 0,\n \"hitsPerPage\": 10,\n \"facets\": [\n \"type\",\n \"shipping\"\n ]\n}\n */\nfunction SearchParameters(newParameters) {\n var params = newParameters\n ? SearchParameters._parseNumbers(newParameters)\n : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n // eslint-disable-next-line no-console\n console.warn(\n '[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}'\n );\n }\n /**\n * This attribute contains the list of all the conjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.facets = params.facets || [];\n /**\n * This attribute contains the list of all the disjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.disjunctiveFacets = params.disjunctiveFacets || [];\n /**\n * This attribute contains the list of all the hierarchical facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * Hierarchical facets are a sub type of disjunctive facets that\n * let you filter faceted attributes hierarchically.\n * @member {string[]|object[]}\n */\n this.hierarchicalFacets = params.hierarchicalFacets || [];\n\n // Refinements\n /**\n * This attribute contains all the filters that need to be\n * applied on the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsRefinements = params.facetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * excluded from the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters excluded for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsExcludes = params.facetsExcludes || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the disjunctive facets. Each facet must be properly\n * defined in the `disjunctiveFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.disjunctiveFacetsRefinements = params.disjunctiveFacetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the numeric attributes.\n *\n * The key is the name of the attribute, and the value is the\n * filters to apply to this attribute.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `numericFilters` attribute.\n * @member {Object.}\n */\n this.numericRefinements = params.numericRefinements || {};\n /**\n * This attribute contains all the tags used to refine the query.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `tagFilters` attribute.\n * @member {string[]}\n */\n this.tagRefinements = params.tagRefinements || [];\n /**\n * This attribute contains all the filters that need to be\n * applied on the hierarchical facets. Each facet must be properly\n * defined in the `hierarchicalFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name. The FacetList values\n * are structured as a string that contain the values for each level\n * separated by the configured separator.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.hierarchicalFacetsRefinements =\n params.hierarchicalFacetsRefinements || {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(params).forEach(function (paramName) {\n var isKeyKnown = SearchParameters.PARAMETERS.indexOf(paramName) !== -1;\n var isValueDefined = params[paramName] !== undefined;\n\n if (!isKeyKnown && isValueDefined) {\n self[paramName] = params[paramName];\n }\n });\n}\n\n/**\n * List all the properties in SearchParameters and therefore all the known Algolia properties\n * This doesn't contain any beta/hidden features.\n * @private\n */\nSearchParameters.PARAMETERS = Object.keys(new SearchParameters());\n\n/**\n * @private\n * @param {object} partialState full or part of a state\n * @return {object} a new object with the number keys as number\n */\nSearchParameters._parseNumbers = function (partialState) {\n // Do not parse numbers again in SearchParameters, they ought to be parsed already\n if (partialState instanceof SearchParameters) return partialState;\n\n var numbers = {};\n\n var numberKeys = [\n 'aroundPrecision',\n 'aroundRadius',\n 'getRankingInfo',\n 'minWordSizefor2Typos',\n 'minWordSizefor1Typo',\n 'page',\n 'maxValuesPerFacet',\n 'distinct',\n 'minimumAroundRadius',\n 'hitsPerPage',\n 'minProximity',\n ];\n\n numberKeys.forEach(function (k) {\n var value = partialState[k];\n if (typeof value === 'string') {\n var parsedValue = parseFloat(value);\n // global isNaN is ok to use here, value is only number or NaN\n numbers[k] = isNaN(parsedValue) ? value : parsedValue;\n }\n });\n\n // there's two formats of insideBoundingBox, we need to parse\n // the one which is an array of float geo rectangles\n if (Array.isArray(partialState.insideBoundingBox)) {\n numbers.insideBoundingBox = partialState.insideBoundingBox.map(function (\n geoRect\n ) {\n if (Array.isArray(geoRect)) {\n return geoRect.map(function (value) {\n return parseFloat(value);\n });\n }\n return geoRect;\n });\n }\n\n if (partialState.numericRefinements) {\n var numericRefinements = {};\n Object.keys(partialState.numericRefinements).forEach(function (attribute) {\n var operators = partialState.numericRefinements[attribute] || {};\n numericRefinements[attribute] = {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator];\n var parsedValues = values.map(function (v) {\n if (Array.isArray(v)) {\n return v.map(function (vPrime) {\n if (typeof vPrime === 'string') {\n return parseFloat(vPrime);\n }\n return vPrime;\n });\n } else if (typeof v === 'string') {\n return parseFloat(v);\n }\n return v;\n });\n numericRefinements[attribute][operator] = parsedValues;\n });\n });\n numbers.numericRefinements = numericRefinements;\n }\n\n return merge(partialState, numbers);\n};\n\n/**\n * Factory for SearchParameters\n * @param {object|SearchParameters} newParameters existing parameters or partial\n * object for the properties of a new SearchParameters\n * @return {SearchParameters} frozen instance of SearchParameters\n */\nSearchParameters.make = function makeSearchParameters(newParameters) {\n var instance = new SearchParameters(newParameters);\n\n var hierarchicalFacets = newParameters.hierarchicalFacets || [];\n hierarchicalFacets.forEach(function (facet) {\n if (facet.rootPath) {\n var currentRefinement = instance.getHierarchicalRefinement(facet.name);\n\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].indexOf(facet.rootPath) !== 0\n ) {\n instance = instance.clearRefinements(facet.name);\n }\n\n // get it again in case it has been cleared\n currentRefinement = instance.getHierarchicalRefinement(facet.name);\n if (currentRefinement.length === 0) {\n instance = instance.toggleHierarchicalFacetRefinement(\n facet.name,\n facet.rootPath\n );\n }\n }\n });\n\n return instance;\n};\n\n/**\n * Validates the new parameters based on the previous state\n * @param {SearchParameters} currentState the current state\n * @param {object|SearchParameters} parameters the new parameters to set\n * @return {Error|null} Error if the modification is invalid, null otherwise\n */\nSearchParameters.validate = function (currentState, parameters) {\n var params = parameters || {};\n\n if (\n currentState.tagFilters &&\n params.tagRefinements &&\n params.tagRefinements.length > 0\n ) {\n return new Error(\n '[Tags] Cannot switch from the managed tag API to the advanced API. It is probably ' +\n 'an error, if it is really what you want, you should first clear the tags with clearTags method.'\n );\n }\n\n if (currentState.tagRefinements.length > 0 && params.tagFilters) {\n return new Error(\n '[Tags] Cannot switch from the advanced tag API to the managed API. It is probably ' +\n 'an error, if it is not, you should first clear the tags with clearTags method.'\n );\n }\n\n if (\n currentState.numericFilters &&\n params.numericRefinements &&\n objectHasKeys(params.numericRefinements)\n ) {\n return new Error(\n \"[Numeric filters] Can't switch from the advanced to the managed API. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n if (objectHasKeys(currentState.numericRefinements) && params.numericFilters) {\n return new Error(\n \"[Numeric filters] Can't switch from the managed API to the advanced. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n return null;\n};\n\nSearchParameters.prototype = {\n constructor: SearchParameters,\n\n /**\n * Remove all refinements (disjunctive + conjunctive + excludes + numeric filters)\n * @method\n * @param {undefined|string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {SearchParameters} new instance with filters cleared\n */\n clearRefinements: function clearRefinements(attribute) {\n var patch = {\n numericRefinements: this._clearNumericRefinements(attribute),\n facetsRefinements: RefinementList.clearRefinement(\n this.facetsRefinements,\n attribute,\n 'conjunctiveFacet'\n ),\n facetsExcludes: RefinementList.clearRefinement(\n this.facetsExcludes,\n attribute,\n 'exclude'\n ),\n disjunctiveFacetsRefinements: RefinementList.clearRefinement(\n this.disjunctiveFacetsRefinements,\n attribute,\n 'disjunctiveFacet'\n ),\n hierarchicalFacetsRefinements: RefinementList.clearRefinement(\n this.hierarchicalFacetsRefinements,\n attribute,\n 'hierarchicalFacet'\n ),\n };\n if (\n patch.numericRefinements === this.numericRefinements &&\n patch.facetsRefinements === this.facetsRefinements &&\n patch.facetsExcludes === this.facetsExcludes &&\n patch.disjunctiveFacetsRefinements ===\n this.disjunctiveFacetsRefinements &&\n patch.hierarchicalFacetsRefinements === this.hierarchicalFacetsRefinements\n ) {\n return this;\n }\n return this.setQueryParameters(patch);\n },\n /**\n * Remove all the refined tags from the SearchParameters\n * @method\n * @return {SearchParameters} new instance with tags cleared\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0)\n return this;\n\n return this.setQueryParameters({\n tagFilters: undefined,\n tagRefinements: [],\n });\n },\n /**\n * Set the index.\n * @method\n * @param {string} index the index name\n * @return {SearchParameters} new instance\n */\n setIndex: function setIndex(index) {\n if (index === this.index) return this;\n\n return this.setQueryParameters({\n index: index,\n });\n },\n /**\n * Query setter\n * @method\n * @param {string} newQuery value for the new query\n * @return {SearchParameters} new instance\n */\n setQuery: function setQuery(newQuery) {\n if (newQuery === this.query) return this;\n\n return this.setQueryParameters({\n query: newQuery,\n });\n },\n /**\n * Page setter\n * @method\n * @param {number} newPage new page number\n * @return {SearchParameters} new instance\n */\n setPage: function setPage(newPage) {\n if (newPage === this.page) return this;\n\n return this.setQueryParameters({\n page: newPage,\n });\n },\n /**\n * Facets setter\n * The facets are the simple facets, used for conjunctive (and) faceting.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for conjunctive faceting\n * @return {SearchParameters} new instance\n */\n setFacets: function setFacets(facets) {\n return this.setQueryParameters({\n facets: facets,\n });\n },\n /**\n * Disjunctive facets setter\n * Change the list of disjunctive (or) facets the helper chan handle.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for disjunctive faceting\n * @return {SearchParameters} new instance\n */\n setDisjunctiveFacets: function setDisjunctiveFacets(facets) {\n return this.setQueryParameters({\n disjunctiveFacets: facets,\n });\n },\n /**\n * HitsPerPage setter\n * Hits per page represents the number of hits retrieved for this query\n * @method\n * @param {number} n number of hits retrieved per page of results\n * @return {SearchParameters} new instance\n */\n setHitsPerPage: function setHitsPerPage(n) {\n if (this.hitsPerPage === n) return this;\n\n return this.setQueryParameters({\n hitsPerPage: n,\n });\n },\n /**\n * typoTolerance setter\n * Set the value of typoTolerance\n * @method\n * @param {string} typoTolerance new value of typoTolerance (\"true\", \"false\", \"min\" or \"strict\")\n * @return {SearchParameters} new instance\n */\n setTypoTolerance: function setTypoTolerance(typoTolerance) {\n if (this.typoTolerance === typoTolerance) return this;\n\n return this.setQueryParameters({\n typoTolerance: typoTolerance,\n });\n },\n /**\n * Add a numeric filter for a given attribute\n * When value is an array, they are combined with OR\n * When value is a single value, it will combined with AND\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} operator operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number | number[]} value value of the filter\n * @return {SearchParameters} new instance\n * @example\n * // for price = 50 or 40\n * state.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * state.addNumericRefinement('size', '=', 38);\n * state.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function (attribute, operator, value) {\n var val = valToNumber(value);\n\n if (this.isNumericRefined(attribute, operator, val)) return this;\n\n var mod = merge({}, this.numericRefinements);\n\n mod[attribute] = merge({}, mod[attribute]);\n\n if (mod[attribute][operator]) {\n // Array copy\n mod[attribute][operator] = mod[attribute][operator].slice();\n // Add the element. Concat can't be used here because value can be an array.\n mod[attribute][operator].push(val);\n } else {\n mod[attribute][operator] = [val];\n }\n\n return this.setQueryParameters({\n numericRefinements: mod,\n });\n },\n /**\n * Get the list of conjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getConjunctiveRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsRefinements[facetName] || [];\n },\n /**\n * Get the list of disjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getDisjunctiveRefinements: function (facetName) {\n if (!this.isDisjunctiveFacet(facetName)) {\n return [];\n }\n return this.disjunctiveFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of hierarchical refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getHierarchicalRefinement: function (facetName) {\n // we send an array but we currently do not support multiple\n // hierarchicalRefinements for a hierarchicalFacet\n return this.hierarchicalFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of exclude refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getExcludeRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsExcludes[facetName] || [];\n },\n\n /**\n * Remove all the numeric filter for a given (attribute, operator)\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} [operator] operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number} [number] the value to be removed\n * @return {SearchParameters} new instance\n */\n removeNumericRefinement: function (attribute, operator, number) {\n var paramValue = number;\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return (\n key === attribute &&\n value.op === operator &&\n isEqualNumericRefinement(value.val, valToNumber(paramValue))\n );\n }),\n });\n } else if (operator !== undefined) {\n if (!this.isNumericRefined(attribute, operator)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return key === attribute && value.op === operator;\n }),\n });\n }\n\n if (!this.isNumericRefined(attribute)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (value, key) {\n return key === attribute;\n }),\n });\n },\n /**\n * Get the list of numeric refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {SearchParameters.OperatorList} list of refinements\n */\n getNumericRefinements: function (facetName) {\n return this.numericRefinements[facetName] || {};\n },\n /**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\n getNumericRefinement: function (attribute, operator) {\n return (\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator]\n );\n },\n /**\n * Clear numeric filters.\n * @method\n * @private\n * @param {string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {Object.} new numeric refinements\n */\n _clearNumericRefinements: function _clearNumericRefinements(attribute) {\n if (attribute === undefined) {\n if (!objectHasKeys(this.numericRefinements)) {\n return this.numericRefinements;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(this.numericRefinements, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n var numericRefinements = this.numericRefinements;\n var newNumericRefinements = Object.keys(numericRefinements).reduce(\n function (memo, key) {\n var operators = numericRefinements[key];\n var operatorList = {};\n\n operators = operators || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n var outValues = [];\n values.forEach(function (value) {\n var predicateResult = attribute(\n { val: value, op: operator },\n key,\n 'numeric'\n );\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n memo[key] = operatorList;\n\n return memo;\n },\n {}\n );\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Add a facet to the facets attribute of the helper configuration, if it\n * isn't already present.\n * @method\n * @param {string} facet facet name to add\n * @return {SearchParameters} new instance\n */\n addFacet: function addFacet(facet) {\n if (this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n facets: this.facets.concat([facet]),\n });\n },\n /**\n * Add a disjunctive facet to the disjunctiveFacets attribute of the helper\n * configuration, if it isn't already present.\n * @method\n * @param {string} facet disjunctive facet name to add\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacet: function addDisjunctiveFacet(facet) {\n if (this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.concat([facet]),\n });\n },\n /**\n * Add a hierarchical facet to the hierarchicalFacets attribute of the helper\n * configuration.\n * @method\n * @param {object} hierarchicalFacet hierarchical facet to add\n * @return {SearchParameters} new instance\n * @throws will throw an error if a hierarchical facet with the same name was already declared\n */\n addHierarchicalFacet: function addHierarchicalFacet(hierarchicalFacet) {\n if (this.isHierarchicalFacet(hierarchicalFacet.name)) {\n throw new Error(\n 'Cannot declare two hierarchical facets with the same name: `' +\n hierarchicalFacet.name +\n '`'\n );\n }\n\n return this.setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.concat([hierarchicalFacet]),\n });\n },\n /**\n * Add a refinement on a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Exclude a value from a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the exclusion on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Adds a refinement on a disjunctive facet.\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n if (\n RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * addTagRefinement adds a tag to the list used to filter the results\n * @param {string} tag tag to be added\n * @return {SearchParameters} new instance\n */\n addTagRefinement: function addTagRefinement(tag) {\n if (this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.concat(tag),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Remove a facet from the facets attribute of the helper configuration, if it\n * is present.\n * @method\n * @param {string} facet facet name to remove\n * @return {SearchParameters} new instance\n */\n removeFacet: function removeFacet(facet) {\n if (!this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n facets: this.facets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a disjunctive facet from the disjunctiveFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet disjunctive facet name to remove\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacet: function removeDisjunctiveFacet(facet) {\n if (!this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a hierarchical facet from the hierarchicalFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet hierarchical facet name to remove\n * @return {SearchParameters} new instance\n */\n removeHierarchicalFacet: function removeHierarchicalFacet(facet) {\n if (!this.isHierarchicalFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.filter(function (f) {\n return f.name !== facet;\n }),\n });\n },\n /**\n * Remove a refinement set on facet. If a value is provided, it will clear the\n * refinement for the given value, otherwise it will clear all the refinement\n * values for the faceted attribute.\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} [value] value used to filter\n * @return {SearchParameters} new instance\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a negative refinement on a facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a refinement on a disjunctive facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n if (\n !RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a tag from the list of tag refinements\n * @method\n * @param {string} tag the tag to remove\n * @return {SearchParameters} new instance\n */\n removeTagRefinement: function removeTagRefinement(tag) {\n if (!this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.filter(function (t) {\n return t !== tag;\n }),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n * @deprecated since version 2.19.0, see {@link SearchParameters#toggleFacetRefinement}\n */\n toggleRefinement: function toggleRefinement(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n */\n toggleFacetRefinement: function toggleFacetRefinement(facet, value) {\n if (this.isHierarchicalFacet(facet)) {\n return this.toggleHierarchicalFacetRefinement(facet, value);\n } else if (this.isConjunctiveFacet(facet)) {\n return this.toggleConjunctiveFacetRefinement(facet, value);\n } else if (this.isDisjunctiveFacet(facet)) {\n return this.toggleDisjunctiveFacetRefinement(facet, value);\n }\n\n throw new Error(\n 'Cannot refine the undeclared facet ' +\n facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets'\n );\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration'\n );\n }\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facet)\n );\n\n var mod = {};\n\n var upOneOrMultipleLevel =\n this.hierarchicalFacetsRefinements[facet] !== undefined &&\n this.hierarchicalFacetsRefinements[facet].length > 0 &&\n // remove current refinement:\n // refinement was 'beer > IPA', call is toggleRefine('beer > IPA'), refinement should be `beer`\n (this.hierarchicalFacetsRefinements[facet][0] === value ||\n // remove a parent refinement of the current refinement:\n // - refinement was 'beer > IPA > Flying dog'\n // - call is toggleRefine('beer > IPA')\n // - refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0].indexOf(\n value + separator\n ) === 0);\n\n if (upOneOrMultipleLevel) {\n if (value.indexOf(separator) === -1) {\n // go back to root level\n mod[facet] = [];\n } else {\n mod[facet] = [value.slice(0, value.lastIndexOf(separator))];\n }\n } else {\n mod[facet] = [value];\n }\n\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Adds a refinement on a hierarchical facet.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is refined\n */\n addHierarchicalFacetRefinement: function (facet, path) {\n if (this.isHierarchicalFacetRefined(facet)) {\n throw new Error(facet + ' is already refined.');\n }\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration.'\n );\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is not refined\n */\n removeHierarchicalFacetRefinement: function (facet) {\n if (!this.isHierarchicalFacetRefined(facet)) {\n return this;\n }\n var mod = {};\n mod[facet] = [];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters} new instance\n */\n toggleTagRefinement: function toggleTagRefinement(tag) {\n if (this.isTagRefined(tag)) {\n return this.removeTagRefinement(tag);\n }\n\n return this.addTagRefinement(tag);\n },\n /**\n * Test if the facet name is from one of the disjunctive facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a disjunctive facet\n */\n isDisjunctiveFacet: function (facet) {\n return this.disjunctiveFacets.indexOf(facet) > -1;\n },\n /**\n * Test if the facet name is from one of the hierarchical facets\n * @method\n * @param {string} facetName facet name to test\n * @return {boolean} true if facetName is a hierarchical facet\n */\n isHierarchicalFacet: function (facetName) {\n return this.getHierarchicalFacetByName(facetName) !== undefined;\n },\n /**\n * Test if the facet name is from one of the conjunctive/normal facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a conjunctive facet\n */\n isConjunctiveFacet: function (facet) {\n return this.facets.indexOf(facet) > -1;\n },\n /**\n * Returns true if the facet is refined, either for a specific value or in\n * general.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value, optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isFacetRefined: function isFacetRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains exclusions or if a specific value is\n * excluded.\n *\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isExcludeRefined: function isExcludeRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsExcludes, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n );\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n return false;\n }\n\n var refinements = this.getHierarchicalRefinement(facet);\n\n if (!value) {\n return refinements.length > 0;\n }\n\n return refinements.indexOf(value) !== -1;\n },\n /**\n * Test if the triple (attribute, operator, value) is already refined.\n * If only the attribute and the operator are provided, it tests if the\n * contains any refinement value.\n * @method\n * @param {string} attribute attribute for which the refinement is applied\n * @param {string} [operator] operator of the refinement\n * @param {string} [value] value of the refinement\n * @return {boolean} true if it is refined\n */\n isNumericRefined: function isNumericRefined(attribute, operator, value) {\n if (value === undefined && operator === undefined) {\n return Boolean(this.numericRefinements[attribute]);\n }\n\n var isOperatorDefined =\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator] !== undefined;\n\n if (value === undefined || !isOperatorDefined) {\n return isOperatorDefined;\n }\n\n var parsedValue = valToNumber(value);\n var isAttributeValueDefined =\n findArray(this.numericRefinements[attribute][operator], parsedValue) !==\n undefined;\n\n return isOperatorDefined && isAttributeValueDefined;\n },\n /**\n * Returns true if the tag refined, false otherwise\n * @method\n * @param {string} tag the tag to check\n * @return {boolean} true if tag is refined\n */\n isTagRefined: function isTagRefined(tag) {\n return this.tagRefinements.indexOf(tag) !== -1;\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // attributes used for numeric filter can also be disjunctive\n var disjunctiveNumericRefinedFacets = intersection(\n Object.keys(this.numericRefinements).filter(function (facet) {\n return Object.keys(self.numericRefinements[facet]).length > 0;\n }),\n this.disjunctiveFacets\n );\n\n return Object.keys(this.disjunctiveFacetsRefinements)\n .filter(function (facet) {\n return self.disjunctiveFacetsRefinements[facet].length > 0;\n })\n .concat(disjunctiveNumericRefinedFacets)\n .concat(this.getRefinedHierarchicalFacets())\n .sort();\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n return intersection(\n // enforce the order between the two arrays,\n // so that refinement name index === hierarchical facet index\n this.hierarchicalFacets.map(function (facet) {\n return facet.name;\n }),\n Object.keys(this.hierarchicalFacetsRefinements).filter(function (facet) {\n return self.hierarchicalFacetsRefinements[facet].length > 0;\n })\n ).sort();\n },\n /**\n * Returned the list of all disjunctive facets not refined\n * @method\n * @return {string[]} returns the list of facets that are not refined\n */\n getUnrefinedDisjunctiveFacets: function () {\n var refinedFacets = this.getRefinedDisjunctiveFacets();\n\n return this.disjunctiveFacets.filter(function (f) {\n return refinedFacets.indexOf(f) === -1;\n });\n },\n\n managedParameters: [\n 'index',\n\n 'facets',\n 'disjunctiveFacets',\n 'facetsRefinements',\n 'hierarchicalFacets',\n 'facetsExcludes',\n\n 'disjunctiveFacetsRefinements',\n 'numericRefinements',\n 'tagRefinements',\n 'hierarchicalFacetsRefinements',\n ],\n\n getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(this).forEach(function (paramName) {\n var paramValue = self[paramName];\n if (\n managedParameters.indexOf(paramName) === -1 &&\n paramValue !== undefined\n ) {\n queryParams[paramName] = paramValue;\n }\n });\n\n return queryParams;\n },\n /**\n * Let the user set a specific value for a given parameter. Will return the\n * same instance if the parameter is invalid or if the value is the same as the\n * previous one.\n * @method\n * @param {string} parameter the parameter name\n * @param {any} value the value to be set, must be compliant with the definition\n * of the attribute on the object\n * @return {SearchParameters} the updated state\n */\n setQueryParameter: function setParameter(parameter, value) {\n if (this[parameter] === value) return this;\n\n var modification = {};\n\n modification[parameter] = value;\n\n return this.setQueryParameters(modification);\n },\n /**\n * Let the user set any of the parameters with a plain object.\n * @method\n * @param {object} params all the keys and the values to be updated\n * @return {SearchParameters} a new updated instance\n */\n setQueryParameters: function setQueryParameters(params) {\n if (!params) return this;\n\n var error = SearchParameters.validate(this, params);\n\n if (error) {\n throw error;\n }\n\n // eslint-disable-next-line consistent-this\n var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function (acc, key) {\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(function (\n previous,\n key\n ) {\n var isPreviousValueDefined = previous[key] !== undefined;\n var isNextValueDefined = nextWithNumbers[key] !== undefined;\n\n if (isPreviousValueDefined && !isNextValueDefined) {\n return omit(previous, [key]);\n }\n\n if (isNextValueDefined) {\n previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject);\n\n return new this.constructor(nextPlainObject);\n },\n\n /**\n * Returns a new instance with the page reset. Two scenarios possible:\n * the page is omitted -> return the given instance\n * the page is set -> return a new instance with a page of 0\n * @return {SearchParameters} a new updated instance\n */\n resetPage: function () {\n if (this.page === undefined) {\n return this;\n }\n\n return this.setPage(0);\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSortBy: function (hierarchicalFacet) {\n return hierarchicalFacet.sortBy || ['isRefined:desc', 'name:asc'];\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSeparator: function (hierarchicalFacet) {\n return hierarchicalFacet.separator || ' > ';\n },\n\n /**\n * Helper function to get the hierarchicalFacet prefix path or null\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.rootPath or null as default\n */\n _getHierarchicalRootPath: function (hierarchicalFacet) {\n return hierarchicalFacet.rootPath || null;\n },\n\n /**\n * Helper function to check if we show the parent level of the hierarchicalFacet\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.showParentLevel or true as default\n */\n _getHierarchicalShowParentLevel: function (hierarchicalFacet) {\n if (typeof hierarchicalFacet.showParentLevel === 'boolean') {\n return hierarchicalFacet.showParentLevel;\n }\n return true;\n },\n\n /**\n * Helper function to get the hierarchicalFacet by it's name\n * @param {string} hierarchicalFacetName the hierarchicalFacet name\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function (hierarchicalFacetName) {\n return find(this.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacetName;\n });\n },\n\n /**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\n getHierarchicalFacetBreadcrumb: function (facetName) {\n if (!this.isHierarchicalFacet(facetName)) {\n return [];\n }\n\n var refinement = this.getHierarchicalRefinement(facetName)[0];\n if (!refinement) return [];\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facetName)\n );\n var path = refinement.split(separator);\n return path.map(function (part) {\n return part.trim();\n });\n },\n\n toString: function () {\n return JSON.stringify(this, null, 2);\n },\n};\n\n/**\n * Callback used for clearRefinement method\n * @callback SearchParameters.clearCallback\n * @param {OperatorList|FacetList} value the value of the filter\n * @param {string} key the current attribute name\n * @param {string} type `numeric`, `disjunctiveFacet`, `conjunctiveFacet`, `hierarchicalFacet` or `exclude`\n * depending on the type of facet\n * @return {boolean} `true` if the element should be removed. `false` otherwise.\n */\nmodule.exports = SearchParameters;\n","'use strict';\n\nmodule.exports = generateTrees;\n\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar prepareHierarchicalFacetSortBy = require('../functions/formatSort');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nfunction generateTrees(state) {\n return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {\n var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];\n var hierarchicalFacetRefinement =\n (state.hierarchicalFacetsRefinements[hierarchicalFacet.name] &&\n state.hierarchicalFacetsRefinements[hierarchicalFacet.name][0]) ||\n '';\n var hierarchicalSeparator =\n state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var hierarchicalRootPath =\n state._getHierarchicalRootPath(hierarchicalFacet);\n var hierarchicalShowParentLevel =\n state._getHierarchicalShowParentLevel(hierarchicalFacet);\n var sortBy = prepareHierarchicalFacetSortBy(\n state._getHierarchicalFacetSortBy(hierarchicalFacet)\n );\n\n var rootExhaustive = hierarchicalFacetResult.every(function (facetResult) {\n return facetResult.exhaustive;\n });\n\n var generateTreeFn = generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n hierarchicalFacetRefinement\n );\n\n var results = hierarchicalFacetResult;\n\n if (hierarchicalRootPath) {\n results = hierarchicalFacetResult.slice(\n hierarchicalRootPath.split(hierarchicalSeparator).length\n );\n }\n\n return results.reduce(generateTreeFn, {\n name: state.hierarchicalFacets[hierarchicalFacetIndex].name,\n count: null, // root level, no count\n isRefined: true, // root level, always refined\n path: null, // root level, no path\n escapedValue: null,\n exhaustive: rootExhaustive,\n data: null,\n });\n };\n}\n\nfunction generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n currentRefinement\n) {\n return function generateTree(\n hierarchicalTree,\n hierarchicalFacetResult,\n currentHierarchicalLevel\n ) {\n var parent = hierarchicalTree;\n\n if (currentHierarchicalLevel > 0) {\n var level = 0;\n\n parent = hierarchicalTree;\n\n while (level < currentHierarchicalLevel) {\n /**\n * @type {object[]]} hierarchical data\n */\n var data = parent && Array.isArray(parent.data) ? parent.data : [];\n parent = find(data, function (subtree) {\n return subtree.isRefined;\n });\n level++;\n }\n }\n\n // we found a refined parent, let's add current level data under it\n if (parent) {\n // filter values in case an object has multiple categories:\n // {\n // categories: {\n // level0: ['beers', 'bières'],\n // level1: ['beers > IPA', 'bières > Belges']\n // }\n // }\n //\n // If parent refinement is `beers`, then we do not want to have `bières > Belges`\n // showing up\n\n var picked = Object.keys(hierarchicalFacetResult.data)\n .map(function (facetValue) {\n return [facetValue, hierarchicalFacetResult.data[facetValue]];\n })\n .filter(function (tuple) {\n var facetValue = tuple[0];\n return onlyMatchingTree(\n facetValue,\n parent.path || hierarchicalRootPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n );\n });\n\n parent.data = orderBy(\n picked.map(function (tuple) {\n var facetValue = tuple[0];\n var facetCount = tuple[1];\n\n return format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n unescapeFacetValue(currentRefinement),\n hierarchicalFacetResult.exhaustive\n );\n }),\n sortBy[0],\n sortBy[1]\n );\n }\n\n return hierarchicalTree;\n };\n}\n\n// eslint-disable-next-line max-params\nfunction onlyMatchingTree(\n facetValue,\n parentPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n) {\n // we want the facetValue is a child of hierarchicalRootPath\n if (\n hierarchicalRootPath &&\n (facetValue.indexOf(hierarchicalRootPath) !== 0 ||\n hierarchicalRootPath === facetValue)\n ) {\n return false;\n }\n\n // we always want root levels (only when there is no prefix path)\n return (\n (!hierarchicalRootPath &&\n facetValue.indexOf(hierarchicalSeparator) === -1) ||\n // if there is a rootPath, being root level mean 1 level under rootPath\n (hierarchicalRootPath &&\n facetValue.split(hierarchicalSeparator).length -\n hierarchicalRootPath.split(hierarchicalSeparator).length ===\n 1) ||\n // if current refinement is a root level and current facetValue is a root level,\n // keep the facetValue\n (facetValue.indexOf(hierarchicalSeparator) === -1 &&\n currentRefinement.indexOf(hierarchicalSeparator) === -1) ||\n // currentRefinement is a child of the facet value\n currentRefinement.indexOf(facetValue) === 0 ||\n // facetValue is a child of the current parent, add it\n (facetValue.indexOf(parentPath + hierarchicalSeparator) === 0 &&\n (hierarchicalShowParentLevel ||\n facetValue.indexOf(currentRefinement) === 0))\n );\n}\n\nfunction format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n currentRefinement,\n exhaustive\n) {\n var parts = facetValue.split(hierarchicalSeparator);\n return {\n name: parts[parts.length - 1].trim(),\n path: facetValue,\n escapedValue: escapeFacetValue(facetValue),\n count: facetCount,\n isRefined:\n currentRefinement === facetValue ||\n currentRefinement.indexOf(facetValue + hierarchicalSeparator) === 0,\n exhaustive: exhaustive,\n data: null,\n };\n}\n","'use strict';\n\nvar compact = require('../functions/compact');\nvar defaultsPure = require('../functions/defaultsPure');\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar findIndex = require('../functions/findIndex');\nvar formatSort = require('../functions/formatSort');\nvar mergeNumericMax = require('../functions/mergeNumericMax');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nvar generateHierarchicalTree = require('./generate-hierarchical-tree');\n\n/**\n * @typedef SearchResults.Facet\n * @type {object}\n * @property {string} name name of the attribute in the record\n * @property {object} data the faceting data: value, number of entries\n * @property {object} stats undefined unless facet_stats is retrieved from algolia\n */\n\n/**\n * @typedef SearchResults.HierarchicalFacet\n * @type {object}\n * @property {string} name name of the current value given the hierarchical level, trimmed.\n * If root node, you get the facet name\n * @property {number} count number of objects matching this hierarchical value\n * @property {string} path the current hierarchical value full path\n * @property {boolean} isRefined `true` if the current value was refined, `false` otherwise\n * @property {HierarchicalFacet[]} data sub values for the current level\n */\n\n/**\n * @typedef SearchResults.FacetValue\n * @type {object}\n * @property {string} name the facet value itself\n * @property {number} count times this facet appears in the results\n * @property {boolean} isRefined is the facet currently selected\n * @property {boolean} isExcluded is the facet currently excluded (only for conjunctive facets)\n */\n\n/**\n * @typedef Refinement\n * @type {object}\n * @property {string} type the type of filter used:\n * `numeric`, `facet`, `exclude`, `disjunctive`, `hierarchical`\n * @property {string} attributeName name of the attribute used for filtering\n * @property {string} name the value of the filter\n * @property {number} numericValue the value as a number. Only for numeric filters.\n * @property {string} operator the operator used. Only for numeric filters.\n * @property {number} count the number of computed hits for this filter. Only on facets.\n * @property {boolean} exhaustive if the count is exhaustive\n */\n\n/**\n * Turn an array of attributes in an object of attributes with their position in the array as value\n * @param {string[]} attributes the list of attributes in the record\n * @return {object} the list of attributes indexed by attribute name\n */\nfunction getIndices(attributes) {\n var indices = {};\n\n attributes.forEach(function (val, idx) {\n indices[val] = idx;\n });\n\n return indices;\n}\n\nfunction assignFacetStats(dest, facetStats, key) {\n if (facetStats && facetStats[key]) {\n dest.stats = facetStats[key];\n }\n}\n\n/**\n * @typedef {Object} HierarchicalFacet\n * @property {string} name\n * @property {string[]} attributes\n */\n\n/**\n * @param {HierarchicalFacet[]} hierarchicalFacets All hierarchical facets\n * @param {string} hierarchicalAttributeName The name of the hierarchical attribute\n * @return {HierarchicalFacet} The hierarchical facet matching the attribute name\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(\n hierarchicalFacets,\n function facetKeyMatchesAttribute(hierarchicalFacet) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n }\n );\n}\n\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {SearchParameters} state state that led to the response\n * @param {array.} results the results from algolia client\n * @param {object} options options to control results content\n * @example SearchResults of the first query in\n * the instant search demo\n{\n \"hitsPerPage\": 10,\n \"processingTimeMS\": 2,\n \"facets\": [\n {\n \"name\": \"type\",\n \"data\": {\n \"HardGood\": 6627,\n \"BlackTie\": 550,\n \"Music\": 665,\n \"Software\": 131,\n \"Game\": 456,\n \"Movie\": 1571\n },\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"Free shipping\": 5507\n },\n \"name\": \"shipping\"\n }\n ],\n \"hits\": [\n {\n \"thumbnailImage\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_54x108_s.gif\",\n \"_highlightResult\": {\n \"shortDescription\": {\n \"matchLevel\": \"none\",\n \"value\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"matchedWords\": []\n },\n \"category\": {\n \"matchLevel\": \"none\",\n \"value\": \"Computer Security Software\",\n \"matchedWords\": []\n },\n \"manufacturer\": {\n \"matchedWords\": [],\n \"value\": \"Webroot\",\n \"matchLevel\": \"none\"\n },\n \"name\": {\n \"value\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"matchedWords\": [],\n \"matchLevel\": \"none\"\n }\n },\n \"image\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_105x210_sc.jpg\",\n \"shipping\": \"Free shipping\",\n \"bestSellingRank\": 4,\n \"shortDescription\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"url\": \"http://www.bestbuy.com/site/webroot-secureanywhere-internet-security-3-devi…d=1219060687969&skuId=1688832&cmp=RMX&ky=2d3GfEmNIzjA0vkzveHdZEBgpPCyMnLTJ\",\n \"name\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"category\": \"Computer Security Software\",\n \"salePrice_range\": \"1 - 50\",\n \"objectID\": \"1688832\",\n \"type\": \"Software\",\n \"customerReviewCount\": 5980,\n \"salePrice\": 49.99,\n \"manufacturer\": \"Webroot\"\n },\n ....\n ],\n \"nbHits\": 10000,\n \"disjunctiveFacets\": [\n {\n \"exhaustive\": false,\n \"data\": {\n \"5\": 183,\n \"12\": 112,\n \"7\": 149,\n ...\n },\n \"name\": \"customerReviewCount\",\n \"stats\": {\n \"max\": 7461,\n \"avg\": 157.939,\n \"min\": 1\n }\n },\n {\n \"data\": {\n \"Printer Ink\": 142,\n \"Wireless Speakers\": 60,\n \"Point & Shoot Cameras\": 48,\n ...\n },\n \"name\": \"category\",\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"> 5000\": 2,\n \"1 - 50\": 6524,\n \"501 - 2000\": 566,\n \"201 - 500\": 1501,\n \"101 - 200\": 1360,\n \"2001 - 5000\": 47\n },\n \"name\": \"salePrice_range\"\n },\n {\n \"data\": {\n \"Dynex™\": 202,\n \"Insignia™\": 230,\n \"PNY\": 72,\n ...\n },\n \"name\": \"manufacturer\",\n \"exhaustive\": false\n }\n ],\n \"query\": \"\",\n \"nbPages\": 100,\n \"page\": 0,\n \"index\": \"bestbuy\"\n}\n **/\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0] || {};\n\n this._rawResults = results;\n\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // https://www.algolia.com/doc/api-reference/api-methods/search/#response\n Object.keys(mainSubResponse).forEach(function (key) {\n self[key] = mainSubResponse[key];\n });\n\n // Make every key of the result options reachable from the instance\n var opts = defaultsPure(options, {\n persistHierarchicalRootCount: false,\n });\n Object.keys(opts).forEach(function (key) {\n self[key] = opts[key];\n });\n\n /**\n * query used to generate the results\n * @name query\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The query as parsed by the engine given all the rules.\n * @name parsedQuery\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * all the records that match the search parameters. Each record is\n * augmented with a new attribute `_highlightResult`\n * which is an object keyed by attribute and with the following properties:\n * - `value` : the value of the facet highlighted (html)\n * - `matchLevel`: `full`, `partial` or `none`, depending on how the query terms match\n * @name hits\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * index where the results come from\n * @name index\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * number of hits per page requested\n * @name hitsPerPage\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of hits of this query on the index\n * @name nbHits\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of pages with respect to the number of hits per page and the total number of hits\n * @name nbPages\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * current page\n * @name page\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The position if the position was guessed by IP.\n * @name aroundLatLng\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"48.8637,2.3615\",\n */\n /**\n * The radius computed by Algolia.\n * @name automaticRadius\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"126792922\",\n */\n /**\n * String identifying the server used to serve this request.\n *\n * getRankingInfo needs to be set to `true` for this to be returned\n *\n * @name serverUsed\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"c7-use-2.algolia.net\",\n */\n /**\n * Boolean that indicates if the computation of the counts did time out.\n * @deprecated\n * @name timeoutCounts\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Boolean that indicates if the computation of the hits did time out.\n * @deprecated\n * @name timeoutHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the counts of the facets is exhaustive\n * @name exhaustiveFacetsCount\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the number of hits is exhaustive\n * @name exhaustiveNbHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Contains the userData if they are set by a [query rule](https://www.algolia.com/doc/guides/query-rules/query-rules-overview/).\n * @name userData\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * queryID is the unique identifier of the query used to generate the current search results.\n * This value is only available if the `clickAnalytics` search parameter is set to `true`.\n * @name queryID\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n\n /**\n * sum of the processing time of all the queries\n * @name processingTimeMS\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n this.processingTimeMS = results.reduce(function (sum, result) {\n return result.processingTimeMS === undefined\n ? sum\n : sum + result.processingTimeMS;\n }, 0);\n\n /**\n * disjunctive facets results\n * @member {SearchResults.Facet[]}\n */\n this.disjunctiveFacets = [];\n /**\n * disjunctive facets results\n * @member {SearchResults.HierarchicalFacet[]}\n */\n this.hierarchicalFacets = state.hierarchicalFacets.map(\n function initFutureTree() {\n return [];\n }\n );\n /**\n * other facets results\n * @member {SearchResults.Facet[]}\n */\n this.facets = [];\n\n var disjunctiveFacets = state.getRefinedDisjunctiveFacets();\n\n var facetsIndices = getIndices(state.facets);\n var disjunctiveFacetsIndices = getIndices(state.disjunctiveFacets);\n var nextDisjunctiveResult = 1;\n\n // Since we send request only for disjunctive facets that have been refined,\n // we get the facets information from the first, general, response.\n\n var mainFacets = mainSubResponse.facets || {};\n\n Object.keys(mainFacets).forEach(function (facetKey) {\n var facetValueObject = mainFacets[facetKey];\n\n var hierarchicalFacet = findMatchingHierarchicalFacetFromAttributeName(\n state.hierarchicalFacets,\n facetKey\n );\n\n if (hierarchicalFacet) {\n // Place the hierarchicalFacet data at the correct index depending on\n // the attributes order that was defined at the helper initialization\n var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);\n var idxAttributeName = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n self.hierarchicalFacets[idxAttributeName][facetIndex] = {\n attribute: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n } else {\n var isFacetDisjunctive = state.disjunctiveFacets.indexOf(facetKey) !== -1;\n var isFacetConjunctive = state.facets.indexOf(facetKey) !== -1;\n var position;\n\n if (isFacetDisjunctive) {\n position = disjunctiveFacetsIndices[facetKey];\n self.disjunctiveFacets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n if (isFacetConjunctive) {\n position = facetsIndices[facetKey];\n self.facets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.facets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n }\n });\n\n // Make sure we do not keep holes within the hierarchical facets\n this.hierarchicalFacets = compact(this.hierarchicalFacets);\n\n // aggregate the refined disjunctive facets\n disjunctiveFacets.forEach(function (disjunctiveFacet) {\n var result = results[nextDisjunctiveResult];\n var facets = result && result.facets ? result.facets : {};\n var hierarchicalFacet = state.getHierarchicalFacetByName(disjunctiveFacet);\n\n // There should be only item in facets.\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n\n var position;\n\n if (hierarchicalFacet) {\n position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n self.hierarchicalFacets[position][attributeIndex].data =\n self.persistHierarchicalRootCount\n ? mergeNumericMax(\n self.hierarchicalFacets[position][attributeIndex].data,\n facetResults\n )\n : defaultsPure(\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n } else {\n position = disjunctiveFacetsIndices[dfacet];\n\n var dataFromMainRequest =\n (mainSubResponse.facets && mainSubResponse.facets[dfacet]) || {};\n\n self.disjunctiveFacets[position] = {\n name: dfacet,\n data: mergeNumericMax(dataFromMainRequest, facetResults),\n exhaustive: result.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n result.facets_stats,\n dfacet\n );\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function (\n refinementValue\n ) {\n // add the disjunctive refinements if it is no more retrieved\n if (\n !self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(\n unescapeFacetValue(refinementValue)\n ) > -1\n ) {\n self.disjunctiveFacets[position].data[refinementValue] = 0;\n }\n });\n }\n }\n });\n nextDisjunctiveResult++;\n });\n\n // if we have some parent level values for hierarchical facets, merge them\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n // if we are already at a root refinement (or no refinement at all), there is no\n // root level values request\n if (\n currentRefinement.length === 0 ||\n currentRefinement[0].split(separator).length < 2\n ) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function (result) {\n var facets = result && result.facets ? result.facets : {};\n\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n var position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),\n // then the disjunctive values will be `beers` (count: 100),\n // but we do not want to display\n // | beers (100)\n // > IPA (5)\n // We want\n // | beers (5)\n // > IPA (5)\n // @MAJOR: remove this legacy behaviour in next major version\n var defaultData = {};\n\n if (\n currentRefinement.length > 0 &&\n !self.persistHierarchicalRootCount\n ) {\n var root = currentRefinement[0].split(separator)[0];\n defaultData[root] =\n self.hierarchicalFacets[position][attributeIndex].data[root];\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(\n defaultData,\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n });\n\n nextDisjunctiveResult++;\n });\n });\n\n // add the excludes\n Object.keys(state.facetsExcludes).forEach(function (facetName) {\n var excludes = state.facetsExcludes[facetName];\n var position = facetsIndices[facetName];\n\n self.facets[position] = {\n name: facetName,\n data: mainFacets[facetName],\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n excludes.forEach(function (facetValue) {\n self.facets[position] = self.facets[position] || { name: facetName };\n self.facets[position].data = self.facets[position].data || {};\n self.facets[position].data[facetValue] = 0;\n });\n });\n\n /**\n * @type {Array}\n */\n this.hierarchicalFacets = this.hierarchicalFacets.map(\n generateHierarchicalTree(state)\n );\n\n /**\n * @type {Array}\n */\n this.facets = compact(this.facets);\n /**\n * @type {Array}\n */\n this.disjunctiveFacets = compact(this.disjunctiveFacets);\n\n this._state = state;\n}\n\n/**\n * Get a facet object with its name\n * @deprecated\n * @param {string} name name of the faceted attribute\n * @return {SearchResults.Facet} the facet object\n */\nSearchResults.prototype.getFacetByName = function (name) {\n function predicate(facet) {\n return facet.name === name;\n }\n\n return (\n find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate)\n );\n};\n\n/**\n * Get the facet values of a specified attribute from a SearchResults object.\n * @private\n * @param {SearchResults} results the search results to search in\n * @param {string} attribute name of the faceted attribute to search for\n * @return {array|object} facet values. For the hierarchical facets it is an object.\n */\nfunction extractNormalizedFacetValues(results, attribute) {\n function predicate(facet) {\n return facet.name === attribute;\n }\n\n if (results._state.isConjunctiveFacet(attribute)) {\n var facet = find(results.facets, predicate);\n if (!facet) return [];\n\n return Object.keys(facet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: facet.data[name],\n isRefined: results._state.isFacetRefined(attribute, value),\n isExcluded: results._state.isExcludeRefined(attribute, name),\n };\n });\n } else if (results._state.isDisjunctiveFacet(attribute)) {\n var disjunctiveFacet = find(results.disjunctiveFacets, predicate);\n if (!disjunctiveFacet) return [];\n\n return Object.keys(disjunctiveFacet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: disjunctiveFacet.data[name],\n isRefined: results._state.isDisjunctiveFacetRefined(attribute, value),\n };\n });\n } else if (results._state.isHierarchicalFacet(attribute)) {\n var hierarchicalFacetValues = find(results.hierarchicalFacets, predicate);\n if (!hierarchicalFacetValues) return hierarchicalFacetValues;\n\n var hierarchicalFacet =\n results._state.getHierarchicalFacetByName(attribute);\n var separator =\n results._state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var currentRefinement = unescapeFacetValue(\n results._state.getHierarchicalRefinement(attribute)[0] || ''\n );\n\n if (currentRefinement.indexOf(hierarchicalFacet.rootPath) === 0) {\n currentRefinement = currentRefinement.replace(\n hierarchicalFacet.rootPath + separator,\n ''\n );\n }\n\n var currentRefinementSplit = currentRefinement.split(separator);\n currentRefinementSplit.unshift(attribute);\n\n setIsRefined(hierarchicalFacetValues, currentRefinementSplit, 0);\n\n return hierarchicalFacetValues;\n }\n\n return undefined;\n}\n\n/**\n * Set the isRefined of a hierarchical facet result based on the current state.\n * @param {SearchResults.HierarchicalFacet} item Hierarchical facet to fix\n * @param {string[]} currentRefinement array of parts of the current hierarchical refinement\n * @param {number} depth recursion depth in the currentRefinement\n * @return {undefined} function mutates the item\n */\nfunction setIsRefined(item, currentRefinement, depth) {\n item.isRefined =\n item.name === (currentRefinement[depth] && currentRefinement[depth].trim());\n if (item.data) {\n item.data.forEach(function (child) {\n setIsRefined(child, currentRefinement, depth + 1);\n });\n }\n}\n\n/**\n * Sort nodes of a hierarchical or disjunctive facet results\n * @private\n * @param {function} sortFn sort function to apply\n * @param {HierarchicalFacet|Array} node node upon which we want to apply the sort\n * @param {string[]} names attribute names\n * @param {number} [level=0] current index in the names array\n * @return {HierarchicalFacet|Array} sorted node\n */\nfunction recSort(sortFn, node, names, level) {\n level = level || 0;\n\n if (Array.isArray(node)) {\n return sortFn(node, names[level]);\n }\n\n if (!node.data || node.data.length === 0) {\n return node;\n }\n\n var children = node.data.map(function (childNode) {\n return recSort(sortFn, childNode, names, level + 1);\n });\n var sortedChildren = sortFn(children, names[level]);\n var newNode = defaultsPure({ data: sortedChildren }, node);\n return newNode;\n}\n\nSearchResults.DEFAULT_SORT = ['isRefined:desc', 'count:desc', 'name:asc'];\n\nfunction vanillaSortFn(order, data) {\n return data.sort(order);\n}\n\n/**\n * @typedef FacetOrdering\n * @type {Object}\n * @property {string[]} [order]\n * @property {'count' | 'alpha' | 'hidden'} [sortRemainingBy]\n */\n\n/**\n * Sorts facet arrays via their facet ordering\n * @param {Array} facetValues the values\n * @param {FacetOrdering} facetOrdering the ordering\n * @returns {Array} the sorted facet values\n */\nfunction sortViaFacetOrdering(facetValues, facetOrdering) {\n var orderedFacets = [];\n var remainingFacets = [];\n var hide = facetOrdering.hide || [];\n var order = facetOrdering.order || [];\n\n /**\n * an object with the keys being the values in order, the values their index:\n * ['one', 'two'] -> { one: 0, two: 1 }\n */\n var reverseOrder = order.reduce(function (acc, name, i) {\n acc[name] = i;\n return acc;\n }, {});\n\n facetValues.forEach(function (item) {\n // hierarchical facets get sorted using their raw name\n var name = item.path || item.name;\n var hidden = hide.indexOf(name) > -1;\n if (!hidden && reverseOrder[name] !== undefined) {\n orderedFacets[reverseOrder[name]] = item;\n } else if (!hidden) {\n remainingFacets.push(item);\n }\n });\n\n orderedFacets = orderedFacets.filter(function (facet) {\n return facet;\n });\n\n var sortRemainingBy = facetOrdering.sortRemainingBy;\n var ordering;\n if (sortRemainingBy === 'hidden') {\n return orderedFacets;\n } else if (sortRemainingBy === 'alpha') {\n ordering = [\n ['path', 'name'],\n ['asc', 'asc'],\n ];\n } else {\n ordering = [['count'], ['desc']];\n }\n\n return orderedFacets.concat(\n orderBy(remainingFacets, ordering[0], ordering[1])\n );\n}\n\n/**\n * @param {SearchResults} results the search results class\n * @param {string} attribute the attribute to retrieve ordering of\n * @returns {FacetOrdering | undefined} the facet ordering\n */\nfunction getFacetOrdering(results, attribute) {\n return (\n results.renderingContent &&\n results.renderingContent.facetOrdering &&\n results.renderingContent.facetOrdering.values &&\n results.renderingContent.facetOrdering.values[attribute]\n );\n}\n\n/**\n * Get a the list of values for a given facet attribute. Those values are sorted\n * refinement first, descending count (bigger value on top), and name ascending\n * (alphabetical order). The sort formula can overridden using either string based\n * predicates or a function.\n *\n * This method will return all the values returned by the Algolia engine plus all\n * the values already refined. This means that it can happen that the\n * `maxValuesPerFacet` [configuration](https://www.algolia.com/doc/rest-api/search#param-maxValuesPerFacet)\n * might not be respected if you have facet values that are already refined.\n * @param {string} attribute attribute name\n * @param {object} opts configuration options.\n * @param {boolean} [opts.facetOrdering]\n * Force the use of facetOrdering from the result if a sortBy is present. If\n * sortBy isn't present, facetOrdering will be used automatically.\n * @param {Array. | function} opts.sortBy\n * When using strings, it consists of\n * the name of the [FacetValue](#SearchResults.FacetValue) or the\n * [HierarchicalFacet](#SearchResults.HierarchicalFacet) attributes with the\n * order (`asc` or `desc`). For example to order the value by count, the\n * argument would be `['count:asc']`.\n *\n * If only the attribute name is specified, the ordering defaults to the one\n * specified in the default value for this attribute.\n *\n * When not specified, the order is\n * ascending. This parameter can also be a function which takes two facet\n * values and should return a number, 0 if equal, 1 if the first argument is\n * bigger or -1 otherwise.\n *\n * The default value for this attribute `['isRefined:desc', 'count:desc', 'name:asc']`\n * @return {FacetValue[]|HierarchicalFacet|undefined} depending on the type of facet of\n * the attribute requested (hierarchical, disjunctive or conjunctive)\n * @example\n * helper.on('result', function(event){\n * //get values ordered only by name ascending using the string predicate\n * event.results.getFacetValues('city', {sortBy: ['name:asc']});\n * //get values ordered only by count ascending using a function\n * event.results.getFacetValues('city', {\n * // this is equivalent to ['count:asc']\n * sortBy: function(a, b) {\n * if (a.count === b.count) return 0;\n * if (a.count > b.count) return 1;\n * if (b.count > a.count) return -1;\n * }\n * });\n * });\n */\nSearchResults.prototype.getFacetValues = function (attribute, opts) {\n var facetValues = extractNormalizedFacetValues(this, attribute);\n if (!facetValues) {\n return undefined;\n }\n\n var options = defaultsPure(opts, {\n sortBy: SearchResults.DEFAULT_SORT,\n // if no sortBy is given, attempt to sort based on facetOrdering\n // if it is given, we still allow to sort via facet ordering first\n facetOrdering: !(opts && opts.sortBy),\n });\n\n // eslint-disable-next-line consistent-this\n var results = this;\n var attributes;\n if (Array.isArray(facetValues)) {\n attributes = [attribute];\n } else {\n var config = results._state.getHierarchicalFacetByName(facetValues.name);\n attributes = config.attributes;\n }\n\n return recSort(\n function (data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (facetOrdering) {\n return sortViaFacetOrdering(data, facetOrdering);\n }\n }\n\n if (Array.isArray(options.sortBy)) {\n var order = formatSort(options.sortBy, SearchResults.DEFAULT_SORT);\n return orderBy(data, order[0], order[1]);\n } else if (typeof options.sortBy === 'function') {\n return vanillaSortFn(options.sortBy, data);\n }\n throw new Error(\n 'options.sortBy is optional but if defined it must be ' +\n 'either an array of string (predicates) or a sorting function'\n );\n },\n facetValues,\n attributes\n );\n};\n\n/**\n * Returns the facet stats if attribute is defined and the facet contains some.\n * Otherwise returns undefined.\n * @param {string} attribute name of the faceted attribute\n * @return {object} The stats of the facet\n */\nSearchResults.prototype.getFacetStats = function (attribute) {\n if (this._state.isConjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.facets, attribute);\n } else if (this._state.isDisjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.disjunctiveFacets, attribute);\n }\n\n return undefined;\n};\n\n/**\n * @typedef {Object} FacetListItem\n * @property {string} name\n */\n\n/**\n * @param {FacetListItem[]} facetList (has more items, but enough for here)\n * @param {string} facetName The attribute to look for\n * @return {object|undefined} The stats of the facet\n */\nfunction getFacetStatsIfAvailable(facetList, facetName) {\n var data = find(facetList, function (facet) {\n return facet.name === facetName;\n });\n return data && data.stats;\n}\n\n/**\n * Returns all refinements for all filters + tags. It also provides\n * additional information: count and exhaustiveness for each filter.\n *\n * See the [refinement type](#Refinement) for an exhaustive view of the available\n * data.\n *\n * Note that for a numeric refinement, results are grouped per operator, this\n * means that it will return responses for operators which are empty.\n *\n * @return {Array.} all the refinements\n */\nSearchResults.prototype.getRefinements = function () {\n var state = this._state;\n // eslint-disable-next-line consistent-this\n var results = this;\n var res = [];\n\n Object.keys(state.facetsRefinements).forEach(function (attributeName) {\n state.facetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'facet', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function (attributeName) {\n state.facetsExcludes[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'exclude', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(\n state,\n 'disjunctive',\n attributeName,\n name,\n results.disjunctiveFacets\n )\n );\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getHierarchicalRefinement(\n state,\n attributeName,\n name,\n results.hierarchicalFacets\n )\n );\n });\n });\n\n Object.keys(state.numericRefinements).forEach(function (attributeName) {\n var operators = state.numericRefinements[attributeName];\n Object.keys(operators).forEach(function (operator) {\n operators[operator].forEach(function (value) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: value,\n numericValue: value,\n operator: operator,\n });\n });\n });\n });\n\n state.tagRefinements.forEach(function (name) {\n res.push({ type: 'tag', attributeName: '_tags', name: name });\n });\n\n return res;\n};\n\n/**\n * @typedef {Object} Facet\n * @property {string} name\n * @property {Object} data\n * @property {boolean} exhaustive\n */\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} type the type of the refinement\n * @param {string} attributeName The attribute of the facet\n * @param {*} name The name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {Refinement} the refinement\n */\nfunction getRefinement(state, type, attributeName, name, resultsFacets) {\n var facet = find(resultsFacets, function (f) {\n return f.name === attributeName;\n });\n var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n\n return {\n type: type,\n attributeName: attributeName,\n name: name,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} attributeName the attribute of the hierarchical facet\n * @param {string} name the name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {HierarchicalFacet} the hierarchical facet\n */\nfunction getHierarchicalRefinement(state, attributeName, name, resultsFacets) {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var separator = state._getHierarchicalFacetSeparator(facetDeclaration);\n var split = name.split(separator);\n var rootFacet = find(resultsFacets, function (facet) {\n return facet.name === attributeName;\n });\n\n var facet = split.reduce(function (intermediateFacet, part) {\n var newFacet =\n intermediateFacet &&\n find(intermediateFacet.data, function (f) {\n return f.name === part;\n });\n return newFacet !== undefined ? newFacet : intermediateFacet;\n }, rootFacet);\n\n var count = (facet && facet.count) || 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n var path = (facet && facet.path) || '';\n\n return {\n type: 'hierarchical',\n attributeName: attributeName,\n name: path,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\nmodule.exports = SearchResults;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\n\nvar DerivedHelper = require('./DerivedHelper');\nvar escapeFacetValue = require('./functions/escapeFacetValue').escapeFacetValue;\nvar inherits = require('./functions/inherits');\nvar merge = require('./functions/merge');\nvar objectHasKeys = require('./functions/objectHasKeys');\nvar omit = require('./functions/omit');\nvar RecommendParameters = require('./RecommendParameters');\nvar RecommendResults = require('./RecommendResults');\nvar requestBuilder = require('./requestBuilder');\nvar SearchParameters = require('./SearchParameters');\nvar SearchResults = require('./SearchResults');\nvar sortAndMergeRecommendations = require('./utils/sortAndMergeRecommendations');\nvar version = require('./version');\n\n/**\n * Event triggered when a parameter is set or updated\n * @event AlgoliaSearchHelper#event:change\n * @property {object} event\n * @property {SearchParameters} event.state the current parameters with the latest changes applied\n * @property {SearchResults} event.results the previous results received from Algolia. `null` before the first request\n * @example\n * helper.on('change', function(event) {\n * console.log('The parameters have changed');\n * });\n */\n\n/**\n * Event triggered when a main search is sent to Algolia\n * @event AlgoliaSearchHelper#event:search\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search\n * @property {SearchResults} event.results the results from the previous search. `null` if it is the first search.\n * @example\n * helper.on('search', function(event) {\n * console.log('Search sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchForFacetValues` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchForFacetValues\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @property {string} event.facet the facet searched into\n * @property {string} event.query the query used to search in the facets\n * @example\n * helper.on('searchForFacetValues', function(event) {\n * console.log('searchForFacetValues sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchOnce` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchOnce\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @example\n * helper.on('searchOnce', function(event) {\n * console.log('searchOnce sent');\n * });\n */\n\n/**\n * Event triggered when the results are retrieved from Algolia\n * @event AlgoliaSearchHelper#event:result\n * @property {object} event\n * @property {SearchResults} event.results the results received from Algolia\n * @property {SearchParameters} event.state the parameters used to query Algolia. Those might be different from the one in the helper instance (for example if the network is unreliable).\n * @example\n * helper.on('result', function(event) {\n * console.log('Search results received');\n * });\n */\n\n/**\n * Event triggered when Algolia sends back an error. For example, if an unknown parameter is\n * used, the error can be caught using this event.\n * @event AlgoliaSearchHelper#event:error\n * @property {object} event\n * @property {Error} event.error the error returned by the Algolia.\n * @example\n * helper.on('error', function(event) {\n * console.log('Houston we got a problem.');\n * });\n */\n\n/**\n * Event triggered when the queue of queries have been depleted (with any result or outdated queries)\n * @event AlgoliaSearchHelper#event:searchQueueEmpty\n * @example\n * helper.on('searchQueueEmpty', function() {\n * console.log('No more search pending');\n * // This is received before the result event if we're not expecting new results\n * });\n *\n * helper.search();\n */\n\n/**\n * Initialize a new AlgoliaSearchHelper\n * @class\n * @classdesc The AlgoliaSearchHelper is a class that ease the management of the\n * search. It provides an event based interface for search callbacks:\n * - change: when the internal search state is changed.\n * This event contains a {@link SearchParameters} object and the\n * {@link SearchResults} of the last result if any.\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * - error: when the response is an error. This event contains the error returned by the server.\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the index name to query\n * @param {SearchParameters | object} options an object defining the initial\n * config of the search. It doesn't have to be a {SearchParameters},\n * just an object containing the properties you need from it.\n * @param {SearchResultsOptions|object} searchResultsOptions an object defining the options to use when creating the search results.\n */\nfunction AlgoliaSearchHelper(client, index, options, searchResultsOptions) {\n if (typeof client.addAlgoliaAgent === 'function') {\n client.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n\n this.setClient(client);\n var opts = options || {};\n opts.index = index;\n this.state = SearchParameters.make(opts);\n this.recommendState = new RecommendParameters({\n params: opts.recommendState,\n });\n this.lastResults = null;\n this.lastRecommendResults = null;\n this._queryId = 0;\n this._recommendQueryId = 0;\n this._lastQueryIdReceived = -1;\n this._lastRecommendQueryIdReceived = -1;\n this.derivedHelpers = [];\n this._currentNbQueries = 0;\n this._currentNbRecommendQueries = 0;\n this._searchResultsOptions = searchResultsOptions;\n this._recommendCache = {};\n}\n\ninherits(AlgoliaSearchHelper, EventEmitter);\n\n/**\n * Start the search with the parameters set in the state. When the\n * method is called, it triggers a `search` event. The results will\n * be available through the `result` event. If an error occurs, an\n * `error` will be fired instead.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires search\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.search = function () {\n this._search({ onlyWithDerivedHelpers: false });\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchOnlyWithDerivedHelpers = function () {\n this._search({ onlyWithDerivedHelpers: true });\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchWithComposition = function () {\n this._runComposition({ onlyWithDerivedHelpers: true });\n return this;\n};\n/**\n * Sends the recommendation queries set in the state. When the method is\n * called, it triggers a `fetch` event. The results will be available through\n * the `result` event. If an error occurs, an `error` will be fired instead.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires fetch\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.recommend = function () {\n this._recommend();\n return this;\n};\n\n/**\n * Gets the search query parameters that would be sent to the Algolia Client\n * for the hits\n * @return {object} Query Parameters\n */\nAlgoliaSearchHelper.prototype.getQuery = function () {\n var state = this.state;\n return requestBuilder._getHitsSearchParams(state);\n};\n\n/**\n * Start a search using a modified version of the current state. This method does\n * not trigger the helper lifecycle and does not modify the state kept internally\n * by the helper. This second aspect means that the next search call will be the\n * same as a search call before calling searchOnce.\n * @param {object} options can contain all the parameters that can be set to SearchParameters\n * plus the index\n * @param {function} [cb] optional callback executed when the response from the\n * server is back.\n * @return {promise|undefined} if a callback is passed the method returns undefined\n * otherwise it returns a promise containing an object with two keys :\n * - content with a SearchResults\n * - state with the state used for the query as a SearchParameters\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the callback API\n * var state = helper.searchOnce({hitsPerPage: 1},\n * function(error, content, state) {\n * // if an error occurred it will be passed in error, otherwise its value is null\n * // content contains the results formatted as a SearchResults\n * // state is the instance of SearchParameters used for this search\n * });\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the promise API\n * var state1 = helper.searchOnce({hitsPerPage: 1})\n * .then(promiseHandler);\n *\n * function promiseHandler(res) {\n * // res contains\n * // {\n * // content : SearchResults\n * // state : SearchParameters (the one used for this specific search)\n * // }\n * }\n */\nAlgoliaSearchHelper.prototype.searchOnce = function (options, cb) {\n var tempState = !options\n ? this.state\n : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\n // eslint-disable-next-line consistent-this\n var self = this;\n\n this._currentNbQueries++;\n\n this.emit('searchOnce', {\n state: tempState,\n });\n\n if (cb) {\n this.client\n .search(queries)\n .then(function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(null, new SearchResults(tempState, content.results), tempState);\n })\n .catch(function (err) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(err, null, tempState);\n });\n\n return undefined;\n }\n\n return this.client.search(queries).then(\n function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n return {\n content: new SearchResults(tempState, content.results),\n state: tempState,\n _originalResponse: content,\n };\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Start the search for answers with the parameters set in the state.\n * This method returns a promise.\n * @param {Object} options - the options for answers API call\n * @param {string[]} options.attributesForPrediction - Attributes to use for predictions. If empty, `searchableAttributes` is used instead.\n * @param {string[]} options.queryLanguages - The languages in the query. Currently only supports ['en'].\n * @param {number} options.nbHits - Maximum number of answers to retrieve from the Answers Engine. Cannot be greater than 1000.\n *\n * @return {promise} the answer results\n * @deprecated answers is deprecated and will be replaced with new initiatives\n */\nAlgoliaSearchHelper.prototype.findAnswers = function (options) {\n // eslint-disable-next-line no-console\n console.warn('[algoliasearch-helper] answers is no longer supported');\n var state = this.state;\n var derivedHelper = this.derivedHelpers[0];\n if (!derivedHelper) {\n return Promise.resolve([]);\n }\n var derivedState = derivedHelper.getModifiedState(state);\n var data = merge(\n {\n attributesForPrediction: options.attributesForPrediction,\n nbHits: options.nbHits,\n },\n {\n params: omit(requestBuilder._getHitsSearchParams(derivedState), [\n 'attributesToSnippet',\n 'hitsPerPage',\n 'restrictSearchableAttributes',\n 'snippetEllipsisText',\n ]),\n }\n );\n\n var errorMessage =\n 'search for answers was called, but this client does not have a function client.initIndex(index).findAnswers';\n if (typeof this.client.initIndex !== 'function') {\n throw new Error(errorMessage);\n }\n var index = this.client.initIndex(derivedState.index);\n if (typeof index.findAnswers !== 'function') {\n throw new Error(errorMessage);\n }\n return index.findAnswers(derivedState.query, options.queryLanguages, data);\n};\n\n/**\n * Structure of each result when using\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * @typedef FacetSearchHit\n * @type {object}\n * @property {string} value the facet value\n * @property {string} highlighted the facet value highlighted with the query string\n * @property {number} count number of occurrence of this facet value\n * @property {boolean} isRefined true if the value is already refined\n */\n\n/**\n * Structure of the data resolved by the\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * promise.\n * @typedef FacetSearchResult\n * @type {object}\n * @property {FacetSearchHit} facetHits the results for this search for facet values\n * @property {number} processingTimeMS time taken by the query inside the engine\n */\n\n/**\n * Search for facet values based on an query and the name of a faceted attribute. This\n * triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForFacetValues = function (\n facet,\n query,\n maxFacetHits,\n userState\n) {\n var clientHasSFFV =\n typeof this.client.searchForFacetValues === 'function' &&\n // v5 has a wrong sffv signature\n typeof this.client.searchForFacets !== 'function';\n var clientHasInitIndex = typeof this.client.initIndex === 'function';\n if (\n !clientHasSFFV &&\n !clientHasInitIndex &&\n typeof this.client.search !== 'function'\n ) {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n var algoliaQuery = requestBuilder.getSearchForFacetQuery(\n facet,\n query,\n maxFacetHits,\n state\n );\n\n this._currentNbQueries++;\n // eslint-disable-next-line consistent-this\n var self = this;\n var searchForFacetValuesPromise;\n // newer algoliasearch ^3.27.1 - ~4.0.0\n if (clientHasSFFV) {\n searchForFacetValuesPromise = this.client.searchForFacetValues([\n { indexName: state.index, params: algoliaQuery },\n ]);\n // algoliasearch < 3.27.1\n } else if (clientHasInitIndex) {\n searchForFacetValuesPromise = this.client\n .initIndex(state.index)\n .searchForFacetValues(algoliaQuery);\n // algoliasearch ~5.0.0\n } else {\n // @MAJOR only use client.search\n delete algoliaQuery.facetName;\n searchForFacetValuesPromise = this.client\n .search([\n {\n type: 'facet',\n facet: facet,\n indexName: state.index,\n params: algoliaQuery,\n },\n ])\n .then(function processResponse(response) {\n return response.results[0];\n });\n }\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query,\n });\n\n return searchForFacetValuesPromise.then(\n function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function (f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Search for facet values using the Composition API & based on a query and the name of a faceted attribute.\n * This triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForCompositionFacetValues = function (\n facet,\n query,\n maxFacetHits,\n userState\n) {\n if (typeof this.client.searchForFacetValues !== 'function') {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n\n this._currentNbQueries++;\n // eslint-disable-next-line consistent-this\n var self = this;\n var searchForFacetValuesPromise;\n\n searchForFacetValuesPromise = this.client.searchForFacetValues({\n compositionID: state.index,\n facetName: facet,\n searchForFacetValuesRequest: {\n params: {\n query: query,\n maxFacetHits: maxFacetHits,\n searchQuery: requestBuilder._getCompositionHitsSearchParams(state),\n },\n },\n });\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query,\n });\n\n return searchForFacetValuesPromise.then(\n function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = content.results[0];\n\n content.facetHits.forEach(function (f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Sets the text query used for the search.\n *\n * This method resets the current page to 0.\n * @param {string} q the user query\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setQuery = function (q) {\n this._change({\n state: this.state.resetPage().setQuery(q),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the types of refinements except tags. A string can be provided to remove\n * only the refinements of a specific attribute. For more advanced use case, you can\n * provide a function instead. This function should follow the\n * [clearCallback definition](#SearchParameters.clearCallback).\n *\n * This method resets the current page to 0.\n * @param {string} [name] optional name of the facet / attribute on which we want to remove all refinements\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * // Removing all the refinements\n * helper.clearRefinements().search();\n * @example\n * // Removing all the filters on a the category attribute.\n * helper.clearRefinements('category').search();\n * @example\n * // Removing only the exclude filters on the category facet.\n * helper.clearRefinements(function(value, attribute, type) {\n * return type === 'exclude' && attribute === 'category';\n * }).search();\n */\nAlgoliaSearchHelper.prototype.clearRefinements = function (name) {\n this._change({\n state: this.state.resetPage().clearRefinements(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the tag filters.\n *\n * This method resets the current page to 0.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.clearTags = function () {\n this._change({\n state: this.state.resetPage().clearTags(),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveRefine = function () {\n return this.addDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a refinement on a hierarchical facet. It will throw\n * an exception if the facet is not defined or if the facet\n * is already refined.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is refined\n * @chainable\n * @fires change\n */\nAlgoliaSearchHelper.prototype.addHierarchicalFacetRefinement = function (\n facet,\n path\n) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, path),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} operator the operator of the filter\n * @param {number} value the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .addNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().addFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addRefine = function () {\n return this.addFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().addExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.addExclude = function () {\n return this.addFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds a tag filter with the `tag` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag the tag to add to the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTag = function (tag) {\n this._change({\n state: this.state.resetPage().addTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a \"frequently bought together\" recommendation query.\n *\n * @param {FrequentlyBoughtTogetherQuery} params the parameters for the recommendation\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFrequentlyBoughtTogether = function (params) {\n this._recommendChange({\n state: this.recommendState.addFrequentlyBoughtTogether(params),\n });\n\n return this;\n};\n\n/**\n * Adds a \"related products\" recommendation query.\n *\n * @param {RelatedProductsQuery} params the parameters for the recommendation\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addRelatedProducts = function (params) {\n this._recommendChange({\n state: this.recommendState.addRelatedProducts(params),\n });\n\n return this;\n};\n\n/**\n * Adds a \"trending items\" recommendation query.\n *\n * @param {TrendingItemsQuery} params the parameters for the recommendation\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTrendingItems = function (params) {\n this._recommendChange({\n state: this.recommendState.addTrendingItems(params),\n });\n\n return this;\n};\n\n/**\n * Adds a \"trending facets\" recommendation query.\n *\n * @param {TrendingFacetsQuery} params the parameters for the recommendation\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTrendingFacets = function (params) {\n this._recommendChange({\n state: this.recommendState.addTrendingFacets(params),\n });\n\n return this;\n};\n\n/**\n * Adds a \"looking similar\" recommendation query.\n *\n * @param {LookingSimilarQuery} params the parameters for the recommendation\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addLookingSimilar = function (params) {\n this._recommendChange({\n state: this.recommendState.addLookingSimilar(params),\n });\n\n return this;\n};\n\n/**\n * Removes an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * Some parameters are optional, triggering different behavior:\n * - if the value is not provided, then all the numeric value will be removed for the\n * specified attribute/operator couple.\n * - if the operator is not provided either, then all the numeric filter on this attribute\n * will be removed.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} [operator] the operator of the filter\n * @param {number} [value] the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveRefine = function () {\n return this.removeDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is not refined\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeHierarchicalFacetRefinement = function (\n facet\n) {\n this._change({\n state: this.state.resetPage().removeHierarchicalFacetRefinement(facet),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeRefine = function () {\n return this.removeFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.removeExclude = function () {\n return this.removeFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Removes a tag filter with the `tag` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove from the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTag = function (tag) {\n this._change({\n state: this.state.resetPage().removeTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a \"frequently bought together\" recommendation query.\n *\n * @param {number} id identifier of the recommendation widget\n * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFrequentlyBoughtTogether = function (id) {\n this._recommendChange({\n state: this.recommendState.removeParams(id),\n });\n\n return this;\n};\n\n/**\n * Removes a \"related products\" recommendation query.\n *\n * @param {number} id identifier of the recommendation widget\n * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeRelatedProducts = function (id) {\n this._recommendChange({\n state: this.recommendState.removeParams(id),\n });\n\n return this;\n};\n\n/**\n * Removes a \"trending items\" recommendation query.\n *\n * @param {number} id identifier of the recommendation widget\n * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTrendingItems = function (id) {\n this._recommendChange({\n state: this.recommendState.removeParams(id),\n });\n\n return this;\n};\n\n/**\n * Removes a \"trending facets\" recommendation query.\n *\n * @param {number} id identifier of the recommendation widget\n * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTrendingFacets = function (id) {\n this._recommendChange({\n state: this.recommendState.removeParams(id),\n });\n\n return this;\n};\n\n/**\n * Removes a \"looking similar\" recommendation query.\n *\n * @param {number} id identifier of the recommendation widget\n * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeLookingSimilar = function (id) {\n this._recommendChange({\n state: this.recommendState.removeParams(id),\n });\n\n return this;\n};\n\n/**\n * Adds or removes an exclusion filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleExcludeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.toggleExclude = function () {\n return this.toggleFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n * @deprecated since version 2.19.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefinement = function (facet, value) {\n return this.toggleFacetRefinement(facet, value);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefine = function () {\n return this.toggleFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds or removes a tag filter with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove or add\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleTag = function (tag) {\n this._change({\n state: this.state.resetPage().toggleTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Increments the page number by one.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setPage(0).nextPage().getPage();\n * // returns 1\n */\nAlgoliaSearchHelper.prototype.nextPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page + 1);\n};\n\n/**\n * Decrements the page number by one.\n * @fires change\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @example\n * helper.setPage(1).previousPage().getPage();\n * // returns 0\n */\nAlgoliaSearchHelper.prototype.previousPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page - 1);\n};\n\n/**\n * @private\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @fires change\n */\nfunction setCurrentPage(page) {\n if (page < 0) throw new Error('Page requested below 0.');\n\n this._change({\n state: this.state.setPage(page),\n isPageReset: false,\n });\n\n return this;\n}\n\n/**\n * Change the current page\n * @deprecated\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setCurrentPage = setCurrentPage;\n\n/**\n * Updates the current page.\n * @function\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setPage = setCurrentPage;\n\n/**\n * Updates the name of the index that will be targeted by the query.\n *\n * This method resets the current page to 0.\n * @param {string} name the index name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setIndex = function (name) {\n this._change({\n state: this.state.resetPage().setIndex(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Update a parameter of the search. This method reset the page\n *\n * The complete list of parameters is available on the\n * [Algolia website](https://www.algolia.com/doc/rest#query-an-index).\n * The most commonly used parameters have their own [shortcuts](#query-parameters-shortcuts)\n * or benefit from higher-level APIs (all the kind of filters and facets have their own API)\n *\n * This method resets the current page to 0.\n * @param {string} parameter name of the parameter to update\n * @param {any} value new value of the parameter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setQueryParameter('hitsPerPage', 20).search();\n */\nAlgoliaSearchHelper.prototype.setQueryParameter = function (parameter, value) {\n this._change({\n state: this.state.resetPage().setQueryParameter(parameter, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Set the whole state (warning: will erase previous state)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setState = function (newState) {\n this._change({\n state: SearchParameters.make(newState),\n isPageReset: false,\n });\n\n return this;\n};\n\n/**\n * Override the current state without triggering a change event.\n * Do not use this method unless you know what you are doing. (see the example\n * for a legit use case)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @example\n * helper.on('change', function(state){\n * // In this function you might want to find a way to store the state in the url/history\n * updateYourURL(state)\n * })\n * window.onpopstate = function(event){\n * // This is naive though as you should check if the state is really defined etc.\n * helper.overrideStateWithoutTriggeringChangeEvent(event.state).search()\n * }\n * @chainable\n */\nAlgoliaSearchHelper.prototype.overrideStateWithoutTriggeringChangeEvent =\n function (newState) {\n this.state = new SearchParameters(newState);\n return this;\n };\n\n/**\n * Check if an attribute has any numeric, conjunctive, disjunctive or hierarchical filters.\n * @param {string} attribute the name of the attribute\n * @return {boolean} true if the attribute is filtered by at least one value\n * @example\n * // hasRefinements works with numeric, conjunctive, disjunctive and hierarchical filters\n * helper.hasRefinements('price'); // false\n * helper.addNumericRefinement('price', '>', 100);\n * helper.hasRefinements('price'); // true\n *\n * helper.hasRefinements('color'); // false\n * helper.addFacetRefinement('color', 'blue');\n * helper.hasRefinements('color'); // true\n *\n * helper.hasRefinements('material'); // false\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * helper.hasRefinements('material'); // true\n *\n * helper.hasRefinements('categories'); // false\n * helper.toggleFacetRefinement('categories', 'kitchen > knife');\n * helper.hasRefinements('categories'); // true\n *\n */\nAlgoliaSearchHelper.prototype.hasRefinements = function (attribute) {\n if (objectHasKeys(this.state.getNumericRefinements(attribute))) {\n return true;\n } else if (this.state.isConjunctiveFacet(attribute)) {\n return this.state.isFacetRefined(attribute);\n } else if (this.state.isDisjunctiveFacet(attribute)) {\n return this.state.isDisjunctiveFacetRefined(attribute);\n } else if (this.state.isHierarchicalFacet(attribute)) {\n return this.state.isHierarchicalFacetRefined(attribute);\n }\n\n // there's currently no way to know that the user did call `addNumericRefinement` at some point\n // thus we cannot distinguish if there once was a numeric refinement that was cleared\n // so we will return false in every other situations to be consistent\n // while what we should do here is throw because we did not find the attribute in any type\n // of refinement\n return false;\n};\n\n/**\n * Check if a value is excluded for a specific faceted attribute. If the value\n * is omitted then the function checks if there is any excluding refinements.\n *\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} true if refined\n * @example\n * helper.isExcludeRefined('color'); // false\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // false\n *\n * helper.addFacetExclusion('color', 'red');\n *\n * helper.isExcludeRefined('color'); // true\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // true\n */\nAlgoliaSearchHelper.prototype.isExcluded = function (facet, value) {\n return this.state.isExcludeRefined(facet, value);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasRefinements}\n */\nAlgoliaSearchHelper.prototype.isDisjunctiveRefined = function (facet, value) {\n return this.state.isDisjunctiveFacetRefined(facet, value);\n};\n\n/**\n * Check if the string is a currently filtering tag.\n * @param {string} tag tag to check\n * @return {boolean} true if the tag is currently refined\n */\nAlgoliaSearchHelper.prototype.hasTag = function (tag) {\n return this.state.isTagRefined(tag);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasTag}\n */\nAlgoliaSearchHelper.prototype.isTagRefined = function () {\n return this.hasTagRefinements.apply(this, arguments);\n};\n\n/**\n * Get the name of the currently used index.\n * @return {string} name of the index\n * @example\n * helper.setIndex('highestPrice_products').getIndex();\n * // returns 'highestPrice_products'\n */\nAlgoliaSearchHelper.prototype.getIndex = function () {\n return this.state.index;\n};\n\nfunction getCurrentPage() {\n return this.state.page;\n}\n\n/**\n * Get the currently selected page\n * @deprecated\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getCurrentPage = getCurrentPage;\n/**\n * Get the currently selected page\n * @function\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getPage = getCurrentPage;\n\n/**\n * Get all the tags currently set to filters the results.\n *\n * @return {string[]} The list of tags currently set.\n */\nAlgoliaSearchHelper.prototype.getTags = function () {\n return this.state.tagRefinements;\n};\n\n/**\n * Get the list of refinements for a given attribute. This method works with\n * conjunctive, disjunctive, excluding and numerical filters.\n *\n * See also SearchResults#getRefinements\n *\n * @param {string} facetName attribute name used for faceting\n * @return {Array.} All Refinement are objects that contain a value, and\n * a type. Numeric also contains an operator.\n * @example\n * helper.addNumericRefinement('price', '>', 100);\n * helper.getRefinements('price');\n * // [\n * // {\n * // \"value\": [\n * // 100\n * // ],\n * // \"operator\": \">\",\n * // \"type\": \"numeric\"\n * // }\n * // ]\n * @example\n * helper.addFacetRefinement('color', 'blue');\n * helper.addFacetExclusion('color', 'red');\n * helper.getRefinements('color');\n * // [\n * // {\n * // \"value\": \"blue\",\n * // \"type\": \"conjunctive\"\n * // },\n * // {\n * // \"value\": \"red\",\n * // \"type\": \"exclude\"\n * // }\n * // ]\n * @example\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * // [\n * // {\n * // \"value\": \"plastic\",\n * // \"type\": \"disjunctive\"\n * // }\n * // ]\n */\nAlgoliaSearchHelper.prototype.getRefinements = function (facetName) {\n var refinements = [];\n\n if (this.state.isConjunctiveFacet(facetName)) {\n var conjRefinements = this.state.getConjunctiveRefinements(facetName);\n\n conjRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'conjunctive',\n });\n });\n\n var excludeRefinements = this.state.getExcludeRefinements(facetName);\n\n excludeRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'exclude',\n });\n });\n } else if (this.state.isDisjunctiveFacet(facetName)) {\n var disjunctiveRefinements =\n this.state.getDisjunctiveRefinements(facetName);\n\n disjunctiveRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'disjunctive',\n });\n });\n }\n\n var numericRefinements = this.state.getNumericRefinements(facetName);\n\n Object.keys(numericRefinements).forEach(function (operator) {\n var value = numericRefinements[operator];\n\n refinements.push({\n value: value,\n operator: operator,\n type: 'numeric',\n });\n });\n\n return refinements;\n};\n\n/**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\nAlgoliaSearchHelper.prototype.getNumericRefinement = function (\n attribute,\n operator\n) {\n return this.state.getNumericRefinement(attribute, operator);\n};\n\n/**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\nAlgoliaSearchHelper.prototype.getHierarchicalFacetBreadcrumb = function (\n facetName\n) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @param {object} options options for the query\n * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried\n * @return {undefined} does not return anything\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._search = function (options) {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n if (!options.onlyWithDerivedHelpers) {\n mainQueries = requestBuilder._getQueries(state.index, state);\n\n states.push({\n state: state,\n queriesCount: mainQueries.length,\n helper: this,\n });\n\n this.emit('search', {\n state: state,\n results: this.lastResults,\n });\n }\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries = derivedState.index\n ? requestBuilder._getQueries(derivedState.index, derivedState)\n : [];\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper,\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults,\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n\n var queryId = this._queryId++;\n this._currentNbQueries++;\n\n if (!queries.length) {\n return Promise.resolve({ results: [] }).then(\n this._dispatchAlgoliaResponse.bind(this, states, queryId)\n );\n }\n\n try {\n this.client\n .search(queries)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return undefined;\n};\n\n/**\n * Perform the underlying queries\n * @private\n * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried\n * @return {undefined} does not return anything\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._runComposition = function () {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries =\n requestBuilder._getCompositionQueries(derivedState);\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper,\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults,\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n\n var queryId = this._queryId++;\n this._currentNbQueries++;\n\n if (!queries.length) {\n return Promise.resolve({ results: [] }).then(\n this._dispatchAlgoliaResponse.bind(this, states, queryId)\n );\n }\n\n if (queries.length > 1) {\n throw new Error('Only one query is allowed when using a composition.');\n }\n\n var query = queries[0];\n\n try {\n this.client\n .search(query)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return undefined;\n};\n\nAlgoliaSearchHelper.prototype._recommend = function () {\n var searchState = this.state;\n var recommendState = this.recommendState;\n var index = this.getIndex();\n var states = [{ state: recommendState, index: index, helper: this }];\n var ids = recommendState.params.map(function (param) {\n return param.$$id;\n });\n\n this.emit('fetch', {\n recommend: {\n state: recommendState,\n results: this.lastRecommendResults,\n },\n });\n\n var cache = this._recommendCache;\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedIndex = derivedHelper.getModifiedState(searchState).index;\n if (!derivedIndex) {\n return [];\n }\n\n // Contrary to what is done when deriving the search state, we don't want to\n // provide the current recommend state to the derived helper, as it would\n // inherit unwanted queries. We instead provide an empty recommend state.\n var derivedState = derivedHelper.getModifiedRecommendState(\n new RecommendParameters()\n );\n states.push({\n state: derivedState,\n index: derivedIndex,\n helper: derivedHelper,\n });\n\n ids = Array.prototype.concat.apply(\n ids,\n derivedState.params.map(function (param) {\n return param.$$id;\n })\n );\n\n derivedHelper.emit('fetch', {\n recommend: {\n state: derivedState,\n results: derivedHelper.lastRecommendResults,\n },\n });\n\n return derivedState._buildQueries(derivedIndex, cache);\n });\n\n var queries = Array.prototype.concat.apply(\n this.recommendState._buildQueries(index, cache),\n derivedQueries\n );\n\n if (queries.length === 0) {\n return;\n }\n\n if (\n queries.length > 0 &&\n typeof this.client.getRecommendations === 'undefined'\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Please update algoliasearch/lite to the latest version in order to use recommend widgets.'\n );\n return;\n }\n\n var queryId = this._recommendQueryId++;\n this._currentNbRecommendQueries++;\n\n try {\n this.client\n .getRecommendations(queries)\n .then(this._dispatchRecommendResponse.bind(this, queryId, states, ids))\n .catch(this._dispatchRecommendError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return;\n};\n\n/**\n * Transform the responses as sent by the server and transform them into a user\n * usable object that merge the results of all the batch requests. It will dispatch\n * over the different helper + derived helpers (when there are some).\n * @private\n * @param {array.<{SearchParameters, AlgoliaQueries, AlgoliaSearchHelper}>} states state used to generate the request\n * @param {number} queryId id of the current request\n * @param {object} content content of the response\n * @return {undefined}\n */\nAlgoliaSearchHelper.prototype._dispatchAlgoliaResponse = function (\n states,\n queryId,\n content\n) {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // @TODO remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n\n var results = content.results.slice();\n var rawContent = Object.keys(content).reduce(function (value, key) {\n if (key !== 'results') value[key] = content[key];\n return value;\n }, {});\n\n if (Object.keys(rawContent).length <= 0) {\n rawContent = undefined;\n }\n\n states.forEach(function (s) {\n var state = s.state;\n var queriesCount = s.queriesCount;\n var helper = s.helper;\n var specificResults = results.splice(0, queriesCount);\n\n if (!state.index) {\n helper.emit('result', {\n results: null,\n state: state,\n });\n return;\n }\n\n helper.lastResults = new SearchResults(\n state,\n specificResults,\n self._searchResultsOptions\n );\n if (rawContent !== undefined) helper.lastResults._rawContent = rawContent;\n\n helper.emit('result', {\n results: helper.lastResults,\n state: state,\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchRecommendResponse = function (\n queryId,\n states,\n ids,\n content\n) {\n // @TODO remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastRecommendQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbRecommendQueries -=\n queryId - this._lastRecommendQueryIdReceived;\n this._lastRecommendQueryIdReceived = queryId;\n\n if (this._currentNbRecommendQueries === 0) this.emit('recommendQueueEmpty');\n\n var cache = this._recommendCache;\n\n var idsMap = {};\n ids\n .filter(function (id) {\n return cache[id] === undefined;\n })\n .forEach(function (id, index) {\n if (!idsMap[id]) idsMap[id] = [];\n\n idsMap[id].push(index);\n });\n\n Object.keys(idsMap).forEach(function (id) {\n var indices = idsMap[id];\n var firstResult = content.results[indices[0]];\n if (indices.length === 1) {\n cache[id] = firstResult;\n return;\n }\n cache[id] = Object.assign({}, firstResult, {\n hits: sortAndMergeRecommendations(\n indices.map(function (idx) {\n return content.results[idx].hits;\n })\n ),\n });\n });\n\n var results = {};\n ids.forEach(function (id) {\n results[id] = cache[id];\n });\n\n states.forEach(function (s) {\n var state = s.state;\n var helper = s.helper;\n\n if (!s.index) {\n // eslint-disable-next-line no-warning-comments\n // TODO: emit \"result\" event when events for Recommend are implemented\n helper.emit('recommend:result', {\n results: null,\n state: state,\n });\n return;\n }\n\n helper.lastRecommendResults = new RecommendResults(state, results);\n\n // eslint-disable-next-line no-warning-comments\n // TODO: emit \"result\" event when events for Recommend are implemented\n helper.emit('recommend:result', {\n recommend: {\n results: helper.lastRecommendResults,\n state: state,\n },\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function (\n queryId,\n error\n) {\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error,\n });\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype._dispatchRecommendError = function (\n queryId,\n error\n) {\n if (queryId < this._lastRecommendQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbRecommendQueries -=\n queryId - this._lastRecommendQueryIdReceived;\n this._lastRecommendQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error,\n });\n\n if (this._currentNbRecommendQueries === 0) this.emit('recommendQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype.containsRefinement = function (\n query,\n facetFilters,\n numericFilters,\n tagFilters\n) {\n return (\n query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0\n );\n};\n\n/**\n * Test if there are some disjunctive refinements on the facet\n * @private\n * @param {string} facet the attribute to test\n * @return {boolean} true if there are refinements on this attribute\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function (facet) {\n return (\n this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0\n );\n};\n\nAlgoliaSearchHelper.prototype._change = function (event) {\n var state = event.state;\n var isPageReset = event.isPageReset;\n\n if (state !== this.state) {\n this.state = state;\n\n this.emit('change', {\n state: this.state,\n results: this.lastResults,\n isPageReset: isPageReset,\n });\n }\n};\n\nAlgoliaSearchHelper.prototype._recommendChange = function (event) {\n var state = event.state;\n\n if (state !== this.recommendState) {\n this.recommendState = state;\n\n // eslint-disable-next-line no-warning-comments\n // TODO: emit \"change\" event when events for Recommend are implemented\n this.emit('recommend:change', {\n search: {\n results: this.lastResults,\n state: this.state,\n },\n recommend: {\n results: this.lastRecommendResults,\n state: this.recommendState,\n },\n });\n }\n};\n\n/**\n * Clears the cache of the underlying Algolia client.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.clearCache = function () {\n if (this.client.clearCache) this.client.clearCache();\n return this;\n};\n\n/**\n * Updates the internal client instance. If the reference of the clients\n * are equal then no update is actually done.\n * @param {AlgoliaSearch} newClient an AlgoliaSearch client\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.setClient = function (newClient) {\n if (this.client === newClient) return this;\n\n if (typeof newClient.addAlgoliaAgent === 'function') {\n newClient.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n this.client = newClient;\n\n return this;\n};\n\n/**\n * Gets the instance of the currently used client.\n * @return {AlgoliaSearch} the currently used client\n */\nAlgoliaSearchHelper.prototype.getClient = function () {\n return this.client;\n};\n\n/**\n * Creates an derived instance of the Helper. A derived helper\n * is a way to request other indices synchronised with the lifecycle\n * of the main Helper. This mechanism uses the multiqueries feature\n * of Algolia to aggregate all the requests in a single network call.\n *\n * This method takes a function that is used to create a new SearchParameter\n * that will be used to create requests to Algolia. Those new requests\n * are created just before the `search` event. The signature of the function\n * is `SearchParameters -> SearchParameters`.\n *\n * This method returns a new DerivedHelper which is an EventEmitter\n * that fires the same `search`, `result` and `error` events. Those\n * events, however, will receive data specific to this DerivedHelper\n * and the SearchParameters that is returned by the call of the\n * parameter function.\n * @param {function} fn SearchParameters -> SearchParameters\n * @param {function} recommendFn RecommendParameters -> RecommendParameters\n * @return {DerivedHelper} a new DerivedHelper\n */\nAlgoliaSearchHelper.prototype.derive = function (fn, recommendFn) {\n var derivedHelper = new DerivedHelper(this, fn, recommendFn);\n this.derivedHelpers.push(derivedHelper);\n return derivedHelper;\n};\n\n/**\n * This method detaches a derived Helper from the main one. Prefer using the one from the\n * derived helper itself, to remove the event listeners too.\n * @private\n * @param {DerivedHelper} derivedHelper the derived helper to detach\n * @return {undefined} nothing is returned\n * @throws Error\n */\nAlgoliaSearchHelper.prototype.detachDerivedHelper = function (derivedHelper) {\n var pos = this.derivedHelpers.indexOf(derivedHelper);\n if (pos === -1) throw new Error('Derived helper already detached');\n this.derivedHelpers.splice(pos, 1);\n};\n\n/**\n * This method returns true if there is currently at least one on-going search.\n * @return {boolean} true if there is a search pending\n */\nAlgoliaSearchHelper.prototype.hasPendingRequests = function () {\n return this._currentNbQueries > 0;\n};\n\n/**\n * @typedef AlgoliaSearchHelper.NumericRefinement\n * @type {object}\n * @property {number[]} value the numbers that are used for filtering this attribute with\n * the operator specified.\n * @property {string} operator the faceting data: value, number of entries\n * @property {string} type will be 'numeric'\n */\n\n/**\n * @typedef AlgoliaSearchHelper.FacetRefinement\n * @type {object}\n * @property {string} value the string use to filter the attribute\n * @property {string} type the type of filter: 'conjunctive', 'disjunctive', 'exclude'\n */\n\nmodule.exports = AlgoliaSearchHelper;\n","'use strict';\n\nmodule.exports = function compact(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.filter(Boolean);\n};\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order\nmodule.exports = function defaultsPure() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function (acc, source) {\n Object.keys(Object(source)).forEach(function (key) {\n if (source[key] === undefined) {\n return;\n }\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n delete acc[key];\n }\n acc[key] = source[key];\n });\n return acc;\n }, {});\n};\n","'use strict';\n\n/**\n * Replaces a leading - with \\-\n * @private\n * @param {any} value the facet value to replace\n * @returns {any} the escaped facet value or the value if it was not a string\n */\nfunction escapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return String(value).replace(/^-/, '\\\\-');\n}\n\n/**\n * Replaces a leading \\- with -\n * @private\n * @param {any} value the escaped facet value\n * @returns {any} the unescaped facet value or the value if it was not a string\n */\nfunction unescapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return value.replace(/^\\\\-/, '-');\n}\n\nmodule.exports = {\n escapeFacetValue: escapeFacetValue,\n unescapeFacetValue: unescapeFacetValue,\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#find when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return array[i];\n }\n }\n\n return undefined;\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#findIndex when we change support\nmodule.exports = function find(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 return -1;\n};\n","// @MAJOR: remove this function and use Array.prototype.flat\nmodule.exports = function flat(arr) {\n return arr.reduce(function (acc, val) {\n return acc.concat(val);\n }, []);\n};\n","'use strict';\n\nvar find = require('./find');\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 * @param {string[]} [defaults] 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 var defaultInstructions = (defaults || []).map(function (sort) {\n return sort.split(':');\n });\n\n return sortBy.reduce(\n function preparePredicate(out, sort) {\n var sortInstruction = sort.split(':');\n\n var matchingDefault = find(\n defaultInstructions,\n function (defaultInstruction) {\n return defaultInstruction[0] === sortInstruction[0];\n }\n );\n\n if (sortInstruction.length > 1 || !matchingDefault) {\n out[0].push(sortInstruction[0]);\n out[1].push(sortInstruction[1]);\n return out;\n }\n\n out[0].push(matchingDefault[0]);\n out[1].push(matchingDefault[1]);\n return out;\n },\n [[], []]\n );\n};\n","'use strict';\n\nfunction inherits(ctor, superCtor) {\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n });\n}\n\nmodule.exports = inherits;\n","'use strict';\n\nfunction intersection(arr1, arr2) {\n return arr1.filter(function (value, index) {\n return (\n arr2.indexOf(value) > -1 &&\n arr1.indexOf(value) === index /* skips duplicates */\n );\n });\n}\n\nmodule.exports = intersection;\n","'use strict';\n\nfunction clone(value) {\n if (typeof value === 'object' && value !== null) {\n return _merge(Array.isArray(value) ? [] : {}, value);\n }\n return value;\n}\n\nfunction isObjectOrArrayOrFunction(value) {\n return (\n typeof value === 'function' ||\n Array.isArray(value) ||\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n\nfunction _merge(target, source) {\n if (target === source) {\n return target;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (var key in source) {\n if (\n !Object.prototype.hasOwnProperty.call(source, key) ||\n key === '__proto__' ||\n key === 'constructor'\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n target[key] = _merge(targetVal, sourceVal);\n } else {\n target[key] = clone(sourceVal);\n }\n }\n return target;\n}\n\n/**\n * This method is like Object.assign, but recursively merges own and inherited\n * enumerable keyed properties of source objects into the destination object.\n *\n * NOTE: this behaves like lodash/merge, but:\n * - does mutate functions if they are a source\n * - treats non-plain objects as plain\n * - does not work for circular objects\n * - treats sparse arrays as sparse\n * - does not convert Array-like objects (Arguments, NodeLists, etc.) to arrays\n *\n * @param {Object} target The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\n target = {};\n }\n\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n\n if (isObjectOrArrayOrFunction(source)) {\n _merge(target, source);\n }\n }\n return target;\n}\n\nmodule.exports = merge;\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order and keep the highest numeric value\nfunction mergeNumericMax() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function (acc, source) {\n Object.keys(Object(source)).forEach(function (key) {\n var accValue = typeof acc[key] === 'number' ? acc[key] : 0;\n var sourceValue = source[key];\n\n if (sourceValue === undefined) {\n return;\n }\n\n if (sourceValue >= accValue) {\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n delete acc[key];\n }\n acc[key] = sourceValue;\n }\n });\n return acc;\n }, {});\n}\n\nmodule.exports = mergeNumericMax;\n","'use strict';\n\nfunction objectHasKeys(obj) {\n return obj && Object.keys(obj).length > 0;\n}\n\nmodule.exports = objectHasKeys;\n","'use strict';\n\n// https://github.com/babel/babel/blob/3aaafae053fa75febb3aa45d45b6f00646e30ba4/packages/babel-helpers/src/helpers.js#L604-L620\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n // eslint-disable-next-line no-continue\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n","'use strict';\n\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined;\n var valIsNull = value === null;\n\n var othIsDefined = other !== undefined;\n var othIsNull = other === null;\n\n if (\n (!othIsNull && value > other) ||\n (valIsNull && othIsDefined) ||\n !valIsDefined\n ) {\n return 1;\n }\n if (\n (!valIsNull && value < other) ||\n (othIsNull && valIsDefined) ||\n !othIsDefined\n ) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @param {Array} collection object with keys in attributes\n * @param {Array} iteratees attributes\n * @param {Array} orders asc | desc\n * @return {Array} sorted collection\n */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\n orders = [];\n }\n\n var result = collection.map(function (value, index) {\n return {\n criteria: iteratees.map(function (iteratee) {\n return value[iteratee];\n }),\n index: index,\n value: value,\n };\n });\n\n result.sort(function comparer(object, other) {\n var index = -1;\n\n while (++index < object.criteria.length) {\n var res = compareAscending(object.criteria[index], other.criteria[index]);\n if (res) {\n if (index >= orders.length) {\n return res;\n }\n if (orders[index] === 'desc') {\n return -res;\n }\n return res;\n }\n }\n\n // This 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\n return result.map(function (res) {\n return res.value;\n });\n}\n\nmodule.exports = orderBy;\n","'use strict';\n\nfunction valToNumber(v) {\n if (typeof v === 'number') {\n return v;\n } else if (typeof v === 'string') {\n return parseFloat(v);\n } else if (Array.isArray(v)) {\n return v.map(valToNumber);\n }\n\n throw new Error(\n 'The value should be a number, a parsable string or an array of those.'\n );\n}\n\nmodule.exports = valToNumber;\n","'use strict';\n\nvar merge = require('./functions/merge');\n\nfunction sortObject(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (acc, curr) {\n acc[curr] = obj[curr];\n return acc;\n }, {});\n}\n\nvar requestBuilder = {\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @param {string} index The name of the index\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object[]} The queries\n */\n _getQueries: function getQueries(index, state) {\n var queries = [];\n\n // One query for the hits\n queries.push({\n indexName: index,\n params: requestBuilder._getHitsSearchParams(state),\n });\n\n // One for each disjunctive facets\n state.getRefinedDisjunctiveFacets().forEach(function (refinedFacet) {\n queries.push({\n indexName: index,\n params: requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n refinedFacet\n ),\n });\n });\n\n // More to get the parent levels of the hierarchical facets when refined\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n // If we are deeper than level 0 (starting from `beer > IPA`)\n // we want to get all parent values\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].split(separator).length > 1\n ) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0]\n .split(separator)\n .slice(0, -1)\n .reduce(function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value:\n level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator),\n });\n }, []);\n\n filtersMap.forEach(function (filter, level) {\n var params = requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n filter.attribute,\n level === 0\n );\n\n // Keep facet filters unrelated to current hierarchical attributes\n function hasHierarchicalFacetFilter(value) {\n return hierarchicalFacet.attributes.some(function (attribute) {\n return attribute === value.split(':')[0];\n });\n }\n\n var filteredFacetFilters = (params.facetFilters || []).reduce(\n function (acc, facetFilter) {\n if (Array.isArray(facetFilter)) {\n var filtered = facetFilter.filter(function (filterValue) {\n return !hasHierarchicalFacetFilter(filterValue);\n });\n\n if (filtered.length > 0) {\n acc.push(filtered);\n }\n }\n\n if (\n typeof facetFilter === 'string' &&\n !hasHierarchicalFacetFilter(facetFilter)\n ) {\n acc.push(facetFilter);\n }\n\n return acc;\n },\n []\n );\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(\n parent.attribute + ':' + parent.value\n );\n } else if (filteredFacetFilters.length > 0) {\n params.facetFilters = filteredFacetFilters;\n } else {\n delete params.facetFilters;\n }\n\n queries.push({ indexName: index, params: params });\n });\n }\n });\n\n return queries;\n },\n\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object[]} The queries\n */\n _getCompositionQueries: function getQueries(state) {\n return [\n {\n compositionID: state.index,\n requestBody: {\n params: requestBuilder._getCompositionHitsSearchParams(state),\n },\n },\n ];\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object.} The search parameters for hits\n */\n _getHitsSearchParams: function (state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state))\n .sort();\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {};\n\n if (facets.length > 0) {\n additionalParams.facets = facets.indexOf('*') > -1 ? ['*'] : facets;\n }\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object.} The search parameters for hits\n */\n _getCompositionHitsSearchParams: function (state) {\n var facets = state.facets\n .concat(\n state.disjunctiveFacets.map(function (value) {\n return 'disjunctive(' + value + ')';\n })\n )\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state))\n .sort();\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {};\n\n if (facets.length > 0) {\n additionalParams.facets = facets.indexOf('*') > -1 ? ['*'] : facets;\n }\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n var params = state.getQueryParams();\n\n delete params.highlightPreTag;\n delete params.highlightPostTag;\n // not a valid search parameter, it is handled in _getCompositionQueries\n delete params.index;\n\n return sortObject(merge({}, params, additionalParams));\n },\n\n /**\n * Build search parameters used to fetch a disjunctive facet\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object} The search parameters for a disjunctive facet\n */\n _getDisjunctiveFacetSearchParams: function (\n state,\n facet,\n hierarchicalRootLevel\n ) {\n var facetFilters = requestBuilder._getFacetFilters(\n state,\n facet,\n hierarchicalRootLevel\n );\n var numericFilters = requestBuilder._getNumericFilters(state, facet);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n hitsPerPage: 0,\n page: 0,\n analytics: false,\n clickAnalytics: false,\n };\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facet);\n\n if (hierarchicalFacet) {\n additionalParams.facets =\n requestBuilder._getDisjunctiveHierarchicalFacetAttribute(\n state,\n hierarchicalFacet,\n hierarchicalRootLevel\n );\n } else {\n additionalParams.facets = facet;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Return the numeric filters in an algolia request fashion\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @param {string} [facetName] the name of the attribute for which the filters should be excluded\n * @return {string[]} the numeric filters in the algolia format\n */\n _getNumericFilters: function (state, facetName) {\n if (state.numericFilters) {\n return state.numericFilters;\n }\n\n var numericFilters = [];\n\n Object.keys(state.numericRefinements).forEach(function (attribute) {\n var operators = state.numericRefinements[attribute] || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n if (facetName !== attribute) {\n values.forEach(function (value) {\n if (Array.isArray(value)) {\n var vs = value.map(function (v) {\n return attribute + operator + v;\n });\n numericFilters.push(vs);\n } else {\n numericFilters.push(attribute + operator + value);\n }\n });\n }\n });\n });\n\n return numericFilters;\n },\n\n /**\n * Return the tags filters depending on which format is used, either tagFilters or tagRefinements\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @return {string} Tag filters in a single string\n */\n _getTagFilters: function (state) {\n if (state.tagFilters) {\n return state.tagFilters;\n }\n\n return state.tagRefinements.join(',');\n },\n\n /**\n * Build facetFilters parameter based on current refinements. The array returned\n * contains strings representing the facet filters in the algolia format.\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} [facet] if set, the current disjunctive facet\n * @param {boolean} [hierarchicalRootLevel] ?? FIXME\n * @return {array.} The facet filters in the algolia format\n */\n _getFacetFilters: function (state, facet, hierarchicalRootLevel) {\n var facetFilters = [];\n\n var facetsRefinements = state.facetsRefinements || {};\n Object.keys(facetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsRefinements[facetName] || [];\n facetValues\n .slice()\n .sort()\n .forEach(function (facetValue) {\n facetFilters.push(facetName + ':' + facetValue);\n });\n });\n\n var facetsExcludes = state.facetsExcludes || {};\n Object.keys(facetsExcludes)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsExcludes[facetName] || [];\n facetValues.sort().forEach(function (facetValue) {\n facetFilters.push(facetName + ':-' + facetValue);\n });\n });\n\n var disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements || {};\n Object.keys(disjunctiveFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = disjunctiveFacetsRefinements[facetName] || [];\n if (facetName === facet || !facetValues || facetValues.length === 0) {\n return;\n }\n var orFilters = [];\n\n facetValues\n .slice()\n .sort()\n .forEach(function (facetValue) {\n orFilters.push(facetName + ':' + facetValue);\n });\n\n facetFilters.push(orFilters);\n });\n\n var hierarchicalFacetsRefinements =\n state.hierarchicalFacetsRefinements || {};\n Object.keys(hierarchicalFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = hierarchicalFacetsRefinements[facetName] || [];\n var facetValue = facetValues[0];\n\n if (facetValue === undefined) {\n return;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facetName);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeToRefine;\n var attributesIndex;\n\n // we ask for parent facet values only when the `facet` is the current hierarchical facet\n if (facet === facetName) {\n // if we are at the root level already, no need to ask for facet values, we get them from\n // the hits query\n if (\n facetValue.indexOf(separator) === -1 ||\n (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath &&\n rootPath.split(separator).length ===\n facetValue.split(separator).length)\n ) {\n return;\n }\n\n if (!rootPath) {\n attributesIndex = facetValue.split(separator).length - 2;\n facetValue = facetValue.slice(0, facetValue.lastIndexOf(separator));\n } else {\n attributesIndex = rootPath.split(separator).length - 1;\n facetValue = rootPath;\n }\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n } else {\n attributesIndex = facetValue.split(separator).length - 1;\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n }\n\n if (attributeToRefine) {\n facetFilters.push([attributeToRefine + ':' + facetValue]);\n }\n });\n\n return facetFilters;\n },\n\n _getHitsHierarchicalFacetsAttributes: function (state) {\n var out = [];\n\n return state.hierarchicalFacets.reduce(\n // ask for as much levels as there's hierarchical refinements\n function getHitsAttributesForHierarchicalFacet(\n allAttributes,\n hierarchicalFacet\n ) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(\n hierarchicalFacet.name\n )[0];\n\n // if no refinement, ask for root level\n if (!hierarchicalRefinement) {\n allAttributes.push(hierarchicalFacet.attributes[0]);\n return allAttributes;\n }\n\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var level = hierarchicalRefinement.split(separator).length;\n var newAttributes = hierarchicalFacet.attributes.slice(0, level + 1);\n\n return allAttributes.concat(newAttributes);\n },\n out\n );\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function (\n state,\n hierarchicalFacet,\n rootLevel\n ) {\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n if (rootLevel === true) {\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeIndex = 0;\n\n if (rootPath) {\n attributeIndex = rootPath.split(separator).length;\n }\n return [hierarchicalFacet.attributes[attributeIndex]];\n }\n\n var hierarchicalRefinement =\n state.getHierarchicalRefinement(hierarchicalFacet.name)[0] || '';\n // if refinement is 'beers > IPA > Flying dog',\n // then we want `facets: ['beers > IPA']` as disjunctive facet (parent level values)\n\n var parentLevel = hierarchicalRefinement.split(separator).length - 1;\n return hierarchicalFacet.attributes.slice(0, parentLevel + 1);\n },\n\n getSearchForFacetQuery: function (facetName, query, maxFacetHits, state) {\n var stateForSearchForFacetValues = state.isDisjunctiveFacet(facetName)\n ? state.clearRefinements(facetName)\n : state;\n var searchForFacetSearchParameters = {\n facetQuery: query,\n facetName: facetName,\n };\n if (typeof maxFacetHits === 'number') {\n searchForFacetSearchParameters.maxFacetHits = maxFacetHits;\n }\n return sortObject(\n merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\n )\n );\n },\n};\n\nmodule.exports = requestBuilder;\n","'use strict';\n\nmodule.exports = function isValidUserToken(userToken) {\n if (userToken === null) {\n return false;\n }\n return /^[a-zA-Z0-9_-]{1,64}$/.test(userToken);\n};\n","'use strict';\n\nvar find = require('../functions/find');\nvar flat = require('../functions/flat');\n\nfunction getAverageIndices(indexTracker, nrOfObjs) {\n var avgIndices = [];\n\n Object.keys(indexTracker).forEach(function (key) {\n if (indexTracker[key].count < 2) {\n indexTracker[key].indexSum += 100;\n }\n avgIndices.push({\n objectID: key,\n avgOfIndices: indexTracker[key].indexSum / nrOfObjs,\n });\n });\n\n return avgIndices.sort(function (a, b) {\n return a.avgOfIndices > b.avgOfIndices ? 1 : -1;\n });\n}\n\nfunction sortAndMergeRecommendations(results) {\n var indexTracker = {};\n\n results.forEach(function (hits) {\n hits.forEach(function (hit, index) {\n if (!indexTracker[hit.objectID]) {\n indexTracker[hit.objectID] = { indexSum: index, count: 1 };\n } else {\n indexTracker[hit.objectID] = {\n indexSum: indexTracker[hit.objectID].indexSum + index,\n count: indexTracker[hit.objectID].count + 1,\n };\n }\n });\n });\n\n var sortedAverageIndices = getAverageIndices(indexTracker, results.length);\n\n var finalOrder = sortedAverageIndices.reduce(function (\n orderedHits,\n avgIndexRef\n ) {\n var result = find(flat(results), function (hit) {\n return hit.objectID === avgIndexRef.objectID;\n });\n return result ? orderedHits.concat(result) : orderedHits;\n },\n []);\n\n return finalOrder;\n}\n\nmodule.exports = sortAndMergeRecommendations;\n","'use strict';\n\nmodule.exports = '3.24.2';\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function (Hogan) {\n // Setup regex assignments\n // remove whitespace according to Mustache spec\n var rIsWhitespace = /\\S/,\n rQuot = /\\\"/g,\n rNewline = /\\n/g,\n rCr = /\\r/g,\n rSlash = /\\\\/g,\n rLineSep = /\\u2028/,\n rParagraphSep = /\\u2029/;\n\n Hogan.tags = {\n '#': 1, '^': 2, '<': 3, '$': 4,\n '/': 5, '!': 6, '>': 7, '=': 8, '_v': 9,\n '{': 10, '&': 11, '_t': 12\n };\n\n Hogan.scan = function scan(text, delimiters) {\n var len = text.length,\n IN_TEXT = 0,\n IN_TAG_TYPE = 1,\n IN_TAG = 2,\n state = IN_TEXT,\n tagType = null,\n tag = null,\n buf = '',\n tokens = [],\n seenTag = false,\n i = 0,\n lineStart = 0,\n otag = '{{',\n ctag = '}}';\n\n function addBuf() {\n if (buf.length > 0) {\n tokens.push({tag: '_t', text: new String(buf)});\n buf = '';\n }\n }\n\n function lineIsWhitespace() {\n var isAllWhitespace = true;\n for (var j = lineStart; j < tokens.length; j++) {\n isAllWhitespace =\n (Hogan.tags[tokens[j].tag] < Hogan.tags['_v']) ||\n (tokens[j].tag == '_t' && tokens[j].text.match(rIsWhitespace) === null);\n if (!isAllWhitespace) {\n return false;\n }\n }\n\n return isAllWhitespace;\n }\n\n function filterLine(haveSeenTag, noNewLine) {\n addBuf();\n\n if (haveSeenTag && lineIsWhitespace()) {\n for (var j = lineStart, next; j < tokens.length; j++) {\n if (tokens[j].text) {\n if ((next = tokens[j+1]) && next.tag == '>') {\n // set indent to token value\n next.indent = tokens[j].text.toString()\n }\n tokens.splice(j, 1);\n }\n }\n } else if (!noNewLine) {\n tokens.push({tag:'\\n'});\n }\n\n seenTag = false;\n lineStart = tokens.length;\n }\n\n function changeDelimiters(text, index) {\n var close = '=' + ctag,\n closeIndex = text.indexOf(close, index),\n delimiters = trim(\n text.substring(text.indexOf('=', index) + 1, closeIndex)\n ).split(' ');\n\n otag = delimiters[0];\n ctag = delimiters[delimiters.length - 1];\n\n return closeIndex + close.length - 1;\n }\n\n if (delimiters) {\n delimiters = delimiters.split(' ');\n otag = delimiters[0];\n ctag = delimiters[1];\n }\n\n for (i = 0; i < len; i++) {\n if (state == IN_TEXT) {\n if (tagChange(otag, text, i)) {\n --i;\n addBuf();\n state = IN_TAG_TYPE;\n } else {\n if (text.charAt(i) == '\\n') {\n filterLine(seenTag);\n } else {\n buf += text.charAt(i);\n }\n }\n } else if (state == IN_TAG_TYPE) {\n i += otag.length - 1;\n tag = Hogan.tags[text.charAt(i + 1)];\n tagType = tag ? text.charAt(i + 1) : '_v';\n if (tagType == '=') {\n i = changeDelimiters(text, i);\n state = IN_TEXT;\n } else {\n if (tag) {\n i++;\n }\n state = IN_TAG;\n }\n seenTag = i;\n } else {\n if (tagChange(ctag, text, i)) {\n tokens.push({tag: tagType, n: trim(buf), otag: otag, ctag: ctag,\n i: (tagType == '/') ? seenTag - otag.length : i + ctag.length});\n buf = '';\n i += ctag.length - 1;\n state = IN_TEXT;\n if (tagType == '{') {\n if (ctag == '}}') {\n i++;\n } else {\n cleanTripleStache(tokens[tokens.length - 1]);\n }\n }\n } else {\n buf += text.charAt(i);\n }\n }\n }\n\n filterLine(seenTag, true);\n\n return tokens;\n }\n\n function cleanTripleStache(token) {\n if (token.n.substr(token.n.length - 1) === '}') {\n token.n = token.n.substring(0, token.n.length - 1);\n }\n }\n\n function trim(s) {\n if (s.trim) {\n return s.trim();\n }\n\n return s.replace(/^\\s*|\\s*$/g, '');\n }\n\n function tagChange(tag, text, index) {\n if (text.charAt(index) != tag.charAt(0)) {\n return false;\n }\n\n for (var i = 1, l = tag.length; i < l; i++) {\n if (text.charAt(index + i) != tag.charAt(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n // the tags allowed inside super templates\n var allowedInSuper = {'_t': true, '\\n': true, '$': true, '/': true};\n\n function buildTree(tokens, kind, stack, customTags) {\n var instructions = [],\n opener = null,\n tail = null,\n token = null;\n\n tail = stack[stack.length - 1];\n\n while (tokens.length > 0) {\n token = tokens.shift();\n\n if (tail && tail.tag == '<' && !(token.tag in allowedInSuper)) {\n throw new Error('Illegal content in < super tag.');\n }\n\n if (Hogan.tags[token.tag] <= Hogan.tags['$'] || isOpener(token, customTags)) {\n stack.push(token);\n token.nodes = buildTree(tokens, token.tag, stack, customTags);\n } else if (token.tag == '/') {\n if (stack.length === 0) {\n throw new Error('Closing tag without opener: /' + token.n);\n }\n opener = stack.pop();\n if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) {\n throw new Error('Nesting error: ' + opener.n + ' vs. ' + token.n);\n }\n opener.end = token.i;\n return instructions;\n } else if (token.tag == '\\n') {\n token.last = (tokens.length == 0) || (tokens[0].tag == '\\n');\n }\n\n instructions.push(token);\n }\n\n if (stack.length > 0) {\n throw new Error('missing closing tag: ' + stack.pop().n);\n }\n\n return instructions;\n }\n\n function isOpener(token, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].o == token.n) {\n token.tag = '#';\n return true;\n }\n }\n }\n\n function isCloser(close, open, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].c == close && tags[i].o == open) {\n return true;\n }\n }\n }\n\n function stringifySubstitutions(obj) {\n var items = [];\n for (var key in obj) {\n items.push('\"' + esc(key) + '\": function(c,p,t,i) {' + obj[key] + '}');\n }\n return \"{ \" + items.join(\",\") + \" }\";\n }\n\n function stringifyPartials(codeObj) {\n var partials = [];\n for (var key in codeObj.partials) {\n partials.push('\"' + esc(key) + '\":{name:\"' + esc(codeObj.partials[key].name) + '\", ' + stringifyPartials(codeObj.partials[key]) + \"}\");\n }\n return \"partials: {\" + partials.join(\",\") + \"}, subs: \" + stringifySubstitutions(codeObj.subs);\n }\n\n Hogan.stringify = function(codeObj, text, options) {\n return \"{code: function (c,p,i) { \" + Hogan.wrapMain(codeObj.code) + \" },\" + stringifyPartials(codeObj) + \"}\";\n }\n\n var serialNo = 0;\n Hogan.generate = function(tree, text, options) {\n serialNo = 0;\n var context = { code: '', subs: {}, partials: {} };\n Hogan.walk(tree, context);\n\n if (options.asString) {\n return this.stringify(context, text, options);\n }\n\n return this.makeTemplate(context, text, options);\n }\n\n Hogan.wrapMain = function(code) {\n return 'var t=this;t.b(i=i||\"\");' + code + 'return t.fl();';\n }\n\n Hogan.template = Hogan.Template;\n\n Hogan.makeTemplate = function(codeObj, text, options) {\n var template = this.makePartials(codeObj);\n template.code = new Function('c', 'p', 'i', this.wrapMain(codeObj.code));\n return new this.template(template, text, this, options);\n }\n\n Hogan.makePartials = function(codeObj) {\n var key, template = {subs: {}, partials: codeObj.partials, name: codeObj.name};\n for (key in template.partials) {\n template.partials[key] = this.makePartials(template.partials[key]);\n }\n for (key in codeObj.subs) {\n template.subs[key] = new Function('c', 'p', 't', 'i', codeObj.subs[key]);\n }\n return template;\n }\n\n function esc(s) {\n return s.replace(rSlash, '\\\\\\\\')\n .replace(rQuot, '\\\\\\\"')\n .replace(rNewline, '\\\\n')\n .replace(rCr, '\\\\r')\n .replace(rLineSep, '\\\\u2028')\n .replace(rParagraphSep, '\\\\u2029');\n }\n\n function chooseMethod(s) {\n return (~s.indexOf('.')) ? 'd' : 'f';\n }\n\n function createPartial(node, context) {\n var prefix = \"<\" + (context.prefix || \"\");\n var sym = prefix + node.n + serialNo++;\n context.partials[sym] = {name: node.n, partials: {}};\n context.code += 't.b(t.rp(\"' + esc(sym) + '\",c,p,\"' + (node.indent || '') + '\"));';\n return sym;\n }\n\n Hogan.codegen = {\n '#': function(node, context) {\n context.code += 'if(t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),' +\n 'c,p,0,' + node.i + ',' + node.end + ',\"' + node.otag + \" \" + node.ctag + '\")){' +\n 't.rs(c,p,' + 'function(c,p,t){';\n Hogan.walk(node.nodes, context);\n context.code += '});c.pop();}';\n },\n\n '^': function(node, context) {\n context.code += 'if(!t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),c,p,1,0,0,\"\")){';\n Hogan.walk(node.nodes, context);\n context.code += '};';\n },\n\n '>': createPartial,\n '<': function(node, context) {\n var ctx = {partials: {}, code: '', subs: {}, inPartial: true};\n Hogan.walk(node.nodes, ctx);\n var template = context.partials[createPartial(node, context)];\n template.subs = ctx.subs;\n template.partials = ctx.partials;\n },\n\n '$': function(node, context) {\n var ctx = {subs: {}, code: '', partials: context.partials, prefix: node.n};\n Hogan.walk(node.nodes, ctx);\n context.subs[node.n] = ctx.code;\n if (!context.inPartial) {\n context.code += 't.sub(\"' + esc(node.n) + '\",c,p,i);';\n }\n },\n\n '\\n': function(node, context) {\n context.code += write('\"\\\\n\"' + (node.last ? '' : ' + i'));\n },\n\n '_v': function(node, context) {\n context.code += 't.b(t.v(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n },\n\n '_t': function(node, context) {\n context.code += write('\"' + esc(node.text) + '\"');\n },\n\n '{': tripleStache,\n\n '&': tripleStache\n }\n\n function tripleStache(node, context) {\n context.code += 't.b(t.t(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n }\n\n function write(s) {\n return 't.b(' + s + ');';\n }\n\n Hogan.walk = function(nodelist, context) {\n var func;\n for (var i = 0, l = nodelist.length; i < l; i++) {\n func = Hogan.codegen[nodelist[i].tag];\n func && func(nodelist[i], context);\n }\n return context;\n }\n\n Hogan.parse = function(tokens, text, options) {\n options = options || {};\n return buildTree(tokens, '', [], options.sectionTags || []);\n }\n\n Hogan.cache = {};\n\n Hogan.cacheKey = function(text, options) {\n return [text, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join('||');\n }\n\n Hogan.compile = function(text, options) {\n options = options || {};\n var key = Hogan.cacheKey(text, options);\n var template = this.cache[key];\n\n if (template) {\n var partials = template.partials;\n for (var name in partials) {\n delete partials[name].instance;\n }\n return template;\n }\n\n template = this.generate(this.parse(this.scan(text, options.delimiters), text, options), text, options);\n return this.cache[key] = template;\n }\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This file is for use with Node.js. See dist/ for browser files.\n\nvar Hogan = require('./compiler');\nHogan.Template = require('./template').Template;\nHogan.template = Hogan.Template;\nmodule.exports = Hogan;\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Hogan = {};\n\n(function (Hogan) {\n Hogan.Template = function (codeObj, text, compiler, options) {\n codeObj = codeObj || {};\n this.r = codeObj.code || this.r;\n this.c = compiler;\n this.options = options || {};\n this.text = text || '';\n this.partials = codeObj.partials || {};\n this.subs = codeObj.subs || {};\n this.buf = '';\n }\n\n Hogan.Template.prototype = {\n // render: replaced by generated code.\n r: function (context, partials, indent) { return ''; },\n\n // variable escaping\n v: hoganEscape,\n\n // triple stache\n t: coerceToString,\n\n render: function render(context, partials, indent) {\n return this.ri([context], partials || {}, indent);\n },\n\n // render internal -- a hook for overrides that catches partials too\n ri: function (context, partials, indent) {\n return this.r(context, partials, indent);\n },\n\n // ensurePartial\n ep: function(symbol, partials) {\n var partial = this.partials[symbol];\n\n // check to see that if we've instantiated this partial before\n var template = partials[partial.name];\n if (partial.instance && partial.base == template) {\n return partial.instance;\n }\n\n if (typeof template == 'string') {\n if (!this.c) {\n throw new Error(\"No compiler available.\");\n }\n template = this.c.compile(template, this.options);\n }\n\n if (!template) {\n return null;\n }\n\n // We use this to check whether the partials dictionary has changed\n this.partials[symbol].base = template;\n\n if (partial.subs) {\n // Make sure we consider parent template now\n if (!partials.stackText) partials.stackText = {};\n for (key in partial.subs) {\n if (!partials.stackText[key]) {\n partials.stackText[key] = (this.activeSub !== undefined && partials.stackText[this.activeSub]) ? partials.stackText[this.activeSub] : this.text;\n }\n }\n template = createSpecializedPartial(template, partial.subs, partial.partials,\n this.stackSubs, this.stackPartials, partials.stackText);\n }\n this.partials[symbol].instance = template;\n\n return template;\n },\n\n // tries to find a partial in the current scope and render it\n rp: function(symbol, context, partials, indent) {\n var partial = this.ep(symbol, partials);\n if (!partial) {\n return '';\n }\n\n return partial.ri(context, partials, indent);\n },\n\n // render a section\n rs: function(context, partials, section) {\n var tail = context[context.length - 1];\n\n if (!isArray(tail)) {\n section(context, partials, this);\n return;\n }\n\n for (var i = 0; i < tail.length; i++) {\n context.push(tail[i]);\n section(context, partials, this);\n context.pop();\n }\n },\n\n // maybe start a section\n s: function(val, ctx, partials, inverted, start, end, tags) {\n var pass;\n\n if (isArray(val) && val.length === 0) {\n return false;\n }\n\n if (typeof val == 'function') {\n val = this.ms(val, ctx, partials, inverted, start, end, tags);\n }\n\n pass = !!val;\n\n if (!inverted && pass && ctx) {\n ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]);\n }\n\n return pass;\n },\n\n // find values with dotted names\n d: function(key, ctx, partials, returnFound) {\n var found,\n names = key.split('.'),\n val = this.f(names[0], ctx, partials, returnFound),\n doModelGet = this.options.modelGet,\n cx = null;\n\n if (key === '.' && isArray(ctx[ctx.length - 2])) {\n val = ctx[ctx.length - 1];\n } else {\n for (var i = 1; i < names.length; i++) {\n found = findInScope(names[i], val, doModelGet);\n if (found !== undefined) {\n cx = val;\n val = found;\n } else {\n val = '';\n }\n }\n }\n\n if (returnFound && !val) {\n return false;\n }\n\n if (!returnFound && typeof val == 'function') {\n ctx.push(cx);\n val = this.mv(val, ctx, partials);\n ctx.pop();\n }\n\n return val;\n },\n\n // find values with normal names\n f: function(key, ctx, partials, returnFound) {\n var val = false,\n v = null,\n found = false,\n doModelGet = this.options.modelGet;\n\n for (var i = ctx.length - 1; i >= 0; i--) {\n v = ctx[i];\n val = findInScope(key, v, doModelGet);\n if (val !== undefined) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n return (returnFound) ? false : \"\";\n }\n\n if (!returnFound && typeof val == 'function') {\n val = this.mv(val, ctx, partials);\n }\n\n return val;\n },\n\n // higher order templates\n ls: function(func, cx, partials, text, tags) {\n var oldTags = this.options.delimiters;\n\n this.options.delimiters = tags;\n this.b(this.ct(coerceToString(func.call(cx, text)), cx, partials));\n this.options.delimiters = oldTags;\n\n return false;\n },\n\n // compile text\n ct: function(text, cx, partials) {\n if (this.options.disableLambda) {\n throw new Error('Lambda features disabled.');\n }\n return this.c.compile(text, this.options).render(cx, partials);\n },\n\n // template result buffering\n b: function(s) { this.buf += s; },\n\n fl: function() { var r = this.buf; this.buf = ''; return r; },\n\n // method replace section\n ms: function(func, ctx, partials, inverted, start, end, tags) {\n var textSource,\n cx = ctx[ctx.length - 1],\n result = func.call(cx);\n\n if (typeof result == 'function') {\n if (inverted) {\n return true;\n } else {\n textSource = (this.activeSub && this.subsText && this.subsText[this.activeSub]) ? this.subsText[this.activeSub] : this.text;\n return this.ls(result, cx, partials, textSource.substring(start, end), tags);\n }\n }\n\n return result;\n },\n\n // method replace variable\n mv: function(func, ctx, partials) {\n var cx = ctx[ctx.length - 1];\n var result = func.call(cx);\n\n if (typeof result == 'function') {\n return this.ct(coerceToString(result.call(cx)), cx, partials);\n }\n\n return result;\n },\n\n sub: function(name, context, partials, indent) {\n var f = this.subs[name];\n if (f) {\n this.activeSub = name;\n f(context, partials, this, indent);\n this.activeSub = false;\n }\n }\n\n };\n\n //Find a key in an object\n function findInScope(key, scope, doModelGet) {\n var val;\n\n if (scope && typeof scope == 'object') {\n\n if (scope[key] !== undefined) {\n val = scope[key];\n\n // try lookup with get for backbone or similar model data\n } else if (doModelGet && scope.get && typeof scope.get == 'function') {\n val = scope.get(key);\n }\n }\n\n return val;\n }\n\n function createSpecializedPartial(instance, subs, partials, stackSubs, stackPartials, stackText) {\n function PartialTemplate() {};\n PartialTemplate.prototype = instance;\n function Substitutions() {};\n Substitutions.prototype = instance.subs;\n var key;\n var partial = new PartialTemplate();\n partial.subs = new Substitutions();\n partial.subsText = {}; //hehe. substext.\n partial.buf = '';\n\n stackSubs = stackSubs || {};\n partial.stackSubs = stackSubs;\n partial.subsText = stackText;\n for (key in subs) {\n if (!stackSubs[key]) stackSubs[key] = subs[key];\n }\n for (key in stackSubs) {\n partial.subs[key] = stackSubs[key];\n }\n\n stackPartials = stackPartials || {};\n partial.stackPartials = stackPartials;\n for (key in partials) {\n if (!stackPartials[key]) stackPartials[key] = partials[key];\n }\n for (key in stackPartials) {\n partial.partials[key] = stackPartials[key];\n }\n\n return partial;\n }\n\n var rAmp = /&/g,\n rLt = //g,\n rApos = /\\'/g,\n rQuot = /\\\"/g,\n hChars = /[&<>\\\"\\']/;\n\n function coerceToString(val) {\n return String((val === null || val === undefined) ? '' : val);\n }\n\n function hoganEscape(str) {\n str = coerceToString(str);\n return hChars.test(str) ?\n str\n .replace(rAmp, '&')\n .replace(rLt, '<')\n .replace(rGt, '>')\n .replace(rApos, ''')\n .replace(rQuot, '"') :\n str;\n }\n\n var isArray = Array.isArray || function(a) {\n return Object.prototype.toString.call(a) === '[object Array]';\n };\n\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","(function(e,t){if(typeof define===\"function\"&&define.amd){define([],t)}else if(typeof module===\"object\"&&module.exports){module.exports=t()}else{e.htmx=e.htmx||t()}})(typeof self!==\"undefined\"?self:this,function(){return function(){\"use strict\";var Q={onLoad:F,process:zt,on:de,off:ge,trigger:ce,ajax:Nr,find:C,findAll:f,closest:v,values:function(e,t){var r=dr(e,t||\"post\");return r.values},remove:_,addClass:z,removeClass:n,toggleClass:$,takeClass:W,defineExtension:Ur,removeExtension:Br,logAll:V,logNone:j,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:\"innerHTML\",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:\"htmx-indicator\",requestClass:\"htmx-request\",addedClass:\"htmx-added\",settlingClass:\"htmx-settling\",swappingClass:\"htmx-swapping\",allowEval:true,allowScriptTags:true,inlineScriptNonce:\"\",attributesToSettle:[\"class\",\"style\",\"width\",\"height\"],withCredentials:false,timeout:0,wsReconnectDelay:\"full-jitter\",wsBinaryType:\"blob\",disableSelector:\"[hx-disable], [data-hx-disable]\",useTemplateFragments:false,scrollBehavior:\"smooth\",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:[\"get\"],selfRequestsOnly:false,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null},parseInterval:d,_:t,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=Q.config.wsBinaryType;return t},version:\"1.9.12\"};var r={addTriggerHandler:Lt,bodyContains:se,canAccessLocalStorage:U,findThisElement:xe,filterValues:yr,hasAttribute:o,getAttributeValue:te,getClosestAttributeValue:ne,getClosestMatch:c,getExpressionVars:Hr,getHeaders:xr,getInputValues:dr,getInternalData:ae,getSwapSpecification:wr,getTriggerSpecs:it,getTarget:ye,makeFragment:l,mergeObjects:le,makeSettleInfo:T,oobSwap:Ee,querySelectorExt:ue,selectAndSwap:je,settleImmediately:nr,shouldCancel:ut,triggerEvent:ce,triggerErrorEvent:fe,withExtensions:R};var w=[\"get\",\"post\",\"put\",\"delete\",\"patch\"];var i=w.map(function(e){return\"[hx-\"+e+\"], [data-hx-\"+e+\"]\"}).join(\", \");var S=e(\"head\"),q=e(\"title\"),H=e(\"svg\",true);function e(e,t){return new RegExp(\"<\"+e+\"(\\\\s[^>]*>|>)([\\\\s\\\\S]*?)<\\\\/\"+e+\">\",!!t?\"gim\":\"im\")}function d(e){if(e==undefined){return undefined}let t=NaN;if(e.slice(-2)==\"ms\"){t=parseFloat(e.slice(0,-2))}else if(e.slice(-1)==\"s\"){t=parseFloat(e.slice(0,-1))*1e3}else if(e.slice(-1)==\"m\"){t=parseFloat(e.slice(0,-1))*1e3*60}else{t=parseFloat(e)}return isNaN(t)?undefined:t}function ee(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute(\"data-\"+t))}function te(e,t){return ee(e,t)||ee(e,\"data-\"+t)}function u(e){return e.parentElement}function re(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function L(e,t,r){var n=te(t,r);var i=te(t,\"hx-disinherit\");if(e!==t&&i&&(i===\"*\"||i.split(\" \").indexOf(r)>=0)){return\"unset\"}else{return n}}function ne(t,r){var n=null;c(t,function(e){return n=L(t,e,r)});if(n!==\"unset\"){return n}}function h(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function A(e){var t=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return\"\"}}function s(e,t){var r=new DOMParser;var n=r.parseFromString(e,\"text/html\");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=re().createDocumentFragment()}return i}function N(e){return/\",0);var a=i.querySelector(\"template\").content;if(Q.config.allowScriptTags){oe(a.querySelectorAll(\"script\"),function(e){if(Q.config.inlineScriptNonce){e.nonce=Q.config.inlineScriptNonce}e.htmxExecuted=navigator.userAgent.indexOf(\"Firefox\")===-1})}else{oe(a.querySelectorAll(\"script\"),function(e){_(e)})}return a}switch(r){case\"thead\":case\"tbody\":case\"tfoot\":case\"colgroup\":case\"caption\":return s(\"\"+n+\"
\",1);case\"col\":return s(\"\"+n+\"
\",2);case\"tr\":return s(\"\"+n+\"
\",2);case\"td\":case\"th\":return s(\"\"+n+\"
\",3);case\"script\":case\"style\":return s(\"
\"+n+\"
\",1);default:return s(n,0)}}function ie(e){if(e){e()}}function I(e,t){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}function k(e){return I(e,\"Function\")}function P(e){return I(e,\"Object\")}function ae(e){var t=\"htmx-internal-data\";var r=e[t];if(!r){r=e[t]={}}return r}function M(e){var t=[];if(e){for(var r=0;r=0}function se(e){if(e.getRootNode&&e.getRootNode()instanceof window.ShadowRoot){return re().body.contains(e.getRootNode().host)}else{return re().body.contains(e)}}function D(e){return e.trim().split(/\\s+/)}function le(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function E(e){try{return JSON.parse(e)}catch(e){b(e);return null}}function U(){var e=\"htmx:localStorageTest\";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function B(t){try{var e=new URL(t);if(e){t=e.pathname+e.search}if(!/^\\/$/.test(t)){t=t.replace(/\\/+$/,\"\")}return t}catch(e){return t}}function t(e){return Tr(re().body,function(){return eval(e)})}function F(t){var e=Q.on(\"htmx:load\",function(e){t(e.detail.elt)});return e}function V(){Q.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function j(){Q.logger=null}function C(e,t){if(t){return e.querySelector(t)}else{return C(re(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(re(),e)}}function _(e,t){e=p(e);if(t){setTimeout(function(){_(e);e=null},t)}else{e.parentElement.removeChild(e)}}function z(e,t,r){e=p(e);if(r){setTimeout(function(){z(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=p(e);if(r){setTimeout(function(){n(e,t);e=null},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute(\"class\")}}}}function $(e,t){e=p(e);e.classList.toggle(t)}function W(e,t){e=p(e);oe(e.parentElement.children,function(e){n(e,t)});z(e,t)}function v(e,t){e=p(e);if(e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&u(e));return null}}function g(e,t){return e.substring(0,t.length)===t}function G(e,t){return e.substring(e.length-t.length)===t}function J(e){var t=e.trim();if(g(t,\"<\")&&G(t,\"/>\")){return t.substring(1,t.length-2)}else{return t}}function Z(e,t){if(t.indexOf(\"closest \")===0){return[v(e,J(t.substr(8)))]}else if(t.indexOf(\"find \")===0){return[C(e,J(t.substr(5)))]}else if(t===\"next\"){return[e.nextElementSibling]}else if(t.indexOf(\"next \")===0){return[K(e,J(t.substr(5)))]}else if(t===\"previous\"){return[e.previousElementSibling]}else if(t.indexOf(\"previous \")===0){return[Y(e,J(t.substr(9)))]}else if(t===\"document\"){return[document]}else if(t===\"window\"){return[window]}else if(t===\"body\"){return[document.body]}else{return re().querySelectorAll(J(t))}}var K=function(e,t){var r=re().querySelectorAll(t);for(var n=0;n=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ue(e,t){if(t){return Z(e,t)[0]}else{return Z(re().body,e)[0]}}function p(e){if(I(e,\"String\")){return C(e)}else{return e}}function ve(e,t,r){if(k(t)){return{target:re().body,event:e,listener:t}}else{return{target:p(e),event:t,listener:r}}}function de(t,r,n){jr(function(){var e=ve(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=k(r);return e?r:n}function ge(t,r,n){jr(function(){var e=ve(t,r,n);e.target.removeEventListener(e.event,e.listener)});return k(r)?r:n}var pe=re().createElement(\"output\");function me(e,t){var r=ne(e,t);if(r){if(r===\"this\"){return[xe(e,t)]}else{var n=Z(e,r);if(n.length===0){b('The selector \"'+r+'\" on '+t+\" returned no matches!\");return[pe]}else{return n}}}}function xe(e,t){return c(e,function(e){return te(e,t)!=null})}function ye(e){var t=ne(e,\"hx-target\");if(t){if(t===\"this\"){return xe(e,\"hx-target\")}else{return ue(e,t)}}else{var r=ae(e);if(r.boosted){return re().body}else{return e}}}function be(e){var t=Q.config.attributesToSettle;for(var r=0;r0){o=e.substr(0,e.indexOf(\":\"));t=e.substr(e.indexOf(\":\")+1,e.length)}else{o=e}var r=re().querySelectorAll(t);if(r){oe(r,function(e){var t;var r=i.cloneNode(true);t=re().createDocumentFragment();t.appendChild(r);if(!Se(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!ce(e,\"htmx:oobBeforeSwap\",n))return;e=n.target;if(n[\"shouldSwap\"]){Fe(o,e,e,t,a)}oe(a.elts,function(e){ce(e,\"htmx:oobAfterSwap\",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);fe(re().body,\"htmx:oobErrorNoTarget\",{content:i})}return e}function Ce(e,t,r){var n=ne(e,\"hx-select-oob\");if(n){var i=n.split(\",\");for(var a=0;a0){var r=t.replace(\"'\",\"\\\\'\");var n=e.tagName.replace(\":\",\"\\\\:\");var i=o.querySelector(n+\"[id='\"+r+\"']\");if(i&&i!==o){var a=e.cloneNode();we(e,i);s.tasks.push(function(){we(e,a)})}}})}function Oe(e){return function(){n(e,Q.config.addedClass);zt(e);Nt(e);qe(e);ce(e,\"htmx:load\")}}function qe(e){var t=\"[autofocus]\";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){Te(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;z(i,Q.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(Oe(i))}}}function He(e,t){var r=0;while(r-1){var t=e.replace(H,\"\");var r=t.match(q);if(r){return r[2]}}}function je(e,t,r,n,i,a){i.title=Ve(n);var o=l(n);if(o){Ce(r,o,i);o=Be(r,o,a);Re(o);return Fe(e,r,t,o,i)}}function _e(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf(\"{\")===0){var i=E(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!P(o)){o={value:o}}ce(r,a,o)}}}else{var s=n.split(\",\");for(var l=0;l0){var o=t[0];if(o===\"]\"){n--;if(n===0){if(a===null){i=i+\"true\"}t.shift();i+=\")})\";try{var s=Tr(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){fe(re().body,\"htmx:syntax:error\",{error:e,source:i});return null}}}else if(o===\"[\"){n++}if(Qe(o,a,r)){i+=\"((\"+r+\".\"+o+\") ? (\"+r+\".\"+o+\") : (window.\"+o+\"))\"}else{i=i+o}a=t.shift()}}}function y(e,t){var r=\"\";while(e.length>0&&!t.test(e[0])){r+=e.shift()}return r}function tt(e){var t;if(e.length>0&&Ze.test(e[0])){e.shift();t=y(e,Ke).trim();e.shift()}else{t=y(e,x)}return t}var rt=\"input, textarea, select\";function nt(e,t,r){var n=[];var i=Ye(t);do{y(i,Je);var a=i.length;var o=y(i,/[,\\[\\s]/);if(o!==\"\"){if(o===\"every\"){var s={trigger:\"every\"};y(i,Je);s.pollInterval=d(y(i,/[,\\[\\s]/));y(i,Je);var l=et(e,i,\"event\");if(l){s.eventFilter=l}n.push(s)}else if(o.indexOf(\"sse:\")===0){n.push({trigger:\"sse\",sseEvent:o.substr(4)})}else{var u={trigger:o};var l=et(e,i,\"event\");if(l){u.eventFilter=l}while(i.length>0&&i[0]!==\",\"){y(i,Je);var f=i.shift();if(f===\"changed\"){u.changed=true}else if(f===\"once\"){u.once=true}else if(f===\"consume\"){u.consume=true}else if(f===\"delay\"&&i[0]===\":\"){i.shift();u.delay=d(y(i,x))}else if(f===\"from\"&&i[0]===\":\"){i.shift();if(Ze.test(i[0])){var c=tt(i)}else{var c=y(i,x);if(c===\"closest\"||c===\"find\"||c===\"next\"||c===\"previous\"){i.shift();var h=tt(i);if(h.length>0){c+=\" \"+h}}}u.from=c}else if(f===\"target\"&&i[0]===\":\"){i.shift();u.target=tt(i)}else if(f===\"throttle\"&&i[0]===\":\"){i.shift();u.throttle=d(y(i,x))}else if(f===\"queue\"&&i[0]===\":\"){i.shift();u.queue=y(i,x)}else if(f===\"root\"&&i[0]===\":\"){i.shift();u[f]=tt(i)}else if(f===\"threshold\"&&i[0]===\":\"){i.shift();u[f]=y(i,x)}else{fe(e,\"htmx:syntax:error\",{token:i.shift()})}}n.push(u)}}if(i.length===a){fe(e,\"htmx:syntax:error\",{token:i.shift()})}y(i,Je)}while(i[0]===\",\"&&i.shift());if(r){r[t]=n}return n}function it(e){var t=te(e,\"hx-trigger\");var r=[];if(t){var n=Q.config.triggerSpecsCache;r=n&&n[t]||nt(e,t,n)}if(r.length>0){return r}else if(h(e,\"form\")){return[{trigger:\"submit\"}]}else if(h(e,'input[type=\"button\"], input[type=\"submit\"]')){return[{trigger:\"click\"}]}else if(h(e,rt)){return[{trigger:\"change\"}]}else{return[{trigger:\"click\"}]}}function at(e){ae(e).cancelled=true}function ot(e,t,r){var n=ae(e);n.timeout=setTimeout(function(){if(se(e)&&n.cancelled!==true){if(!ct(r,e,Wt(\"hx:poll:trigger\",{triggerSpec:r,target:e}))){t(e)}ot(e,t,r)}},r.pollInterval)}function st(e){return location.hostname===e.hostname&&ee(e,\"href\")&&ee(e,\"href\").indexOf(\"#\")!==0}function lt(t,r,e){if(t.tagName===\"A\"&&st(t)&&(t.target===\"\"||t.target===\"_self\")||t.tagName===\"FORM\"){r.boosted=true;var n,i;if(t.tagName===\"A\"){n=\"get\";i=ee(t,\"href\")}else{var a=ee(t,\"method\");n=a?a.toLowerCase():\"get\";if(n===\"get\"){}i=ee(t,\"action\")}e.forEach(function(e){ht(t,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(n,i,e,t)},r,e,true)})}}function ut(e,t){if(e.type===\"submit\"||e.type===\"click\"){if(t.tagName===\"FORM\"){return true}if(h(t,'input[type=\"submit\"], button')&&v(t,\"form\")!==null){return true}if(t.tagName===\"A\"&&t.href&&(t.getAttribute(\"href\")===\"#\"||t.getAttribute(\"href\").indexOf(\"#\")!==0)){return true}}return false}function ft(e,t){return ae(e).boosted&&e.tagName===\"A\"&&t.type===\"click\"&&(t.ctrlKey||t.metaKey)}function ct(e,t,r){var n=e.eventFilter;if(n){try{return n.call(t,r)!==true}catch(e){fe(re().body,\"htmx:eventFilter:error\",{error:e,source:n.source});return true}}return false}function ht(a,o,e,s,l){var u=ae(a);var t;if(s.from){t=Z(a,s.from)}else{t=[a]}if(s.changed){t.forEach(function(e){var t=ae(e);t.lastValue=e.value})}oe(t,function(n){var i=function(e){if(!se(a)){n.removeEventListener(s.trigger,i);return}if(ft(a,e)){return}if(l||ut(e,a)){e.preventDefault()}if(ct(s,a,e)){return}var t=ae(e);t.triggerSpec=s;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(a)<0){t.handledFor.push(a);if(s.consume){e.stopPropagation()}if(s.target&&e.target){if(!h(e.target,s.target)){return}}if(s.once){if(u.triggeredOnce){return}else{u.triggeredOnce=true}}if(s.changed){var r=ae(n);if(r.lastValue===n.value){return}r.lastValue=n.value}if(u.delayed){clearTimeout(u.delayed)}if(u.throttle){return}if(s.throttle>0){if(!u.throttle){o(a,e);u.throttle=setTimeout(function(){u.throttle=null},s.throttle)}}else if(s.delay>0){u.delayed=setTimeout(function(){o(a,e)},s.delay)}else{ce(a,\"htmx:trigger\");o(a,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:s.trigger,listener:i,on:n});n.addEventListener(s.trigger,i)})}var vt=false;var dt=null;function gt(){if(!dt){dt=function(){vt=true};window.addEventListener(\"scroll\",dt);setInterval(function(){if(vt){vt=false;oe(re().querySelectorAll(\"[hx-trigger='revealed'],[data-hx-trigger='revealed']\"),function(e){pt(e)})}},200)}}function pt(t){if(!o(t,\"data-hx-revealed\")&&X(t)){t.setAttribute(\"data-hx-revealed\",\"true\");var e=ae(t);if(e.initHash){ce(t,\"revealed\")}else{t.addEventListener(\"htmx:afterProcessNode\",function(e){ce(t,\"revealed\")},{once:true})}}}function mt(e,t,r){var n=D(r);for(var i=0;i=0){var t=wt(n);setTimeout(function(){xt(s,r,n+1)},t)}};t.onopen=function(e){n=0};ae(s).webSocket=t;t.addEventListener(\"message\",function(e){if(yt(s)){return}var t=e.data;R(s,function(e){t=e.transformResponse(t,null,s)});var r=T(s);var n=l(t);var i=M(n.children);for(var a=0;a0){ce(u,\"htmx:validation:halted\",i);return}t.send(JSON.stringify(l));if(ut(e,u)){e.preventDefault()}})}else{fe(u,\"htmx:noWebSocketSourceError\")}}function wt(e){var t=Q.config.wsReconnectDelay;if(typeof t===\"function\"){return t(e)}if(t===\"full-jitter\"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}b('htmx.config.wsReconnectDelay must either be a function or the string \"full-jitter\"')}function St(e,t,r){var n=D(r);for(var i=0;i0){setTimeout(i,n)}else{i()}}function Ht(t,i,e){var a=false;oe(w,function(r){if(o(t,\"hx-\"+r)){var n=te(t,\"hx-\"+r);a=true;i.path=n;i.verb=r;e.forEach(function(e){Lt(t,e,i,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(r,n,e,t)})})}});return a}function Lt(n,e,t,r){if(e.sseEvent){Rt(n,r,e.sseEvent)}else if(e.trigger===\"revealed\"){gt();ht(n,r,t,e);pt(n)}else if(e.trigger===\"intersect\"){var i={};if(e.root){i.root=ue(n,e.root)}if(e.threshold){i.threshold=parseFloat(e.threshold)}var a=new IntersectionObserver(function(e){for(var t=0;t0){t.polling=true;ot(n,r,e)}else{ht(n,r,t,e)}}function At(e){if(!e.htmxExecuted&&Q.config.allowScriptTags&&(e.type===\"text/javascript\"||e.type===\"module\"||e.type===\"\")){var t=re().createElement(\"script\");oe(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}var r=e.parentElement;try{r.insertBefore(t,e)}catch(e){b(e)}finally{if(e.parentElement){e.parentElement.removeChild(e)}}}}function Nt(e){if(h(e,\"script\")){At(e)}oe(f(e,\"script\"),function(e){At(e)})}function It(e){var t=e.attributes;if(!t){return false}for(var r=0;r0){var o=n.shift();var s=o.match(/^\\s*([a-zA-Z:\\-\\.]+:)(.*)/);if(a===0&&s){o.split(\":\");i=s[1].slice(0,-1);r[i]=s[2]}else{r[i]+=o}a+=Bt(o)}for(var l in r){Ft(e,l,r[l])}}}function jt(e){Ae(e);for(var t=0;tQ.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem(\"htmx-history-cache\",JSON.stringify(i));break}catch(e){fe(re().body,\"htmx:historyCacheError\",{cause:e,cache:i});i.shift()}}}function Yt(e){if(!U()){return null}e=B(e);var t=E(localStorage.getItem(\"htmx-history-cache\"))||[];for(var r=0;r=200&&this.status<400){ce(re().body,\"htmx:historyCacheMissLoad\",o);var e=l(this.response);e=e.querySelector(\"[hx-history-elt],[data-hx-history-elt]\")||e;var t=Zt();var r=T(t);var n=Ve(this.response);if(n){var i=C(\"title\");if(i){i.innerHTML=n}else{window.document.title=n}}Ue(t,e,r);nr(r.tasks);Jt=a;ce(re().body,\"htmx:historyRestore\",{path:a,cacheMiss:true,serverResponse:this.response})}else{fe(re().body,\"htmx:historyCacheMissLoadError\",o)}};e.send()}function ar(e){er();e=e||location.pathname+location.search;var t=Yt(e);if(t){var r=l(t.content);var n=Zt();var i=T(n);Ue(n,r,i);nr(i.tasks);document.title=t.title;setTimeout(function(){window.scrollTo(0,t.scroll)},0);Jt=e;ce(re().body,\"htmx:historyRestore\",{path:e,item:t})}else{if(Q.config.refreshOnHistoryMiss){window.location.reload(true)}else{ir(e)}}}function or(e){var t=me(e,\"hx-indicator\");if(t==null){t=[e]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.classList[\"add\"].call(e.classList,Q.config.requestClass)});return t}function sr(e){var t=me(e,\"hx-disabled-elt\");if(t==null){t=[]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute(\"disabled\",\"\")});return t}function lr(e,t){oe(e,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList[\"remove\"].call(e.classList,Q.config.requestClass)}});oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.removeAttribute(\"disabled\")}})}function ur(e,t){for(var r=0;r=0}function wr(e,t){var r=t?t:ne(e,\"hx-swap\");var n={swapStyle:ae(e).boosted?\"innerHTML\":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ae(e).boosted&&!br(e)){n[\"show\"]=\"top\"}if(r){var i=D(r);if(i.length>0){for(var a=0;a0?l.join(\":\"):null;n[\"scroll\"]=u;n[\"scrollTarget\"]=f}else if(o.indexOf(\"show:\")===0){var c=o.substr(5);var l=c.split(\":\");var h=l.pop();var f=l.length>0?l.join(\":\"):null;n[\"show\"]=h;n[\"showTarget\"]=f}else if(o.indexOf(\"focus-scroll:\")===0){var v=o.substr(\"focus-scroll:\".length);n[\"focusScroll\"]=v==\"true\"}else if(a==0){n[\"swapStyle\"]=o}else{b(\"Unknown modifier in hx-swap: \"+o)}}}}return n}function Sr(e){return ne(e,\"hx-encoding\")===\"multipart/form-data\"||h(e,\"form\")&&ee(e,\"enctype\")===\"multipart/form-data\"}function Er(t,r,n){var i=null;R(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(Sr(r)){return mr(n)}else{return pr(n)}}}function T(e){return{tasks:[],elts:[e]}}function Cr(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ue(r,t.scrollTarget)}if(t.scroll===\"top\"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll===\"bottom\"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget===\"window\"){a=\"body\"}i=ue(r,a)}if(t.show===\"top\"&&(r||i)){i=i||r;i.scrollIntoView({block:\"start\",behavior:Q.config.scrollBehavior})}if(t.show===\"bottom\"&&(n||i)){i=i||n;i.scrollIntoView({block:\"end\",behavior:Q.config.scrollBehavior})}}}function Rr(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=te(e,t);if(i){var a=i.trim();var o=r;if(a===\"unset\"){return null}if(a.indexOf(\"javascript:\")===0){a=a.substr(11);o=true}else if(a.indexOf(\"js:\")===0){a=a.substr(3);o=true}if(a.indexOf(\"{\")!==0){a=\"{\"+a+\"}\"}var s;if(o){s=Tr(e,function(){return Function(\"return (\"+a+\")\")()},{})}else{s=E(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return Rr(u(e),t,r,n)}function Tr(e,t,r){if(Q.config.allowEval){return t()}else{fe(e,\"htmx:evalDisallowedError\");return r}}function Or(e,t){return Rr(e,\"hx-vars\",true,t)}function qr(e,t){return Rr(e,\"hx-vals\",false,t)}function Hr(e){return le(Or(e),qr(e))}function Lr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+\"-URI-AutoEncoded\",\"true\")}}}function Ar(t){if(t.responseURL&&typeof URL!==\"undefined\"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(re().body,\"htmx:badResponseUrl\",{url:t.responseURL})}}}function O(e,t){return t.test(e.getAllResponseHeaders())}function Nr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||I(r,\"String\")){return he(e,t,null,null,{targetOverride:p(r),returnPromise:true})}else{return he(e,t,p(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:p(r.target),swapOverride:r.swap,select:r.select,returnPromise:true})}}else{return he(e,t,null,null,{returnPromise:true})}}function Ir(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function kr(e,t,r){var n;var i;if(typeof URL===\"function\"){i=new URL(t,document.location.href);var a=document.location.origin;n=a===i.origin}else{i=t;n=g(t,document.location.origin)}if(Q.config.selfRequestsOnly){if(!n){return false}}return ce(e,\"htmx:validateUrl\",le({url:i,sameHost:n},r))}function he(t,r,n,i,a,e){var o=null;var s=null;a=a!=null?a:{};if(a.returnPromise&&typeof Promise!==\"undefined\"){var l=new Promise(function(e,t){o=e;s=t})}if(n==null){n=re().body}var M=a.handler||Mr;var X=a.select||null;if(!se(n)){ie(o);return l}var u=a.targetOverride||ye(n);if(u==null||u==pe){fe(n,\"htmx:targetError\",{target:te(n,\"hx-target\")});ie(s);return l}var f=ae(n);var c=f.lastButtonClicked;if(c){var h=ee(c,\"formaction\");if(h!=null){r=h}var v=ee(c,\"formmethod\");if(v!=null){if(v.toLowerCase()!==\"dialog\"){t=v}}}var d=ne(n,\"hx-confirm\");if(e===undefined){var D=function(e){return he(t,r,n,i,a,!!e)};var U={target:u,elt:n,path:r,verb:t,triggeringEvent:i,etc:a,issueRequest:D,question:d};if(ce(n,\"htmx:confirm\",U)===false){ie(o);return l}}var g=n;var p=ne(n,\"hx-sync\");var m=null;var x=false;if(p){var B=p.split(\":\");var F=B[0].trim();if(F===\"this\"){g=xe(n,\"hx-sync\")}else{g=ue(n,F)}p=(B[1]||\"drop\").trim();f=ae(g);if(p===\"drop\"&&f.xhr&&f.abortable!==true){ie(o);return l}else if(p===\"abort\"){if(f.xhr){ie(o);return l}else{x=true}}else if(p===\"replace\"){ce(g,\"htmx:abort\")}else if(p.indexOf(\"queue\")===0){var V=p.split(\" \");m=(V[1]||\"last\").trim()}}if(f.xhr){if(f.abortable){ce(g,\"htmx:abort\")}else{if(m==null){if(i){var y=ae(i);if(y&&y.triggerSpec&&y.triggerSpec.queue){m=y.triggerSpec.queue}}if(m==null){m=\"last\"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(m===\"first\"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m===\"all\"){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m===\"last\"){f.queuedRequests=[];f.queuedRequests.push(function(){he(t,r,n,i,a)})}ie(o);return l}}var b=new XMLHttpRequest;f.xhr=b;f.abortable=x;var w=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var j=ne(n,\"hx-prompt\");if(j){var S=prompt(j);if(S===null||!ce(n,\"htmx:prompt\",{prompt:S,target:u})){ie(o);w();return l}}if(d&&!e){if(!confirm(d)){ie(o);w();return l}}var E=xr(n,u,S);if(t!==\"get\"&&!Sr(n)){E[\"Content-Type\"]=\"application/x-www-form-urlencoded\"}if(a.headers){E=le(E,a.headers)}var _=dr(n,t);var C=_.errors;var R=_.values;if(a.values){R=le(R,a.values)}var z=Hr(n);var $=le(R,z);var T=yr($,n);if(Q.config.getCacheBusterParam&&t===\"get\"){T[\"org.htmx.cache-buster\"]=ee(u,\"id\")||\"true\"}if(r==null||r===\"\"){r=re().location.href}var O=Rr(n,\"hx-request\");var W=ae(n).boosted;var q=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;var H={boosted:W,useUrlParams:q,parameters:T,unfilteredParameters:$,headers:E,target:u,verb:t,errors:C,withCredentials:a.credentials||O.credentials||Q.config.withCredentials,timeout:a.timeout||O.timeout||Q.config.timeout,path:r,triggeringEvent:i};if(!ce(n,\"htmx:configRequest\",H)){ie(o);w();return l}r=H.path;t=H.verb;E=H.headers;T=H.parameters;C=H.errors;q=H.useUrlParams;if(C&&C.length>0){ce(n,\"htmx:validation:halted\",H);ie(o);w();return l}var G=r.split(\"#\");var J=G[0];var L=G[1];var A=r;if(q){A=J;var Z=Object.keys(T).length!==0;if(Z){if(A.indexOf(\"?\")<0){A+=\"?\"}else{A+=\"&\"}A+=pr(T);if(L){A+=\"#\"+L}}}if(!kr(n,A,H)){fe(n,\"htmx:invalidPath\",H);ie(s);return l}b.open(t.toUpperCase(),A,true);b.overrideMimeType(\"text/html\");b.withCredentials=H.withCredentials;b.timeout=H.timeout;if(O.noHeaders){}else{for(var N in E){if(E.hasOwnProperty(N)){var K=E[N];Lr(b,N,K)}}}var I={xhr:b,target:u,requestConfig:H,etc:a,boosted:W,select:X,pathInfo:{requestPath:r,finalRequestPath:A,anchor:L}};b.onload=function(){try{var e=Ir(n);I.pathInfo.responsePath=Ar(b);M(n,I);lr(k,P);ce(n,\"htmx:afterRequest\",I);ce(n,\"htmx:afterOnLoad\",I);if(!se(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(se(r)){t=r}}if(t){ce(t,\"htmx:afterRequest\",I);ce(t,\"htmx:afterOnLoad\",I)}}ie(o);w()}catch(e){fe(n,\"htmx:onLoadError\",le({error:e},I));throw e}};b.onerror=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:sendError\",I);ie(s);w()};b.onabort=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:sendAbort\",I);ie(s);w()};b.ontimeout=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:timeout\",I);ie(s);w()};if(!ce(n,\"htmx:beforeRequest\",I)){ie(o);w();return l}var k=or(n);var P=sr(n);oe([\"loadstart\",\"loadend\",\"progress\",\"abort\"],function(t){oe([b,b.upload],function(e){e.addEventListener(t,function(e){ce(n,\"htmx:xhr:\"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ce(n,\"htmx:beforeSend\",I);var Y=q?null:Er(b,n,T);b.send(Y);return l}function Pr(e,t){var r=t.xhr;var n=null;var i=null;if(O(r,/HX-Push:/i)){n=r.getResponseHeader(\"HX-Push\");i=\"push\"}else if(O(r,/HX-Push-Url:/i)){n=r.getResponseHeader(\"HX-Push-Url\");i=\"push\"}else if(O(r,/HX-Replace-Url:/i)){n=r.getResponseHeader(\"HX-Replace-Url\");i=\"replace\"}if(n){if(n===\"false\"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=ne(e,\"hx-push-url\");var l=ne(e,\"hx-replace-url\");var u=ae(e).boosted;var f=null;var c=null;if(s){f=\"push\";c=s}else if(l){f=\"replace\";c=l}else if(u){f=\"push\";c=o||a}if(c){if(c===\"false\"){return{}}if(c===\"true\"){c=o||a}if(t.pathInfo.anchor&&c.indexOf(\"#\")===-1){c=c+\"#\"+t.pathInfo.anchor}return{type:f,path:c}}else{return{}}}function Mr(l,u){var f=u.xhr;var c=u.target;var e=u.etc;var t=u.requestConfig;var h=u.select;if(!ce(l,\"htmx:beforeOnLoad\",u))return;if(O(f,/HX-Trigger:/i)){_e(f,\"HX-Trigger\",l)}if(O(f,/HX-Location:/i)){er();var r=f.getResponseHeader(\"HX-Location\");var v;if(r.indexOf(\"{\")===0){v=E(r);r=v[\"path\"];delete v[\"path\"]}Nr(\"GET\",r,v).then(function(){tr(r)});return}var n=O(f,/HX-Refresh:/i)&&\"true\"===f.getResponseHeader(\"HX-Refresh\");if(O(f,/HX-Redirect:/i)){location.href=f.getResponseHeader(\"HX-Redirect\");n&&location.reload();return}if(n){location.reload();return}if(O(f,/HX-Retarget:/i)){if(f.getResponseHeader(\"HX-Retarget\")===\"this\"){u.target=l}else{u.target=ue(l,f.getResponseHeader(\"HX-Retarget\"))}}var d=Pr(l,u);var i=f.status>=200&&f.status<400&&f.status!==204;var g=f.response;var a=f.status>=400;var p=Q.config.ignoreTitle;var o=le({shouldSwap:i,serverResponse:g,isError:a,ignoreTitle:p},u);if(!ce(c,\"htmx:beforeSwap\",o))return;c=o.target;g=o.serverResponse;a=o.isError;p=o.ignoreTitle;u.target=c;u.failed=a;u.successful=!a;if(o.shouldSwap){if(f.status===286){at(l)}R(l,function(e){g=e.transformResponse(g,f,l)});if(d.type){er()}var s=e.swapOverride;if(O(f,/HX-Reswap:/i)){s=f.getResponseHeader(\"HX-Reswap\")}var v=wr(l,s);if(v.hasOwnProperty(\"ignoreTitle\")){p=v.ignoreTitle}c.classList.add(Q.config.swappingClass);var m=null;var x=null;var y=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var r;if(h){r=h}if(O(f,/HX-Reselect:/i)){r=f.getResponseHeader(\"HX-Reselect\")}if(d.type){ce(re().body,\"htmx:beforeHistoryUpdate\",le({history:d},u));if(d.type===\"push\"){tr(d.path);ce(re().body,\"htmx:pushedIntoHistory\",{path:d.path})}else{rr(d.path);ce(re().body,\"htmx:replacedInHistory\",{path:d.path})}}var n=T(c);je(v.swapStyle,c,l,g,n,r);if(t.elt&&!se(t.elt)&&ee(t.elt,\"id\")){var i=document.getElementById(ee(t.elt,\"id\"));var a={preventScroll:v.focusScroll!==undefined?!v.focusScroll:!Q.config.defaultFocusScroll};if(i){if(t.start&&i.setSelectionRange){try{i.setSelectionRange(t.start,t.end)}catch(e){}}i.focus(a)}}c.classList.remove(Q.config.swappingClass);oe(n.elts,function(e){if(e.classList){e.classList.add(Q.config.settlingClass)}ce(e,\"htmx:afterSwap\",u)});if(O(f,/HX-Trigger-After-Swap:/i)){var o=l;if(!se(l)){o=re().body}_e(f,\"HX-Trigger-After-Swap\",o)}var s=function(){oe(n.tasks,function(e){e.call()});oe(n.elts,function(e){if(e.classList){e.classList.remove(Q.config.settlingClass)}ce(e,\"htmx:afterSettle\",u)});if(u.pathInfo.anchor){var e=re().getElementById(u.pathInfo.anchor);if(e){e.scrollIntoView({block:\"start\",behavior:\"auto\"})}}if(n.title&&!p){var t=C(\"title\");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}Cr(n.elts,v);if(O(f,/HX-Trigger-After-Settle:/i)){var r=l;if(!se(l)){r=re().body}_e(f,\"HX-Trigger-After-Settle\",r)}ie(m)};if(v.settleDelay>0){setTimeout(s,v.settleDelay)}else{s()}}catch(e){fe(l,\"htmx:swapError\",u);ie(x);throw e}};var b=Q.config.globalViewTransitions;if(v.hasOwnProperty(\"transition\")){b=v.transition}if(b&&ce(l,\"htmx:beforeTransition\",u)&&typeof Promise!==\"undefined\"&&document.startViewTransition){var w=new Promise(function(e,t){m=e;x=t});var S=y;y=function(){document.startViewTransition(function(){S();return w})}}if(v.swapDelay>0){setTimeout(y,v.swapDelay)}else{y()}}if(a){fe(l,\"htmx:responseError\",le({error:\"Response Status Error Code \"+f.status+\" from \"+u.pathInfo.requestPath},u))}}var Xr={};function Dr(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function Ur(e,t){if(t.init){t.init(r)}Xr[e]=le(Dr(),t)}function Br(e){delete Xr[e]}function Fr(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=te(e,\"hx-ext\");if(t){oe(t.split(\",\"),function(e){e=e.replace(/ /g,\"\");if(e.slice(0,7)==\"ignore:\"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=Xr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return Fr(u(e),r,n)}var Vr=false;re().addEventListener(\"DOMContentLoaded\",function(){Vr=true});function jr(e){if(Vr||re().readyState===\"complete\"){e()}else{re().addEventListener(\"DOMContentLoaded\",e)}}function _r(){if(Q.config.includeIndicatorStyles!==false){re().head.insertAdjacentHTML(\"beforeend\",\"\")}}function zr(){var e=re().querySelector('meta[name=\"htmx-config\"]');if(e){return E(e.content)}else{return null}}function $r(){var e=zr();if(e){Q.config=le(Q.config,e)}}jr(function(){$r();_r();var e=re().body;zt(e);var t=re().querySelectorAll(\"[hx-trigger='restored'],[data-hx-trigger='restored']\");e.addEventListener(\"htmx:abort\",function(e){var t=e.target;var r=ae(t);if(r&&r.xhr){r.xhr.abort()}});const r=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){ar();oe(t,function(e){ce(e,\"htmx:restored\",{document:re(),triggerEvent:ce})})}else{if(r){r(e)}}};setTimeout(function(){ce(e,\"htmx:load\",{});e=null},0)});return Q}()});","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup2 = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup2 = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup2();\n }];\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}) {\n el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `