instantsearch.js 4.49.1 → 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 +4 -15
  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 +1722 -3088
  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 +2 -10
  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 -3693
@@ -1,64 +1,48 @@
1
- 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; }
2
-
3
- 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; }
4
-
1
+ 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; }
2
+ 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; }
5
3
  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; }
6
-
7
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
-
9
5
  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."); }
10
-
11
6
  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); }
12
-
13
7
  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; }
14
-
15
- 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; }
16
-
8
+ 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; }
17
9
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
-
19
10
  import { checkRendering, warning, createDocumentationMessageGenerator, isEqual, noop } from "../../lib/utils/index.js";
20
11
  var withUsage = createDocumentationMessageGenerator({
21
12
  name: 'breadcrumb',
22
13
  connector: true
23
14
  });
24
-
25
15
  var connectBreadcrumb = function connectBreadcrumb(renderFn) {
26
16
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
27
17
  checkRendering(renderFn, withUsage());
28
18
  var connectorState = {};
29
19
  return function (widgetParams) {
30
20
  var _ref = widgetParams || {},
31
- attributes = _ref.attributes,
32
- _ref$separator = _ref.separator,
33
- separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
34
- _ref$rootPath = _ref.rootPath,
35
- rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
36
- _ref$transformItems = _ref.transformItems,
37
- transformItems = _ref$transformItems === void 0 ? function (items) {
38
- return items;
39
- } : _ref$transformItems;
40
-
21
+ attributes = _ref.attributes,
22
+ _ref$separator = _ref.separator,
23
+ separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
24
+ _ref$rootPath = _ref.rootPath,
25
+ rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
26
+ _ref$transformItems = _ref.transformItems,
27
+ transformItems = _ref$transformItems === void 0 ? function (items) {
28
+ return items;
29
+ } : _ref$transformItems;
41
30
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
42
31
  throw new Error(withUsage('The `attributes` option expects an array of strings.'));
43
32
  }
44
-
45
33
  var _attributes = _slicedToArray(attributes, 1),
46
- hierarchicalFacetName = _attributes[0];
47
-
34
+ hierarchicalFacetName = _attributes[0];
48
35
  function getRefinedState(state, facetValue) {
49
36
  if (!facetValue) {
50
37
  var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
51
-
52
38
  if (breadcrumb.length === 0) {
53
39
  return state;
54
40
  } else {
55
41
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
56
42
  }
57
43
  }
58
-
59
44
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
60
45
  }
61
-
62
46
  return {
63
47
  $$type: 'ais.breadcrumb',
64
48
  init: function init(initOptions) {
@@ -81,10 +65,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
81
65
  },
82
66
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
83
67
  var helper = _ref2.helper,
84
- createURL = _ref2.createURL,
85
- results = _ref2.results,
86
- state = _ref2.state;
87
-
68
+ createURL = _ref2.createURL,
69
+ results = _ref2.results,
70
+ state = _ref2.state;
88
71
  function getItems() {
89
72
  // The hierarchicalFacets condition is required for flavors
90
73
  // that render immediately with empty results, without relying
@@ -92,10 +75,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
92
75
  if (!results || state.hierarchicalFacets.length === 0) {
93
76
  return [];
94
77
  }
95
-
96
78
  var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
97
- facetName = _state$hierarchicalFa[0].name;
98
-
79
+ facetName = _state$hierarchicalFa[0].name;
99
80
  var facetValues = results.getFacetValues(facetName, {});
100
81
  var data = Array.isArray(facetValues.data) ? facetValues.data : [];
101
82
  var items = transformItems(shiftItemsValues(prepareItems(data)), {
@@ -103,21 +84,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
103
84
  });
104
85
  return items;
105
86
  }
106
-
107
87
  var items = getItems();
108
-
109
88
  if (!connectorState.createURL) {
110
89
  connectorState.createURL = function (facetValue) {
111
90
  return createURL(getRefinedState(helper.state, facetValue));
112
91
  };
113
92
  }
114
-
115
93
  if (!connectorState.refine) {
116
94
  connectorState.refine = function (facetValue) {
117
95
  helper.setState(getRefinedState(helper.state, facetValue)).search();
118
96
  };
119
97
  }
120
-
121
98
  return {
122
99
  canRefine: items.length > 0,
123
100
  createURL: connectorState.createURL,
@@ -132,7 +109,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
132
109
  process.env.NODE_ENV === 'development' ? warning(isEqual(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
133
110
  return searchParameters;
134
111
  }
135
-
136
112
  return searchParameters.addHierarchicalFacet({
137
113
  name: hierarchicalFacetName,
138
114
  attributes: attributes,
@@ -143,7 +119,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
143
119
  };
144
120
  };
145
121
  };
146
-
147
122
  function prepareItems(data) {
148
123
  return data.reduce(function (result, currentItem) {
149
124
  if (currentItem.isRefined) {
@@ -151,16 +126,13 @@ function prepareItems(data) {
151
126
  label: currentItem.name,
152
127
  value: currentItem.escapedValue
153
128
  });
154
-
155
129
  if (Array.isArray(currentItem.data)) {
156
130
  result = result.concat(prepareItems(currentItem.data));
157
131
  }
158
132
  }
159
-
160
133
  return result;
161
134
  }, []);
162
135
  }
163
-
164
136
  function shiftItemsValues(array) {
165
137
  return array.map(function (x, idx) {
166
138
  return {
@@ -169,5 +141,4 @@ function shiftItemsValues(array) {
169
141
  };
170
142
  });
171
143
  }
172
-
173
144
  export default connectBreadcrumb;
@@ -1,45 +1,33 @@
1
1
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
2
  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."); }
4
-
5
3
  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); }
6
-
7
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
8
-
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
5
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
-
11
6
  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; }
12
-
13
- 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; }
14
-
15
- 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; }
16
-
7
+ 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; }
8
+ 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; }
17
9
  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; }
18
-
19
10
  import { checkRendering, clearRefinements, getRefinements, createDocumentationMessageGenerator, noop, uniq, mergeSearchParameters } from "../../lib/utils/index.js";
20
11
  var withUsage = createDocumentationMessageGenerator({
21
12
  name: 'clear-refinements',
22
13
  connector: true
23
14
  });
24
-
25
15
  var connectClearRefinements = function connectClearRefinements(renderFn) {
26
16
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
27
17
  checkRendering(renderFn, withUsage());
28
18
  return function (widgetParams) {
29
19
  var _ref = widgetParams || {},
30
- _ref$includedAttribut = _ref.includedAttributes,
31
- includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
32
- _ref$excludedAttribut = _ref.excludedAttributes,
33
- excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
34
- _ref$transformItems = _ref.transformItems,
35
- transformItems = _ref$transformItems === void 0 ? function (items) {
36
- return items;
37
- } : _ref$transformItems;
38
-
20
+ _ref$includedAttribut = _ref.includedAttributes,
21
+ includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
22
+ _ref$excludedAttribut = _ref.excludedAttributes,
23
+ excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
24
+ _ref$transformItems = _ref.transformItems,
25
+ transformItems = _ref$transformItems === void 0 ? function (items) {
26
+ return items;
27
+ } : _ref$transformItems;
39
28
  if (widgetParams && widgetParams.includedAttributes && widgetParams.excludedAttributes) {
40
29
  throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));
41
30
  }
42
-
43
31
  var connectorState = {
44
32
  refine: noop,
45
33
  createURL: function createURL() {
@@ -47,15 +35,12 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
47
35
  },
48
36
  attributesToClear: []
49
37
  };
50
-
51
38
  var cachedRefine = function cachedRefine() {
52
39
  return connectorState.refine();
53
40
  };
54
-
55
41
  var cachedCreateURL = function cachedCreateURL() {
56
42
  return connectorState.createURL();
57
43
  };
58
-
59
44
  return {
60
45
  $$type: 'ais.clearRefinements',
61
46
  init: function init(initOptions) {
@@ -80,8 +65,8 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
80
65
  },
81
66
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
82
67
  var createURL = _ref2.createURL,
83
- scopedResults = _ref2.scopedResults,
84
- results = _ref2.results;
68
+ scopedResults = _ref2.scopedResults,
69
+ results = _ref2.results;
85
70
  connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {
86
71
  return attributesToClear.concat(getAttributesToClear({
87
72
  scopedResult: scopedResult,
@@ -91,29 +76,26 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
91
76
  results: results
92
77
  }));
93
78
  }, []);
94
-
95
79
  connectorState.refine = function () {
96
80
  connectorState.attributesToClear.forEach(function (_ref3) {
97
81
  var indexHelper = _ref3.helper,
98
- items = _ref3.items;
82
+ items = _ref3.items;
99
83
  indexHelper.setState(clearRefinements({
100
84
  helper: indexHelper,
101
85
  attributesToClear: items
102
86
  })).search();
103
87
  });
104
88
  };
105
-
106
89
  connectorState.createURL = function () {
107
90
  return createURL(mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
108
91
  var indexHelper = _ref4.helper,
109
- items = _ref4.items;
92
+ items = _ref4.items;
110
93
  return clearRefinements({
111
94
  helper: indexHelper,
112
95
  attributesToClear: items
113
96
  });
114
97
  }))));
115
98
  };
116
-
117
99
  var canRefine = connectorState.attributesToClear.some(function (attributeToClear) {
118
100
  return attributeToClear.items.length > 0;
119
101
  });
@@ -128,26 +110,29 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
128
110
  };
129
111
  };
130
112
  };
131
-
132
113
  function getAttributesToClear(_ref5) {
133
114
  var scopedResult = _ref5.scopedResult,
134
- includedAttributes = _ref5.includedAttributes,
135
- excludedAttributes = _ref5.excludedAttributes,
136
- transformItems = _ref5.transformItems,
137
- results = _ref5.results;
115
+ includedAttributes = _ref5.includedAttributes,
116
+ excludedAttributes = _ref5.excludedAttributes,
117
+ transformItems = _ref5.transformItems,
118
+ results = _ref5.results;
138
119
  var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
139
120
  return {
140
121
  helper: scopedResult.helper,
141
122
  items: transformItems(uniq(getRefinements(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
142
123
  return refinement.attribute;
143
124
  }).filter(function (attribute) {
144
- return (// If the array is empty (default case), we keep all the attributes
145
- includedAttributes.length === 0 || // Otherwise, only add the specified attributes
125
+ return (
126
+ // If the array is empty (default case), we keep all the attributes
127
+ includedAttributes.length === 0 ||
128
+ // Otherwise, only add the specified attributes
146
129
  includedAttributes.indexOf(attribute) !== -1
147
130
  );
148
131
  }).filter(function (attribute) {
149
- return (// If the query is included, we ignore the default `excludedAttributes = ['query']`
150
- attribute === 'query' && includesQuery || // Otherwise, ignore the excluded attributes
132
+ return (
133
+ // If the query is included, we ignore the default `excludedAttributes = ['query']`
134
+ attribute === 'query' && includesQuery ||
135
+ // Otherwise, ignore the excluded attributes
151
136
  excludedAttributes.indexOf(attribute) === -1
152
137
  );
153
138
  })), {
@@ -155,5 +140,4 @@ function getAttributesToClear(_ref5) {
155
140
  })
156
141
  };
157
142
  }
158
-
159
143
  export default connectClearRefinements;
@@ -1,11 +1,9 @@
1
- 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; }
2
-
3
- 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; }
4
-
1
+ 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; }
2
+ 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; }
5
3
  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; }
6
-
7
4
  import algoliasearchHelper from 'algoliasearch-helper';
8
5
  import { createDocumentationMessageGenerator, isPlainObject, mergeSearchParameters, noop } from "../../lib/utils/index.js";
6
+
9
7
  /**
10
8
  * Refine the given search parameters.
11
9
  */
@@ -14,7 +12,6 @@ var withUsage = createDocumentationMessageGenerator({
14
12
  name: 'configure',
15
13
  connector: true
16
14
  });
17
-
18
15
  function getInitialSearchParameters(state, widgetParams) {
19
16
  // We leverage the helper internals to remove the `widgetParams` from
20
17
  // the state. The function `setQueryParameters` omits the values that
@@ -23,7 +20,6 @@ function getInitialSearchParameters(state, widgetParams) {
23
20
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
24
21
  }, {}));
25
22
  }
26
-
27
23
  var connectConfigure = function connectConfigure() {
28
24
  var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;
29
25
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
@@ -31,21 +27,20 @@ var connectConfigure = function connectConfigure() {
31
27
  if (!widgetParams || !isPlainObject(widgetParams.searchParameters)) {
32
28
  throw new Error(withUsage('The `searchParameters` option expects an object.'));
33
29
  }
34
-
35
30
  var connectorState = {};
36
-
37
31
  function refine(helper) {
38
32
  return function (searchParameters) {
39
33
  // Merge new `searchParameters` with the ones set from other widgets
40
34
  var actualState = getInitialSearchParameters(helper.state, widgetParams);
41
- var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters)); // Update original `widgetParams.searchParameters` to the new refined one
35
+ var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));
42
36
 
43
- widgetParams.searchParameters = searchParameters; // Trigger a search with the resolved search parameters
37
+ // Update original `widgetParams.searchParameters` to the new refined one
38
+ widgetParams.searchParameters = searchParameters;
44
39
 
40
+ // Trigger a search with the resolved search parameters
45
41
  helper.setState(nextSearchParameters).search();
46
42
  };
47
43
  }
48
-
49
44
  return {
50
45
  $$type: 'ais.configure',
51
46
  init: function init(initOptions) {
@@ -67,7 +62,6 @@ var connectConfigure = function connectConfigure() {
67
62
  },
68
63
  getRenderState: function getRenderState(renderState, renderOptions) {
69
64
  var _renderState$configur;
70
-
71
65
  var widgetRenderState = this.getWidgetRenderState(renderOptions);
72
66
  return _objectSpread(_objectSpread({}, renderState), {}, {
73
67
  configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {
@@ -79,11 +73,9 @@ var connectConfigure = function connectConfigure() {
79
73
  },
80
74
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
81
75
  var helper = _ref2.helper;
82
-
83
76
  if (!connectorState.refine) {
84
77
  connectorState.refine = refine(helper);
85
78
  }
86
-
87
79
  return {
88
80
  refine: connectorState.refine,
89
81
  widgetParams: widgetParams
@@ -101,5 +93,4 @@ var connectConfigure = function connectConfigure() {
101
93
  };
102
94
  };
103
95
  };
104
-
105
96
  export default connectConfigure;
@@ -1,21 +1,12 @@
1
- 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; }
2
-
3
- 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; }
4
-
1
+ 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; }
2
+ 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; }
5
3
  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; }
6
-
7
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
-
9
5
  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."); }
10
-
11
6
  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); }
12
-
13
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
14
-
7
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
8
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
-
17
9
  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; }
18
-
19
10
  import algoliasearchHelper from 'algoliasearch-helper';
20
11
  import { createDocumentationMessageGenerator, getObjectType, warning, getPropertyByPath } from "../../lib/utils/index.js";
21
12
  import connectConfigure from "../configure/connectConfigure.js";
@@ -23,37 +14,31 @@ var withUsage = createDocumentationMessageGenerator({
23
14
  name: 'configure-related-items',
24
15
  connector: true
25
16
  });
26
-
27
17
  function createOptionalFilter(_ref) {
28
18
  var attributeName = _ref.attributeName,
29
- attributeValue = _ref.attributeValue,
30
- attributeScore = _ref.attributeScore;
19
+ attributeValue = _ref.attributeValue,
20
+ attributeScore = _ref.attributeScore;
31
21
  return "".concat(attributeName, ":").concat(attributeValue, "<score=").concat(attributeScore || 1, ">");
32
22
  }
33
-
34
23
  var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderFn, unmountFn) {
35
24
  return function (widgetParams) {
36
25
  var _ref2 = widgetParams || {},
37
- hit = _ref2.hit,
38
- matchingPatterns = _ref2.matchingPatterns,
39
- _ref2$transformSearch = _ref2.transformSearchParameters,
40
- transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {
41
- return x;
42
- } : _ref2$transformSearch;
43
-
26
+ hit = _ref2.hit,
27
+ matchingPatterns = _ref2.matchingPatterns,
28
+ _ref2$transformSearch = _ref2.transformSearchParameters,
29
+ transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {
30
+ return x;
31
+ } : _ref2$transformSearch;
44
32
  if (!hit) {
45
33
  throw new Error(withUsage('The `hit` option is required.'));
46
34
  }
47
-
48
35
  if (!matchingPatterns) {
49
36
  throw new Error(withUsage('The `matchingPatterns` option is required.'));
50
37
  }
51
-
52
38
  var optionalFilters = Object.keys(matchingPatterns).reduce(function (acc, attributeName) {
53
39
  var attribute = matchingPatterns[attributeName];
54
40
  var attributeValue = getPropertyByPath(hit, attributeName);
55
41
  var attributeScore = attribute.score;
56
-
57
42
  if (Array.isArray(attributeValue)) {
58
43
  return [].concat(_toConsumableArray(acc), [attributeValue.map(function (attributeSubValue) {
59
44
  return createOptionalFilter({
@@ -63,7 +48,6 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
63
48
  });
64
49
  })]);
65
50
  }
66
-
67
51
  if (typeof attributeValue === 'string') {
68
52
  return [].concat(_toConsumableArray(acc), [createOptionalFilter({
69
53
  attributeName: attributeName,
@@ -71,17 +55,14 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
71
55
  attributeScore: attributeScore
72
56
  })]);
73
57
  }
74
-
75
58
  process.env.NODE_ENV === 'development' ? warning(false, "\nThe `matchingPatterns` option returned a value of type ".concat(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;
76
59
  return acc;
77
60
  }, []);
78
-
79
61
  var searchParameters = _objectSpread({}, transformSearchParameters(new algoliasearchHelper.SearchParameters({
80
62
  sumOrFiltersScores: true,
81
63
  facetFilters: ["objectID:-".concat(hit.objectID)],
82
64
  optionalFilters: optionalFilters
83
65
  })));
84
-
85
66
  var makeWidget = connectConfigure(renderFn, unmountFn);
86
67
  return _objectSpread(_objectSpread({}, makeWidget({
87
68
  searchParameters: searchParameters
@@ -90,5 +71,4 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
90
71
  });
91
72
  };
92
73
  };
93
-
94
74
  export default connectConfigureRelatedItems;