instantsearch.js 4.49.0 → 4.49.2

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 (376) hide show
  1. package/README.md +3 -3
  2. package/cjs/components/Answers/Answers.js +6 -16
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
  6. package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
  8. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
  9. package/cjs/components/Highlight/Highlight.js +3 -11
  10. package/cjs/components/Hits/Hits.js +8 -20
  11. package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
  12. package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
  13. package/cjs/components/MenuSelect/MenuSelect.js +9 -19
  14. package/cjs/components/Pagination/Pagination.js +10 -17
  15. package/cjs/components/Panel/Panel.js +7 -26
  16. package/cjs/components/PoweredBy/PoweredBy.js +4 -5
  17. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
  18. package/cjs/components/RangeInput/RangeInput.js +16 -48
  19. package/cjs/components/RefinementList/RefinementList.js +19 -73
  20. package/cjs/components/RefinementList/RefinementListItem.js +8 -14
  21. package/cjs/components/RelevantSort/RelevantSort.js +4 -8
  22. package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
  23. package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
  24. package/cjs/components/SearchBox/SearchBox.js +25 -69
  25. package/cjs/components/Selector/Selector.js +3 -6
  26. package/cjs/components/Slider/Pit.js +3 -10
  27. package/cjs/components/Slider/Rheostat.js +63 -131
  28. package/cjs/components/Slider/Slider.js +28 -65
  29. package/cjs/components/Snippet/Snippet.js +3 -11
  30. package/cjs/components/Stats/Stats.js +7 -20
  31. package/cjs/components/Template/Template.js +8 -37
  32. package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
  33. package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
  34. package/cjs/connectors/answers/connectAnswers.js +21 -36
  35. package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
  36. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
  37. package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
  38. package/cjs/connectors/configure/connectConfigure.js +6 -20
  39. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
  40. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
  41. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
  42. package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
  43. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
  44. package/cjs/connectors/hits/connectHits.js +10 -26
  45. package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
  46. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
  47. package/cjs/connectors/index.js +62 -96
  48. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
  49. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
  50. package/cjs/connectors/menu/connectMenu.js +28 -66
  51. package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
  52. package/cjs/connectors/pagination/Paginator.js +3 -20
  53. package/cjs/connectors/pagination/connectPagination.js +8 -25
  54. package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
  55. package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
  56. package/cjs/connectors/range/connectRange.js +41 -101
  57. package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
  58. package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
  59. package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
  60. package/cjs/connectors/search-box/connectSearchBox.js +7 -23
  61. package/cjs/connectors/sort-by/connectSortBy.js +11 -21
  62. package/cjs/connectors/stats/connectStats.js +4 -11
  63. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
  64. package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
  65. package/cjs/helpers/components/Highlight.js +4 -12
  66. package/cjs/helpers/components/ReverseHighlight.js +7 -19
  67. package/cjs/helpers/components/ReverseSnippet.js +7 -19
  68. package/cjs/helpers/components/Snippet.js +4 -12
  69. package/cjs/helpers/components/index.js +0 -8
  70. package/cjs/helpers/get-insights-anonymous-user-token.js +7 -12
  71. package/cjs/helpers/highlight.js +10 -16
  72. package/cjs/helpers/index.js +17 -31
  73. package/cjs/helpers/insights.js +5 -17
  74. package/cjs/helpers/reverseHighlight.js +10 -16
  75. package/cjs/helpers/reverseSnippet.js +10 -16
  76. package/cjs/helpers/snippet.js +10 -16
  77. package/cjs/index.js +3 -18
  78. package/cjs/lib/InstantSearch.js +79 -180
  79. package/cjs/lib/createHelpers.js +4 -11
  80. package/cjs/lib/formatNumber.js +0 -1
  81. package/cjs/lib/infiniteHitsCache/index.js +0 -2
  82. package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
  83. package/cjs/lib/insights/client.js +8 -34
  84. package/cjs/lib/insights/index.js +7 -13
  85. package/cjs/lib/insights/listener.js +4 -20
  86. package/cjs/lib/routers/history.js +63 -102
  87. package/cjs/lib/routers/index.js +0 -2
  88. package/cjs/lib/stateMappings/index.js +0 -3
  89. package/cjs/lib/stateMappings/simple.js +6 -13
  90. package/cjs/lib/stateMappings/singleIndex.js +1 -7
  91. package/cjs/lib/suit.js +2 -5
  92. package/cjs/lib/templating/index.js +0 -4
  93. package/cjs/lib/templating/prepareTemplateProps.js +8 -19
  94. package/cjs/lib/templating/renderTemplate.js +9 -24
  95. package/cjs/lib/utils/capitalize.js +0 -1
  96. package/cjs/lib/utils/checkIndexUiState.js +15 -43
  97. package/cjs/lib/utils/checkRendering.js +0 -2
  98. package/cjs/lib/utils/clearRefinements.js +2 -9
  99. package/cjs/lib/utils/concatHighlightedParts.js +1 -3
  100. package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
  101. package/cjs/lib/utils/createSendEventForFacet.js +7 -14
  102. package/cjs/lib/utils/createSendEventForHits.js +9 -33
  103. package/cjs/lib/utils/debounce.js +0 -3
  104. package/cjs/lib/utils/defer.js +0 -11
  105. package/cjs/lib/utils/detect-insights-client.js +0 -2
  106. package/cjs/lib/utils/documentation.js +2 -5
  107. package/cjs/lib/utils/escape-highlight.js +5 -22
  108. package/cjs/lib/utils/escape-html.js +9 -7
  109. package/cjs/lib/utils/escapeFacetValue.js +1 -5
  110. package/cjs/lib/utils/find.js +2 -5
  111. package/cjs/lib/utils/findIndex.js +0 -3
  112. package/cjs/lib/utils/geo-search.js +14 -34
  113. package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
  114. package/cjs/lib/utils/getContainerNode.js +0 -6
  115. package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
  116. package/cjs/lib/utils/getHighlightedParts.js +1 -4
  117. package/cjs/lib/utils/getObjectType.js +0 -1
  118. package/cjs/lib/utils/getPropertyByPath.js +0 -1
  119. package/cjs/lib/utils/getRefinements.js +13 -26
  120. package/cjs/lib/utils/getWidgetAttribute.js +0 -6
  121. package/cjs/lib/utils/hits-absolute-position.js +2 -6
  122. package/cjs/lib/utils/hits-query-id.js +2 -7
  123. package/cjs/lib/utils/index.js +0 -92
  124. package/cjs/lib/utils/isDomElement.js +0 -1
  125. package/cjs/lib/utils/isEqual.js +0 -8
  126. package/cjs/lib/utils/isFacetRefined.js +0 -1
  127. package/cjs/lib/utils/isFiniteNumber.js +0 -1
  128. package/cjs/lib/utils/isIndexWidget.js +0 -1
  129. package/cjs/lib/utils/isPlainObject.js +3 -11
  130. package/cjs/lib/utils/isSpecialClick.js +0 -1
  131. package/cjs/lib/utils/logger.js +3 -13
  132. package/cjs/lib/utils/mergeSearchParameters.js +16 -40
  133. package/cjs/lib/utils/noop.js +0 -1
  134. package/cjs/lib/utils/range.js +8 -14
  135. package/cjs/lib/utils/render-args.js +0 -2
  136. package/cjs/lib/utils/resolveSearchParameters.js +0 -3
  137. package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
  138. package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
  139. package/cjs/lib/utils/serializer.js +1 -3
  140. package/cjs/lib/utils/setIndexHelperState.js +0 -5
  141. package/cjs/lib/utils/toArray.js +0 -1
  142. package/cjs/lib/utils/typedObject.js +0 -1
  143. package/cjs/lib/utils/uniq.js +0 -1
  144. package/cjs/lib/version.js +1 -1
  145. package/cjs/lib/voiceSearchHelper/index.js +8 -36
  146. package/cjs/middlewares/createInsightsMiddleware.js +15 -44
  147. package/cjs/middlewares/createMetadataMiddleware.js +4 -12
  148. package/cjs/middlewares/createRouterMiddleware.js +8 -19
  149. package/cjs/middlewares/index.js +0 -6
  150. package/cjs/types/algoliasearch.js +0 -2
  151. package/cjs/types/index.js +0 -28
  152. package/cjs/widgets/analytics/analytics.js +12 -47
  153. package/cjs/widgets/answers/answers.js +19 -39
  154. package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
  155. package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
  156. package/cjs/widgets/configure/configure.js +2 -10
  157. package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
  158. package/cjs/widgets/current-refinements/current-refinements.js +12 -30
  159. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
  160. package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
  161. package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
  162. package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
  163. package/cjs/widgets/geo-search/geo-search.js +27 -59
  164. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
  165. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
  166. package/cjs/widgets/hits/hits.js +16 -37
  167. package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
  168. package/cjs/widgets/index/index.js +49 -95
  169. package/cjs/widgets/index.js +12 -50
  170. package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
  171. package/cjs/widgets/menu/defaultTemplates.js +3 -6
  172. package/cjs/widgets/menu/menu.js +23 -43
  173. package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
  174. package/cjs/widgets/menu-select/menu-select.js +18 -38
  175. package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
  176. package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
  177. package/cjs/widgets/pagination/pagination.js +32 -53
  178. package/cjs/widgets/panel/panel.js +20 -48
  179. package/cjs/widgets/places/places.js +16 -33
  180. package/cjs/widgets/powered-by/powered-by.js +10 -27
  181. package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
  182. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
  183. package/cjs/widgets/range-input/range-input.js +23 -50
  184. package/cjs/widgets/range-slider/range-slider.js +28 -53
  185. package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
  186. package/cjs/widgets/rating-menu/rating-menu.js +17 -38
  187. package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
  188. package/cjs/widgets/refinement-list/refinement-list.js +39 -60
  189. package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
  190. package/cjs/widgets/search-box/defaultTemplates.js +0 -5
  191. package/cjs/widgets/search-box/search-box.js +31 -49
  192. package/cjs/widgets/sort-by/sort-by.js +11 -29
  193. package/cjs/widgets/stats/defaultTemplates.js +0 -1
  194. package/cjs/widgets/stats/stats.js +27 -57
  195. package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
  196. package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
  197. package/cjs/widgets/voice-search/voice-search.js +17 -36
  198. package/dist/instantsearch.development.d.ts +8 -6
  199. package/dist/instantsearch.development.js +1725 -3087
  200. package/dist/instantsearch.development.js.map +1 -1
  201. package/dist/instantsearch.production.d.ts +8 -6
  202. package/dist/instantsearch.production.min.d.ts +8 -6
  203. package/dist/instantsearch.production.min.js +2 -2
  204. package/dist/instantsearch.production.min.js.map +1 -1
  205. package/es/components/Answers/Answers.js +6 -11
  206. package/es/components/Breadcrumb/Breadcrumb.js +5 -7
  207. package/es/components/ClearRefinements/ClearRefinements.js +4 -6
  208. package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
  209. package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
  210. package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
  211. package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
  212. package/es/components/Highlight/Highlight.js +3 -7
  213. package/es/components/Hits/Hits.js +8 -15
  214. package/es/components/InfiniteHits/InfiniteHits.js +13 -20
  215. package/es/components/MenuSelect/MenuSelect.js +9 -13
  216. package/es/components/Pagination/Pagination.js +12 -15
  217. package/es/components/Panel/Panel.js +7 -20
  218. package/es/components/PoweredBy/PoweredBy.js +6 -5
  219. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
  220. package/es/components/RangeInput/RangeInput.js +16 -43
  221. package/es/components/RefinementList/RefinementList.js +19 -64
  222. package/es/components/RefinementList/RefinementListItem.js +8 -10
  223. package/es/components/RelevantSort/RelevantSort.js +6 -6
  224. package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
  225. package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
  226. package/es/components/SearchBox/SearchBox.js +25 -63
  227. package/es/components/Selector/Selector.js +5 -5
  228. package/es/components/Slider/Pit.js +3 -7
  229. package/es/components/Slider/Rheostat.js +64 -129
  230. package/es/components/Slider/Slider.js +28 -58
  231. package/es/components/Snippet/Snippet.js +3 -7
  232. package/es/components/Stats/Stats.js +7 -15
  233. package/es/components/Template/Template.js +8 -32
  234. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
  235. package/es/components/VoiceSearch/VoiceSearch.js +10 -13
  236. package/es/connectors/answers/connectAnswers.js +21 -35
  237. package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
  238. package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
  239. package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
  240. package/es/connectors/configure/connectConfigure.js +7 -16
  241. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
  242. package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
  243. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
  244. package/es/connectors/geo-search/connectGeoSearch.js +17 -45
  245. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
  246. package/es/connectors/hits/connectHits.js +10 -24
  247. package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
  248. package/es/connectors/index.d.ts +2 -1
  249. package/es/connectors/index.js +6 -3
  250. package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
  251. package/es/connectors/menu/connectMenu.js +28 -64
  252. package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
  253. package/es/connectors/pagination/Paginator.js +3 -19
  254. package/es/connectors/pagination/connectPagination.js +8 -21
  255. package/es/connectors/powered-by/connectPoweredBy.js +4 -11
  256. package/es/connectors/query-rules/connectQueryRules.js +32 -54
  257. package/es/connectors/range/connectRange.js +41 -99
  258. package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
  259. package/es/connectors/refinement-list/connectRefinementList.js +37 -68
  260. package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
  261. package/es/connectors/search-box/connectSearchBox.js +7 -21
  262. package/es/connectors/sort-by/connectSortBy.js +11 -19
  263. package/es/connectors/stats/connectStats.js +4 -9
  264. package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
  265. package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
  266. package/es/helpers/components/Highlight.js +4 -8
  267. package/es/helpers/components/ReverseHighlight.js +7 -15
  268. package/es/helpers/components/ReverseSnippet.js +7 -15
  269. package/es/helpers/components/Snippet.js +4 -8
  270. package/es/helpers/get-insights-anonymous-user-token.js +5 -7
  271. package/es/helpers/highlight.js +9 -11
  272. package/es/helpers/insights.js +3 -10
  273. package/es/helpers/reverseHighlight.js +9 -11
  274. package/es/helpers/reverseSnippet.js +9 -11
  275. package/es/helpers/snippet.js +9 -11
  276. package/es/index.js +0 -2
  277. package/es/lib/InstantSearch.js +79 -170
  278. package/es/lib/createHelpers.js +4 -8
  279. package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
  280. package/es/lib/insights/client.js +8 -32
  281. package/es/lib/insights/listener.js +6 -18
  282. package/es/lib/routers/history.js +63 -99
  283. package/es/lib/stateMappings/simple.js +6 -12
  284. package/es/lib/stateMappings/singleIndex.js +1 -6
  285. package/es/lib/suit.js +2 -3
  286. package/es/lib/templating/prepareTemplateProps.js +8 -18
  287. package/es/lib/templating/renderTemplate.js +9 -20
  288. package/es/lib/utils/checkIndexUiState.js +18 -40
  289. package/es/lib/utils/clearRefinements.js +2 -8
  290. package/es/lib/utils/concatHighlightedParts.js +1 -1
  291. package/es/lib/utils/createConcurrentSafePromise.js +0 -2
  292. package/es/lib/utils/createSendEventForFacet.js +7 -12
  293. package/es/lib/utils/createSendEventForHits.js +8 -30
  294. package/es/lib/utils/debounce.js +0 -2
  295. package/es/lib/utils/defer.js +0 -10
  296. package/es/lib/utils/documentation.js +2 -3
  297. package/es/lib/utils/escape-highlight.js +3 -16
  298. package/es/lib/utils/escape-html.js +9 -5
  299. package/es/lib/utils/escapeFacetValue.js +0 -2
  300. package/es/lib/utils/find.js +2 -4
  301. package/es/lib/utils/findIndex.js +0 -2
  302. package/es/lib/utils/geo-search.js +14 -32
  303. package/es/lib/utils/getAppIdAndApiKey.js +2 -2
  304. package/es/lib/utils/getContainerNode.js +1 -5
  305. package/es/lib/utils/getHighlightFromSiblings.js +0 -3
  306. package/es/lib/utils/getHighlightedParts.js +1 -2
  307. package/es/lib/utils/getRefinements.js +13 -24
  308. package/es/lib/utils/getWidgetAttribute.js +0 -5
  309. package/es/lib/utils/hits-absolute-position.js +2 -5
  310. package/es/lib/utils/hits-query-id.js +2 -6
  311. package/es/lib/utils/isEqual.js +0 -7
  312. package/es/lib/utils/isPlainObject.js +3 -10
  313. package/es/lib/utils/logger.js +2 -12
  314. package/es/lib/utils/mergeSearchParameters.js +16 -37
  315. package/es/lib/utils/range.js +8 -13
  316. package/es/lib/utils/resolveSearchParameters.js +0 -2
  317. package/es/lib/utils/reverseHighlightedParts.js +2 -6
  318. package/es/lib/utils/safelyRunOnBrowser.js +7 -8
  319. package/es/lib/utils/setIndexHelperState.js +0 -2
  320. package/es/lib/version.d.ts +1 -1
  321. package/es/lib/version.js +1 -1
  322. package/es/lib/voiceSearchHelper/index.js +8 -35
  323. package/es/middlewares/createInsightsMiddleware.js +15 -41
  324. package/es/middlewares/createMetadataMiddleware.js +3 -9
  325. package/es/middlewares/createRouterMiddleware.js +8 -13
  326. package/es/types/index.js +9 -5
  327. package/es/widgets/analytics/analytics.js +12 -45
  328. package/es/widgets/answers/answers.js +19 -28
  329. package/es/widgets/breadcrumb/breadcrumb.js +18 -27
  330. package/es/widgets/clear-refinements/clear-refinements.js +15 -24
  331. package/es/widgets/configure/configure.js +3 -6
  332. package/es/widgets/configure-related-items/configure-related-items.js +2 -7
  333. package/es/widgets/current-refinements/current-refinements.js +12 -21
  334. package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
  335. package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
  336. package/es/widgets/geo-search/createHTMLMarker.js +30 -59
  337. package/es/widgets/geo-search/defaultTemplates.js +2 -2
  338. package/es/widgets/geo-search/geo-search.js +27 -49
  339. package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
  340. package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
  341. package/es/widgets/hits/hits.js +16 -25
  342. package/es/widgets/hits-per-page/hits-per-page.js +13 -22
  343. package/es/widgets/index/index.js +49 -91
  344. package/es/widgets/index.d.ts +2 -1
  345. package/es/widgets/index.js +4 -3
  346. package/es/widgets/infinite-hits/infinite-hits.js +23 -32
  347. package/es/widgets/menu/defaultTemplates.js +4 -3
  348. package/es/widgets/menu/menu.js +23 -32
  349. package/es/widgets/menu-select/defaultTemplates.js +1 -1
  350. package/es/widgets/menu-select/menu-select.js +18 -27
  351. package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
  352. package/es/widgets/numeric-menu/numeric-menu.js +17 -26
  353. package/es/widgets/pagination/pagination.js +32 -44
  354. package/es/widgets/panel/panel.js +20 -40
  355. package/es/widgets/places/places.js +16 -32
  356. package/es/widgets/powered-by/powered-by.js +10 -18
  357. package/es/widgets/query-rule-context/query-rule-context.js +2 -9
  358. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
  359. package/es/widgets/range-input/range-input.js +23 -40
  360. package/es/widgets/range-slider/range-slider.js +28 -44
  361. package/es/widgets/rating-menu/defaultTemplates.js +9 -12
  362. package/es/widgets/rating-menu/rating-menu.js +17 -27
  363. package/es/widgets/refinement-list/defaultTemplates.js +6 -5
  364. package/es/widgets/refinement-list/refinement-list.js +39 -48
  365. package/es/widgets/relevant-sort/relevant-sort.js +10 -19
  366. package/es/widgets/search-box/defaultTemplates.js +1 -4
  367. package/es/widgets/search-box/search-box.js +31 -39
  368. package/es/widgets/sort-by/sort-by.js +11 -20
  369. package/es/widgets/stats/stats.js +26 -45
  370. package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
  371. package/es/widgets/voice-search/defaultTemplates.js +5 -13
  372. package/es/widgets/voice-search/voice-search.js +17 -26
  373. package/package.json +20 -119
  374. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
  375. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
  376. package/CHANGELOG.md +0 -3684
@@ -4,28 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
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
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
10
  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
-
16
11
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
17
12
  name: 'autocomplete',
18
13
  connector: true
19
14
  });
20
-
21
15
  var connectAutocomplete = function connectAutocomplete(renderFn) {
22
16
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
23
17
  (0, _index.checkRendering)(renderFn, withUsage());
24
18
  return function (widgetParams) {
25
19
  var _ref = widgetParams || {},
26
- _ref$escapeHTML = _ref.escapeHTML,
27
- escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
28
-
20
+ _ref$escapeHTML = _ref.escapeHTML,
21
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
29
22
  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
23
  var value = _ref2.value;
31
24
  return "index({ indexName: '".concat(value, "' }),");
@@ -44,7 +37,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
44
37
  var renderState = this.getWidgetRenderState(renderOptions);
45
38
  renderState.indices.forEach(function (_ref3) {
46
39
  var sendEvent = _ref3.sendEvent,
47
- hits = _ref3.hits;
40
+ hits = _ref3.hits;
48
41
  sendEvent('view', hits);
49
42
  });
50
43
  renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
@@ -58,18 +51,15 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
58
51
  },
59
52
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
60
53
  var _this = this;
61
-
62
54
  var helper = _ref4.helper,
63
- state = _ref4.state,
64
- scopedResults = _ref4.scopedResults,
65
- instantSearchInstance = _ref4.instantSearchInstance;
66
-
55
+ state = _ref4.state,
56
+ scopedResults = _ref4.scopedResults,
57
+ instantSearchInstance = _ref4.instantSearchInstance;
67
58
  if (!connectorState.refine) {
68
59
  connectorState.refine = function (query) {
69
60
  helper.setQuery(query).search();
70
61
  };
71
62
  }
72
-
73
63
  var indices = scopedResults.map(function (scopedResult) {
74
64
  // We need to escape the hits because highlighting
75
65
  // exposes HTML tags to the end-user.
@@ -97,11 +87,9 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
97
87
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
98
88
  var searchParameters = _ref5.searchParameters;
99
89
  var query = searchParameters.query || '';
100
-
101
90
  if (query === '' || uiState && uiState.query === query) {
102
91
  return uiState;
103
92
  }
104
-
105
93
  return _objectSpread(_objectSpread({}, uiState), {}, {
106
94
  query: query
107
95
  });
@@ -111,22 +99,18 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
111
99
  var parameters = {
112
100
  query: uiState.query || ''
113
101
  };
114
-
115
102
  if (!escapeHTML) {
116
103
  return searchParameters.setQueryParameters(parameters);
117
104
  }
118
-
119
105
  return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _index.TAG_PLACEHOLDER));
120
106
  },
121
107
  dispose: function dispose(_ref7) {
122
108
  var state = _ref7.state;
123
109
  unmountFn();
124
110
  var stateWithoutQuery = state.setQueryParameter('query', undefined);
125
-
126
111
  if (!escapeHTML) {
127
112
  return stateWithoutQuery;
128
113
  }
129
-
130
114
  return stateWithoutQuery.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
131
115
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
132
116
  }, {}));
@@ -134,6 +118,5 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
134
118
  };
135
119
  };
136
120
  };
137
-
138
121
  var _default = connectAutocomplete;
139
122
  exports.default = _default;
@@ -4,69 +4,51 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
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
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
10
  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
-
16
11
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
-
18
12
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
-
20
13
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
-
22
14
  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; }
23
-
24
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
-
15
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
26
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
-
28
17
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
18
  name: 'breadcrumb',
30
19
  connector: true
31
20
  });
32
-
33
21
  var connectBreadcrumb = function connectBreadcrumb(renderFn) {
34
22
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
23
  (0, _index.checkRendering)(renderFn, withUsage());
36
24
  var connectorState = {};
37
25
  return function (widgetParams) {
38
26
  var _ref = widgetParams || {},
39
- attributes = _ref.attributes,
40
- _ref$separator = _ref.separator,
41
- separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
42
- _ref$rootPath = _ref.rootPath,
43
- rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
44
- _ref$transformItems = _ref.transformItems,
45
- transformItems = _ref$transformItems === void 0 ? function (items) {
46
- return items;
47
- } : _ref$transformItems;
48
-
27
+ attributes = _ref.attributes,
28
+ _ref$separator = _ref.separator,
29
+ separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
30
+ _ref$rootPath = _ref.rootPath,
31
+ rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
32
+ _ref$transformItems = _ref.transformItems,
33
+ transformItems = _ref$transformItems === void 0 ? function (items) {
34
+ return items;
35
+ } : _ref$transformItems;
49
36
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
50
37
  throw new Error(withUsage('The `attributes` option expects an array of strings.'));
51
38
  }
52
-
53
39
  var _attributes = _slicedToArray(attributes, 1),
54
- hierarchicalFacetName = _attributes[0];
55
-
40
+ hierarchicalFacetName = _attributes[0];
56
41
  function getRefinedState(state, facetValue) {
57
42
  if (!facetValue) {
58
43
  var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
59
-
60
44
  if (breadcrumb.length === 0) {
61
45
  return state;
62
46
  } else {
63
47
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
64
48
  }
65
49
  }
66
-
67
50
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
68
51
  }
69
-
70
52
  return {
71
53
  $$type: 'ais.breadcrumb',
72
54
  init: function init(initOptions) {
@@ -89,10 +71,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
89
71
  },
90
72
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
91
73
  var helper = _ref2.helper,
92
- createURL = _ref2.createURL,
93
- results = _ref2.results,
94
- state = _ref2.state;
95
-
74
+ createURL = _ref2.createURL,
75
+ results = _ref2.results,
76
+ state = _ref2.state;
96
77
  function getItems() {
97
78
  // The hierarchicalFacets condition is required for flavors
98
79
  // that render immediately with empty results, without relying
@@ -100,10 +81,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
100
81
  if (!results || state.hierarchicalFacets.length === 0) {
101
82
  return [];
102
83
  }
103
-
104
84
  var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
105
- facetName = _state$hierarchicalFa[0].name;
106
-
85
+ facetName = _state$hierarchicalFa[0].name;
107
86
  var facetValues = results.getFacetValues(facetName, {});
108
87
  var data = Array.isArray(facetValues.data) ? facetValues.data : [];
109
88
  var items = transformItems(shiftItemsValues(prepareItems(data)), {
@@ -111,21 +90,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
111
90
  });
112
91
  return items;
113
92
  }
114
-
115
93
  var items = getItems();
116
-
117
94
  if (!connectorState.createURL) {
118
95
  connectorState.createURL = function (facetValue) {
119
96
  return createURL(getRefinedState(helper.state, facetValue));
120
97
  };
121
98
  }
122
-
123
99
  if (!connectorState.refine) {
124
100
  connectorState.refine = function (facetValue) {
125
101
  helper.setState(getRefinedState(helper.state, facetValue)).search();
126
102
  };
127
103
  }
128
-
129
104
  return {
130
105
  canRefine: items.length > 0,
131
106
  createURL: connectorState.createURL,
@@ -140,7 +115,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
140
115
  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;
141
116
  return searchParameters;
142
117
  }
143
-
144
118
  return searchParameters.addHierarchicalFacet({
145
119
  name: hierarchicalFacetName,
146
120
  attributes: attributes,
@@ -151,7 +125,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
151
125
  };
152
126
  };
153
127
  };
154
-
155
128
  function prepareItems(data) {
156
129
  return data.reduce(function (result, currentItem) {
157
130
  if (currentItem.isRefined) {
@@ -159,16 +132,13 @@ function prepareItems(data) {
159
132
  label: currentItem.name,
160
133
  value: currentItem.escapedValue
161
134
  });
162
-
163
135
  if (Array.isArray(currentItem.data)) {
164
136
  result = result.concat(prepareItems(currentItem.data));
165
137
  }
166
138
  }
167
-
168
139
  return result;
169
140
  }, []);
170
141
  }
171
-
172
142
  function shiftItemsValues(array) {
173
143
  return array.map(function (x, idx) {
174
144
  return {
@@ -177,6 +147,5 @@ function shiftItemsValues(array) {
177
147
  };
178
148
  });
179
149
  }
180
-
181
150
  var _default = connectBreadcrumb;
182
151
  exports.default = _default;
@@ -4,50 +4,36 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
10
8
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
-
12
9
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
-
14
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
17
-
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
18
12
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
19
-
20
13
  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; }
21
-
22
- 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; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
-
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
16
  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
-
28
17
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
18
  name: 'clear-refinements',
30
19
  connector: true
31
20
  });
32
-
33
21
  var connectClearRefinements = function connectClearRefinements(renderFn) {
34
22
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
23
  (0, _index.checkRendering)(renderFn, withUsage());
36
24
  return function (widgetParams) {
37
25
  var _ref = widgetParams || {},
38
- _ref$includedAttribut = _ref.includedAttributes,
39
- includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
40
- _ref$excludedAttribut = _ref.excludedAttributes,
41
- excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
42
- _ref$transformItems = _ref.transformItems,
43
- transformItems = _ref$transformItems === void 0 ? function (items) {
44
- return items;
45
- } : _ref$transformItems;
46
-
26
+ _ref$includedAttribut = _ref.includedAttributes,
27
+ includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
28
+ _ref$excludedAttribut = _ref.excludedAttributes,
29
+ excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
30
+ _ref$transformItems = _ref.transformItems,
31
+ transformItems = _ref$transformItems === void 0 ? function (items) {
32
+ return items;
33
+ } : _ref$transformItems;
47
34
  if (widgetParams && widgetParams.includedAttributes && widgetParams.excludedAttributes) {
48
35
  throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));
49
36
  }
50
-
51
37
  var connectorState = {
52
38
  refine: _index.noop,
53
39
  createURL: function createURL() {
@@ -55,15 +41,12 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
55
41
  },
56
42
  attributesToClear: []
57
43
  };
58
-
59
44
  var cachedRefine = function cachedRefine() {
60
45
  return connectorState.refine();
61
46
  };
62
-
63
47
  var cachedCreateURL = function cachedCreateURL() {
64
48
  return connectorState.createURL();
65
49
  };
66
-
67
50
  return {
68
51
  $$type: 'ais.clearRefinements',
69
52
  init: function init(initOptions) {
@@ -88,8 +71,8 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
88
71
  },
89
72
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
90
73
  var createURL = _ref2.createURL,
91
- scopedResults = _ref2.scopedResults,
92
- results = _ref2.results;
74
+ scopedResults = _ref2.scopedResults,
75
+ results = _ref2.results;
93
76
  connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {
94
77
  return attributesToClear.concat(getAttributesToClear({
95
78
  scopedResult: scopedResult,
@@ -99,29 +82,26 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
99
82
  results: results
100
83
  }));
101
84
  }, []);
102
-
103
85
  connectorState.refine = function () {
104
86
  connectorState.attributesToClear.forEach(function (_ref3) {
105
87
  var indexHelper = _ref3.helper,
106
- items = _ref3.items;
88
+ items = _ref3.items;
107
89
  indexHelper.setState((0, _index.clearRefinements)({
108
90
  helper: indexHelper,
109
91
  attributesToClear: items
110
92
  })).search();
111
93
  });
112
94
  };
113
-
114
95
  connectorState.createURL = function () {
115
96
  return createURL(_index.mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
116
97
  var indexHelper = _ref4.helper,
117
- items = _ref4.items;
98
+ items = _ref4.items;
118
99
  return (0, _index.clearRefinements)({
119
100
  helper: indexHelper,
120
101
  attributesToClear: items
121
102
  });
122
103
  }))));
123
104
  };
124
-
125
105
  var canRefine = connectorState.attributesToClear.some(function (attributeToClear) {
126
106
  return attributeToClear.items.length > 0;
127
107
  });
@@ -136,26 +116,29 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
136
116
  };
137
117
  };
138
118
  };
139
-
140
119
  function getAttributesToClear(_ref5) {
141
120
  var scopedResult = _ref5.scopedResult,
142
- includedAttributes = _ref5.includedAttributes,
143
- excludedAttributes = _ref5.excludedAttributes,
144
- transformItems = _ref5.transformItems,
145
- results = _ref5.results;
121
+ includedAttributes = _ref5.includedAttributes,
122
+ excludedAttributes = _ref5.excludedAttributes,
123
+ transformItems = _ref5.transformItems,
124
+ results = _ref5.results;
146
125
  var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
147
126
  return {
148
127
  helper: scopedResult.helper,
149
128
  items: transformItems((0, _index.uniq)((0, _index.getRefinements)(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
150
129
  return refinement.attribute;
151
130
  }).filter(function (attribute) {
152
- return (// If the array is empty (default case), we keep all the attributes
153
- includedAttributes.length === 0 || // Otherwise, only add the specified attributes
131
+ return (
132
+ // If the array is empty (default case), we keep all the attributes
133
+ includedAttributes.length === 0 ||
134
+ // Otherwise, only add the specified attributes
154
135
  includedAttributes.indexOf(attribute) !== -1
155
136
  );
156
137
  }).filter(function (attribute) {
157
- return (// If the query is included, we ignore the default `excludedAttributes = ['query']`
158
- attribute === 'query' && includesQuery || // Otherwise, ignore the excluded attributes
138
+ return (
139
+ // If the query is included, we ignore the default `excludedAttributes = ['query']`
140
+ attribute === 'query' && includesQuery ||
141
+ // Otherwise, ignore the excluded attributes
159
142
  excludedAttributes.indexOf(attribute) === -1
160
143
  );
161
144
  })), {
@@ -163,6 +146,5 @@ function getAttributesToClear(_ref5) {
163
146
  })
164
147
  };
165
148
  }
166
-
167
149
  var _default = connectClearRefinements;
168
150
  exports.default = _default;
@@ -4,24 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
9
-
10
8
  var _index = require("../../lib/utils/index.js");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- 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; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
-
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
12
  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
-
20
13
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
21
14
  name: 'configure',
22
15
  connector: true
23
16
  });
24
-
25
17
  function getInitialSearchParameters(state, widgetParams) {
26
18
  // We leverage the helper internals to remove the `widgetParams` from
27
19
  // the state. The function `setQueryParameters` omits the values that
@@ -30,7 +22,6 @@ function getInitialSearchParameters(state, widgetParams) {
30
22
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
31
23
  }, {}));
32
24
  }
33
-
34
25
  var connectConfigure = function connectConfigure() {
35
26
  var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _index.noop;
36
27
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
@@ -38,21 +29,20 @@ var connectConfigure = function connectConfigure() {
38
29
  if (!widgetParams || !(0, _index.isPlainObject)(widgetParams.searchParameters)) {
39
30
  throw new Error(withUsage('The `searchParameters` option expects an object.'));
40
31
  }
41
-
42
32
  var connectorState = {};
43
-
44
33
  function refine(helper) {
45
34
  return function (searchParameters) {
46
35
  // Merge new `searchParameters` with the ones set from other widgets
47
36
  var actualState = getInitialSearchParameters(helper.state, widgetParams);
48
- var nextSearchParameters = (0, _index.mergeSearchParameters)(actualState, new _algoliasearchHelper.default.SearchParameters(searchParameters)); // Update original `widgetParams.searchParameters` to the new refined one
37
+ var nextSearchParameters = (0, _index.mergeSearchParameters)(actualState, new _algoliasearchHelper.default.SearchParameters(searchParameters));
49
38
 
50
- widgetParams.searchParameters = searchParameters; // Trigger a search with the resolved search parameters
39
+ // Update original `widgetParams.searchParameters` to the new refined one
40
+ widgetParams.searchParameters = searchParameters;
51
41
 
42
+ // Trigger a search with the resolved search parameters
52
43
  helper.setState(nextSearchParameters).search();
53
44
  };
54
45
  }
55
-
56
46
  return {
57
47
  $$type: 'ais.configure',
58
48
  init: function init(initOptions) {
@@ -74,7 +64,6 @@ var connectConfigure = function connectConfigure() {
74
64
  },
75
65
  getRenderState: function getRenderState(renderState, renderOptions) {
76
66
  var _renderState$configur;
77
-
78
67
  var widgetRenderState = this.getWidgetRenderState(renderOptions);
79
68
  return _objectSpread(_objectSpread({}, renderState), {}, {
80
69
  configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {
@@ -86,11 +75,9 @@ var connectConfigure = function connectConfigure() {
86
75
  },
87
76
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
88
77
  var helper = _ref2.helper;
89
-
90
78
  if (!connectorState.refine) {
91
79
  connectorState.refine = refine(helper);
92
80
  }
93
-
94
81
  return {
95
82
  refine: connectorState.refine,
96
83
  widgetParams: widgetParams
@@ -108,6 +95,5 @@ var connectConfigure = function connectConfigure() {
108
95
  };
109
96
  };
110
97
  };
111
-
112
98
  var _default = connectConfigure;
113
99
  exports.default = _default;
@@ -4,68 +4,48 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
9
-
10
8
  var _index = require("../../lib/utils/index.js");
11
-
12
9
  var _connectConfigure = _interopRequireDefault(require("../configure/connectConfigure.js"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- 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; }
17
-
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
-
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
13
  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; }
21
-
22
14
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23
-
24
15
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
-
26
16
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
-
28
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
29
-
17
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
30
18
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
31
-
32
19
  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
-
34
20
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
35
21
  name: 'configure-related-items',
36
22
  connector: true
37
23
  });
38
-
39
24
  function createOptionalFilter(_ref) {
40
25
  var attributeName = _ref.attributeName,
41
- attributeValue = _ref.attributeValue,
42
- attributeScore = _ref.attributeScore;
26
+ attributeValue = _ref.attributeValue,
27
+ attributeScore = _ref.attributeScore;
43
28
  return "".concat(attributeName, ":").concat(attributeValue, "<score=").concat(attributeScore || 1, ">");
44
29
  }
45
-
46
30
  var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderFn, unmountFn) {
47
31
  return function (widgetParams) {
48
32
  var _ref2 = widgetParams || {},
49
- hit = _ref2.hit,
50
- matchingPatterns = _ref2.matchingPatterns,
51
- _ref2$transformSearch = _ref2.transformSearchParameters,
52
- transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {
53
- return x;
54
- } : _ref2$transformSearch;
55
-
33
+ hit = _ref2.hit,
34
+ matchingPatterns = _ref2.matchingPatterns,
35
+ _ref2$transformSearch = _ref2.transformSearchParameters,
36
+ transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {
37
+ return x;
38
+ } : _ref2$transformSearch;
56
39
  if (!hit) {
57
40
  throw new Error(withUsage('The `hit` option is required.'));
58
41
  }
59
-
60
42
  if (!matchingPatterns) {
61
43
  throw new Error(withUsage('The `matchingPatterns` option is required.'));
62
44
  }
63
-
64
45
  var optionalFilters = Object.keys(matchingPatterns).reduce(function (acc, attributeName) {
65
46
  var attribute = matchingPatterns[attributeName];
66
47
  var attributeValue = (0, _index.getPropertyByPath)(hit, attributeName);
67
48
  var attributeScore = attribute.score;
68
-
69
49
  if (Array.isArray(attributeValue)) {
70
50
  return [].concat(_toConsumableArray(acc), [attributeValue.map(function (attributeSubValue) {
71
51
  return createOptionalFilter({
@@ -75,7 +55,6 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
75
55
  });
76
56
  })]);
77
57
  }
78
-
79
58
  if (typeof attributeValue === 'string') {
80
59
  return [].concat(_toConsumableArray(acc), [createOptionalFilter({
81
60
  attributeName: attributeName,
@@ -83,17 +62,14 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
83
62
  attributeScore: attributeScore
84
63
  })]);
85
64
  }
86
-
87
65
  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
66
  return acc;
89
67
  }, []);
90
-
91
68
  var searchParameters = _objectSpread({}, transformSearchParameters(new _algoliasearchHelper.default.SearchParameters({
92
69
  sumOrFiltersScores: true,
93
70
  facetFilters: ["objectID:-".concat(hit.objectID)],
94
71
  optionalFilters: optionalFilters
95
72
  })));
96
-
97
73
  var makeWidget = (0, _connectConfigure.default)(renderFn, unmountFn);
98
74
  return _objectSpread(_objectSpread({}, makeWidget({
99
75
  searchParameters: searchParameters
@@ -102,6 +78,5 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
102
78
  });
103
79
  };
104
80
  };
105
-
106
81
  var _default = connectConfigureRelatedItems;
107
82
  exports.default = _default;