@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
@@ -5,10 +5,10 @@ var inherits$1 = require('./inherits-e47b5342.js');
5
5
  var _typeof$1 = require('./typeof-220bbf73.js');
6
6
  var React = require('react');
7
7
  var PropTypes = require('prop-types');
8
- var index = require('./index-50be6759.js');
8
+ var index = require('./index-9ec837cc.js');
9
9
  var reactBootstrap = require('react-bootstrap');
10
10
  var urlFor = require('./urlFor.js');
11
- var moment = require('./moment-aca40de1.js');
11
+ var moment = require('./moment-f730814d.js');
12
12
  var index$1 = require('./index-65621b6c.js');
13
13
  require('./_commonjsHelpers-06173234.js');
14
14
  require('./core.get-iterator-method-5643aa10.js');
@@ -64,9 +64,6 @@ function _defineProperties(target, props) {
64
64
  function _createClass(Constructor, protoProps, staticProps) {
65
65
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
66
66
  if (staticProps) _defineProperties(Constructor, staticProps);
67
- Object.defineProperty(Constructor, "prototype", {
68
- writable: false
69
- });
70
67
  return Constructor;
71
68
  }
72
69
 
@@ -78,6 +75,15 @@ function _assertThisInitialized(self) {
78
75
  return self;
79
76
  }
80
77
 
78
+ function _setPrototypeOf(o, p) {
79
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
80
+ o.__proto__ = p;
81
+ return o;
82
+ };
83
+
84
+ return _setPrototypeOf(o, p);
85
+ }
86
+
81
87
  function _inherits(subClass, superClass) {
82
88
  if (typeof superClass !== "function" && superClass !== null) {
83
89
  throw new TypeError("Super expression must either be null or a function");
@@ -90,27 +96,28 @@ function _inherits(subClass, superClass) {
90
96
  configurable: true
91
97
  }
92
98
  });
93
- Object.defineProperty(subClass, "prototype", {
94
- writable: false
95
- });
96
- if (superClass) index._setPrototypeOf(subClass, superClass);
99
+ if (superClass) _setPrototypeOf(subClass, superClass);
97
100
  }
98
101
 
99
102
  function _typeof(obj) {
100
103
  "@babel/helpers - typeof";
101
104
 
102
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
103
- return typeof obj;
104
- } : function (obj) {
105
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
106
- }, _typeof(obj);
105
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
106
+ _typeof = function _typeof(obj) {
107
+ return typeof obj;
108
+ };
109
+ } else {
110
+ _typeof = function _typeof(obj) {
111
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
112
+ };
113
+ }
114
+
115
+ return _typeof(obj);
107
116
  }
108
117
 
109
118
  function _possibleConstructorReturn(self, call) {
110
119
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
111
120
  return call;
112
- } else if (call !== void 0) {
113
- throw new TypeError("Derived constructors may only return object or undefined");
114
121
  }
115
122
 
116
123
  return _assertThisInitialized(self);
@@ -421,6 +428,9 @@ var getPropertyByPath = function getPropertyByPath(object, path) {
421
428
  function getObjectType(object) {
422
429
  return Object.prototype.toString.call(object).slice(8, -1);
423
430
  }
431
+ function unescapeFacetValue$3(value) {
432
+ return value.replace(/^\\-/, '-');
433
+ }
424
434
 
425
435
  var instantSearchContext = /*#__PURE__*/React.createContext({
426
436
  onInternalStateUpdate: function onInternalStateUpdate() {
@@ -476,6 +486,8 @@ function createConnectorWithoutContext(connectorDesc) {
476
486
 
477
487
  var isWidget = typeof connectorDesc.getSearchParameters === 'function' || typeof connectorDesc.getMetadata === 'function' || typeof connectorDesc.transitionState === 'function';
478
488
  return function (Composed) {
489
+ var additionalWidgetProperties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
490
+
479
491
  var Connector = /*#__PURE__*/function (_Component) {
480
492
  _inherits(Connector, _Component);
481
493
 
@@ -492,6 +504,8 @@ function createConnectorWithoutContext(connectorDesc) {
492
504
 
493
505
  _defineProperty(_assertThisInitialized(_this), "unregisterWidget", void 0);
494
506
 
507
+ _defineProperty(_assertThisInitialized(_this), "cleanupTimerRef", null);
508
+
495
509
  _defineProperty(_assertThisInitialized(_this), "isUnmounting", false);
496
510
 
497
511
  _defineProperty(_assertThisInitialized(_this), "state", {
@@ -546,6 +560,11 @@ function createConnectorWithoutContext(connectorDesc) {
546
560
  value: function componentDidMount() {
547
561
  var _this2 = this;
548
562
 
563
+ if (this.cleanupTimerRef) {
564
+ clearTimeout(this.cleanupTimerRef);
565
+ this.cleanupTimerRef = null;
566
+ }
567
+
549
568
  this.unsubscribe = this.props.contextValue.store.subscribe(function () {
550
569
  if (!_this2.isUnmounting) {
551
570
  _this2.setState({
@@ -597,23 +616,29 @@ function createConnectorWithoutContext(connectorDesc) {
597
616
  }, {
598
617
  key: "componentWillUnmount",
599
618
  value: function componentWillUnmount() {
600
- this.isUnmounting = true;
619
+ var _this3 = this;
601
620
 
602
- if (this.unsubscribe) {
603
- this.unsubscribe();
604
- }
621
+ this.cleanupTimerRef = setTimeout(function () {
622
+ _this3.isUnmounting = true;
623
+
624
+ if (_this3.unsubscribe) {
625
+ _this3.unsubscribe();
626
+ }
627
+
628
+ if (_this3.unregisterWidget) {
629
+ _this3.unregisterWidget();
605
630
 
606
- if (this.unregisterWidget) {
607
- this.unregisterWidget();
631
+ if (typeof connectorDesc.cleanUp === 'function') {
632
+ var nextState = connectorDesc.cleanUp.call(_this3, _this3.props, _this3.props.contextValue.store.getState().widgets);
608
633
 
609
- if (typeof connectorDesc.cleanUp === 'function') {
610
- var nextState = connectorDesc.cleanUp.call(this, this.props, this.props.contextValue.store.getState().widgets);
611
- this.props.contextValue.store.setState(_objectSpread$e(_objectSpread$e({}, this.props.contextValue.store.getState()), {}, {
612
- widgets: nextState
613
- }));
614
- this.props.contextValue.onSearchStateChange(removeEmptyKey(nextState));
634
+ _this3.props.contextValue.store.setState(_objectSpread$e(_objectSpread$e({}, _this3.props.contextValue.store.getState()), {}, {
635
+ widgets: nextState
636
+ }));
637
+
638
+ _this3.props.contextValue.onSearchStateChange(removeEmptyKey(nextState));
639
+ }
615
640
  }
616
- }
641
+ });
617
642
  }
618
643
  }, {
619
644
  key: "getProvidedProps",
@@ -696,6 +721,10 @@ function createConnectorWithoutContext(connectorDesc) {
696
721
 
697
722
  _defineProperty(Connector, "displayName", "".concat(connectorDesc.displayName, "(").concat(getDisplayName(Composed), ")"));
698
723
 
724
+ _defineProperty(Connector, "$$type", connectorDesc.$$type);
725
+
726
+ _defineProperty(Connector, "$$widgetType", additionalWidgetProperties.$$widgetType);
727
+
699
728
  _defineProperty(Connector, "propTypes", connectorDesc.propTypes);
700
729
 
701
730
  _defineProperty(Connector, "defaultProps", connectorDesc.defaultProps);
@@ -707,8 +736,8 @@ function createConnectorWithoutContext(connectorDesc) {
707
736
  }
708
737
 
709
738
  var createConnectorWithContext = function createConnectorWithContext(connectorDesc) {
710
- return function (Composed) {
711
- var Connector = createConnectorWithoutContext(connectorDesc)(Composed);
739
+ return function (Composed, additionalWidgetProperties) {
740
+ var Connector = createConnectorWithoutContext(connectorDesc)(Composed, additionalWidgetProperties);
712
741
 
713
742
  var ConnectorWrapper = function ConnectorWrapper(props) {
714
743
  return /*#__PURE__*/React__default["default"].createElement(InstantSearchConsumer, null, function (contextValue) {
@@ -825,7 +854,7 @@ function parseAlgoliaHit(_ref2) {
825
854
  });
826
855
  }
827
856
 
828
- var version$1 = '6.22.0';
857
+ var version$1 = '6.38.0';
829
858
 
830
859
  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); }; }
831
860
 
@@ -1155,6 +1184,7 @@ function getId$f() {
1155
1184
 
1156
1185
  var connectConfigure = createConnectorWithContext({
1157
1186
  displayName: 'AlgoliaConfigure',
1187
+ $$type: 'ais.configure',
1158
1188
  getProvidedProps: function getProvidedProps() {
1159
1189
  return {};
1160
1190
  },
@@ -1252,6 +1282,8 @@ var connectConfigure = createConnectorWithContext({
1252
1282
 
1253
1283
  var Configure = connectConfigure(function Configure() {
1254
1284
  return null;
1285
+ }, {
1286
+ $$widgetType: 'ais.configure'
1255
1287
  });
1256
1288
 
1257
1289
  function _arrayLikeToArray(arr, len) {
@@ -1269,7 +1301,7 @@ function _arrayWithoutHoles(arr) {
1269
1301
  }
1270
1302
 
1271
1303
  function _iterableToArray(iter) {
1272
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1304
+ if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
1273
1305
  }
1274
1306
 
1275
1307
  function _unsupportedIterableToArray(o, minLen) {
@@ -3236,12 +3268,44 @@ var formatSort = function formatSort(sortBy, defaults) {
3236
3268
  );
3237
3269
  };
3238
3270
 
3271
+ /**
3272
+ * Replaces a leading - with \-
3273
+ * @private
3274
+ * @param {any} value the facet value to replace
3275
+ * @returns any
3276
+ */
3277
+ function escapeFacetValue$3(value) {
3278
+ if (typeof value !== 'string') return value;
3279
+
3280
+ return String(value).replace(/^-/, '\\-');
3281
+ }
3282
+
3283
+ /**
3284
+ * Replaces a leading \- with -
3285
+ * @private
3286
+ * @param {any} value the escaped facet value
3287
+ * @returns any
3288
+ */
3289
+ function unescapeFacetValue$2(value) {
3290
+ if (typeof value !== 'string') return value;
3291
+
3292
+ return value.replace(/^\\-/, '-');
3293
+ }
3294
+
3295
+ var escapeFacetValue_1 = {
3296
+ escapeFacetValue: escapeFacetValue$3,
3297
+ unescapeFacetValue: unescapeFacetValue$2
3298
+ };
3299
+
3239
3300
  var generateHierarchicalTree_1 = generateTrees;
3240
3301
 
3241
3302
 
3242
3303
 
3243
3304
 
3244
3305
 
3306
+ var escapeFacetValue$2 = escapeFacetValue_1.escapeFacetValue;
3307
+ var unescapeFacetValue$1 = escapeFacetValue_1.unescapeFacetValue;
3308
+
3245
3309
  function generateTrees(state) {
3246
3310
  return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {
3247
3311
  var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];
@@ -3287,6 +3351,7 @@ function generateTrees(state) {
3287
3351
  count: null, // root level, no count
3288
3352
  isRefined: true, // root level, always refined
3289
3353
  path: null, // root level, no path
3354
+ escapedValue: null,
3290
3355
  exhaustive: rootExhaustive,
3291
3356
  data: null
3292
3357
  });
@@ -3362,7 +3427,7 @@ function generateHierarchicalTree(
3362
3427
  facetCount,
3363
3428
  facetValue,
3364
3429
  hierarchicalSeparator,
3365
- currentRefinement,
3430
+ unescapeFacetValue$1(currentRefinement),
3366
3431
  hierarchicalFacetResult.exhaustive
3367
3432
  );
3368
3433
  }),
@@ -3425,6 +3490,7 @@ function format(
3425
3490
  return {
3426
3491
  name: parts[parts.length - 1].trim(),
3427
3492
  path: facetValue,
3493
+ escapedValue: escapeFacetValue$2(facetValue),
3428
3494
  count: facetCount,
3429
3495
  isRefined:
3430
3496
  currentRefinement === facetValue ||
@@ -3434,6 +3500,11 @@ function format(
3434
3500
  };
3435
3501
  }
3436
3502
 
3503
+ var escapeFacetValue$1 = escapeFacetValue_1.escapeFacetValue;
3504
+ var unescapeFacetValue = escapeFacetValue_1.unescapeFacetValue;
3505
+
3506
+
3507
+
3437
3508
  /**
3438
3509
  * @typedef SearchResults.Facet
3439
3510
  * @type {object}
@@ -3648,7 +3719,7 @@ function findMatchingHierarchicalFacetFromAttributeName(
3648
3719
  }
3649
3720
  **/
3650
3721
  /*eslint-enable */
3651
- function SearchResults(state, results) {
3722
+ function SearchResults(state, results, options) {
3652
3723
  var mainSubResponse = results[0];
3653
3724
 
3654
3725
  this._rawResults = results;
@@ -3660,6 +3731,11 @@ function SearchResults(state, results) {
3660
3731
  self[key] = mainSubResponse[key];
3661
3732
  });
3662
3733
 
3734
+ // Make every key of the result options reachable from the instance
3735
+ Object.keys(options || {}).forEach(function(key) {
3736
+ self[key] = options[key];
3737
+ });
3738
+
3663
3739
  /**
3664
3740
  * query used to generate the results
3665
3741
  * @name query
@@ -3927,7 +4003,7 @@ function SearchResults(state, results) {
3927
4003
  state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {
3928
4004
  // add the disjunctive refinements if it is no more retrieved
3929
4005
  if (!self.disjunctiveFacets[position].data[refinementValue] &&
3930
- state.disjunctiveFacetsRefinements[dfacet].indexOf(refinementValue) > -1) {
4006
+ state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue(refinementValue)) > -1) {
3931
4007
  self.disjunctiveFacets[position].data[refinementValue] = 0;
3932
4008
  }
3933
4009
  });
@@ -3937,7 +4013,7 @@ function SearchResults(state, results) {
3937
4013
  nextDisjunctiveResult++;
3938
4014
  });
3939
4015
 
3940
- // if we have some root level values for hierarchical facets, merge them
4016
+ // if we have some parent level values for hierarchical facets, merge them
3941
4017
  state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {
3942
4018
  var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);
3943
4019
  var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);
@@ -3949,47 +4025,49 @@ function SearchResults(state, results) {
3949
4025
  return;
3950
4026
  }
3951
4027
 
3952
- var result = results[nextDisjunctiveResult];
3953
- var facets = result && result.facets
3954
- ? result.facets
3955
- : {};
3956
- Object.keys(facets).forEach(function(dfacet) {
3957
- var facetResults = facets[dfacet];
3958
- var position = findIndex(state.hierarchicalFacets, function(f) {
3959
- return f.name === hierarchicalFacet.name;
3960
- });
3961
- var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {
3962
- return f.attribute === dfacet;
3963
- });
4028
+ results.slice(nextDisjunctiveResult).forEach(function(result) {
4029
+ var facets = result && result.facets
4030
+ ? result.facets
4031
+ : {};
3964
4032
 
3965
- // previous refinements and no results so not able to find it
3966
- if (attributeIndex === -1) {
3967
- return;
3968
- }
4033
+ Object.keys(facets).forEach(function(dfacet) {
4034
+ var facetResults = facets[dfacet];
4035
+ var position = findIndex(state.hierarchicalFacets, function(f) {
4036
+ return f.name === hierarchicalFacet.name;
4037
+ });
4038
+ var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {
4039
+ return f.attribute === dfacet;
4040
+ });
3969
4041
 
3970
- // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),
3971
- // then the disjunctive values will be `beers` (count: 100),
3972
- // but we do not want to display
3973
- // | beers (100)
3974
- // > IPA (5)
3975
- // We want
3976
- // | beers (5)
3977
- // > IPA (5)
3978
- var defaultData = {};
3979
-
3980
- if (currentRefinement.length > 0) {
3981
- var root = currentRefinement[0].split(separator)[0];
3982
- defaultData[root] = self.hierarchicalFacets[position][attributeIndex].data[root];
3983
- }
4042
+ // previous refinements and no results so not able to find it
4043
+ if (attributeIndex === -1) {
4044
+ return;
4045
+ }
3984
4046
 
3985
- self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(
3986
- defaultData,
3987
- facetResults,
3988
- self.hierarchicalFacets[position][attributeIndex].data
3989
- );
3990
- });
4047
+ // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),
4048
+ // then the disjunctive values will be `beers` (count: 100),
4049
+ // but we do not want to display
4050
+ // | beers (100)
4051
+ // > IPA (5)
4052
+ // We want
4053
+ // | beers (5)
4054
+ // > IPA (5)
4055
+ var defaultData = {};
4056
+
4057
+ if (currentRefinement.length > 0) {
4058
+ var root = currentRefinement[0].split(separator)[0];
4059
+ defaultData[root] = self.hierarchicalFacets[position][attributeIndex].data[root];
4060
+ }
3991
4061
 
3992
- nextDisjunctiveResult++;
4062
+ self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(
4063
+ defaultData,
4064
+ facetResults,
4065
+ self.hierarchicalFacets[position][attributeIndex].data
4066
+ );
4067
+ });
4068
+
4069
+ nextDisjunctiveResult++;
4070
+ });
3993
4071
  });
3994
4072
 
3995
4073
  // add the excludes
@@ -4059,10 +4137,12 @@ function extractNormalizedFacetValues(results, attribute) {
4059
4137
  if (!facet) return [];
4060
4138
 
4061
4139
  return Object.keys(facet.data).map(function(name) {
4140
+ var value = escapeFacetValue$1(name);
4062
4141
  return {
4063
4142
  name: name,
4143
+ escapedValue: value,
4064
4144
  count: facet.data[name],
4065
- isRefined: results._state.isFacetRefined(attribute, name),
4145
+ isRefined: results._state.isFacetRefined(attribute, value),
4066
4146
  isExcluded: results._state.isExcludeRefined(attribute, name)
4067
4147
  };
4068
4148
  });
@@ -4071,10 +4151,12 @@ function extractNormalizedFacetValues(results, attribute) {
4071
4151
  if (!disjunctiveFacet) return [];
4072
4152
 
4073
4153
  return Object.keys(disjunctiveFacet.data).map(function(name) {
4154
+ var value = escapeFacetValue$1(name);
4074
4155
  return {
4075
4156
  name: name,
4157
+ escapedValue: value,
4076
4158
  count: disjunctiveFacet.data[name],
4077
- isRefined: results._state.isDisjunctiveFacetRefined(attribute, name)
4159
+ isRefined: results._state.isDisjunctiveFacetRefined(attribute, value)
4078
4160
  };
4079
4161
  });
4080
4162
  } else if (results._state.isHierarchicalFacet(attribute)) {
@@ -4789,6 +4871,17 @@ DerivedHelper.prototype.getModifiedState = function(parameters) {
4789
4871
 
4790
4872
  var DerivedHelper_1 = DerivedHelper;
4791
4873
 
4874
+ function sortObject(obj) {
4875
+ return Object.keys(obj)
4876
+ .sort(function(a, b) {
4877
+ return a.localeCompare(b);
4878
+ })
4879
+ .reduce(function(acc, curr) {
4880
+ acc[curr] = obj[curr];
4881
+ return acc;
4882
+ }, {});
4883
+ }
4884
+
4792
4885
  var requestBuilder = {
4793
4886
  /**
4794
4887
  * Get all the queries to send to the client, those queries can used directly
@@ -4813,18 +4906,67 @@ var requestBuilder = {
4813
4906
  });
4814
4907
  });
4815
4908
 
4816
- // maybe more to get the root level of hierarchical facets when activated
4909
+ // More to get the parent levels of the hierarchical facets when refined
4817
4910
  state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {
4818
4911
  var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);
4819
-
4820
4912
  var currentRefinement = state.getHierarchicalRefinement(refinedFacet);
4821
- // if we are deeper than level 0 (starting from `beer > IPA`)
4822
- // we want to get the root values
4823
4913
  var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);
4914
+
4915
+ // If we are deeper than level 0 (starting from `beer > IPA`)
4916
+ // we want to get all parent values
4824
4917
  if (currentRefinement.length > 0 && currentRefinement[0].split(separator).length > 1) {
4825
- queries.push({
4826
- indexName: index,
4827
- params: requestBuilder._getDisjunctiveFacetSearchParams(state, refinedFacet, true)
4918
+ // We generate a map of the filters we will use for our facet values queries
4919
+ var filtersMap = currentRefinement[0].split(separator).slice(0, -1).reduce(
4920
+ function createFiltersMap(map, segment, level) {
4921
+ return map.concat({
4922
+ attribute: hierarchicalFacet.attributes[level],
4923
+ value: level === 0
4924
+ ? segment
4925
+ : [map[map.length - 1].value, segment].join(separator)
4926
+ });
4927
+ }
4928
+ , []);
4929
+
4930
+ filtersMap.forEach(function(filter, level) {
4931
+ var params = requestBuilder._getDisjunctiveFacetSearchParams(
4932
+ state,
4933
+ filter.attribute,
4934
+ level === 0
4935
+ );
4936
+
4937
+ // Keep facet filters unrelated to current hierarchical attributes
4938
+ function hasHierarchicalFacetFilter(value) {
4939
+ return hierarchicalFacet.attributes.some(function(attribute) {
4940
+ return attribute === value.split(':')[0];
4941
+ });
4942
+ }
4943
+
4944
+ var filteredFacetFilters = (params.facetFilters || []).reduce(function(acc, facetFilter) {
4945
+ if (Array.isArray(facetFilter)) {
4946
+ var filtered = facetFilter.filter(function(filterValue) {
4947
+ return !hasHierarchicalFacetFilter(filterValue);
4948
+ });
4949
+
4950
+ if (filtered.length > 0) {
4951
+ acc.push(filtered);
4952
+ }
4953
+ }
4954
+
4955
+ if (typeof facetFilter === 'string' && !hasHierarchicalFacetFilter(facetFilter)) {
4956
+ acc.push(facetFilter);
4957
+ }
4958
+
4959
+ return acc;
4960
+ }, []);
4961
+
4962
+ var parent = filtersMap[level - 1];
4963
+ if (level > 0) {
4964
+ params.facetFilters = filteredFacetFilters.concat(parent.attribute + ':' + parent.value);
4965
+ } else {
4966
+ params.facetFilters = filteredFacetFilters.length > 0 ? filteredFacetFilters : undefined;
4967
+ }
4968
+
4969
+ queries.push({indexName: index, params: params});
4828
4970
  });
4829
4971
  }
4830
4972
  });
@@ -4859,7 +5001,7 @@ var requestBuilder = {
4859
5001
  additionalParams.numericFilters = numericFilters;
4860
5002
  }
4861
5003
 
4862
- return merge_1({}, state.getQueryParams(), additionalParams);
5004
+ return sortObject(merge_1({}, state.getQueryParams(), additionalParams));
4863
5005
  },
4864
5006
 
4865
5007
  /**
@@ -4874,16 +5016,16 @@ var requestBuilder = {
4874
5016
  var numericFilters = requestBuilder._getNumericFilters(state, facet);
4875
5017
  var tagFilters = requestBuilder._getTagFilters(state);
4876
5018
  var additionalParams = {
4877
- hitsPerPage: 1,
5019
+ hitsPerPage: 0,
4878
5020
  page: 0,
4879
- attributesToRetrieve: [],
4880
- attributesToHighlight: [],
4881
- attributesToSnippet: [],
4882
- tagFilters: tagFilters,
4883
5021
  analytics: false,
4884
5022
  clickAnalytics: false
4885
5023
  };
4886
5024
 
5025
+ if (tagFilters.length > 0) {
5026
+ additionalParams.tagFilters = tagFilters;
5027
+ }
5028
+
4887
5029
  var hierarchicalFacet = state.getHierarchicalFacetByName(facet);
4888
5030
 
4889
5031
  if (hierarchicalFacet) {
@@ -4904,7 +5046,7 @@ var requestBuilder = {
4904
5046
  additionalParams.facetFilters = facetFilters;
4905
5047
  }
4906
5048
 
4907
- return merge_1({}, state.getQueryParams(), additionalParams);
5049
+ return sortObject(merge_1({}, state.getQueryParams(), additionalParams));
4908
5050
  },
4909
5051
 
4910
5052
  /**
@@ -5097,17 +5239,19 @@ var requestBuilder = {
5097
5239
  if (typeof maxFacetHits === 'number') {
5098
5240
  searchForFacetSearchParameters.maxFacetHits = maxFacetHits;
5099
5241
  }
5100
- return merge_1(
5242
+ return sortObject(merge_1(
5101
5243
  {},
5102
5244
  requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),
5103
5245
  searchForFacetSearchParameters
5104
- );
5246
+ ));
5105
5247
  }
5106
5248
  };
5107
5249
 
5108
5250
  var requestBuilder_1 = requestBuilder;
5109
5251
 
5110
- var version = '3.7.0';
5252
+ var version = '3.11.1';
5253
+
5254
+ var escapeFacetValue = escapeFacetValue_1.escapeFacetValue;
5111
5255
 
5112
5256
  /**
5113
5257
  * Event triggered when a parameter is set or updated
@@ -5425,20 +5569,51 @@ AlgoliaSearchHelper.prototype.findAnswers = function(options) {
5425
5569
  */
5426
5570
  AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxFacetHits, userState) {
5427
5571
  var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';
5572
+ var clientHasInitIndex = typeof this.client.initIndex === 'function';
5428
5573
  if (
5429
5574
  !clientHasSFFV &&
5430
- typeof this.client.initIndex !== 'function'
5575
+ !clientHasInitIndex &&
5576
+ typeof this.client.search !== 'function'
5431
5577
  ) {
5432
5578
  throw new Error(
5433
5579
  'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'
5434
5580
  );
5435
5581
  }
5582
+
5436
5583
  var state = this.state.setQueryParameters(userState || {});
5437
5584
  var isDisjunctive = state.isDisjunctiveFacet(facet);
5438
5585
  var algoliaQuery = requestBuilder_1.getSearchForFacetQuery(facet, query, maxFacetHits, state);
5439
5586
 
5440
5587
  this._currentNbQueries++;
5441
5588
  var self = this;
5589
+ var searchForFacetValuesPromise;
5590
+ // newer algoliasearch ^3.27.1 - ~4.0.0
5591
+ if (clientHasSFFV) {
5592
+ searchForFacetValuesPromise = this.client.searchForFacetValues([
5593
+ {indexName: state.index, params: algoliaQuery}
5594
+ ]);
5595
+ // algoliasearch < 3.27.1
5596
+ } else if (clientHasInitIndex) {
5597
+ searchForFacetValuesPromise = this.client
5598
+ .initIndex(state.index)
5599
+ .searchForFacetValues(algoliaQuery);
5600
+ // algoliasearch ~5.0.0
5601
+ } else {
5602
+ // @MAJOR only use client.search
5603
+ delete algoliaQuery.facetName;
5604
+ searchForFacetValuesPromise = this.client
5605
+ .search([
5606
+ {
5607
+ type: 'facet',
5608
+ facet: facet,
5609
+ indexName: state.index,
5610
+ params: algoliaQuery
5611
+ }
5612
+ ])
5613
+ .then(function processResponse(response) {
5614
+ return response.results[0];
5615
+ });
5616
+ }
5442
5617
 
5443
5618
  this.emit('searchForFacetValues', {
5444
5619
  state: state,
@@ -5446,10 +5621,6 @@ AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxF
5446
5621
  query: query
5447
5622
  });
5448
5623
 
5449
- var searchForFacetValuesPromise = clientHasSFFV
5450
- ? this.client.searchForFacetValues([{indexName: state.index, params: algoliaQuery}])
5451
- : this.client.initIndex(state.index).searchForFacetValues(algoliaQuery);
5452
-
5453
5624
  return searchForFacetValuesPromise.then(function addIsRefined(content) {
5454
5625
  self._currentNbQueries--;
5455
5626
  if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');
@@ -5457,9 +5628,10 @@ AlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxF
5457
5628
  content = Array.isArray(content) ? content[0] : content;
5458
5629
 
5459
5630
  content.facetHits.forEach(function(f) {
5631
+ f.escapedValue = escapeFacetValue(f.value);
5460
5632
  f.isRefined = isDisjunctive
5461
- ? state.isDisjunctiveFacetRefined(facet, f.value)
5462
- : state.isFacetRefined(facet, f.value);
5633
+ ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)
5634
+ : state.isFacetRefined(facet, f.escapedValue);
5463
5635
  });
5464
5636
 
5465
5637
  return content;
@@ -6692,6 +6864,7 @@ function getSearchParametersFromProps(props) {
6692
6864
 
6693
6865
  var connectConfigureRelatedItems = createConnectorWithContext({
6694
6866
  displayName: 'AlgoliaConfigureRelatedItems',
6867
+ $$type: 'ais.configureRelatedItems',
6695
6868
  defaultProps: defaultProps$1,
6696
6869
  getProvidedProps: function getProvidedProps() {
6697
6870
  return {};
@@ -6757,11 +6930,14 @@ ConfigureRelatedItems.propTypes = {
6757
6930
  matchingPatterns: PropTypes__default["default"].object.isRequired,
6758
6931
  transformSearchParameters: PropTypes__default["default"].func
6759
6932
  };
6760
- connectConfigureRelatedItems(ConfigureRelatedItems);
6933
+ connectConfigureRelatedItems(ConfigureRelatedItems, {
6934
+ $$widgetType: 'ais.configureRelatedItems'
6935
+ });
6761
6936
 
6762
6937
  var MAX_WILDCARD_FACETS = 20;
6763
6938
  var connectDynamicWidgets = createConnectorWithContext({
6764
6939
  displayName: 'AlgoliaDynamicWidgets',
6940
+ $$type: 'ais.dynamicWidgets',
6765
6941
  defaultProps: {
6766
6942
  transformItems: function transformItems(items) {
6767
6943
  return items;
@@ -6817,21 +6993,25 @@ var connectDynamicWidgets = createConnectorWithContext({
6817
6993
  }
6818
6994
  });
6819
6995
 
6820
- function getAttribute(component) {
6821
- if (_typeof(component) !== 'object') {
6996
+ function isReactElement(element) {
6997
+ return _typeof(element) === 'object' && element.props;
6998
+ }
6999
+
7000
+ function getAttribute(element) {
7001
+ if (!isReactElement(element)) {
6822
7002
  return undefined;
6823
7003
  }
6824
7004
 
6825
- if (component.props.attribute) {
6826
- return component.props.attribute;
7005
+ if (element.props.attribute) {
7006
+ return element.props.attribute;
6827
7007
  }
6828
7008
 
6829
- if (Array.isArray(component.props.attributes)) {
6830
- return component.props.attributes[0];
7009
+ if (Array.isArray(element.props.attributes)) {
7010
+ return element.props.attributes[0];
6831
7011
  }
6832
7012
 
6833
- if (component.props.children) {
6834
- return getAttribute(React__default["default"].Children.only(component.props.children));
7013
+ if (element.props.children) {
7014
+ return getAttribute(React__default["default"].Children.only(element.props.children));
6835
7015
  }
6836
7016
 
6837
7017
  return undefined;
@@ -6865,7 +7045,9 @@ function DynamicWidgets(_ref) {
6865
7045
  }));
6866
7046
  }
6867
7047
 
6868
- connectDynamicWidgets(DynamicWidgets);
7048
+ connectDynamicWidgets(DynamicWidgets, {
7049
+ $$widgetType: 'ais.dynamicWidgets'
7050
+ });
6869
7051
 
6870
7052
  // A context rule must consist only of alphanumeric characters, hyphens, and underscores.
6871
7053
  // See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
@@ -6942,6 +7124,7 @@ var defaultProps = {
6942
7124
  };
6943
7125
  var connectQueryRules = createConnectorWithContext({
6944
7126
  displayName: 'AlgoliaQueryRules',
7127
+ $$type: 'ais.queryRules',
6945
7128
  defaultProps: defaultProps,
6946
7129
  getProvidedProps: function getProvidedProps(props, _1, searchResults) {
6947
7130
  var results = getResults(searchResults, {
@@ -6998,6 +7181,8 @@ var connectQueryRules = createConnectorWithContext({
6998
7181
 
6999
7182
  connectQueryRules(function QueryRuleContext() {
7000
7183
  return null;
7184
+ }, {
7185
+ $$widgetType: 'ais.queryRuleContext'
7001
7186
  });
7002
7187
 
7003
7188
  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); }; }
@@ -7123,6 +7308,10 @@ _defineProperty(Index, "propTypes", {
7123
7308
 
7124
7309
  _defineProperty(Index, "displayName", 'AlgoliaIndex');
7125
7310
 
7311
+ _defineProperty(Index, "$$type", 'ais.index');
7312
+
7313
+ _defineProperty(Index, "$$widgetType", 'ais.index');
7314
+
7126
7315
  ({
7127
7316
  indexName: PropTypes__default["default"].string.isRequired,
7128
7317
  indexId: PropTypes__default["default"].string
@@ -7284,6 +7473,7 @@ function createInstantSearchManager(_ref) {
7284
7473
  var skip = false;
7285
7474
  var stalledSearchTimer = null;
7286
7475
  var initialSearchParameters = helper.state;
7476
+ var searchCounter;
7287
7477
  var widgetsManager = createWidgetsManager(onWidgetsUpdate);
7288
7478
  hydrateSearchClient(searchClient, resultsState);
7289
7479
  var store = createStore({
@@ -7369,12 +7559,13 @@ function createInstantSearchManager(_ref) {
7369
7559
  if (!skip) {
7370
7560
  var _getSearchParameters = getSearchParameters(helper.state),
7371
7561
  mainParameters = _getSearchParameters.mainParameters,
7372
- derivedParameters = _getSearchParameters.derivedParameters; // We have to call `slice` because the method `detach` on the derived
7562
+ derivedParameters = _getSearchParameters.derivedParameters;
7563
+
7564
+ searchCounter = derivedParameters.length + 1; // We have to call `slice` because the method `detach` on the derived
7373
7565
  // helpers mutates the value `derivedHelpers`. The `forEach` loop does
7374
7566
  // not iterate on each value and we're not able to correctly clear the
7375
7567
  // previous derived helpers (memory leak + useless requests).
7376
7568
 
7377
-
7378
7569
  helper.derivedHelpers.slice().forEach(function (derivedHelper) {
7379
7570
  // Since we detach the derived helpers on **every** new search they
7380
7571
  // won't receive intermediate results in case of a stalled search.
@@ -7410,6 +7601,7 @@ function createInstantSearchManager(_ref) {
7410
7601
  function handleSearchSuccess(_ref3) {
7411
7602
  var indexId = _ref3.indexId;
7412
7603
  return function (event) {
7604
+ searchCounter--;
7413
7605
  var state = store.getState();
7414
7606
  var isDerivedHelpersEmpty = !helper.derivedHelpers.length;
7415
7607
  var results = state.results ? state.results : {}; // Switching from mono index to multi index and vice versa must reset the
@@ -7439,7 +7631,7 @@ function createInstantSearchManager(_ref) {
7439
7631
  store.setState(_objectSpread$a(_objectSpread$a({}, partialState), {}, {
7440
7632
  results: results,
7441
7633
  isSearchStalled: nextIsSearchStalled,
7442
- searching: false,
7634
+ searching: searchCounter > 0,
7443
7635
  error: null
7444
7636
  }));
7445
7637
  };
@@ -7764,6 +7956,8 @@ function getMetadataPayload(widgets, searchClient) {
7764
7956
 
7765
7957
  return {
7766
7958
  displayName: displayName,
7959
+ $$type: constructor.$$type,
7960
+ $$widgetType: constructor.$$widgetType,
7767
7961
  params: Object.keys(props).filter(function (prop) {
7768
7962
  return !internalProps.includes(prop) && defaultProps[prop] !== props[prop] && props[prop] !== undefined;
7769
7963
  })
@@ -7848,6 +8042,8 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7848
8042
 
7849
8043
  _this = _super.call(this, props);
7850
8044
 
8045
+ _defineProperty(_assertThisInitialized(_this), "cleanupTimerRef", null);
8046
+
7851
8047
  _defineProperty(_assertThisInitialized(_this), "isUnmounting", false);
7852
8048
 
7853
8049
  var instantSearchManager = createInstantSearchManager({
@@ -7903,6 +8099,11 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7903
8099
  }, {
7904
8100
  key: "componentDidMount",
7905
8101
  value: function componentDidMount() {
8102
+ if (this.cleanupTimerRef) {
8103
+ clearTimeout(this.cleanupTimerRef);
8104
+ this.cleanupTimerRef = null;
8105
+ }
8106
+
7906
8107
  if (isMetadataEnabled()) {
7907
8108
  injectMetadata(this.state.instantSearchManager.widgetsManager.getWidgets(), this.props.searchClient);
7908
8109
  }
@@ -7910,8 +8111,13 @@ var InstantSearch = /*#__PURE__*/function (_Component) {
7910
8111
  }, {
7911
8112
  key: "componentWillUnmount",
7912
8113
  value: function componentWillUnmount() {
7913
- this.isUnmounting = true;
7914
- this.state.instantSearchManager.skipSearch();
8114
+ var _this2 = this;
8115
+
8116
+ this.cleanupTimerRef = setTimeout(function () {
8117
+ _this2.isUnmounting = true;
8118
+
8119
+ _this2.state.instantSearchManager.skipSearch();
8120
+ });
7915
8121
  }
7916
8122
  }, {
7917
8123
  key: "createHrefForState",
@@ -8046,9 +8252,9 @@ function transformValue$1(values) {
8046
8252
  if (item.isRefined) {
8047
8253
  acc.push({
8048
8254
  label: item.name,
8049
- // If dealing with a nested "items", "value" is equal to the previous value concatenated with the current label
8050
- // If dealing with the first level, "value" is equal to the current label
8051
- value: item.path
8255
+ // If dealing with a nested "items", "value" is equal to the previous value concatenated with the current value
8256
+ // If dealing with the first level, "value" is equal to the current value
8257
+ value: item.escapedValue
8052
8258
  }); // Create a variable in order to keep the same acc for the recursion, otherwise "reduce" returns a new one
8053
8259
 
8054
8260
  if (item.data) {
@@ -8099,6 +8305,7 @@ function transformValue$1(values) {
8099
8305
 
8100
8306
  var connectBreadcrumb = createConnectorWithContext({
8101
8307
  displayName: 'AlgoliaBreadcrumb',
8308
+ $$type: 'ais.breadcrumb',
8102
8309
  propTypes: {
8103
8310
  attributes: function attributes(props, propName, componentName) {
8104
8311
  var isNotString = function isNotString(val) {
@@ -8162,6 +8369,7 @@ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) {
8162
8369
 
8163
8370
  var connectCurrentRefinements = createConnectorWithContext({
8164
8371
  displayName: 'AlgoliaCurrentRefinements',
8372
+ $$type: 'ais.currentRefinements',
8165
8373
  propTypes: {
8166
8374
  transformItems: PropTypes__default["default"].func
8167
8375
  },
@@ -8221,7 +8429,7 @@ function getCurrentRefinement$b(props, searchState, context) {
8221
8429
  return currentRefinement;
8222
8430
  }
8223
8431
 
8224
- function getValue$2(path, props, searchState, context) {
8432
+ function getValue$2(value, props, searchState, context) {
8225
8433
  var id = props.id,
8226
8434
  attributes = props.attributes,
8227
8435
  separator = props.separator,
@@ -8231,7 +8439,7 @@ function getValue$2(path, props, searchState, context) {
8231
8439
  var nextRefinement;
8232
8440
 
8233
8441
  if (currentRefinement === null) {
8234
- nextRefinement = path;
8442
+ nextRefinement = value;
8235
8443
  } else {
8236
8444
  var tmpSearchParameters = new algoliasearchHelper_1.SearchParameters({
8237
8445
  hierarchicalFacets: [{
@@ -8242,7 +8450,7 @@ function getValue$2(path, props, searchState, context) {
8242
8450
  showParentLevel: showParentLevel
8243
8451
  }]
8244
8452
  });
8245
- nextRefinement = tmpSearchParameters.toggleHierarchicalFacetRefinement(id, currentRefinement).toggleHierarchicalFacetRefinement(id, path).getHierarchicalRefinement(id)[0];
8453
+ nextRefinement = tmpSearchParameters.toggleHierarchicalFacetRefinement(id, currentRefinement).toggleHierarchicalFacetRefinement(id, value).getHierarchicalRefinement(id)[0];
8246
8454
  }
8247
8455
 
8248
8456
  return nextRefinement;
@@ -8252,7 +8460,7 @@ function transformValue(value, props, searchState, context) {
8252
8460
  return value.map(function (v) {
8253
8461
  return {
8254
8462
  label: v.name,
8255
- value: getValue$2(v.path, props, searchState, context),
8463
+ value: getValue$2(v.escapedValue, props, searchState, context),
8256
8464
  count: v.count,
8257
8465
  isRefined: v.isRefined,
8258
8466
  items: v.data && transformValue(v.data, props, searchState, context)
@@ -8292,7 +8500,7 @@ var sortBy$1 = ['name:asc'];
8292
8500
  * websites. From a UX point of view, we suggest not displaying more than two levels deep.
8293
8501
  * @name connectHierarchicalMenu
8294
8502
  * @requirements To use this widget, your attributes must be formatted in a specific way.
8295
- * If you want for example to have a hiearchical menu of categories, objects in your index
8503
+ * If you want for example to have a hierarchical menu of categories, objects in your index
8296
8504
  * should be formatted this way:
8297
8505
  *
8298
8506
  * ```json
@@ -8333,6 +8541,7 @@ var sortBy$1 = ['name:asc'];
8333
8541
 
8334
8542
  var connectHierarchicalMenu = createConnectorWithContext({
8335
8543
  displayName: 'AlgoliaHierarchicalMenu',
8544
+ $$type: 'ais.hierarchicalMenu',
8336
8545
  propTypes: {
8337
8546
  attributes: function attributes(props, propName, componentName) {
8338
8547
  var isNotString = function isNotString(val) {
@@ -8457,7 +8666,7 @@ var connectHierarchicalMenu = createConnectorWithContext({
8457
8666
  multiIndexContext: props.indexContextValue
8458
8667
  });
8459
8668
  var items = !currentRefinement ? [] : [{
8460
- label: "".concat(rootAttribute, ": ").concat(currentRefinement),
8669
+ label: "".concat(rootAttribute, ": ").concat(unescapeFacetValue$3(currentRefinement)),
8461
8670
  attribute: rootAttribute,
8462
8671
  value: function value(nextState) {
8463
8672
  return _refine$8(props, nextState, '', {
@@ -8548,6 +8757,7 @@ var highlight = function highlight(_ref) {
8548
8757
 
8549
8758
  var connectHighlight = createConnectorWithContext({
8550
8759
  displayName: 'AlgoliaHighlighter',
8760
+ $$type: 'ais.highlighter',
8551
8761
  propTypes: {},
8552
8762
  getProvidedProps: function getProvidedProps() {
8553
8763
  return {
@@ -8602,6 +8812,7 @@ var connectHighlight = createConnectorWithContext({
8602
8812
 
8603
8813
  var connectHits = createConnectorWithContext({
8604
8814
  displayName: 'AlgoliaHits',
8815
+ $$type: 'ais.hits',
8605
8816
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
8606
8817
  var results = getResults(searchResults, {
8607
8818
  ais: props.contextValue,
@@ -8672,6 +8883,7 @@ function getCurrentRefinement$a(props, searchState, context) {
8672
8883
 
8673
8884
  var connectHitsPerPage = createConnectorWithContext({
8674
8885
  displayName: 'AlgoliaHitsPerPage',
8886
+ $$type: 'ais.hitsPerPage',
8675
8887
  propTypes: {
8676
8888
  defaultRefinement: PropTypes__default["default"].number.isRequired,
8677
8889
  items: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
@@ -8791,6 +9003,7 @@ function extractHitsFromCachedHits(cachedHits) {
8791
9003
 
8792
9004
  var connectInfiniteHits = createConnectorWithContext({
8793
9005
  displayName: 'AlgoliaInfiniteHits',
9006
+ $$type: 'ais.infiniteHits',
8794
9007
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
8795
9008
  var _this = this;
8796
9009
 
@@ -8892,9 +9105,9 @@ function getCurrentRefinement$8(props, searchState, context) {
8892
9105
  return currentRefinement;
8893
9106
  }
8894
9107
 
8895
- function getValue$1(name, props, searchState, context) {
9108
+ function getValue$1(value, props, searchState, context) {
8896
9109
  var currentRefinement = getCurrentRefinement$8(props, searchState, context);
8897
- return name === currentRefinement ? '' : name;
9110
+ return value === currentRefinement ? '' : value;
8898
9111
  }
8899
9112
 
8900
9113
  function getLimit$1(_ref) {
@@ -8941,6 +9154,7 @@ var defaultSortBy = ['count:desc', 'name:asc'];
8941
9154
 
8942
9155
  var connectMenu = createConnectorWithContext({
8943
9156
  displayName: 'AlgoliaMenu',
9157
+ $$type: 'ais.menu',
8944
9158
  propTypes: {
8945
9159
  attribute: PropTypes__default["default"].string.isRequired,
8946
9160
  showMore: PropTypes__default["default"].bool,
@@ -8992,7 +9206,7 @@ var connectMenu = createConnectorWithContext({
8992
9206
  items = searchForFacetValuesResults[attribute].map(function (v) {
8993
9207
  return {
8994
9208
  label: v.value,
8995
- value: getValue$1(v.value, props, searchState, {
9209
+ value: getValue$1(v.escapedValue, props, searchState, {
8996
9210
  ais: props.contextValue,
8997
9211
  multiIndexContext: props.indexContextValue
8998
9212
  }),
@@ -9012,7 +9226,7 @@ var connectMenu = createConnectorWithContext({
9012
9226
  }).map(function (v) {
9013
9227
  return {
9014
9228
  label: v.name,
9015
- value: getValue$1(v.name, props, searchState, {
9229
+ value: getValue$1(v.escapedValue, props, searchState, {
9016
9230
  ais: props.contextValue,
9017
9231
  multiIndexContext: props.indexContextValue
9018
9232
  }),
@@ -9083,7 +9297,7 @@ var connectMenu = createConnectorWithContext({
9083
9297
  multiIndexContext: props.indexContextValue
9084
9298
  }),
9085
9299
  items: currentRefinement === null ? [] : [{
9086
- label: "".concat(props.attribute, ": ").concat(currentRefinement),
9300
+ label: "".concat(props.attribute, ": ").concat(unescapeFacetValue$3(currentRefinement)),
9087
9301
  attribute: props.attribute,
9088
9302
  value: function value(nextState) {
9089
9303
  return _refine$7(props, nextState, '', {
@@ -9102,17 +9316,14 @@ function _arrayWithHoles(arr) {
9102
9316
  }
9103
9317
 
9104
9318
  function _iterableToArrayLimit(arr, i) {
9105
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9106
-
9107
- if (_i == null) return;
9319
+ if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
9108
9320
  var _arr = [];
9109
9321
  var _n = true;
9110
9322
  var _d = false;
9111
-
9112
- var _s, _e;
9323
+ var _e = undefined;
9113
9324
 
9114
9325
  try {
9115
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
9326
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
9116
9327
  _arr.push(_s.value);
9117
9328
 
9118
9329
  if (i && _arr.length === i) break;
@@ -9179,11 +9390,11 @@ function getCurrentRefinement$7(props, searchState, context) {
9179
9390
  }
9180
9391
 
9181
9392
  function isRefinementsRangeIncludesInsideItemRange(stats, start, end) {
9182
- return stats.min > start && stats.min < end || stats.max > start && stats.max < end;
9393
+ return stats.min >= start && stats.min <= end || stats.max >= start && stats.max <= end;
9183
9394
  }
9184
9395
 
9185
9396
  function isItemRangeIncludedInsideRefinementsRange(stats, start, end) {
9186
- return start > stats.min && start < stats.max || end > stats.min && end < stats.max;
9397
+ return start >= stats.min && start <= stats.max || end >= stats.min && end <= stats.max;
9187
9398
  }
9188
9399
 
9189
9400
  function itemHasRefinement(attribute, results, value) {
@@ -9224,6 +9435,7 @@ function _cleanUp$5(props, searchState, context) {
9224
9435
 
9225
9436
  var connectNumericMenu = createConnectorWithContext({
9226
9437
  displayName: 'AlgoliaNumericMenu',
9438
+ $$type: 'ais.numericMenu',
9227
9439
  propTypes: {
9228
9440
  id: PropTypes__default["default"].string,
9229
9441
  attribute: PropTypes__default["default"].string.isRequired,
@@ -9395,6 +9607,7 @@ function _refine$5(props, searchState, nextPage, context) {
9395
9607
 
9396
9608
  var connectPagination = createConnectorWithContext({
9397
9609
  displayName: 'AlgoliaPagination',
9610
+ $$type: 'ais.pagination',
9398
9611
  getProvidedProps: function getProvidedProps(props, searchState, searchResults) {
9399
9612
  var results = getResults(searchResults, {
9400
9613
  ais: props.contextValue,
@@ -9450,6 +9663,7 @@ var connectPagination = createConnectorWithContext({
9450
9663
 
9451
9664
  var connectPoweredBy = createConnectorWithContext({
9452
9665
  displayName: 'AlgoliaPoweredBy',
9666
+ $$type: 'ais.poweredBy',
9453
9667
  getProvidedProps: function getProvidedProps() {
9454
9668
  var hostname = typeof window === 'undefined' || typeof window.location === 'undefined' ? '' : window.location.hostname;
9455
9669
  var url = 'https://www.algolia.com/?' + 'utm_source=react-instantsearch&' + 'utm_medium=website&' + "utm_content=".concat(hostname, "&") + 'utm_campaign=poweredby';
@@ -9623,6 +9837,7 @@ function _cleanUp$4(props, searchState, context) {
9623
9837
 
9624
9838
  var connectRange = createConnectorWithContext({
9625
9839
  displayName: 'AlgoliaRange',
9840
+ $$type: 'ais.range',
9626
9841
  propTypes: {
9627
9842
  id: PropTypes__default["default"].string,
9628
9843
  attribute: PropTypes__default["default"].string.isRequired,
@@ -9792,12 +10007,12 @@ function getCurrentRefinement$4(props, searchState, context) {
9792
10007
  return [];
9793
10008
  }
9794
10009
 
9795
- function getValue(name, props, searchState, context) {
10010
+ function getValue(value, props, searchState, context) {
9796
10011
  var currentRefinement = getCurrentRefinement$4(props, searchState, context);
9797
- var isAnewValue = currentRefinement.indexOf(name) === -1;
9798
- var nextRefinement = isAnewValue ? currentRefinement.concat([name]) // cannot use .push(), it mutates
10012
+ var isAnewValue = currentRefinement.indexOf(value) === -1;
10013
+ var nextRefinement = isAnewValue ? currentRefinement.concat([value]) // cannot use .push(), it mutates
9799
10014
  : currentRefinement.filter(function (selectedValue) {
9800
- return selectedValue !== name;
10015
+ return selectedValue !== value;
9801
10016
  }); // cannot use .splice(), it mutates
9802
10017
 
9803
10018
  return nextRefinement;
@@ -9856,6 +10071,7 @@ function _cleanUp$3(props, searchState, context) {
9856
10071
  var sortBy = ['isRefined', 'count:desc', 'name:asc'];
9857
10072
  var connectRefinementList = createConnectorWithContext({
9858
10073
  displayName: 'AlgoliaRefinementList',
10074
+ $$type: 'ais.refinementList',
9859
10075
  propTypes: {
9860
10076
  id: PropTypes__default["default"].string,
9861
10077
  attribute: PropTypes__default["default"].string.isRequired,
@@ -9907,7 +10123,7 @@ var connectRefinementList = createConnectorWithContext({
9907
10123
  var items = isFromSearch ? searchForFacetValuesResults[attribute].map(function (v) {
9908
10124
  return {
9909
10125
  label: v.value,
9910
- value: getValue(v.value, props, searchState, {
10126
+ value: getValue(v.escapedValue, props, searchState, {
9911
10127
  ais: props.contextValue,
9912
10128
  multiIndexContext: props.indexContextValue
9913
10129
  }),
@@ -9925,7 +10141,7 @@ var connectRefinementList = createConnectorWithContext({
9925
10141
  }).map(function (v) {
9926
10142
  return {
9927
10143
  label: v.name,
9928
- value: getValue(v.name, props, searchState, {
10144
+ value: getValue(v.escapedValue, props, searchState, {
9929
10145
  ais: props.contextValue,
9930
10146
  multiIndexContext: props.indexContextValue
9931
10147
  }),
@@ -9998,7 +10214,7 @@ var connectRefinementList = createConnectorWithContext({
9998
10214
  },
9999
10215
  items: getCurrentRefinement$4(props, searchState, context).map(function (item) {
10000
10216
  return {
10001
- label: "".concat(item),
10217
+ label: unescapeFacetValue$3("".concat(item)),
10002
10218
  value: function value(nextState) {
10003
10219
  var nextSelectedItems = getCurrentRefinement$4(props, nextState, context).filter(function (other) {
10004
10220
  return other !== item;
@@ -10024,6 +10240,7 @@ var connectRefinementList = createConnectorWithContext({
10024
10240
 
10025
10241
  var connectScrollTo = createConnectorWithContext({
10026
10242
  displayName: 'AlgoliaScrollTo',
10243
+ $$type: 'ais.scrollTo',
10027
10244
  propTypes: {
10028
10245
  scrollOn: PropTypes__default["default"].string
10029
10246
  },
@@ -10113,6 +10330,7 @@ function _cleanUp$2(props, searchState, context) {
10113
10330
 
10114
10331
  var connectSearchBox = createConnectorWithContext({
10115
10332
  displayName: 'AlgoliaSearchBox',
10333
+ $$type: 'ais.searchBox',
10116
10334
  propTypes: {
10117
10335
  defaultRefinement: PropTypes__default["default"].string
10118
10336
  },
@@ -10181,6 +10399,7 @@ function getCurrentRefinement$2(props, searchState, context) {
10181
10399
 
10182
10400
  var connectRelevantSort = createConnectorWithContext({
10183
10401
  displayName: 'AlgoliaRelevantSort',
10402
+ $$type: 'ais.relevantSort',
10184
10403
  getProvidedProps: function getProvidedProps(props, _searchState, searchResults) {
10185
10404
  var results = getResults(searchResults, {
10186
10405
  ais: props.contextValue,
@@ -10253,6 +10472,7 @@ function getCurrentRefinement$1(props, searchState, context) {
10253
10472
 
10254
10473
  var connectSortBy = createConnectorWithContext({
10255
10474
  displayName: 'AlgoliaSortBy',
10475
+ $$type: 'ais.sortBy',
10256
10476
  propTypes: {
10257
10477
  defaultRefinement: PropTypes__default["default"].string,
10258
10478
  items: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
@@ -10321,6 +10541,7 @@ var connectSortBy = createConnectorWithContext({
10321
10541
 
10322
10542
  var connectStats = createConnectorWithContext({
10323
10543
  displayName: 'AlgoliaStats',
10544
+ $$type: 'ais.stats',
10324
10545
  getProvidedProps: function getProvidedProps(props, _searchState, searchResults) {
10325
10546
  var results = getResults(searchResults, {
10326
10547
  ais: props.contextValue,
@@ -10392,6 +10613,7 @@ function _cleanUp$1(props, searchState, context) {
10392
10613
 
10393
10614
  var connectToggleRefinement = createConnectorWithContext({
10394
10615
  displayName: 'AlgoliaToggle',
10616
+ $$type: 'ais.toggle',
10395
10617
  propTypes: {
10396
10618
  label: PropTypes__default["default"].string.isRequired,
10397
10619
  attribute: PropTypes__default["default"].string.isRequired,
@@ -10560,6 +10782,7 @@ function _cleanUp(props, searchState, context) {
10560
10782
 
10561
10783
  var connectVoiceSearch = createConnectorWithContext({
10562
10784
  displayName: 'AlgoliaVoiceSearch',
10785
+ $$type: 'ais.voiceSearch',
10563
10786
  propTypes: {
10564
10787
  defaultRefinement: PropTypes__default["default"].string
10565
10788
  },
@@ -11042,7 +11265,9 @@ var BreadcrumbWidget = function BreadcrumbWidget(props) {
11042
11265
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(Breadcrumb$1, props));
11043
11266
  };
11044
11267
 
11045
- connectBreadcrumb(BreadcrumbWidget);
11268
+ connectBreadcrumb(BreadcrumbWidget, {
11269
+ $$widgetType: 'ais.breadcrumb'
11270
+ });
11046
11271
 
11047
11272
  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); }; }
11048
11273
 
@@ -11138,7 +11363,9 @@ var ClearRefinementsWidget = function ClearRefinementsWidget(props) {
11138
11363
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(ClearRefinements$2, props));
11139
11364
  };
11140
11365
 
11141
- var ClearRefinements = connectCurrentRefinements(ClearRefinementsWidget);
11366
+ var ClearRefinements = connectCurrentRefinements(ClearRefinementsWidget, {
11367
+ $$widgetType: 'ais.clearRefinements'
11368
+ });
11142
11369
 
11143
11370
  var cx$m = createClassNames('CurrentRefinements');
11144
11371
  var CurrentRefinements = function CurrentRefinements(_ref) {
@@ -11246,7 +11473,9 @@ var CurrentRefinementsWidget = function CurrentRefinementsWidget(props) {
11246
11473
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(CurrentRefinements$1, props));
11247
11474
  };
11248
11475
 
11249
- connectCurrentRefinements(CurrentRefinementsWidget);
11476
+ connectCurrentRefinements(CurrentRefinementsWidget, {
11477
+ $$widgetType: 'ais.currentRefinements'
11478
+ });
11250
11479
 
11251
11480
  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; }
11252
11481
 
@@ -11467,6 +11696,7 @@ var SearchBox$1 = /*#__PURE__*/function (_Component) {
11467
11696
  return /*#__PURE__*/React__default["default"].createElement("div", {
11468
11697
  className: index.classnames(cx$l(''), className)
11469
11698
  }, /*#__PURE__*/React__default["default"].createElement("form", {
11699
+ ref: this.props.formRef,
11470
11700
  noValidate: true,
11471
11701
  onSubmit: this.props.onSubmit ? this.props.onSubmit : this.onSubmit,
11472
11702
  onReset: this.onReset,
@@ -11524,6 +11754,9 @@ _defineProperty(SearchBox$1, "propTypes", {
11524
11754
  onChange: PropTypes__default["default"].func,
11525
11755
  isSearchStalled: PropTypes__default["default"].bool,
11526
11756
  showLoadingIndicator: PropTypes__default["default"].bool,
11757
+ formRef: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].exact({
11758
+ current: PropTypes__default["default"].object
11759
+ })]),
11527
11760
  inputRef: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].exact({
11528
11761
  current: PropTypes__default["default"].object
11529
11762
  })]),
@@ -11764,7 +11997,7 @@ var HierarchicalMenu = /*#__PURE__*/function (_Component) {
11764
11997
  createURL = _this$props.createURL,
11765
11998
  refine = _this$props.refine;
11766
11999
  return /*#__PURE__*/React__default["default"].createElement(Link, {
11767
- className: cx$k('link'),
12000
+ className: cx$k('link', item.isRefined && 'link--selected'),
11768
12001
  onClick: function onClick() {
11769
12002
  return refine(item.value);
11770
12003
  },
@@ -11839,7 +12072,7 @@ var HierarchicalMenu$1 = translatable({
11839
12072
  * @name HierarchicalMenu
11840
12073
  * @kind widget
11841
12074
  * @requirements To use this widget, your attributes must be formatted in a specific way.
11842
- * If you want for example to have a hiearchical menu of categories, objects in your index
12075
+ * If you want for example to have a hierarchical menu of categories, objects in your index
11843
12076
  * should be formatted this way:
11844
12077
  *
11845
12078
  * ```json
@@ -11889,6 +12122,7 @@ var HierarchicalMenu$1 = translatable({
11889
12122
  * @themeKey ais-HierarchicalMenu-item--selected - the selected menu list item
11890
12123
  * @themeKey ais-HierarchicalMenu-item--parent - the menu list item containing children
11891
12124
  * @themeKey ais-HierarchicalMenu-link - the clickable menu element
12125
+ * @themeKey ais-HierarchicalMenu-link--selected - the clickable element of a selected menu list item
11892
12126
  * @themeKey ais-HierarchicalMenu-label - the label of each item
11893
12127
  * @themeKey ais-HierarchicalMenu-count - the count of values for each item
11894
12128
  * @themeKey ais-HierarchicalMenu-showMore - the button used to display more categories
@@ -11924,7 +12158,9 @@ var HierarchicalMenuWidget = function HierarchicalMenuWidget(props) {
11924
12158
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(HierarchicalMenu$1, props));
11925
12159
  };
11926
12160
 
11927
- connectHierarchicalMenu(HierarchicalMenuWidget);
12161
+ connectHierarchicalMenu(HierarchicalMenuWidget, {
12162
+ $$widgetType: 'ais.hierarchicalMenu'
12163
+ });
11928
12164
 
11929
12165
  var Highlight$2 = function Highlight(_ref) {
11930
12166
  var cx = _ref.cx,
@@ -12061,7 +12297,9 @@ var Highlight$1 = function Highlight(props) {
12061
12297
  * );
12062
12298
  */
12063
12299
 
12064
- var Highlight = connectHighlight(Highlight$1);
12300
+ var Highlight = connectHighlight(Highlight$1, {
12301
+ $$widgetType: 'ais.highlight'
12302
+ });
12065
12303
 
12066
12304
  var cx$i = createClassNames('Hits');
12067
12305
 
@@ -12139,7 +12377,9 @@ Hits$1.propTypes = {
12139
12377
  * );
12140
12378
  */
12141
12379
 
12142
- var Hits = connectHits(Hits$1);
12380
+ var Hits = connectHits(Hits$1, {
12381
+ $$widgetType: 'ais.hits'
12382
+ });
12143
12383
 
12144
12384
  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); }; }
12145
12385
 
@@ -12306,7 +12546,9 @@ _defineProperty(HitsPerPage, "defaultProps", {
12306
12546
  * );
12307
12547
  */
12308
12548
 
12309
- connectHitsPerPage(HitsPerPage);
12549
+ connectHitsPerPage(HitsPerPage, {
12550
+ $$widgetType: 'ais.hitsPerPage'
12551
+ });
12310
12552
 
12311
12553
  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); }; }
12312
12554
 
@@ -12435,7 +12677,9 @@ var InfiniteHits$1 = translatable({
12435
12677
  * );
12436
12678
  */
12437
12679
 
12438
- connectInfiniteHits(InfiniteHits$1);
12680
+ connectInfiniteHits(InfiniteHits$1, {
12681
+ $$widgetType: 'ais.infiniteHits'
12682
+ });
12439
12683
 
12440
12684
  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); }; }
12441
12685
 
@@ -12611,7 +12855,9 @@ var MenuWidget = function MenuWidget(props) {
12611
12855
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(Menu$1, props));
12612
12856
  };
12613
12857
 
12614
- connectMenu(MenuWidget);
12858
+ connectMenu(MenuWidget, {
12859
+ $$widgetType: 'ais.menu'
12860
+ });
12615
12861
 
12616
12862
  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); }; }
12617
12863
 
@@ -12750,7 +12996,9 @@ var MenuSelectWidget = function MenuSelectWidget(props) {
12750
12996
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(MenuSelect$1, props));
12751
12997
  };
12752
12998
 
12753
- connectMenu(MenuSelectWidget);
12999
+ connectMenu(MenuSelectWidget, {
13000
+ $$widgetType: 'ais.menuSelect'
13001
+ });
12754
13002
 
12755
13003
  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; }
12756
13004
 
@@ -12895,7 +13143,9 @@ var NumericMenuWidget = function NumericMenuWidget(props) {
12895
13143
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(NumericMenu$1, props));
12896
13144
  };
12897
13145
 
12898
- connectNumericMenu(NumericMenuWidget);
13146
+ connectNumericMenu(NumericMenuWidget, {
13147
+ $$widgetType: 'ais.numericMenu'
13148
+ });
12899
13149
 
12900
13150
  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); }; }
12901
13151
 
@@ -13224,7 +13474,9 @@ var PaginationWidget = function PaginationWidget(props) {
13224
13474
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(Pagination$2, props));
13225
13475
  };
13226
13476
 
13227
- var Pagination = connectPagination(PaginationWidget);
13477
+ var Pagination = connectPagination(PaginationWidget, {
13478
+ $$widgetType: 'ais.pagination'
13479
+ });
13228
13480
 
13229
13481
  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); }; }
13230
13482
 
@@ -13233,35 +13485,13 @@ var cx$b = createClassNames('PoweredBy');
13233
13485
 
13234
13486
  var AlgoliaLogo = function AlgoliaLogo() {
13235
13487
  return /*#__PURE__*/React__default["default"].createElement("svg", {
13236
- xmlns: "http://www.w3.org/2000/svg",
13237
- baseProfile: "basic",
13238
- viewBox: "0 0 1366 362",
13239
- width: "100",
13488
+ viewBox: "0 0 512 117",
13489
+ width: "118",
13240
13490
  height: "27",
13241
13491
  className: cx$b('logo')
13242
- }, /*#__PURE__*/React__default["default"].createElement("linearGradient", {
13243
- id: "g",
13244
- x1: "428.258",
13245
- x2: "434.145",
13246
- y1: "404.15",
13247
- y2: "409.85",
13248
- gradientUnits: "userSpaceOnUse",
13249
- gradientTransform: "matrix(94.045 0 0 -94.072 -40381.527 38479.52)"
13250
- }, /*#__PURE__*/React__default["default"].createElement("stop", {
13251
- offset: "0",
13252
- stopColor: "#00AEFF"
13253
- }), /*#__PURE__*/React__default["default"].createElement("stop", {
13254
- offset: "1",
13255
- stopColor: "#3369E7"
13256
- })), /*#__PURE__*/React__default["default"].createElement("path", {
13257
- 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",
13258
- fill: "url(#g)"
13259
- }), /*#__PURE__*/React__default["default"].createElement("path", {
13260
- 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",
13261
- fill: "#FFFFFF"
13262
- }), /*#__PURE__*/React__default["default"].createElement("path", {
13263
- 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",
13264
- fill: "#182359"
13492
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
13493
+ fill: "#003DFF",
13494
+ 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"
13265
13495
  }));
13266
13496
  };
13267
13497
 
@@ -13341,7 +13571,9 @@ var PoweredBy$1 = translatable({
13341
13571
  * );
13342
13572
  */
13343
13573
 
13344
- connectPoweredBy(PoweredBy$1);
13574
+ connectPoweredBy(PoweredBy$1, {
13575
+ $$widgetType: 'ais.poweredBy'
13576
+ });
13345
13577
 
13346
13578
  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); }; }
13347
13579
 
@@ -13540,7 +13772,9 @@ var RangeInputWidget = function RangeInputWidget(props) {
13540
13772
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(RangeInput, props));
13541
13773
  };
13542
13774
 
13543
- connectRange(RangeInputWidget);
13775
+ connectRange(RangeInputWidget, {
13776
+ $$widgetType: 'ais.rangeInput'
13777
+ });
13544
13778
 
13545
13779
  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; }
13546
13780
 
@@ -13790,7 +14024,9 @@ var RatingMenuWidget = function RatingMenuWidget(props) {
13790
14024
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(RatingMenu$1, props));
13791
14025
  };
13792
14026
 
13793
- connectRange(RatingMenuWidget);
14027
+ connectRange(RatingMenuWidget, {
14028
+ $$widgetType: 'ais.ratingMenu'
14029
+ });
13794
14030
 
13795
14031
  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); }; }
13796
14032
 
@@ -13976,7 +14212,9 @@ var RefinementListWidget = function RefinementListWidget(props) {
13976
14212
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(RefinementList$2, props));
13977
14213
  };
13978
14214
 
13979
- var RefinementList = connectRefinementList(RefinementListWidget);
14215
+ var RefinementList = connectRefinementList(RefinementListWidget, {
14216
+ $$widgetType: 'ais.refinementList'
14217
+ });
13980
14218
 
13981
14219
  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); }; }
13982
14220
 
@@ -14059,7 +14297,9 @@ _defineProperty(ScrollTo, "propTypes", {
14059
14297
  * );
14060
14298
  */
14061
14299
 
14062
- connectScrollTo(ScrollTo);
14300
+ connectScrollTo(ScrollTo, {
14301
+ $$widgetType: 'ais.scrollTo'
14302
+ });
14063
14303
 
14064
14304
  /**
14065
14305
  * The SearchBox component displays a search box that lets the user search for a specific query.
@@ -14109,7 +14349,9 @@ connectScrollTo(ScrollTo);
14109
14349
  * );
14110
14350
  */
14111
14351
 
14112
- var SearchBox = connectSearchBox(SearchBox$2);
14352
+ var SearchBox = connectSearchBox(SearchBox$2, {
14353
+ $$widgetType: 'ais.searchBox'
14354
+ });
14113
14355
 
14114
14356
  var cx$6 = createClassNames('Snippet');
14115
14357
 
@@ -14164,7 +14406,9 @@ var Snippet = function Snippet(props) {
14164
14406
  * );
14165
14407
  */
14166
14408
 
14167
- connectHighlight(Snippet);
14409
+ connectHighlight(Snippet, {
14410
+ $$widgetType: 'ais.snippet'
14411
+ });
14168
14412
 
14169
14413
  var cx$5 = createClassNames('RelevantSort');
14170
14414
 
@@ -14207,7 +14451,9 @@ RelevantSort.propTypes = {
14207
14451
  textComponent: PropTypes__default["default"].func
14208
14452
  };
14209
14453
 
14210
- connectRelevantSort(RelevantSort);
14454
+ connectRelevantSort(RelevantSort, {
14455
+ $$widgetType: 'ais.relevantSort'
14456
+ });
14211
14457
 
14212
14458
  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); }; }
14213
14459
 
@@ -14304,7 +14550,9 @@ _defineProperty(SortBy, "defaultProps", {
14304
14550
  * );
14305
14551
  */
14306
14552
 
14307
- connectSortBy(SortBy);
14553
+ connectSortBy(SortBy, {
14554
+ $$widgetType: 'ais.sortBy'
14555
+ });
14308
14556
 
14309
14557
  var cx$3 = createClassNames('Stats');
14310
14558
 
@@ -14365,7 +14613,9 @@ var Stats$1 = translatable({
14365
14613
  * );
14366
14614
  */
14367
14615
 
14368
- connectStats(Stats$1);
14616
+ connectStats(Stats$1, {
14617
+ $$widgetType: 'ais.stats'
14618
+ });
14369
14619
 
14370
14620
  var cx$2 = createClassNames('ToggleRefinement');
14371
14621
 
@@ -14445,7 +14695,9 @@ ToggleRefinement.defaultProps = {
14445
14695
  * );
14446
14696
  */
14447
14697
 
14448
- connectToggleRefinement(ToggleRefinement);
14698
+ connectToggleRefinement(ToggleRefinement, {
14699
+ $$widgetType: 'ais.toggleRefinement'
14700
+ });
14449
14701
 
14450
14702
  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; }
14451
14703
 
@@ -14781,7 +15033,9 @@ var VoiceSearch$1 = translatable({
14781
15033
  disabledButtonTitle: 'Search by voice (not supported on this browser)'
14782
15034
  })(VoiceSearch);
14783
15035
 
14784
- connectVoiceSearch(VoiceSearch$1);
15036
+ connectVoiceSearch(VoiceSearch$1, {
15037
+ $$widgetType: 'ais.voiceSearch'
15038
+ });
14785
15039
 
14786
15040
  var cx = createClassNames('QueryRuleCustomData');
14787
15041
 
@@ -14806,7 +15060,9 @@ var QueryRuleCustomDataWidget = function QueryRuleCustomDataWidget(props) {
14806
15060
  return /*#__PURE__*/React__default["default"].createElement(PanelWrapper, props, /*#__PURE__*/React__default["default"].createElement(QueryRuleCustomData, props));
14807
15061
  };
14808
15062
 
14809
- connectQueryRules(QueryRuleCustomDataWidget);
15063
+ connectQueryRules(QueryRuleCustomDataWidget, {
15064
+ $$widgetType: 'ais.queryRuleCustomData'
15065
+ });
14810
15066
 
14811
15067
  var HitComponent = function HitComponent(hits, props) {
14812
15068
  var propsObj = {