react-instantsearch-core 7.8.1 → 7.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@
7
7
 
8
8
  var React__default = 'default' in React ? React['default'] : React;
9
9
 
10
- var version = '7.8.1';
10
+ var version = '7.9.0';
11
11
 
12
12
  function _iterableToArrayLimit(arr, i) {
13
13
  var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
@@ -662,15 +662,8 @@
662
662
 
663
663
  addParams: function (params) {
664
664
  var newParams = this.params.slice();
665
- var existingParamsIndex = this.params.findIndex(function (currentParams) {
666
- return currentParams.$$id === params.$$id;
667
- });
668
665
 
669
- if (existingParamsIndex !== -1) {
670
- newParams.splice(existingParamsIndex, 1, params);
671
- } else {
672
- newParams.push(params);
673
- }
666
+ newParams.push(params);
674
667
 
675
668
  return new RecommendParameters({ params: newParams });
676
669
  },
@@ -713,18 +706,49 @@
713
706
  );
714
707
  },
715
708
 
716
- _buildQueries: function (indexName) {
717
- return this.params.map(function (params) {
718
- var query = Object.assign({}, params, { indexName: indexName });
719
- delete query.$$id;
709
+ _buildQueries: function (indexName, cache) {
710
+ return this.params
711
+ .filter(function (params) {
712
+ return cache[params.$$id] === undefined;
713
+ })
714
+ .map(function (params) {
715
+ var query = Object.assign({}, params, { indexName: indexName });
716
+ delete query.$$id;
720
717
 
721
- return query;
722
- });
718
+ return query;
719
+ });
723
720
  },
724
721
  };
725
722
 
726
723
  var RecommendParameters_1 = RecommendParameters;
727
724
 
725
+ /**
726
+ * Constructor for SearchResults
727
+ * @class
728
+ * @classdesc SearchResults contains the results of a query to Algolia using the
729
+ * {@link AlgoliaSearchHelper}.
730
+ * @param {RecommendParameters} state state that led to the response
731
+ * @param {Record<string,RecommendResultItem>} results the results from algolia client
732
+ **/
733
+ function RecommendResults(state, results) {
734
+ this._state = state;
735
+ this._rawResults = results;
736
+
737
+ // eslint-disable-next-line consistent-this
738
+ var self = this;
739
+
740
+ state.params.forEach(function (param) {
741
+ var id = param.$$id;
742
+ self[id] = results[id];
743
+ });
744
+ }
745
+
746
+ RecommendResults.prototype = {
747
+ constructor: RecommendResults,
748
+ };
749
+
750
+ var RecommendResults_1 = RecommendResults;
751
+
728
752
  function sortObject(obj) {
729
753
  return Object.keys(obj)
730
754
  .sort()
@@ -4572,7 +4596,66 @@
4572
4596
 
4573
4597
  var SearchResults_1 = SearchResults;
4574
4598
 
4575
- var version$1 = '3.19.0';
4599
+ // @MAJOR: remove this function and use Array.prototype.flat
4600
+ var flat = function flat(arr) {
4601
+ return arr.reduce(function (acc, val) {
4602
+ return acc.concat(val);
4603
+ }, []);
4604
+ };
4605
+
4606
+ function getAverageIndices(indexTracker, nrOfObjs) {
4607
+ var avgIndices = [];
4608
+
4609
+ Object.keys(indexTracker).forEach(function (key) {
4610
+ if (indexTracker[key].count < 2) {
4611
+ indexTracker[key].indexSum += 100;
4612
+ }
4613
+ avgIndices.push({
4614
+ objectID: key,
4615
+ avgOfIndices: indexTracker[key].indexSum / nrOfObjs,
4616
+ });
4617
+ });
4618
+
4619
+ return avgIndices.sort(function (a, b) {
4620
+ return a.avgOfIndices > b.avgOfIndices ? 1 : -1;
4621
+ });
4622
+ }
4623
+
4624
+ function sortAndMergeRecommendations(results) {
4625
+ var indexTracker = {};
4626
+
4627
+ results.forEach(function (hits) {
4628
+ hits.forEach(function (hit, index) {
4629
+ if (!indexTracker[hit.objectID]) {
4630
+ indexTracker[hit.objectID] = { indexSum: index, count: 1 };
4631
+ } else {
4632
+ indexTracker[hit.objectID] = {
4633
+ indexSum: indexTracker[hit.objectID].indexSum + index,
4634
+ count: indexTracker[hit.objectID].count + 1,
4635
+ };
4636
+ }
4637
+ });
4638
+ });
4639
+
4640
+ var sortedAverageIndices = getAverageIndices(indexTracker, results.length);
4641
+
4642
+ var finalOrder = sortedAverageIndices.reduce(function (
4643
+ orderedHits,
4644
+ avgIndexRef
4645
+ ) {
4646
+ var result = find(flat(results), function (hit) {
4647
+ return hit.objectID === avgIndexRef.objectID;
4648
+ });
4649
+ return result ? orderedHits.concat(result) : orderedHits;
4650
+ },
4651
+ []);
4652
+
4653
+ return finalOrder;
4654
+ }
4655
+
4656
+ var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
4657
+
4658
+ var version$1 = '3.20.0';
4576
4659
 
4577
4660
  var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
4578
4661
 
@@ -4585,6 +4668,8 @@
4585
4668
 
4586
4669
 
4587
4670
 
4671
+
4672
+
4588
4673
  /**
4589
4674
  * Event triggered when a parameter is set or updated
4590
4675
  * @event AlgoliaSearchHelper#event:change
@@ -4711,6 +4796,7 @@
4711
4796
  this._currentNbQueries = 0;
4712
4797
  this._currentNbRecommendQueries = 0;
4713
4798
  this._searchResultsOptions = searchResultsOptions;
4799
+ this.recommendCache = {};
4714
4800
  }
4715
4801
 
4716
4802
  inherits_1(AlgoliaSearchHelper, events);
@@ -5499,7 +5585,7 @@
5499
5585
  /**
5500
5586
  * Removes a "frequently bought together" recommendation query.
5501
5587
  *
5502
- * @param {string} id identifier of the recommendation widget
5588
+ * @param {number} id identifier of the recommendation widget
5503
5589
  * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself
5504
5590
  * @fires change
5505
5591
  * @chainable
@@ -5515,7 +5601,7 @@
5515
5601
  /**
5516
5602
  * Removes a "related products" recommendation query.
5517
5603
  *
5518
- * @param {string} id identifier of the recommendation widget
5604
+ * @param {number} id identifier of the recommendation widget
5519
5605
  * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself
5520
5606
  * @fires change
5521
5607
  * @chainable
@@ -5531,7 +5617,7 @@
5531
5617
  /**
5532
5618
  * Removes a "trending items" recommendation query.
5533
5619
  *
5534
- * @param {string} id identifier of the recommendation widget
5620
+ * @param {number} id identifier of the recommendation widget
5535
5621
  * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself
5536
5622
  * @fires change
5537
5623
  * @chainable
@@ -5547,7 +5633,7 @@
5547
5633
  /**
5548
5634
  * Removes a "trending facets" recommendation query.
5549
5635
  *
5550
- * @param {string} id identifier of the recommendation widget
5636
+ * @param {number} id identifier of the recommendation widget
5551
5637
  * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself
5552
5638
  * @fires change
5553
5639
  * @chainable
@@ -5563,7 +5649,7 @@
5563
5649
  /**
5564
5650
  * Removes a "looking similar" recommendation query.
5565
5651
  *
5566
- * @param {string} id identifier of the recommendation widget
5652
+ * @param {number} id identifier of the recommendation widget
5567
5653
  * @returns {AlgoliaSearchHelper} Method is chainable, it returns itself
5568
5654
  * @fires change
5569
5655
  * @chainable
@@ -6148,6 +6234,9 @@
6148
6234
  var recommendState = this.recommendState;
6149
6235
  var index = this.getIndex();
6150
6236
  var states = [{ state: recommendState, index: index, helper: this }];
6237
+ var ids = recommendState.params.map(function (param) {
6238
+ return param.$$id;
6239
+ });
6151
6240
 
6152
6241
  this.emit('fetch', {
6153
6242
  recommend: {
@@ -6156,6 +6245,8 @@
6156
6245
  },
6157
6246
  });
6158
6247
 
6248
+ var cache = this.recommendCache;
6249
+
6159
6250
  var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {
6160
6251
  var derivedIndex = derivedHelper.getModifiedState(searchState).index;
6161
6252
  if (!derivedIndex) {
@@ -6174,6 +6265,13 @@
6174
6265
  helper: derivedHelper,
6175
6266
  });
6176
6267
 
6268
+ ids = Array.prototype.concat.apply(
6269
+ ids,
6270
+ derivedState.params.map(function (param) {
6271
+ return param.$$id;
6272
+ })
6273
+ );
6274
+
6177
6275
  derivedHelper.emit('fetch', {
6178
6276
  recommend: {
6179
6277
  state: derivedState,
@@ -6181,11 +6279,11 @@
6181
6279
  },
6182
6280
  });
6183
6281
 
6184
- return derivedState._buildQueries(derivedIndex);
6282
+ return derivedState._buildQueries(derivedIndex, cache);
6185
6283
  });
6186
6284
 
6187
6285
  var queries = Array.prototype.concat.apply(
6188
- this.recommendState._buildQueries(index),
6286
+ this.recommendState._buildQueries(index, cache),
6189
6287
  derivedQueries
6190
6288
  );
6191
6289
 
@@ -6199,7 +6297,7 @@
6199
6297
  ) {
6200
6298
  // eslint-disable-next-line no-console
6201
6299
  console.warn(
6202
- 'Please update algoliasearch/lite to the latest version in order to use recommendations widgets.'
6300
+ 'Please update algoliasearch/lite to the latest version in order to use recommend widgets.'
6203
6301
  );
6204
6302
  return;
6205
6303
  }
@@ -6210,7 +6308,7 @@
6210
6308
  try {
6211
6309
  this.client
6212
6310
  .getRecommendations(queries)
6213
- .then(this._dispatchRecommendResponse.bind(this, queryId, states))
6311
+ .then(this._dispatchRecommendResponse.bind(this, queryId, states, ids))
6214
6312
  .catch(this._dispatchRecommendError.bind(this, queryId));
6215
6313
  } catch (error) {
6216
6314
  // If we reach this part, we're in an internal error state
@@ -6284,6 +6382,7 @@
6284
6382
  AlgoliaSearchHelper.prototype._dispatchRecommendResponse = function (
6285
6383
  queryId,
6286
6384
  states,
6385
+ ids,
6287
6386
  content
6288
6387
  ) {
6289
6388
  // @TODO remove the number of outdated queries discarded instead of just one
@@ -6299,7 +6398,39 @@
6299
6398
 
6300
6399
  if (this._currentNbRecommendQueries === 0) this.emit('recommendQueueEmpty');
6301
6400
 
6302
- var results = content.results.slice();
6401
+ var cache = this.recommendCache;
6402
+
6403
+ var idsMap = {};
6404
+ ids
6405
+ .filter(function (id) {
6406
+ return cache[id] === undefined;
6407
+ })
6408
+ .forEach(function (id, index) {
6409
+ if (!idsMap[id]) idsMap[id] = [];
6410
+
6411
+ idsMap[id].push(index);
6412
+ });
6413
+
6414
+ Object.keys(idsMap).forEach(function (id) {
6415
+ var indices = idsMap[id];
6416
+ var firstResult = content.results[indices[0]];
6417
+ if (indices.length === 1) {
6418
+ cache[id] = firstResult;
6419
+ return;
6420
+ }
6421
+ cache[id] = Object.assign({}, firstResult, {
6422
+ hits: sortAndMergeRecommendations_1(
6423
+ indices.map(function (idx) {
6424
+ return content.results[idx].hits;
6425
+ })
6426
+ ),
6427
+ });
6428
+ });
6429
+
6430
+ var results = {};
6431
+ ids.forEach(function (id) {
6432
+ results[id] = cache[id];
6433
+ });
6303
6434
 
6304
6435
  states.forEach(function (s) {
6305
6436
  var state = s.state;
@@ -6315,7 +6446,7 @@
6315
6446
  return;
6316
6447
  }
6317
6448
 
6318
- helper.lastRecommendResults = results;
6449
+ helper.lastRecommendResults = new RecommendResults_1(state, results);
6319
6450
 
6320
6451
  // eslint-disable-next-line no-warning-comments
6321
6452
  // TODO: emit "result" event when events for Recommend are implemented
@@ -8422,8 +8553,8 @@
8422
8553
  error: instantSearchInstance.error
8423
8554
  };
8424
8555
  }
8425
- function createRenderArgs(instantSearchInstance, parent) {
8426
- var results = parent.getResults();
8556
+ function createRenderArgs(instantSearchInstance, parent, widget) {
8557
+ var results = parent.getResultsForWidget(widget);
8427
8558
  var helper = parent.getHelper();
8428
8559
  return {
8429
8560
  helper: helper,
@@ -8431,7 +8562,7 @@
8431
8562
  instantSearchInstance: instantSearchInstance,
8432
8563
  results: results,
8433
8564
  scopedResults: parent.getScopedResults(),
8434
- state: results ? results._state : helper.state,
8565
+ state: results && '_state' in results ? results._state : helper.state,
8435
8566
  renderState: instantSearchInstance.renderState,
8436
8567
  templatesConfig: instantSearchInstance.templatesConfig,
8437
8568
  createURL: parent.createURL,
@@ -9022,7 +9153,10 @@
9022
9153
  helper: helper,
9023
9154
  parent: parentIndex,
9024
9155
  instantSearchInstance: search,
9025
- results: results,
9156
+ results: widget.dependsOn === 'recommend' ?
9157
+ // @TODO: this is to avoid using wrong hits in SSR,
9158
+ // will be replace with SSR support for recommend
9159
+ null : results,
9026
9160
  scopedResults: scopedResults,
9027
9161
  state: helper.state,
9028
9162
  renderState: search.renderState,
@@ -9317,6 +9451,14 @@
9317
9451
  return undefined;
9318
9452
  }
9319
9453
 
9454
+ var id = 0;
9455
+ function addWidgetId(widget) {
9456
+ if (widget.dependsOn !== 'recommend') {
9457
+ return;
9458
+ }
9459
+ widget.$$id = id++;
9460
+ }
9461
+
9320
9462
  function _typeof$c(obj) {
9321
9463
  "@babel/helpers - typeof";
9322
9464
 
@@ -9536,6 +9678,8 @@
9536
9678
  var helper = null;
9537
9679
  var derivedHelper = null;
9538
9680
  var lastValidSearchParameters = null;
9681
+ var hasRecommendWidget = false;
9682
+ var hasSearchWidget = false;
9539
9683
  return {
9540
9684
  $$type: 'ais.index',
9541
9685
  $$widgetType: 'ais.index',
@@ -9560,6 +9704,16 @@
9560
9704
  derivedHelper.lastResults._state = helper.state;
9561
9705
  return derivedHelper.lastResults;
9562
9706
  },
9707
+ getResultsForWidget: function getResultsForWidget(widget) {
9708
+ var _helper;
9709
+ if (widget.dependsOn !== 'recommend' || isIndexWidget(widget) || widget.$$id === undefined) {
9710
+ return this.getResults();
9711
+ }
9712
+ if (!((_helper = helper) !== null && _helper !== void 0 && _helper.lastRecommendResults)) {
9713
+ return null;
9714
+ }
9715
+ return helper.lastRecommendResults[widget.$$id];
9716
+ },
9563
9717
  getPreviousState: function getPreviousState() {
9564
9718
  return lastValidSearchParameters;
9565
9719
  },
@@ -9604,6 +9758,21 @@
9604
9758
  })) {
9605
9759
  throw new Error(withUsage$2('The widget definition expects a `render` and/or an `init` method.'));
9606
9760
  }
9761
+ widgets.forEach(function (widget) {
9762
+ if (isIndexWidget(widget)) {
9763
+ return;
9764
+ }
9765
+ if (localInstantSearchInstance && widget.dependsOn === 'recommend') {
9766
+ localInstantSearchInstance._hasRecommendWidget = true;
9767
+ } else if (localInstantSearchInstance) {
9768
+ localInstantSearchInstance._hasSearchWidget = true;
9769
+ } else if (widget.dependsOn === 'recommend') {
9770
+ hasRecommendWidget = true;
9771
+ } else {
9772
+ hasSearchWidget = true;
9773
+ }
9774
+ addWidgetId(widget);
9775
+ });
9607
9776
  localWidgets = localWidgets.concat(widgets);
9608
9777
  if (localInstantSearchInstance && Boolean(widgets.length)) {
9609
9778
  privateHelperSetState(helper, {
@@ -9653,16 +9822,41 @@
9653
9822
  localWidgets = localWidgets.filter(function (widget) {
9654
9823
  return widgets.indexOf(widget) === -1;
9655
9824
  });
9825
+ localWidgets.forEach(function (widget) {
9826
+ if (isIndexWidget(widget)) {
9827
+ return;
9828
+ }
9829
+ if (localInstantSearchInstance && widget.dependsOn === 'recommend') {
9830
+ localInstantSearchInstance._hasRecommendWidget = true;
9831
+ } else if (localInstantSearchInstance) {
9832
+ localInstantSearchInstance._hasSearchWidget = true;
9833
+ } else if (widget.dependsOn === 'recommend') {
9834
+ hasRecommendWidget = true;
9835
+ } else {
9836
+ hasSearchWidget = true;
9837
+ }
9838
+ });
9656
9839
  if (localInstantSearchInstance && Boolean(widgets.length)) {
9657
- var cleanedState = widgets.reduce(function (state, widget) {
9658
- // the `dispose` method exists at this point we already assert it
9659
- var next = widget.dispose({
9660
- helper: helper,
9661
- state: state,
9662
- parent: _this2
9663
- });
9664
- return next || state;
9665
- }, helper.state);
9840
+ var _widgets$reduce = widgets.reduce(function (states, widget) {
9841
+ // the `dispose` method exists at this point we already assert it
9842
+ var next = widget.dispose({
9843
+ helper: helper,
9844
+ state: states.cleanedSearchState,
9845
+ recommendState: states.cleanedRecommendState,
9846
+ parent: _this2
9847
+ });
9848
+ if (next instanceof algoliasearchHelper_1.RecommendParameters) {
9849
+ states.cleanedRecommendState = next;
9850
+ } else if (next) {
9851
+ states.cleanedSearchState = next;
9852
+ }
9853
+ return states;
9854
+ }, {
9855
+ cleanedSearchState: helper.state,
9856
+ cleanedRecommendState: helper.recommendState
9857
+ }),
9858
+ cleanedSearchState = _widgets$reduce.cleanedSearchState,
9859
+ cleanedRecommendState = _widgets$reduce.cleanedRecommendState;
9666
9860
  var newState = localInstantSearchInstance.future.preserveSharedStateOnUnmount ? getLocalWidgetsSearchParameters(localWidgets, {
9667
9861
  uiState: localUiState,
9668
9862
  initialSearchParameters: new algoliasearchHelper_1.SearchParameters({
@@ -9670,16 +9864,17 @@
9670
9864
  })
9671
9865
  }) : getLocalWidgetsSearchParameters(localWidgets, {
9672
9866
  uiState: getLocalWidgetsUiState(localWidgets, {
9673
- searchParameters: cleanedState,
9867
+ searchParameters: cleanedSearchState,
9674
9868
  helper: helper
9675
9869
  }),
9676
- initialSearchParameters: cleanedState
9870
+ initialSearchParameters: cleanedSearchState
9677
9871
  });
9678
9872
  localUiState = getLocalWidgetsUiState(localWidgets, {
9679
9873
  searchParameters: newState,
9680
9874
  helper: helper
9681
9875
  });
9682
9876
  helper.setState(newState);
9877
+ helper.recommendState = cleanedRecommendState;
9683
9878
  if (localWidgets.length) {
9684
9879
  localInstantSearchInstance.scheduleSearch();
9685
9880
  }
@@ -9855,9 +10050,16 @@
9855
10050
  // schedule a render that will render the results injected on the helper.
9856
10051
  instantSearchInstance.scheduleRender();
9857
10052
  }
10053
+ if (hasRecommendWidget) {
10054
+ instantSearchInstance._hasRecommendWidget = true;
10055
+ }
10056
+ if (hasSearchWidget) {
10057
+ instantSearchInstance._hasSearchWidget = true;
10058
+ }
9858
10059
  },
9859
10060
  render: function render(_ref6) {
9860
- var _this4 = this;
10061
+ var _derivedHelper2,
10062
+ _this4 = this;
9861
10063
  var instantSearchInstance = _ref6.instantSearchInstance;
9862
10064
  // we can't attach a listener to the error event of search, as the error
9863
10065
  // then would no longer be thrown for global handlers.
@@ -9867,7 +10069,7 @@
9867
10069
 
9868
10070
  // We only render index widgets if there are no results.
9869
10071
  // This makes sure `render` is never called with `results` being `null`.
9870
- var widgetsToRender = this.getResults() ? localWidgets : localWidgets.filter(isIndexWidget);
10072
+ var widgetsToRender = this.getResults() || (_derivedHelper2 = derivedHelper) !== null && _derivedHelper2 !== void 0 && _derivedHelper2.lastRecommendResults ? localWidgets : localWidgets.filter(isIndexWidget);
9871
10073
  widgetsToRender = widgetsToRender.filter(function (widget) {
9872
10074
  if (!widget.shouldRender) {
9873
10075
  return true;
@@ -9878,7 +10080,7 @@
9878
10080
  });
9879
10081
  widgetsToRender.forEach(function (widget) {
9880
10082
  if (widget.getRenderState) {
9881
- var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, createRenderArgs(instantSearchInstance, _this4));
10083
+ var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, createRenderArgs(instantSearchInstance, _this4, widget));
9882
10084
  storeRenderState({
9883
10085
  renderState: renderState,
9884
10086
  instantSearchInstance: instantSearchInstance,
@@ -9895,14 +10097,14 @@
9895
10097
  // not have results yet.
9896
10098
 
9897
10099
  if (widget.render) {
9898
- widget.render(createRenderArgs(instantSearchInstance, _this4));
10100
+ widget.render(createRenderArgs(instantSearchInstance, _this4, widget));
9899
10101
  }
9900
10102
  });
9901
10103
  },
9902
10104
  dispose: function dispose() {
9903
10105
  var _this5 = this,
9904
- _helper,
9905
- _derivedHelper2;
10106
+ _helper2,
10107
+ _derivedHelper3;
9906
10108
  localWidgets.forEach(function (widget) {
9907
10109
  if (widget.dispose && helper) {
9908
10110
  // The dispose function is always called once the instance is started
@@ -9914,15 +10116,16 @@
9914
10116
  widget.dispose({
9915
10117
  helper: helper,
9916
10118
  state: helper.state,
10119
+ recommendState: helper.recommendState,
9917
10120
  parent: _this5
9918
10121
  });
9919
10122
  }
9920
10123
  });
9921
10124
  localInstantSearchInstance = null;
9922
10125
  localParent = null;
9923
- (_helper = helper) === null || _helper === void 0 ? void 0 : _helper.removeAllListeners();
10126
+ (_helper2 = helper) === null || _helper2 === void 0 ? void 0 : _helper2.removeAllListeners();
9924
10127
  helper = null;
9925
- (_derivedHelper2 = derivedHelper) === null || _derivedHelper2 === void 0 ? void 0 : _derivedHelper2.detach();
10128
+ (_derivedHelper3 = derivedHelper) === null || _derivedHelper3 === void 0 ? void 0 : _derivedHelper3.detach();
9926
10129
  derivedHelper = null;
9927
10130
  },
9928
10131
  getWidgetUiState: function getWidgetUiState(uiState) {
@@ -12222,7 +12425,7 @@
12222
12425
  };
12223
12426
  }
12224
12427
 
12225
- var version$2 = '4.68.1';
12428
+ var version$2 = '4.69.0';
12226
12429
 
12227
12430
  function _typeof$k(obj) {
12228
12431
  "@babel/helpers - typeof";
@@ -12422,6 +12625,8 @@
12422
12625
  _defineProperty$h(_assertThisInitialized(_this), "_createURL", void 0);
12423
12626
  _defineProperty$h(_assertThisInitialized(_this), "_searchFunction", void 0);
12424
12627
  _defineProperty$h(_assertThisInitialized(_this), "_mainHelperSearch", void 0);
12628
+ _defineProperty$h(_assertThisInitialized(_this), "_hasSearchWidget", false);
12629
+ _defineProperty$h(_assertThisInitialized(_this), "_hasRecommendWidget", false);
12425
12630
  _defineProperty$h(_assertThisInitialized(_this), "_insights", void 0);
12426
12631
  _defineProperty$h(_assertThisInitialized(_this), "middleware", []);
12427
12632
  _defineProperty$h(_assertThisInitialized(_this), "sendEventToInsights", void 0);
@@ -12716,7 +12921,13 @@
12716
12921
  // under the hood, we have a different implementation. It should be
12717
12922
  // completely transparent for the rest of the codebase. Only this module
12718
12923
  // is impacted.
12719
- return mainHelper.searchOnlyWithDerivedHelpers() && mainHelper.recommend();
12924
+ if (_this3._hasSearchWidget) {
12925
+ mainHelper.searchOnlyWithDerivedHelpers();
12926
+ }
12927
+ if (_this3._hasRecommendWidget) {
12928
+ mainHelper.recommend();
12929
+ }
12930
+ return mainHelper;
12720
12931
  };
12721
12932
  if (this._searchFunction) {
12722
12933
  // this client isn't used to actually search, but required for the helper
@@ -14010,6 +14221,147 @@
14010
14221
  return (hint === "string" ? String : Number)(input);
14011
14222
  }
14012
14223
  var withUsage$7 = createDocumentationMessageGenerator({
14224
+ name: 'frequently-bought-together',
14225
+ connector: true
14226
+ });
14227
+ var connectFrequentlyBoughtTogether = function connectFrequentlyBoughtTogether(renderFn) {
14228
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
14229
+ checkRendering(renderFn, withUsage$7());
14230
+ return function (widgetParams) {
14231
+ var _ref = widgetParams || {},
14232
+ _ref$escapeHTML = _ref.escapeHTML,
14233
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
14234
+ _ref$transformItems = _ref.transformItems,
14235
+ transformItems = _ref$transformItems === void 0 ? function (items) {
14236
+ return items;
14237
+ } : _ref$transformItems,
14238
+ objectIDs = _ref.objectIDs,
14239
+ limit = _ref.limit,
14240
+ threshold = _ref.threshold,
14241
+ queryParameters = _ref.queryParameters;
14242
+ if (!objectIDs || objectIDs.length === 0) {
14243
+ throw new Error(withUsage$7('The `objectIDs` option is required.'));
14244
+ }
14245
+ return {
14246
+ dependsOn: 'recommend',
14247
+ $$type: 'ais.frequentlyBoughtTogether',
14248
+ init: function init(initOptions) {
14249
+ renderFn(_objectSpread$j(_objectSpread$j({}, this.getWidgetRenderState(initOptions)), {}, {
14250
+ instantSearchInstance: initOptions.instantSearchInstance
14251
+ }), true);
14252
+ },
14253
+ render: function render(renderOptions) {
14254
+ var renderState = this.getWidgetRenderState(renderOptions);
14255
+ renderFn(_objectSpread$j(_objectSpread$j({}, renderState), {}, {
14256
+ instantSearchInstance: renderOptions.instantSearchInstance
14257
+ }), false);
14258
+ },
14259
+ getRenderState: function getRenderState(renderState) {
14260
+ return renderState;
14261
+ },
14262
+ getWidgetRenderState: function getWidgetRenderState(_ref2) {
14263
+ var results = _ref2.results;
14264
+ if (results === null || results === undefined) {
14265
+ return {
14266
+ items: [],
14267
+ widgetParams: widgetParams
14268
+ };
14269
+ }
14270
+ if (escapeHTML && results.hits.length > 0) {
14271
+ results.hits = escapeHits(results.hits);
14272
+ }
14273
+ var transformedItems = transformItems(results.hits, {
14274
+ results: results
14275
+ });
14276
+ return {
14277
+ items: transformedItems,
14278
+ widgetParams: widgetParams
14279
+ };
14280
+ },
14281
+ dispose: function dispose(_ref3) {
14282
+ var recommendState = _ref3.recommendState;
14283
+ unmountFn();
14284
+ return recommendState.removeParams(this.$$id);
14285
+ },
14286
+ getWidgetParameters: function getWidgetParameters(state) {
14287
+ var _this = this;
14288
+ return objectIDs.reduce(function (acc, objectID) {
14289
+ return acc.addFrequentlyBoughtTogether({
14290
+ objectID: objectID,
14291
+ threshold: threshold,
14292
+ maxRecommendations: limit,
14293
+ queryParameters: _objectSpread$j(_objectSpread$j({}, queryParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
14294
+ $$id: _this.$$id
14295
+ });
14296
+ }, state.removeParams(this.$$id));
14297
+ }
14298
+ };
14299
+ };
14300
+ };
14301
+
14302
+ function useFrequentlyBoughtTogether(props, additionalWidgetProperties) {
14303
+ return useConnector(connectFrequentlyBoughtTogether, props, additionalWidgetProperties);
14304
+ }
14305
+
14306
+ function _typeof$p(obj) {
14307
+ "@babel/helpers - typeof";
14308
+
14309
+ return _typeof$p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14310
+ return typeof obj;
14311
+ } : function (obj) {
14312
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
14313
+ }, _typeof$p(obj);
14314
+ }
14315
+ function ownKeys$l(object, enumerableOnly) {
14316
+ var keys = Object.keys(object);
14317
+ if (Object.getOwnPropertySymbols) {
14318
+ var symbols = Object.getOwnPropertySymbols(object);
14319
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
14320
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
14321
+ })), keys.push.apply(keys, symbols);
14322
+ }
14323
+ return keys;
14324
+ }
14325
+ function _objectSpread$k(target) {
14326
+ for (var i = 1; i < arguments.length; i++) {
14327
+ var source = null != arguments[i] ? arguments[i] : {};
14328
+ i % 2 ? ownKeys$l(Object(source), !0).forEach(function (key) {
14329
+ _defineProperty$m(target, key, source[key]);
14330
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$l(Object(source)).forEach(function (key) {
14331
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
14332
+ });
14333
+ }
14334
+ return target;
14335
+ }
14336
+ function _defineProperty$m(obj, key, value) {
14337
+ key = _toPropertyKey$m(key);
14338
+ if (key in obj) {
14339
+ Object.defineProperty(obj, key, {
14340
+ value: value,
14341
+ enumerable: true,
14342
+ configurable: true,
14343
+ writable: true
14344
+ });
14345
+ } else {
14346
+ obj[key] = value;
14347
+ }
14348
+ return obj;
14349
+ }
14350
+ function _toPropertyKey$m(arg) {
14351
+ var key = _toPrimitive$m(arg, "string");
14352
+ return _typeof$p(key) === "symbol" ? key : String(key);
14353
+ }
14354
+ function _toPrimitive$m(input, hint) {
14355
+ if (_typeof$p(input) !== "object" || input === null) return input;
14356
+ var prim = input[Symbol.toPrimitive];
14357
+ if (prim !== undefined) {
14358
+ var res = prim.call(input, hint || "default");
14359
+ if (_typeof$p(res) !== "object") return res;
14360
+ throw new TypeError("@@toPrimitive must return a primitive value.");
14361
+ }
14362
+ return (hint === "string" ? String : Number)(input);
14363
+ }
14364
+ var withUsage$8 = createDocumentationMessageGenerator({
14013
14365
  name: 'geo-search',
14014
14366
  connector: true
14015
14367
  });
@@ -14035,7 +14387,7 @@
14035
14387
  */
14036
14388
  var connectGeoSearch = function connectGeoSearch(renderFn) {
14037
14389
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
14038
- checkRendering(renderFn, withUsage$7());
14390
+ checkRendering(renderFn, withUsage$8());
14039
14391
  return function (widgetParams) {
14040
14392
  var _ref = widgetParams || {},
14041
14393
  _ref$enableRefineOnMa = _ref.enableRefineOnMapMove,
@@ -14114,7 +14466,7 @@
14114
14466
  var isFirstRendering = true;
14115
14467
  widgetState.internalToggleRefineOnMapMove = createInternalToggleRefinementOnMapMove(initArgs, noop);
14116
14468
  widgetState.internalSetMapMoveSinceLastRefine = createInternalSetMapMoveSinceLastRefine(initArgs, noop);
14117
- renderFn(_objectSpread$j(_objectSpread$j({}, this.getWidgetRenderState(initArgs)), {}, {
14469
+ renderFn(_objectSpread$k(_objectSpread$k({}, this.getWidgetRenderState(initArgs)), {}, {
14118
14470
  instantSearchInstance: instantSearchInstance
14119
14471
  }), isFirstRendering);
14120
14472
  },
@@ -14136,7 +14488,7 @@
14136
14488
  widgetState.internalSetMapMoveSinceLastRefine = createInternalSetMapMoveSinceLastRefine(renderArgs, this.render.bind(this));
14137
14489
  var widgetRenderState = this.getWidgetRenderState(renderArgs);
14138
14490
  sendEvent('view:internal', widgetRenderState.items);
14139
- renderFn(_objectSpread$j(_objectSpread$j({}, widgetRenderState), {}, {
14491
+ renderFn(_objectSpread$k(_objectSpread$k({}, widgetRenderState), {}, {
14140
14492
  instantSearchInstance: instantSearchInstance
14141
14493
  }), isFirstRendering);
14142
14494
  },
@@ -14175,7 +14527,7 @@
14175
14527
  };
14176
14528
  },
14177
14529
  getRenderState: function getRenderState(renderState, renderOptions) {
14178
- return _objectSpread$j(_objectSpread$j({}, renderState), {}, {
14530
+ return _objectSpread$k(_objectSpread$k({}, renderState), {}, {
14179
14531
  geoSearch: this.getWidgetRenderState(renderOptions)
14180
14532
  });
14181
14533
  },
@@ -14190,7 +14542,7 @@
14190
14542
  if (!boundingBox || uiState && uiState.geoSearch && uiState.geoSearch.boundingBox === boundingBox) {
14191
14543
  return uiState;
14192
14544
  }
14193
- return _objectSpread$j(_objectSpread$j({}, uiState), {}, {
14545
+ return _objectSpread$k(_objectSpread$k({}, uiState), {}, {
14194
14546
  geoSearch: {
14195
14547
  boundingBox: boundingBox
14196
14548
  }
@@ -14211,17 +14563,17 @@
14211
14563
  return useConnector(connectGeoSearch, props, additionalWidgetProperties);
14212
14564
  }
14213
14565
 
14214
- function _typeof$p(obj) {
14566
+ function _typeof$q(obj) {
14215
14567
  "@babel/helpers - typeof";
14216
14568
 
14217
- return _typeof$p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14569
+ return _typeof$q = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14218
14570
  return typeof obj;
14219
14571
  } : function (obj) {
14220
14572
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
14221
- }, _typeof$p(obj);
14573
+ }, _typeof$q(obj);
14222
14574
  }
14223
14575
  var _excluded$8 = ["name", "escapedValue", "data", "path"];
14224
- function ownKeys$l(object, enumerableOnly) {
14576
+ function ownKeys$m(object, enumerableOnly) {
14225
14577
  var keys = Object.keys(object);
14226
14578
  if (Object.getOwnPropertySymbols) {
14227
14579
  var symbols = Object.getOwnPropertySymbols(object);
@@ -14231,19 +14583,19 @@
14231
14583
  }
14232
14584
  return keys;
14233
14585
  }
14234
- function _objectSpread$k(target) {
14586
+ function _objectSpread$l(target) {
14235
14587
  for (var i = 1; i < arguments.length; i++) {
14236
14588
  var source = null != arguments[i] ? arguments[i] : {};
14237
- i % 2 ? ownKeys$l(Object(source), !0).forEach(function (key) {
14238
- _defineProperty$m(target, key, source[key]);
14239
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$l(Object(source)).forEach(function (key) {
14589
+ i % 2 ? ownKeys$m(Object(source), !0).forEach(function (key) {
14590
+ _defineProperty$n(target, key, source[key]);
14591
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$m(Object(source)).forEach(function (key) {
14240
14592
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
14241
14593
  });
14242
14594
  }
14243
14595
  return target;
14244
14596
  }
14245
- function _defineProperty$m(obj, key, value) {
14246
- key = _toPropertyKey$m(key);
14597
+ function _defineProperty$n(obj, key, value) {
14598
+ key = _toPropertyKey$n(key);
14247
14599
  if (key in obj) {
14248
14600
  Object.defineProperty(obj, key, {
14249
14601
  value: value,
@@ -14256,16 +14608,16 @@
14256
14608
  }
14257
14609
  return obj;
14258
14610
  }
14259
- function _toPropertyKey$m(arg) {
14260
- var key = _toPrimitive$m(arg, "string");
14261
- return _typeof$p(key) === "symbol" ? key : String(key);
14611
+ function _toPropertyKey$n(arg) {
14612
+ var key = _toPrimitive$n(arg, "string");
14613
+ return _typeof$q(key) === "symbol" ? key : String(key);
14262
14614
  }
14263
- function _toPrimitive$m(input, hint) {
14264
- if (_typeof$p(input) !== "object" || input === null) return input;
14615
+ function _toPrimitive$n(input, hint) {
14616
+ if (_typeof$q(input) !== "object" || input === null) return input;
14265
14617
  var prim = input[Symbol.toPrimitive];
14266
14618
  if (prim !== undefined) {
14267
14619
  var res = prim.call(input, hint || "default");
14268
- if (_typeof$p(res) !== "object") return res;
14620
+ if (_typeof$q(res) !== "object") return res;
14269
14621
  throw new TypeError("@@toPrimitive must return a primitive value.");
14270
14622
  }
14271
14623
  return (hint === "string" ? String : Number)(input);
@@ -14346,7 +14698,7 @@
14346
14698
  function _arrayWithHoles$7(arr) {
14347
14699
  if (Array.isArray(arr)) return arr;
14348
14700
  }
14349
- var withUsage$8 = createDocumentationMessageGenerator({
14701
+ var withUsage$9 = createDocumentationMessageGenerator({
14350
14702
  name: 'hierarchical-menu',
14351
14703
  connector: true
14352
14704
  });
@@ -14366,7 +14718,7 @@
14366
14718
  */
14367
14719
  var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
14368
14720
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
14369
- checkRendering(renderFn, withUsage$8());
14721
+ checkRendering(renderFn, withUsage$9());
14370
14722
  return function (widgetParams) {
14371
14723
  var _ref = widgetParams || {},
14372
14724
  attributes = _ref.attributes,
@@ -14389,10 +14741,10 @@
14389
14741
  return items;
14390
14742
  } : _ref$transformItems;
14391
14743
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
14392
- throw new Error(withUsage$8('The `attributes` option expects an array of strings.'));
14744
+ throw new Error(withUsage$9('The `attributes` option expects an array of strings.'));
14393
14745
  }
14394
14746
  if (showMore === true && showMoreLimit <= limit) {
14395
- throw new Error(withUsage$8('The `showMoreLimit` option must be greater than `limit`.'));
14747
+ throw new Error(withUsage$9('The `showMoreLimit` option must be greater than `limit`.'));
14396
14748
  }
14397
14749
  // we need to provide a hierarchicalFacet name for the search state
14398
14750
  // so that we can always map $hierarchicalFacetName => real attributes
@@ -14425,7 +14777,7 @@
14425
14777
  data = _ref2.data,
14426
14778
  path = _ref2.path,
14427
14779
  subValue = _objectWithoutProperties$4(_ref2, _excluded$8);
14428
- var item = _objectSpread$k(_objectSpread$k({}, subValue), {}, {
14780
+ var item = _objectSpread$l(_objectSpread$l({}, subValue), {}, {
14429
14781
  value: value,
14430
14782
  label: label,
14431
14783
  data: null
@@ -14440,14 +14792,14 @@
14440
14792
  $$type: 'ais.hierarchicalMenu',
14441
14793
  init: function init(initOptions) {
14442
14794
  var instantSearchInstance = initOptions.instantSearchInstance;
14443
- renderFn(_objectSpread$k(_objectSpread$k({}, this.getWidgetRenderState(initOptions)), {}, {
14795
+ renderFn(_objectSpread$l(_objectSpread$l({}, this.getWidgetRenderState(initOptions)), {}, {
14444
14796
  instantSearchInstance: instantSearchInstance
14445
14797
  }), true);
14446
14798
  },
14447
14799
  render: function render(renderOptions) {
14448
14800
  var instantSearchInstance = renderOptions.instantSearchInstance;
14449
14801
  toggleShowMore = createToggleShowMore(renderOptions, this);
14450
- renderFn(_objectSpread$k(_objectSpread$k({}, this.getWidgetRenderState(renderOptions)), {}, {
14802
+ renderFn(_objectSpread$l(_objectSpread$l({}, this.getWidgetRenderState(renderOptions)), {}, {
14451
14803
  instantSearchInstance: instantSearchInstance
14452
14804
  }), false);
14453
14805
  },
@@ -14457,8 +14809,8 @@
14457
14809
  return state.removeHierarchicalFacet(hierarchicalFacetName).setQueryParameter('maxValuesPerFacet', undefined);
14458
14810
  },
14459
14811
  getRenderState: function getRenderState(renderState, renderOptions) {
14460
- return _objectSpread$k(_objectSpread$k({}, renderState), {}, {
14461
- hierarchicalMenu: _objectSpread$k(_objectSpread$k({}, renderState.hierarchicalMenu), {}, _defineProperty$m({}, hierarchicalFacetName, this.getWidgetRenderState(renderOptions)))
14812
+ return _objectSpread$l(_objectSpread$l({}, renderState), {}, {
14813
+ hierarchicalMenu: _objectSpread$l(_objectSpread$l({}, renderState.hierarchicalMenu), {}, _defineProperty$n({}, hierarchicalFacetName, this.getWidgetRenderState(renderOptions)))
14462
14814
  });
14463
14815
  },
14464
14816
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
@@ -14531,8 +14883,8 @@
14531
14883
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
14532
14884
  var searchParameters = _ref5.searchParameters;
14533
14885
  var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
14534
- return removeEmptyRefinementsFromUiState$1(_objectSpread$k(_objectSpread$k({}, uiState), {}, {
14535
- hierarchicalMenu: _objectSpread$k(_objectSpread$k({}, uiState.hierarchicalMenu), {}, _defineProperty$m({}, hierarchicalFacetName, path))
14886
+ return removeEmptyRefinementsFromUiState$1(_objectSpread$l(_objectSpread$l({}, uiState), {}, {
14887
+ hierarchicalMenu: _objectSpread$l(_objectSpread$l({}, uiState.hierarchicalMenu), {}, _defineProperty$n({}, hierarchicalFacetName, path))
14536
14888
  }), hierarchicalFacetName);
14537
14889
  },
14538
14890
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
@@ -14556,7 +14908,7 @@
14556
14908
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
14557
14909
  if (!values) {
14558
14910
  return withMaxValuesPerFacet.setQueryParameters({
14559
- hierarchicalFacetsRefinements: _objectSpread$k(_objectSpread$k({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty$m({}, hierarchicalFacetName, []))
14911
+ hierarchicalFacetsRefinements: _objectSpread$l(_objectSpread$l({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty$n({}, hierarchicalFacetName, []))
14560
14912
  });
14561
14913
  }
14562
14914
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
@@ -14581,16 +14933,16 @@
14581
14933
  return useConnector(connectHierarchicalMenu, props, additionalWidgetProperties);
14582
14934
  }
14583
14935
 
14584
- function _typeof$q(obj) {
14936
+ function _typeof$r(obj) {
14585
14937
  "@babel/helpers - typeof";
14586
14938
 
14587
- return _typeof$q = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14939
+ return _typeof$r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14588
14940
  return typeof obj;
14589
14941
  } : function (obj) {
14590
14942
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
14591
- }, _typeof$q(obj);
14943
+ }, _typeof$r(obj);
14592
14944
  }
14593
- function ownKeys$m(object, enumerableOnly) {
14945
+ function ownKeys$n(object, enumerableOnly) {
14594
14946
  var keys = Object.keys(object);
14595
14947
  if (Object.getOwnPropertySymbols) {
14596
14948
  var symbols = Object.getOwnPropertySymbols(object);
@@ -14600,19 +14952,19 @@
14600
14952
  }
14601
14953
  return keys;
14602
14954
  }
14603
- function _objectSpread$l(target) {
14955
+ function _objectSpread$m(target) {
14604
14956
  for (var i = 1; i < arguments.length; i++) {
14605
14957
  var source = null != arguments[i] ? arguments[i] : {};
14606
- i % 2 ? ownKeys$m(Object(source), !0).forEach(function (key) {
14607
- _defineProperty$n(target, key, source[key]);
14608
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$m(Object(source)).forEach(function (key) {
14958
+ i % 2 ? ownKeys$n(Object(source), !0).forEach(function (key) {
14959
+ _defineProperty$o(target, key, source[key]);
14960
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$n(Object(source)).forEach(function (key) {
14609
14961
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
14610
14962
  });
14611
14963
  }
14612
14964
  return target;
14613
14965
  }
14614
- function _defineProperty$n(obj, key, value) {
14615
- key = _toPropertyKey$n(key);
14966
+ function _defineProperty$o(obj, key, value) {
14967
+ key = _toPropertyKey$o(key);
14616
14968
  if (key in obj) {
14617
14969
  Object.defineProperty(obj, key, {
14618
14970
  value: value,
@@ -14625,27 +14977,27 @@
14625
14977
  }
14626
14978
  return obj;
14627
14979
  }
14628
- function _toPropertyKey$n(arg) {
14629
- var key = _toPrimitive$n(arg, "string");
14630
- return _typeof$q(key) === "symbol" ? key : String(key);
14980
+ function _toPropertyKey$o(arg) {
14981
+ var key = _toPrimitive$o(arg, "string");
14982
+ return _typeof$r(key) === "symbol" ? key : String(key);
14631
14983
  }
14632
- function _toPrimitive$n(input, hint) {
14633
- if (_typeof$q(input) !== "object" || input === null) return input;
14984
+ function _toPrimitive$o(input, hint) {
14985
+ if (_typeof$r(input) !== "object" || input === null) return input;
14634
14986
  var prim = input[Symbol.toPrimitive];
14635
14987
  if (prim !== undefined) {
14636
14988
  var res = prim.call(input, hint || "default");
14637
- if (_typeof$q(res) !== "object") return res;
14989
+ if (_typeof$r(res) !== "object") return res;
14638
14990
  throw new TypeError("@@toPrimitive must return a primitive value.");
14639
14991
  }
14640
14992
  return (hint === "string" ? String : Number)(input);
14641
14993
  }
14642
- var withUsage$9 = createDocumentationMessageGenerator({
14994
+ var withUsage$a = createDocumentationMessageGenerator({
14643
14995
  name: 'hits',
14644
14996
  connector: true
14645
14997
  });
14646
14998
  var connectHits = function connectHits(renderFn) {
14647
14999
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
14648
- checkRendering(renderFn, withUsage$9());
15000
+ checkRendering(renderFn, withUsage$a());
14649
15001
  return function (widgetParams) {
14650
15002
  var _ref = widgetParams || {},
14651
15003
  _ref$escapeHTML = _ref.escapeHTML,
@@ -14659,19 +15011,19 @@
14659
15011
  return {
14660
15012
  $$type: 'ais.hits',
14661
15013
  init: function init(initOptions) {
14662
- renderFn(_objectSpread$l(_objectSpread$l({}, this.getWidgetRenderState(initOptions)), {}, {
15014
+ renderFn(_objectSpread$m(_objectSpread$m({}, this.getWidgetRenderState(initOptions)), {}, {
14663
15015
  instantSearchInstance: initOptions.instantSearchInstance
14664
15016
  }), true);
14665
15017
  },
14666
15018
  render: function render(renderOptions) {
14667
15019
  var renderState = this.getWidgetRenderState(renderOptions);
14668
- renderFn(_objectSpread$l(_objectSpread$l({}, renderState), {}, {
15020
+ renderFn(_objectSpread$m(_objectSpread$m({}, renderState), {}, {
14669
15021
  instantSearchInstance: renderOptions.instantSearchInstance
14670
15022
  }), false);
14671
15023
  renderState.sendEvent('view:internal', renderState.hits);
14672
15024
  },
14673
15025
  getRenderState: function getRenderState(renderState, renderOptions) {
14674
- return _objectSpread$l(_objectSpread$l({}, renderState), {}, {
15026
+ return _objectSpread$m(_objectSpread$m({}, renderState), {}, {
14675
15027
  hits: this.getWidgetRenderState(renderOptions)
14676
15028
  });
14677
15029
  },
@@ -14733,7 +15085,7 @@
14733
15085
  return state;
14734
15086
  }
14735
15087
  return state.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
14736
- return _objectSpread$l(_objectSpread$l({}, acc), {}, _defineProperty$n({}, key, undefined));
15088
+ return _objectSpread$m(_objectSpread$m({}, acc), {}, _defineProperty$o({}, key, undefined));
14737
15089
  }, {}));
14738
15090
  },
14739
15091
  getWidgetSearchParameters: function getWidgetSearchParameters(state) {
@@ -14752,14 +15104,14 @@
14752
15104
  return useConnector(connectHits, props, additionalWidgetProperties);
14753
15105
  }
14754
15106
 
14755
- function _typeof$r(obj) {
15107
+ function _typeof$s(obj) {
14756
15108
  "@babel/helpers - typeof";
14757
15109
 
14758
- return _typeof$r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15110
+ return _typeof$s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14759
15111
  return typeof obj;
14760
15112
  } : function (obj) {
14761
15113
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
14762
- }, _typeof$r(obj);
15114
+ }, _typeof$s(obj);
14763
15115
  }
14764
15116
  function _toConsumableArray$5(arr) {
14765
15117
  return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$c(arr) || _nonIterableSpread$5();
@@ -14786,7 +15138,7 @@
14786
15138
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
14787
15139
  return arr2;
14788
15140
  }
14789
- function ownKeys$n(object, enumerableOnly) {
15141
+ function ownKeys$o(object, enumerableOnly) {
14790
15142
  var keys = Object.keys(object);
14791
15143
  if (Object.getOwnPropertySymbols) {
14792
15144
  var symbols = Object.getOwnPropertySymbols(object);
@@ -14796,19 +15148,19 @@
14796
15148
  }
14797
15149
  return keys;
14798
15150
  }
14799
- function _objectSpread$m(target) {
15151
+ function _objectSpread$n(target) {
14800
15152
  for (var i = 1; i < arguments.length; i++) {
14801
15153
  var source = null != arguments[i] ? arguments[i] : {};
14802
- i % 2 ? ownKeys$n(Object(source), !0).forEach(function (key) {
14803
- _defineProperty$o(target, key, source[key]);
14804
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$n(Object(source)).forEach(function (key) {
15154
+ i % 2 ? ownKeys$o(Object(source), !0).forEach(function (key) {
15155
+ _defineProperty$p(target, key, source[key]);
15156
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$o(Object(source)).forEach(function (key) {
14805
15157
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
14806
15158
  });
14807
15159
  }
14808
15160
  return target;
14809
15161
  }
14810
- function _defineProperty$o(obj, key, value) {
14811
- key = _toPropertyKey$o(key);
15162
+ function _defineProperty$p(obj, key, value) {
15163
+ key = _toPropertyKey$p(key);
14812
15164
  if (key in obj) {
14813
15165
  Object.defineProperty(obj, key, {
14814
15166
  value: value,
@@ -14821,27 +15173,27 @@
14821
15173
  }
14822
15174
  return obj;
14823
15175
  }
14824
- function _toPropertyKey$o(arg) {
14825
- var key = _toPrimitive$o(arg, "string");
14826
- return _typeof$r(key) === "symbol" ? key : String(key);
15176
+ function _toPropertyKey$p(arg) {
15177
+ var key = _toPrimitive$p(arg, "string");
15178
+ return _typeof$s(key) === "symbol" ? key : String(key);
14827
15179
  }
14828
- function _toPrimitive$o(input, hint) {
14829
- if (_typeof$r(input) !== "object" || input === null) return input;
15180
+ function _toPrimitive$p(input, hint) {
15181
+ if (_typeof$s(input) !== "object" || input === null) return input;
14830
15182
  var prim = input[Symbol.toPrimitive];
14831
15183
  if (prim !== undefined) {
14832
15184
  var res = prim.call(input, hint || "default");
14833
- if (_typeof$r(res) !== "object") return res;
15185
+ if (_typeof$s(res) !== "object") return res;
14834
15186
  throw new TypeError("@@toPrimitive must return a primitive value.");
14835
15187
  }
14836
15188
  return (hint === "string" ? String : Number)(input);
14837
15189
  }
14838
- var withUsage$a = createDocumentationMessageGenerator({
15190
+ var withUsage$b = createDocumentationMessageGenerator({
14839
15191
  name: 'hits-per-page',
14840
15192
  connector: true
14841
15193
  });
14842
15194
  var connectHitsPerPage = function connectHitsPerPage(renderFn) {
14843
15195
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
14844
- checkRendering(renderFn, withUsage$a());
15196
+ checkRendering(renderFn, withUsage$b());
14845
15197
  return function (widgetParams) {
14846
15198
  var _ref = widgetParams || {},
14847
15199
  userItems = _ref.items,
@@ -14850,23 +15202,23 @@
14850
15202
  return items;
14851
15203
  } : _ref$transformItems;
14852
15204
  if (!Array.isArray(userItems)) {
14853
- throw new Error(withUsage$a('The `items` option expects an array of objects.'));
15205
+ throw new Error(withUsage$b('The `items` option expects an array of objects.'));
14854
15206
  }
14855
15207
  var items = userItems;
14856
15208
  var defaultItems = items.filter(function (item) {
14857
15209
  return item.default === true;
14858
15210
  });
14859
15211
  if (defaultItems.length === 0) {
14860
- throw new Error(withUsage$a("A default value must be specified in `items`."));
15212
+ throw new Error(withUsage$b("A default value must be specified in `items`."));
14861
15213
  }
14862
15214
  if (defaultItems.length > 1) {
14863
- throw new Error(withUsage$a('More than one default value is specified in `items`.'));
15215
+ throw new Error(withUsage$b('More than one default value is specified in `items`.'));
14864
15216
  }
14865
15217
  var defaultItem = defaultItems[0];
14866
15218
  var normalizeItems = function normalizeItems(_ref2) {
14867
15219
  var hitsPerPage = _ref2.hitsPerPage;
14868
15220
  return items.map(function (item) {
14869
- return _objectSpread$m(_objectSpread$m({}, item), {}, {
15221
+ return _objectSpread$n(_objectSpread$n({}, item), {}, {
14870
15222
  isRefined: Number(item.value) === Number(hitsPerPage)
14871
15223
  });
14872
15224
  });
@@ -14908,13 +15260,13 @@
14908
15260
  label: ''
14909
15261
  }].concat(_toConsumableArray$5(items));
14910
15262
  }
14911
- renderFn(_objectSpread$m(_objectSpread$m({}, this.getWidgetRenderState(initOptions)), {}, {
15263
+ renderFn(_objectSpread$n(_objectSpread$n({}, this.getWidgetRenderState(initOptions)), {}, {
14912
15264
  instantSearchInstance: instantSearchInstance
14913
15265
  }), true);
14914
15266
  },
14915
15267
  render: function render(initOptions) {
14916
15268
  var instantSearchInstance = initOptions.instantSearchInstance;
14917
- renderFn(_objectSpread$m(_objectSpread$m({}, this.getWidgetRenderState(initOptions)), {}, {
15269
+ renderFn(_objectSpread$n(_objectSpread$n({}, this.getWidgetRenderState(initOptions)), {}, {
14918
15270
  instantSearchInstance: instantSearchInstance
14919
15271
  }), false);
14920
15272
  },
@@ -14924,7 +15276,7 @@
14924
15276
  return state.setQueryParameter('hitsPerPage', undefined);
14925
15277
  },
14926
15278
  getRenderState: function getRenderState(renderState, renderOptions) {
14927
- return _objectSpread$m(_objectSpread$m({}, renderState), {}, {
15279
+ return _objectSpread$n(_objectSpread$n({}, renderState), {}, {
14928
15280
  hitsPerPage: this.getWidgetRenderState(renderOptions)
14929
15281
  });
14930
15282
  },
@@ -14956,7 +15308,7 @@
14956
15308
  if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {
14957
15309
  return uiState;
14958
15310
  }
14959
- return _objectSpread$m(_objectSpread$m({}, uiState), {}, {
15311
+ return _objectSpread$n(_objectSpread$n({}, uiState), {}, {
14960
15312
  hitsPerPage: hitsPerPage
14961
15313
  });
14962
15314
  },
@@ -14974,18 +15326,18 @@
14974
15326
  return useConnector(connectHitsPerPage, props, additionalWidgetProperties);
14975
15327
  }
14976
15328
 
14977
- function _typeof$s(obj) {
15329
+ function _typeof$t(obj) {
14978
15330
  "@babel/helpers - typeof";
14979
15331
 
14980
- return _typeof$s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15332
+ return _typeof$t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14981
15333
  return typeof obj;
14982
15334
  } : function (obj) {
14983
15335
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
14984
- }, _typeof$s(obj);
15336
+ }, _typeof$t(obj);
14985
15337
  }
14986
15338
  var _excluded$9 = ["page"],
14987
15339
  _excluded2$2 = ["clickAnalytics", "userToken"];
14988
- function ownKeys$o(object, enumerableOnly) {
15340
+ function ownKeys$p(object, enumerableOnly) {
14989
15341
  var keys = Object.keys(object);
14990
15342
  if (Object.getOwnPropertySymbols) {
14991
15343
  var symbols = Object.getOwnPropertySymbols(object);
@@ -14995,19 +15347,19 @@
14995
15347
  }
14996
15348
  return keys;
14997
15349
  }
14998
- function _objectSpread$n(target) {
15350
+ function _objectSpread$o(target) {
14999
15351
  for (var i = 1; i < arguments.length; i++) {
15000
15352
  var source = null != arguments[i] ? arguments[i] : {};
15001
- i % 2 ? ownKeys$o(Object(source), !0).forEach(function (key) {
15002
- _defineProperty$p(target, key, source[key]);
15003
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$o(Object(source)).forEach(function (key) {
15353
+ i % 2 ? ownKeys$p(Object(source), !0).forEach(function (key) {
15354
+ _defineProperty$q(target, key, source[key]);
15355
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$p(Object(source)).forEach(function (key) {
15004
15356
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
15005
15357
  });
15006
15358
  }
15007
15359
  return target;
15008
15360
  }
15009
- function _defineProperty$p(obj, key, value) {
15010
- key = _toPropertyKey$p(key);
15361
+ function _defineProperty$q(obj, key, value) {
15362
+ key = _toPropertyKey$q(key);
15011
15363
  if (key in obj) {
15012
15364
  Object.defineProperty(obj, key, {
15013
15365
  value: value,
@@ -15020,16 +15372,16 @@
15020
15372
  }
15021
15373
  return obj;
15022
15374
  }
15023
- function _toPropertyKey$p(arg) {
15024
- var key = _toPrimitive$p(arg, "string");
15025
- return _typeof$s(key) === "symbol" ? key : String(key);
15375
+ function _toPropertyKey$q(arg) {
15376
+ var key = _toPrimitive$q(arg, "string");
15377
+ return _typeof$t(key) === "symbol" ? key : String(key);
15026
15378
  }
15027
- function _toPrimitive$p(input, hint) {
15028
- if (_typeof$s(input) !== "object" || input === null) return input;
15379
+ function _toPrimitive$q(input, hint) {
15380
+ if (_typeof$t(input) !== "object" || input === null) return input;
15029
15381
  var prim = input[Symbol.toPrimitive];
15030
15382
  if (prim !== undefined) {
15031
15383
  var res = prim.call(input, hint || "default");
15032
- if (_typeof$s(res) !== "object") return res;
15384
+ if (_typeof$t(res) !== "object") return res;
15033
15385
  throw new TypeError("@@toPrimitive must return a primitive value.");
15034
15386
  }
15035
15387
  return (hint === "string" ? String : Number)(input);
@@ -15086,7 +15438,7 @@
15086
15438
  }
15087
15439
  return target;
15088
15440
  }
15089
- var withUsage$b = createDocumentationMessageGenerator({
15441
+ var withUsage$c = createDocumentationMessageGenerator({
15090
15442
  name: 'infinite-hits',
15091
15443
  connector: true
15092
15444
  });
@@ -15128,7 +15480,7 @@
15128
15480
  }
15129
15481
  var connectInfiniteHits = function connectInfiniteHits(renderFn) {
15130
15482
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
15131
- checkRendering(renderFn, withUsage$b());
15483
+ checkRendering(renderFn, withUsage$c());
15132
15484
 
15133
15485
  // @TODO: this should be a generic, but a Connector can not yet be generic itself
15134
15486
 
@@ -15170,7 +15522,7 @@
15170
15522
  return function () {
15171
15523
  // Using the helper's `overrideStateWithoutTriggeringChangeEvent` method
15172
15524
  // avoid updating the browser URL when the user displays the previous page.
15173
- helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$n(_objectSpread$n({}, helper.state), {}, {
15525
+ helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$o(_objectSpread$o({}, helper.state), {}, {
15174
15526
  page: getFirstReceivedPage(helper.state, cache.read({
15175
15527
  state: normalizeState(helper.state)
15176
15528
  }) || {}) - 1
@@ -15187,20 +15539,20 @@
15187
15539
  return {
15188
15540
  $$type: 'ais.infiniteHits',
15189
15541
  init: function init(initOptions) {
15190
- renderFn(_objectSpread$n(_objectSpread$n({}, this.getWidgetRenderState(initOptions)), {}, {
15542
+ renderFn(_objectSpread$o(_objectSpread$o({}, this.getWidgetRenderState(initOptions)), {}, {
15191
15543
  instantSearchInstance: initOptions.instantSearchInstance
15192
15544
  }), true);
15193
15545
  },
15194
15546
  render: function render(renderOptions) {
15195
15547
  var instantSearchInstance = renderOptions.instantSearchInstance;
15196
15548
  var widgetRenderState = this.getWidgetRenderState(renderOptions);
15197
- renderFn(_objectSpread$n(_objectSpread$n({}, widgetRenderState), {}, {
15549
+ renderFn(_objectSpread$o(_objectSpread$o({}, widgetRenderState), {}, {
15198
15550
  instantSearchInstance: instantSearchInstance
15199
15551
  }), false);
15200
15552
  sendEvent('view:internal', widgetRenderState.currentPageHits);
15201
15553
  },
15202
15554
  getRenderState: function getRenderState(renderState, renderOptions) {
15203
- return _objectSpread$n(_objectSpread$n({}, renderState), {}, {
15555
+ return _objectSpread$o(_objectSpread$o({}, renderState), {}, {
15204
15556
  infiniteHits: this.getWidgetRenderState(renderOptions)
15205
15557
  });
15206
15558
  },
@@ -15300,7 +15652,7 @@
15300
15652
  return stateWithoutPage;
15301
15653
  }
15302
15654
  return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
15303
- return _objectSpread$n(_objectSpread$n({}, acc), {}, _defineProperty$p({}, key, undefined));
15655
+ return _objectSpread$o(_objectSpread$o({}, acc), {}, _defineProperty$q({}, key, undefined));
15304
15656
  }, {}));
15305
15657
  },
15306
15658
  getWidgetUiState: function getWidgetUiState(uiState, _ref9) {
@@ -15311,7 +15663,7 @@
15311
15663
  // because we don't want `page=1` in the URL
15312
15664
  return uiState;
15313
15665
  }
15314
- return _objectSpread$n(_objectSpread$n({}, uiState), {}, {
15666
+ return _objectSpread$o(_objectSpread$o({}, uiState), {}, {
15315
15667
  // The page in the UI state is incremented by one
15316
15668
  // to expose the user value (not `0`).
15317
15669
  page: page + 1
@@ -15339,14 +15691,14 @@
15339
15691
  }
15340
15692
 
15341
15693
  var _excluded$a = ["name", "escapedValue", "path"];
15342
- function _typeof$t(obj) {
15694
+ function _typeof$u(obj) {
15343
15695
  "@babel/helpers - typeof";
15344
15696
 
15345
- return _typeof$t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15697
+ return _typeof$u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15346
15698
  return typeof obj;
15347
15699
  } : function (obj) {
15348
15700
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
15349
- }, _typeof$t(obj);
15701
+ }, _typeof$u(obj);
15350
15702
  }
15351
15703
  function _objectWithoutProperties$6(source, excluded) {
15352
15704
  if (source == null) return {};
@@ -15424,7 +15776,7 @@
15424
15776
  function _arrayWithHoles$8(arr) {
15425
15777
  if (Array.isArray(arr)) return arr;
15426
15778
  }
15427
- function ownKeys$p(object, enumerableOnly) {
15779
+ function ownKeys$q(object, enumerableOnly) {
15428
15780
  var keys = Object.keys(object);
15429
15781
  if (Object.getOwnPropertySymbols) {
15430
15782
  var symbols = Object.getOwnPropertySymbols(object);
@@ -15434,19 +15786,19 @@
15434
15786
  }
15435
15787
  return keys;
15436
15788
  }
15437
- function _objectSpread$o(target) {
15789
+ function _objectSpread$p(target) {
15438
15790
  for (var i = 1; i < arguments.length; i++) {
15439
15791
  var source = null != arguments[i] ? arguments[i] : {};
15440
- i % 2 ? ownKeys$p(Object(source), !0).forEach(function (key) {
15441
- _defineProperty$q(target, key, source[key]);
15442
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$p(Object(source)).forEach(function (key) {
15792
+ i % 2 ? ownKeys$q(Object(source), !0).forEach(function (key) {
15793
+ _defineProperty$r(target, key, source[key]);
15794
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$q(Object(source)).forEach(function (key) {
15443
15795
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
15444
15796
  });
15445
15797
  }
15446
15798
  return target;
15447
15799
  }
15448
- function _defineProperty$q(obj, key, value) {
15449
- key = _toPropertyKey$q(key);
15800
+ function _defineProperty$r(obj, key, value) {
15801
+ key = _toPropertyKey$r(key);
15450
15802
  if (key in obj) {
15451
15803
  Object.defineProperty(obj, key, {
15452
15804
  value: value,
@@ -15459,21 +15811,21 @@
15459
15811
  }
15460
15812
  return obj;
15461
15813
  }
15462
- function _toPropertyKey$q(arg) {
15463
- var key = _toPrimitive$q(arg, "string");
15464
- return _typeof$t(key) === "symbol" ? key : String(key);
15814
+ function _toPropertyKey$r(arg) {
15815
+ var key = _toPrimitive$r(arg, "string");
15816
+ return _typeof$u(key) === "symbol" ? key : String(key);
15465
15817
  }
15466
- function _toPrimitive$q(input, hint) {
15467
- if (_typeof$t(input) !== "object" || input === null) return input;
15818
+ function _toPrimitive$r(input, hint) {
15819
+ if (_typeof$u(input) !== "object" || input === null) return input;
15468
15820
  var prim = input[Symbol.toPrimitive];
15469
15821
  if (prim !== undefined) {
15470
15822
  var res = prim.call(input, hint || "default");
15471
- if (_typeof$t(res) !== "object") return res;
15823
+ if (_typeof$u(res) !== "object") return res;
15472
15824
  throw new TypeError("@@toPrimitive must return a primitive value.");
15473
15825
  }
15474
15826
  return (hint === "string" ? String : Number)(input);
15475
15827
  }
15476
- var withUsage$c = createDocumentationMessageGenerator({
15828
+ var withUsage$d = createDocumentationMessageGenerator({
15477
15829
  name: 'menu',
15478
15830
  connector: true
15479
15831
  });
@@ -15489,7 +15841,7 @@
15489
15841
  */
15490
15842
  var connectMenu = function connectMenu(renderFn) {
15491
15843
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
15492
- checkRendering(renderFn, withUsage$c());
15844
+ checkRendering(renderFn, withUsage$d());
15493
15845
  return function (widgetParams) {
15494
15846
  var _ref = widgetParams || {},
15495
15847
  attribute = _ref.attribute,
@@ -15506,10 +15858,10 @@
15506
15858
  return items;
15507
15859
  } : _ref$transformItems;
15508
15860
  if (!attribute) {
15509
- throw new Error(withUsage$c('The `attribute` option is required.'));
15861
+ throw new Error(withUsage$d('The `attribute` option is required.'));
15510
15862
  }
15511
15863
  if (showMore === true && showMoreLimit <= limit) {
15512
- throw new Error(withUsage$c('The `showMoreLimit` option must be greater than `limit`.'));
15864
+ throw new Error(withUsage$d('The `showMoreLimit` option must be greater than `limit`.'));
15513
15865
  }
15514
15866
  var sendEvent;
15515
15867
  var _createURL;
@@ -15535,13 +15887,13 @@
15535
15887
  $$type: 'ais.menu',
15536
15888
  init: function init(initOptions) {
15537
15889
  var instantSearchInstance = initOptions.instantSearchInstance;
15538
- renderFn(_objectSpread$o(_objectSpread$o({}, this.getWidgetRenderState(initOptions)), {}, {
15890
+ renderFn(_objectSpread$p(_objectSpread$p({}, this.getWidgetRenderState(initOptions)), {}, {
15539
15891
  instantSearchInstance: instantSearchInstance
15540
15892
  }), true);
15541
15893
  },
15542
15894
  render: function render(renderOptions) {
15543
15895
  var instantSearchInstance = renderOptions.instantSearchInstance;
15544
- renderFn(_objectSpread$o(_objectSpread$o({}, this.getWidgetRenderState(renderOptions)), {}, {
15896
+ renderFn(_objectSpread$p(_objectSpread$p({}, this.getWidgetRenderState(renderOptions)), {}, {
15545
15897
  instantSearchInstance: instantSearchInstance
15546
15898
  }), false);
15547
15899
  },
@@ -15551,8 +15903,8 @@
15551
15903
  return state.removeHierarchicalFacet(attribute).setQueryParameter('maxValuesPerFacet', undefined);
15552
15904
  },
15553
15905
  getRenderState: function getRenderState(renderState, renderOptions) {
15554
- return _objectSpread$o(_objectSpread$o({}, renderState), {}, {
15555
- menu: _objectSpread$o(_objectSpread$o({}, renderState.menu), {}, _defineProperty$q({}, attribute, this.getWidgetRenderState(renderOptions)))
15906
+ return _objectSpread$p(_objectSpread$p({}, renderState), {}, {
15907
+ menu: _objectSpread$p(_objectSpread$p({}, renderState.menu), {}, _defineProperty$r({}, attribute, this.getWidgetRenderState(renderOptions)))
15556
15908
  });
15557
15909
  },
15558
15910
  getWidgetRenderState: function getWidgetRenderState(renderOptions) {
@@ -15605,7 +15957,7 @@
15605
15957
  value = _ref3.escapedValue,
15606
15958
  path = _ref3.path,
15607
15959
  item = _objectWithoutProperties$6(_ref3, _excluded$a);
15608
- return _objectSpread$o(_objectSpread$o({}, item), {}, {
15960
+ return _objectSpread$p(_objectSpread$p({}, item), {}, {
15609
15961
  label: label,
15610
15962
  value: value
15611
15963
  });
@@ -15630,8 +15982,8 @@
15630
15982
  var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
15631
15983
  _searchParameters$get2 = _slicedToArray$8(_searchParameters$get, 1),
15632
15984
  value = _searchParameters$get2[0];
15633
- return removeEmptyRefinementsFromUiState$2(_objectSpread$o(_objectSpread$o({}, uiState), {}, {
15634
- menu: _objectSpread$o(_objectSpread$o({}, uiState.menu), {}, _defineProperty$q({}, attribute, value))
15985
+ return removeEmptyRefinementsFromUiState$2(_objectSpread$p(_objectSpread$p({}, uiState), {}, {
15986
+ menu: _objectSpread$p(_objectSpread$p({}, uiState.menu), {}, _defineProperty$r({}, attribute, value))
15635
15987
  }), attribute);
15636
15988
  },
15637
15989
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {
@@ -15649,7 +16001,7 @@
15649
16001
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
15650
16002
  if (!value) {
15651
16003
  return withMaxValuesPerFacet.setQueryParameters({
15652
- hierarchicalFacetsRefinements: _objectSpread$o(_objectSpread$o({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty$q({}, attribute, []))
16004
+ hierarchicalFacetsRefinements: _objectSpread$p(_objectSpread$p({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty$r({}, attribute, []))
15653
16005
  });
15654
16006
  }
15655
16007
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
@@ -15674,14 +16026,14 @@
15674
16026
  return useConnector(connectMenu, props, additionalWidgetProperties);
15675
16027
  }
15676
16028
 
15677
- function _typeof$u(obj) {
16029
+ function _typeof$v(obj) {
15678
16030
  "@babel/helpers - typeof";
15679
16031
 
15680
- return _typeof$u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16032
+ return _typeof$v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15681
16033
  return typeof obj;
15682
16034
  } : function (obj) {
15683
16035
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
15684
- }, _typeof$u(obj);
16036
+ }, _typeof$v(obj);
15685
16037
  }
15686
16038
  function _createForOfIteratorHelper(o, allowArrayLike) {
15687
16039
  var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
@@ -15783,7 +16135,7 @@
15783
16135
  function _arrayWithHoles$9(arr) {
15784
16136
  if (Array.isArray(arr)) return arr;
15785
16137
  }
15786
- function ownKeys$q(object, enumerableOnly) {
16138
+ function ownKeys$r(object, enumerableOnly) {
15787
16139
  var keys = Object.keys(object);
15788
16140
  if (Object.getOwnPropertySymbols) {
15789
16141
  var symbols = Object.getOwnPropertySymbols(object);
@@ -15793,19 +16145,19 @@
15793
16145
  }
15794
16146
  return keys;
15795
16147
  }
15796
- function _objectSpread$p(target) {
16148
+ function _objectSpread$q(target) {
15797
16149
  for (var i = 1; i < arguments.length; i++) {
15798
16150
  var source = null != arguments[i] ? arguments[i] : {};
15799
- i % 2 ? ownKeys$q(Object(source), !0).forEach(function (key) {
15800
- _defineProperty$r(target, key, source[key]);
15801
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$q(Object(source)).forEach(function (key) {
16151
+ i % 2 ? ownKeys$r(Object(source), !0).forEach(function (key) {
16152
+ _defineProperty$s(target, key, source[key]);
16153
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$r(Object(source)).forEach(function (key) {
15802
16154
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
15803
16155
  });
15804
16156
  }
15805
16157
  return target;
15806
16158
  }
15807
- function _defineProperty$r(obj, key, value) {
15808
- key = _toPropertyKey$r(key);
16159
+ function _defineProperty$s(obj, key, value) {
16160
+ key = _toPropertyKey$s(key);
15809
16161
  if (key in obj) {
15810
16162
  Object.defineProperty(obj, key, {
15811
16163
  value: value,
@@ -15818,21 +16170,21 @@
15818
16170
  }
15819
16171
  return obj;
15820
16172
  }
15821
- function _toPropertyKey$r(arg) {
15822
- var key = _toPrimitive$r(arg, "string");
15823
- return _typeof$u(key) === "symbol" ? key : String(key);
16173
+ function _toPropertyKey$s(arg) {
16174
+ var key = _toPrimitive$s(arg, "string");
16175
+ return _typeof$v(key) === "symbol" ? key : String(key);
15824
16176
  }
15825
- function _toPrimitive$r(input, hint) {
15826
- if (_typeof$u(input) !== "object" || input === null) return input;
16177
+ function _toPrimitive$s(input, hint) {
16178
+ if (_typeof$v(input) !== "object" || input === null) return input;
15827
16179
  var prim = input[Symbol.toPrimitive];
15828
16180
  if (prim !== undefined) {
15829
16181
  var res = prim.call(input, hint || "default");
15830
- if (_typeof$u(res) !== "object") return res;
16182
+ if (_typeof$v(res) !== "object") return res;
15831
16183
  throw new TypeError("@@toPrimitive must return a primitive value.");
15832
16184
  }
15833
16185
  return (hint === "string" ? String : Number)(input);
15834
16186
  }
15835
- var withUsage$d = createDocumentationMessageGenerator({
16187
+ var withUsage$e = createDocumentationMessageGenerator({
15836
16188
  name: 'numeric-menu',
15837
16189
  connector: true
15838
16190
  });
@@ -15848,7 +16200,7 @@
15848
16200
  };
15849
16201
  var connectNumericMenu = function connectNumericMenu(renderFn) {
15850
16202
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
15851
- checkRendering(renderFn, withUsage$d());
16203
+ checkRendering(renderFn, withUsage$e());
15852
16204
  return function (widgetParams) {
15853
16205
  var _ref2 = widgetParams || {},
15854
16206
  _ref2$attribute = _ref2.attribute,
@@ -15860,10 +16212,10 @@
15860
16212
  return item;
15861
16213
  } : _ref2$transformItems;
15862
16214
  if (attribute === '') {
15863
- throw new Error(withUsage$d('The `attribute` option is required.'));
16215
+ throw new Error(withUsage$e('The `attribute` option is required.'));
15864
16216
  }
15865
16217
  if (!items || items.length === 0) {
15866
- throw new Error(withUsage$d('The `items` option expects an array of objects.'));
16218
+ throw new Error(withUsage$e('The `items` option expects an array of objects.'));
15867
16219
  }
15868
16220
  var prepareItems = function prepareItems(state) {
15869
16221
  return items.map(function (_ref3) {
@@ -15889,13 +16241,13 @@
15889
16241
  $$type: $$type$1,
15890
16242
  init: function init(initOptions) {
15891
16243
  var instantSearchInstance = initOptions.instantSearchInstance;
15892
- renderFn(_objectSpread$p(_objectSpread$p({}, this.getWidgetRenderState(initOptions)), {}, {
16244
+ renderFn(_objectSpread$q(_objectSpread$q({}, this.getWidgetRenderState(initOptions)), {}, {
15893
16245
  instantSearchInstance: instantSearchInstance
15894
16246
  }), true);
15895
16247
  },
15896
16248
  render: function render(renderOptions) {
15897
16249
  var instantSearchInstance = renderOptions.instantSearchInstance;
15898
- renderFn(_objectSpread$p(_objectSpread$p({}, this.getWidgetRenderState(renderOptions)), {}, {
16250
+ renderFn(_objectSpread$q(_objectSpread$q({}, this.getWidgetRenderState(renderOptions)), {}, {
15899
16251
  instantSearchInstance: instantSearchInstance
15900
16252
  }), false);
15901
16253
  },
@@ -15909,21 +16261,21 @@
15909
16261
  var values = searchParameters.getNumericRefinements(attribute);
15910
16262
  var equal = values['='] && values['='][0];
15911
16263
  if (equal || equal === 0) {
15912
- return _objectSpread$p(_objectSpread$p({}, uiState), {}, {
15913
- numericMenu: _objectSpread$p(_objectSpread$p({}, uiState.numericMenu), {}, _defineProperty$r({}, attribute, "".concat(values['='])))
16264
+ return _objectSpread$q(_objectSpread$q({}, uiState), {}, {
16265
+ numericMenu: _objectSpread$q(_objectSpread$q({}, uiState.numericMenu), {}, _defineProperty$s({}, attribute, "".concat(values['='])))
15914
16266
  });
15915
16267
  }
15916
16268
  var min = values['>='] && values['>='][0] || '';
15917
16269
  var max = values['<='] && values['<='][0] || '';
15918
- return removeEmptyRefinementsFromUiState$3(_objectSpread$p(_objectSpread$p({}, uiState), {}, {
15919
- numericMenu: _objectSpread$p(_objectSpread$p({}, uiState.numericMenu), {}, _defineProperty$r({}, attribute, "".concat(min, ":").concat(max)))
16270
+ return removeEmptyRefinementsFromUiState$3(_objectSpread$q(_objectSpread$q({}, uiState), {}, {
16271
+ numericMenu: _objectSpread$q(_objectSpread$q({}, uiState.numericMenu), {}, _defineProperty$s({}, attribute, "".concat(min, ":").concat(max)))
15920
16272
  }), attribute);
15921
16273
  },
15922
16274
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
15923
16275
  var uiState = _ref6.uiState;
15924
16276
  var value = uiState.numericMenu && uiState.numericMenu[attribute];
15925
16277
  var withoutRefinements = searchParameters.setQueryParameters({
15926
- numericRefinements: _objectSpread$p(_objectSpread$p({}, searchParameters.numericRefinements), {}, _defineProperty$r({}, attribute, {}))
16278
+ numericRefinements: _objectSpread$q(_objectSpread$q({}, searchParameters.numericRefinements), {}, _defineProperty$s({}, attribute, {}))
15927
16279
  });
15928
16280
  if (!value) {
15929
16281
  return withoutRefinements;
@@ -15941,8 +16293,8 @@
15941
16293
  return withMaxRefinement;
15942
16294
  },
15943
16295
  getRenderState: function getRenderState(renderState, renderOptions) {
15944
- return _objectSpread$p(_objectSpread$p({}, renderState), {}, {
15945
- numericMenu: _objectSpread$p(_objectSpread$p({}, renderState.numericMenu), {}, _defineProperty$r({}, attribute, this.getWidgetRenderState(renderOptions)))
16296
+ return _objectSpread$q(_objectSpread$q({}, renderState), {}, {
16297
+ numericMenu: _objectSpread$q(_objectSpread$q({}, renderState.numericMenu), {}, _defineProperty$s({}, attribute, this.getWidgetRenderState(renderOptions)))
15946
16298
  });
15947
16299
  },
15948
16300
  getWidgetRenderState: function getWidgetRenderState(_ref7) {
@@ -16096,14 +16448,14 @@
16096
16448
  return useConnector(connectNumericMenu, props, additionalWidgetProperties);
16097
16449
  }
16098
16450
 
16099
- function _typeof$v(obj) {
16451
+ function _typeof$w(obj) {
16100
16452
  "@babel/helpers - typeof";
16101
16453
 
16102
- return _typeof$v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16454
+ return _typeof$w = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16103
16455
  return typeof obj;
16104
16456
  } : function (obj) {
16105
16457
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16106
- }, _typeof$v(obj);
16458
+ }, _typeof$w(obj);
16107
16459
  }
16108
16460
  function _classCallCheck$2(instance, Constructor) {
16109
16461
  if (!(instance instanceof Constructor)) {
@@ -16116,7 +16468,7 @@
16116
16468
  descriptor.enumerable = descriptor.enumerable || false;
16117
16469
  descriptor.configurable = true;
16118
16470
  if ("value" in descriptor) descriptor.writable = true;
16119
- Object.defineProperty(target, _toPropertyKey$s(descriptor.key), descriptor);
16471
+ Object.defineProperty(target, _toPropertyKey$t(descriptor.key), descriptor);
16120
16472
  }
16121
16473
  }
16122
16474
  function _createClass$2(Constructor, protoProps, staticProps) {
@@ -16127,8 +16479,8 @@
16127
16479
  });
16128
16480
  return Constructor;
16129
16481
  }
16130
- function _defineProperty$s(obj, key, value) {
16131
- key = _toPropertyKey$s(key);
16482
+ function _defineProperty$t(obj, key, value) {
16483
+ key = _toPropertyKey$t(key);
16132
16484
  if (key in obj) {
16133
16485
  Object.defineProperty(obj, key, {
16134
16486
  value: value,
@@ -16141,16 +16493,16 @@
16141
16493
  }
16142
16494
  return obj;
16143
16495
  }
16144
- function _toPropertyKey$s(arg) {
16145
- var key = _toPrimitive$s(arg, "string");
16146
- return _typeof$v(key) === "symbol" ? key : String(key);
16496
+ function _toPropertyKey$t(arg) {
16497
+ var key = _toPrimitive$t(arg, "string");
16498
+ return _typeof$w(key) === "symbol" ? key : String(key);
16147
16499
  }
16148
- function _toPrimitive$s(input, hint) {
16149
- if (_typeof$v(input) !== "object" || input === null) return input;
16500
+ function _toPrimitive$t(input, hint) {
16501
+ if (_typeof$w(input) !== "object" || input === null) return input;
16150
16502
  var prim = input[Symbol.toPrimitive];
16151
16503
  if (prim !== undefined) {
16152
16504
  var res = prim.call(input, hint || "default");
16153
- if (_typeof$v(res) !== "object") return res;
16505
+ if (_typeof$w(res) !== "object") return res;
16154
16506
  throw new TypeError("@@toPrimitive must return a primitive value.");
16155
16507
  }
16156
16508
  return (hint === "string" ? String : Number)(input);
@@ -16158,9 +16510,9 @@
16158
16510
  var Paginator = /*#__PURE__*/function () {
16159
16511
  function Paginator(params) {
16160
16512
  _classCallCheck$2(this, Paginator);
16161
- _defineProperty$s(this, "currentPage", void 0);
16162
- _defineProperty$s(this, "total", void 0);
16163
- _defineProperty$s(this, "padding", void 0);
16513
+ _defineProperty$t(this, "currentPage", void 0);
16514
+ _defineProperty$t(this, "total", void 0);
16515
+ _defineProperty$t(this, "padding", void 0);
16164
16516
  this.currentPage = params.currentPage;
16165
16517
  this.total = params.total;
16166
16518
  this.padding = params.padding;
@@ -16217,16 +16569,16 @@
16217
16569
  return Paginator;
16218
16570
  }();
16219
16571
 
16220
- function _typeof$w(obj) {
16572
+ function _typeof$x(obj) {
16221
16573
  "@babel/helpers - typeof";
16222
16574
 
16223
- return _typeof$w = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16575
+ return _typeof$x = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16224
16576
  return typeof obj;
16225
16577
  } : function (obj) {
16226
16578
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16227
- }, _typeof$w(obj);
16579
+ }, _typeof$x(obj);
16228
16580
  }
16229
- function ownKeys$r(object, enumerableOnly) {
16581
+ function ownKeys$s(object, enumerableOnly) {
16230
16582
  var keys = Object.keys(object);
16231
16583
  if (Object.getOwnPropertySymbols) {
16232
16584
  var symbols = Object.getOwnPropertySymbols(object);
@@ -16236,19 +16588,19 @@
16236
16588
  }
16237
16589
  return keys;
16238
16590
  }
16239
- function _objectSpread$q(target) {
16591
+ function _objectSpread$r(target) {
16240
16592
  for (var i = 1; i < arguments.length; i++) {
16241
16593
  var source = null != arguments[i] ? arguments[i] : {};
16242
- i % 2 ? ownKeys$r(Object(source), !0).forEach(function (key) {
16243
- _defineProperty$t(target, key, source[key]);
16244
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$r(Object(source)).forEach(function (key) {
16594
+ i % 2 ? ownKeys$s(Object(source), !0).forEach(function (key) {
16595
+ _defineProperty$u(target, key, source[key]);
16596
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$s(Object(source)).forEach(function (key) {
16245
16597
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
16246
16598
  });
16247
16599
  }
16248
16600
  return target;
16249
16601
  }
16250
- function _defineProperty$t(obj, key, value) {
16251
- key = _toPropertyKey$t(key);
16602
+ function _defineProperty$u(obj, key, value) {
16603
+ key = _toPropertyKey$u(key);
16252
16604
  if (key in obj) {
16253
16605
  Object.defineProperty(obj, key, {
16254
16606
  value: value,
@@ -16261,21 +16613,21 @@
16261
16613
  }
16262
16614
  return obj;
16263
16615
  }
16264
- function _toPropertyKey$t(arg) {
16265
- var key = _toPrimitive$t(arg, "string");
16266
- return _typeof$w(key) === "symbol" ? key : String(key);
16616
+ function _toPropertyKey$u(arg) {
16617
+ var key = _toPrimitive$u(arg, "string");
16618
+ return _typeof$x(key) === "symbol" ? key : String(key);
16267
16619
  }
16268
- function _toPrimitive$t(input, hint) {
16269
- if (_typeof$w(input) !== "object" || input === null) return input;
16620
+ function _toPrimitive$u(input, hint) {
16621
+ if (_typeof$x(input) !== "object" || input === null) return input;
16270
16622
  var prim = input[Symbol.toPrimitive];
16271
16623
  if (prim !== undefined) {
16272
16624
  var res = prim.call(input, hint || "default");
16273
- if (_typeof$w(res) !== "object") return res;
16625
+ if (_typeof$x(res) !== "object") return res;
16274
16626
  throw new TypeError("@@toPrimitive must return a primitive value.");
16275
16627
  }
16276
16628
  return (hint === "string" ? String : Number)(input);
16277
16629
  }
16278
- var withUsage$e = createDocumentationMessageGenerator({
16630
+ var withUsage$f = createDocumentationMessageGenerator({
16279
16631
  name: 'pagination',
16280
16632
  connector: true
16281
16633
  });
@@ -16288,7 +16640,7 @@
16288
16640
  */
16289
16641
  var connectPagination = function connectPagination(renderFn) {
16290
16642
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
16291
- checkRendering(renderFn, withUsage$e());
16643
+ checkRendering(renderFn, withUsage$f());
16292
16644
  return function (widgetParams) {
16293
16645
  var _ref = widgetParams || {},
16294
16646
  totalPages = _ref.totalPages,
@@ -16308,13 +16660,13 @@
16308
16660
  $$type: 'ais.pagination',
16309
16661
  init: function init(initOptions) {
16310
16662
  var instantSearchInstance = initOptions.instantSearchInstance;
16311
- renderFn(_objectSpread$q(_objectSpread$q({}, this.getWidgetRenderState(initOptions)), {}, {
16663
+ renderFn(_objectSpread$r(_objectSpread$r({}, this.getWidgetRenderState(initOptions)), {}, {
16312
16664
  instantSearchInstance: instantSearchInstance
16313
16665
  }), true);
16314
16666
  },
16315
16667
  render: function render(renderOptions) {
16316
16668
  var instantSearchInstance = renderOptions.instantSearchInstance;
16317
- renderFn(_objectSpread$q(_objectSpread$q({}, this.getWidgetRenderState(renderOptions)), {}, {
16669
+ renderFn(_objectSpread$r(_objectSpread$r({}, this.getWidgetRenderState(renderOptions)), {}, {
16318
16670
  instantSearchInstance: instantSearchInstance
16319
16671
  }), false);
16320
16672
  },
@@ -16329,7 +16681,7 @@
16329
16681
  if (!page) {
16330
16682
  return uiState;
16331
16683
  }
16332
- return _objectSpread$q(_objectSpread$q({}, uiState), {}, {
16684
+ return _objectSpread$r(_objectSpread$r({}, uiState), {}, {
16333
16685
  page: page + 1
16334
16686
  });
16335
16687
  },
@@ -16352,7 +16704,7 @@
16352
16704
  if (!connectorState.createURL) {
16353
16705
  connectorState.createURL = function (page) {
16354
16706
  return createURL(function (uiState) {
16355
- return _objectSpread$q(_objectSpread$q({}, uiState), {}, {
16707
+ return _objectSpread$r(_objectSpread$r({}, uiState), {}, {
16356
16708
  page: page + 1
16357
16709
  });
16358
16710
  });
@@ -16378,7 +16730,7 @@
16378
16730
  };
16379
16731
  },
16380
16732
  getRenderState: function getRenderState(renderState, renderOptions) {
16381
- return _objectSpread$q(_objectSpread$q({}, renderState), {}, {
16733
+ return _objectSpread$r(_objectSpread$r({}, renderState), {}, {
16382
16734
  pagination: this.getWidgetRenderState(renderOptions)
16383
16735
  });
16384
16736
  }
@@ -16405,16 +16757,16 @@
16405
16757
  };
16406
16758
  }
16407
16759
 
16408
- function _typeof$x(obj) {
16760
+ function _typeof$y(obj) {
16409
16761
  "@babel/helpers - typeof";
16410
16762
 
16411
- return _typeof$x = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16763
+ return _typeof$y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16412
16764
  return typeof obj;
16413
16765
  } : function (obj) {
16414
16766
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16415
- }, _typeof$x(obj);
16767
+ }, _typeof$y(obj);
16416
16768
  }
16417
- function ownKeys$s(object, enumerableOnly) {
16769
+ function ownKeys$t(object, enumerableOnly) {
16418
16770
  var keys = Object.keys(object);
16419
16771
  if (Object.getOwnPropertySymbols) {
16420
16772
  var symbols = Object.getOwnPropertySymbols(object);
@@ -16424,19 +16776,19 @@
16424
16776
  }
16425
16777
  return keys;
16426
16778
  }
16427
- function _objectSpread$r(target) {
16779
+ function _objectSpread$s(target) {
16428
16780
  for (var i = 1; i < arguments.length; i++) {
16429
16781
  var source = null != arguments[i] ? arguments[i] : {};
16430
- i % 2 ? ownKeys$s(Object(source), !0).forEach(function (key) {
16431
- _defineProperty$u(target, key, source[key]);
16432
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$s(Object(source)).forEach(function (key) {
16782
+ i % 2 ? ownKeys$t(Object(source), !0).forEach(function (key) {
16783
+ _defineProperty$v(target, key, source[key]);
16784
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$t(Object(source)).forEach(function (key) {
16433
16785
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
16434
16786
  });
16435
16787
  }
16436
16788
  return target;
16437
16789
  }
16438
- function _defineProperty$u(obj, key, value) {
16439
- key = _toPropertyKey$u(key);
16790
+ function _defineProperty$v(obj, key, value) {
16791
+ key = _toPropertyKey$v(key);
16440
16792
  if (key in obj) {
16441
16793
  Object.defineProperty(obj, key, {
16442
16794
  value: value,
@@ -16449,16 +16801,16 @@
16449
16801
  }
16450
16802
  return obj;
16451
16803
  }
16452
- function _toPropertyKey$u(arg) {
16453
- var key = _toPrimitive$u(arg, "string");
16454
- return _typeof$x(key) === "symbol" ? key : String(key);
16804
+ function _toPropertyKey$v(arg) {
16805
+ var key = _toPrimitive$v(arg, "string");
16806
+ return _typeof$y(key) === "symbol" ? key : String(key);
16455
16807
  }
16456
- function _toPrimitive$u(input, hint) {
16457
- if (_typeof$x(input) !== "object" || input === null) return input;
16808
+ function _toPrimitive$v(input, hint) {
16809
+ if (_typeof$y(input) !== "object" || input === null) return input;
16458
16810
  var prim = input[Symbol.toPrimitive];
16459
16811
  if (prim !== undefined) {
16460
16812
  var res = prim.call(input, hint || "default");
16461
- if (_typeof$x(res) !== "object") return res;
16813
+ if (_typeof$y(res) !== "object") return res;
16462
16814
  throw new TypeError("@@toPrimitive must return a primitive value.");
16463
16815
  }
16464
16816
  return (hint === "string" ? String : Number)(input);
@@ -16488,7 +16840,7 @@
16488
16840
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16489
16841
  return arr2;
16490
16842
  }
16491
- var withUsage$f = createDocumentationMessageGenerator({
16843
+ var withUsage$g = createDocumentationMessageGenerator({
16492
16844
  name: 'query-rules',
16493
16845
  connector: true
16494
16846
  });
@@ -16538,14 +16890,14 @@
16538
16890
  var nextRuleContexts = [].concat(_toConsumableArray$7(initialRuleContexts), _toConsumableArray$7(newRuleContexts));
16539
16891
  var ruleContexts = transformRuleContexts(nextRuleContexts).slice(0, 10);
16540
16892
  if (!isEqual(previousRuleContexts, ruleContexts)) {
16541
- helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$r(_objectSpread$r({}, sharedHelperState), {}, {
16893
+ helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$s(_objectSpread$s({}, sharedHelperState), {}, {
16542
16894
  ruleContexts: ruleContexts
16543
16895
  }));
16544
16896
  }
16545
16897
  }
16546
16898
  var connectQueryRules = function connectQueryRules(_render) {
16547
16899
  var unmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
16548
- checkRendering(_render, withUsage$f());
16900
+ checkRendering(_render, withUsage$g());
16549
16901
  return function (widgetParams) {
16550
16902
  var _ref2 = widgetParams || {},
16551
16903
  _ref2$trackedFilters = _ref2.trackedFilters,
@@ -16560,7 +16912,7 @@
16560
16912
  } : _ref2$transformItems;
16561
16913
  Object.keys(trackedFilters).forEach(function (facetName) {
16562
16914
  if (typeof trackedFilters[facetName] !== 'function') {
16563
- throw new Error(withUsage$f("'The \"".concat(facetName, "\" filter value in the `trackedFilters` option expects a function.")));
16915
+ throw new Error(withUsage$g("'The \"".concat(facetName, "\" filter value in the `trackedFilters` option expects a function.")));
16564
16916
  }
16565
16917
  });
16566
16918
  var hasTrackedFilters = Object.keys(trackedFilters).length > 0;
@@ -16597,13 +16949,13 @@
16597
16949
  // any `ruleContexts` needed based on the `trackedFilters`.
16598
16950
  helper.on('change', onHelperChange);
16599
16951
  }
16600
- _render(_objectSpread$r(_objectSpread$r({}, this.getWidgetRenderState(initOptions)), {}, {
16952
+ _render(_objectSpread$s(_objectSpread$s({}, this.getWidgetRenderState(initOptions)), {}, {
16601
16953
  instantSearchInstance: instantSearchInstance
16602
16954
  }), true);
16603
16955
  },
16604
16956
  render: function render(renderOptions) {
16605
16957
  var instantSearchInstance = renderOptions.instantSearchInstance;
16606
- _render(_objectSpread$r(_objectSpread$r({}, this.getWidgetRenderState(renderOptions)), {}, {
16958
+ _render(_objectSpread$s(_objectSpread$s({}, this.getWidgetRenderState(renderOptions)), {}, {
16607
16959
  instantSearchInstance: instantSearchInstance
16608
16960
  }), false);
16609
16961
  },
@@ -16621,7 +16973,7 @@
16621
16973
  };
16622
16974
  },
16623
16975
  getRenderState: function getRenderState(renderState, renderOptions) {
16624
- return _objectSpread$r(_objectSpread$r({}, renderState), {}, {
16976
+ return _objectSpread$s(_objectSpread$s({}, renderState), {}, {
16625
16977
  queryRules: this.getWidgetRenderState(renderOptions)
16626
16978
  });
16627
16979
  },
@@ -16643,16 +16995,16 @@
16643
16995
  return useConnector(connectQueryRules, props, additionalWidgetProperties);
16644
16996
  }
16645
16997
 
16646
- function _typeof$y(obj) {
16998
+ function _typeof$z(obj) {
16647
16999
  "@babel/helpers - typeof";
16648
17000
 
16649
- return _typeof$y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17001
+ return _typeof$z = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
16650
17002
  return typeof obj;
16651
17003
  } : function (obj) {
16652
17004
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
16653
- }, _typeof$y(obj);
17005
+ }, _typeof$z(obj);
16654
17006
  }
16655
- function ownKeys$t(object, enumerableOnly) {
17007
+ function ownKeys$u(object, enumerableOnly) {
16656
17008
  var keys = Object.keys(object);
16657
17009
  if (Object.getOwnPropertySymbols) {
16658
17010
  var symbols = Object.getOwnPropertySymbols(object);
@@ -16662,19 +17014,19 @@
16662
17014
  }
16663
17015
  return keys;
16664
17016
  }
16665
- function _objectSpread$s(target) {
17017
+ function _objectSpread$t(target) {
16666
17018
  for (var i = 1; i < arguments.length; i++) {
16667
17019
  var source = null != arguments[i] ? arguments[i] : {};
16668
- i % 2 ? ownKeys$t(Object(source), !0).forEach(function (key) {
16669
- _defineProperty$v(target, key, source[key]);
16670
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$t(Object(source)).forEach(function (key) {
17020
+ i % 2 ? ownKeys$u(Object(source), !0).forEach(function (key) {
17021
+ _defineProperty$w(target, key, source[key]);
17022
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$u(Object(source)).forEach(function (key) {
16671
17023
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
16672
17024
  });
16673
17025
  }
16674
17026
  return target;
16675
17027
  }
16676
- function _defineProperty$v(obj, key, value) {
16677
- key = _toPropertyKey$v(key);
17028
+ function _defineProperty$w(obj, key, value) {
17029
+ key = _toPropertyKey$w(key);
16678
17030
  if (key in obj) {
16679
17031
  Object.defineProperty(obj, key, {
16680
17032
  value: value,
@@ -16687,16 +17039,16 @@
16687
17039
  }
16688
17040
  return obj;
16689
17041
  }
16690
- function _toPropertyKey$v(arg) {
16691
- var key = _toPrimitive$v(arg, "string");
16692
- return _typeof$y(key) === "symbol" ? key : String(key);
17042
+ function _toPropertyKey$w(arg) {
17043
+ var key = _toPrimitive$w(arg, "string");
17044
+ return _typeof$z(key) === "symbol" ? key : String(key);
16693
17045
  }
16694
- function _toPrimitive$v(input, hint) {
16695
- if (_typeof$y(input) !== "object" || input === null) return input;
17046
+ function _toPrimitive$w(input, hint) {
17047
+ if (_typeof$z(input) !== "object" || input === null) return input;
16696
17048
  var prim = input[Symbol.toPrimitive];
16697
17049
  if (prim !== undefined) {
16698
17050
  var res = prim.call(input, hint || "default");
16699
- if (_typeof$y(res) !== "object") return res;
17051
+ if (_typeof$z(res) !== "object") return res;
16700
17052
  throw new TypeError("@@toPrimitive must return a primitive value.");
16701
17053
  }
16702
17054
  return (hint === "string" ? String : Number)(input);
@@ -16750,7 +17102,7 @@
16750
17102
  function _arrayWithHoles$a(arr) {
16751
17103
  if (Array.isArray(arr)) return arr;
16752
17104
  }
16753
- var withUsage$g = createDocumentationMessageGenerator({
17105
+ var withUsage$h = createDocumentationMessageGenerator({
16754
17106
  name: 'range-input',
16755
17107
  connector: true
16756
17108
  }, {
@@ -16781,7 +17133,7 @@
16781
17133
  */
16782
17134
  var connectRange = function connectRange(renderFn) {
16783
17135
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
16784
- checkRendering(renderFn, withUsage$g());
17136
+ checkRendering(renderFn, withUsage$h());
16785
17137
  return function (widgetParams) {
16786
17138
  var _ref2 = widgetParams || {},
16787
17139
  _ref2$attribute = _ref2.attribute,
@@ -16791,10 +17143,10 @@
16791
17143
  _ref2$precision = _ref2.precision,
16792
17144
  precision = _ref2$precision === void 0 ? 0 : _ref2$precision;
16793
17145
  if (!attribute) {
16794
- throw new Error(withUsage$g('The `attribute` option is required.'));
17146
+ throw new Error(withUsage$h('The `attribute` option is required.'));
16795
17147
  }
16796
17148
  if (isFiniteNumber(minBound) && isFiniteNumber(maxBound) && minBound > maxBound) {
16797
- throw new Error(withUsage$g("The `max` option can't be lower than `min`."));
17149
+ throw new Error(withUsage$h("The `max` option can't be lower than `min`."));
16798
17150
  }
16799
17151
  var formatToNumber = function formatToNumber(v) {
16800
17152
  return Number(Number(v).toFixed(precision));
@@ -16921,18 +17273,18 @@
16921
17273
  return {
16922
17274
  $$type: $$type$2,
16923
17275
  init: function init(initOptions) {
16924
- renderFn(_objectSpread$s(_objectSpread$s({}, this.getWidgetRenderState(initOptions)), {}, {
17276
+ renderFn(_objectSpread$t(_objectSpread$t({}, this.getWidgetRenderState(initOptions)), {}, {
16925
17277
  instantSearchInstance: initOptions.instantSearchInstance
16926
17278
  }), true);
16927
17279
  },
16928
17280
  render: function render(renderOptions) {
16929
- renderFn(_objectSpread$s(_objectSpread$s({}, this.getWidgetRenderState(renderOptions)), {}, {
17281
+ renderFn(_objectSpread$t(_objectSpread$t({}, this.getWidgetRenderState(renderOptions)), {}, {
16930
17282
  instantSearchInstance: renderOptions.instantSearchInstance
16931
17283
  }), false);
16932
17284
  },
16933
17285
  getRenderState: function getRenderState(renderState, renderOptions) {
16934
- return _objectSpread$s(_objectSpread$s({}, renderState), {}, {
16935
- range: _objectSpread$s(_objectSpread$s({}, renderState.range), {}, _defineProperty$v({}, attribute, this.getWidgetRenderState(renderOptions)))
17286
+ return _objectSpread$t(_objectSpread$t({}, renderState), {}, {
17287
+ range: _objectSpread$t(_objectSpread$t({}, renderState.range), {}, _defineProperty$w({}, attribute, this.getWidgetRenderState(renderOptions)))
16936
17288
  });
16937
17289
  },
16938
17290
  getWidgetRenderState: function getWidgetRenderState(_ref13) {
@@ -16967,7 +17319,7 @@
16967
17319
  format: rangeFormatter,
16968
17320
  range: currentRange,
16969
17321
  sendEvent: createSendEvent(instantSearchInstance),
16970
- widgetParams: _objectSpread$s(_objectSpread$s({}, widgetParams), {}, {
17322
+ widgetParams: _objectSpread$t(_objectSpread$t({}, widgetParams), {}, {
16971
17323
  precision: precision
16972
17324
  }),
16973
17325
  start: start
@@ -16988,14 +17340,14 @@
16988
17340
  if (min.length === 0 && max.length === 0) {
16989
17341
  return uiState;
16990
17342
  }
16991
- return _objectSpread$s(_objectSpread$s({}, uiState), {}, {
16992
- range: _objectSpread$s(_objectSpread$s({}, uiState.range), {}, _defineProperty$v({}, attribute, "".concat(min, ":").concat(max)))
17343
+ return _objectSpread$t(_objectSpread$t({}, uiState), {}, {
17344
+ range: _objectSpread$t(_objectSpread$t({}, uiState.range), {}, _defineProperty$w({}, attribute, "".concat(min, ":").concat(max)))
16993
17345
  });
16994
17346
  },
16995
17347
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref16) {
16996
17348
  var uiState = _ref16.uiState;
16997
17349
  var widgetSearchParameters = searchParameters.addDisjunctiveFacet(attribute).setQueryParameters({
16998
- numericRefinements: _objectSpread$s(_objectSpread$s({}, searchParameters.numericRefinements), {}, _defineProperty$v({}, attribute, {}))
17350
+ numericRefinements: _objectSpread$t(_objectSpread$t({}, searchParameters.numericRefinements), {}, _defineProperty$w({}, attribute, {}))
16999
17351
  });
17000
17352
  if (isFiniteNumber(minBound)) {
17001
17353
  widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', minBound);
@@ -17029,18 +17381,18 @@
17029
17381
  return useConnector(connectRange, props, additionalWidgetProperties);
17030
17382
  }
17031
17383
 
17032
- function _typeof$z(obj) {
17384
+ function _typeof$A(obj) {
17033
17385
  "@babel/helpers - typeof";
17034
17386
 
17035
- return _typeof$z = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17387
+ return _typeof$A = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17036
17388
  return typeof obj;
17037
17389
  } : function (obj) {
17038
17390
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17039
- }, _typeof$z(obj);
17391
+ }, _typeof$A(obj);
17040
17392
  }
17041
17393
  var _excluded$b = ["name", "escapedValue"],
17042
17394
  _excluded2$3 = ["escapedValue", "value"];
17043
- function ownKeys$u(object, enumerableOnly) {
17395
+ function ownKeys$v(object, enumerableOnly) {
17044
17396
  var keys = Object.keys(object);
17045
17397
  if (Object.getOwnPropertySymbols) {
17046
17398
  var symbols = Object.getOwnPropertySymbols(object);
@@ -17050,19 +17402,19 @@
17050
17402
  }
17051
17403
  return keys;
17052
17404
  }
17053
- function _objectSpread$t(target) {
17405
+ function _objectSpread$u(target) {
17054
17406
  for (var i = 1; i < arguments.length; i++) {
17055
17407
  var source = null != arguments[i] ? arguments[i] : {};
17056
- i % 2 ? ownKeys$u(Object(source), !0).forEach(function (key) {
17057
- _defineProperty$w(target, key, source[key]);
17058
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$u(Object(source)).forEach(function (key) {
17408
+ i % 2 ? ownKeys$v(Object(source), !0).forEach(function (key) {
17409
+ _defineProperty$x(target, key, source[key]);
17410
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$v(Object(source)).forEach(function (key) {
17059
17411
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17060
17412
  });
17061
17413
  }
17062
17414
  return target;
17063
17415
  }
17064
- function _defineProperty$w(obj, key, value) {
17065
- key = _toPropertyKey$w(key);
17416
+ function _defineProperty$x(obj, key, value) {
17417
+ key = _toPropertyKey$x(key);
17066
17418
  if (key in obj) {
17067
17419
  Object.defineProperty(obj, key, {
17068
17420
  value: value,
@@ -17075,16 +17427,16 @@
17075
17427
  }
17076
17428
  return obj;
17077
17429
  }
17078
- function _toPropertyKey$w(arg) {
17079
- var key = _toPrimitive$w(arg, "string");
17080
- return _typeof$z(key) === "symbol" ? key : String(key);
17430
+ function _toPropertyKey$x(arg) {
17431
+ var key = _toPrimitive$x(arg, "string");
17432
+ return _typeof$A(key) === "symbol" ? key : String(key);
17081
17433
  }
17082
- function _toPrimitive$w(input, hint) {
17083
- if (_typeof$z(input) !== "object" || input === null) return input;
17434
+ function _toPrimitive$x(input, hint) {
17435
+ if (_typeof$A(input) !== "object" || input === null) return input;
17084
17436
  var prim = input[Symbol.toPrimitive];
17085
17437
  if (prim !== undefined) {
17086
17438
  var res = prim.call(input, hint || "default");
17087
- if (_typeof$z(res) !== "object") return res;
17439
+ if (_typeof$A(res) !== "object") return res;
17088
17440
  throw new TypeError("@@toPrimitive must return a primitive value.");
17089
17441
  }
17090
17442
  return (hint === "string" ? String : Number)(input);
@@ -17116,7 +17468,7 @@
17116
17468
  }
17117
17469
  return target;
17118
17470
  }
17119
- var withUsage$h = createDocumentationMessageGenerator({
17471
+ var withUsage$i = createDocumentationMessageGenerator({
17120
17472
  name: 'refinement-list',
17121
17473
  connector: true
17122
17474
  });
@@ -17135,7 +17487,7 @@
17135
17487
  */
17136
17488
  var connectRefinementList = function connectRefinementList(renderFn) {
17137
17489
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
17138
- checkRendering(renderFn, withUsage$h());
17490
+ checkRendering(renderFn, withUsage$i());
17139
17491
  return function (widgetParams) {
17140
17492
  var _ref = widgetParams || {},
17141
17493
  attribute = _ref.attribute,
@@ -17156,19 +17508,19 @@
17156
17508
  return items;
17157
17509
  } : _ref$transformItems;
17158
17510
  if (!attribute) {
17159
- throw new Error(withUsage$h('The `attribute` option is required.'));
17511
+ throw new Error(withUsage$i('The `attribute` option is required.'));
17160
17512
  }
17161
17513
  if (!/^(and|or)$/.test(operator)) {
17162
- throw new Error(withUsage$h("The `operator` must one of: `\"and\"`, `\"or\"` (got \"".concat(operator, "\").")));
17514
+ throw new Error(withUsage$i("The `operator` must one of: `\"and\"`, `\"or\"` (got \"".concat(operator, "\").")));
17163
17515
  }
17164
17516
  if (showMore === true && showMoreLimit <= limit) {
17165
- throw new Error(withUsage$h('`showMoreLimit` should be greater than `limit`.'));
17517
+ throw new Error(withUsage$i('`showMoreLimit` should be greater than `limit`.'));
17166
17518
  }
17167
17519
  var formatItems = function formatItems(_ref2) {
17168
17520
  var label = _ref2.name,
17169
17521
  value = _ref2.escapedValue,
17170
17522
  item = _objectWithoutProperties$7(_ref2, _excluded$b);
17171
- return _objectSpread$t(_objectSpread$t({}, item), {}, {
17523
+ return _objectSpread$u(_objectSpread$u({}, item), {}, {
17172
17524
  value: value,
17173
17525
  label: label,
17174
17526
  highlighted: label
@@ -17205,7 +17557,7 @@
17205
17557
  searchResults = renderOptions.results;
17206
17558
  if (query === '' && lastItemsFromMainSearch) {
17207
17559
  // render with previous data from the helper.
17208
- renderFn(_objectSpread$t(_objectSpread$t({}, widget.getWidgetRenderState(_objectSpread$t(_objectSpread$t({}, renderOptions), {}, {
17560
+ renderFn(_objectSpread$u(_objectSpread$u({}, widget.getWidgetRenderState(_objectSpread$u(_objectSpread$u({}, renderOptions), {}, {
17209
17561
  results: lastResultsFromMainSearch
17210
17562
  }))), {}, {
17211
17563
  instantSearchInstance: instantSearchInstance
@@ -17225,14 +17577,14 @@
17225
17577
  var escapedValue = _ref3.escapedValue,
17226
17578
  value = _ref3.value,
17227
17579
  item = _objectWithoutProperties$7(_ref3, _excluded2$3);
17228
- return _objectSpread$t(_objectSpread$t({}, item), {}, {
17580
+ return _objectSpread$u(_objectSpread$u({}, item), {}, {
17229
17581
  value: escapedValue,
17230
17582
  label: value
17231
17583
  });
17232
17584
  }), {
17233
17585
  results: searchResults
17234
17586
  });
17235
- renderFn(_objectSpread$t(_objectSpread$t({}, widget.getWidgetRenderState(_objectSpread$t(_objectSpread$t({}, renderOptions), {}, {
17587
+ renderFn(_objectSpread$u(_objectSpread$u({}, widget.getWidgetRenderState(_objectSpread$u(_objectSpread$u({}, renderOptions), {}, {
17236
17588
  results: lastResultsFromMainSearch
17237
17589
  }))), {}, {
17238
17590
  items: normalizedFacetValues,
@@ -17249,18 +17601,18 @@
17249
17601
  return {
17250
17602
  $$type: 'ais.refinementList',
17251
17603
  init: function init(initOptions) {
17252
- renderFn(_objectSpread$t(_objectSpread$t({}, this.getWidgetRenderState(initOptions)), {}, {
17604
+ renderFn(_objectSpread$u(_objectSpread$u({}, this.getWidgetRenderState(initOptions)), {}, {
17253
17605
  instantSearchInstance: initOptions.instantSearchInstance
17254
17606
  }), true);
17255
17607
  },
17256
17608
  render: function render(renderOptions) {
17257
- renderFn(_objectSpread$t(_objectSpread$t({}, this.getWidgetRenderState(renderOptions)), {}, {
17609
+ renderFn(_objectSpread$u(_objectSpread$u({}, this.getWidgetRenderState(renderOptions)), {}, {
17258
17610
  instantSearchInstance: renderOptions.instantSearchInstance
17259
17611
  }), false);
17260
17612
  },
17261
17613
  getRenderState: function getRenderState(renderState, renderOptions) {
17262
- return _objectSpread$t(_objectSpread$t({}, renderState), {}, {
17263
- refinementList: _objectSpread$t(_objectSpread$t({}, renderState.refinementList), {}, _defineProperty$w({}, attribute, this.getWidgetRenderState(renderOptions)))
17614
+ return _objectSpread$u(_objectSpread$u({}, renderState), {}, {
17615
+ refinementList: _objectSpread$u(_objectSpread$u({}, renderState.refinementList), {}, _defineProperty$x({}, attribute, this.getWidgetRenderState(renderOptions)))
17264
17616
  });
17265
17617
  },
17266
17618
  getWidgetRenderState: function getWidgetRenderState(renderOptions) {
@@ -17350,8 +17702,8 @@
17350
17702
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
17351
17703
  var searchParameters = _ref5.searchParameters;
17352
17704
  var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);
17353
- return removeEmptyRefinementsFromUiState$4(_objectSpread$t(_objectSpread$t({}, uiState), {}, {
17354
- refinementList: _objectSpread$t(_objectSpread$t({}, uiState.refinementList), {}, _defineProperty$w({}, attribute, values))
17705
+ return removeEmptyRefinementsFromUiState$4(_objectSpread$u(_objectSpread$u({}, uiState), {}, {
17706
+ refinementList: _objectSpread$u(_objectSpread$u({}, uiState.refinementList), {}, _defineProperty$x({}, attribute, values))
17355
17707
  }), attribute);
17356
17708
  },
17357
17709
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
@@ -17370,7 +17722,7 @@
17370
17722
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
17371
17723
  if (!values) {
17372
17724
  var key = isDisjunctive ? 'disjunctiveFacetsRefinements' : 'facetsRefinements';
17373
- return withMaxValuesPerFacet.setQueryParameters(_defineProperty$w({}, key, _objectSpread$t(_objectSpread$t({}, withMaxValuesPerFacet[key]), {}, _defineProperty$w({}, attribute, []))));
17725
+ return withMaxValuesPerFacet.setQueryParameters(_defineProperty$x({}, key, _objectSpread$u(_objectSpread$u({}, withMaxValuesPerFacet[key]), {}, _defineProperty$x({}, attribute, []))));
17374
17726
  }
17375
17727
  return values.reduce(function (parameters, value) {
17376
17728
  return isDisjunctive ? parameters.addDisjunctiveFacetRefinement(attribute, value) : parameters.addFacetRefinement(attribute, value);
@@ -17396,16 +17748,16 @@
17396
17748
  return useConnector(connectRefinementList, props, additionalWidgetProperties);
17397
17749
  }
17398
17750
 
17399
- function _typeof$A(obj) {
17751
+ function _typeof$B(obj) {
17400
17752
  "@babel/helpers - typeof";
17401
17753
 
17402
- return _typeof$A = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17754
+ return _typeof$B = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17403
17755
  return typeof obj;
17404
17756
  } : function (obj) {
17405
17757
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17406
- }, _typeof$A(obj);
17758
+ }, _typeof$B(obj);
17407
17759
  }
17408
- function ownKeys$v(object, enumerableOnly) {
17760
+ function ownKeys$w(object, enumerableOnly) {
17409
17761
  var keys = Object.keys(object);
17410
17762
  if (Object.getOwnPropertySymbols) {
17411
17763
  var symbols = Object.getOwnPropertySymbols(object);
@@ -17415,19 +17767,19 @@
17415
17767
  }
17416
17768
  return keys;
17417
17769
  }
17418
- function _objectSpread$u(target) {
17770
+ function _objectSpread$v(target) {
17419
17771
  for (var i = 1; i < arguments.length; i++) {
17420
17772
  var source = null != arguments[i] ? arguments[i] : {};
17421
- i % 2 ? ownKeys$v(Object(source), !0).forEach(function (key) {
17422
- _defineProperty$x(target, key, source[key]);
17423
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$v(Object(source)).forEach(function (key) {
17773
+ i % 2 ? ownKeys$w(Object(source), !0).forEach(function (key) {
17774
+ _defineProperty$y(target, key, source[key]);
17775
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$w(Object(source)).forEach(function (key) {
17424
17776
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17425
17777
  });
17426
17778
  }
17427
17779
  return target;
17428
17780
  }
17429
- function _defineProperty$x(obj, key, value) {
17430
- key = _toPropertyKey$x(key);
17781
+ function _defineProperty$y(obj, key, value) {
17782
+ key = _toPropertyKey$y(key);
17431
17783
  if (key in obj) {
17432
17784
  Object.defineProperty(obj, key, {
17433
17785
  value: value,
@@ -17440,112 +17792,254 @@
17440
17792
  }
17441
17793
  return obj;
17442
17794
  }
17443
- function _toPropertyKey$x(arg) {
17444
- var key = _toPrimitive$x(arg, "string");
17445
- return _typeof$A(key) === "symbol" ? key : String(key);
17795
+ function _toPropertyKey$y(arg) {
17796
+ var key = _toPrimitive$y(arg, "string");
17797
+ return _typeof$B(key) === "symbol" ? key : String(key);
17446
17798
  }
17447
- function _toPrimitive$x(input, hint) {
17448
- if (_typeof$A(input) !== "object" || input === null) return input;
17799
+ function _toPrimitive$y(input, hint) {
17800
+ if (_typeof$B(input) !== "object" || input === null) return input;
17449
17801
  var prim = input[Symbol.toPrimitive];
17450
17802
  if (prim !== undefined) {
17451
17803
  var res = prim.call(input, hint || "default");
17452
- if (_typeof$A(res) !== "object") return res;
17804
+ if (_typeof$B(res) !== "object") return res;
17453
17805
  throw new TypeError("@@toPrimitive must return a primitive value.");
17454
17806
  }
17455
17807
  return (hint === "string" ? String : Number)(input);
17456
17808
  }
17457
- var withUsage$i = createDocumentationMessageGenerator({
17458
- name: 'search-box',
17809
+ var withUsage$j = createDocumentationMessageGenerator({
17810
+ name: 'related-products',
17459
17811
  connector: true
17460
17812
  });
17461
-
17462
- /**
17463
- * @typedef {Object} CustomSearchBoxWidgetParams
17464
- * @property {function(string, function(string))} [queryHook = undefined] A function that will be called every time
17465
- * a new value for the query is set. The first parameter is the query and the second is a
17466
- * function to actually trigger the search. The function takes the query as the parameter.
17467
- *
17468
- * This queryHook can be used to debounce the number of searches done from the searchBox.
17469
- */
17470
-
17471
- var defaultQueryHook = function defaultQueryHook(query, hook) {
17472
- return hook(query);
17473
- };
17474
-
17475
- /**
17476
- * **SearchBox** connector provides the logic to build a widget that will let the user search for a query.
17477
- *
17478
- * The connector provides to the rendering: `refine()` to set the query. The behaviour of this function
17479
- * may be impacted by the `queryHook` widget parameter.
17480
- */
17481
- var connectSearchBox = function connectSearchBox(renderFn) {
17813
+ var connectRelatedProducts = function connectRelatedProducts(renderFn) {
17482
17814
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
17483
- checkRendering(renderFn, withUsage$i());
17484
- return function (widgetParams) {
17815
+ checkRendering(renderFn, withUsage$j());
17816
+ return function relatedProducts(widgetParams) {
17485
17817
  var _ref = widgetParams || {},
17486
- _ref$queryHook = _ref.queryHook,
17487
- queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;
17488
- var _refine;
17489
- var _clear;
17818
+ _ref$escapeHTML = _ref.escapeHTML,
17819
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
17820
+ objectIDs = _ref.objectIDs,
17821
+ limit = _ref.limit,
17822
+ threshold = _ref.threshold,
17823
+ fallbackParameters = _ref.fallbackParameters,
17824
+ queryParameters = _ref.queryParameters,
17825
+ _ref$transformItems = _ref.transformItems,
17826
+ transformItems = _ref$transformItems === void 0 ? function (items) {
17827
+ return items;
17828
+ } : _ref$transformItems;
17829
+ if (!objectIDs || objectIDs.length === 0) {
17830
+ throw new Error(withUsage$j('The `objectIDs` option is required.'));
17831
+ }
17490
17832
  return {
17491
- $$type: 'ais.searchBox',
17833
+ dependsOn: 'recommend',
17834
+ $$type: 'ais.relatedProducts',
17492
17835
  init: function init(initOptions) {
17493
- var instantSearchInstance = initOptions.instantSearchInstance;
17494
- renderFn(_objectSpread$u(_objectSpread$u({}, this.getWidgetRenderState(initOptions)), {}, {
17495
- instantSearchInstance: instantSearchInstance
17836
+ renderFn(_objectSpread$v(_objectSpread$v({}, this.getWidgetRenderState(initOptions)), {}, {
17837
+ instantSearchInstance: initOptions.instantSearchInstance
17496
17838
  }), true);
17497
17839
  },
17498
17840
  render: function render(renderOptions) {
17499
- var instantSearchInstance = renderOptions.instantSearchInstance;
17500
- renderFn(_objectSpread$u(_objectSpread$u({}, this.getWidgetRenderState(renderOptions)), {}, {
17501
- instantSearchInstance: instantSearchInstance
17841
+ var renderState = this.getWidgetRenderState(renderOptions);
17842
+ renderFn(_objectSpread$v(_objectSpread$v({}, renderState), {}, {
17843
+ instantSearchInstance: renderOptions.instantSearchInstance
17502
17844
  }), false);
17503
17845
  },
17504
- dispose: function dispose(_ref2) {
17505
- var state = _ref2.state;
17506
- unmountFn();
17507
- return state.setQueryParameter('query', undefined);
17508
- },
17509
- getRenderState: function getRenderState(renderState, renderOptions) {
17510
- return _objectSpread$u(_objectSpread$u({}, renderState), {}, {
17511
- searchBox: this.getWidgetRenderState(renderOptions)
17512
- });
17846
+ getRenderState: function getRenderState(renderState) {
17847
+ return renderState;
17513
17848
  },
17514
- getWidgetRenderState: function getWidgetRenderState(_ref3) {
17515
- var helper = _ref3.helper,
17516
- instantSearchInstance = _ref3.instantSearchInstance,
17517
- state = _ref3.state;
17518
- if (!_refine) {
17519
- _refine = function _refine(query) {
17520
- queryHook(query, function (q) {
17521
- return helper.setQuery(q).search();
17522
- });
17523
- };
17524
- _clear = function _clear() {
17525
- helper.setQuery('').search();
17849
+ getWidgetRenderState: function getWidgetRenderState(_ref2) {
17850
+ var results = _ref2.results;
17851
+ if (results === null || results === undefined) {
17852
+ return {
17853
+ items: [],
17854
+ widgetParams: widgetParams
17526
17855
  };
17527
17856
  }
17857
+ if (escapeHTML && results.hits.length > 0) {
17858
+ results.hits = escapeHits(results.hits);
17859
+ }
17528
17860
  return {
17529
- query: state.query || '',
17530
- refine: _refine,
17531
- clear: _clear,
17532
- widgetParams: widgetParams,
17533
- isSearchStalled: instantSearchInstance.status === 'stalled'
17861
+ items: transformItems(results.hits, {
17862
+ results: results
17863
+ }),
17864
+ widgetParams: widgetParams
17534
17865
  };
17535
17866
  },
17536
- getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
17537
- var searchParameters = _ref4.searchParameters;
17538
- var query = searchParameters.query || '';
17539
- if (query === '' || uiState && uiState.query === query) {
17540
- return uiState;
17541
- }
17542
- return _objectSpread$u(_objectSpread$u({}, uiState), {}, {
17543
- query: query
17544
- });
17867
+ dispose: function dispose(_ref3) {
17868
+ var recommendState = _ref3.recommendState;
17869
+ unmountFn();
17870
+ return recommendState.removeParams(this.$$id);
17545
17871
  },
17546
- getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {
17547
- var uiState = _ref5.uiState;
17548
- return searchParameters.setQueryParameter('query', uiState.query || '');
17872
+ getWidgetParameters: function getWidgetParameters(state) {
17873
+ var _this = this;
17874
+ return objectIDs.reduce(function (acc, objectID) {
17875
+ return acc.addRelatedProducts({
17876
+ objectID: objectID,
17877
+ maxRecommendations: limit,
17878
+ threshold: threshold,
17879
+ fallbackParameters: _objectSpread$v(_objectSpread$v({}, fallbackParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
17880
+ queryParameters: _objectSpread$v(_objectSpread$v({}, queryParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
17881
+ $$id: _this.$$id
17882
+ });
17883
+ }, state.removeParams(this.$$id));
17884
+ }
17885
+ };
17886
+ };
17887
+ };
17888
+
17889
+ function useRelatedProducts(props, additionalWidgetProperties) {
17890
+ return useConnector(connectRelatedProducts, props, additionalWidgetProperties);
17891
+ }
17892
+
17893
+ function _typeof$C(obj) {
17894
+ "@babel/helpers - typeof";
17895
+
17896
+ return _typeof$C = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17897
+ return typeof obj;
17898
+ } : function (obj) {
17899
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17900
+ }, _typeof$C(obj);
17901
+ }
17902
+ function ownKeys$x(object, enumerableOnly) {
17903
+ var keys = Object.keys(object);
17904
+ if (Object.getOwnPropertySymbols) {
17905
+ var symbols = Object.getOwnPropertySymbols(object);
17906
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
17907
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17908
+ })), keys.push.apply(keys, symbols);
17909
+ }
17910
+ return keys;
17911
+ }
17912
+ function _objectSpread$w(target) {
17913
+ for (var i = 1; i < arguments.length; i++) {
17914
+ var source = null != arguments[i] ? arguments[i] : {};
17915
+ i % 2 ? ownKeys$x(Object(source), !0).forEach(function (key) {
17916
+ _defineProperty$z(target, key, source[key]);
17917
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$x(Object(source)).forEach(function (key) {
17918
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17919
+ });
17920
+ }
17921
+ return target;
17922
+ }
17923
+ function _defineProperty$z(obj, key, value) {
17924
+ key = _toPropertyKey$z(key);
17925
+ if (key in obj) {
17926
+ Object.defineProperty(obj, key, {
17927
+ value: value,
17928
+ enumerable: true,
17929
+ configurable: true,
17930
+ writable: true
17931
+ });
17932
+ } else {
17933
+ obj[key] = value;
17934
+ }
17935
+ return obj;
17936
+ }
17937
+ function _toPropertyKey$z(arg) {
17938
+ var key = _toPrimitive$z(arg, "string");
17939
+ return _typeof$C(key) === "symbol" ? key : String(key);
17940
+ }
17941
+ function _toPrimitive$z(input, hint) {
17942
+ if (_typeof$C(input) !== "object" || input === null) return input;
17943
+ var prim = input[Symbol.toPrimitive];
17944
+ if (prim !== undefined) {
17945
+ var res = prim.call(input, hint || "default");
17946
+ if (_typeof$C(res) !== "object") return res;
17947
+ throw new TypeError("@@toPrimitive must return a primitive value.");
17948
+ }
17949
+ return (hint === "string" ? String : Number)(input);
17950
+ }
17951
+ var withUsage$k = createDocumentationMessageGenerator({
17952
+ name: 'search-box',
17953
+ connector: true
17954
+ });
17955
+
17956
+ /**
17957
+ * @typedef {Object} CustomSearchBoxWidgetParams
17958
+ * @property {function(string, function(string))} [queryHook = undefined] A function that will be called every time
17959
+ * a new value for the query is set. The first parameter is the query and the second is a
17960
+ * function to actually trigger the search. The function takes the query as the parameter.
17961
+ *
17962
+ * This queryHook can be used to debounce the number of searches done from the searchBox.
17963
+ */
17964
+
17965
+ var defaultQueryHook = function defaultQueryHook(query, hook) {
17966
+ return hook(query);
17967
+ };
17968
+
17969
+ /**
17970
+ * **SearchBox** connector provides the logic to build a widget that will let the user search for a query.
17971
+ *
17972
+ * The connector provides to the rendering: `refine()` to set the query. The behaviour of this function
17973
+ * may be impacted by the `queryHook` widget parameter.
17974
+ */
17975
+ var connectSearchBox = function connectSearchBox(renderFn) {
17976
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
17977
+ checkRendering(renderFn, withUsage$k());
17978
+ return function (widgetParams) {
17979
+ var _ref = widgetParams || {},
17980
+ _ref$queryHook = _ref.queryHook,
17981
+ queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;
17982
+ var _refine;
17983
+ var _clear;
17984
+ return {
17985
+ $$type: 'ais.searchBox',
17986
+ init: function init(initOptions) {
17987
+ var instantSearchInstance = initOptions.instantSearchInstance;
17988
+ renderFn(_objectSpread$w(_objectSpread$w({}, this.getWidgetRenderState(initOptions)), {}, {
17989
+ instantSearchInstance: instantSearchInstance
17990
+ }), true);
17991
+ },
17992
+ render: function render(renderOptions) {
17993
+ var instantSearchInstance = renderOptions.instantSearchInstance;
17994
+ renderFn(_objectSpread$w(_objectSpread$w({}, this.getWidgetRenderState(renderOptions)), {}, {
17995
+ instantSearchInstance: instantSearchInstance
17996
+ }), false);
17997
+ },
17998
+ dispose: function dispose(_ref2) {
17999
+ var state = _ref2.state;
18000
+ unmountFn();
18001
+ return state.setQueryParameter('query', undefined);
18002
+ },
18003
+ getRenderState: function getRenderState(renderState, renderOptions) {
18004
+ return _objectSpread$w(_objectSpread$w({}, renderState), {}, {
18005
+ searchBox: this.getWidgetRenderState(renderOptions)
18006
+ });
18007
+ },
18008
+ getWidgetRenderState: function getWidgetRenderState(_ref3) {
18009
+ var helper = _ref3.helper,
18010
+ instantSearchInstance = _ref3.instantSearchInstance,
18011
+ state = _ref3.state;
18012
+ if (!_refine) {
18013
+ _refine = function _refine(query) {
18014
+ queryHook(query, function (q) {
18015
+ return helper.setQuery(q).search();
18016
+ });
18017
+ };
18018
+ _clear = function _clear() {
18019
+ helper.setQuery('').search();
18020
+ };
18021
+ }
18022
+ return {
18023
+ query: state.query || '',
18024
+ refine: _refine,
18025
+ clear: _clear,
18026
+ widgetParams: widgetParams,
18027
+ isSearchStalled: instantSearchInstance.status === 'stalled'
18028
+ };
18029
+ },
18030
+ getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
18031
+ var searchParameters = _ref4.searchParameters;
18032
+ var query = searchParameters.query || '';
18033
+ if (query === '' || uiState && uiState.query === query) {
18034
+ return uiState;
18035
+ }
18036
+ return _objectSpread$w(_objectSpread$w({}, uiState), {}, {
18037
+ query: query
18038
+ });
18039
+ },
18040
+ getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {
18041
+ var uiState = _ref5.uiState;
18042
+ return searchParameters.setQueryParameter('query', uiState.query || '');
17549
18043
  }
17550
18044
  };
17551
18045
  };
@@ -17555,16 +18049,16 @@
17555
18049
  return useConnector(connectSearchBox, props, additionalWidgetProperties);
17556
18050
  }
17557
18051
 
17558
- function _typeof$B(obj) {
18052
+ function _typeof$D(obj) {
17559
18053
  "@babel/helpers - typeof";
17560
18054
 
17561
- return _typeof$B = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18055
+ return _typeof$D = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17562
18056
  return typeof obj;
17563
18057
  } : function (obj) {
17564
18058
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17565
- }, _typeof$B(obj);
18059
+ }, _typeof$D(obj);
17566
18060
  }
17567
- function ownKeys$w(object, enumerableOnly) {
18061
+ function ownKeys$y(object, enumerableOnly) {
17568
18062
  var keys = Object.keys(object);
17569
18063
  if (Object.getOwnPropertySymbols) {
17570
18064
  var symbols = Object.getOwnPropertySymbols(object);
@@ -17574,19 +18068,19 @@
17574
18068
  }
17575
18069
  return keys;
17576
18070
  }
17577
- function _objectSpread$v(target) {
18071
+ function _objectSpread$x(target) {
17578
18072
  for (var i = 1; i < arguments.length; i++) {
17579
18073
  var source = null != arguments[i] ? arguments[i] : {};
17580
- i % 2 ? ownKeys$w(Object(source), !0).forEach(function (key) {
17581
- _defineProperty$y(target, key, source[key]);
17582
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$w(Object(source)).forEach(function (key) {
18074
+ i % 2 ? ownKeys$y(Object(source), !0).forEach(function (key) {
18075
+ _defineProperty$A(target, key, source[key]);
18076
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$y(Object(source)).forEach(function (key) {
17583
18077
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17584
18078
  });
17585
18079
  }
17586
18080
  return target;
17587
18081
  }
17588
- function _defineProperty$y(obj, key, value) {
17589
- key = _toPropertyKey$y(key);
18082
+ function _defineProperty$A(obj, key, value) {
18083
+ key = _toPropertyKey$A(key);
17590
18084
  if (key in obj) {
17591
18085
  Object.defineProperty(obj, key, {
17592
18086
  value: value,
@@ -17599,21 +18093,21 @@
17599
18093
  }
17600
18094
  return obj;
17601
18095
  }
17602
- function _toPropertyKey$y(arg) {
17603
- var key = _toPrimitive$y(arg, "string");
17604
- return _typeof$B(key) === "symbol" ? key : String(key);
18096
+ function _toPropertyKey$A(arg) {
18097
+ var key = _toPrimitive$A(arg, "string");
18098
+ return _typeof$D(key) === "symbol" ? key : String(key);
17605
18099
  }
17606
- function _toPrimitive$y(input, hint) {
17607
- if (_typeof$B(input) !== "object" || input === null) return input;
18100
+ function _toPrimitive$A(input, hint) {
18101
+ if (_typeof$D(input) !== "object" || input === null) return input;
17608
18102
  var prim = input[Symbol.toPrimitive];
17609
18103
  if (prim !== undefined) {
17610
18104
  var res = prim.call(input, hint || "default");
17611
- if (_typeof$B(res) !== "object") return res;
18105
+ if (_typeof$D(res) !== "object") return res;
17612
18106
  throw new TypeError("@@toPrimitive must return a primitive value.");
17613
18107
  }
17614
18108
  return (hint === "string" ? String : Number)(input);
17615
18109
  }
17616
- var withUsage$j = createDocumentationMessageGenerator({
18110
+ var withUsage$l = createDocumentationMessageGenerator({
17617
18111
  name: 'sort-by',
17618
18112
  connector: true
17619
18113
  });
@@ -17626,7 +18120,7 @@
17626
18120
 
17627
18121
  var connectSortBy = function connectSortBy(renderFn) {
17628
18122
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
17629
- checkRendering(renderFn, withUsage$j());
18123
+ checkRendering(renderFn, withUsage$l());
17630
18124
  var connectorState = {};
17631
18125
  return function (widgetParams) {
17632
18126
  var _ref = widgetParams || {},
@@ -17636,7 +18130,7 @@
17636
18130
  return x;
17637
18131
  } : _ref$transformItems;
17638
18132
  if (!Array.isArray(items)) {
17639
- throw new Error(withUsage$j('The `items` option expects an array of objects.'));
18133
+ throw new Error(withUsage$l('The `items` option expects an array of objects.'));
17640
18134
  }
17641
18135
  return {
17642
18136
  $$type: 'ais.sortBy',
@@ -17647,13 +18141,13 @@
17647
18141
  var isCurrentIndexInItems = find$1(items, function (item) {
17648
18142
  return item.value === currentIndex;
17649
18143
  });
17650
- renderFn(_objectSpread$v(_objectSpread$v({}, widgetRenderState), {}, {
18144
+ renderFn(_objectSpread$x(_objectSpread$x({}, widgetRenderState), {}, {
17651
18145
  instantSearchInstance: instantSearchInstance
17652
18146
  }), true);
17653
18147
  },
17654
18148
  render: function render(renderOptions) {
17655
18149
  var instantSearchInstance = renderOptions.instantSearchInstance;
17656
- renderFn(_objectSpread$v(_objectSpread$v({}, this.getWidgetRenderState(renderOptions)), {}, {
18150
+ renderFn(_objectSpread$x(_objectSpread$x({}, this.getWidgetRenderState(renderOptions)), {}, {
17657
18151
  instantSearchInstance: instantSearchInstance
17658
18152
  }), false);
17659
18153
  },
@@ -17663,7 +18157,7 @@
17663
18157
  return connectorState.initialIndex ? state.setIndex(connectorState.initialIndex) : state;
17664
18158
  },
17665
18159
  getRenderState: function getRenderState(renderState, renderOptions) {
17666
- return _objectSpread$v(_objectSpread$v({}, renderState), {}, {
18160
+ return _objectSpread$x(_objectSpread$x({}, renderState), {}, {
17667
18161
  sortBy: this.getWidgetRenderState(renderOptions)
17668
18162
  });
17669
18163
  },
@@ -17695,7 +18189,7 @@
17695
18189
  getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
17696
18190
  var searchParameters = _ref4.searchParameters;
17697
18191
  var currentIndex = searchParameters.index;
17698
- return _objectSpread$v(_objectSpread$v({}, uiState), {}, {
18192
+ return _objectSpread$x(_objectSpread$x({}, uiState), {}, {
17699
18193
  sortBy: currentIndex !== connectorState.initialIndex ? currentIndex : undefined
17700
18194
  });
17701
18195
  },
@@ -17711,16 +18205,16 @@
17711
18205
  return useConnector(connectSortBy, props, additionalWidgetProperties);
17712
18206
  }
17713
18207
 
17714
- function _typeof$C(obj) {
18208
+ function _typeof$E(obj) {
17715
18209
  "@babel/helpers - typeof";
17716
18210
 
17717
- return _typeof$C = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18211
+ return _typeof$E = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17718
18212
  return typeof obj;
17719
18213
  } : function (obj) {
17720
18214
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17721
- }, _typeof$C(obj);
18215
+ }, _typeof$E(obj);
17722
18216
  }
17723
- function ownKeys$x(object, enumerableOnly) {
18217
+ function ownKeys$z(object, enumerableOnly) {
17724
18218
  var keys = Object.keys(object);
17725
18219
  if (Object.getOwnPropertySymbols) {
17726
18220
  var symbols = Object.getOwnPropertySymbols(object);
@@ -17730,19 +18224,19 @@
17730
18224
  }
17731
18225
  return keys;
17732
18226
  }
17733
- function _objectSpread$w(target) {
18227
+ function _objectSpread$y(target) {
17734
18228
  for (var i = 1; i < arguments.length; i++) {
17735
18229
  var source = null != arguments[i] ? arguments[i] : {};
17736
- i % 2 ? ownKeys$x(Object(source), !0).forEach(function (key) {
17737
- _defineProperty$z(target, key, source[key]);
17738
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$x(Object(source)).forEach(function (key) {
18230
+ i % 2 ? ownKeys$z(Object(source), !0).forEach(function (key) {
18231
+ _defineProperty$B(target, key, source[key]);
18232
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$z(Object(source)).forEach(function (key) {
17739
18233
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17740
18234
  });
17741
18235
  }
17742
18236
  return target;
17743
18237
  }
17744
- function _defineProperty$z(obj, key, value) {
17745
- key = _toPropertyKey$z(key);
18238
+ function _defineProperty$B(obj, key, value) {
18239
+ key = _toPropertyKey$B(key);
17746
18240
  if (key in obj) {
17747
18241
  Object.defineProperty(obj, key, {
17748
18242
  value: value,
@@ -17755,21 +18249,21 @@
17755
18249
  }
17756
18250
  return obj;
17757
18251
  }
17758
- function _toPropertyKey$z(arg) {
17759
- var key = _toPrimitive$z(arg, "string");
17760
- return _typeof$C(key) === "symbol" ? key : String(key);
18252
+ function _toPropertyKey$B(arg) {
18253
+ var key = _toPrimitive$B(arg, "string");
18254
+ return _typeof$E(key) === "symbol" ? key : String(key);
17761
18255
  }
17762
- function _toPrimitive$z(input, hint) {
17763
- if (_typeof$C(input) !== "object" || input === null) return input;
18256
+ function _toPrimitive$B(input, hint) {
18257
+ if (_typeof$E(input) !== "object" || input === null) return input;
17764
18258
  var prim = input[Symbol.toPrimitive];
17765
18259
  if (prim !== undefined) {
17766
18260
  var res = prim.call(input, hint || "default");
17767
- if (_typeof$C(res) !== "object") return res;
18261
+ if (_typeof$E(res) !== "object") return res;
17768
18262
  throw new TypeError("@@toPrimitive must return a primitive value.");
17769
18263
  }
17770
18264
  return (hint === "string" ? String : Number)(input);
17771
18265
  }
17772
- var withUsage$k = createDocumentationMessageGenerator({
18266
+ var withUsage$m = createDocumentationMessageGenerator({
17773
18267
  name: 'stats',
17774
18268
  connector: true
17775
18269
  });
@@ -17781,19 +18275,19 @@
17781
18275
 
17782
18276
  var connectStats = function connectStats(renderFn) {
17783
18277
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
17784
- checkRendering(renderFn, withUsage$k());
18278
+ checkRendering(renderFn, withUsage$m());
17785
18279
  return function (widgetParams) {
17786
18280
  return {
17787
18281
  $$type: 'ais.stats',
17788
18282
  init: function init(initOptions) {
17789
18283
  var instantSearchInstance = initOptions.instantSearchInstance;
17790
- renderFn(_objectSpread$w(_objectSpread$w({}, this.getWidgetRenderState(initOptions)), {}, {
18284
+ renderFn(_objectSpread$y(_objectSpread$y({}, this.getWidgetRenderState(initOptions)), {}, {
17791
18285
  instantSearchInstance: instantSearchInstance
17792
18286
  }), true);
17793
18287
  },
17794
18288
  render: function render(renderOptions) {
17795
18289
  var instantSearchInstance = renderOptions.instantSearchInstance;
17796
- renderFn(_objectSpread$w(_objectSpread$w({}, this.getWidgetRenderState(renderOptions)), {}, {
18290
+ renderFn(_objectSpread$y(_objectSpread$y({}, this.getWidgetRenderState(renderOptions)), {}, {
17797
18291
  instantSearchInstance: instantSearchInstance
17798
18292
  }), false);
17799
18293
  },
@@ -17801,7 +18295,7 @@
17801
18295
  unmountFn();
17802
18296
  },
17803
18297
  getRenderState: function getRenderState(renderState, renderOptions) {
17804
- return _objectSpread$w(_objectSpread$w({}, renderState), {}, {
18298
+ return _objectSpread$y(_objectSpread$y({}, renderState), {}, {
17805
18299
  stats: this.getWidgetRenderState(renderOptions)
17806
18300
  });
17807
18301
  },
@@ -17841,16 +18335,16 @@
17841
18335
  return useConnector(connectStats, props, additionalWidgetProperties);
17842
18336
  }
17843
18337
 
17844
- function _typeof$D(obj) {
18338
+ function _typeof$F(obj) {
17845
18339
  "@babel/helpers - typeof";
17846
18340
 
17847
- return _typeof$D = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18341
+ return _typeof$F = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
17848
18342
  return typeof obj;
17849
18343
  } : function (obj) {
17850
18344
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17851
- }, _typeof$D(obj);
18345
+ }, _typeof$F(obj);
17852
18346
  }
17853
- function ownKeys$y(object, enumerableOnly) {
18347
+ function ownKeys$A(object, enumerableOnly) {
17854
18348
  var keys = Object.keys(object);
17855
18349
  if (Object.getOwnPropertySymbols) {
17856
18350
  var symbols = Object.getOwnPropertySymbols(object);
@@ -17860,19 +18354,19 @@
17860
18354
  }
17861
18355
  return keys;
17862
18356
  }
17863
- function _objectSpread$x(target) {
18357
+ function _objectSpread$z(target) {
17864
18358
  for (var i = 1; i < arguments.length; i++) {
17865
18359
  var source = null != arguments[i] ? arguments[i] : {};
17866
- i % 2 ? ownKeys$y(Object(source), !0).forEach(function (key) {
17867
- _defineProperty$A(target, key, source[key]);
17868
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$y(Object(source)).forEach(function (key) {
18360
+ i % 2 ? ownKeys$A(Object(source), !0).forEach(function (key) {
18361
+ _defineProperty$C(target, key, source[key]);
18362
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$A(Object(source)).forEach(function (key) {
17869
18363
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17870
18364
  });
17871
18365
  }
17872
18366
  return target;
17873
18367
  }
17874
- function _defineProperty$A(obj, key, value) {
17875
- key = _toPropertyKey$A(key);
18368
+ function _defineProperty$C(obj, key, value) {
18369
+ key = _toPropertyKey$C(key);
17876
18370
  if (key in obj) {
17877
18371
  Object.defineProperty(obj, key, {
17878
18372
  value: value,
@@ -17885,16 +18379,16 @@
17885
18379
  }
17886
18380
  return obj;
17887
18381
  }
17888
- function _toPropertyKey$A(arg) {
17889
- var key = _toPrimitive$A(arg, "string");
17890
- return _typeof$D(key) === "symbol" ? key : String(key);
18382
+ function _toPropertyKey$C(arg) {
18383
+ var key = _toPrimitive$C(arg, "string");
18384
+ return _typeof$F(key) === "symbol" ? key : String(key);
17891
18385
  }
17892
- function _toPrimitive$A(input, hint) {
17893
- if (_typeof$D(input) !== "object" || input === null) return input;
18386
+ function _toPrimitive$C(input, hint) {
18387
+ if (_typeof$F(input) !== "object" || input === null) return input;
17894
18388
  var prim = input[Symbol.toPrimitive];
17895
18389
  if (prim !== undefined) {
17896
18390
  var res = prim.call(input, hint || "default");
17897
- if (_typeof$D(res) !== "object") return res;
18391
+ if (_typeof$F(res) !== "object") return res;
17898
18392
  throw new TypeError("@@toPrimitive must return a primitive value.");
17899
18393
  }
17900
18394
  return (hint === "string" ? String : Number)(input);
@@ -17948,7 +18442,7 @@
17948
18442
  function _arrayWithHoles$b(arr) {
17949
18443
  if (Array.isArray(arr)) return arr;
17950
18444
  }
17951
- var withUsage$l = createDocumentationMessageGenerator({
18445
+ var withUsage$n = createDocumentationMessageGenerator({
17952
18446
  name: 'toggle-refinement',
17953
18447
  connector: true
17954
18448
  });
@@ -18008,7 +18502,7 @@
18008
18502
  */
18009
18503
  var connectToggleRefinement = function connectToggleRefinement(renderFn) {
18010
18504
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
18011
- checkRendering(renderFn, withUsage$l());
18505
+ checkRendering(renderFn, withUsage$n());
18012
18506
  return function (widgetParams) {
18013
18507
  var _ref2 = widgetParams || {},
18014
18508
  attribute = _ref2.attribute,
@@ -18016,7 +18510,7 @@
18016
18510
  userOn = _ref2$on === void 0 ? true : _ref2$on,
18017
18511
  userOff = _ref2.off;
18018
18512
  if (!attribute) {
18019
- throw new Error(withUsage$l('The `attribute` option is required.'));
18513
+ throw new Error(withUsage$n('The `attribute` option is required.'));
18020
18514
  }
18021
18515
  var hasAnOffValue = userOff !== undefined;
18022
18516
  // even though facet values can be numbers and boolean,
@@ -18086,13 +18580,13 @@
18086
18580
  $$type: $$type$3,
18087
18581
  init: function init(initOptions) {
18088
18582
  var instantSearchInstance = initOptions.instantSearchInstance;
18089
- renderFn(_objectSpread$x(_objectSpread$x({}, this.getWidgetRenderState(initOptions)), {}, {
18583
+ renderFn(_objectSpread$z(_objectSpread$z({}, this.getWidgetRenderState(initOptions)), {}, {
18090
18584
  instantSearchInstance: instantSearchInstance
18091
18585
  }), true);
18092
18586
  },
18093
18587
  render: function render(renderOptions) {
18094
18588
  var instantSearchInstance = renderOptions.instantSearchInstance;
18095
- renderFn(_objectSpread$x(_objectSpread$x({}, this.getWidgetRenderState(renderOptions)), {}, {
18589
+ renderFn(_objectSpread$z(_objectSpread$z({}, this.getWidgetRenderState(renderOptions)), {}, {
18096
18590
  instantSearchInstance: instantSearchInstance
18097
18591
  }), false);
18098
18592
  },
@@ -18102,8 +18596,8 @@
18102
18596
  return state.removeDisjunctiveFacet(attribute);
18103
18597
  },
18104
18598
  getRenderState: function getRenderState(renderState, renderOptions) {
18105
- return _objectSpread$x(_objectSpread$x({}, renderState), {}, {
18106
- toggleRefinement: _objectSpread$x(_objectSpread$x({}, renderState.toggleRefinement), {}, _defineProperty$A({}, attribute, this.getWidgetRenderState(renderOptions)))
18599
+ return _objectSpread$z(_objectSpread$z({}, renderState), {}, {
18600
+ toggleRefinement: _objectSpread$z(_objectSpread$z({}, renderState.toggleRefinement), {}, _defineProperty$C({}, attribute, this.getWidgetRenderState(renderOptions)))
18107
18601
  });
18108
18602
  },
18109
18603
  getWidgetRenderState: function getWidgetRenderState(_ref6) {
@@ -18204,8 +18698,8 @@
18204
18698
  (_uiState$toggle = uiState.toggle) === null || _uiState$toggle === void 0 ? true : delete _uiState$toggle[attribute];
18205
18699
  return uiState;
18206
18700
  }
18207
- return _objectSpread$x(_objectSpread$x({}, uiState), {}, {
18208
- toggle: _objectSpread$x(_objectSpread$x({}, uiState.toggle), {}, _defineProperty$A({}, attribute, isRefined))
18701
+ return _objectSpread$z(_objectSpread$z({}, uiState), {}, {
18702
+ toggle: _objectSpread$z(_objectSpread$z({}, uiState.toggle), {}, _defineProperty$C({}, attribute, isRefined))
18209
18703
  });
18210
18704
  },
18211
18705
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref11) {
@@ -18236,7 +18730,7 @@
18236
18730
 
18237
18731
  // It's not refined without an `off` value
18238
18732
  return withFacetConfiguration.setQueryParameters({
18239
- disjunctiveFacetsRefinements: _objectSpread$x(_objectSpread$x({}, searchParameters.disjunctiveFacetsRefinements), {}, _defineProperty$A({}, attribute, []))
18733
+ disjunctiveFacetsRefinements: _objectSpread$z(_objectSpread$z({}, searchParameters.disjunctiveFacetsRefinements), {}, _defineProperty$C({}, attribute, []))
18240
18734
  });
18241
18735
  }
18242
18736
  };
@@ -18247,6 +18741,286 @@
18247
18741
  return useConnector(connectToggleRefinement, props, additionalWidgetProperties);
18248
18742
  }
18249
18743
 
18744
+ function _typeof$G(obj) {
18745
+ "@babel/helpers - typeof";
18746
+
18747
+ return _typeof$G = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18748
+ return typeof obj;
18749
+ } : function (obj) {
18750
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18751
+ }, _typeof$G(obj);
18752
+ }
18753
+ function ownKeys$B(object, enumerableOnly) {
18754
+ var keys = Object.keys(object);
18755
+ if (Object.getOwnPropertySymbols) {
18756
+ var symbols = Object.getOwnPropertySymbols(object);
18757
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
18758
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18759
+ })), keys.push.apply(keys, symbols);
18760
+ }
18761
+ return keys;
18762
+ }
18763
+ function _objectSpread$A(target) {
18764
+ for (var i = 1; i < arguments.length; i++) {
18765
+ var source = null != arguments[i] ? arguments[i] : {};
18766
+ i % 2 ? ownKeys$B(Object(source), !0).forEach(function (key) {
18767
+ _defineProperty$D(target, key, source[key]);
18768
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$B(Object(source)).forEach(function (key) {
18769
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
18770
+ });
18771
+ }
18772
+ return target;
18773
+ }
18774
+ function _defineProperty$D(obj, key, value) {
18775
+ key = _toPropertyKey$D(key);
18776
+ if (key in obj) {
18777
+ Object.defineProperty(obj, key, {
18778
+ value: value,
18779
+ enumerable: true,
18780
+ configurable: true,
18781
+ writable: true
18782
+ });
18783
+ } else {
18784
+ obj[key] = value;
18785
+ }
18786
+ return obj;
18787
+ }
18788
+ function _toPropertyKey$D(arg) {
18789
+ var key = _toPrimitive$D(arg, "string");
18790
+ return _typeof$G(key) === "symbol" ? key : String(key);
18791
+ }
18792
+ function _toPrimitive$D(input, hint) {
18793
+ if (_typeof$G(input) !== "object" || input === null) return input;
18794
+ var prim = input[Symbol.toPrimitive];
18795
+ if (prim !== undefined) {
18796
+ var res = prim.call(input, hint || "default");
18797
+ if (_typeof$G(res) !== "object") return res;
18798
+ throw new TypeError("@@toPrimitive must return a primitive value.");
18799
+ }
18800
+ return (hint === "string" ? String : Number)(input);
18801
+ }
18802
+ var withUsage$o = createDocumentationMessageGenerator({
18803
+ name: 'trending-items',
18804
+ connector: true
18805
+ });
18806
+ var connectTrendingItems = function connectTrendingItems(renderFn) {
18807
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
18808
+ checkRendering(renderFn, withUsage$o());
18809
+ return function trendingItems(widgetParams) {
18810
+ var _ref = widgetParams || {},
18811
+ facetName = _ref.facetName,
18812
+ facetValue = _ref.facetValue,
18813
+ limit = _ref.limit,
18814
+ threshold = _ref.threshold,
18815
+ fallbackParameters = _ref.fallbackParameters,
18816
+ queryParameters = _ref.queryParameters,
18817
+ _ref$escapeHTML = _ref.escapeHTML,
18818
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
18819
+ _ref$transformItems = _ref.transformItems,
18820
+ transformItems = _ref$transformItems === void 0 ? function (items) {
18821
+ return items;
18822
+ } : _ref$transformItems;
18823
+ return {
18824
+ dependsOn: 'recommend',
18825
+ $$type: 'ais.trendingItems',
18826
+ init: function init(initOptions) {
18827
+ renderFn(_objectSpread$A(_objectSpread$A({}, this.getWidgetRenderState(initOptions)), {}, {
18828
+ instantSearchInstance: initOptions.instantSearchInstance
18829
+ }), true);
18830
+ },
18831
+ render: function render(renderOptions) {
18832
+ var renderState = this.getWidgetRenderState(renderOptions);
18833
+ renderFn(_objectSpread$A(_objectSpread$A({}, renderState), {}, {
18834
+ instantSearchInstance: renderOptions.instantSearchInstance
18835
+ }), false);
18836
+ },
18837
+ getRenderState: function getRenderState(renderState) {
18838
+ return renderState;
18839
+ },
18840
+ getWidgetRenderState: function getWidgetRenderState(_ref2) {
18841
+ var results = _ref2.results;
18842
+ if (results === null || results === undefined) {
18843
+ return {
18844
+ items: [],
18845
+ widgetParams: widgetParams
18846
+ };
18847
+ }
18848
+ if (escapeHTML && results.hits.length > 0) {
18849
+ results.hits = escapeHits(results.hits);
18850
+ }
18851
+ return {
18852
+ items: transformItems(results.hits, {
18853
+ results: results
18854
+ }),
18855
+ widgetParams: widgetParams
18856
+ };
18857
+ },
18858
+ dispose: function dispose(_ref3) {
18859
+ var recommendState = _ref3.recommendState;
18860
+ unmountFn();
18861
+ return recommendState.removeParams(this.$$id);
18862
+ },
18863
+ getWidgetParameters: function getWidgetParameters(state) {
18864
+ return state.removeParams(this.$$id).addTrendingItems({
18865
+ facetName: facetName,
18866
+ facetValue: facetValue,
18867
+ maxRecommendations: limit,
18868
+ threshold: threshold,
18869
+ fallbackParameters: _objectSpread$A(_objectSpread$A({}, fallbackParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
18870
+ queryParameters: _objectSpread$A(_objectSpread$A({}, queryParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
18871
+ $$id: this.$$id
18872
+ });
18873
+ }
18874
+ };
18875
+ };
18876
+ };
18877
+
18878
+ function useTrendingItems(props, additionalWidgetProperties) {
18879
+ return useConnector(connectTrendingItems, props, additionalWidgetProperties);
18880
+ }
18881
+
18882
+ function _typeof$H(obj) {
18883
+ "@babel/helpers - typeof";
18884
+
18885
+ return _typeof$H = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18886
+ return typeof obj;
18887
+ } : function (obj) {
18888
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18889
+ }, _typeof$H(obj);
18890
+ }
18891
+ function ownKeys$C(object, enumerableOnly) {
18892
+ var keys = Object.keys(object);
18893
+ if (Object.getOwnPropertySymbols) {
18894
+ var symbols = Object.getOwnPropertySymbols(object);
18895
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
18896
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
18897
+ })), keys.push.apply(keys, symbols);
18898
+ }
18899
+ return keys;
18900
+ }
18901
+ function _objectSpread$B(target) {
18902
+ for (var i = 1; i < arguments.length; i++) {
18903
+ var source = null != arguments[i] ? arguments[i] : {};
18904
+ i % 2 ? ownKeys$C(Object(source), !0).forEach(function (key) {
18905
+ _defineProperty$E(target, key, source[key]);
18906
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$C(Object(source)).forEach(function (key) {
18907
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
18908
+ });
18909
+ }
18910
+ return target;
18911
+ }
18912
+ function _defineProperty$E(obj, key, value) {
18913
+ key = _toPropertyKey$E(key);
18914
+ if (key in obj) {
18915
+ Object.defineProperty(obj, key, {
18916
+ value: value,
18917
+ enumerable: true,
18918
+ configurable: true,
18919
+ writable: true
18920
+ });
18921
+ } else {
18922
+ obj[key] = value;
18923
+ }
18924
+ return obj;
18925
+ }
18926
+ function _toPropertyKey$E(arg) {
18927
+ var key = _toPrimitive$E(arg, "string");
18928
+ return _typeof$H(key) === "symbol" ? key : String(key);
18929
+ }
18930
+ function _toPrimitive$E(input, hint) {
18931
+ if (_typeof$H(input) !== "object" || input === null) return input;
18932
+ var prim = input[Symbol.toPrimitive];
18933
+ if (prim !== undefined) {
18934
+ var res = prim.call(input, hint || "default");
18935
+ if (_typeof$H(res) !== "object") return res;
18936
+ throw new TypeError("@@toPrimitive must return a primitive value.");
18937
+ }
18938
+ return (hint === "string" ? String : Number)(input);
18939
+ }
18940
+ var withUsage$p = createDocumentationMessageGenerator({
18941
+ name: 'looking-similar',
18942
+ connector: true
18943
+ });
18944
+ var connectLookingSimilar = function connectLookingSimilar(renderFn) {
18945
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
18946
+ checkRendering(renderFn, withUsage$p());
18947
+ return function LookingSimilar(widgetParams) {
18948
+ var _ref = widgetParams || {},
18949
+ _ref$escapeHTML = _ref.escapeHTML,
18950
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
18951
+ objectIDs = _ref.objectIDs,
18952
+ limit = _ref.limit,
18953
+ threshold = _ref.threshold,
18954
+ fallbackParameters = _ref.fallbackParameters,
18955
+ queryParameters = _ref.queryParameters,
18956
+ _ref$transformItems = _ref.transformItems,
18957
+ transformItems = _ref$transformItems === void 0 ? function (items) {
18958
+ return items;
18959
+ } : _ref$transformItems;
18960
+ if (!objectIDs || objectIDs.length === 0) {
18961
+ throw new Error(withUsage$p('The `objectIDs` option is required.'));
18962
+ }
18963
+ return {
18964
+ dependsOn: 'recommend',
18965
+ $$type: 'ais.lookingSimilar',
18966
+ init: function init(initOptions) {
18967
+ renderFn(_objectSpread$B(_objectSpread$B({}, this.getWidgetRenderState(initOptions)), {}, {
18968
+ instantSearchInstance: initOptions.instantSearchInstance
18969
+ }), true);
18970
+ },
18971
+ render: function render(renderOptions) {
18972
+ var renderState = this.getWidgetRenderState(renderOptions);
18973
+ renderFn(_objectSpread$B(_objectSpread$B({}, renderState), {}, {
18974
+ instantSearchInstance: renderOptions.instantSearchInstance
18975
+ }), false);
18976
+ },
18977
+ getRenderState: function getRenderState(renderState) {
18978
+ return renderState;
18979
+ },
18980
+ getWidgetRenderState: function getWidgetRenderState(_ref2) {
18981
+ var results = _ref2.results;
18982
+ if (results === null || results === undefined) {
18983
+ return {
18984
+ items: [],
18985
+ widgetParams: widgetParams
18986
+ };
18987
+ }
18988
+ if (escapeHTML && results.hits.length > 0) {
18989
+ results.hits = escapeHits(results.hits);
18990
+ }
18991
+ return {
18992
+ items: transformItems(results.hits, {
18993
+ results: results
18994
+ }),
18995
+ widgetParams: widgetParams
18996
+ };
18997
+ },
18998
+ dispose: function dispose(_ref3) {
18999
+ var recommendState = _ref3.recommendState;
19000
+ unmountFn();
19001
+ return recommendState.removeParams(this.$$id);
19002
+ },
19003
+ getWidgetParameters: function getWidgetParameters(state) {
19004
+ var _this = this;
19005
+ return objectIDs.reduce(function (acc, objectID) {
19006
+ return acc.addLookingSimilar({
19007
+ objectID: objectID,
19008
+ maxRecommendations: limit,
19009
+ threshold: threshold,
19010
+ fallbackParameters: _objectSpread$B(_objectSpread$B({}, fallbackParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
19011
+ queryParameters: _objectSpread$B(_objectSpread$B({}, queryParameters), escapeHTML ? TAG_PLACEHOLDER : {}),
19012
+ $$id: _this.$$id
19013
+ });
19014
+ }, state.removeParams(this.$$id));
19015
+ }
19016
+ };
19017
+ };
19018
+ };
19019
+
19020
+ function useLookingSimilar(props, additionalWidgetProperties) {
19021
+ return useConnector(connectLookingSimilar, props, additionalWidgetProperties);
19022
+ }
19023
+
18250
19024
  function useSearchResults() {
18251
19025
  var search = useInstantSearchContext();
18252
19026
  var searchIndex = useIndexContext();
@@ -18409,16 +19183,16 @@
18409
19183
  return promise;
18410
19184
  }
18411
19185
 
18412
- function _typeof$E(obj) {
19186
+ function _typeof$I(obj) {
18413
19187
  "@babel/helpers - typeof";
18414
19188
 
18415
- return _typeof$E = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
19189
+ return _typeof$I = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
18416
19190
  return typeof obj;
18417
19191
  } : function (obj) {
18418
19192
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18419
- }, _typeof$E(obj);
19193
+ }, _typeof$I(obj);
18420
19194
  }
18421
- function ownKeys$z(object, enumerableOnly) {
19195
+ function ownKeys$D(object, enumerableOnly) {
18422
19196
  var keys = Object.keys(object);
18423
19197
  if (Object.getOwnPropertySymbols) {
18424
19198
  var symbols = Object.getOwnPropertySymbols(object);
@@ -18428,19 +19202,19 @@
18428
19202
  }
18429
19203
  return keys;
18430
19204
  }
18431
- function _objectSpread$y(target) {
19205
+ function _objectSpread$C(target) {
18432
19206
  for (var i = 1; i < arguments.length; i++) {
18433
19207
  var source = null != arguments[i] ? arguments[i] : {};
18434
- i % 2 ? ownKeys$z(Object(source), !0).forEach(function (key) {
18435
- _defineProperty$B(target, key, source[key]);
18436
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$z(Object(source)).forEach(function (key) {
19208
+ i % 2 ? ownKeys$D(Object(source), !0).forEach(function (key) {
19209
+ _defineProperty$F(target, key, source[key]);
19210
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$D(Object(source)).forEach(function (key) {
18437
19211
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
18438
19212
  });
18439
19213
  }
18440
19214
  return target;
18441
19215
  }
18442
- function _defineProperty$B(obj, key, value) {
18443
- key = _toPropertyKey$B(key);
19216
+ function _defineProperty$F(obj, key, value) {
19217
+ key = _toPropertyKey$F(key);
18444
19218
  if (key in obj) {
18445
19219
  Object.defineProperty(obj, key, {
18446
19220
  value: value,
@@ -18453,16 +19227,16 @@
18453
19227
  }
18454
19228
  return obj;
18455
19229
  }
18456
- function _toPropertyKey$B(arg) {
18457
- var key = _toPrimitive$B(arg, "string");
18458
- return _typeof$E(key) === "symbol" ? key : String(key);
19230
+ function _toPropertyKey$F(arg) {
19231
+ var key = _toPrimitive$F(arg, "string");
19232
+ return _typeof$I(key) === "symbol" ? key : String(key);
18459
19233
  }
18460
- function _toPrimitive$B(input, hint) {
18461
- if (_typeof$E(input) !== "object" || input === null) return input;
19234
+ function _toPrimitive$F(input, hint) {
19235
+ if (_typeof$I(input) !== "object" || input === null) return input;
18462
19236
  var prim = input[Symbol.toPrimitive];
18463
19237
  if (prim !== undefined) {
18464
19238
  var res = prim.call(input, hint || "default");
18465
- if (_typeof$E(res) !== "object") return res;
19239
+ if (_typeof$I(res) !== "object") return res;
18466
19240
  throw new TypeError("@@toPrimitive must return a primitive value.");
18467
19241
  }
18468
19242
  return (hint === "string" ? String : Number)(input);
@@ -18526,10 +19300,10 @@
18526
19300
  var searchResults = widget.getResults();
18527
19301
  if (searchResults) {
18528
19302
  var requestParams = requestParamsList === null || requestParamsList === void 0 ? void 0 : requestParamsList[requestParamsIndex++];
18529
- initialResults[widget.getIndexId()] = _objectSpread$y({
19303
+ initialResults[widget.getIndexId()] = _objectSpread$C({
18530
19304
  // We convert the Helper state to a plain object to pass parsable data
18531
19305
  // structures from server to client.
18532
- state: _objectSpread$y({}, searchResults._state),
19306
+ state: _objectSpread$C({}, searchResults._state),
18533
19307
  results: searchResults._rawResults
18534
19308
  }, requestParams && {
18535
19309
  requestParams: requestParams
@@ -18639,6 +19413,7 @@
18639
19413
  exports.useConnector = useConnector;
18640
19414
  exports.useCurrentRefinements = useCurrentRefinements;
18641
19415
  exports.useDynamicWidgets = useDynamicWidgets;
19416
+ exports.useFrequentlyBoughtTogether = useFrequentlyBoughtTogether;
18642
19417
  exports.useGeoSearch = useGeoSearch;
18643
19418
  exports.useHierarchicalMenu = useHierarchicalMenu;
18644
19419
  exports.useHits = useHits;
@@ -18646,6 +19421,7 @@
18646
19421
  exports.useInfiniteHits = useInfiniteHits;
18647
19422
  exports.useInstantSearch = useInstantSearch;
18648
19423
  exports.useInstantSearchContext = useInstantSearchContext;
19424
+ exports.useLookingSimilar = useLookingSimilar;
18649
19425
  exports.useMenu = useMenu;
18650
19426
  exports.useNumericMenu = useNumericMenu;
18651
19427
  exports.usePagination = usePagination;
@@ -18654,10 +19430,12 @@
18654
19430
  exports.useRSCContext = useRSCContext;
18655
19431
  exports.useRange = useRange;
18656
19432
  exports.useRefinementList = useRefinementList;
19433
+ exports.useRelatedProducts = useRelatedProducts;
18657
19434
  exports.useSearchBox = useSearchBox;
18658
19435
  exports.useSortBy = useSortBy;
18659
19436
  exports.useStats = useStats;
18660
19437
  exports.useToggleRefinement = useToggleRefinement;
19438
+ exports.useTrendingItems = useTrendingItems;
18661
19439
  exports.version = version;
18662
19440
  exports.wrapPromiseWithState = wrapPromiseWithState;
18663
19441