@mjhls/mjh-framework 1.0.1089-webcastAddition-v1 → 1.0.1089

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.
Files changed (175) hide show
  1. package/dist/cjs/AD300x250.js +1 -1
  2. package/dist/cjs/AD300x250x600.js +1 -1
  3. package/dist/cjs/AD728x90.js +1 -1
  4. package/dist/cjs/ADFloatingFooter.js +1 -1
  5. package/dist/cjs/ADGutter.js +1 -1
  6. package/dist/cjs/{ADInfeed-25f53b70.js → ADInfeed-3eabeab4.js} +1 -1
  7. package/dist/cjs/ADSkyscraper.js +1 -1
  8. package/dist/cjs/ADSponsoredResources.js +1 -1
  9. package/dist/cjs/ADWebcast.js +1 -1
  10. package/dist/cjs/ADWelcome.js +1 -1
  11. package/dist/cjs/{ADlgInfeed-5d21496c.js → ADlgInfeed-fc42f8c4.js} +1 -1
  12. package/dist/cjs/AdSlot.js +1 -1
  13. package/dist/cjs/AdSlotsProvider.js +1 -1
  14. package/dist/cjs/AlgoliaSearch.js +454 -198
  15. package/dist/cjs/ArticleCarousel.js +1 -1
  16. package/dist/cjs/ArticleProgramLandingPage.js +4 -4
  17. package/dist/cjs/ArticleSeriesLandingPage.js +4 -4
  18. package/dist/cjs/ArticleSeriesListing.js +2 -2
  19. package/dist/cjs/AuthWrapper.js +245 -629
  20. package/dist/cjs/CEDeckSupabase.js +2 -6
  21. package/dist/cjs/CMEDeck.js +2 -6
  22. package/dist/cjs/Column3.js +1 -1
  23. package/dist/cjs/ConferenceArticleCard.js +1 -1
  24. package/dist/cjs/ContentCardPaginated.js +3 -3
  25. package/dist/cjs/DeckContent.js +3 -3
  26. package/dist/cjs/DeckQueue.js +2 -2
  27. package/dist/cjs/DeckQueuePaginated.js +2 -2
  28. package/dist/cjs/EventsDeck.js +3 -3
  29. package/dist/cjs/ExternalResources.js +5 -5
  30. package/dist/cjs/Feature.js +1 -1
  31. package/dist/cjs/ForbesHero.js +1 -1
  32. package/dist/cjs/GridContent.js +4 -4
  33. package/dist/cjs/GridContentPaginated.js +4 -4
  34. package/dist/cjs/GridHero.js +1 -1
  35. package/dist/cjs/HamMagazine.js +2 -2
  36. package/dist/cjs/HighlightenVideo.js +1 -1
  37. package/dist/cjs/HorizontalArticleListing.js +4 -4
  38. package/dist/cjs/HorizontalHero.js +1 -1
  39. package/dist/cjs/{ImageSlider-eb866353.js → ImageSlider-d65bc9c8.js} +159 -114
  40. package/dist/cjs/IssueContentDeck.js +1 -1
  41. package/dist/cjs/IssueLanding.js +6 -6
  42. package/dist/cjs/LeftNav.js +1 -1
  43. package/dist/cjs/MasterDeck.js +4 -4
  44. package/dist/cjs/MasterDeckPaginated.js +3 -3
  45. package/dist/cjs/MediaSeriesCard.js +4 -4
  46. package/dist/cjs/MediaSeriesLanding.js +9 -9
  47. package/dist/cjs/MediaSeriesLandingPaginated.js +9 -9
  48. package/dist/cjs/NavMagazine.js +2 -2
  49. package/dist/cjs/NavNative.js +1 -1
  50. package/dist/cjs/OncliveHero.js +1 -1
  51. package/dist/cjs/OncliveLargeHero.js +1 -1
  52. package/dist/cjs/PartnerDetailListing.js +7 -8
  53. package/dist/cjs/PartnerDetailListingPaginated.js +7 -8
  54. package/dist/cjs/PodcastsLanding.js +7 -7
  55. package/dist/cjs/PtceDeck.js +1 -1
  56. package/dist/cjs/PubSection.js +4 -4
  57. package/dist/cjs/QueueDeckExpanded.js +4 -4
  58. package/dist/cjs/QueueDeckExpandedPaginated.js +4 -4
  59. package/dist/cjs/RelatedContent.js +1 -1
  60. package/dist/cjs/SeriesListingDeck.js +2 -2
  61. package/dist/cjs/{SeriesSlider-086a8319.js → SeriesSlider-a8b51591.js} +1 -1
  62. package/dist/cjs/{SocialSearchComponent-d7e5d3a6.js → SocialSearchComponent-9d272141.js} +1 -1
  63. package/dist/cjs/TaxonomyDescription.js +4 -4
  64. package/dist/cjs/TemplateNormal.js +2 -2
  65. package/dist/cjs/{Tooltip-8011d690.js → Tooltip-66c1a867.js} +131 -76
  66. package/dist/cjs/Ustream.js +1 -1
  67. package/dist/cjs/VerticalHero.js +1 -1
  68. package/dist/cjs/VideoProgramLandingPage.js +4 -4
  69. package/dist/cjs/VideoSeriesCard.js +1 -1
  70. package/dist/cjs/VideoSeriesLandingPage.js +4 -4
  71. package/dist/cjs/VideoSeriesListing.js +2 -2
  72. package/dist/cjs/View.js +5 -7
  73. package/dist/cjs/YahooHero.js +1 -1
  74. package/dist/cjs/YoutubeGroup.js +1 -1
  75. package/dist/cjs/{brightcove-react-player-loader.es-4c7825a1.js → brightcove-react-player-loader.es-35faab67.js} +3 -3
  76. package/dist/cjs/getRelatedArticle.js +22 -4
  77. package/dist/cjs/getSerializers.js +4 -4
  78. package/dist/cjs/{index-b0e9a7b6.js → index-4aba677d.js} +234 -15
  79. package/dist/cjs/index-4d21663c.js +1573 -0
  80. package/dist/cjs/{index-50be6759.js → index-9ec837cc.js} +9 -25
  81. package/dist/cjs/index.js +11 -12
  82. package/dist/cjs/{main-ae8472f3.js → main-812888f1.js} +1 -1
  83. package/dist/cjs/{moment-aca40de1.js → moment-f730814d.js} +95 -80
  84. package/dist/cjs/timeDifferenceCalc.js +1 -1
  85. package/dist/esm/AD300x250.js +1 -1
  86. package/dist/esm/AD300x250x600.js +1 -1
  87. package/dist/esm/AD728x90.js +1 -1
  88. package/dist/esm/ADFloatingFooter.js +1 -1
  89. package/dist/esm/ADGutter.js +1 -1
  90. package/dist/esm/{ADInfeed-ca4bb13c.js → ADInfeed-8fd14c74.js} +1 -1
  91. package/dist/esm/ADSkyscraper.js +1 -1
  92. package/dist/esm/ADSponsoredResources.js +1 -1
  93. package/dist/esm/ADWebcast.js +1 -1
  94. package/dist/esm/ADWelcome.js +1 -1
  95. package/dist/esm/{ADlgInfeed-142ddf4d.js → ADlgInfeed-9c3fc2ec.js} +1 -1
  96. package/dist/esm/AdSlot.js +1 -1
  97. package/dist/esm/AdSlotsProvider.js +1 -1
  98. package/dist/esm/AlgoliaSearch.js +453 -197
  99. package/dist/esm/ArticleCarousel.js +1 -1
  100. package/dist/esm/ArticleProgramLandingPage.js +4 -4
  101. package/dist/esm/ArticleSeriesLandingPage.js +4 -4
  102. package/dist/esm/ArticleSeriesListing.js +2 -2
  103. package/dist/esm/AuthWrapper.js +243 -627
  104. package/dist/esm/CEDeckSupabase.js +2 -6
  105. package/dist/esm/CMEDeck.js +2 -6
  106. package/dist/esm/Column3.js +1 -1
  107. package/dist/esm/ConferenceArticleCard.js +1 -1
  108. package/dist/esm/ContentCardPaginated.js +3 -3
  109. package/dist/esm/DeckContent.js +3 -3
  110. package/dist/esm/DeckQueue.js +2 -2
  111. package/dist/esm/DeckQueuePaginated.js +2 -2
  112. package/dist/esm/EventsDeck.js +3 -3
  113. package/dist/esm/ExternalResources.js +5 -5
  114. package/dist/esm/Feature.js +1 -1
  115. package/dist/esm/ForbesHero.js +1 -1
  116. package/dist/esm/GridContent.js +4 -4
  117. package/dist/esm/GridContentPaginated.js +4 -4
  118. package/dist/esm/GridHero.js +1 -1
  119. package/dist/esm/HamMagazine.js +2 -2
  120. package/dist/esm/HighlightenVideo.js +1 -1
  121. package/dist/esm/HorizontalArticleListing.js +4 -4
  122. package/dist/esm/HorizontalHero.js +1 -1
  123. package/dist/esm/{ImageSlider-ea441f66.js → ImageSlider-801685f8.js} +160 -115
  124. package/dist/esm/IssueContentDeck.js +1 -1
  125. package/dist/esm/IssueLanding.js +6 -6
  126. package/dist/esm/LeftNav.js +1 -1
  127. package/dist/esm/MasterDeck.js +4 -4
  128. package/dist/esm/MasterDeckPaginated.js +3 -3
  129. package/dist/esm/MediaSeriesCard.js +4 -4
  130. package/dist/esm/MediaSeriesLanding.js +9 -9
  131. package/dist/esm/MediaSeriesLandingPaginated.js +9 -9
  132. package/dist/esm/NavMagazine.js +2 -2
  133. package/dist/esm/NavNative.js +1 -1
  134. package/dist/esm/OncliveHero.js +1 -1
  135. package/dist/esm/OncliveLargeHero.js +1 -1
  136. package/dist/esm/Pagination-9fe9f61d.js +1 -1
  137. package/dist/esm/PartnerDetailListing.js +7 -8
  138. package/dist/esm/PartnerDetailListingPaginated.js +7 -8
  139. package/dist/esm/PodcastsLanding.js +7 -7
  140. package/dist/esm/PtceDeck.js +1 -1
  141. package/dist/esm/PubSection.js +4 -4
  142. package/dist/esm/QueueDeckExpanded.js +4 -4
  143. package/dist/esm/QueueDeckExpandedPaginated.js +4 -4
  144. package/dist/esm/RelatedContent.js +1 -1
  145. package/dist/esm/SeriesListingDeck.js +2 -2
  146. package/dist/esm/{SeriesSlider-acbdf4c9.js → SeriesSlider-5757414b.js} +1 -1
  147. package/dist/esm/{SocialSearchComponent-9e65c8d6.js → SocialSearchComponent-98bfc990.js} +1 -1
  148. package/dist/esm/TaxonomyDescription.js +4 -4
  149. package/dist/esm/TemplateNormal.js +2 -2
  150. package/dist/esm/{Tooltip-2cdd0895.js → Tooltip-0b3b4558.js} +290 -235
  151. package/dist/esm/Ustream.js +1 -1
  152. package/dist/esm/VerticalHero.js +1 -1
  153. package/dist/esm/VideoProgramLandingPage.js +4 -4
  154. package/dist/esm/VideoSeriesCard.js +1 -1
  155. package/dist/esm/VideoSeriesLandingPage.js +4 -4
  156. package/dist/esm/VideoSeriesListing.js +2 -2
  157. package/dist/esm/View.js +5 -7
  158. package/dist/esm/YahooHero.js +1 -1
  159. package/dist/esm/YoutubeGroup.js +1 -1
  160. package/dist/esm/{brightcove-react-player-loader.es-57a70a56.js → brightcove-react-player-loader.es-a2422c4b.js} +3 -3
  161. package/dist/esm/getRelatedArticle.js +23 -5
  162. package/dist/esm/getSerializers.js +4 -4
  163. package/dist/esm/{index-98ca9cec.js → index-0ce54f8a.js} +10 -25
  164. package/dist/esm/index-887c1f5e.js +1571 -0
  165. package/dist/esm/{index-cf4b8124.js → index-fcb8d351.js} +234 -15
  166. package/dist/esm/index.js +11 -12
  167. package/dist/esm/{main-754d4992.js → main-dde1592e.js} +1 -1
  168. package/dist/esm/{moment-bc12cb97.js → moment-48faeb9c.js} +95 -80
  169. package/dist/esm/timeDifferenceCalc.js +1 -1
  170. package/dist/esm/visibility-sensor-72fd8f8b.js +1 -1
  171. package/package.json +1 -1
  172. package/dist/cjs/defineProperty-19580e93.js +0 -71
  173. package/dist/cjs/index-96c331fd.js +0 -1572
  174. package/dist/esm/defineProperty-e8022d1e.js +0 -66
  175. package/dist/esm/index-30a6257d.js +0 -1570
@@ -3,10 +3,10 @@ import { _ as _inherits$1, a as _classCallCheck$1, b as _possibleConstructorRetu
3
3
  import { _ as _typeof$1 } from './typeof-3ab7d3b6.js';
4
4
  import React__default, { createContext, Component, Fragment, Children, version as version$2 } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { _ as _objectWithoutPropertiesLoose$1, a as _setPrototypeOf, b as _extends, c as classnames } from './index-98ca9cec.js';
6
+ import { _ as _objectWithoutPropertiesLoose$1, a as _extends, c as classnames } from './index-0ce54f8a.js';
7
7
  import { DropdownButton } from 'react-bootstrap';
8
8
  import urlFor from './urlFor.js';
9
- import { m as moment } from './moment-bc12cb97.js';
9
+ import { m as moment } from './moment-48faeb9c.js';
10
10
  import { L as LazyLoad } from './index-755f2cc2.js';
11
11
  import './_commonjsHelpers-0c4b6f40.js';
12
12
  import './core.get-iterator-method-95db387d.js';
@@ -57,9 +57,6 @@ function _defineProperties(target, props) {
57
57
  function _createClass(Constructor, protoProps, staticProps) {
58
58
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
59
59
  if (staticProps) _defineProperties(Constructor, staticProps);
60
- Object.defineProperty(Constructor, "prototype", {
61
- writable: false
62
- });
63
60
  return Constructor;
64
61
  }
65
62
 
@@ -71,6 +68,15 @@ function _assertThisInitialized(self) {
71
68
  return self;
72
69
  }
73
70
 
71
+ function _setPrototypeOf(o, p) {
72
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
73
+ o.__proto__ = p;
74
+ return o;
75
+ };
76
+
77
+ return _setPrototypeOf(o, p);
78
+ }
79
+
74
80
  function _inherits(subClass, superClass) {
75
81
  if (typeof superClass !== "function" && superClass !== null) {
76
82
  throw new TypeError("Super expression must either be null or a function");
@@ -83,27 +89,28 @@ function _inherits(subClass, superClass) {
83
89
  configurable: true
84
90
  }
85
91
  });
86
- Object.defineProperty(subClass, "prototype", {
87
- writable: false
88
- });
89
92
  if (superClass) _setPrototypeOf(subClass, superClass);
90
93
  }
91
94
 
92
95
  function _typeof(obj) {
93
96
  "@babel/helpers - typeof";
94
97
 
95
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
96
- return typeof obj;
97
- } : function (obj) {
98
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
99
- }, _typeof(obj);
98
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
99
+ _typeof = function _typeof(obj) {
100
+ return typeof obj;
101
+ };
102
+ } else {
103
+ _typeof = function _typeof(obj) {
104
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
105
+ };
106
+ }
107
+
108
+ return _typeof(obj);
100
109
  }
101
110
 
102
111
  function _possibleConstructorReturn(self, call) {
103
112
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
104
113
  return call;
105
- } else if (call !== void 0) {
106
- throw new TypeError("Derived constructors may only return object or undefined");
107
114
  }
108
115
 
109
116
  return _assertThisInitialized(self);
@@ -414,6 +421,9 @@ var getPropertyByPath = function getPropertyByPath(object, path) {
414
421
  function getObjectType(object) {
415
422
  return Object.prototype.toString.call(object).slice(8, -1);
416
423
  }
424
+ function unescapeFacetValue$3(value) {
425
+ return value.replace(/^\\-/, '-');
426
+ }
417
427
 
418
428
  var instantSearchContext = /*#__PURE__*/createContext({
419
429
  onInternalStateUpdate: function onInternalStateUpdate() {
@@ -469,6 +479,8 @@ function createConnectorWithoutContext(connectorDesc) {
469
479
 
470
480
  var isWidget = typeof connectorDesc.getSearchParameters === 'function' || typeof connectorDesc.getMetadata === 'function' || typeof connectorDesc.transitionState === 'function';
471
481
  return function (Composed) {
482
+ var additionalWidgetProperties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
483
+
472
484
  var Connector = /*#__PURE__*/function (_Component) {
473
485
  _inherits(Connector, _Component);
474
486
 
@@ -485,6 +497,8 @@ function createConnectorWithoutContext(connectorDesc) {
485
497
 
486
498
  _defineProperty(_assertThisInitialized(_this), "unregisterWidget", void 0);
487
499
 
500
+ _defineProperty(_assertThisInitialized(_this), "cleanupTimerRef", null);
501
+
488
502
  _defineProperty(_assertThisInitialized(_this), "isUnmounting", false);
489
503
 
490
504
  _defineProperty(_assertThisInitialized(_this), "state", {
@@ -539,6 +553,11 @@ function createConnectorWithoutContext(connectorDesc) {
539
553
  value: function componentDidMount() {
540
554
  var _this2 = this;
541
555
 
556
+ if (this.cleanupTimerRef) {
557
+ clearTimeout(this.cleanupTimerRef);
558
+ this.cleanupTimerRef = null;
559
+ }
560
+
542
561
  this.unsubscribe = this.props.contextValue.store.subscribe(function () {
543
562
  if (!_this2.isUnmounting) {
544
563
  _this2.setState({
@@ -590,23 +609,29 @@ function createConnectorWithoutContext(connectorDesc) {
590
609
  }, {
591
610
  key: "componentWillUnmount",
592
611
  value: function componentWillUnmount() {
593
- this.isUnmounting = true;
612
+ var _this3 = this;
594
613
 
595
- if (this.unsubscribe) {
596
- this.unsubscribe();
597
- }
614
+ this.cleanupTimerRef = setTimeout(function () {
615
+ _this3.isUnmounting = true;
616
+
617
+ if (_this3.unsubscribe) {
618
+ _this3.unsubscribe();
619
+ }
620
+
621
+ if (_this3.unregisterWidget) {
622
+ _this3.unregisterWidget();
598
623
 
599
- if (this.unregisterWidget) {
600
- this.unregisterWidget();
624
+ if (typeof connectorDesc.cleanUp === 'function') {
625
+ var nextState = connectorDesc.cleanUp.call(_this3, _this3.props, _this3.props.contextValue.store.getState().widgets);
601
626
 
602
- if (typeof connectorDesc.cleanUp === 'function') {
603
- var nextState = connectorDesc.cleanUp.call(this, this.props, this.props.contextValue.store.getState().widgets);
604
- this.props.contextValue.store.setState(_objectSpread$e(_objectSpread$e({}, this.props.contextValue.store.getState()), {}, {
605
- widgets: nextState
606
- }));
607
- this.props.contextValue.onSearchStateChange(removeEmptyKey(nextState));
627
+ _this3.props.contextValue.store.setState(_objectSpread$e(_objectSpread$e({}, _this3.props.contextValue.store.getState()), {}, {
628
+ widgets: nextState
629
+ }));
630
+
631
+ _this3.props.contextValue.onSearchStateChange(removeEmptyKey(nextState));
632
+ }
608
633
  }
609
- }
634
+ });
610
635
  }
611
636
  }, {
612
637
  key: "getProvidedProps",
@@ -689,6 +714,10 @@ function createConnectorWithoutContext(connectorDesc) {
689
714
 
690
715
  _defineProperty(Connector, "displayName", "".concat(connectorDesc.displayName, "(").concat(getDisplayName(Composed), ")"));
691
716
 
717
+ _defineProperty(Connector, "$$type", connectorDesc.$$type);
718
+
719
+ _defineProperty(Connector, "$$widgetType", additionalWidgetProperties.$$widgetType);
720
+
692
721
  _defineProperty(Connector, "propTypes", connectorDesc.propTypes);
693
722
 
694
723
  _defineProperty(Connector, "defaultProps", connectorDesc.defaultProps);
@@ -700,8 +729,8 @@ function createConnectorWithoutContext(connectorDesc) {
700
729
  }
701
730
 
702
731
  var createConnectorWithContext = function createConnectorWithContext(connectorDesc) {
703
- return function (Composed) {
704
- var Connector = createConnectorWithoutContext(connectorDesc)(Composed);
732
+ return function (Composed, additionalWidgetProperties) {
733
+ var Connector = createConnectorWithoutContext(connectorDesc)(Composed, additionalWidgetProperties);
705
734
 
706
735
  var ConnectorWrapper = function ConnectorWrapper(props) {
707
736
  return /*#__PURE__*/React__default.createElement(InstantSearchConsumer, null, function (contextValue) {
@@ -818,7 +847,7 @@ function parseAlgoliaHit(_ref2) {
818
847
  });
819
848
  }
820
849
 
821
- var version$1 = '6.22.0';
850
+ var version$1 = '6.38.0';
822
851
 
823
852
  function _createSuper$p(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$p(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
824
853
 
@@ -1148,6 +1177,7 @@ function getId$f() {
1148
1177
 
1149
1178
  var connectConfigure = createConnectorWithContext({
1150
1179
  displayName: 'AlgoliaConfigure',
1180
+ $$type: 'ais.configure',
1151
1181
  getProvidedProps: function getProvidedProps() {
1152
1182
  return {};
1153
1183
  },
@@ -1245,6 +1275,8 @@ var connectConfigure = createConnectorWithContext({
1245
1275
 
1246
1276
  var Configure = connectConfigure(function Configure() {
1247
1277
  return null;
1278
+ }, {
1279
+ $$widgetType: 'ais.configure'
1248
1280
  });
1249
1281
 
1250
1282
  function _arrayLikeToArray(arr, len) {
@@ -1262,7 +1294,7 @@ function _arrayWithoutHoles(arr) {
1262
1294
  }
1263
1295
 
1264
1296
  function _iterableToArray(iter) {
1265
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1297
+ if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
1266
1298
  }
1267
1299
 
1268
1300
  function _unsupportedIterableToArray(o, minLen) {
@@ -3229,12 +3261,44 @@ var formatSort = function formatSort(sortBy, defaults) {
3229
3261
  );
3230
3262
  };
3231
3263
 
3264
+ /**
3265
+ * Replaces a leading - with \-
3266
+ * @private
3267
+ * @param {any} value the facet value to replace
3268
+ * @returns any
3269
+ */
3270
+ function escapeFacetValue$3(value) {
3271
+ if (typeof value !== 'string') return value;
3272
+
3273
+ return String(value).replace(/^-/, '\\-');
3274
+ }
3275
+
3276
+ /**
3277
+ * Replaces a leading \- with -
3278
+ * @private
3279
+ * @param {any} value the escaped facet value
3280
+ * @returns any
3281
+ */
3282
+ function unescapeFacetValue$2(value) {
3283
+ if (typeof value !== 'string') return value;
3284
+
3285
+ return value.replace(/^\\-/, '-');
3286
+ }
3287
+
3288
+ var escapeFacetValue_1 = {
3289
+ escapeFacetValue: escapeFacetValue$3,
3290
+ unescapeFacetValue: unescapeFacetValue$2
3291
+ };
3292
+
3232
3293
  var generateHierarchicalTree_1 = generateTrees;
3233
3294
 
3234
3295
 
3235
3296
 
3236
3297
 
3237
3298
 
3299
+ var escapeFacetValue$2 = escapeFacetValue_1.escapeFacetValue;
3300
+ var unescapeFacetValue$1 = escapeFacetValue_1.unescapeFacetValue;
3301
+
3238
3302
  function generateTrees(state) {
3239
3303
  return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {
3240
3304
  var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];
@@ -3280,6 +3344,7 @@ function generateTrees(state) {
3280
3344
  count: null, // root level, no count
3281
3345
  isRefined: true, // root level, always refined
3282
3346
  path: null, // root level, no path
3347
+ escapedValue: null,
3283
3348
  exhaustive: rootExhaustive,
3284
3349
  data: null
3285
3350
  });
@@ -3355,7 +3420,7 @@ function generateHierarchicalTree(
3355
3420
  facetCount,
3356
3421
  facetValue,
3357
3422
  hierarchicalSeparator,
3358
- currentRefinement,
3423
+ unescapeFacetValue$1(currentRefinement),
3359
3424
  hierarchicalFacetResult.exhaustive
3360
3425
  );
3361
3426
  }),
@@ -3418,6 +3483,7 @@ function format(
3418
3483
  return {
3419
3484
  name: parts[parts.length - 1].trim(),
3420
3485
  path: facetValue,
3486
+ escapedValue: escapeFacetValue$2(facetValue),
3421
3487
  count: facetCount,
3422
3488
  isRefined:
3423
3489
  currentRefinement === facetValue ||
@@ -3427,6 +3493,11 @@ function format(
3427
3493
  };
3428
3494
  }
3429
3495
 
3496
+ var escapeFacetValue$1 = escapeFacetValue_1.escapeFacetValue;
3497
+ var unescapeFacetValue = escapeFacetValue_1.unescapeFacetValue;
3498
+
3499
+
3500
+
3430
3501
  /**
3431
3502
  * @typedef SearchResults.Facet
3432
3503
  * @type {object}
@@ -3641,7 +3712,7 @@ function findMatchingHierarchicalFacetFromAttributeName(
3641
3712
  }
3642
3713
  **/
3643
3714
  /*eslint-enable */
3644
- function SearchResults(state, results) {
3715
+ function SearchResults(state, results, options) {
3645
3716
  var mainSubResponse = results[0];
3646
3717
 
3647
3718
  this._rawResults = results;
@@ -3653,6 +3724,11 @@ function SearchResults(state, results) {
3653
3724
  self[key] = mainSubResponse[key];
3654
3725
  });
3655
3726
 
3727
+ // Make every key of the result options reachable from the instance
3728
+ Object.keys(options || {}).forEach(function(key) {
3729
+ self[key] = options[key];
3730
+ });
3731
+
3656
3732
  /**
3657
3733
  * query used to generate the results
3658
3734
  * @name query
@@ -3920,7 +3996,7 @@ function SearchResults(state, results) {
3920
3996
  state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {
3921
3997
  // add the disjunctive refinements if it is no more retrieved
3922
3998
  if (!self.disjunctiveFacets[position].data[refinementValue] &&
3923
- state.disjunctiveFacetsRefinements[dfacet].indexOf(refinementValue) > -1) {
3999
+ state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue(refinementValue)) > -1) {
3924
4000
  self.disjunctiveFacets[position].data[refinementValue] = 0;
3925
4001
  }
3926
4002
  });
@@ -3930,7 +4006,7 @@ function SearchResults(state, results) {
3930
4006
  nextDisjunctiveResult++;
3931
4007
  });
3932
4008
 
3933
- // if we have some root level values for hierarchical facets, merge them
4009
+ // if we have some parent level values for hierarchical facets, merge them
3934
4010
  state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {
3935
4011
  var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);
3936
4012
  var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);
@@ -3942,47 +4018,49 @@ function SearchResults(state, results) {
3942
4018
  return;
3943
4019
  }
3944
4020
 
3945
- var result = results[nextDisjunctiveResult];
3946
- var facets = result && result.facets
3947
- ? result.facets
3948
- : {};
3949
- Object.keys(facets).forEach(function(dfacet) {
3950
- var facetResults = facets[dfacet];
3951
- var position = findIndex(state.hierarchicalFacets, function(f) {
3952
- return f.name === hierarchicalFacet.name;
3953
- });
3954
- var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {
3955
- return f.attribute === dfacet;
3956
- });
4021
+ results.slice(nextDisjunctiveResult).forEach(function(result) {
4022
+ var facets = result && result.facets
4023
+ ? result.facets
4024
+ : {};
3957
4025
 
3958
- // previous refinements and no results so not able to find it
3959
- if (attributeIndex === -1) {
3960
- return;
3961
- }
4026
+ Object.keys(facets).forEach(function(dfacet) {
4027
+ var facetResults = facets[dfacet];
4028
+ var position = findIndex(state.hierarchicalFacets, function(f) {
4029
+ return f.name === hierarchicalFacet.name;
4030
+ });
4031
+ var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {
4032
+ return f.attribute === dfacet;
4033
+ });
3962
4034
 
3963
- // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),
3964
- // then the disjunctive values will be `beers` (count: 100),
3965
- // but we do not want to display
3966
- // | beers (100)
3967
- // > IPA (5)
3968
- // We want
3969
- // | beers (5)
3970
- // > IPA (5)
3971
- var defaultData = {};
3972
-
3973
- if (currentRefinement.length > 0) {
3974
- var root = currentRefinement[0].split(separator)[0];
3975
- defaultData[root] = self.hierarchicalFacets[position][attributeIndex].data[root];
3976
- }
4035
+ // previous refinements and no results so not able to find it
4036
+ if (attributeIndex === -1) {
4037
+ return;
4038
+ }
3977
4039
 
3978
- self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(
3979
- defaultData,
3980
- facetResults,
3981
- self.hierarchicalFacets[position][attributeIndex].data
3982
- );
3983
- });
4040
+ // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),
4041
+ // then the disjunctive values will be `beers` (count: 100),
4042
+ // but we do not want to display
4043
+ // | beers (100)
4044
+ // > IPA (5)
4045
+ // We want
4046
+ // | beers (5)
4047
+ // > IPA (5)
4048
+ var defaultData = {};
4049
+
4050
+ if (currentRefinement.length > 0) {
4051
+ var root = currentRefinement[0].split(separator)[0];
4052
+ defaultData[root] = self.hierarchicalFacets[position][attributeIndex].data[root];
4053
+ }
3984
4054
 
3985
- nextDisjunctiveResult++;
4055
+ self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(
4056
+ defaultData,
4057
+ facetResults,
4058
+ self.hierarchicalFacets[position][attributeIndex].data
4059
+ );
4060
+ });
4061
+
4062
+ nextDisjunctiveResult++;
4063
+ });
3986
4064
  });
3987
4065
 
3988
4066
  // add the excludes
@@ -4052,10 +4130,12 @@ function extractNormalizedFacetValues(results, attribute) {
4052
4130
  if (!facet) return [];
4053
4131
 
4054
4132
  return Object.keys(facet.data).map(function(name) {
4133
+ var value = escapeFacetValue$1(name);
4055
4134
  return {
4056
4135
  name: name,
4136
+ escapedValue: value,
4057
4137
  count: facet.data[name],
4058
- isRefined: results._state.isFacetRefined(attribute, name),
4138
+ isRefined: results._state.isFacetRefined(attribute, value),
4059
4139
  isExcluded: results._state.isExcludeRefined(attribute, name)
4060
4140
  };
4061
4141
  });
@@ -4064,10 +4144,12 @@ function extractNormalizedFacetValues(results, attribute) {
4064
4144
  if (!disjunctiveFacet) return [];
4065
4145
 
4066
4146
  return Object.keys(disjunctiveFacet.data).map(function(name) {
4147
+ var value = escapeFacetValue$1(name);
4067
4148
  return {
4068
4149
  name: name,
4150
+ escapedValue: value,
4069
4151
  count: disjunctiveFacet.data[name],
4070
- isRefined: results._state.isDisjunctiveFacetRefined(attribute, name)
4152
+ isRefined: results._state.isDisjunctiveFacetRefined(attribute, value)
4071
4153
  };
4072
4154
  });
4073
4155
  } else if (results._state.isHierarchicalFacet(attribute)) {
@@ -4782,6 +4864,17 @@ DerivedHelper.prototype.getModifiedState = function(parameters) {
4782
4864
 
4783
4865
  var DerivedHelper_1 = DerivedHelper;
4784
4866
 
4867
+ function sortObject(obj) {
4868
+ return Object.keys(obj)
4869
+ .sort(function(a, b) {
4870
+ return a.localeCompare(b);
4871
+ })
4872
+ .reduce(function(acc, curr) {
4873
+ acc[curr] = obj[curr];
4874
+ return acc;
4875
+ }, {});
4876
+ }
4877
+
4785
4878
  var requestBuilder = {
4786
4879
  /**
4787
4880
  * Get all the queries to send to the client, those queries can used directly
@@ -4806,18 +4899,67 @@ var requestBuilder = {
4806
4899
  });
4807
4900
  });
4808
4901
 
4809
- // maybe more to get the root level of hierarchical facets when activated
4902
+ // More to get the parent levels of the hierarchical facets when refined
4810
4903
  state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {
4811
4904
  var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);
4812
-
4813
4905
  var currentRefinement = state.getHierarchicalRefinement(refinedFacet);
4814
- // if we are deeper than level 0 (starting from `beer > IPA`)
4815
- // we want to get the root values
4816
4906
  var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);
4907
+
4908
+ // If we are deeper than level 0 (starting from `beer > IPA`)
4909
+ // we want to get all parent values
4817
4910
  if (currentRefinement.length > 0 && currentRefinement[0].split(separator).length > 1) {
4818
- queries.push({
4819
- indexName: index,
4820
- params: requestBuilder._getDisjunctiveFacetSearchParams(state, refinedFacet, true)
4911
+ // We generate a map of the filters we will use for our facet values queries
4912
+ var filtersMap = currentRefinement[0].split(separator).slice(0, -1).reduce(
4913
+ function createFiltersMap(map, segment, level) {
4914
+ return map.concat({
4915
+ attribute: hierarchicalFacet.attributes[level],
4916
+ value: level === 0
4917
+ ? segment
4918
+ : [map[map.length - 1].value, segment].join(separator)
4919
+ });
4920
+ }
4921
+ , []);
4922
+
4923
+ filtersMap.forEach(function(filter, level) {
4924
+ var params = requestBuilder._getDisjunctiveFacetSearchParams(
4925
+ state,
4926
+ filter.attribute,
4927
+ level === 0
4928
+ );
4929
+
4930
+ // Keep facet filters unrelated to current hierarchical attributes
4931
+ function hasHierarchicalFacetFilter(value) {
4932
+ return hierarchicalFacet.attributes.some(function(attribute) {
4933
+ return attribute === value.split(':')[0];
4934
+ });
4935
+ }
4936
+
4937
+ var filteredFacetFilters = (params.facetFilters || []).reduce(function(acc, facetFilter) {
4938
+ if (Array.isArray(facetFilter)) {
4939
+ var filtered = facetFilter.filter(function(filterValue) {
4940
+ return !hasHierarchicalFacetFilter(filterValue);
4941
+ });
4942
+
4943
+ if (filtered.length > 0) {
4944
+ acc.push(filtered);
4945
+ }
4946
+ }
4947
+
4948
+ if (typeof facetFilter === 'string' && !hasHierarchicalFacetFilter(facetFilter)) {
4949
+ acc.push(facetFilter);
4950
+ }
4951
+
4952
+ return acc;
4953
+ }, []);
4954
+
4955
+ var parent = filtersMap[level - 1];
4956
+ if (level > 0) {
4957
+ params.facetFilters = filteredFacetFilters.concat(parent.attribute + ':' + parent.value);
4958
+ } else {
4959
+ params.facetFilters = filteredFacetFilters.length > 0 ? filteredFacetFilters : undefined;
4960
+ }
4961
+
4962
+ queries.push({indexName: index, params: params});
4821
4963
  });
4822
4964
  }
4823
4965
  });
@@ -4852,7 +4994,7 @@ var requestBuilder = {
4852
4994
  additionalParams.numericFilters = numericFilters;
4853
4995
  }
4854
4996
 
4855
- return merge_1({}, state.getQueryParams(), additionalParams);
4997
+ return sortObject(merge_1({}, state.getQueryParams(), additionalParams));
4856
4998
  },
4857
4999
 
4858
5000
  /**
@@ -4867,16 +5009,16 @@ var requestBuilder = {
4867
5009
  var numericFilters = requestBuilder._getNumericFilters(state, facet);
4868
5010
  var tagFilters = requestBuilder._getTagFilters(state);
4869
5011
  var additionalParams = {
4870
- hitsPerPage: 1,
5012
+ hitsPerPage: 0,
4871
5013
  page: 0,
4872
- attributesToRetrieve: [],
4873
- attributesToHighlight: [],
4874
- attributesToSnippet: [],
4875
- tagFilters: tagFilters,
4876
5014
  analytics: false,
4877
5015
  clickAnalytics: false
4878
5016
  };
4879
5017
 
5018
+ if (tagFilters.length > 0) {
5019
+ additionalParams.tagFilters = tagFilters;
5020
+ }
5021
+
4880
5022
  var hierarchicalFacet = state.getHierarchicalFacetByName(facet);
4881
5023
 
4882
5024
  if (hierarchicalFacet) {
@@ -4897,7 +5039,7 @@ var requestBuilder = {
4897
5039
  additionalParams.facetFilters = facetFilters;
4898
5040
  }
4899
5041
 
4900
- return merge_1({}, state.getQueryParams(), additionalParams);
5042
+ return sortObject(merge_1({}, state.getQueryParams(), additionalParams));
4901
5043
  },
4902
5044
 
4903
5045
  /**
@@ -5090,17 +5232,19 @@ var requestBuilder = {
5090
5232
  if (typeof maxFacetHits === 'number') {
5091
5233
  searchForFacetSearchParameters.maxFacetHits = maxFacetHits;
5092
5234
  }
5093
- return merge_1(
5235
+ return sortObject(merge_1(
5094
5236
  {},
5095
5237
  requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),
5096
5238
  searchForFacetSearchParameters
5097
- );
5239
+ ));
5098
5240
  }
5099
5241
  };
5100
5242
 
5101
5243
  var requestBuilder_1 = requestBuilder;
5102
5244
 
5103
- var version = '3.7.0';
5245
+ var version = '3.11.1';
5246
+
5247
+ var escapeFacetValue = escapeFacetValue_1.escapeFacetValue;
5104
5248
 
5105
5249
  /**
5106
5250
  * Event triggered when a parameter is set or updated
@@ -5418,20 +5562,51 @@ AlgoliaSearchHelper.prototype.findAnswers = function(options) {
5418
5562
  */
5419
5563
  AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxFacetHits, userState) {
5420
5564
  var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';
5565
+ var clientHasInitIndex = typeof this.client.initIndex === 'function';
5421
5566
  if (
5422
5567
  !clientHasSFFV &&
5423
- typeof this.client.initIndex !== 'function'
5568
+ !clientHasInitIndex &&
5569
+ typeof this.client.search !== 'function'
5424
5570
  ) {
5425
5571
  throw new Error(
5426
5572
  'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'
5427
5573
  );
5428
5574
  }
5575
+
5429
5576
  var state = this.state.setQueryParameters(userState || {});
5430
5577
  var isDisjunctive = state.isDisjunctiveFacet(facet);
5431
5578
  var algoliaQuery = requestBuilder_1.getSearchForFacetQuery(facet, query, maxFacetHits, state);
5432
5579
 
5433
5580
  this._currentNbQueries++;
5434
5581
  var self = this;
5582
+ var searchForFacetValuesPromise;
5583
+ // newer algoliasearch ^3.27.1 - ~4.0.0
5584
+ if (clientHasSFFV) {
5585
+ searchForFacetValuesPromise = this.client.searchForFacetValues([
5586
+ {indexName: state.index, params: algoliaQuery}
5587
+ ]);
5588
+ // algoliasearch < 3.27.1
5589
+ } else if (clientHasInitIndex) {
5590
+ searchForFacetValuesPromise = this.client
5591
+ .initIndex(state.index)
5592
+ .searchForFacetValues(algoliaQuery);
5593
+ // algoliasearch ~5.0.0
5594
+ } else {
5595
+ // @MAJOR only use client.search
5596
+ delete algoliaQuery.facetName;
5597
+ searchForFacetValuesPromise = this.client
5598
+ .search([
5599
+ {
5600
+ type: 'facet',
5601
+ facet: facet,
5602
+ indexName: state.index,
5603
+ params: algoliaQuery
5604
+ }
5605
+ ])
5606
+ .then(function processResponse(response) {
5607
+ return response.results[0];
5608
+ });
5609
+ }
5435
5610
 
5436
5611
  this.emit('searchForFacetValues', {
5437
5612
  state: state,
@@ -5439,10 +5614,6 @@ AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxF
5439
5614
  query: query
5440
5615
  });
5441
5616
 
5442
- var searchForFacetValuesPromise = clientHasSFFV
5443
- ? this.client.searchForFacetValues([{indexName: state.index, params: algoliaQuery}])
5444
- : this.client.initIndex(state.index).searchForFacetValues(algoliaQuery);
5445
-
5446
5617
  return searchForFacetValuesPromise.then(function addIsRefined(content) {
5447
5618
  self._currentNbQueries--;
5448
5619
  if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');
@@ -5450,9 +5621,10 @@ AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxF
5450
5621
  content = Array.isArray(content) ? content[0] : content;
5451
5622
 
5452
5623
  content.facetHits.forEach(function(f) {
5624
+ f.escapedValue = escapeFacetValue(f.value);
5453
5625
  f.isRefined = isDisjunctive
5454
- ? state.isDisjunctiveFacetRefined(facet, f.value)
5455
- : state.isFacetRefined(facet, f.value);
5626
+ ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)
5627
+ : state.isFacetRefined(facet, f.escapedValue);
5456
5628
  });
5457
5629
 
5458
5630
  return content;
@@ -6685,6 +6857,7 @@ function getSearchParametersFromProps(props) {
6685
6857
 
6686
6858
  var connectConfigureRelatedItems = createConnectorWithContext({
6687
6859
  displayName: 'AlgoliaConfigureRelatedItems',
6860
+ $$type: 'ais.configureRelatedItems',
6688
6861
  defaultProps: defaultProps$1,
6689
6862
  getProvidedProps: function getProvidedProps() {
6690
6863
  return {};
@@ -6750,11 +6923,14 @@ ConfigureRelatedItems.propTypes = {
6750
6923
  matchingPatterns: PropTypes.object.isRequired,
6751
6924
  transformSearchParameters: PropTypes.func
6752
6925
  };
6753
- connectConfigureRelatedItems(ConfigureRelatedItems);
6926
+ connectConfigureRelatedItems(ConfigureRelatedItems, {
6927
+ $$widgetType: 'ais.configureRelatedItems'
6928
+ });
6754
6929
 
6755
6930
  var MAX_WILDCARD_FACETS = 20;
6756
6931
  var connectDynamicWidgets = createConnectorWithContext({
6757
6932
  displayName: 'AlgoliaDynamicWidgets',
6933
+ $$type: 'ais.dynamicWidgets',
6758
6934
  defaultProps: {
6759
6935
  transformItems: function transformItems(items) {
6760
6936
  return items;
@@ -6810,21 +6986,25 @@ var connectDynamicWidgets = createConnectorWithContext({
6810
6986
  }
6811
6987
  });
6812
6988
 
6813
- function getAttribute(component) {
6814
- if (_typeof(component) !== 'object') {
6989
+ function isReactElement(element) {
6990
+ return _typeof(element) === 'object' && element.props;
6991
+ }
6992
+
6993
+ function getAttribute(element) {
6994
+ if (!isReactElement(element)) {
6815
6995
  return undefined;
6816
6996
  }
6817
6997
 
6818
- if (component.props.attribute) {
6819
- return component.props.attribute;
6998
+ if (element.props.attribute) {
6999
+ return element.props.attribute;
6820
7000
  }
6821
7001
 
6822
- if (Array.isArray(component.props.attributes)) {
6823
- return component.props.attributes[0];
7002
+ if (Array.isArray(element.props.attributes)) {
7003
+ return element.props.attributes[0];
6824
7004
  }
6825
7005
 
6826
- if (component.props.children) {
6827
- return getAttribute(React__default.Children.only(component.props.children));
7006
+ if (element.props.children) {
7007
+ return getAttribute(React__default.Children.only(element.props.children));
6828
7008
  }
6829
7009
 
6830
7010
  return undefined;
@@ -6858,7 +7038,9 @@ function DynamicWidgets(_ref) {
6858
7038
  }));
6859
7039
  }
6860
7040
 
6861
- connectDynamicWidgets(DynamicWidgets);
7041
+ connectDynamicWidgets(DynamicWidgets, {
7042
+ $$widgetType: 'ais.dynamicWidgets'
7043
+ });
6862
7044
 
6863
7045
  // A context rule must consist only of alphanumeric characters, hyphens, and underscores.
6864
7046
  // See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
@@ -6935,6 +7117,7 @@ var defaultProps = {
6935
7117
  };
6936
7118
  var connectQueryRules = createConnectorWithContext({
6937
7119
  displayName: 'AlgoliaQueryRules',
7120
+ $$type: 'ais.queryRules',
6938
7121
  defaultProps: defaultProps,
6939
7122
  getProvidedProps: function getProvidedProps(props, _1, searchResults) {
6940
7123
  var results = getResults(searchResults, {
@@ -6991,6 +7174,8 @@ var connectQueryRules = createConnectorWithContext({
6991
7174
 
6992
7175
  connectQueryRules(function QueryRuleContext() {
6993
7176
  return null;
7177
+ }, {
7178
+ $$widgetType: 'ais.queryRuleContext'
6994
7179
  });
6995
7180
 
6996
7181
  function _createSuper$o(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$o(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -7116,6 +7301,10 @@ _defineProperty(Index, "propTypes", {
7116
7301
 
7117
7302
  _defineProperty(Index, "displayName", 'AlgoliaIndex');
7118
7303
 
7304
+ _defineProperty(Index, "$$type", 'ais.index');
7305
+
7306
+ _defineProperty(Index, "$$widgetType", 'ais.index');
7307
+
7119
7308
  ({
7120
7309
  indexName: PropTypes.string.isRequired,
7121
7310
  indexId: PropTypes.string
@@ -7277,6 +7466,7 @@ function createInstantSearchManager(_ref) {
7277
7466
  var skip = false;
7278
7467
  var stalledSearchTimer = null;
7279
7468
  var initialSearchParameters = helper.state;
7469
+ var searchCounter;
7280
7470
  var widgetsManager = createWidgetsManager(onWidgetsUpdate);
7281
7471
  hydrateSearchClient(searchClient, resultsState);
7282
7472
  var store = createStore({
@@ -7362,12 +7552,13 @@ function createInstantSearchManager(_ref) {
7362
7552
  if (!skip) {
7363
7553
  var _getSearchParameters = getSearchParameters(helper.state),
7364
7554
  mainParameters = _getSearchParameters.mainParameters,
7365
- derivedParameters = _getSearchParameters.derivedParameters; // We have to call `slice` because the method `detach` on the derived
7555
+ derivedParameters = _getSearchParameters.derivedParameters;
7556
+
7557
+ searchCounter = derivedParameters.length + 1; // We have to call `slice` because the method `detach` on the derived
7366
7558
  // helpers mutates the value `derivedHelpers`. The `forEach` loop does
7367
7559
  // not iterate on each value and we're not able to correctly clear the
7368
7560
  // previous derived helpers (memory leak + useless requests).
7369
7561
 
7370
-
7371
7562
  helper.derivedHelpers.slice().forEach(function (derivedHelper) {
7372
7563
  // Since we detach the derived helpers on **every** new search they
7373
7564
  // won't receive intermediate results in case of a stalled search.
@@ -7403,6 +7594,7 @@ function createInstantSearchManager(_ref) {
7403
7594
  function handleSearchSuccess(_ref3) {
7404
7595
  var indexId = _ref3.indexId;
7405
7596
  return function (event) {
7597
+ searchCounter--;
7406
7598
  var state = store.getState();
7407
7599
  var isDerivedHelpersEmpty = !helper.derivedHelpers.length;
7408
7600
  var results = state.results ? state.results : {}; // Switching from mono index to multi index and vice versa must reset the
@@ -7432,7 +7624,7 @@ function createInstantSearchManager(_ref) {
7432
7624
  store.setState(_objectSpread$a(_objectSpread$a({}, partialState), {}, {
7433
7625
  results: results,
7434
7626
  isSearchStalled: nextIsSearchStalled,
7435
- searching: false,
7627
+ searching: searchCounter > 0,
7436
7628
  error: null
7437
7629
  }));
7438
7630
  };
@@ -7757,6 +7949,8 @@ function getMetadataPayload(widgets, searchClient) {
7757
7949
 
7758
7950
  return {
7759
7951
  displayName: displayName,
7952
+ $$type: constructor.$$type,
7953
+ $$widgetType: constructor.$$widgetType,
7760
7954
  params: Object.keys(props).filter(function (prop) {
7761
7955
  return !internalProps.includes(prop) && defaultProps[prop] !== props[prop] && props[prop] !== undefined;
7762
7956
  })
@@ -7841,6 +8035,8 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7841
8035
 
7842
8036
  _this = _super.call(this, props);
7843
8037
 
8038
+ _defineProperty(_assertThisInitialized(_this), "cleanupTimerRef", null);
8039
+
7844
8040
  _defineProperty(_assertThisInitialized(_this), "isUnmounting", false);
7845
8041
 
7846
8042
  var instantSearchManager = createInstantSearchManager({
@@ -7896,6 +8092,11 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7896
8092
  }, {
7897
8093
  key: "componentDidMount",
7898
8094
  value: function componentDidMount() {
8095
+ if (this.cleanupTimerRef) {
8096
+ clearTimeout(this.cleanupTimerRef);
8097
+ this.cleanupTimerRef = null;
8098
+ }
8099
+
7899
8100
  if (isMetadataEnabled()) {
7900
8101
  injectMetadata(this.state.instantSearchManager.widgetsManager.getWidgets(), this.props.searchClient);
7901
8102
  }
@@ -7903,8 +8104,13 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7903
8104
  }, {
7904
8105
  key: "componentWillUnmount",
7905
8106
  value: function componentWillUnmount() {
7906
- this.isUnmounting = true;
7907
- this.state.instantSearchManager.skipSearch();
8107
+ var _this2 = this;
8108
+
8109
+ this.cleanupTimerRef = setTimeout(function () {
8110
+ _this2.isUnmounting = true;
8111
+
8112
+ _this2.state.instantSearchManager.skipSearch();
8113
+ });
7908
8114
  }
7909
8115
  }, {
7910
8116
  key: "createHrefForState",
@@ -8039,9 +8245,9 @@ function transformValue$1(values) {
8039
8245
  if (item.isRefined) {
8040
8246
  acc.push({
8041
8247
  label: item.name,
8042
- // If dealing with a nested "items", "value" is equal to the previous value concatenated with the current label
8043
- // If dealing with the first level, "value" is equal to the current label
8044
- value: item.path
8248
+ // If dealing with a nested "items", "value" is equal to the previous value concatenated with the current value
8249
+ // If dealing with the first level, "value" is equal to the current value
8250
+ value: item.escapedValue
8045
8251
  }); // Create a variable in order to keep the same acc for the recursion, otherwise "reduce" returns a new one
8046
8252
 
8047
8253
  if (item.data) {
@@ -8092,6 +8298,7 @@ function transformValue$1(values) {
8092
8298
 
8093
8299
  var connectBreadcrumb = createConnectorWithContext({
8094
8300
  displayName: 'AlgoliaBreadcrumb',
8301
+ $$type: 'ais.breadcrumb',
8095
8302
  propTypes: {
8096
8303
  attributes: function attributes(props, propName, componentName) {
8097
8304
  var isNotString = function isNotString(val) {
@@ -8155,6 +8362,7 @@ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) {
8155
8362
 
8156
8363
  var connectCurrentRefinements = createConnectorWithContext({
8157
8364
  displayName: 'AlgoliaCurrentRefinements',
8365
+ $$type: 'ais.currentRefinements',
8158
8366
  propTypes: {
8159
8367
  transformItems: PropTypes.func
8160
8368
  },
@@ -8214,7 +8422,7 @@ function getCurrentRefinement$b(props, searchState, context) {
8214
8422
  return currentRefinement;
8215
8423
  }
8216
8424
 
8217
- function getValue$2(path, props, searchState, context) {
8425
+ function getValue$2(value, props, searchState, context) {
8218
8426
  var id = props.id,
8219
8427
  attributes = props.attributes,
8220
8428
  separator = props.separator,
@@ -8224,7 +8432,7 @@ function getValue$2(path, props, searchState, context) {
8224
8432
  var nextRefinement;
8225
8433
 
8226
8434
  if (currentRefinement === null) {
8227
- nextRefinement = path;
8435
+ nextRefinement = value;
8228
8436
  } else {
8229
8437
  var tmpSearchParameters = new algoliasearchHelper_1.SearchParameters({
8230
8438
  hierarchicalFacets: [{
@@ -8235,7 +8443,7 @@ function getValue$2(path, props, searchState, context) {
8235
8443
  showParentLevel: showParentLevel
8236
8444
  }]
8237
8445
  });
8238
- nextRefinement = tmpSearchParameters.toggleHierarchicalFacetRefinement(id, currentRefinement).toggleHierarchicalFacetRefinement(id, path).getHierarchicalRefinement(id)[0];
8446
+ nextRefinement = tmpSearchParameters.toggleHierarchicalFacetRefinement(id, currentRefinement).toggleHierarchicalFacetRefinement(id, value).getHierarchicalRefinement(id)[0];
8239
8447
  }
8240
8448
 
8241
8449
  return nextRefinement;
@@ -8245,7 +8453,7 @@ function transformValue(value, props, searchState, context) {
8245
8453
  return value.map(function (v) {
8246
8454
  return {
8247
8455
  label: v.name,
8248
- value: getValue$2(v.path, props, searchState, context),
8456
+ value: getValue$2(v.escapedValue, props, searchState, context),
8249
8457
  count: v.count,
8250
8458
  isRefined: v.isRefined,
8251
8459
  items: v.data && transformValue(v.data, props, searchState, context)
@@ -8285,7 +8493,7 @@ var sortBy$1 = ['name:asc'];
8285
8493
  * websites. From a UX point of view, we suggest not displaying more than two levels deep.
8286
8494
  * @name connectHierarchicalMenu
8287
8495
  * @requirements To use this widget, your attributes must be formatted in a specific way.
8288
- * If you want for example to have a hiearchical menu of categories, objects in your index
8496
+ * If you want for example to have a hierarchical menu of categories, objects in your index
8289
8497
  * should be formatted this way:
8290
8498
  *
8291
8499
  * ```json
@@ -8326,6 +8534,7 @@ var sortBy$1 = ['name:asc'];
8326
8534
 
8327
8535
  var connectHierarchicalMenu = createConnectorWithContext({
8328
8536
  displayName: 'AlgoliaHierarchicalMenu',
8537
+ $$type: 'ais.hierarchicalMenu',
8329
8538
  propTypes: {
8330
8539
  attributes: function attributes(props, propName, componentName) {
8331
8540
  var isNotString = function isNotString(val) {
@@ -8450,7 +8659,7 @@ var connectHierarchicalMenu = createConnectorWithContext({
8450
8659
  multiIndexContext: props.indexContextValue
8451
8660
  });
8452
8661
  var items = !currentRefinement ? [] : [{
8453
- label: "".concat(rootAttribute, ": ").concat(currentRefinement),
8662
+ label: "".concat(rootAttribute, ": ").concat(unescapeFacetValue$3(currentRefinement)),
8454
8663
  attribute: rootAttribute,
8455
8664
  value: function value(nextState) {
8456
8665
  return _refine$8(props, nextState, '', {
@@ -8541,6 +8750,7 @@ var highlight = function highlight(_ref) {
8541
8750
 
8542
8751
  var connectHighlight = createConnectorWithContext({
8543
8752
  displayName: 'AlgoliaHighlighter',
8753
+ $$type: 'ais.highlighter',
8544
8754
  propTypes: {},
8545
8755
  getProvidedProps: function getProvidedProps() {
8546
8756
  return {
@@ -8595,6 +8805,7 @@ var connectHighlight = createConnectorWithContext({
8595
8805
 
8596
8806
  var connectHits = createConnectorWithContext({
8597
8807
  displayName: 'AlgoliaHits',
8808
+ $$type: 'ais.hits',
8598
8809
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
8599
8810
  var results = getResults(searchResults, {
8600
8811
  ais: props.contextValue,
@@ -8665,6 +8876,7 @@ function getCurrentRefinement$a(props, searchState, context) {
8665
8876
 
8666
8877
  var connectHitsPerPage = createConnectorWithContext({
8667
8878
  displayName: 'AlgoliaHitsPerPage',
8879
+ $$type: 'ais.hitsPerPage',
8668
8880
  propTypes: {
8669
8881
  defaultRefinement: PropTypes.number.isRequired,
8670
8882
  items: PropTypes.arrayOf(PropTypes.shape({
@@ -8784,6 +8996,7 @@ function extractHitsFromCachedHits(cachedHits) {
8784
8996
 
8785
8997
  var connectInfiniteHits = createConnectorWithContext({
8786
8998
  displayName: 'AlgoliaInfiniteHits',
8999
+ $$type: 'ais.infiniteHits',
8787
9000
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
8788
9001
  var _this = this;
8789
9002
 
@@ -8885,9 +9098,9 @@ function getCurrentRefinement$8(props, searchState, context) {
8885
9098
  return currentRefinement;
8886
9099
  }
8887
9100
 
8888
- function getValue$1(name, props, searchState, context) {
9101
+ function getValue$1(value, props, searchState, context) {
8889
9102
  var currentRefinement = getCurrentRefinement$8(props, searchState, context);
8890
- return name === currentRefinement ? '' : name;
9103
+ return value === currentRefinement ? '' : value;
8891
9104
  }
8892
9105
 
8893
9106
  function getLimit$1(_ref) {
@@ -8934,6 +9147,7 @@ var defaultSortBy = ['count:desc', 'name:asc'];
8934
9147
 
8935
9148
  var connectMenu = createConnectorWithContext({
8936
9149
  displayName: 'AlgoliaMenu',
9150
+ $$type: 'ais.menu',
8937
9151
  propTypes: {
8938
9152
  attribute: PropTypes.string.isRequired,
8939
9153
  showMore: PropTypes.bool,
@@ -8985,7 +9199,7 @@ var connectMenu = createConnectorWithContext({
8985
9199
  items = searchForFacetValuesResults[attribute].map(function (v) {
8986
9200
  return {
8987
9201
  label: v.value,
8988
- value: getValue$1(v.value, props, searchState, {
9202
+ value: getValue$1(v.escapedValue, props, searchState, {
8989
9203
  ais: props.contextValue,
8990
9204
  multiIndexContext: props.indexContextValue
8991
9205
  }),
@@ -9005,7 +9219,7 @@ var connectMenu = createConnectorWithContext({
9005
9219
  }).map(function (v) {
9006
9220
  return {
9007
9221
  label: v.name,
9008
- value: getValue$1(v.name, props, searchState, {
9222
+ value: getValue$1(v.escapedValue, props, searchState, {
9009
9223
  ais: props.contextValue,
9010
9224
  multiIndexContext: props.indexContextValue
9011
9225
  }),
@@ -9076,7 +9290,7 @@ var connectMenu = createConnectorWithContext({
9076
9290
  multiIndexContext: props.indexContextValue
9077
9291
  }),
9078
9292
  items: currentRefinement === null ? [] : [{
9079
- label: "".concat(props.attribute, ": ").concat(currentRefinement),
9293
+ label: "".concat(props.attribute, ": ").concat(unescapeFacetValue$3(currentRefinement)),
9080
9294
  attribute: props.attribute,
9081
9295
  value: function value(nextState) {
9082
9296
  return _refine$7(props, nextState, '', {
@@ -9095,17 +9309,14 @@ function _arrayWithHoles(arr) {
9095
9309
  }
9096
9310
 
9097
9311
  function _iterableToArrayLimit(arr, i) {
9098
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9099
-
9100
- if (_i == null) return;
9312
+ if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
9101
9313
  var _arr = [];
9102
9314
  var _n = true;
9103
9315
  var _d = false;
9104
-
9105
- var _s, _e;
9316
+ var _e = undefined;
9106
9317
 
9107
9318
  try {
9108
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
9319
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
9109
9320
  _arr.push(_s.value);
9110
9321
 
9111
9322
  if (i && _arr.length === i) break;
@@ -9172,11 +9383,11 @@ function getCurrentRefinement$7(props, searchState, context) {
9172
9383
  }
9173
9384
 
9174
9385
  function isRefinementsRangeIncludesInsideItemRange(stats, start, end) {
9175
- return stats.min > start && stats.min < end || stats.max > start && stats.max < end;
9386
+ return stats.min >= start && stats.min <= end || stats.max >= start && stats.max <= end;
9176
9387
  }
9177
9388
 
9178
9389
  function isItemRangeIncludedInsideRefinementsRange(stats, start, end) {
9179
- return start > stats.min && start < stats.max || end > stats.min && end < stats.max;
9390
+ return start >= stats.min && start <= stats.max || end >= stats.min && end <= stats.max;
9180
9391
  }
9181
9392
 
9182
9393
  function itemHasRefinement(attribute, results, value) {
@@ -9217,6 +9428,7 @@ function _cleanUp$5(props, searchState, context) {
9217
9428
 
9218
9429
  var connectNumericMenu = createConnectorWithContext({
9219
9430
  displayName: 'AlgoliaNumericMenu',
9431
+ $$type: 'ais.numericMenu',
9220
9432
  propTypes: {
9221
9433
  id: PropTypes.string,
9222
9434
  attribute: PropTypes.string.isRequired,
@@ -9388,6 +9600,7 @@ function _refine$5(props, searchState, nextPage, context) {
9388
9600
 
9389
9601
  var connectPagination = createConnectorWithContext({
9390
9602
  displayName: 'AlgoliaPagination',
9603
+ $$type: 'ais.pagination',
9391
9604
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
9392
9605
  var results = getResults(searchResults, {
9393
9606
  ais: props.contextValue,
@@ -9443,6 +9656,7 @@ var connectPagination = createConnectorWithContext({
9443
9656
 
9444
9657
  var connectPoweredBy = createConnectorWithContext({
9445
9658
  displayName: 'AlgoliaPoweredBy',
9659
+ $$type: 'ais.poweredBy',
9446
9660
  getProvidedProps: function getProvidedProps() {
9447
9661
  var hostname = typeof window === 'undefined' || typeof window.location === 'undefined' ? '' : window.location.hostname;
9448
9662
  var url = 'https://www.algolia.com/?' + 'utm_source=react-instantsearch&' + 'utm_medium=website&' + "utm_content=".concat(hostname, "&") + 'utm_campaign=poweredby';
@@ -9616,6 +9830,7 @@ function _cleanUp$4(props, searchState, context) {
9616
9830
 
9617
9831
  var connectRange = createConnectorWithContext({
9618
9832
  displayName: 'AlgoliaRange',
9833
+ $$type: 'ais.range',
9619
9834
  propTypes: {
9620
9835
  id: PropTypes.string,
9621
9836
  attribute: PropTypes.string.isRequired,
@@ -9785,12 +10000,12 @@ function getCurrentRefinement$4(props, searchState, context) {
9785
10000
  return [];
9786
10001
  }
9787
10002
 
9788
- function getValue(name, props, searchState, context) {
10003
+ function getValue(value, props, searchState, context) {
9789
10004
  var currentRefinement = getCurrentRefinement$4(props, searchState, context);
9790
- var isAnewValue = currentRefinement.indexOf(name) === -1;
9791
- var nextRefinement = isAnewValue ? currentRefinement.concat([name]) // cannot use .push(), it mutates
10005
+ var isAnewValue = currentRefinement.indexOf(value) === -1;
10006
+ var nextRefinement = isAnewValue ? currentRefinement.concat([value]) // cannot use .push(), it mutates
9792
10007
  : currentRefinement.filter(function (selectedValue) {
9793
- return selectedValue !== name;
10008
+ return selectedValue !== value;
9794
10009
  }); // cannot use .splice(), it mutates
9795
10010
 
9796
10011
  return nextRefinement;
@@ -9849,6 +10064,7 @@ function _cleanUp$3(props, searchState, context) {
9849
10064
  var sortBy = ['isRefined', 'count:desc', 'name:asc'];
9850
10065
  var connectRefinementList = createConnectorWithContext({
9851
10066
  displayName: 'AlgoliaRefinementList',
10067
+ $$type: 'ais.refinementList',
9852
10068
  propTypes: {
9853
10069
  id: PropTypes.string,
9854
10070
  attribute: PropTypes.string.isRequired,
@@ -9900,7 +10116,7 @@ var connectRefinementList = createConnectorWithContext({
9900
10116
  var items = isFromSearch ? searchForFacetValuesResults[attribute].map(function (v) {
9901
10117
  return {
9902
10118
  label: v.value,
9903
- value: getValue(v.value, props, searchState, {
10119
+ value: getValue(v.escapedValue, props, searchState, {
9904
10120
  ais: props.contextValue,
9905
10121
  multiIndexContext: props.indexContextValue
9906
10122
  }),
@@ -9918,7 +10134,7 @@ var connectRefinementList = createConnectorWithContext({
9918
10134
  }).map(function (v) {
9919
10135
  return {
9920
10136
  label: v.name,
9921
- value: getValue(v.name, props, searchState, {
10137
+ value: getValue(v.escapedValue, props, searchState, {
9922
10138
  ais: props.contextValue,
9923
10139
  multiIndexContext: props.indexContextValue
9924
10140
  }),
@@ -9991,7 +10207,7 @@ var connectRefinementList = createConnectorWithContext({
9991
10207
  },
9992
10208
  items: getCurrentRefinement$4(props, searchState, context).map(function (item) {
9993
10209
  return {
9994
- label: "".concat(item),
10210
+ label: unescapeFacetValue$3("".concat(item)),
9995
10211
  value: function value(nextState) {
9996
10212
  var nextSelectedItems = getCurrentRefinement$4(props, nextState, context).filter(function (other) {
9997
10213
  return other !== item;
@@ -10017,6 +10233,7 @@ var connectRefinementList = createConnectorWithContext({
10017
10233
 
10018
10234
  var connectScrollTo = createConnectorWithContext({
10019
10235
  displayName: 'AlgoliaScrollTo',
10236
+ $$type: 'ais.scrollTo',
10020
10237
  propTypes: {
10021
10238
  scrollOn: PropTypes.string
10022
10239
  },
@@ -10106,6 +10323,7 @@ function _cleanUp$2(props, searchState, context) {
10106
10323
 
10107
10324
  var connectSearchBox = createConnectorWithContext({
10108
10325
  displayName: 'AlgoliaSearchBox',
10326
+ $$type: 'ais.searchBox',
10109
10327
  propTypes: {
10110
10328
  defaultRefinement: PropTypes.string
10111
10329
  },
@@ -10174,6 +10392,7 @@ function getCurrentRefinement$2(props, searchState, context) {
10174
10392
 
10175
10393
  var connectRelevantSort = createConnectorWithContext({
10176
10394
  displayName: 'AlgoliaRelevantSort',
10395
+ $$type: 'ais.relevantSort',
10177
10396
  getProvidedProps: function getProvidedProps(props, _searchState, searchResults) {
10178
10397
  var results = getResults(searchResults, {
10179
10398
  ais: props.contextValue,
@@ -10246,6 +10465,7 @@ function getCurrentRefinement$1(props, searchState, context) {
10246
10465
 
10247
10466
  var connectSortBy = createConnectorWithContext({
10248
10467
  displayName: 'AlgoliaSortBy',
10468
+ $$type: 'ais.sortBy',
10249
10469
  propTypes: {
10250
10470
  defaultRefinement: PropTypes.string,
10251
10471
  items: PropTypes.arrayOf(PropTypes.shape({
@@ -10314,6 +10534,7 @@ var connectSortBy = createConnectorWithContext({
10314
10534
 
10315
10535
  var connectStats = createConnectorWithContext({
10316
10536
  displayName: 'AlgoliaStats',
10537
+ $$type: 'ais.stats',
10317
10538
  getProvidedProps: function getProvidedProps(props, _searchState, searchResults) {
10318
10539
  var results = getResults(searchResults, {
10319
10540
  ais: props.contextValue,
@@ -10385,6 +10606,7 @@ function _cleanUp$1(props, searchState, context) {
10385
10606
 
10386
10607
  var connectToggleRefinement = createConnectorWithContext({
10387
10608
  displayName: 'AlgoliaToggle',
10609
+ $$type: 'ais.toggle',
10388
10610
  propTypes: {
10389
10611
  label: PropTypes.string.isRequired,
10390
10612
  attribute: PropTypes.string.isRequired,
@@ -10553,6 +10775,7 @@ function _cleanUp(props, searchState, context) {
10553
10775
 
10554
10776
  var connectVoiceSearch = createConnectorWithContext({
10555
10777
  displayName: 'AlgoliaVoiceSearch',
10778
+ $$type: 'ais.voiceSearch',
10556
10779
  propTypes: {
10557
10780
  defaultRefinement: PropTypes.string
10558
10781
  },
@@ -11035,7 +11258,9 @@ var BreadcrumbWidget = function BreadcrumbWidget(props) {
11035
11258
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(Breadcrumb$1, props));
11036
11259
  };
11037
11260
 
11038
- connectBreadcrumb(BreadcrumbWidget);
11261
+ connectBreadcrumb(BreadcrumbWidget, {
11262
+ $$widgetType: 'ais.breadcrumb'
11263
+ });
11039
11264
 
11040
11265
  function _createSuper$i(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$i(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11041
11266
 
@@ -11131,7 +11356,9 @@ var ClearRefinementsWidget = function ClearRefinementsWidget(props) {
11131
11356
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(ClearRefinements$2, props));
11132
11357
  };
11133
11358
 
11134
- var ClearRefinements = connectCurrentRefinements(ClearRefinementsWidget);
11359
+ var ClearRefinements = connectCurrentRefinements(ClearRefinementsWidget, {
11360
+ $$widgetType: 'ais.clearRefinements'
11361
+ });
11135
11362
 
11136
11363
  var cx$m = createClassNames('CurrentRefinements');
11137
11364
  var CurrentRefinements = function CurrentRefinements(_ref) {
@@ -11239,7 +11466,9 @@ var CurrentRefinementsWidget = function CurrentRefinementsWidget(props) {
11239
11466
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(CurrentRefinements$1, props));
11240
11467
  };
11241
11468
 
11242
- connectCurrentRefinements(CurrentRefinementsWidget);
11469
+ connectCurrentRefinements(CurrentRefinementsWidget, {
11470
+ $$widgetType: 'ais.currentRefinements'
11471
+ });
11243
11472
 
11244
11473
  function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11245
11474
 
@@ -11460,6 +11689,7 @@ var SearchBox$1 = /*#__PURE__*/function (_Component) {
11460
11689
  return /*#__PURE__*/React__default.createElement("div", {
11461
11690
  className: classnames(cx$l(''), className)
11462
11691
  }, /*#__PURE__*/React__default.createElement("form", {
11692
+ ref: this.props.formRef,
11463
11693
  noValidate: true,
11464
11694
  onSubmit: this.props.onSubmit ? this.props.onSubmit : this.onSubmit,
11465
11695
  onReset: this.onReset,
@@ -11517,6 +11747,9 @@ _defineProperty(SearchBox$1, "propTypes", {
11517
11747
  onChange: PropTypes.func,
11518
11748
  isSearchStalled: PropTypes.bool,
11519
11749
  showLoadingIndicator: PropTypes.bool,
11750
+ formRef: PropTypes.oneOfType([PropTypes.func, PropTypes.exact({
11751
+ current: PropTypes.object
11752
+ })]),
11520
11753
  inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.exact({
11521
11754
  current: PropTypes.object
11522
11755
  })]),
@@ -11757,7 +11990,7 @@ var HierarchicalMenu = /*#__PURE__*/function (_Component) {
11757
11990
  createURL = _this$props.createURL,
11758
11991
  refine = _this$props.refine;
11759
11992
  return /*#__PURE__*/React__default.createElement(Link, {
11760
- className: cx$k('link'),
11993
+ className: cx$k('link', item.isRefined && 'link--selected'),
11761
11994
  onClick: function onClick() {
11762
11995
  return refine(item.value);
11763
11996
  },
@@ -11832,7 +12065,7 @@ var HierarchicalMenu$1 = translatable({
11832
12065
  * @name HierarchicalMenu
11833
12066
  * @kind widget
11834
12067
  * @requirements To use this widget, your attributes must be formatted in a specific way.
11835
- * If you want for example to have a hiearchical menu of categories, objects in your index
12068
+ * If you want for example to have a hierarchical menu of categories, objects in your index
11836
12069
  * should be formatted this way:
11837
12070
  *
11838
12071
  * ```json
@@ -11882,6 +12115,7 @@ var HierarchicalMenu$1 = translatable({
11882
12115
  * @themeKey ais-HierarchicalMenu-item--selected - the selected menu list item
11883
12116
  * @themeKey ais-HierarchicalMenu-item--parent - the menu list item containing children
11884
12117
  * @themeKey ais-HierarchicalMenu-link - the clickable menu element
12118
+ * @themeKey ais-HierarchicalMenu-link--selected - the clickable element of a selected menu list item
11885
12119
  * @themeKey ais-HierarchicalMenu-label - the label of each item
11886
12120
  * @themeKey ais-HierarchicalMenu-count - the count of values for each item
11887
12121
  * @themeKey ais-HierarchicalMenu-showMore - the button used to display more categories
@@ -11917,7 +12151,9 @@ var HierarchicalMenuWidget = function HierarchicalMenuWidget(props) {
11917
12151
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(HierarchicalMenu$1, props));
11918
12152
  };
11919
12153
 
11920
- connectHierarchicalMenu(HierarchicalMenuWidget);
12154
+ connectHierarchicalMenu(HierarchicalMenuWidget, {
12155
+ $$widgetType: 'ais.hierarchicalMenu'
12156
+ });
11921
12157
 
11922
12158
  var Highlight$2 = function Highlight(_ref) {
11923
12159
  var cx = _ref.cx,
@@ -12054,7 +12290,9 @@ var Highlight$1 = function Highlight(props) {
12054
12290
  * );
12055
12291
  */
12056
12292
 
12057
- var Highlight = connectHighlight(Highlight$1);
12293
+ var Highlight = connectHighlight(Highlight$1, {
12294
+ $$widgetType: 'ais.highlight'
12295
+ });
12058
12296
 
12059
12297
  var cx$i = createClassNames('Hits');
12060
12298
 
@@ -12132,7 +12370,9 @@ Hits$1.propTypes = {
12132
12370
  * );
12133
12371
  */
12134
12372
 
12135
- var Hits = connectHits(Hits$1);
12373
+ var Hits = connectHits(Hits$1, {
12374
+ $$widgetType: 'ais.hits'
12375
+ });
12136
12376
 
12137
12377
  function _createSuper$e(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$e(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12138
12378
 
@@ -12299,7 +12539,9 @@ _defineProperty(HitsPerPage, "defaultProps", {
12299
12539
  * );
12300
12540
  */
12301
12541
 
12302
- connectHitsPerPage(HitsPerPage);
12542
+ connectHitsPerPage(HitsPerPage, {
12543
+ $$widgetType: 'ais.hitsPerPage'
12544
+ });
12303
12545
 
12304
12546
  function _createSuper$c(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$c(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12305
12547
 
@@ -12428,7 +12670,9 @@ var InfiniteHits$1 = translatable({
12428
12670
  * );
12429
12671
  */
12430
12672
 
12431
- connectInfiniteHits(InfiniteHits$1);
12673
+ connectInfiniteHits(InfiniteHits$1, {
12674
+ $$widgetType: 'ais.infiniteHits'
12675
+ });
12432
12676
 
12433
12677
  function _createSuper$b(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$b(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12434
12678
 
@@ -12604,7 +12848,9 @@ var MenuWidget = function MenuWidget(props) {
12604
12848
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(Menu$1, props));
12605
12849
  };
12606
12850
 
12607
- connectMenu(MenuWidget);
12851
+ connectMenu(MenuWidget, {
12852
+ $$widgetType: 'ais.menu'
12853
+ });
12608
12854
 
12609
12855
  function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12610
12856
 
@@ -12743,7 +12989,9 @@ var MenuSelectWidget = function MenuSelectWidget(props) {
12743
12989
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(MenuSelect$1, props));
12744
12990
  };
12745
12991
 
12746
- connectMenu(MenuSelectWidget);
12992
+ connectMenu(MenuSelectWidget, {
12993
+ $$widgetType: 'ais.menuSelect'
12994
+ });
12747
12995
 
12748
12996
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12749
12997
 
@@ -12888,7 +13136,9 @@ var NumericMenuWidget = function NumericMenuWidget(props) {
12888
13136
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(NumericMenu$1, props));
12889
13137
  };
12890
13138
 
12891
- connectNumericMenu(NumericMenuWidget);
13139
+ connectNumericMenu(NumericMenuWidget, {
13140
+ $$widgetType: 'ais.numericMenu'
13141
+ });
12892
13142
 
12893
13143
  function _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12894
13144
 
@@ -13217,7 +13467,9 @@ var PaginationWidget = function PaginationWidget(props) {
13217
13467
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(Pagination$2, props));
13218
13468
  };
13219
13469
 
13220
- var Pagination = connectPagination(PaginationWidget);
13470
+ var Pagination = connectPagination(PaginationWidget, {
13471
+ $$widgetType: 'ais.pagination'
13472
+ });
13221
13473
 
13222
13474
  function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13223
13475
 
@@ -13226,35 +13478,13 @@ var cx$b = createClassNames('PoweredBy');
13226
13478
 
13227
13479
  var AlgoliaLogo = function AlgoliaLogo() {
13228
13480
  return /*#__PURE__*/React__default.createElement("svg", {
13229
- xmlns: "http://www.w3.org/2000/svg",
13230
- baseProfile: "basic",
13231
- viewBox: "0 0 1366 362",
13232
- width: "100",
13481
+ viewBox: "0 0 512 117",
13482
+ width: "118",
13233
13483
  height: "27",
13234
13484
  className: cx$b('logo')
13235
- }, /*#__PURE__*/React__default.createElement("linearGradient", {
13236
- id: "g",
13237
- x1: "428.258",
13238
- x2: "434.145",
13239
- y1: "404.15",
13240
- y2: "409.85",
13241
- gradientUnits: "userSpaceOnUse",
13242
- gradientTransform: "matrix(94.045 0 0 -94.072 -40381.527 38479.52)"
13243
- }, /*#__PURE__*/React__default.createElement("stop", {
13244
- offset: "0",
13245
- stopColor: "#00AEFF"
13246
- }), /*#__PURE__*/React__default.createElement("stop", {
13247
- offset: "1",
13248
- stopColor: "#3369E7"
13249
- })), /*#__PURE__*/React__default.createElement("path", {
13250
- d: "M61.8 15.4h242.8c23.9 0 43.4 19.4 43.4 43.4v242.9c0 23.9-19.4 43.4-43.4 43.4H61.8c-23.9 0-43.4-19.4-43.4-43.4v-243c0-23.9 19.4-43.3 43.4-43.3z",
13251
- fill: "url(#g)"
13252
- }), /*#__PURE__*/React__default.createElement("path", {
13253
- d: "M187 98.7c-51.4 0-93.1 41.7-93.1 93.2S135.6 285 187 285s93.1-41.7 93.1-93.2-41.6-93.1-93.1-93.1zm0 158.8c-36.2 0-65.6-29.4-65.6-65.6s29.4-65.6 65.6-65.6 65.6 29.4 65.6 65.6-29.3 65.6-65.6 65.6zm0-117.8v48.9c0 1.4 1.5 2.4 2.8 1.7l43.4-22.5c1-.5 1.3-1.7.8-2.7-9-15.8-25.7-26.6-45-27.3-1 0-2 .8-2 1.9zm-60.8-35.9l-5.7-5.7c-5.6-5.6-14.6-5.6-20.2 0l-6.8 6.8c-5.6 5.6-5.6 14.6 0 20.2l5.6 5.6c.9.9 2.2.7 3-.2 3.3-4.5 6.9-8.8 10.9-12.8 4.1-4.1 8.3-7.7 12.9-11 1-.6 1.1-2 .3-2.9zM217.5 89V77.7c0-7.9-6.4-14.3-14.3-14.3h-33.3c-7.9 0-14.3 6.4-14.3 14.3v11.6c0 1.3 1.2 2.2 2.5 1.9 9.3-2.7 19.1-4.1 29-4.1 9.5 0 18.9 1.3 28 3.8 1.2.3 2.4-.6 2.4-1.9z",
13254
- fill: "#FFFFFF"
13255
- }), /*#__PURE__*/React__default.createElement("path", {
13256
- d: "M842.5 267.6c0 26.7-6.8 46.2-20.5 58.6-13.7 12.4-34.6 18.6-62.8 18.6-10.3 0-31.7-2-48.8-5.8l6.3-31c14.3 3 33.2 3.8 43.1 3.8 15.7 0 26.9-3.2 33.6-9.6s10-15.9 10-28.5v-6.4c-3.9 1.9-9 3.8-15.3 5.8-6.3 1.9-13.6 2.9-21.8 2.9-10.8 0-20.6-1.7-29.5-5.1-8.9-3.4-16.6-8.4-22.9-15-6.3-6.6-11.3-14.9-14.8-24.8s-5.3-27.6-5.3-40.6c0-12.2 1.9-27.5 5.6-37.7 3.8-10.2 9.2-19 16.5-26.3 7.2-7.3 16-12.9 26.3-17s22.4-6.7 35.5-6.7c12.7 0 24.4 1.6 35.8 3.5 11.4 1.9 21.1 3.9 29 6.1v155.2zm-108.7-77.2c0 16.4 3.6 34.6 10.8 42.2 7.2 7.6 16.5 11.4 27.9 11.4 6.2 0 12.1-.9 17.6-2.6 5.5-1.7 9.9-3.7 13.4-6.1v-97.1c-2.8-.6-14.5-3-25.8-3.3-14.2-.4-25 5.4-32.6 14.7-7.5 9.3-11.3 25.6-11.3 40.8zm294.3 0c0 13.2-1.9 23.2-5.8 34.1s-9.4 20.2-16.5 27.9c-7.1 7.7-15.6 13.7-25.6 17.9s-25.4 6.6-33.1 6.6c-7.7-.1-23-2.3-32.9-6.6-9.9-4.3-18.4-10.2-25.5-17.9-7.1-7.7-12.6-17-16.6-27.9s-6-20.9-6-34.1c0-13.2 1.8-25.9 5.8-36.7 4-10.8 9.6-20 16.8-27.7s15.8-13.6 25.6-17.8c9.9-4.2 20.8-6.2 32.6-6.2s22.7 2.1 32.7 6.2c10 4.2 18.6 10.1 25.6 17.8 7.1 7.7 12.6 16.9 16.6 27.7 4.2 10.8 6.3 23.5 6.3 36.7zm-40 .1c0-16.9-3.7-31-10.9-40.8-7.2-9.9-17.3-14.8-30.2-14.8-12.9 0-23 4.9-30.2 14.8-7.2 9.9-10.7 23.9-10.7 40.8 0 17.1 3.6 28.6 10.8 38.5 7.2 10 17.3 14.9 30.2 14.9 12.9 0 23-5 30.2-14.9 7.2-10 10.8-21.4 10.8-38.5zm127.1 86.4c-64.1.3-64.1-51.8-64.1-60.1L1051 32l39.1-6.2v183.6c0 4.7 0 34.5 25.1 34.6v32.9zm68.9 0h-39.3V108.1l39.3-6.2v175zm-19.7-193.5c13.1 0 23.8-10.6 23.8-23.7S1177.6 36 1164.4 36s-23.8 10.6-23.8 23.7 10.7 23.7 23.8 23.7zm117.4 18.6c12.9 0 23.8 1.6 32.6 4.8 8.8 3.2 15.9 7.7 21.1 13.4s8.9 13.5 11.1 21.7c2.3 8.2 3.4 17.2 3.4 27.1v100.6c-6 1.3-15.1 2.8-27.3 4.6s-25.9 2.7-41.1 2.7c-10.1 0-19.4-1-27.7-2.9-8.4-1.9-15.5-5-21.5-9.3-5.9-4.3-10.5-9.8-13.9-16.6-3.3-6.8-5-16.4-5-26.4 0-9.6 1.9-15.7 5.6-22.3 3.8-6.6 8.9-12 15.3-16.2 6.5-4.2 13.9-7.2 22.4-9s17.4-2.7 26.6-2.7c4.3 0 8.8.3 13.6.8s9.8 1.4 15.2 2.7v-6.4c0-4.5-.5-8.8-1.6-12.8-1.1-4.1-3-7.6-5.6-10.7-2.7-3.1-6.2-5.5-10.6-7.2s-10-3-16.7-3c-9 0-17.2 1.1-24.7 2.4-7.5 1.3-13.7 2.8-18.4 4.5l-4.7-32.1c4.9-1.7 12.2-3.4 21.6-5.1s19.5-2.6 30.3-2.6zm3.3 141.9c12 0 20.9-.7 27.1-1.9v-39.8c-2.2-.6-5.3-1.3-9.4-1.9-4.1-.6-8.6-1-13.6-1-4.3 0-8.7.3-13.1 1-4.4.6-8.4 1.8-11.9 3.5s-6.4 4.1-8.5 7.2c-2.2 3.1-3.2 4.9-3.2 9.6 0 9.2 3.2 14.5 9 18 5.9 3.6 13.7 5.3 23.6 5.3zM512.9 103c12.9 0 23.8 1.6 32.6 4.8 8.8 3.2 15.9 7.7 21.1 13.4 5.3 5.8 8.9 13.5 11.1 21.7 2.3 8.2 3.4 17.2 3.4 27.1v100.6c-6 1.3-15.1 2.8-27.3 4.6-12.2 1.8-25.9 2.7-41.1 2.7-10.1 0-19.4-1-27.7-2.9-8.4-1.9-15.5-5-21.5-9.3-5.9-4.3-10.5-9.8-13.9-16.6-3.3-6.8-5-16.4-5-26.4 0-9.6 1.9-15.7 5.6-22.3 3.8-6.6 8.9-12 15.3-16.2 6.5-4.2 13.9-7.2 22.4-9s17.4-2.7 26.6-2.7c4.3 0 8.8.3 13.6.8 4.7.5 9.8 1.4 15.2 2.7v-6.4c0-4.5-.5-8.8-1.6-12.8-1.1-4.1-3-7.6-5.6-10.7-2.7-3.1-6.2-5.5-10.6-7.2-4.4-1.7-10-3-16.7-3-9 0-17.2 1.1-24.7 2.4-7.5 1.3-13.7 2.8-18.4 4.5l-4.7-32.1c4.9-1.7 12.2-3.4 21.6-5.1 9.4-1.8 19.5-2.6 30.3-2.6zm3.4 142c12 0 20.9-.7 27.1-1.9v-39.8c-2.2-.6-5.3-1.3-9.4-1.9-4.1-.6-8.6-1-13.6-1-4.3 0-8.7.3-13.1 1-4.4.6-8.4 1.8-11.9 3.5s-6.4 4.1-8.5 7.2c-2.2 3.1-3.2 4.9-3.2 9.6 0 9.2 3.2 14.5 9 18s13.7 5.3 23.6 5.3zm158.5 31.9c-64.1.3-64.1-51.8-64.1-60.1L610.6 32l39.1-6.2v183.6c0 4.7 0 34.5 25.1 34.6v32.9z",
13257
- fill: "#182359"
13485
+ }, /*#__PURE__*/React__default.createElement("path", {
13486
+ fill: "#003DFF",
13487
+ d: "M249.5 64.2V1.4c0-.9-.7-1.5-1.6-1.4L236.2 2a1.4 1.4 0 0 0-1.2 1.3V67c0 3 0 21.6 22.4 22.3a1.4 1.4 0 0 0 1.5-1.4v-9.5c0-.7-.6-1.3-1.2-1.4-8.2-.9-8.2-11-8.2-12.7ZM443.5 24.4h-11.8c-.8 0-1.4.6-1.4 1.4v62c0 .8.6 1.4 1.4 1.4h11.8c.8 0 1.4-.6 1.4-1.4v-62c0-.8-.6-1.4-1.4-1.4ZM431.7 16.6h11.8c.8 0 1.4-.6 1.4-1.3v-14c0-.8-.7-1.4-1.6-1.3L431.5 2a1.4 1.4 0 0 0-1.2 1.3v12c0 .8.6 1.4 1.4 1.4Zm-20.5 47.6V1.4c0-.9-.7-1.5-1.5-1.4L397.9 2a1.4 1.4 0 0 0-1.2 1.3V67c0 3 0 21.6 22.4 22.3a1.4 1.4 0 0 0 1.5-1.4v-9.5c0-.7-.5-1.3-1.2-1.4-8.2-.9-8.2-11-8.2-12.7Zm-30.7-31c-2.6-2.8-5.8-5-9.6-6.5a31.7 31.7 0 0 0-12-2.3c-4.5 0-8.5.7-12.2 2.3A27.9 27.9 0 0 0 331 43.5a39.6 39.6 0 0 0 0 26.3c1.5 4 3.6 7.5 6.2 10.3 2.6 2.9 5.8 5 9.5 6.7a38 38 0 0 0 12.2 2.4c2.8 0 8.6-.9 12.3-2.4a27 27 0 0 0 9.5-6.7 35.1 35.1 0 0 0 8.3-23c0-4.9-.8-9.6-2.4-13.6-1.5-4-3.5-7.4-6.1-10.2ZM370 71.5a13.1 13.1 0 0 1-11.2 5.6 13 13 0 0 1-11.2-5.6c-2.7-3.6-4-7.9-4-14.2 0-6.3 1.3-11.5 4-15.1a13 13 0 0 1 11.1-5.5 13 13 0 0 1 11.3 5.5c2.6 3.6 4 8.8 4 15 0 6.4-1.3 10.6-4 14.3Zm-161.6-47H197a32 32 0 0 0-27 15 33.8 33.8 0 0 0 8.9 45.9 18.8 18.8 0 0 0 11.2 3.1H191.2l.6-.2h.2a21 21 0 0 0 16.5-14.6V87c0 .8.6 1.4 1.4 1.4h11.7c.8 0 1.4-.6 1.4-1.4V25.8c0-.8-.6-1.4-1.4-1.4h-13Zm0 48.3a17.8 17.8 0 0 1-10.4 3.5h-.2a12.5 12.5 0 0 1-.7 0A18.4 18.4 0 0 1 180.4 51c2.7-6.8 9-11.6 16.6-11.6h11.5v33.3Zm289-48.3H486a32 32 0 0 0-27 15 33.8 33.8 0 0 0 8.8 45.9 18.8 18.8 0 0 0 11.3 3.1h1.1l.6-.2h.2a21 21 0 0 0 16.5-14.6V87c0 .8.6 1.4 1.4 1.4h11.7c.8 0 1.4-.6 1.4-1.4V25.8c0-.8-.6-1.4-1.4-1.4h-13.1Zm0 48.3a17.8 17.8 0 0 1-10.5 3.5h-.9A18.4 18.4 0 0 1 469.4 51c2.6-6.8 9-11.6 16.6-11.6h11.5v33.3ZM306.3 24.4h-11.5a32 32 0 0 0-27 15 33.7 33.7 0 0 0-5.1 14.6 34.6 34.6 0 0 0 0 7.6c1 8.9 5.4 16.7 11.8 22a19.5 19.5 0 0 0 2.2 1.7 18.8 18.8 0 0 0 21.6-.6c3.8-2.7 6.7-6.7 8-11.1V87.9c0 5-1.3 8.9-4 11.5-2.7 2.6-7.3 3.9-13.6 3.9-2.6 0-6.7-.2-10.9-.6a1.4 1.4 0 0 0-1.4 1l-3 10a1.4 1.4 0 0 0 1.1 1.8c5 .7 10 1 12.8 1 11.4 0 19.8-2.4 25.3-7.4 5-4.6 7.8-11.4 8.2-20.7V25.8c0-.8-.6-1.4-1.3-1.4h-13.2Zm0 15s.2 32.4 0 33.4a17.5 17.5 0 0 1-10 3.4h-.2a13.6 13.6 0 0 1-1.7 0A18.7 18.7 0 0 1 278.3 51c2.6-6.8 9-11.6 16.5-11.6h11.5ZM58.2 0A58.3 58.3 0 1 0 86 109.5c.9-.5 1-1.6.3-2.2l-5.5-4.9a3.8 3.8 0 0 0-4-.6A47 47 0 0 1 11 57.5 47.3 47.3 0 0 1 58.2 11h47.3v84L78.7 71.2a2 2 0 0 0-3 .3 22 22 0 1 1 4.4-15.2 4 4 0 0 0 1.3 2.6l7 6.2c.8.7 2 .3 2.3-.8a33 33 0 0 0-30.4-39 33 33 0 0 0-35 32 33.3 33.3 0 0 0 32.2 33.9 32.8 32.8 0 0 0 20-6.3l35.1 31c1.5 1.4 3.9.3 3.9-1.7V2.2a2.2 2.2 0 0 0-2.2-2.2h-56Z"
13258
13488
  }));
13259
13489
  };
13260
13490
 
@@ -13334,7 +13564,9 @@ var PoweredBy$1 = translatable({
13334
13564
  * );
13335
13565
  */
13336
13566
 
13337
- connectPoweredBy(PoweredBy$1);
13567
+ connectPoweredBy(PoweredBy$1, {
13568
+ $$widgetType: 'ais.poweredBy'
13569
+ });
13338
13570
 
13339
13571
  function _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13340
13572
 
@@ -13533,7 +13765,9 @@ var RangeInputWidget = function RangeInputWidget(props) {
13533
13765
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(RangeInput, props));
13534
13766
  };
13535
13767
 
13536
- connectRange(RangeInputWidget);
13768
+ connectRange(RangeInputWidget, {
13769
+ $$widgetType: 'ais.rangeInput'
13770
+ });
13537
13771
 
13538
13772
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13539
13773
 
@@ -13783,7 +14017,9 @@ var RatingMenuWidget = function RatingMenuWidget(props) {
13783
14017
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(RatingMenu$1, props));
13784
14018
  };
13785
14019
 
13786
- connectRange(RatingMenuWidget);
14020
+ connectRange(RatingMenuWidget, {
14021
+ $$widgetType: 'ais.ratingMenu'
14022
+ });
13787
14023
 
13788
14024
  function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13789
14025
 
@@ -13969,7 +14205,9 @@ var RefinementListWidget = function RefinementListWidget(props) {
13969
14205
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(RefinementList$2, props));
13970
14206
  };
13971
14207
 
13972
- var RefinementList = connectRefinementList(RefinementListWidget);
14208
+ var RefinementList = connectRefinementList(RefinementListWidget, {
14209
+ $$widgetType: 'ais.refinementList'
14210
+ });
13973
14211
 
13974
14212
  function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13975
14213
 
@@ -14052,7 +14290,9 @@ _defineProperty(ScrollTo, "propTypes", {
14052
14290
  * );
14053
14291
  */
14054
14292
 
14055
- connectScrollTo(ScrollTo);
14293
+ connectScrollTo(ScrollTo, {
14294
+ $$widgetType: 'ais.scrollTo'
14295
+ });
14056
14296
 
14057
14297
  /**
14058
14298
  * The SearchBox component displays a search box that lets the user search for a specific query.
@@ -14102,7 +14342,9 @@ connectScrollTo(ScrollTo);
14102
14342
  * );
14103
14343
  */
14104
14344
 
14105
- var SearchBox = connectSearchBox(SearchBox$2);
14345
+ var SearchBox = connectSearchBox(SearchBox$2, {
14346
+ $$widgetType: 'ais.searchBox'
14347
+ });
14106
14348
 
14107
14349
  var cx$6 = createClassNames('Snippet');
14108
14350
 
@@ -14157,7 +14399,9 @@ var Snippet = function Snippet(props) {
14157
14399
  * );
14158
14400
  */
14159
14401
 
14160
- connectHighlight(Snippet);
14402
+ connectHighlight(Snippet, {
14403
+ $$widgetType: 'ais.snippet'
14404
+ });
14161
14405
 
14162
14406
  var cx$5 = createClassNames('RelevantSort');
14163
14407
 
@@ -14200,7 +14444,9 @@ RelevantSort.propTypes = {
14200
14444
  textComponent: PropTypes.func
14201
14445
  };
14202
14446
 
14203
- connectRelevantSort(RelevantSort);
14447
+ connectRelevantSort(RelevantSort, {
14448
+ $$widgetType: 'ais.relevantSort'
14449
+ });
14204
14450
 
14205
14451
  function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14206
14452
 
@@ -14297,7 +14543,9 @@ _defineProperty(SortBy, "defaultProps", {
14297
14543
  * );
14298
14544
  */
14299
14545
 
14300
- connectSortBy(SortBy);
14546
+ connectSortBy(SortBy, {
14547
+ $$widgetType: 'ais.sortBy'
14548
+ });
14301
14549
 
14302
14550
  var cx$3 = createClassNames('Stats');
14303
14551
 
@@ -14358,7 +14606,9 @@ var Stats$1 = translatable({
14358
14606
  * );
14359
14607
  */
14360
14608
 
14361
- connectStats(Stats$1);
14609
+ connectStats(Stats$1, {
14610
+ $$widgetType: 'ais.stats'
14611
+ });
14362
14612
 
14363
14613
  var cx$2 = createClassNames('ToggleRefinement');
14364
14614
 
@@ -14438,7 +14688,9 @@ ToggleRefinement.defaultProps = {
14438
14688
  * );
14439
14689
  */
14440
14690
 
14441
- connectToggleRefinement(ToggleRefinement);
14691
+ connectToggleRefinement(ToggleRefinement, {
14692
+ $$widgetType: 'ais.toggleRefinement'
14693
+ });
14442
14694
 
14443
14695
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14444
14696
 
@@ -14774,7 +15026,9 @@ var VoiceSearch$1 = translatable({
14774
15026
  disabledButtonTitle: 'Search by voice (not supported on this browser)'
14775
15027
  })(VoiceSearch);
14776
15028
 
14777
- connectVoiceSearch(VoiceSearch$1);
15029
+ connectVoiceSearch(VoiceSearch$1, {
15030
+ $$widgetType: 'ais.voiceSearch'
15031
+ });
14778
15032
 
14779
15033
  var cx = createClassNames('QueryRuleCustomData');
14780
15034
 
@@ -14799,7 +15053,9 @@ var QueryRuleCustomDataWidget = function QueryRuleCustomDataWidget(props) {
14799
15053
  return /*#__PURE__*/React__default.createElement(PanelWrapper, props, /*#__PURE__*/React__default.createElement(QueryRuleCustomData, props));
14800
15054
  };
14801
15055
 
14802
- connectQueryRules(QueryRuleCustomDataWidget);
15056
+ connectQueryRules(QueryRuleCustomDataWidget, {
15057
+ $$widgetType: 'ais.queryRuleCustomData'
15058
+ });
14803
15059
 
14804
15060
  var HitComponent = function HitComponent(hits, props) {
14805
15061
  var propsObj = {