instantsearch.js 4.83.0 → 4.84.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.
@@ -1,4 +1,4 @@
1
- /*! InstantSearch.js 4.83.0 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
1
+ /*! InstantSearch.js 4.84.0 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -15936,6 +15936,12 @@
15936
15936
  helper: helper
15937
15937
  })));
15938
15938
  },
15939
+ scheduleLocalSearch: defer(function () {
15940
+ if (isolated) {
15941
+ var _helper2;
15942
+ (_helper2 = helper) === null || _helper2 === void 0 ? void 0 : _helper2.search();
15943
+ }
15944
+ }),
15939
15945
  getWidgets: function getWidgets() {
15940
15946
  return localWidgets;
15941
15947
  },
@@ -16001,8 +16007,7 @@
16001
16007
  }
16002
16008
  });
16003
16009
  if (isolated) {
16004
- var _helper2;
16005
- (_helper2 = helper) === null || _helper2 === void 0 ? void 0 : _helper2.search();
16010
+ this.scheduleLocalSearch();
16006
16011
  } else {
16007
16012
  localInstantSearchInstance.scheduleSearch();
16008
16013
  }
@@ -16081,8 +16086,7 @@
16081
16086
  helper.recommendState = cleanedRecommendState;
16082
16087
  if (localWidgets.length) {
16083
16088
  if (isolated) {
16084
- var _helper3;
16085
- (_helper3 = helper) === null || _helper3 === void 0 ? void 0 : _helper3.search();
16089
+ this.scheduleLocalSearch();
16086
16090
  } else {
16087
16091
  localInstantSearchInstance.scheduleSearch();
16088
16092
  }
@@ -16336,7 +16340,7 @@
16336
16340
  },
16337
16341
  dispose: function dispose() {
16338
16342
  var _this5 = this,
16339
- _helper4,
16343
+ _helper3,
16340
16344
  _derivedHelper3;
16341
16345
  localWidgets.forEach(function (widget) {
16342
16346
  if (widget.dispose && helper) {
@@ -16356,7 +16360,7 @@
16356
16360
  });
16357
16361
  localInstantSearchInstance = null;
16358
16362
  localParent = null;
16359
- (_helper4 = helper) === null || _helper4 === void 0 ? void 0 : _helper4.removeAllListeners();
16363
+ (_helper3 = helper) === null || _helper3 === void 0 ? void 0 : _helper3.removeAllListeners();
16360
16364
  helper = null;
16361
16365
  (_derivedHelper3 = derivedHelper) === null || _derivedHelper3 === void 0 ? void 0 : _derivedHelper3.detach();
16362
16366
  derivedHelper = null;
@@ -16482,7 +16486,7 @@
16482
16486
  };
16483
16487
  }
16484
16488
 
16485
- var version$1 = '4.83.0';
16489
+ var version$1 = '4.84.0';
16486
16490
 
16487
16491
  var withUsage$v = createDocumentationMessageGenerator({
16488
16492
  name: 'instantsearch'
@@ -17498,6 +17502,7 @@
17498
17502
  var createElement = _ref.createElement;
17499
17503
  return function AutocompleteRecentSearch(_ref2) {
17500
17504
  var item = _ref2.item,
17505
+ children = _ref2.children,
17501
17506
  onSelect = _ref2.onSelect,
17502
17507
  onRemoveRecentSearch = _ref2.onRemoveRecentSearch,
17503
17508
  _ref2$classNames = _ref2.classNames,
@@ -17513,7 +17518,7 @@
17513
17518
  createElement: createElement
17514
17519
  })), createElement("div", {
17515
17520
  className: cx('ais-AutocompleteItemContentBody', 'ais-AutocompleteRecentSearchItemContentBody', classNames.content)
17516
- }, item.query)), createElement("div", {
17521
+ }, children)), createElement("div", {
17517
17522
  className: cx('ais-AutocompleteItemActions', 'ais-AutocompleteRecentSearchItemActions', classNames.actions)
17518
17523
  }, createElement("button", {
17519
17524
  className: cx('ais-AutocompleteItemActionButton', 'ais-AutocompleteRecentSearchItemDeleteButton', classNames.deleteButton),
@@ -17535,6 +17540,7 @@
17535
17540
  onClear = _ref2.onClear,
17536
17541
  query = _ref2.query,
17537
17542
  isSearchStalled = _ref2.isSearchStalled;
17543
+ var inputRef = inputProps.ref;
17538
17544
  return createElement("form", {
17539
17545
  className: "ais-AutocompleteForm",
17540
17546
  action: "",
@@ -17542,6 +17548,10 @@
17542
17548
  role: "search",
17543
17549
  onSubmit: function onSubmit(e) {
17544
17550
  return e.preventDefault();
17551
+ },
17552
+ onReset: function onReset() {
17553
+ var _inputRef$current;
17554
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
17545
17555
  }
17546
17556
  }, createElement("div", {
17547
17557
  className: "ais-AutocompleteInputWrapperPrefix"
@@ -17593,7 +17603,7 @@
17593
17603
  function createAutocompleteSuggestionComponent(_ref) {
17594
17604
  var createElement = _ref.createElement;
17595
17605
  return function AutocompleteSuggestion(_ref2) {
17596
- var item = _ref2.item,
17606
+ var children = _ref2.children,
17597
17607
  onSelect = _ref2.onSelect,
17598
17608
  _ref2$classNames = _ref2.classNames,
17599
17609
  classNames = _ref2$classNames === void 0 ? {} : _ref2$classNames;
@@ -17608,7 +17618,7 @@
17608
17618
  createElement: createElement
17609
17619
  })), createElement("div", {
17610
17620
  className: cx('ais-AutocompleteItemContentBody', 'ais-AutocompleteSuggestionItemContentBody', classNames.content)
17611
- }, item.query)));
17621
+ }, children)));
17612
17622
  };
17613
17623
  }
17614
17624
 
@@ -17624,6 +17634,7 @@
17624
17634
  onRefine = _ref2.onRefine,
17625
17635
  globalOnSelect = _ref2.onSelect;
17626
17636
  var getElementId = createGetElementId(useId());
17637
+ var inputRef = useRef(null);
17627
17638
  var rootRef = useRef(null);
17628
17639
  var _useState = useState(false),
17629
17640
  _useState2 = _slicedToArray$1(_useState, 2),
@@ -17655,7 +17666,7 @@
17655
17666
  document.body.removeEventListener('click', onBodyClick);
17656
17667
  };
17657
17668
  }, [rootRef]);
17658
- var getNextActiveDescendent = function getNextActiveDescendent(key) {
17669
+ var getNextActiveDescendant = function getNextActiveDescendant(key) {
17659
17670
  switch (key) {
17660
17671
  case 'ArrowLeft':
17661
17672
  case 'ArrowUp':
@@ -17674,11 +17685,21 @@
17674
17685
  }
17675
17686
  };
17676
17687
  var submit = function submit() {
17677
- var actualActiveDescendant = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeDescendant;
17678
- setIsOpen(false);
17679
- if (actualActiveDescendant && items.has(actualActiveDescendant)) {
17688
+ var _override$activeDesce;
17689
+ var override = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17690
+ if (isOpen) {
17691
+ setIsOpen(false);
17692
+ } else {
17693
+ var _inputRef$current;
17694
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
17695
+ }
17696
+ var actualDescendant = (_override$activeDesce = override.activeDescendant) !== null && _override$activeDesce !== void 0 ? _override$activeDesce : activeDescendant;
17697
+ if (!actualDescendant && override.query) {
17698
+ onRefine(override.query);
17699
+ }
17700
+ if (actualDescendant && items.has(actualDescendant)) {
17680
17701
  var _getQuery;
17681
- var _ref3 = items.get(actualActiveDescendant),
17702
+ var _ref3 = items.get(actualDescendant),
17682
17703
  _item = _ref3.item,
17683
17704
  _ref3$config = _ref3.config,
17684
17705
  indexOnSelect = _ref3$config.onSelect,
@@ -17700,6 +17721,7 @@
17700
17721
  getInputProps: function getInputProps() {
17701
17722
  return {
17702
17723
  id: getElementId('input'),
17724
+ ref: inputRef,
17703
17725
  role: 'combobox',
17704
17726
  'aria-autocomplete': 'list',
17705
17727
  'aria-expanded': isOpen,
@@ -17710,33 +17732,42 @@
17710
17732
  return setIsOpen(true);
17711
17733
  },
17712
17734
  onKeyDown: function onKeyDown(event) {
17713
- if (event.key === 'Escape') {
17714
- setActiveDescendant(undefined);
17715
- setIsOpen(false);
17716
- return;
17717
- }
17718
17735
  switch (event.key) {
17736
+ case 'Escape':
17737
+ {
17738
+ if (isOpen) {
17739
+ setIsOpen(false);
17740
+ event.preventDefault();
17741
+ } else {
17742
+ setActiveDescendant(undefined);
17743
+ }
17744
+ break;
17745
+ }
17719
17746
  case 'ArrowLeft':
17720
17747
  case 'ArrowUp':
17721
17748
  case 'ArrowRight':
17722
17749
  case 'ArrowDown':
17723
17750
  {
17724
17751
  var _document$getElementB;
17725
- var nextActiveDescendent = getNextActiveDescendent(event.key);
17726
- setActiveDescendant(nextActiveDescendent);
17727
- (_document$getElementB = document.getElementById(nextActiveDescendent)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView(false);
17752
+ setIsOpen(true);
17753
+ var nextActiveDescendant = getNextActiveDescendant(event.key);
17754
+ setActiveDescendant(nextActiveDescendant);
17755
+ (_document$getElementB = document.getElementById(nextActiveDescendant)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView(false);
17728
17756
  event.preventDefault();
17729
17757
  break;
17730
17758
  }
17731
17759
  case 'Enter':
17732
17760
  {
17733
- submit();
17761
+ submit({
17762
+ query: event.target.value
17763
+ });
17734
17764
  break;
17735
17765
  }
17736
17766
  case 'Tab':
17737
17767
  setIsOpen(false);
17738
17768
  break;
17739
17769
  default:
17770
+ setIsOpen(true);
17740
17771
  return;
17741
17772
  }
17742
17773
  },
@@ -17764,7 +17795,9 @@
17764
17795
  role: 'row',
17765
17796
  'aria-selected': id === activeDescendant,
17766
17797
  onSelect: function onSelect() {
17767
- return submit(id);
17798
+ return submit({
17799
+ activeDescendant: id
17800
+ });
17768
17801
  }
17769
17802
  };
17770
17803
  },
@@ -17905,7 +17938,13 @@
17905
17938
  return {
17906
17939
  objectID: value,
17907
17940
  query: value,
17908
- __indexName: 'recent-searches'
17941
+ __indexName: 'recent-searches',
17942
+ _highlightResult: getHighlightedAttribute({
17943
+ item: {
17944
+ query: value
17945
+ },
17946
+ query: query || ''
17947
+ })
17909
17948
  };
17910
17949
  });
17911
17950
  var indicesForPropGetters = _toConsumableArray$1(indices);
@@ -17941,6 +17980,24 @@
17941
17980
  return false;
17942
17981
  }
17943
17982
  }
17983
+ function getHighlightedAttribute(_ref3) {
17984
+ var item = _ref3.item,
17985
+ query = _ref3.query;
17986
+ if (!query.trim().length) {
17987
+ return {
17988
+ query: {
17989
+ matchLevel: 'none'
17990
+ }
17991
+ };
17992
+ }
17993
+ return {
17994
+ query: {
17995
+ value: item.query.replace(new RegExp(query.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'), 'gi'), function (match) {
17996
+ return "<mark>".concat(match, "</mark>");
17997
+ })
17998
+ }
17999
+ };
18000
+ }
17944
18001
  function getLocalStorage() {
17945
18002
  var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LOCAL_STORAGE_KEY;
17946
18003
  if (!isLocalStorageSupported()) {
@@ -17965,10 +18022,10 @@
17965
18022
  }
17966
18023
  };
17967
18024
  }
17968
- function createStorage(_ref3) {
17969
- var _ref3$limit = _ref3.limit,
17970
- limit = _ref3$limit === void 0 ? 5 : _ref3$limit,
17971
- storageKey = _ref3.storageKey;
18025
+ function createStorage(_ref4) {
18026
+ var _ref4$limit = _ref4.limit,
18027
+ limit = _ref4$limit === void 0 ? 5 : _ref4$limit,
18028
+ storageKey = _ref4.storageKey;
17972
18029
  var storage = getLocalStorage(storageKey);
17973
18030
  var updateListener = null;
17974
18031
  return {
@@ -20401,7 +20458,12 @@
20401
20458
  rendererParams.renderState = {
20402
20459
  indexTemplateProps: [],
20403
20460
  isolatedIndex: isolatedIndex,
20404
- targetIndex: targetIndex
20461
+ targetIndex: targetIndex,
20462
+ templateProps: prepareTemplateProps({
20463
+ defaultTemplates: {},
20464
+ templatesConfig: connectorParams.instantSearchInstance.templatesConfig,
20465
+ templates: rendererParams.templates
20466
+ })
20405
20467
  };
20406
20468
  connectorParams.refine((_targetIndex$getHelpe = (_targetIndex$getHelpe2 = targetIndex.getHelper()) === null || _targetIndex$getHelpe2 === void 0 ? void 0 : _targetIndex$getHelpe2.state.query) !== null && _targetIndex$getHelpe !== void 0 ? _targetIndex$getHelpe : '');
20407
20469
  return;
@@ -20419,7 +20481,9 @@
20419
20481
  cssClasses = _ref.cssClasses,
20420
20482
  renderState = _ref.renderState,
20421
20483
  instantSearchInstance = _ref.instantSearchInstance,
20422
- showRecent = _ref.showRecent;
20484
+ showRecent = _ref.showRecent,
20485
+ showSuggestions = _ref.showSuggestions,
20486
+ templates = _ref.templates;
20423
20487
  var isolatedIndex = renderState.isolatedIndex,
20424
20488
  targetIndex = renderState.targetIndex;
20425
20489
  var searchboxQuery = isolatedIndex === null || isolatedIndex === void 0 ? void 0 : (_isolatedIndex$getHel = isolatedIndex.getHelper()) === null || _isolatedIndex$getHel === void 0 ? void 0 : _isolatedIndex$getHel.state.query;
@@ -20474,17 +20538,28 @@
20474
20538
  getItemProps = _usePropGetters.getItemProps,
20475
20539
  getPanelProps = _usePropGetters.getPanelProps,
20476
20540
  getRootProps = _usePropGetters.getRootProps;
20477
- var AutocompleteRecentSearchComponent = AutocompleteRecentSearch;
20541
+ var AutocompleteRecentSearchComponent = function AutocompleteRecentSearchComponent(_ref4) {
20542
+ var item = _ref4.item,
20543
+ onSelect = _ref4.onSelect,
20544
+ onRemoveRecentSearch = _ref4.onRemoveRecentSearch;
20545
+ return h(AutocompleteRecentSearch, {
20546
+ item: item,
20547
+ onSelect: onSelect,
20548
+ onRemoveRecentSearch: onRemoveRecentSearch
20549
+ }, h(ConditionalReverseHighlight, {
20550
+ item: item
20551
+ }));
20552
+ };
20478
20553
  if (_typeof(showRecent) === 'object' && (_showRecent$templates = showRecent.templates) !== null && _showRecent$templates !== void 0 && _showRecent$templates.item) {
20479
20554
  var props = prepareTemplateProps({
20480
20555
  defaultTemplates: {},
20481
20556
  templatesConfig: instantSearchInstance.templatesConfig,
20482
20557
  templates: showRecent.templates
20483
20558
  });
20484
- AutocompleteRecentSearchComponent = function AutocompleteRecentSearchComponent(_ref4) {
20485
- var item = _ref4.item,
20486
- onSelect = _ref4.onSelect,
20487
- onRemoveRecentSearch = _ref4.onRemoveRecentSearch;
20559
+ AutocompleteRecentSearchComponent = function AutocompleteRecentSearchComponent(_ref5) {
20560
+ var item = _ref5.item,
20561
+ onSelect = _ref5.onSelect,
20562
+ onRemoveRecentSearch = _ref5.onRemoveRecentSearch;
20488
20563
  return h(Template, _extends({}, props, {
20489
20564
  templateKey: "item",
20490
20565
  rootTagName: "fragment",
@@ -20496,45 +20571,36 @@
20496
20571
  }));
20497
20572
  };
20498
20573
  }
20499
- return h(Autocomplete, _extends({}, getRootProps(), {
20500
- classNames: cssClasses
20501
- }), h(AutocompleteSearchBox, {
20502
- query: searchboxQuery || '',
20503
- inputProps: _objectSpread2(_objectSpread2({}, getInputProps()), {}, {
20504
- // @ts-ignore - This clashes with some ambient React JSX declarations.
20505
- onInput: function onInput(evt) {
20506
- return refine(evt.currentTarget.value);
20507
- }
20508
- }),
20509
- onClear: function onClear() {
20510
- return onRefine('');
20511
- },
20512
- isSearchStalled: instantSearchInstance.status === 'stalled'
20513
- }), h(AutocompletePanel, getPanelProps(), showRecent && h(AutocompleteIndex
20514
- // @ts-ignore - there seems to be problems with React.ComponentType and this, but it's actually correct
20515
- , {
20516
- ItemComponent: function ItemComponent(_ref5) {
20517
- var item = _ref5.item,
20518
- onSelect = _ref5.onSelect;
20519
- return h(AutocompleteRecentSearchComponent, {
20520
- item: item,
20521
- onSelect: onSelect,
20522
- onRemoveRecentSearch: function onRemoveRecentSearch() {
20523
- return storage.onRemove(item.query);
20524
- }
20525
- });
20526
- },
20527
- classNames: {
20528
- root: 'ais-AutocompleteRecentSearches',
20529
- list: 'ais-AutocompleteRecentSearchesList',
20530
- item: 'ais-AutocompleteRecentSearchesItem'
20531
- },
20532
- items: storageHits,
20533
- getItemProps: getItemProps
20534
- }), indices.map(function (_ref6, i) {
20574
+ var elements = {};
20575
+ if (showRecent) {
20576
+ elements.recent = h(AutocompleteIndex
20577
+ // @ts-ignore - there seems to be problems with React.ComponentType and this, but it's actually correct
20578
+ , {
20579
+ ItemComponent: function ItemComponent(_ref6) {
20580
+ var item = _ref6.item,
20581
+ onSelect = _ref6.onSelect;
20582
+ return h(AutocompleteRecentSearchComponent, {
20583
+ item: item,
20584
+ onSelect: onSelect,
20585
+ onRemoveRecentSearch: function onRemoveRecentSearch() {
20586
+ return storage.onRemove(item.query);
20587
+ }
20588
+ });
20589
+ },
20590
+ classNames: {
20591
+ root: 'ais-AutocompleteRecentSearches',
20592
+ list: 'ais-AutocompleteRecentSearchesList',
20593
+ item: 'ais-AutocompleteRecentSearchesItem'
20594
+ },
20595
+ items: storageHits,
20596
+ getItemProps: getItemProps
20597
+ });
20598
+ }
20599
+ indices.forEach(function (_ref7, i) {
20535
20600
  var _indicesConfig$i$temp;
20536
- var indexId = _ref6.indexId,
20537
- hits = _ref6.hits;
20601
+ var indexId = _ref7.indexId,
20602
+ indexName = _ref7.indexName,
20603
+ hits = _ref7.hits;
20538
20604
  if (!renderState.indexTemplateProps[i]) {
20539
20605
  renderState.indexTemplateProps[i] = prepareTemplateProps({
20540
20606
  defaultTemplates: {},
@@ -20542,8 +20608,8 @@
20542
20608
  templates: indicesConfig[i].templates
20543
20609
  });
20544
20610
  }
20545
- var headerComponent = (_indicesConfig$i$temp = indicesConfig[i].templates) !== null && _indicesConfig$i$temp !== void 0 && _indicesConfig$i$temp.header ? function (_ref7) {
20546
- var items = _ref7.items;
20611
+ var headerComponent = (_indicesConfig$i$temp = indicesConfig[i].templates) !== null && _indicesConfig$i$temp !== void 0 && _indicesConfig$i$temp.header ? function (_ref8) {
20612
+ var items = _ref8.items;
20547
20613
  return h(Template, _extends({}, renderState.indexTemplateProps[i], {
20548
20614
  templateKey: "header",
20549
20615
  rootTagName: "fragment",
@@ -20552,9 +20618,9 @@
20552
20618
  }
20553
20619
  }));
20554
20620
  } : undefined;
20555
- var itemComponent = function itemComponent(_ref8) {
20556
- var item = _ref8.item,
20557
- onSelect = _ref8.onSelect;
20621
+ var itemComponent = function itemComponent(_ref9) {
20622
+ var item = _ref9.item,
20623
+ onSelect = _ref9.onSelect;
20558
20624
  return h(Template, _extends({}, renderState.indexTemplateProps[i], {
20559
20625
  templateKey: "item",
20560
20626
  rootTagName: "fragment",
@@ -20564,7 +20630,8 @@
20564
20630
  }
20565
20631
  }));
20566
20632
  };
20567
- return h(AutocompleteIndex, {
20633
+ var elementId = indexName === (showSuggestions === null || showSuggestions === void 0 ? void 0 : showSuggestions.indexName) ? 'suggestions' : indexName;
20634
+ elements[elementId] = h(AutocompleteIndex, {
20568
20635
  key: indexId,
20569
20636
  HeaderComponent: headerComponent,
20570
20637
  ItemComponent: itemComponent,
@@ -20576,26 +20643,54 @@
20576
20643
  getItemProps: getItemProps,
20577
20644
  classNames: indicesConfig[i].cssClasses
20578
20645
  });
20646
+ });
20647
+ return h(Autocomplete, _extends({}, getRootProps(), {
20648
+ classNames: cssClasses
20649
+ }), h(AutocompleteSearchBox, {
20650
+ query: searchboxQuery || '',
20651
+ inputProps: _objectSpread2(_objectSpread2({}, getInputProps()), {}, {
20652
+ // @ts-ignore - This clashes with some ambient React JSX declarations.
20653
+ onInput: function onInput(evt) {
20654
+ return refine(evt.currentTarget.value);
20655
+ }
20656
+ }),
20657
+ onClear: function onClear() {
20658
+ return onRefine('');
20659
+ },
20660
+ isSearchStalled: instantSearchInstance.status === 'stalled'
20661
+ }), h(AutocompletePanel, getPanelProps(), templates.panel ? h(Template, _extends({}, renderState.templateProps, {
20662
+ templateKey: "panel",
20663
+ rootTagName: "fragment",
20664
+ data: {
20665
+ elements: elements,
20666
+ indices: indices
20667
+ }
20668
+ })) : Object.keys(elements).map(function (elementId) {
20669
+ return elements[elementId];
20579
20670
  })));
20580
20671
  }
20581
20672
  function EXPERIMENTAL_autocomplete(widgetParams) {
20582
- var _ref9 = widgetParams || {},
20583
- container = _ref9.container,
20584
- escapeHTML = _ref9.escapeHTML,
20585
- _ref9$indices = _ref9.indices,
20586
- indices = _ref9$indices === void 0 ? [] : _ref9$indices,
20587
- showSuggestions = _ref9.showSuggestions,
20588
- showRecent = _ref9.showRecent,
20589
- getSearchPageURL = _ref9.getSearchPageURL,
20590
- onSelect = _ref9.onSelect,
20591
- _ref9$templates = _ref9.templates,
20592
- templates = _ref9$templates === void 0 ? {} : _ref9$templates,
20593
- _ref9$cssClasses = _ref9.cssClasses,
20594
- userCssClasses = _ref9$cssClasses === void 0 ? {} : _ref9$cssClasses;
20673
+ var _ref0 = widgetParams || {},
20674
+ container = _ref0.container,
20675
+ escapeHTML = _ref0.escapeHTML,
20676
+ _ref0$indices = _ref0.indices,
20677
+ indices = _ref0$indices === void 0 ? [] : _ref0$indices,
20678
+ showSuggestions = _ref0.showSuggestions,
20679
+ showRecent = _ref0.showRecent,
20680
+ userSearchParameters = _ref0.searchParameters,
20681
+ getSearchPageURL = _ref0.getSearchPageURL,
20682
+ onSelect = _ref0.onSelect,
20683
+ _ref0$templates = _ref0.templates,
20684
+ templates = _ref0$templates === void 0 ? {} : _ref0$templates,
20685
+ _ref0$cssClasses = _ref0.cssClasses,
20686
+ userCssClasses = _ref0$cssClasses === void 0 ? {} : _ref0$cssClasses;
20595
20687
  if (!container) {
20596
20688
  throw new Error(withUsage$z('The `container` option is required.'));
20597
20689
  }
20598
20690
  var containerNode = getContainerNode(container);
20691
+ var searchParameters = _objectSpread2({
20692
+ hitsPerPage: 5
20693
+ }, userSearchParameters);
20599
20694
  var cssClasses = {
20600
20695
  root: cx(suit$6(), userCssClasses.root)
20601
20696
  };
@@ -20606,7 +20701,16 @@
20606
20701
  indexName: showSuggestions.indexName,
20607
20702
  templates: _objectSpread2({
20608
20703
  // @ts-expect-error
20609
- item: AutocompleteSuggestion
20704
+ item: function item(_ref1) {
20705
+ var _item = _ref1.item,
20706
+ onSelectItem = _ref1.onSelect;
20707
+ return h(AutocompleteSuggestion, {
20708
+ item: _item,
20709
+ onSelect: onSelectItem
20710
+ }, h(ConditionalReverseHighlight, {
20711
+ item: _item
20712
+ }));
20713
+ }
20610
20714
  }, showSuggestions.templates),
20611
20715
  cssClasses: {
20612
20716
  root: cx('ais-AutocompleteSuggestions', (_showSuggestions$cssC = showSuggestions.cssClasses) === null || _showSuggestions$cssC === void 0 ? void 0 : _showSuggestions$cssC.root),
@@ -20629,10 +20733,12 @@
20629
20733
  onSelect: onSelect,
20630
20734
  cssClasses: cssClasses,
20631
20735
  showRecent: showRecent,
20736
+ showSuggestions: showSuggestions,
20632
20737
  renderState: {
20633
20738
  indexTemplateProps: [],
20634
20739
  isolatedIndex: undefined,
20635
- targetIndex: undefined
20740
+ targetIndex: undefined,
20741
+ templateProps: undefined
20636
20742
  },
20637
20743
  templates: templates
20638
20744
  });
@@ -20644,20 +20750,32 @@
20644
20750
  })({}), index({
20645
20751
  indexId: "ais-autocomplete-".concat(instanceId),
20646
20752
  EXPERIMENTAL_isolated: true
20647
- }).addWidgets([].concat(_toConsumableArray(indicesConfig.map(function (_ref0) {
20648
- var indexName = _ref0.indexName;
20753
+ }).addWidgets([configure(searchParameters)].concat(_toConsumableArray(indicesConfig.map(function (_ref10) {
20754
+ var indexName = _ref10.indexName,
20755
+ indexSearchParameters = _ref10.searchParameters;
20649
20756
  return index({
20650
20757
  indexName: indexName,
20651
20758
  indexId: indexName
20652
- }).addWidgets([configure({
20653
- hitsPerPage: 5
20654
- })]);
20759
+ }).addWidgets([configure(indexSearchParameters || {})]);
20655
20760
  })), [_objectSpread2(_objectSpread2({}, makeWidget({
20656
20761
  escapeHTML: escapeHTML
20657
20762
  })), {}, {
20658
20763
  $$widgetType: 'ais.autocomplete'
20659
20764
  })]))];
20660
20765
  }
20766
+ function ConditionalReverseHighlight(_ref11) {
20767
+ var _item$_highlightResul;
20768
+ var item = _ref11.item;
20769
+ if (!((_item$_highlightResul = item._highlightResult) !== null && _item$_highlightResul !== void 0 && _item$_highlightResul.query) ||
20770
+ // @ts-expect-error - we should not have matchLevel as arrays here
20771
+ item._highlightResult.query.matchLevel === 'none') {
20772
+ return item.query;
20773
+ }
20774
+ return h(ReverseHighlight$1, {
20775
+ attribute: "query",
20776
+ hit: item
20777
+ });
20778
+ }
20661
20779
 
20662
20780
  var Breadcrumb = function Breadcrumb(_ref) {
20663
20781
  var items = _ref.items,