instantsearch.js 4.75.7 → 4.77.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 (289) hide show
  1. package/cjs/components/Answers/Answers.js +6 -7
  2. package/cjs/components/Breadcrumb/Breadcrumb.js +1 -2
  3. package/cjs/components/ClearRefinements/ClearRefinements.js +1 -2
  4. package/cjs/components/CurrentRefinements/CurrentRefinements.js +1 -2
  5. package/cjs/components/GeoSearchControls/GeoSearchButton.js +1 -2
  6. package/cjs/components/GeoSearchControls/GeoSearchControls.js +1 -2
  7. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +1 -2
  8. package/cjs/components/InfiniteHits/InfiniteHits.js +6 -7
  9. package/cjs/components/InternalHighlight/InternalHighlight.js +2 -3
  10. package/cjs/components/MenuSelect/MenuSelect.js +1 -2
  11. package/cjs/components/Pagination/Pagination.js +1 -2
  12. package/cjs/components/Panel/Panel.js +2 -3
  13. package/cjs/components/PoweredBy/PoweredBy.js +1 -2
  14. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +1 -2
  15. package/cjs/components/RangeInput/RangeInput.js +4 -5
  16. package/cjs/components/RefinementList/RefinementList.js +6 -7
  17. package/cjs/components/RefinementList/RefinementListItem.js +1 -2
  18. package/cjs/components/RelevantSort/RelevantSort.js +1 -2
  19. package/cjs/components/SearchBox/SearchBox.js +4 -5
  20. package/cjs/components/Selector/Selector.js +1 -2
  21. package/cjs/components/Slider/Pit.js +6 -7
  22. package/cjs/components/Slider/Rheostat.js +4 -5
  23. package/cjs/components/Slider/Slider.js +4 -5
  24. package/cjs/components/Stats/Stats.js +6 -7
  25. package/cjs/components/Template/Template.js +4 -5
  26. package/cjs/components/ToggleRefinement/ToggleRefinement.js +1 -2
  27. package/cjs/components/VoiceSearch/VoiceSearch.js +1 -2
  28. package/cjs/connectors/answers/connectAnswers.js +6 -7
  29. package/cjs/connectors/autocomplete/connectAutocomplete.js +6 -7
  30. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +7 -8
  31. package/cjs/connectors/clear-refinements/connectClearRefinements.js +6 -7
  32. package/cjs/connectors/configure/connectConfigure.js +6 -7
  33. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +6 -7
  34. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +6 -7
  35. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +6 -7
  36. package/cjs/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +27 -12
  37. package/cjs/connectors/geo-search/connectGeoSearch.js +7 -8
  38. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +7 -8
  39. package/cjs/connectors/hits/connectHits.js +7 -8
  40. package/cjs/connectors/hits/connectHitsWithInsights.js +1 -2
  41. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +6 -7
  42. package/cjs/connectors/index.js +3 -6
  43. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +7 -8
  44. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +1 -2
  45. package/cjs/connectors/looking-similar/connectLookingSimilar.js +30 -14
  46. package/cjs/connectors/menu/connectMenu.js +7 -8
  47. package/cjs/connectors/numeric-menu/connectNumericMenu.js +8 -9
  48. package/cjs/connectors/pagination/Paginator.js +4 -5
  49. package/cjs/connectors/pagination/connectPagination.js +6 -7
  50. package/cjs/connectors/powered-by/connectPoweredBy.js +6 -7
  51. package/cjs/connectors/query-rules/connectQueryRules.js +6 -7
  52. package/cjs/connectors/range/connectRange.js +7 -8
  53. package/cjs/connectors/rating-menu/connectRatingMenu.js +7 -8
  54. package/cjs/connectors/refinement-list/connectRefinementList.js +6 -7
  55. package/cjs/connectors/related-products/connectRelatedProducts.js +30 -14
  56. package/cjs/connectors/relevant-sort/connectRelevantSort.js +6 -7
  57. package/cjs/connectors/search-box/connectSearchBox.js +6 -7
  58. package/cjs/connectors/sort-by/connectSortBy.js +6 -7
  59. package/cjs/connectors/stats/connectStats.js +6 -7
  60. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +7 -8
  61. package/cjs/connectors/trending-items/connectTrendingItems.js +30 -14
  62. package/cjs/connectors/voice-search/connectVoiceSearch.js +6 -7
  63. package/cjs/helpers/components/ReverseHighlight.js +5 -5
  64. package/cjs/helpers/components/ReverseSnippet.js +5 -5
  65. package/cjs/helpers/get-insights-anonymous-user-token.js +2 -3
  66. package/cjs/helpers/index.js +3 -3
  67. package/cjs/helpers/insights.js +1 -1
  68. package/cjs/index.js +4 -5
  69. package/cjs/lib/InstantSearch.js +25 -12
  70. package/cjs/lib/createHelpers.js +5 -5
  71. package/cjs/lib/insights/client.js +6 -7
  72. package/cjs/lib/insights/index.js +3 -3
  73. package/cjs/lib/insights/listener.js +1 -2
  74. package/cjs/lib/routers/history.js +3 -3
  75. package/cjs/lib/server.js +29 -14
  76. package/cjs/lib/stateMappings/simple.js +5 -5
  77. package/cjs/lib/stateMappings/singleIndex.js +3 -3
  78. package/cjs/lib/suit.js +2 -3
  79. package/cjs/lib/templating/prepareTemplateProps.js +5 -5
  80. package/cjs/lib/templating/renderTemplate.js +5 -5
  81. package/cjs/lib/utils/checkIndexUiState.js +1 -1
  82. package/cjs/lib/utils/createSendEventForFacet.js +6 -6
  83. package/cjs/lib/utils/createSendEventForHits.js +6 -6
  84. package/cjs/lib/utils/escape-highlight.js +7 -9
  85. package/cjs/lib/utils/geo-search.js +1 -1
  86. package/cjs/lib/utils/getAppIdAndApiKey.js +3 -3
  87. package/cjs/lib/utils/hits-absolute-position.js +5 -5
  88. package/cjs/lib/utils/hits-query-id.js +5 -5
  89. package/cjs/lib/utils/hydrateRecommendCache.js +5 -5
  90. package/cjs/lib/utils/hydrateSearchClient.js +12 -9
  91. package/cjs/lib/utils/isPlainObject.js +1 -1
  92. package/cjs/lib/utils/logger.js +3 -6
  93. package/cjs/lib/utils/mergeSearchParameters.js +7 -8
  94. package/cjs/lib/utils/reverseHighlightedParts.js +5 -5
  95. package/cjs/lib/utils/typedObject.js +1 -2
  96. package/cjs/lib/version.js +1 -2
  97. package/cjs/lib/voiceSearchHelper/index.js +6 -7
  98. package/cjs/middlewares/createInsightsMiddleware.js +6 -6
  99. package/cjs/middlewares/createRouterMiddleware.js +7 -8
  100. package/cjs/templates/carousel/carousel.js +9 -6
  101. package/cjs/widgets/analytics/analytics.js +6 -7
  102. package/cjs/widgets/answers/answers.js +6 -7
  103. package/cjs/widgets/answers/defaultTemplates.js +1 -2
  104. package/cjs/widgets/breadcrumb/breadcrumb.js +6 -7
  105. package/cjs/widgets/breadcrumb/defaultTemplates.js +1 -2
  106. package/cjs/widgets/clear-refinements/clear-refinements.js +6 -7
  107. package/cjs/widgets/clear-refinements/defaultTemplates.js +1 -2
  108. package/cjs/widgets/configure/configure.js +6 -7
  109. package/cjs/widgets/configure-related-items/configure-related-items.js +6 -7
  110. package/cjs/widgets/current-refinements/current-refinements.js +6 -7
  111. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -7
  112. package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +17 -13
  113. package/cjs/widgets/geo-search/GeoSearchRenderer.js +7 -8
  114. package/cjs/widgets/geo-search/createHTMLMarker.js +4 -5
  115. package/cjs/widgets/geo-search/defaultTemplates.js +1 -2
  116. package/cjs/widgets/geo-search/geo-search.js +7 -8
  117. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +1 -2
  118. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +6 -7
  119. package/cjs/widgets/hits/defaultTemplates.js +1 -2
  120. package/cjs/widgets/hits/hits.js +7 -8
  121. package/cjs/widgets/hits-per-page/hits-per-page.js +6 -7
  122. package/cjs/widgets/index/index.js +6 -7
  123. package/cjs/widgets/index.js +3 -6
  124. package/cjs/widgets/infinite-hits/defaultTemplates.js +1 -2
  125. package/cjs/widgets/infinite-hits/infinite-hits.js +7 -8
  126. package/cjs/widgets/looking-similar/looking-similar.js +16 -12
  127. package/cjs/widgets/menu/defaultTemplates.js +1 -2
  128. package/cjs/widgets/menu/menu.js +6 -7
  129. package/cjs/widgets/menu-select/defaultTemplates.js +1 -2
  130. package/cjs/widgets/menu-select/menu-select.js +6 -7
  131. package/cjs/widgets/numeric-menu/defaultTemplates.js +1 -2
  132. package/cjs/widgets/numeric-menu/numeric-menu.js +6 -7
  133. package/cjs/widgets/pagination/pagination.js +6 -7
  134. package/cjs/widgets/panel/panel.js +6 -7
  135. package/cjs/widgets/places/places.js +6 -7
  136. package/cjs/widgets/powered-by/powered-by.js +6 -7
  137. package/cjs/widgets/query-rule-context/query-rule-context.js +6 -7
  138. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +7 -9
  139. package/cjs/widgets/range-input/range-input.js +7 -8
  140. package/cjs/widgets/range-slider/range-slider.js +7 -8
  141. package/cjs/widgets/rating-menu/defaultTemplates.js +1 -2
  142. package/cjs/widgets/rating-menu/rating-menu.js +6 -7
  143. package/cjs/widgets/refinement-list/defaultTemplates.js +1 -2
  144. package/cjs/widgets/refinement-list/refinement-list.js +6 -7
  145. package/cjs/widgets/related-products/related-products.js +17 -13
  146. package/cjs/widgets/relevant-sort/defaultTemplates.js +1 -2
  147. package/cjs/widgets/relevant-sort/relevant-sort.js +6 -7
  148. package/cjs/widgets/search-box/defaultTemplates.js +1 -2
  149. package/cjs/widgets/search-box/search-box.js +6 -7
  150. package/cjs/widgets/sort-by/sort-by.js +6 -7
  151. package/cjs/widgets/stats/stats.js +7 -9
  152. package/cjs/widgets/toggle-refinement/defaultTemplates.js +1 -2
  153. package/cjs/widgets/toggle-refinement/toggle-refinement.js +6 -7
  154. package/cjs/widgets/trending-items/trending-items.js +17 -13
  155. package/cjs/widgets/voice-search/defaultTemplates.js +1 -2
  156. package/cjs/widgets/voice-search/voice-search.js +6 -7
  157. package/dist/instantsearch.development.d.ts +44 -10
  158. package/dist/instantsearch.development.js +527 -199
  159. package/dist/instantsearch.development.js.map +1 -1
  160. package/dist/instantsearch.production.d.ts +44 -10
  161. package/dist/instantsearch.production.min.d.ts +44 -10
  162. package/dist/instantsearch.production.min.js +2 -2
  163. package/dist/instantsearch.production.min.js.map +1 -1
  164. package/es/components/Answers/Answers.js +5 -5
  165. package/es/components/InfiniteHits/InfiniteHits.js +5 -5
  166. package/es/components/Panel/Panel.js +1 -1
  167. package/es/components/RangeInput/RangeInput.js +3 -3
  168. package/es/components/RefinementList/RefinementList.js +5 -5
  169. package/es/components/SearchBox/SearchBox.js +3 -3
  170. package/es/components/Slider/Pit.js +5 -5
  171. package/es/components/Slider/Rheostat.js +3 -3
  172. package/es/components/Slider/Slider.js +3 -3
  173. package/es/components/Stats/Stats.js +5 -5
  174. package/es/components/Template/Template.js +3 -3
  175. package/es/connectors/answers/connectAnswers.js +5 -5
  176. package/es/connectors/autocomplete/connectAutocomplete.js +5 -5
  177. package/es/connectors/breadcrumb/connectBreadcrumb.js +6 -6
  178. package/es/connectors/clear-refinements/connectClearRefinements.js +5 -5
  179. package/es/connectors/configure/connectConfigure.js +5 -5
  180. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +5 -5
  181. package/es/connectors/current-refinements/connectCurrentRefinements.js +5 -5
  182. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +5 -5
  183. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +7 -1
  184. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +26 -10
  185. package/es/connectors/geo-search/connectGeoSearch.js +5 -5
  186. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +6 -6
  187. package/es/connectors/hits/connectHits.js +5 -5
  188. package/es/connectors/hits-per-page/connectHitsPerPage.js +5 -5
  189. package/es/connectors/infinite-hits/connectInfiniteHits.js +5 -5
  190. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +7 -1
  191. package/es/connectors/looking-similar/connectLookingSimilar.js +29 -12
  192. package/es/connectors/menu/connectMenu.js +6 -6
  193. package/es/connectors/numeric-menu/connectNumericMenu.js +7 -7
  194. package/es/connectors/pagination/Paginator.js +3 -3
  195. package/es/connectors/pagination/connectPagination.js +5 -5
  196. package/es/connectors/powered-by/connectPoweredBy.js +5 -5
  197. package/es/connectors/query-rules/connectQueryRules.js +5 -5
  198. package/es/connectors/range/connectRange.js +6 -6
  199. package/es/connectors/rating-menu/connectRatingMenu.js +6 -6
  200. package/es/connectors/refinement-list/connectRefinementList.js +5 -5
  201. package/es/connectors/related-products/connectRelatedProducts.d.ts +7 -1
  202. package/es/connectors/related-products/connectRelatedProducts.js +29 -12
  203. package/es/connectors/relevant-sort/connectRelevantSort.js +5 -5
  204. package/es/connectors/search-box/connectSearchBox.js +5 -5
  205. package/es/connectors/sort-by/connectSortBy.js +5 -5
  206. package/es/connectors/stats/connectStats.js +5 -5
  207. package/es/connectors/toggle-refinement/connectToggleRefinement.js +6 -6
  208. package/es/connectors/trending-items/connectTrendingItems.d.ts +7 -1
  209. package/es/connectors/trending-items/connectTrendingItems.js +29 -12
  210. package/es/connectors/voice-search/connectVoiceSearch.js +5 -5
  211. package/es/helpers/components/ReverseHighlight.js +5 -5
  212. package/es/helpers/components/ReverseSnippet.js +5 -5
  213. package/es/helpers/get-insights-anonymous-user-token.js +1 -1
  214. package/es/helpers/insights.js +1 -1
  215. package/es/lib/InstantSearch.d.ts +9 -2
  216. package/es/lib/InstantSearch.js +23 -8
  217. package/es/lib/createHelpers.js +5 -5
  218. package/es/lib/insights/client.js +5 -5
  219. package/es/lib/routers/history.js +3 -3
  220. package/es/lib/server.js +29 -14
  221. package/es/lib/stateMappings/simple.js +5 -5
  222. package/es/lib/stateMappings/singleIndex.js +3 -3
  223. package/es/lib/templating/prepareTemplateProps.js +5 -5
  224. package/es/lib/templating/renderTemplate.js +5 -5
  225. package/es/lib/utils/checkIndexUiState.js +1 -1
  226. package/es/lib/utils/createSendEventForFacet.js +6 -6
  227. package/es/lib/utils/createSendEventForHits.js +6 -6
  228. package/es/lib/utils/escape-highlight.js +5 -5
  229. package/es/lib/utils/geo-search.js +1 -1
  230. package/es/lib/utils/getAppIdAndApiKey.js +3 -3
  231. package/es/lib/utils/hits-absolute-position.js +5 -5
  232. package/es/lib/utils/hits-query-id.js +5 -5
  233. package/es/lib/utils/hydrateRecommendCache.js +5 -5
  234. package/es/lib/utils/hydrateSearchClient.d.ts +2 -2
  235. package/es/lib/utils/hydrateSearchClient.js +12 -9
  236. package/es/lib/utils/isPlainObject.js +1 -1
  237. package/es/lib/utils/mergeSearchParameters.js +5 -5
  238. package/es/lib/utils/reverseHighlightedParts.js +5 -5
  239. package/es/lib/version.d.ts +1 -1
  240. package/es/lib/version.js +1 -1
  241. package/es/lib/voiceSearchHelper/index.js +5 -5
  242. package/es/middlewares/createInsightsMiddleware.js +6 -6
  243. package/es/middlewares/createRouterMiddleware.js +5 -5
  244. package/es/templates/carousel/carousel.d.ts +3 -1
  245. package/es/templates/carousel/carousel.js +9 -6
  246. package/es/widgets/analytics/analytics.js +5 -5
  247. package/es/widgets/answers/answers.js +5 -5
  248. package/es/widgets/breadcrumb/breadcrumb.js +5 -5
  249. package/es/widgets/clear-refinements/clear-refinements.js +5 -5
  250. package/es/widgets/configure/configure.js +5 -5
  251. package/es/widgets/configure-related-items/configure-related-items.js +5 -5
  252. package/es/widgets/current-refinements/current-refinements.js +5 -5
  253. package/es/widgets/dynamic-widgets/dynamic-widgets.js +5 -5
  254. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +2 -1
  255. package/es/widgets/frequently-bought-together/frequently-bought-together.js +15 -10
  256. package/es/widgets/geo-search/GeoSearchRenderer.js +6 -6
  257. package/es/widgets/geo-search/createHTMLMarker.js +3 -3
  258. package/es/widgets/geo-search/geo-search.js +5 -5
  259. package/es/widgets/hierarchical-menu/hierarchical-menu.js +5 -5
  260. package/es/widgets/hits/hits.js +5 -5
  261. package/es/widgets/hits-per-page/hits-per-page.js +5 -5
  262. package/es/widgets/index/index.js +5 -5
  263. package/es/widgets/infinite-hits/infinite-hits.js +5 -5
  264. package/es/widgets/looking-similar/looking-similar.d.ts +2 -1
  265. package/es/widgets/looking-similar/looking-similar.js +14 -9
  266. package/es/widgets/menu/menu.js +5 -5
  267. package/es/widgets/menu-select/menu-select.js +5 -5
  268. package/es/widgets/numeric-menu/numeric-menu.js +5 -5
  269. package/es/widgets/pagination/pagination.js +5 -5
  270. package/es/widgets/panel/panel.js +5 -5
  271. package/es/widgets/places/places.js +5 -5
  272. package/es/widgets/powered-by/powered-by.js +5 -5
  273. package/es/widgets/query-rule-context/query-rule-context.js +5 -5
  274. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +5 -5
  275. package/es/widgets/range-input/range-input.js +6 -6
  276. package/es/widgets/range-slider/range-slider.js +6 -6
  277. package/es/widgets/rating-menu/rating-menu.js +5 -5
  278. package/es/widgets/refinement-list/refinement-list.js +5 -5
  279. package/es/widgets/related-products/related-products.d.ts +2 -1
  280. package/es/widgets/related-products/related-products.js +15 -10
  281. package/es/widgets/relevant-sort/relevant-sort.js +5 -5
  282. package/es/widgets/search-box/search-box.js +5 -5
  283. package/es/widgets/sort-by/sort-by.js +5 -5
  284. package/es/widgets/stats/stats.js +5 -5
  285. package/es/widgets/toggle-refinement/toggle-refinement.js +5 -5
  286. package/es/widgets/trending-items/trending-items.d.ts +2 -1
  287. package/es/widgets/trending-items/trending-items.js +15 -10
  288. package/es/widgets/voice-search/voice-search.js +5 -5
  289. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- /*! InstantSearch.js 4.75.7 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
1
+ /*! InstantSearch.js 4.77.0 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -17,62 +17,76 @@
17
17
  return text.toString().charAt(0).toUpperCase() + text.toString().slice(1);
18
18
  }
19
19
 
20
- function _iterableToArrayLimit(arr, i) {
21
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
22
- if (null != _i) {
23
- var _s,
24
- _e,
25
- _x,
26
- _r,
27
- _arr = [],
28
- _n = !0,
29
- _d = !1;
20
+ function _iterableToArrayLimit(r, l) {
21
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
22
+ if (null != t) {
23
+ var e,
24
+ n,
25
+ i,
26
+ u,
27
+ a = [],
28
+ f = !0,
29
+ o = !1;
30
30
  try {
31
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
32
- if (Object(_i) !== _i) return;
33
- _n = !1;
34
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
35
- } catch (err) {
36
- _d = !0, _e = err;
31
+ if (i = (t = t.call(r)).next, 0 === l) {
32
+ if (Object(t) !== t) return;
33
+ f = !1;
34
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
35
+ } catch (r) {
36
+ o = !0, n = r;
37
37
  } finally {
38
38
  try {
39
- if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
39
+ if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
40
40
  } finally {
41
- if (_d) throw _e;
41
+ if (o) throw n;
42
42
  }
43
43
  }
44
- return _arr;
44
+ return a;
45
45
  }
46
46
  }
47
- function ownKeys(object, enumerableOnly) {
48
- var keys = Object.keys(object);
47
+ function ownKeys(e, r) {
48
+ var t = Object.keys(e);
49
49
  if (Object.getOwnPropertySymbols) {
50
- var symbols = Object.getOwnPropertySymbols(object);
51
- enumerableOnly && (symbols = symbols.filter(function (sym) {
52
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
- })), keys.push.apply(keys, symbols);
54
- }
55
- return keys;
56
- }
57
- function _objectSpread2(target) {
58
- for (var i = 1; i < arguments.length; i++) {
59
- var source = null != arguments[i] ? arguments[i] : {};
60
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
61
- _defineProperty(target, key, source[key]);
62
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
63
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
50
+ var o = Object.getOwnPropertySymbols(e);
51
+ r && (o = o.filter(function (r) {
52
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
53
+ })), t.push.apply(t, o);
54
+ }
55
+ return t;
56
+ }
57
+ function _objectSpread2(e) {
58
+ for (var r = 1; r < arguments.length; r++) {
59
+ var t = null != arguments[r] ? arguments[r] : {};
60
+ r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
61
+ _defineProperty(e, r, t[r]);
62
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
63
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
64
64
  });
65
65
  }
66
- return target;
66
+ return e;
67
67
  }
68
- function _typeof(obj) {
68
+ function _toPrimitive(t, r) {
69
+ if ("object" != typeof t || !t) return t;
70
+ var e = t[Symbol.toPrimitive];
71
+ if (void 0 !== e) {
72
+ var i = e.call(t, r || "default");
73
+ if ("object" != typeof i) return i;
74
+ throw new TypeError("@@toPrimitive must return a primitive value.");
75
+ }
76
+ return ("string" === r ? String : Number)(t);
77
+ }
78
+ function _toPropertyKey(t) {
79
+ var i = _toPrimitive(t, "string");
80
+ return "symbol" == typeof i ? i : String(i);
81
+ }
82
+ function _typeof(o) {
69
83
  "@babel/helpers - typeof";
70
84
 
71
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
72
- return typeof obj;
73
- } : function (obj) {
74
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
75
- }, _typeof(obj);
85
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
86
+ return typeof o;
87
+ } : function (o) {
88
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
89
+ }, _typeof(o);
76
90
  }
77
91
  function _classCallCheck(instance, Constructor) {
78
92
  if (!(instance instanceof Constructor)) {
@@ -307,20 +321,6 @@
307
321
  }
308
322
  };
309
323
  }
310
- function _toPrimitive(input, hint) {
311
- if (typeof input !== "object" || input === null) return input;
312
- var prim = input[Symbol.toPrimitive];
313
- if (prim !== undefined) {
314
- var res = prim.call(input, hint || "default");
315
- if (typeof res !== "object") return res;
316
- throw new TypeError("@@toPrimitive must return a primitive value.");
317
- }
318
- return (hint === "string" ? String : Number)(input);
319
- }
320
- function _toPropertyKey(arg) {
321
- var key = _toPrimitive(arg, "string");
322
- return typeof key === "symbol" ? key : String(key);
323
- }
324
324
 
325
325
  function noop() {}
326
326
 
@@ -1182,9 +1182,9 @@
1182
1182
  var queryParameters = transporter.queryParameters || transporter.baseQueryParameters;
1183
1183
  var APP_ID = 'x-algolia-application-id';
1184
1184
  var API_KEY = 'x-algolia-api-key';
1185
- var appId = headers[APP_ID] || queryParameters[APP_ID];
1186
- var apiKey = headers[API_KEY] || queryParameters[API_KEY];
1187
- return [appId, apiKey];
1185
+ var _appId = headers[APP_ID] || queryParameters[APP_ID];
1186
+ var _apiKey = headers[API_KEY] || queryParameters[API_KEY];
1187
+ return [_appId, _apiKey];
1188
1188
  } else {
1189
1189
  // searchClient v3
1190
1190
  return [searchClient.applicationID, searchClient.apiKey];
@@ -1479,16 +1479,19 @@
1479
1479
  if ('transporter' in client && !client._cacheHydrated) {
1480
1480
  client._cacheHydrated = true;
1481
1481
  var baseMethod = client.search.bind(client);
1482
- // @ts-ignore wanting type checks for v3 on this would make this too complex
1483
1482
  client.search = function (requests) {
1484
1483
  for (var _len = arguments.length, methodArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1485
1484
  methodArgs[_key - 1] = arguments[_key];
1486
1485
  }
1487
- var requestsWithSerializedParams = requests.map(function (request) {
1486
+ var requestsWithSerializedParams = Array.isArray(requests) ?
1487
+ // search client
1488
+ requests.map(function (request) {
1488
1489
  return _objectSpread2(_objectSpread2({}, request), {}, {
1489
1490
  params: serializeQueryParameters(request.params)
1490
1491
  });
1491
- });
1492
+ }) :
1493
+ // composition client
1494
+ serializeQueryParameters(requests.requestBody.params);
1492
1495
  return client.transporter.responsesCache.get({
1493
1496
  method: 'search',
1494
1497
  args: [requestsWithSerializedParams].concat(methodArgs)
@@ -2697,6 +2700,24 @@
2697
2700
  return queries;
2698
2701
  },
2699
2702
 
2703
+ /**
2704
+ * Get all the queries to send to the client, those queries can used directly
2705
+ * with the Algolia client.
2706
+ * @private
2707
+ * @param {SearchParameters} state The state from which to get the queries
2708
+ * @return {object[]} The queries
2709
+ */
2710
+ _getCompositionQueries: function getQueries(state) {
2711
+ return [
2712
+ {
2713
+ compositionID: state.index,
2714
+ requestBody: {
2715
+ params: requestBuilder._getCompositionHitsSearchParams(state),
2716
+ },
2717
+ },
2718
+ ];
2719
+ },
2720
+
2700
2721
  /**
2701
2722
  * Build search parameters used to fetch hits
2702
2723
  * @private
@@ -2733,6 +2754,53 @@
2733
2754
  return sortObject(merge_1({}, state.getQueryParams(), additionalParams));
2734
2755
  },
2735
2756
 
2757
+ /**
2758
+ * Build search parameters used to fetch hits
2759
+ * @private
2760
+ * @param {SearchParameters} state The state from which to get the queries
2761
+ * @return {object.<string, any>} The search parameters for hits
2762
+ */
2763
+ _getCompositionHitsSearchParams: function (state) {
2764
+ var facets = state.facets
2765
+ .concat(
2766
+ state.disjunctiveFacets.map(function (value) {
2767
+ return 'disjunctive(' + value + ')';
2768
+ })
2769
+ )
2770
+ .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state))
2771
+ .sort();
2772
+
2773
+ var facetFilters = requestBuilder._getFacetFilters(state);
2774
+ var numericFilters = requestBuilder._getNumericFilters(state);
2775
+ var tagFilters = requestBuilder._getTagFilters(state);
2776
+ var additionalParams = {};
2777
+
2778
+ if (facets.length > 0) {
2779
+ additionalParams.facets = facets.indexOf('*') > -1 ? ['*'] : facets;
2780
+ }
2781
+
2782
+ if (tagFilters.length > 0) {
2783
+ additionalParams.tagFilters = tagFilters;
2784
+ }
2785
+
2786
+ if (facetFilters.length > 0) {
2787
+ additionalParams.facetFilters = facetFilters;
2788
+ }
2789
+
2790
+ if (numericFilters.length > 0) {
2791
+ additionalParams.numericFilters = numericFilters;
2792
+ }
2793
+
2794
+ var params = state.getQueryParams();
2795
+
2796
+ delete params.highlightPreTag;
2797
+ delete params.highlightPostTag;
2798
+ // not a valid search parameter, it is handled in _getCompositionQueries
2799
+ delete params.index;
2800
+
2801
+ return sortObject(merge_1({}, params, additionalParams));
2802
+ },
2803
+
2736
2804
  /**
2737
2805
  * Build search parameters used to fetch a disjunctive facet
2738
2806
  * @private
@@ -6487,7 +6555,7 @@
6487
6555
 
6488
6556
  var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
6489
6557
 
6490
- var version = '3.22.6';
6558
+ var version = '3.23.0';
6491
6559
 
6492
6560
  var escapeFacetValue$4 = escapeFacetValue_1.escapeFacetValue;
6493
6561
 
@@ -6654,6 +6722,10 @@
6654
6722
  return this;
6655
6723
  };
6656
6724
 
6725
+ AlgoliaSearchHelper.prototype.searchWithComposition = function () {
6726
+ this._runComposition({ onlyWithDerivedHelpers: true });
6727
+ return this;
6728
+ };
6657
6729
  /**
6658
6730
  * Sends the recommendation queries set in the state. When the method is
6659
6731
  * called, it triggers a `fetch` event. The results will be available through
@@ -6943,6 +7015,81 @@
6943
7015
  );
6944
7016
  };
6945
7017
 
7018
+ /**
7019
+ * Search for facet values using the Composition API & based on a query and the name of a faceted attribute.
7020
+ * This triggers a search and will return a promise. On top of using the query, it also sends
7021
+ * the parameters from the state so that the search is narrowed down to only the possible values.
7022
+ *
7023
+ * See the description of [FacetSearchResult](reference.html#FacetSearchResult)
7024
+ * @param {string} facet the name of the faceted attribute
7025
+ * @param {string} query the string query for the search
7026
+ * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100
7027
+ * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes
7028
+ * it in the generated query.
7029
+ * @return {promise.<FacetSearchResult>} the results of the search
7030
+ */
7031
+ AlgoliaSearchHelper.prototype.searchForCompositionFacetValues = function (
7032
+ facet,
7033
+ query,
7034
+ maxFacetHits,
7035
+ userState
7036
+ ) {
7037
+ if (typeof this.client.searchForFacetValues !== 'function') {
7038
+ throw new Error(
7039
+ 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues'
7040
+ );
7041
+ }
7042
+
7043
+ var state = this.state.setQueryParameters(userState || {});
7044
+ var isDisjunctive = state.isDisjunctiveFacet(facet);
7045
+
7046
+ this._currentNbQueries++;
7047
+ // eslint-disable-next-line consistent-this
7048
+ var self = this;
7049
+ var searchForFacetValuesPromise;
7050
+
7051
+ searchForFacetValuesPromise = this.client.searchForFacetValues({
7052
+ compositionID: state.index,
7053
+ facetName: facet,
7054
+ searchForFacetValuesRequest: {
7055
+ params: {
7056
+ query: query,
7057
+ maxFacetHits: maxFacetHits,
7058
+ searchQuery: requestBuilder_1._getCompositionHitsSearchParams(state),
7059
+ },
7060
+ },
7061
+ });
7062
+
7063
+ this.emit('searchForFacetValues', {
7064
+ state: state,
7065
+ facet: facet,
7066
+ query: query,
7067
+ });
7068
+
7069
+ return searchForFacetValuesPromise.then(
7070
+ function addIsRefined(content) {
7071
+ self._currentNbQueries--;
7072
+ if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');
7073
+
7074
+ content = content.results[0];
7075
+
7076
+ content.facetHits.forEach(function (f) {
7077
+ f.escapedValue = escapeFacetValue$4(f.value);
7078
+ f.isRefined = isDisjunctive
7079
+ ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)
7080
+ : state.isFacetRefined(facet, f.escapedValue);
7081
+ });
7082
+
7083
+ return content;
7084
+ },
7085
+ function (e) {
7086
+ self._currentNbQueries--;
7087
+ if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');
7088
+ throw e;
7089
+ }
7090
+ );
7091
+ };
7092
+
6946
7093
  /**
6947
7094
  * Sets the text query used for the search.
6948
7095
  *
@@ -8064,6 +8211,71 @@
8064
8211
  return undefined;
8065
8212
  };
8066
8213
 
8214
+ /**
8215
+ * Perform the underlying queries
8216
+ * @private
8217
+ * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried
8218
+ * @return {undefined} does not return anything
8219
+ * @fires search
8220
+ * @fires result
8221
+ * @fires error
8222
+ */
8223
+ AlgoliaSearchHelper.prototype._runComposition = function () {
8224
+ var state = this.state;
8225
+ var states = [];
8226
+ var mainQueries = [];
8227
+
8228
+ var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {
8229
+ var derivedState = derivedHelper.getModifiedState(state);
8230
+ var derivedStateQueries =
8231
+ requestBuilder_1._getCompositionQueries(derivedState);
8232
+
8233
+ states.push({
8234
+ state: derivedState,
8235
+ queriesCount: derivedStateQueries.length,
8236
+ helper: derivedHelper,
8237
+ });
8238
+
8239
+ derivedHelper.emit('search', {
8240
+ state: derivedState,
8241
+ results: derivedHelper.lastResults,
8242
+ });
8243
+
8244
+ return derivedStateQueries;
8245
+ });
8246
+
8247
+ var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);
8248
+
8249
+ var queryId = this._queryId++;
8250
+ this._currentNbQueries++;
8251
+
8252
+ if (!queries.length) {
8253
+ return Promise.resolve({ results: [] }).then(
8254
+ this._dispatchAlgoliaResponse.bind(this, states, queryId)
8255
+ );
8256
+ }
8257
+
8258
+ if (queries.length > 1) {
8259
+ throw new Error('Only one query is allowed when using a composition.');
8260
+ }
8261
+
8262
+ var query = queries[0];
8263
+
8264
+ try {
8265
+ this.client
8266
+ .search(query)
8267
+ .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))
8268
+ .catch(this._dispatchAlgoliaError.bind(this, queryId));
8269
+ } catch (error) {
8270
+ // If we reach this part, we're in an internal error state
8271
+ this.emit('error', {
8272
+ error: error,
8273
+ });
8274
+ }
8275
+
8276
+ return undefined;
8277
+ };
8278
+
8067
8279
  AlgoliaSearchHelper.prototype._recommend = function () {
8068
8280
  var searchState = this.state;
8069
8281
  var recommendState = this.recommendState;
@@ -11353,6 +11565,7 @@
11353
11565
  if (!objectIDs || objectIDs.length === 0) {
11354
11566
  throw new Error(withUsage$f('The `objectIDs` option is required.'));
11355
11567
  }
11568
+ var sendEvent;
11356
11569
  return {
11357
11570
  dependsOn: 'recommend',
11358
11571
  $$type: 'ais.relatedProducts',
@@ -11371,21 +11584,37 @@
11371
11584
  return renderState;
11372
11585
  },
11373
11586
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
11374
- var results = _ref2.results;
11587
+ var results = _ref2.results,
11588
+ helper = _ref2.helper,
11589
+ instantSearchInstance = _ref2.instantSearchInstance;
11590
+ if (!sendEvent) {
11591
+ sendEvent = createSendEventForHits({
11592
+ instantSearchInstance: instantSearchInstance,
11593
+ getIndex: function getIndex() {
11594
+ return helper.getIndex();
11595
+ },
11596
+ widgetType: this.$$type
11597
+ });
11598
+ }
11375
11599
  if (results === null || results === undefined) {
11376
11600
  return {
11377
11601
  items: [],
11378
- widgetParams: widgetParams
11602
+ widgetParams: widgetParams,
11603
+ sendEvent: sendEvent
11379
11604
  };
11380
11605
  }
11381
11606
  if (escapeHTML && results.hits.length > 0) {
11382
11607
  results.hits = escapeHits(results.hits);
11383
11608
  }
11609
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
11610
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
11611
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
11612
+ results: results
11613
+ });
11384
11614
  return {
11385
- items: transformItems(results.hits, {
11386
- results: results
11387
- }),
11388
- widgetParams: widgetParams
11615
+ items: transformedItems,
11616
+ widgetParams: widgetParams,
11617
+ sendEvent: sendEvent
11389
11618
  };
11390
11619
  },
11391
11620
  dispose: function dispose(_ref3) {
@@ -12262,6 +12491,7 @@
12262
12491
  if (facetName && !facetValue || !facetName && facetValue) {
12263
12492
  throw new Error(withUsage$l("When you provide facetName (received type ".concat(getObjectType(facetName), "), you must also provide facetValue (received type ").concat(getObjectType(facetValue), ").")));
12264
12493
  }
12494
+ var sendEvent;
12265
12495
  return {
12266
12496
  dependsOn: 'recommend',
12267
12497
  $$type: 'ais.trendingItems',
@@ -12280,21 +12510,37 @@
12280
12510
  return renderState;
12281
12511
  },
12282
12512
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
12283
- var results = _ref2.results;
12513
+ var results = _ref2.results,
12514
+ helper = _ref2.helper,
12515
+ instantSearchInstance = _ref2.instantSearchInstance;
12516
+ if (!sendEvent) {
12517
+ sendEvent = createSendEventForHits({
12518
+ instantSearchInstance: instantSearchInstance,
12519
+ getIndex: function getIndex() {
12520
+ return helper.getIndex();
12521
+ },
12522
+ widgetType: this.$$type
12523
+ });
12524
+ }
12284
12525
  if (results === null || results === undefined) {
12285
12526
  return {
12286
12527
  items: [],
12287
- widgetParams: widgetParams
12528
+ widgetParams: widgetParams,
12529
+ sendEvent: sendEvent
12288
12530
  };
12289
12531
  }
12290
12532
  if (escapeHTML && results.hits.length > 0) {
12291
12533
  results.hits = escapeHits(results.hits);
12292
12534
  }
12535
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
12536
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
12537
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
12538
+ results: results
12539
+ });
12293
12540
  return {
12294
- items: transformItems(results.hits, {
12295
- results: results
12296
- }),
12297
- widgetParams: widgetParams
12541
+ items: transformedItems,
12542
+ widgetParams: widgetParams,
12543
+ sendEvent: sendEvent
12298
12544
  };
12299
12545
  },
12300
12546
  dispose: function dispose(_ref3) {
@@ -13347,6 +13593,7 @@
13347
13593
  if (!objectIDs || objectIDs.length === 0) {
13348
13594
  throw new Error(withUsage$s('The `objectIDs` option is required.'));
13349
13595
  }
13596
+ var sendEvent;
13350
13597
  return {
13351
13598
  dependsOn: 'recommend',
13352
13599
  $$type: 'ais.frequentlyBoughtTogether',
@@ -13365,22 +13612,37 @@
13365
13612
  return renderState;
13366
13613
  },
13367
13614
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
13368
- var results = _ref2.results;
13615
+ var results = _ref2.results,
13616
+ helper = _ref2.helper,
13617
+ instantSearchInstance = _ref2.instantSearchInstance;
13618
+ if (!sendEvent) {
13619
+ sendEvent = createSendEventForHits({
13620
+ instantSearchInstance: instantSearchInstance,
13621
+ getIndex: function getIndex() {
13622
+ return helper.getIndex();
13623
+ },
13624
+ widgetType: this.$$type
13625
+ });
13626
+ }
13369
13627
  if (results === null || results === undefined) {
13370
13628
  return {
13371
13629
  items: [],
13372
- widgetParams: widgetParams
13630
+ widgetParams: widgetParams,
13631
+ sendEvent: sendEvent
13373
13632
  };
13374
13633
  }
13375
13634
  if (escapeHTML && results.hits.length > 0) {
13376
13635
  results.hits = escapeHits(results.hits);
13377
13636
  }
13378
- var transformedItems = transformItems(results.hits, {
13637
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
13638
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
13639
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
13379
13640
  results: results
13380
13641
  });
13381
13642
  return {
13382
13643
  items: transformedItems,
13383
- widgetParams: widgetParams
13644
+ widgetParams: widgetParams,
13645
+ sendEvent: sendEvent
13384
13646
  };
13385
13647
  },
13386
13648
  dispose: function dispose(_ref3) {
@@ -13427,6 +13689,7 @@
13427
13689
  if (!objectIDs || objectIDs.length === 0) {
13428
13690
  throw new Error(withUsage$t('The `objectIDs` option is required.'));
13429
13691
  }
13692
+ var sendEvent;
13430
13693
  return {
13431
13694
  dependsOn: 'recommend',
13432
13695
  $$type: 'ais.lookingSimilar',
@@ -13445,21 +13708,37 @@
13445
13708
  return renderState;
13446
13709
  },
13447
13710
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
13448
- var results = _ref2.results;
13711
+ var results = _ref2.results,
13712
+ helper = _ref2.helper,
13713
+ instantSearchInstance = _ref2.instantSearchInstance;
13714
+ if (!sendEvent) {
13715
+ sendEvent = createSendEventForHits({
13716
+ instantSearchInstance: instantSearchInstance,
13717
+ getIndex: function getIndex() {
13718
+ return helper.getIndex();
13719
+ },
13720
+ widgetType: this.$$type
13721
+ });
13722
+ }
13449
13723
  if (results === null || results === undefined) {
13450
13724
  return {
13451
13725
  items: [],
13452
- widgetParams: widgetParams
13726
+ widgetParams: widgetParams,
13727
+ sendEvent: sendEvent
13453
13728
  };
13454
13729
  }
13455
13730
  if (escapeHTML && results.hits.length > 0) {
13456
13731
  results.hits = escapeHits(results.hits);
13457
13732
  }
13733
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
13734
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
13735
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
13736
+ results: results
13737
+ });
13458
13738
  return {
13459
- items: transformItems(results.hits, {
13460
- results: results
13461
- }),
13462
- widgetParams: widgetParams
13739
+ items: transformedItems,
13740
+ widgetParams: widgetParams,
13741
+ sendEvent: sendEvent
13463
13742
  };
13464
13743
  },
13465
13744
  dispose: function dispose(_ref3) {
@@ -16101,7 +16380,7 @@
16101
16380
  };
16102
16381
  }
16103
16382
 
16104
- var version$1 = '4.75.7';
16383
+ var version$1 = '4.77.0';
16105
16384
 
16106
16385
  var withUsage$v = createDocumentationMessageGenerator({
16107
16386
  name: 'instantsearch'
@@ -16140,6 +16419,7 @@
16140
16419
  // prevent `render` event listening from causing a warning
16141
16420
  _defineProperty(_assertThisInitialized(_this), "client", void 0);
16142
16421
  _defineProperty(_assertThisInitialized(_this), "indexName", void 0);
16422
+ _defineProperty(_assertThisInitialized(_this), "compositionID", void 0);
16143
16423
  _defineProperty(_assertThisInitialized(_this), "insightsClient", void 0);
16144
16424
  _defineProperty(_assertThisInitialized(_this), "onStateChange", null);
16145
16425
  _defineProperty(_assertThisInitialized(_this), "future", void 0);
@@ -16203,6 +16483,7 @@
16203
16483
  _this.setMaxListeners(100);
16204
16484
  var _options$indexName = options.indexName,
16205
16485
  indexName = _options$indexName === void 0 ? '' : _options$indexName,
16486
+ compositionID = options.compositionID,
16206
16487
  numberLocale = options.numberLocale,
16207
16488
  _options$initialUiSta = options.initialUiState,
16208
16489
  initialUiState = _options$initialUiSta === void 0 ? {} : _options$initialUiSta,
@@ -16247,10 +16528,13 @@
16247
16528
  _this.future = future;
16248
16529
  _this.insightsClient = insightsClient;
16249
16530
  _this.indexName = indexName;
16531
+ _this.compositionID = compositionID;
16250
16532
  _this.helper = null;
16251
16533
  _this.mainHelper = null;
16252
16534
  _this.mainIndex = index({
16253
- indexName: indexName
16535
+ // we use an index widget to render compositions
16536
+ // this only works because there's only one composition index allow for now
16537
+ indexName: _this.compositionID || _this.indexName
16254
16538
  });
16255
16539
  _this.onStateChange = onStateChange;
16256
16540
  _this.started = false;
@@ -16400,6 +16684,9 @@
16400
16684
  })) {
16401
16685
  throw new Error(withUsage$v('The widget definition expects a `render` and/or an `init` method.'));
16402
16686
  }
16687
+ if (this.compositionID && widgets.some(isIndexWidget)) {
16688
+ throw new Error(withUsage$v('The `index` widget cannot be used with a composition-based InstantSearch implementation.'));
16689
+ }
16403
16690
  this.mainIndex.addWidgets(widgets);
16404
16691
  return this;
16405
16692
  }
@@ -16459,17 +16746,24 @@
16459
16746
  var mainHelper = this.mainHelper || algoliasearchHelper_1(this.client, this.indexName, undefined, {
16460
16747
  persistHierarchicalRootCount: this.future.persistHierarchicalRootCount
16461
16748
  });
16749
+ if (this.compositionID) {
16750
+ mainHelper.searchForFacetValues = mainHelper.searchForCompositionFacetValues.bind(mainHelper);
16751
+ }
16462
16752
  mainHelper.search = function () {
16463
16753
  _this3.status = 'loading';
16464
16754
  _this3.scheduleRender(false);
16465
- _warning(Boolean(_this3.indexName) || _this3.mainIndex.getWidgets().some(isIndexWidget), 'No indexName provided, nor an explicit index widget in the widgets tree. This is required to be able to display results.') ;
16755
+ _warning(Boolean(_this3.indexName) || Boolean(_this3.compositionID) || _this3.mainIndex.getWidgets().some(isIndexWidget), 'No indexName provided, nor an explicit index widget in the widgets tree. This is required to be able to display results.') ;
16466
16756
 
16467
16757
  // This solution allows us to keep the exact same API for the users but
16468
16758
  // under the hood, we have a different implementation. It should be
16469
16759
  // completely transparent for the rest of the codebase. Only this module
16470
16760
  // is impacted.
16471
16761
  if (_this3._hasSearchWidget) {
16472
- mainHelper.searchOnlyWithDerivedHelpers();
16762
+ if (_this3.compositionID) {
16763
+ mainHelper.searchWithComposition();
16764
+ } else {
16765
+ mainHelper.searchOnlyWithDerivedHelpers();
16766
+ }
16473
16767
  }
16474
16768
  if (_this3._hasRecommendWidget) {
16475
16769
  mainHelper.recommend();
@@ -16946,8 +17240,12 @@
16946
17240
  return createElement("li", {
16947
17241
  key: item.objectID,
16948
17242
  className: classNames.item,
16949
- onClick: sendEvent,
16950
- onAuxClick: sendEvent
17243
+ onClick: function onClick() {
17244
+ sendEvent('click:internal', item, 'Item Clicked');
17245
+ },
17246
+ onAuxClick: function onAuxClick() {
17247
+ sendEvent('click:internal', item, 'Item Clicked');
17248
+ }
16951
17249
  }, createElement(ItemComponent, {
16952
17250
  item: item
16953
17251
  }));
@@ -16955,27 +17253,27 @@
16955
17253
  };
16956
17254
  }
16957
17255
 
16958
- var _excluded$9 = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations"];
16959
- function ownKeys$1(object, enumerableOnly) {
16960
- var keys = Object.keys(object);
17256
+ var _excluded$9 = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations", "sendEvent"];
17257
+ function ownKeys$1(e, r) {
17258
+ var t = Object.keys(e);
16961
17259
  if (Object.getOwnPropertySymbols) {
16962
- var symbols = Object.getOwnPropertySymbols(object);
16963
- enumerableOnly && (symbols = symbols.filter(function (sym) {
16964
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
16965
- })), keys.push.apply(keys, symbols);
16966
- }
16967
- return keys;
16968
- }
16969
- function _objectSpread(target) {
16970
- for (var i = 1; i < arguments.length; i++) {
16971
- var source = null != arguments[i] ? arguments[i] : {};
16972
- i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) {
16973
- _defineProperty$1(target, key, source[key]);
16974
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) {
16975
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17260
+ var o = Object.getOwnPropertySymbols(e);
17261
+ r && (o = o.filter(function (r) {
17262
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17263
+ })), t.push.apply(t, o);
17264
+ }
17265
+ return t;
17266
+ }
17267
+ function _objectSpread(e) {
17268
+ for (var r = 1; r < arguments.length; r++) {
17269
+ var t = null != arguments[r] ? arguments[r] : {};
17270
+ r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {
17271
+ _defineProperty$1(e, r, t[r]);
17272
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {
17273
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
16976
17274
  });
16977
17275
  }
16978
- return target;
17276
+ return e;
16979
17277
  }
16980
17278
  var lastCarouselId = 0;
16981
17279
  function generateCarouselId() {
@@ -17030,6 +17328,7 @@
17030
17328
  NextIconComponent = _userProps$nextIconCo === void 0 ? NextIconDefaultComponent : _userProps$nextIconCo,
17031
17329
  items = userProps.items,
17032
17330
  userTranslations = userProps.translations,
17331
+ sendEvent = userProps.sendEvent,
17033
17332
  props = _objectWithoutProperties$1(userProps, _excluded$9);
17034
17333
  var translations = _objectSpread({
17035
17334
  listLabel: 'Items',
@@ -17104,7 +17403,13 @@
17104
17403
  key: item.objectID,
17105
17404
  className: cx(cssClasses.item),
17106
17405
  "aria-roledescription": "slide",
17107
- "aria-label": "".concat(index + 1, " of ").concat(items.length)
17406
+ "aria-label": "".concat(index + 1, " of ").concat(items.length),
17407
+ onClick: function onClick() {
17408
+ sendEvent('click:internal', item, 'Item Clicked');
17409
+ },
17410
+ onAuxClick: function onAuxClick() {
17411
+ sendEvent('click:internal', item, 'Item Clicked');
17412
+ }
17108
17413
  }, createElement(ItemComponent, {
17109
17414
  item: item
17110
17415
  }));
@@ -17125,26 +17430,26 @@
17125
17430
  }
17126
17431
 
17127
17432
  var _excluded$a = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
17128
- function ownKeys$2(object, enumerableOnly) {
17129
- var keys = Object.keys(object);
17433
+ function ownKeys$2(e, r) {
17434
+ var t = Object.keys(e);
17130
17435
  if (Object.getOwnPropertySymbols) {
17131
- var symbols = Object.getOwnPropertySymbols(object);
17132
- enumerableOnly && (symbols = symbols.filter(function (sym) {
17133
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17134
- })), keys.push.apply(keys, symbols);
17135
- }
17136
- return keys;
17137
- }
17138
- function _objectSpread$1(target) {
17139
- for (var i = 1; i < arguments.length; i++) {
17140
- var source = null != arguments[i] ? arguments[i] : {};
17141
- i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) {
17142
- _defineProperty$1(target, key, source[key]);
17143
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) {
17144
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17436
+ var o = Object.getOwnPropertySymbols(e);
17437
+ r && (o = o.filter(function (r) {
17438
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17439
+ })), t.push.apply(t, o);
17440
+ }
17441
+ return t;
17442
+ }
17443
+ function _objectSpread$1(e) {
17444
+ for (var r = 1; r < arguments.length; r++) {
17445
+ var t = null != arguments[r] ? arguments[r] : {};
17446
+ r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {
17447
+ _defineProperty$1(e, r, t[r]);
17448
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {
17449
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
17145
17450
  });
17146
17451
  }
17147
- return target;
17452
+ return e;
17148
17453
  }
17149
17454
  function createFrequentlyBoughtTogetherComponent(_ref) {
17150
17455
  var createElement = _ref.createElement,
@@ -17338,26 +17643,26 @@
17338
17643
  }
17339
17644
 
17340
17645
  var _excluded$d = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
17341
- function ownKeys$3(object, enumerableOnly) {
17342
- var keys = Object.keys(object);
17646
+ function ownKeys$3(e, r) {
17647
+ var t = Object.keys(e);
17343
17648
  if (Object.getOwnPropertySymbols) {
17344
- var symbols = Object.getOwnPropertySymbols(object);
17345
- enumerableOnly && (symbols = symbols.filter(function (sym) {
17346
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17347
- })), keys.push.apply(keys, symbols);
17348
- }
17349
- return keys;
17350
- }
17351
- function _objectSpread$2(target) {
17352
- for (var i = 1; i < arguments.length; i++) {
17353
- var source = null != arguments[i] ? arguments[i] : {};
17354
- i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) {
17355
- _defineProperty$1(target, key, source[key]);
17356
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) {
17357
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17649
+ var o = Object.getOwnPropertySymbols(e);
17650
+ r && (o = o.filter(function (r) {
17651
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17652
+ })), t.push.apply(t, o);
17653
+ }
17654
+ return t;
17655
+ }
17656
+ function _objectSpread$2(e) {
17657
+ for (var r = 1; r < arguments.length; r++) {
17658
+ var t = null != arguments[r] ? arguments[r] : {};
17659
+ r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) {
17660
+ _defineProperty$1(e, r, t[r]);
17661
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) {
17662
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
17358
17663
  });
17359
17664
  }
17360
- return target;
17665
+ return e;
17361
17666
  }
17362
17667
  function createLookingSimilarComponent(_ref) {
17363
17668
  var createElement = _ref.createElement,
@@ -17423,26 +17728,26 @@
17423
17728
  }
17424
17729
 
17425
17730
  var _excluded$e = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
17426
- function ownKeys$4(object, enumerableOnly) {
17427
- var keys = Object.keys(object);
17731
+ function ownKeys$4(e, r) {
17732
+ var t = Object.keys(e);
17428
17733
  if (Object.getOwnPropertySymbols) {
17429
- var symbols = Object.getOwnPropertySymbols(object);
17430
- enumerableOnly && (symbols = symbols.filter(function (sym) {
17431
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17432
- })), keys.push.apply(keys, symbols);
17433
- }
17434
- return keys;
17435
- }
17436
- function _objectSpread$3(target) {
17437
- for (var i = 1; i < arguments.length; i++) {
17438
- var source = null != arguments[i] ? arguments[i] : {};
17439
- i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) {
17440
- _defineProperty$1(target, key, source[key]);
17441
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) {
17442
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17734
+ var o = Object.getOwnPropertySymbols(e);
17735
+ r && (o = o.filter(function (r) {
17736
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17737
+ })), t.push.apply(t, o);
17738
+ }
17739
+ return t;
17740
+ }
17741
+ function _objectSpread$3(e) {
17742
+ for (var r = 1; r < arguments.length; r++) {
17743
+ var t = null != arguments[r] ? arguments[r] : {};
17744
+ r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) {
17745
+ _defineProperty$1(e, r, t[r]);
17746
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) {
17747
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
17443
17748
  });
17444
17749
  }
17445
- return target;
17750
+ return e;
17446
17751
  }
17447
17752
  function createRelatedProductsComponent(_ref) {
17448
17753
  var createElement = _ref.createElement,
@@ -17508,26 +17813,26 @@
17508
17813
  }
17509
17814
 
17510
17815
  var _excluded$f = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"];
17511
- function ownKeys$5(object, enumerableOnly) {
17512
- var keys = Object.keys(object);
17816
+ function ownKeys$5(e, r) {
17817
+ var t = Object.keys(e);
17513
17818
  if (Object.getOwnPropertySymbols) {
17514
- var symbols = Object.getOwnPropertySymbols(object);
17515
- enumerableOnly && (symbols = symbols.filter(function (sym) {
17516
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17517
- })), keys.push.apply(keys, symbols);
17518
- }
17519
- return keys;
17520
- }
17521
- function _objectSpread$4(target) {
17522
- for (var i = 1; i < arguments.length; i++) {
17523
- var source = null != arguments[i] ? arguments[i] : {};
17524
- i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) {
17525
- _defineProperty$1(target, key, source[key]);
17526
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) {
17527
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
17819
+ var o = Object.getOwnPropertySymbols(e);
17820
+ r && (o = o.filter(function (r) {
17821
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17822
+ })), t.push.apply(t, o);
17823
+ }
17824
+ return t;
17825
+ }
17826
+ function _objectSpread$4(e) {
17827
+ for (var r = 1; r < arguments.length; r++) {
17828
+ var t = null != arguments[r] ? arguments[r] : {};
17829
+ r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) {
17830
+ _defineProperty$1(e, r, t[r]);
17831
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) {
17832
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
17528
17833
  });
17529
17834
  }
17530
- return target;
17835
+ return e;
17531
17836
  }
17532
17837
  function createTrendingItemsComponent(_ref) {
17533
17838
  var createElement = _ref.createElement,
@@ -17616,11 +17921,14 @@
17616
17921
  var items = _ref2.items,
17617
17922
  widgetTemplates = _ref2.templates,
17618
17923
  _ref2$cssClasses = _ref2.cssClasses,
17619
- widgetCssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses;
17924
+ widgetCssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses,
17925
+ _ref2$sendEvent = _ref2.sendEvent,
17926
+ sendEvent = _ref2$sendEvent === void 0 ? function () {} : _ref2$sendEvent;
17620
17927
  var previous = templates.previous,
17621
17928
  next = templates.next;
17622
17929
  return h(CarouselWithRefs, {
17623
17930
  items: items,
17931
+ sendEvent: sendEvent,
17624
17932
  itemComponent: widgetTemplates.item,
17625
17933
  previousIconComponent: previous ? function () {
17626
17934
  return previous({
@@ -22348,7 +22656,8 @@
22348
22656
  return function renderer(_ref2, isFirstRendering) {
22349
22657
  var items = _ref2.items,
22350
22658
  results = _ref2.results,
22351
- instantSearchInstance = _ref2.instantSearchInstance;
22659
+ instantSearchInstance = _ref2.instantSearchInstance,
22660
+ sendEvent = _ref2.sendEvent;
22352
22661
  if (isFirstRendering) {
22353
22662
  renderState.templateProps = prepareTemplateProps({
22354
22663
  defaultTemplates: {},
@@ -22372,7 +22681,8 @@
22372
22681
  return h(Template, _extends({}, renderState.templateProps, {
22373
22682
  templateKey: "item",
22374
22683
  rootTagName: "fragment",
22375
- data: item
22684
+ data: item,
22685
+ sendEvent: sendEvent
22376
22686
  }));
22377
22687
  } : undefined;
22378
22688
  var emptyComponent = templates.empty ? function () {
@@ -22387,6 +22697,7 @@
22387
22697
  templateKey: "layout",
22388
22698
  rootTagName: "fragment",
22389
22699
  data: {
22700
+ sendEvent: sendEvent,
22390
22701
  items: data.items,
22391
22702
  templates: {
22392
22703
  item: templates.item ? function (_ref4) {
@@ -22394,7 +22705,8 @@
22394
22705
  return h(Template, _extends({}, renderState.templateProps, {
22395
22706
  templateKey: "item",
22396
22707
  rootTagName: "fragment",
22397
- data: item
22708
+ data: item,
22709
+ sendEvent: sendEvent
22398
22710
  }));
22399
22711
  } : undefined
22400
22712
  },
@@ -22402,12 +22714,13 @@
22402
22714
  list: data.classNames.list,
22403
22715
  item: data.classNames.item
22404
22716
  }
22405
- }
22717
+ },
22718
+ sendEvent: sendEvent
22406
22719
  }));
22407
22720
  } : undefined;
22408
22721
  P(h(RelatedProducts, {
22409
22722
  items: items,
22410
- sendEvent: function sendEvent() {},
22723
+ sendEvent: sendEvent,
22411
22724
  classNames: cssClasses,
22412
22725
  headerComponent: headerComponent,
22413
22726
  itemComponent: itemComponent,
@@ -24528,7 +24841,8 @@
24528
24841
  return function renderer(_ref2, isFirstRendering) {
24529
24842
  var items = _ref2.items,
24530
24843
  results = _ref2.results,
24531
- instantSearchInstance = _ref2.instantSearchInstance;
24844
+ instantSearchInstance = _ref2.instantSearchInstance,
24845
+ sendEvent = _ref2.sendEvent;
24532
24846
  if (isFirstRendering) {
24533
24847
  renderState.templateProps = prepareTemplateProps({
24534
24848
  defaultTemplates: {},
@@ -24552,7 +24866,8 @@
24552
24866
  return h(Template, _extends({}, renderState.templateProps, {
24553
24867
  templateKey: "item",
24554
24868
  rootTagName: "fragment",
24555
- data: item
24869
+ data: item,
24870
+ sendEvent: sendEvent
24556
24871
  }));
24557
24872
  } : undefined;
24558
24873
  var emptyComponent = templates.empty ? function () {
@@ -24567,6 +24882,7 @@
24567
24882
  templateKey: "layout",
24568
24883
  rootTagName: "fragment",
24569
24884
  data: {
24885
+ sendEvent: sendEvent,
24570
24886
  items: data.items,
24571
24887
  templates: {
24572
24888
  item: templates.item ? function (_ref4) {
@@ -24574,7 +24890,8 @@
24574
24890
  return h(Template, _extends({}, renderState.templateProps, {
24575
24891
  templateKey: "item",
24576
24892
  rootTagName: "fragment",
24577
- data: item
24893
+ data: item,
24894
+ sendEvent: sendEvent
24578
24895
  }));
24579
24896
  } : undefined
24580
24897
  },
@@ -24582,12 +24899,13 @@
24582
24899
  list: data.classNames.list,
24583
24900
  item: data.classNames.item
24584
24901
  }
24585
- }
24902
+ },
24903
+ sendEvent: sendEvent
24586
24904
  }));
24587
24905
  } : undefined;
24588
24906
  P(h(TrendingItems, {
24589
24907
  items: items,
24590
- sendEvent: function sendEvent() {},
24908
+ sendEvent: sendEvent,
24591
24909
  classNames: cssClasses,
24592
24910
  headerComponent: headerComponent,
24593
24911
  itemComponent: itemComponent,
@@ -24860,7 +25178,8 @@
24860
25178
  return function (_ref2, isFirstRendering) {
24861
25179
  var items = _ref2.items,
24862
25180
  results = _ref2.results,
24863
- instantSearchInstance = _ref2.instantSearchInstance;
25181
+ instantSearchInstance = _ref2.instantSearchInstance,
25182
+ sendEvent = _ref2.sendEvent;
24864
25183
  if (isFirstRendering) {
24865
25184
  renderState.templateProps = prepareTemplateProps({
24866
25185
  defaultTemplates: {},
@@ -24884,7 +25203,8 @@
24884
25203
  return h(Template, _extends({}, renderState.templateProps, {
24885
25204
  templateKey: "item",
24886
25205
  rootTagName: "fragment",
24887
- data: item
25206
+ data: item,
25207
+ sendEvent: sendEvent
24888
25208
  }));
24889
25209
  } : undefined;
24890
25210
  var emptyComponent = templates.empty ? function () {
@@ -24899,6 +25219,7 @@
24899
25219
  templateKey: "layout",
24900
25220
  rootTagName: "fragment",
24901
25221
  data: {
25222
+ sendEvent: sendEvent,
24902
25223
  items: data.items,
24903
25224
  templates: {
24904
25225
  item: templates.item ? function (_ref4) {
@@ -24906,7 +25227,8 @@
24906
25227
  return h(Template, _extends({}, renderState.templateProps, {
24907
25228
  templateKey: "item",
24908
25229
  rootTagName: "fragment",
24909
- data: item
25230
+ data: item,
25231
+ sendEvent: sendEvent
24910
25232
  }));
24911
25233
  } : undefined
24912
25234
  },
@@ -24914,14 +25236,15 @@
24914
25236
  list: data.classNames.list,
24915
25237
  item: data.classNames.item
24916
25238
  }
24917
- }
25239
+ },
25240
+ sendEvent: sendEvent
24918
25241
  }));
24919
25242
  } : undefined;
24920
25243
  P(h(FrequentlyBoughtTogether, {
24921
25244
  items: items,
24922
25245
  headerComponent: headerComponent,
24923
25246
  itemComponent: itemComponent,
24924
- sendEvent: function sendEvent() {},
25247
+ sendEvent: sendEvent,
24925
25248
  classNames: cssClasses,
24926
25249
  emptyComponent: emptyComponent,
24927
25250
  layout: layoutComponent,
@@ -24982,7 +25305,8 @@
24982
25305
  return function (_ref2, isFirstRendering) {
24983
25306
  var items = _ref2.items,
24984
25307
  results = _ref2.results,
24985
- instantSearchInstance = _ref2.instantSearchInstance;
25308
+ instantSearchInstance = _ref2.instantSearchInstance,
25309
+ sendEvent = _ref2.sendEvent;
24986
25310
  if (isFirstRendering) {
24987
25311
  renderState.templateProps = prepareTemplateProps({
24988
25312
  defaultTemplates: {},
@@ -25006,7 +25330,8 @@
25006
25330
  return h(Template, _extends({}, renderState.templateProps, {
25007
25331
  templateKey: "item",
25008
25332
  rootTagName: "fragment",
25009
- data: item
25333
+ data: item,
25334
+ sendEvent: sendEvent
25010
25335
  }));
25011
25336
  } : undefined;
25012
25337
  var emptyComponent = templates.empty ? function () {
@@ -25021,6 +25346,7 @@
25021
25346
  templateKey: "layout",
25022
25347
  rootTagName: "fragment",
25023
25348
  data: {
25349
+ sendEvent: sendEvent,
25024
25350
  items: data.items,
25025
25351
  templates: {
25026
25352
  item: templates.item ? function (_ref4) {
@@ -25028,7 +25354,8 @@
25028
25354
  return h(Template, _extends({}, renderState.templateProps, {
25029
25355
  templateKey: "item",
25030
25356
  rootTagName: "fragment",
25031
- data: item
25357
+ data: item,
25358
+ sendEvent: sendEvent
25032
25359
  }));
25033
25360
  } : undefined
25034
25361
  },
@@ -25036,7 +25363,8 @@
25036
25363
  list: data.classNames.list,
25037
25364
  item: data.classNames.item
25038
25365
  }
25039
- }
25366
+ },
25367
+ sendEvent: sendEvent
25040
25368
  }));
25041
25369
  } : undefined;
25042
25370
  P(h(LookingSimilar, {