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
@@ -1,32 +1,20 @@
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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
-
9
5
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
-
11
6
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
-
13
7
  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."); }
14
-
15
8
  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); }
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
- 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; }
20
-
10
+ 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; }
21
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
-
23
12
  import { checkRendering, warning, createDocumentationMessageGenerator, createSendEventForFacet, isEqual, noop } from "../../lib/utils/index.js";
24
13
  var withUsage = createDocumentationMessageGenerator({
25
14
  name: 'hierarchical-menu',
26
15
  connector: true
27
16
  });
28
17
  var DEFAULT_SORT = ['name:asc'];
29
-
30
18
  /**
31
19
  * **HierarchicalMenu** connector provides the logic to build a custom widget
32
20
  * that will give the user the ability to explore facets in a tree-like structure.
@@ -45,86 +33,73 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
45
33
  checkRendering(renderFn, withUsage());
46
34
  return function (widgetParams) {
47
35
  var _ref = widgetParams || {},
48
- attributes = _ref.attributes,
49
- _ref$separator = _ref.separator,
50
- separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
51
- _ref$rootPath = _ref.rootPath,
52
- rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
53
- _ref$showParentLevel = _ref.showParentLevel,
54
- showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,
55
- _ref$limit = _ref.limit,
56
- limit = _ref$limit === void 0 ? 10 : _ref$limit,
57
- _ref$showMore = _ref.showMore,
58
- showMore = _ref$showMore === void 0 ? false : _ref$showMore,
59
- _ref$showMoreLimit = _ref.showMoreLimit,
60
- showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
61
- _ref$sortBy = _ref.sortBy,
62
- sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
63
- _ref$transformItems = _ref.transformItems,
64
- transformItems = _ref$transformItems === void 0 ? function (items) {
65
- return items;
66
- } : _ref$transformItems;
67
-
36
+ attributes = _ref.attributes,
37
+ _ref$separator = _ref.separator,
38
+ separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
39
+ _ref$rootPath = _ref.rootPath,
40
+ rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
41
+ _ref$showParentLevel = _ref.showParentLevel,
42
+ showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,
43
+ _ref$limit = _ref.limit,
44
+ limit = _ref$limit === void 0 ? 10 : _ref$limit,
45
+ _ref$showMore = _ref.showMore,
46
+ showMore = _ref$showMore === void 0 ? false : _ref$showMore,
47
+ _ref$showMoreLimit = _ref.showMoreLimit,
48
+ showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
49
+ _ref$sortBy = _ref.sortBy,
50
+ sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
51
+ _ref$transformItems = _ref.transformItems,
52
+ transformItems = _ref$transformItems === void 0 ? function (items) {
53
+ return items;
54
+ } : _ref$transformItems;
68
55
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
69
56
  throw new Error(withUsage('The `attributes` option expects an array of strings.'));
70
57
  }
71
-
72
58
  if (showMore === true && showMoreLimit <= limit) {
73
59
  throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
74
60
  }
75
-
76
61
  // we need to provide a hierarchicalFacet name for the search state
77
62
  // so that we can always map $hierarchicalFacetName => real attributes
78
63
  // we use the first attribute name
79
64
  var _attributes = _slicedToArray(attributes, 1),
80
- hierarchicalFacetName = _attributes[0];
65
+ hierarchicalFacetName = _attributes[0];
66
+ var sendEvent;
81
67
 
82
- var sendEvent; // Provide the same function to the `renderFn` so that way the user
68
+ // Provide the same function to the `renderFn` so that way the user
83
69
  // has to only bind it once when `isFirstRendering` for instance
84
-
85
70
  var toggleShowMore = function toggleShowMore() {};
86
-
87
71
  function cachedToggleShowMore() {
88
72
  toggleShowMore();
89
73
  }
90
-
91
74
  var _refine;
92
-
93
75
  var isShowingMore = false;
94
-
95
76
  function createToggleShowMore(renderOptions, widget) {
96
77
  return function () {
97
78
  isShowingMore = !isShowingMore;
98
79
  widget.render(renderOptions);
99
80
  };
100
81
  }
101
-
102
82
  function getLimit() {
103
83
  return isShowingMore ? showMoreLimit : limit;
104
84
  }
105
-
106
85
  function _prepareFacetValues(facetValues) {
107
86
  return facetValues.slice(0, getLimit()).map(function (_ref2) {
108
87
  var label = _ref2.name,
109
- value = _ref2.escapedValue,
110
- data = _ref2.data,
111
- path = _ref2.path,
112
- subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
113
-
88
+ value = _ref2.escapedValue,
89
+ data = _ref2.data,
90
+ path = _ref2.path,
91
+ subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
114
92
  var item = _objectSpread(_objectSpread({}, subValue), {}, {
115
93
  value: value,
116
94
  label: label,
117
95
  data: null
118
96
  });
119
-
120
97
  if (Array.isArray(data)) {
121
98
  item.data = _prepareFacetValues(data);
122
99
  }
123
-
124
100
  return item;
125
101
  });
126
102
  }
127
-
128
103
  return {
129
104
  $$type: 'ais.hierarchicalMenu',
130
105
  init: function init(initOptions) {
@@ -152,17 +127,17 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
152
127
  },
153
128
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
154
129
  var results = _ref4.results,
155
- state = _ref4.state,
156
- createURL = _ref4.createURL,
157
- instantSearchInstance = _ref4.instantSearchInstance,
158
- helper = _ref4.helper;
130
+ state = _ref4.state,
131
+ createURL = _ref4.createURL,
132
+ instantSearchInstance = _ref4.instantSearchInstance,
133
+ helper = _ref4.helper;
159
134
  var items = [];
160
- var canToggleShowMore = false; // Bind createURL to this specific attribute
135
+ var canToggleShowMore = false;
161
136
 
137
+ // Bind createURL to this specific attribute
162
138
  function _createURL(facetValue) {
163
139
  return createURL(state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue));
164
140
  }
165
-
166
141
  if (!sendEvent) {
167
142
  sendEvent = createSendEventForFacet({
168
143
  instantSearchInstance: instantSearchInstance,
@@ -174,33 +149,31 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
174
149
  widgetType: this.$$type
175
150
  });
176
151
  }
177
-
178
152
  if (!_refine) {
179
153
  _refine = function _refine(facetValue) {
180
154
  sendEvent('click', facetValue);
181
155
  helper.toggleFacetRefinement(hierarchicalFacetName, facetValue).search();
182
156
  };
183
157
  }
184
-
185
158
  if (results) {
186
159
  var facetValues = results.getFacetValues(hierarchicalFacetName, {
187
160
  sortBy: sortBy,
188
161
  facetOrdering: sortBy === DEFAULT_SORT
189
162
  });
190
- var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : []; // If the limit is the max number of facet retrieved it is impossible to know
163
+ var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];
164
+
165
+ // If the limit is the max number of facet retrieved it is impossible to know
191
166
  // if the facets are exhaustive. The only moment we are sure it is exhaustive
192
167
  // is when it is strictly under the number requested unless we know that another
193
168
  // widget has requested more values (maxValuesPerFacet > getLimit()).
194
169
  // Because this is used for making the search of facets unable or not, it is important
195
170
  // to be conservative here.
196
-
197
171
  var hasExhaustiveItems = (state.maxValuesPerFacet || 0) > getLimit() ? facetItems.length <= getLimit() : facetItems.length < getLimit();
198
172
  canToggleShowMore = showMore && (isShowingMore || !hasExhaustiveItems);
199
173
  items = transformItems(_prepareFacetValues(facetItems), {
200
174
  results: results
201
175
  });
202
176
  }
203
-
204
177
  return {
205
178
  items: items,
206
179
  refine: _refine,
@@ -216,11 +189,9 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
216
189
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
217
190
  var searchParameters = _ref5.searchParameters;
218
191
  var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
219
-
220
192
  if (!path.length) {
221
193
  return uiState;
222
194
  }
223
-
224
195
  return _objectSpread(_objectSpread({}, uiState), {}, {
225
196
  hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))
226
197
  });
@@ -228,12 +199,10 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
228
199
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
229
200
  var uiState = _ref6.uiState;
230
201
  var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];
231
-
232
202
  if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
233
203
  var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
234
204
  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;
235
205
  }
236
-
237
206
  var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({
238
207
  name: hierarchicalFacetName,
239
208
  attributes: attributes,
@@ -244,17 +213,14 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
244
213
  var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
245
214
  var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
246
215
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
247
-
248
216
  if (!values) {
249
217
  return withMaxValuesPerFacet.setQueryParameters({
250
218
  hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))
251
219
  });
252
220
  }
253
-
254
221
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
255
222
  }
256
223
  };
257
224
  };
258
225
  };
259
-
260
226
  export default connectHierarchicalMenu;
@@ -1,27 +1,22 @@
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 { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, addAbsolutePosition, addQueryID, createSendEventForHits, createBindEventForHits, noop } from "../../lib/utils/index.js";
8
5
  var withUsage = createDocumentationMessageGenerator({
9
6
  name: 'hits',
10
7
  connector: true
11
8
  });
12
-
13
9
  var connectHits = function connectHits(renderFn) {
14
10
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
15
11
  checkRendering(renderFn, withUsage());
16
12
  return function (widgetParams) {
17
13
  var _ref = widgetParams || {},
18
- _ref$escapeHTML = _ref.escapeHTML,
19
- escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
20
- _ref$transformItems = _ref.transformItems,
21
- transformItems = _ref$transformItems === void 0 ? function (items) {
22
- return items;
23
- } : _ref$transformItems;
24
-
14
+ _ref$escapeHTML = _ref.escapeHTML,
15
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
16
+ _ref$transformItems = _ref.transformItems,
17
+ transformItems = _ref$transformItems === void 0 ? function (items) {
18
+ return items;
19
+ } : _ref$transformItems;
25
20
  var sendEvent;
26
21
  var bindEvent;
27
22
  return {
@@ -45,9 +40,8 @@ var connectHits = function connectHits(renderFn) {
45
40
  },
46
41
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
47
42
  var results = _ref2.results,
48
- helper = _ref2.helper,
49
- instantSearchInstance = _ref2.instantSearchInstance;
50
-
43
+ helper = _ref2.helper,
44
+ instantSearchInstance = _ref2.instantSearchInstance;
51
45
  if (!sendEvent) {
52
46
  sendEvent = createSendEventForHits({
53
47
  instantSearchInstance: instantSearchInstance,
@@ -55,14 +49,12 @@ var connectHits = function connectHits(renderFn) {
55
49
  widgetType: this.$$type
56
50
  });
57
51
  }
58
-
59
52
  if (!bindEvent) {
60
53
  bindEvent = createBindEventForHits({
61
54
  index: helper.getIndex(),
62
55
  widgetType: this.$$type
63
56
  });
64
57
  }
65
-
66
58
  if (!results) {
67
59
  return {
68
60
  hits: [],
@@ -72,11 +64,9 @@ var connectHits = function connectHits(renderFn) {
72
64
  widgetParams: widgetParams
73
65
  };
74
66
  }
75
-
76
67
  if (escapeHTML && results.hits.length > 0) {
77
68
  results.hits = escapeHits(results.hits);
78
69
  }
79
-
80
70
  var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);
81
71
  var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);
82
72
  var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
@@ -93,11 +83,9 @@ var connectHits = function connectHits(renderFn) {
93
83
  dispose: function dispose(_ref3) {
94
84
  var state = _ref3.state;
95
85
  unmountFn();
96
-
97
86
  if (!escapeHTML) {
98
87
  return state;
99
88
  }
100
-
101
89
  return state.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
102
90
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
103
91
  }, {}));
@@ -106,11 +94,9 @@ var connectHits = function connectHits(renderFn) {
106
94
  if (!escapeHTML) {
107
95
  return state;
108
96
  }
109
-
110
97
  return state.setQueryParameters(TAG_PLACEHOLDER);
111
98
  }
112
99
  };
113
100
  };
114
101
  };
115
-
116
102
  export default connectHits;
@@ -1,57 +1,41 @@
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, warning, createDocumentationMessageGenerator, noop } from "../../lib/utils/index.js";
20
11
  var withUsage = createDocumentationMessageGenerator({
21
12
  name: 'hits-per-page',
22
13
  connector: true
23
14
  });
24
-
25
15
  var connectHitsPerPage = function connectHitsPerPage(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
- userItems = _ref.items,
31
- _ref$transformItems = _ref.transformItems,
32
- transformItems = _ref$transformItems === void 0 ? function (items) {
33
- return items;
34
- } : _ref$transformItems;
35
-
20
+ userItems = _ref.items,
21
+ _ref$transformItems = _ref.transformItems,
22
+ transformItems = _ref$transformItems === void 0 ? function (items) {
23
+ return items;
24
+ } : _ref$transformItems;
36
25
  if (!Array.isArray(userItems)) {
37
26
  throw new Error(withUsage('The `items` option expects an array of objects.'));
38
27
  }
39
-
40
28
  var items = userItems;
41
29
  var defaultItems = items.filter(function (item) {
42
30
  return item.default === true;
43
31
  });
44
-
45
32
  if (defaultItems.length === 0) {
46
33
  throw new Error(withUsage("A default value must be specified in `items`."));
47
34
  }
48
-
49
35
  if (defaultItems.length > 1) {
50
36
  throw new Error(withUsage('More than one default value is specified in `items`.'));
51
37
  }
52
-
53
38
  var defaultItem = defaultItems[0];
54
-
55
39
  var normalizeItems = function normalizeItems(_ref2) {
56
40
  var hitsPerPage = _ref2.hitsPerPage;
57
41
  return items.map(function (item) {
@@ -60,7 +44,6 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
60
44
  });
61
45
  });
62
46
  };
63
-
64
47
  var connectorState = {
65
48
  getRefine: function getRefine(helper) {
66
49
  return function (value) {
@@ -69,7 +52,7 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
69
52
  },
70
53
  createURLFactory: function createURLFactory(_ref3) {
71
54
  var state = _ref3.state,
72
- createURL = _ref3.createURL;
55
+ createURL = _ref3.createURL;
73
56
  return function (value) {
74
57
  return createURL(state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value));
75
58
  };
@@ -79,21 +62,20 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
79
62
  $$type: 'ais.hitsPerPage',
80
63
  init: function init(initOptions) {
81
64
  var state = initOptions.state,
82
- instantSearchInstance = initOptions.instantSearchInstance;
65
+ instantSearchInstance = initOptions.instantSearchInstance;
83
66
  var isCurrentInOptions = items.some(function (item) {
84
67
  return Number(state.hitsPerPage) === Number(item.value);
85
68
  });
86
-
87
69
  if (!isCurrentInOptions) {
88
70
  process.env.NODE_ENV === 'development' ? warning(state.hitsPerPage !== undefined, "\n`hitsPerPage` is not defined.\nThe option `hitsPerPage` needs to be set using the `configure` widget.\n\nLearn more: https://www.algolia.com/doc/api-reference/widgets/hits-per-page/js/\n ") : void 0;
89
71
  process.env.NODE_ENV === 'development' ? warning(false, "\nThe `items` option of `hitsPerPage` does not contain the \"hits per page\" value coming from the state: ".concat(state.hitsPerPage, ".\n\nYou may want to add another entry to the `items` option with this value.")) : void 0;
90
- items = [// The helper will convert the empty string to `undefined`.
72
+ items = [
73
+ // The helper will convert the empty string to `undefined`.
91
74
  {
92
75
  value: '',
93
76
  label: ''
94
77
  }].concat(_toConsumableArray(items));
95
78
  }
96
-
97
79
  renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
98
80
  instantSearchInstance: instantSearchInstance
99
81
  }), true);
@@ -116,9 +98,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
116
98
  },
117
99
  getWidgetRenderState: function getWidgetRenderState(_ref5) {
118
100
  var state = _ref5.state,
119
- results = _ref5.results,
120
- createURL = _ref5.createURL,
121
- helper = _ref5.helper;
101
+ results = _ref5.results,
102
+ createURL = _ref5.createURL,
103
+ helper = _ref5.helper;
122
104
  var canRefine = results ? results.nbHits > 0 : false;
123
105
  return {
124
106
  items: transformItems(normalizeItems(state), {
@@ -137,11 +119,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
137
119
  getWidgetUiState: function getWidgetUiState(uiState, _ref6) {
138
120
  var searchParameters = _ref6.searchParameters;
139
121
  var hitsPerPage = searchParameters.hitsPerPage;
140
-
141
122
  if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {
142
123
  return uiState;
143
124
  }
144
-
145
125
  return _objectSpread(_objectSpread({}, uiState), {}, {
146
126
  hitsPerPage: hitsPerPage
147
127
  });
@@ -155,5 +135,4 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
155
135
  };
156
136
  };
157
137
  };
158
-
159
138
  export default connectHitsPerPage;
@@ -24,7 +24,8 @@ export { default as EXPERIMENTAL_connectConfigureRelatedItems } from './configur
24
24
  export { default as connectAutocomplete } from './autocomplete/connectAutocomplete';
25
25
  export { default as connectQueryRules } from './query-rules/connectQueryRules';
26
26
  export { default as connectVoiceSearch } from './voice-search/connectVoiceSearch';
27
- export { default as EXPERIMENTAL_connectAnswers } from './answers/connectAnswers';
27
+ /** @deprecated answers is no longer supported */
28
+ export declare const EXPERIMENTAL_connectAnswers: import("./answers/connectAnswers").AnswersConnector;
28
29
  export { default as connectRelevantSort } from './relevant-sort/connectRelevantSort';
29
30
  import connectDynamicWidgets from './dynamic-widgets/connectDynamicWidgets';
30
31
  export { connectDynamicWidgets };
@@ -1,3 +1,4 @@
1
+ import { deprecate } from "../lib/utils/index.js";
1
2
  export { default as connectClearRefinements } from "./clear-refinements/connectClearRefinements.js";
2
3
  export { default as connectCurrentRefinements } from "./current-refinements/connectCurrentRefinements.js";
3
4
  export { default as connectHierarchicalMenu } from "./hierarchical-menu/connectHierarchicalMenu.js";
@@ -24,11 +25,13 @@ export { default as EXPERIMENTAL_connectConfigureRelatedItems } from "./configur
24
25
  export { default as connectAutocomplete } from "./autocomplete/connectAutocomplete.js";
25
26
  export { default as connectQueryRules } from "./query-rules/connectQueryRules.js";
26
27
  export { default as connectVoiceSearch } from "./voice-search/connectVoiceSearch.js";
27
- export { default as EXPERIMENTAL_connectAnswers } from "./answers/connectAnswers.js";
28
+ import connectAnswers from "./answers/connectAnswers.js";
29
+
30
+ /** @deprecated answers is no longer supported */
31
+ export var EXPERIMENTAL_connectAnswers = deprecate(connectAnswers, 'answers is no longer supported');
28
32
  export { default as connectRelevantSort } from "./relevant-sort/connectRelevantSort.js";
29
33
  import connectDynamicWidgets from "./dynamic-widgets/connectDynamicWidgets.js";
30
34
  export { connectDynamicWidgets };
31
- import { deprecate } from "../lib/utils/index.js";
32
- /** @deprecated use connectDynamicWidgets */
33
35
 
36
+ /** @deprecated use connectDynamicWidgets */
34
37
  export var EXPERIMENTAL_connectDynamicWidgets = deprecate(connectDynamicWidgets, 'use connectDynamicWidgets');