instantsearch.js 4.33.2 → 4.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +2 -1
  3. package/cjs/components/Answers/Answers.js +1 -1
  4. package/cjs/components/Breadcrumb/Breadcrumb.js +1 -1
  5. package/cjs/components/ClearRefinements/ClearRefinements.js +1 -1
  6. package/cjs/components/CurrentRefinements/CurrentRefinements.js +3 -3
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +3 -3
  8. package/cjs/components/Hits/Hits.js +1 -1
  9. package/cjs/components/InfiniteHits/InfiniteHits.js +1 -1
  10. package/cjs/components/MenuSelect/MenuSelect.js +3 -3
  11. package/cjs/components/Pagination/Pagination.js +71 -161
  12. package/cjs/components/Pagination/PaginationLink.js +26 -13
  13. package/cjs/components/Panel/Panel.js +1 -1
  14. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +1 -1
  15. package/cjs/components/RangeInput/RangeInput.js +1 -1
  16. package/cjs/components/RefinementList/RefinementList.js +6 -6
  17. package/cjs/components/RefinementList/RefinementListItem.js +1 -1
  18. package/cjs/components/RelevantSort/RelevantSort.js +1 -1
  19. package/cjs/components/SearchBox/SearchBox.js +9 -10
  20. package/cjs/components/Slider/Slider.js +5 -5
  21. package/cjs/components/Stats/Stats.js +1 -1
  22. package/cjs/components/Template/Template.js +3 -3
  23. package/cjs/components/ToggleRefinement/ToggleRefinement.js +1 -1
  24. package/cjs/components/VoiceSearch/VoiceSearch.js +1 -1
  25. package/cjs/connectors/answers/connectAnswers.js +10 -10
  26. package/cjs/connectors/autocomplete/connectAutocomplete.js +11 -10
  27. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +5 -5
  28. package/cjs/connectors/clear-refinements/connectClearRefinements.js +9 -9
  29. package/cjs/connectors/configure/connectConfigure.js +8 -8
  30. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +5 -5
  31. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +6 -6
  32. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +35 -10
  33. package/cjs/connectors/geo-search/connectGeoSearch.js +11 -11
  34. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +6 -6
  35. package/cjs/connectors/hits/connectHits.js +11 -11
  36. package/cjs/connectors/hits/connectHitsWithInsights.js +3 -3
  37. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +6 -6
  38. package/cjs/connectors/index.js +31 -31
  39. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +13 -13
  40. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +3 -3
  41. package/cjs/connectors/menu/connectMenu.js +5 -5
  42. package/cjs/connectors/numeric-menu/connectNumericMenu.js +7 -7
  43. package/cjs/connectors/pagination/Paginator.js +3 -3
  44. package/cjs/connectors/pagination/connectPagination.js +8 -8
  45. package/cjs/connectors/powered-by/connectPoweredBy.js +5 -5
  46. package/cjs/connectors/query-rules/connectQueryRules.js +7 -7
  47. package/cjs/connectors/range/connectRange.js +27 -27
  48. package/cjs/connectors/rating-menu/connectRatingMenu.js +6 -6
  49. package/cjs/connectors/refinement-list/connectRefinementList.js +8 -8
  50. package/cjs/connectors/relevant-sort/connectRelevantSort.js +3 -3
  51. package/cjs/connectors/search-box/connectSearchBox.js +8 -7
  52. package/cjs/connectors/sort-by/connectSortBy.js +8 -7
  53. package/cjs/connectors/stats/connectStats.js +8 -8
  54. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +12 -12
  55. package/cjs/connectors/voice-search/connectVoiceSearch.js +6 -6
  56. package/cjs/helpers/get-insights-anonymous-user-token.js +2 -2
  57. package/cjs/helpers/highlight.js +4 -4
  58. package/cjs/helpers/index.js +6 -6
  59. package/cjs/helpers/insights.js +4 -4
  60. package/cjs/helpers/reverseHighlight.js +5 -5
  61. package/cjs/helpers/reverseSnippet.js +5 -5
  62. package/cjs/helpers/snippet.js +4 -4
  63. package/cjs/index.js +9 -9
  64. package/cjs/lib/InstantSearch.js +44 -23
  65. package/cjs/lib/createHelpers.js +6 -6
  66. package/cjs/lib/infiniteHitsCache/index.js +1 -1
  67. package/cjs/lib/infiniteHitsCache/sessionStorage.js +4 -4
  68. package/cjs/lib/insights/client.js +5 -5
  69. package/cjs/lib/insights/index.js +2 -2
  70. package/cjs/lib/insights/listener.js +3 -3
  71. package/cjs/lib/routers/history.js +6 -6
  72. package/cjs/lib/routers/index.js +1 -1
  73. package/cjs/lib/stateMappings/index.js +2 -2
  74. package/cjs/lib/utils/checkIndexUiState.js +3 -3
  75. package/cjs/lib/utils/checkRendering.js +1 -1
  76. package/cjs/lib/utils/concatHighlightedParts.js +1 -1
  77. package/cjs/lib/utils/createSendEventForFacet.js +1 -1
  78. package/cjs/lib/utils/createSendEventForHits.js +1 -1
  79. package/cjs/lib/utils/detect-insights-client.js +1 -1
  80. package/cjs/lib/utils/escape-highlight.js +2 -2
  81. package/cjs/lib/utils/getContainerNode.js +1 -1
  82. package/cjs/lib/utils/getHighlightFromSiblings.js +1 -1
  83. package/cjs/lib/utils/getHighlightedParts.js +1 -1
  84. package/cjs/lib/utils/getRefinements.js +2 -2
  85. package/cjs/lib/utils/index.js +48 -48
  86. package/cjs/lib/utils/logger.js +1 -1
  87. package/cjs/lib/utils/mergeSearchParameters.js +2 -2
  88. package/cjs/lib/utils/prepareTemplateProps.js +1 -1
  89. package/cjs/lib/utils/reverseHighlightedParts.js +1 -1
  90. package/cjs/lib/version.js +1 -1
  91. package/cjs/middlewares/createInsightsMiddleware.js +11 -11
  92. package/cjs/middlewares/createMetadataMiddleware.js +2 -2
  93. package/cjs/middlewares/createRouterMiddleware.js +4 -4
  94. package/cjs/middlewares/index.js +3 -3
  95. package/cjs/types/index.js +14 -14
  96. package/cjs/widgets/analytics/analytics.js +3 -3
  97. package/cjs/widgets/answers/answers.js +8 -8
  98. package/cjs/widgets/breadcrumb/breadcrumb.js +8 -8
  99. package/cjs/widgets/clear-refinements/clear-refinements.js +8 -8
  100. package/cjs/widgets/configure/configure.js +3 -3
  101. package/cjs/widgets/configure-related-items/configure-related-items.js +3 -3
  102. package/cjs/widgets/current-refinements/current-refinements.js +6 -6
  103. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +14 -11
  104. package/cjs/widgets/geo-search/GeoSearchRenderer.js +3 -3
  105. package/cjs/widgets/geo-search/geo-search.js +9 -9
  106. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +8 -8
  107. package/cjs/widgets/hits/hits.js +11 -11
  108. package/cjs/widgets/hits-per-page/hits-per-page.js +7 -7
  109. package/cjs/widgets/index/index.js +26 -8
  110. package/cjs/widgets/index.js +36 -36
  111. package/cjs/widgets/infinite-hits/infinite-hits.js +11 -11
  112. package/cjs/widgets/menu/menu.js +8 -8
  113. package/cjs/widgets/menu-select/menu-select.js +8 -8
  114. package/cjs/widgets/numeric-menu/numeric-menu.js +8 -8
  115. package/cjs/widgets/pagination/pagination.js +7 -7
  116. package/cjs/widgets/panel/panel.js +7 -7
  117. package/cjs/widgets/powered-by/powered-by.js +6 -6
  118. package/cjs/widgets/query-rule-context/query-rule-context.js +4 -4
  119. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +6 -6
  120. package/cjs/widgets/range-input/range-input.js +7 -7
  121. package/cjs/widgets/range-slider/range-slider.js +6 -6
  122. package/cjs/widgets/rating-menu/rating-menu.js +8 -8
  123. package/cjs/widgets/refinement-list/refinement-list.js +10 -10
  124. package/cjs/widgets/relevant-sort/relevant-sort.js +7 -7
  125. package/cjs/widgets/search-box/search-box.js +7 -7
  126. package/cjs/widgets/sort-by/sort-by.js +6 -6
  127. package/cjs/widgets/stats/defaultTemplates.js +1 -1
  128. package/cjs/widgets/stats/stats.js +7 -7
  129. package/cjs/widgets/toggle-refinement/toggle-refinement.js +8 -8
  130. package/cjs/widgets/voice-search/voice-search.js +7 -7
  131. package/dist/instantsearch.development.d.ts +23 -2
  132. package/dist/instantsearch.development.js +383 -376
  133. package/dist/instantsearch.development.js.map +1 -1
  134. package/dist/instantsearch.development.min.d.ts +23 -2
  135. package/dist/instantsearch.production.d.ts +23 -2
  136. package/dist/instantsearch.production.min.d.ts +23 -2
  137. package/dist/instantsearch.production.min.js +2 -2
  138. package/dist/instantsearch.production.min.js.map +1 -1
  139. package/es/components/Answers/Answers.js +1 -1
  140. package/es/components/Breadcrumb/Breadcrumb.js +1 -1
  141. package/es/components/ClearRefinements/ClearRefinements.js +1 -1
  142. package/es/components/CurrentRefinements/CurrentRefinements.js +1 -1
  143. package/es/components/GeoSearchControls/GeoSearchControls.js +3 -3
  144. package/es/components/Hits/Hits.js +1 -1
  145. package/es/components/InfiniteHits/InfiniteHits.js +1 -1
  146. package/es/components/MenuSelect/MenuSelect.js +2 -2
  147. package/es/components/Pagination/Pagination.d.ts +4 -11
  148. package/es/components/Pagination/Pagination.js +72 -162
  149. package/es/components/Pagination/PaginationLink.d.ts +10 -11
  150. package/es/components/Pagination/PaginationLink.js +23 -13
  151. package/es/components/Panel/Panel.js +1 -1
  152. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +1 -1
  153. package/es/components/RangeInput/RangeInput.js +1 -1
  154. package/es/components/RefinementList/RefinementList.js +4 -4
  155. package/es/components/RefinementList/RefinementListItem.js +1 -1
  156. package/es/components/RelevantSort/RelevantSort.js +1 -1
  157. package/es/components/SearchBox/SearchBox.js +5 -6
  158. package/es/components/Slider/Slider.js +3 -3
  159. package/es/components/Stats/Stats.js +1 -1
  160. package/es/components/Template/Template.js +1 -1
  161. package/es/components/ToggleRefinement/ToggleRefinement.js +1 -1
  162. package/es/components/VoiceSearch/VoiceSearch.js +1 -1
  163. package/es/connectors/answers/connectAnswers.js +1 -1
  164. package/es/connectors/autocomplete/connectAutocomplete.js +3 -2
  165. package/es/connectors/breadcrumb/connectBreadcrumb.js +1 -1
  166. package/es/connectors/clear-refinements/connectClearRefinements.js +1 -1
  167. package/es/connectors/configure/connectConfigure.js +1 -1
  168. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +2 -2
  169. package/es/connectors/current-refinements/connectCurrentRefinements.js +1 -1
  170. package/es/connectors/dynamic-widgets/connectDynamicWidgets.d.ts +14 -0
  171. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +31 -6
  172. package/es/connectors/geo-search/connectGeoSearch.js +1 -1
  173. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +1 -1
  174. package/es/connectors/hits/connectHits.js +1 -1
  175. package/es/connectors/hits/connectHitsWithInsights.js +2 -2
  176. package/es/connectors/hits-per-page/connectHitsPerPage.js +1 -1
  177. package/es/connectors/index.js +30 -30
  178. package/es/connectors/infinite-hits/connectInfiniteHits.js +2 -2
  179. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +2 -2
  180. package/es/connectors/menu/connectMenu.js +1 -1
  181. package/es/connectors/numeric-menu/connectNumericMenu.js +1 -1
  182. package/es/connectors/pagination/Paginator.js +1 -1
  183. package/es/connectors/pagination/connectPagination.js +5 -5
  184. package/es/connectors/powered-by/connectPoweredBy.js +1 -1
  185. package/es/connectors/query-rules/connectQueryRules.js +1 -1
  186. package/es/connectors/range/connectRange.js +1 -1
  187. package/es/connectors/rating-menu/connectRatingMenu.js +1 -1
  188. package/es/connectors/refinement-list/connectRefinementList.js +1 -1
  189. package/es/connectors/relevant-sort/connectRelevantSort.js +1 -1
  190. package/es/connectors/search-box/connectSearchBox.js +5 -4
  191. package/es/connectors/sort-by/connectSortBy.js +3 -2
  192. package/es/connectors/stats/connectStats.js +5 -5
  193. package/es/connectors/toggle-refinement/connectToggleRefinement.js +2 -2
  194. package/es/connectors/voice-search/connectVoiceSearch.js +2 -2
  195. package/es/helpers/get-insights-anonymous-user-token.js +1 -1
  196. package/es/helpers/highlight.js +2 -2
  197. package/es/helpers/index.js +10 -10
  198. package/es/helpers/insights.js +1 -1
  199. package/es/helpers/reverseHighlight.js +2 -2
  200. package/es/helpers/reverseSnippet.js +2 -2
  201. package/es/helpers/snippet.js +2 -2
  202. package/es/index.js +6 -6
  203. package/es/lib/InstantSearch.d.ts +3 -3
  204. package/es/lib/InstantSearch.js +29 -8
  205. package/es/lib/createHelpers.js +1 -1
  206. package/es/lib/infiniteHitsCache/index.js +1 -1
  207. package/es/lib/infiniteHitsCache/sessionStorage.js +1 -1
  208. package/es/lib/insights/client.js +1 -1
  209. package/es/lib/insights/index.js +2 -2
  210. package/es/lib/insights/listener.js +2 -2
  211. package/es/lib/routers/history.js +1 -1
  212. package/es/lib/routers/index.js +1 -1
  213. package/es/lib/stateMappings/index.js +2 -2
  214. package/es/lib/utils/checkIndexUiState.js +3 -3
  215. package/es/lib/utils/checkRendering.js +1 -1
  216. package/es/lib/utils/concatHighlightedParts.js +1 -1
  217. package/es/lib/utils/createSendEventForFacet.js +1 -1
  218. package/es/lib/utils/createSendEventForHits.js +1 -1
  219. package/es/lib/utils/detect-insights-client.js +1 -1
  220. package/es/lib/utils/escape-highlight.js +2 -2
  221. package/es/lib/utils/getContainerNode.js +1 -1
  222. package/es/lib/utils/getHighlightFromSiblings.js +1 -1
  223. package/es/lib/utils/getHighlightedParts.js +1 -1
  224. package/es/lib/utils/getRefinements.js +2 -2
  225. package/es/lib/utils/index.js +48 -48
  226. package/es/lib/utils/logger.js +1 -1
  227. package/es/lib/utils/mergeSearchParameters.js +2 -2
  228. package/es/lib/utils/prepareTemplateProps.js +1 -1
  229. package/es/lib/utils/reverseHighlightedParts.js +1 -1
  230. package/es/lib/version.d.ts +1 -1
  231. package/es/lib/version.js +1 -1
  232. package/es/middlewares/createInsightsMiddleware.js +3 -3
  233. package/es/middlewares/createMetadataMiddleware.js +1 -1
  234. package/es/middlewares/createRouterMiddleware.js +3 -3
  235. package/es/middlewares/index.js +3 -3
  236. package/es/package.json +1 -0
  237. package/es/types/index.js +14 -14
  238. package/es/types/results.d.ts +7 -0
  239. package/es/widgets/analytics/analytics.js +1 -1
  240. package/es/widgets/answers/answers.js +5 -5
  241. package/es/widgets/breadcrumb/breadcrumb.js +5 -5
  242. package/es/widgets/clear-refinements/clear-refinements.js +5 -5
  243. package/es/widgets/configure/configure.js +2 -2
  244. package/es/widgets/configure-related-items/configure-related-items.js +2 -2
  245. package/es/widgets/current-refinements/current-refinements.js +4 -4
  246. package/es/widgets/dynamic-widgets/dynamic-widgets.js +11 -8
  247. package/es/widgets/geo-search/GeoSearchRenderer.js +2 -2
  248. package/es/widgets/geo-search/geo-search.js +6 -6
  249. package/es/widgets/hierarchical-menu/hierarchical-menu.js +5 -5
  250. package/es/widgets/hits/hits.js +6 -6
  251. package/es/widgets/hits-per-page/hits-per-page.js +4 -4
  252. package/es/widgets/index/index.js +21 -3
  253. package/es/widgets/index.js +34 -34
  254. package/es/widgets/infinite-hits/infinite-hits.js +6 -6
  255. package/es/widgets/menu/menu.js +5 -5
  256. package/es/widgets/menu-select/menu-select.js +5 -5
  257. package/es/widgets/numeric-menu/numeric-menu.js +5 -5
  258. package/es/widgets/pagination/pagination.js +4 -4
  259. package/es/widgets/panel/panel.js +3 -3
  260. package/es/widgets/powered-by/powered-by.js +4 -4
  261. package/es/widgets/query-rule-context/query-rule-context.js +2 -2
  262. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +4 -4
  263. package/es/widgets/range-input/range-input.js +4 -4
  264. package/es/widgets/range-slider/range-slider.js +4 -4
  265. package/es/widgets/rating-menu/rating-menu.js +5 -5
  266. package/es/widgets/refinement-list/refinement-list.js +6 -6
  267. package/es/widgets/relevant-sort/relevant-sort.js +5 -5
  268. package/es/widgets/search-box/search-box.js +5 -5
  269. package/es/widgets/sort-by/sort-by.js +4 -4
  270. package/es/widgets/stats/defaultTemplates.js +1 -1
  271. package/es/widgets/stats/stats.js +4 -4
  272. package/es/widgets/toggle-refinement/toggle-refinement.js +5 -5
  273. package/es/widgets/voice-search/voice-search.js +5 -5
  274. package/package.json +10 -6
@@ -7,13 +7,13 @@ exports.default = void 0;
7
7
 
8
8
  var _preact = require("preact");
9
9
 
10
- var _Rheostat = _interopRequireDefault(require("./Rheostat"));
10
+ var _Rheostat = _interopRequireDefault(require("./Rheostat.js"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _utils = require("../../lib/utils");
14
+ var _index = require("../../lib/utils/index.js");
15
15
 
16
- var _Pit = _interopRequireDefault(require("./Pit"));
16
+ var _Pit = _interopRequireDefault(require("./Pit.js"));
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
@@ -115,7 +115,7 @@ var Slider = /*#__PURE__*/function (_Component) {
115
115
  var totalLength = max - min;
116
116
  var steps = 34;
117
117
  var stepsLength = totalLength / steps;
118
- var pitPoints = [min].concat(_toConsumableArray((0, _utils.range)({
118
+ var pitPoints = [min].concat(_toConsumableArray((0, _index.range)({
119
119
  end: steps - 1
120
120
  }).map(function (step) {
121
121
  return min + stepsLength * (step + 1);
@@ -130,7 +130,7 @@ var Slider = /*#__PURE__*/function (_Component) {
130
130
  max = _ref3.max,
131
131
  step = _ref3.step;
132
132
  if (!step) return undefined;
133
- return [].concat(_toConsumableArray((0, _utils.range)({
133
+ return [].concat(_toConsumableArray((0, _index.range)({
134
134
  start: min,
135
135
  end: max,
136
136
  step: step
@@ -9,7 +9,7 @@ var _preact = require("preact");
9
9
 
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
 
12
- var _Template = _interopRequireDefault(require("../Template/Template"));
12
+ var _Template = _interopRequireDefault(require("../Template/Template.js"));
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
 
10
10
  var _preact = require("preact");
11
11
 
12
- var _utils = require("../../lib/utils");
12
+ var _index = require("../../lib/utils/index.js");
13
13
 
14
14
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
15
 
@@ -58,7 +58,7 @@ var Template = /*#__PURE__*/function (_Component) {
58
58
  _createClass(Template, [{
59
59
  key: "shouldComponentUpdate",
60
60
  value: function shouldComponentUpdate(nextProps) {
61
- return !(0, _utils.isEqual)(this.props.data, nextProps.data) || this.props.templateKey !== nextProps.templateKey || !(0, _utils.isEqual)(this.props.rootProps, nextProps.rootProps);
61
+ return !(0, _index.isEqual)(this.props.data, nextProps.data) || this.props.templateKey !== nextProps.templateKey || !(0, _index.isEqual)(this.props.rootProps, nextProps.rootProps);
62
62
  }
63
63
  }, {
64
64
  key: "render",
@@ -66,7 +66,7 @@ var Template = /*#__PURE__*/function (_Component) {
66
66
  var RootTagName = this.props.rootTagName;
67
67
  var useCustomCompileOptions = this.props.useCustomCompileOptions[this.props.templateKey];
68
68
  var compileOptions = useCustomCompileOptions ? this.props.templatesConfig.compileOptions : {};
69
- var content = (0, _utils.renderTemplate)({
69
+ var content = (0, _index.renderTemplate)({
70
70
  templates: this.props.templates,
71
71
  templateKey: this.props.templateKey,
72
72
  compileOptions: compileOptions,
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _preact = require("preact");
9
9
 
10
- var _Template = _interopRequireDefault(require("../Template/Template"));
10
+ var _Template = _interopRequireDefault(require("../Template/Template.js"));
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _preact = require("preact");
9
9
 
10
- var _Template = _interopRequireDefault(require("../Template/Template"));
10
+ var _Template = _interopRequireDefault(require("../Template/Template.js"));
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -17,14 +17,14 @@ function hasFindAnswersMethod(answersIndex) {
17
17
  return typeof answersIndex.findAnswers === 'function';
18
18
  }
19
19
 
20
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
20
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
21
21
  name: 'answers',
22
22
  connector: true
23
23
  });
24
24
 
25
25
  var connectAnswers = function connectAnswers(renderFn) {
26
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
27
- (0, _utils.checkRendering)(renderFn, withUsage());
26
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
27
+ (0, _index.checkRendering)(renderFn, withUsage());
28
28
  return function (widgetParams) {
29
29
  var _ref = widgetParams || {},
30
30
  queryLanguages = _ref.queryLanguages,
@@ -45,10 +45,10 @@ var connectAnswers = function connectAnswers(renderFn) {
45
45
  throw new Error(withUsage('The `queryLanguages` expects an array of strings.'));
46
46
  }
47
47
 
48
- var runConcurrentSafePromise = (0, _utils.createConcurrentSafePromise)();
48
+ var runConcurrentSafePromise = (0, _index.createConcurrentSafePromise)();
49
49
  var lastHits = [];
50
50
  var isLoading = false;
51
- var debouncedRender = (0, _utils.debounce)(renderFn, renderDebounceTime); // this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
51
+ var debouncedRender = (0, _index.debounce)(renderFn, renderDebounceTime); // this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
52
52
 
53
53
  var debouncedRefine;
54
54
  return {
@@ -62,7 +62,7 @@ var connectAnswers = function connectAnswers(renderFn) {
62
62
  throw new Error(withUsage('`algoliasearch` >= 4.8.0 required.'));
63
63
  }
64
64
 
65
- debouncedRefine = (0, _utils.debounce)(answersIndex.findAnswers, searchDebounceTime);
65
+ debouncedRefine = (0, _index.debounce)(answersIndex.findAnswers, searchDebounceTime);
66
66
  renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
67
67
  instantSearchInstance: initOptions.instantSearchInstance
68
68
  }), true);
@@ -99,11 +99,11 @@ var connectAnswers = function connectAnswers(renderFn) {
99
99
  }
100
100
 
101
101
  if (escapeHTML && result.hits.length > 0) {
102
- result.hits = (0, _utils.escapeHits)(result.hits);
102
+ result.hits = (0, _index.escapeHits)(result.hits);
103
103
  }
104
104
 
105
- var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)(result.hits, 0, nbHits);
106
- var hitsWithAbsolutePositionAndQueryID = (0, _utils.addQueryID)(hitsWithAbsolutePosition, result.queryID);
105
+ var hitsWithAbsolutePosition = (0, _index.addAbsolutePosition)(result.hits, 0, nbHits);
106
+ var hitsWithAbsolutePositionAndQueryID = (0, _index.addQueryID)(hitsWithAbsolutePosition, result.queryID);
107
107
  lastHits = hitsWithAbsolutePositionAndQueryID;
108
108
  isLoading = false;
109
109
  debouncedRender(_objectSpread(_objectSpread({}, _this.getWidgetRenderState(renderOptions)), {}, {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -13,20 +13,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
13
13
 
14
14
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
15
 
16
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
16
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
17
17
  name: 'autocomplete',
18
18
  connector: true
19
19
  });
20
20
 
21
21
  var connectAutocomplete = function connectAutocomplete(renderFn) {
22
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
23
- (0, _utils.checkRendering)(renderFn, withUsage());
22
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
23
+ (0, _index.checkRendering)(renderFn, withUsage());
24
24
  return function (widgetParams) {
25
25
  var _ref = widgetParams || {},
26
26
  _ref$escapeHTML = _ref.escapeHTML,
27
27
  escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
28
28
 
29
- process.env.NODE_ENV === 'development' ? (0, _utils.warning)(!widgetParams.indices, "\nThe option `indices` has been removed from the Autocomplete connector.\n\nThe indices to target are now inferred from the widgets tree.\n".concat(Array.isArray(widgetParams.indices) ? "\nAn alternative would be:\n\nconst autocomplete = connectAutocomplete(renderer);\n\nsearch.addWidgets([\n ".concat(widgetParams.indices.map(function (_ref2) {
29
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(!widgetParams.indices, "\nThe option `indices` has been removed from the Autocomplete connector.\n\nThe indices to target are now inferred from the widgets tree.\n".concat(Array.isArray(widgetParams.indices) ? "\nAn alternative would be:\n\nconst autocomplete = connectAutocomplete(renderer);\n\nsearch.addWidgets([\n ".concat(widgetParams.indices.map(function (_ref2) {
30
30
  var value = _ref2.value;
31
31
  return "index({ indexName: '".concat(value, "' }),");
32
32
  }).join('\n '), "\n autocomplete()\n]);\n") : '', "\n ")) : void 0;
@@ -60,6 +60,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
60
60
  var _this = this;
61
61
 
62
62
  var helper = _ref4.helper,
63
+ state = _ref4.state,
63
64
  scopedResults = _ref4.scopedResults,
64
65
  instantSearchInstance = _ref4.instantSearchInstance;
65
66
 
@@ -72,8 +73,8 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
72
73
  var indices = scopedResults.map(function (scopedResult) {
73
74
  // We need to escape the hits because highlighting
74
75
  // exposes HTML tags to the end-user.
75
- scopedResult.results.hits = escapeHTML ? (0, _utils.escapeHits)(scopedResult.results.hits) : scopedResult.results.hits;
76
- var sendEvent = (0, _utils.createSendEventForHits)({
76
+ scopedResult.results.hits = escapeHTML ? (0, _index.escapeHits)(scopedResult.results.hits) : scopedResult.results.hits;
77
+ var sendEvent = (0, _index.createSendEventForHits)({
77
78
  instantSearchInstance: instantSearchInstance,
78
79
  index: scopedResult.results.index,
79
80
  widgetType: _this.$$type
@@ -87,7 +88,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
87
88
  };
88
89
  });
89
90
  return {
90
- currentRefinement: helper.state.query || '',
91
+ currentRefinement: state.query || '',
91
92
  indices: indices,
92
93
  refine: connectorState.refine,
93
94
  widgetParams: widgetParams
@@ -115,7 +116,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
115
116
  return searchParameters.setQueryParameters(parameters);
116
117
  }
117
118
 
118
- return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _utils.TAG_PLACEHOLDER));
119
+ return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _index.TAG_PLACEHOLDER));
119
120
  },
120
121
  dispose: function dispose(_ref7) {
121
122
  var state = _ref7.state;
@@ -126,7 +127,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
126
127
  return stateWithoutQuery;
127
128
  }
128
129
 
129
- return stateWithoutQuery.setQueryParameters(Object.keys(_utils.TAG_PLACEHOLDER).reduce(function (acc, key) {
130
+ return stateWithoutQuery.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
130
131
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
131
132
  }, {}));
132
133
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -25,14 +25,14 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
25
25
 
26
26
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
27
 
28
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
28
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
29
  name: 'breadcrumb',
30
30
  connector: true
31
31
  });
32
32
 
33
33
  var connectBreadcrumb = function connectBreadcrumb(renderFn) {
34
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
35
- (0, _utils.checkRendering)(renderFn, withUsage());
34
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
+ (0, _index.checkRendering)(renderFn, withUsage());
36
36
  var connectorState = {};
37
37
  return function (widgetParams) {
38
38
  var _ref = widgetParams || {},
@@ -130,7 +130,7 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
130
130
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters) {
131
131
  if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
132
132
  var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
133
- process.env.NODE_ENV === 'development' ? (0, _utils.warning)((0, _utils.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
133
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)((0, _index.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
134
134
  return searchParameters;
135
135
  }
136
136
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
11
 
@@ -25,14 +25,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
25
25
 
26
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
27
 
28
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
28
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
29
  name: 'clear-refinements',
30
30
  connector: true
31
31
  });
32
32
 
33
33
  var connectClearRefinements = function connectClearRefinements(renderFn) {
34
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
35
- (0, _utils.checkRendering)(renderFn, withUsage());
34
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
+ (0, _index.checkRendering)(renderFn, withUsage());
36
36
  return function (widgetParams) {
37
37
  var _ref = widgetParams || {},
38
38
  _ref$includedAttribut = _ref.includedAttributes,
@@ -49,7 +49,7 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
49
49
  }
50
50
 
51
51
  var connectorState = {
52
- refine: _utils.noop,
52
+ refine: _index.noop,
53
53
  createURL: function createURL() {
54
54
  return '';
55
55
  },
@@ -102,7 +102,7 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
102
102
  connectorState.attributesToClear.forEach(function (_ref3) {
103
103
  var indexHelper = _ref3.helper,
104
104
  items = _ref3.items;
105
- indexHelper.setState((0, _utils.clearRefinements)({
105
+ indexHelper.setState((0, _index.clearRefinements)({
106
106
  helper: indexHelper,
107
107
  attributesToClear: items
108
108
  })).search();
@@ -110,10 +110,10 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
110
110
  };
111
111
 
112
112
  connectorState.createURL = function () {
113
- return createURL(_utils.mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
113
+ return createURL(_index.mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
114
114
  var indexHelper = _ref4.helper,
115
115
  items = _ref4.items;
116
- return (0, _utils.clearRefinements)({
116
+ return (0, _index.clearRefinements)({
117
117
  helper: indexHelper,
118
118
  attributesToClear: items
119
119
  });
@@ -143,7 +143,7 @@ function getAttributesToClear(_ref5) {
143
143
  var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
144
144
  return {
145
145
  helper: scopedResult.helper,
146
- items: transformItems((0, _utils.uniq)((0, _utils.getRefinements)(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
146
+ items: transformItems((0, _index.uniq)((0, _index.getRefinements)(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
147
147
  return refinement.attribute;
148
148
  }).filter(function (attribute) {
149
149
  return (// If the array is empty (default case), we keep all the attributes
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
9
9
 
10
- var _utils = require("../../lib/utils");
10
+ var _index = require("../../lib/utils/index.js");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
@@ -17,7 +17,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
17
 
18
18
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
19
 
20
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
20
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
21
21
  name: 'configure',
22
22
  connector: true
23
23
  });
@@ -32,10 +32,10 @@ function getInitialSearchParameters(state, widgetParams) {
32
32
  }
33
33
 
34
34
  var connectConfigure = function connectConfigure() {
35
- var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _utils.noop;
36
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
35
+ var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _index.noop;
36
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
37
37
  return function (widgetParams) {
38
- if (!widgetParams || !(0, _utils.isPlainObject)(widgetParams.searchParameters)) {
38
+ if (!widgetParams || !(0, _index.isPlainObject)(widgetParams.searchParameters)) {
39
39
  throw new Error(withUsage('The `searchParameters` option expects an object.'));
40
40
  }
41
41
 
@@ -45,7 +45,7 @@ var connectConfigure = function connectConfigure() {
45
45
  return function (searchParameters) {
46
46
  // Merge new `searchParameters` with the ones set from other widgets
47
47
  var actualState = getInitialSearchParameters(helper.state, widgetParams);
48
- var nextSearchParameters = (0, _utils.mergeSearchParameters)(actualState, new _algoliasearchHelper.default.SearchParameters(searchParameters)); // Update original `widgetParams.searchParameters` to the new refined one
48
+ var nextSearchParameters = (0, _index.mergeSearchParameters)(actualState, new _algoliasearchHelper.default.SearchParameters(searchParameters)); // Update original `widgetParams.searchParameters` to the new refined one
49
49
 
50
50
  widgetParams.searchParameters = searchParameters; // Trigger a search with the resolved search parameters
51
51
 
@@ -79,7 +79,7 @@ var connectConfigure = function connectConfigure() {
79
79
  return _objectSpread(_objectSpread({}, renderState), {}, {
80
80
  configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {
81
81
  widgetParams: _objectSpread(_objectSpread({}, widgetRenderState.widgetParams), {}, {
82
- searchParameters: (0, _utils.mergeSearchParameters)(new _algoliasearchHelper.default.SearchParameters((_renderState$configur = renderState.configure) === null || _renderState$configur === void 0 ? void 0 : _renderState$configur.widgetParams.searchParameters), new _algoliasearchHelper.default.SearchParameters(widgetRenderState.widgetParams.searchParameters)).getQueryParams()
82
+ searchParameters: (0, _index.mergeSearchParameters)(new _algoliasearchHelper.default.SearchParameters((_renderState$configur = renderState.configure) === null || _renderState$configur === void 0 ? void 0 : _renderState$configur.widgetParams.searchParameters), new _algoliasearchHelper.default.SearchParameters(widgetRenderState.widgetParams.searchParameters)).getQueryParams()
83
83
  })
84
84
  })
85
85
  });
@@ -98,7 +98,7 @@ var connectConfigure = function connectConfigure() {
98
98
  },
99
99
  getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref3) {
100
100
  var uiState = _ref3.uiState;
101
- return (0, _utils.mergeSearchParameters)(state, new _algoliasearchHelper.default.SearchParameters(_objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)));
101
+ return (0, _index.mergeSearchParameters)(state, new _algoliasearchHelper.default.SearchParameters(_objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)));
102
102
  },
103
103
  getWidgetUiState: function getWidgetUiState(uiState) {
104
104
  return _objectSpread(_objectSpread({}, uiState), {}, {
@@ -7,9 +7,9 @@ exports.default = void 0;
7
7
 
8
8
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
9
9
 
10
- var _utils = require("../../lib/utils");
10
+ var _index = require("../../lib/utils/index.js");
11
11
 
12
- var _connectConfigure = _interopRequireDefault(require("../configure/connectConfigure"));
12
+ var _connectConfigure = _interopRequireDefault(require("../configure/connectConfigure.js"));
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
@@ -31,7 +31,7 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
31
31
 
32
32
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
33
 
34
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
34
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
35
35
  name: 'configure-related-items',
36
36
  connector: true
37
37
  });
@@ -63,7 +63,7 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
63
63
 
64
64
  var optionalFilters = Object.keys(matchingPatterns).reduce(function (acc, attributeName) {
65
65
  var attribute = matchingPatterns[attributeName];
66
- var attributeValue = (0, _utils.getPropertyByPath)(hit, attributeName);
66
+ var attributeValue = (0, _index.getPropertyByPath)(hit, attributeName);
67
67
  var attributeScore = attribute.score;
68
68
 
69
69
  if (Array.isArray(attributeValue)) {
@@ -84,7 +84,7 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
84
84
  })]);
85
85
  }
86
86
 
87
- process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, "\nThe `matchingPatterns` option returned a value of type ".concat((0, _utils.getObjectType)(attributeValue), " for the \"").concat(attributeName, "\" key. This value was not sent to Algolia because `optionalFilters` only supports strings and array of strings.\n\nYou can remove the \"").concat(attributeName, "\" key from the `matchingPatterns` option.\n\nSee https://www.algolia.com/doc/api-reference/api-parameters/optionalFilters/\n ")) : void 0;
87
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(false, "\nThe `matchingPatterns` option returned a value of type ".concat((0, _index.getObjectType)(attributeValue), " for the \"").concat(attributeName, "\" key. This value was not sent to Algolia because `optionalFilters` only supports strings and array of strings.\n\nYou can remove the \"").concat(attributeName, "\" key from the `matchingPatterns` option.\n\nSee https://www.algolia.com/doc/api-reference/api-parameters/optionalFilters/\n ")) : void 0;
88
88
  return acc;
89
89
  }, []);
90
90
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
11
 
@@ -25,14 +25,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
25
25
 
26
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
27
 
28
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
28
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
29
  name: 'current-refinements',
30
30
  connector: true
31
31
  });
32
32
 
33
33
  var connectCurrentRefinements = function connectCurrentRefinements(renderFn) {
34
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
35
- (0, _utils.checkRendering)(renderFn, withUsage());
34
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
+ (0, _index.checkRendering)(renderFn, withUsage());
36
36
  return function (widgetParams) {
37
37
  if ((widgetParams || {}).includedAttributes && (widgetParams || {}).excludedAttributes) {
38
38
  throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));
@@ -123,7 +123,7 @@ function getRefinementsItems(_ref3) {
123
123
  } : function (item) {
124
124
  return excludedAttributes.indexOf(item.attribute) === -1;
125
125
  };
126
- var items = (0, _utils.getRefinements)(results, helper.state, includesQuery).map(normalizeRefinement).filter(filterFunction);
126
+ var items = (0, _index.getRefinements)(results, helper.state, includesQuery).map(normalizeRefinement).filter(filterFunction);
127
127
  return items.reduce(function (allItems, currentItem) {
128
128
  return [].concat(_toConsumableArray(allItems.filter(function (item) {
129
129
  return item.attribute !== currentItem.attribute;
@@ -168,7 +168,7 @@ function clearRefinementFromState(state, refinement) {
168
168
  return state.setQueryParameter('query', '');
169
169
 
170
170
  default:
171
- process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, "The refinement type \"".concat(refinement.type, "\" does not exist and cannot be cleared from the current refinements.")) : void 0;
171
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(false, "The refinement type \"".concat(refinement.type, "\" does not exist and cannot be cleared from the current refinements.")) : void 0;
172
172
  return state;
173
173
  }
174
174
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _utils = require("../../lib/utils");
8
+ var _index = require("../../lib/utils/index.js");
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -15,16 +15,21 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
15
15
 
16
16
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17
17
 
18
- var withUsage = (0, _utils.createDocumentationMessageGenerator)({
18
+ var withUsage = (0, _index.createDocumentationMessageGenerator)({
19
19
  name: 'dynamic-widgets',
20
20
  connector: true
21
21
  });
22
+ var MAX_WILDCARD_FACETS = 20;
22
23
 
23
24
  var connectDynamicWidgets = function connectDynamicWidgets(renderFn) {
24
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
25
- (0, _utils.checkRendering)(renderFn, withUsage());
25
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
26
+ (0, _index.checkRendering)(renderFn, withUsage());
26
27
  return function (widgetParams) {
27
28
  var widgets = widgetParams.widgets,
29
+ _widgetParams$maxValu = widgetParams.maxValuesPerFacet,
30
+ maxValuesPerFacet = _widgetParams$maxValu === void 0 ? 20 : _widgetParams$maxValu,
31
+ _widgetParams$facets = widgetParams.facets,
32
+ facets = _widgetParams$facets === void 0 ? ['*'] : _widgetParams$facets,
28
33
  _widgetParams$transfo = widgetParams.transformItems,
29
34
  transformItems = _widgetParams$transfo === void 0 ? function (items) {
30
35
  return items;
@@ -37,12 +42,16 @@ var connectDynamicWidgets = function connectDynamicWidgets(renderFn) {
37
42
  throw new Error(withUsage('The `widgets` option expects an array of widgets.'));
38
43
  }
39
44
 
45
+ if (!(Array.isArray(facets) && facets.length <= 1 && (facets[0] === '*' || facets[0] === undefined))) {
46
+ throw new Error(withUsage("The `facets` option only accepts [] or [\"*\"], you passed ".concat(JSON.stringify(facets))));
47
+ }
48
+
40
49
  var localWidgets = new Map();
41
50
  return {
42
51
  $$type: 'ais.dynamicWidgets',
43
52
  init: function init(initOptions) {
44
53
  widgets.forEach(function (widget) {
45
- var attribute = (0, _utils.getWidgetAttribute)(widget, initOptions);
54
+ var attribute = (0, _index.getWidgetAttribute)(widget, initOptions);
46
55
  localWidgets.set(attribute, {
47
56
  widget: widget,
48
57
  isMounted: false
@@ -116,6 +125,14 @@ var connectDynamicWidgets = function connectDynamicWidgets(renderFn) {
116
125
  parent.removeWidgets(toRemove);
117
126
  unmountFn();
118
127
  },
128
+ getWidgetSearchParameters: function getWidgetSearchParameters(state) {
129
+ // broadening the scope of facets to avoid conflict between never and *
130
+ return facets.reduce(function (acc, curr) {
131
+ return acc.addFacet(curr);
132
+ }, state.setQueryParameters({
133
+ maxValuesPerFacet: Math.max(maxValuesPerFacet || 0, state.maxValuesPerFacet || 0)
134
+ }));
135
+ },
119
136
  getRenderState: function getRenderState(renderState, renderOptions) {
120
137
  return _objectSpread(_objectSpread({}, renderState), {}, {
121
138
  dynamicWidgets: this.getWidgetRenderState(renderOptions)
@@ -124,7 +141,8 @@ var connectDynamicWidgets = function connectDynamicWidgets(renderFn) {
124
141
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
125
142
  var _results$renderingCon, _results$renderingCon2, _results$renderingCon3, _results$renderingCon4;
126
143
 
127
- var results = _ref4.results;
144
+ var results = _ref4.results,
145
+ state = _ref4.state;
128
146
 
129
147
  if (!results) {
130
148
  return {
@@ -133,11 +151,18 @@ var connectDynamicWidgets = function connectDynamicWidgets(renderFn) {
133
151
  };
134
152
  }
135
153
 
136
- var attributesToRender = (_results$renderingCon = (_results$renderingCon2 = results.renderingContent) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.facetOrdering) === null || _results$renderingCon3 === void 0 ? void 0 : (_results$renderingCon4 = _results$renderingCon3.facets) === null || _results$renderingCon4 === void 0 ? void 0 : _results$renderingCon4.order) !== null && _results$renderingCon !== void 0 ? _results$renderingCon : [];
154
+ var attributesToRender = transformItems((_results$renderingCon = (_results$renderingCon2 = results.renderingContent) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.facetOrdering) === null || _results$renderingCon3 === void 0 ? void 0 : (_results$renderingCon4 = _results$renderingCon3.facets) === null || _results$renderingCon4 === void 0 ? void 0 : _results$renderingCon4.order) !== null && _results$renderingCon !== void 0 ? _results$renderingCon : [], {
155
+ results: results
156
+ });
157
+
158
+ if (!Array.isArray(attributesToRender)) {
159
+ throw new Error(withUsage('The `transformItems` option expects a function that returns an Array.'));
160
+ }
161
+
162
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(maxValuesPerFacet >= (state.maxValuesPerFacet || 0), "The maxValuesPerFacet set by dynamic widgets (".concat(maxValuesPerFacet, ") is smaller than one of the limits set by a widget (").concat(state.maxValuesPerFacet, "). This causes a mismatch in query parameters and thus an extra network request when that widget is mounted.")) : void 0;
163
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(attributesToRender.length <= MAX_WILDCARD_FACETS || widgetParams.facets !== undefined, "More than ".concat(MAX_WILDCARD_FACETS, " facets are requested to be displayed without explicitly setting which facets to retrieve. This could have a performance impact. Set \"facets\" to [] to do two smaller network requests, or explicitly to ['*'] to avoid this warning.")) : void 0;
137
164
  return {
138
- attributesToRender: transformItems(attributesToRender, {
139
- results: results
140
- }),
165
+ attributesToRender: attributesToRender,
141
166
  widgetParams: widgetParams
142
167
  };
143
168
  }