instantsearch.js 4.49.0 → 4.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/README.md +3 -3
  2. package/cjs/components/Answers/Answers.js +6 -16
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
  6. package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
  8. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
  9. package/cjs/components/Highlight/Highlight.js +3 -11
  10. package/cjs/components/Hits/Hits.js +8 -20
  11. package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
  12. package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
  13. package/cjs/components/MenuSelect/MenuSelect.js +9 -19
  14. package/cjs/components/Pagination/Pagination.js +10 -17
  15. package/cjs/components/Panel/Panel.js +7 -26
  16. package/cjs/components/PoweredBy/PoweredBy.js +4 -5
  17. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
  18. package/cjs/components/RangeInput/RangeInput.js +16 -48
  19. package/cjs/components/RefinementList/RefinementList.js +19 -73
  20. package/cjs/components/RefinementList/RefinementListItem.js +8 -14
  21. package/cjs/components/RelevantSort/RelevantSort.js +4 -8
  22. package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
  23. package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
  24. package/cjs/components/SearchBox/SearchBox.js +25 -69
  25. package/cjs/components/Selector/Selector.js +3 -6
  26. package/cjs/components/Slider/Pit.js +3 -10
  27. package/cjs/components/Slider/Rheostat.js +63 -131
  28. package/cjs/components/Slider/Slider.js +28 -65
  29. package/cjs/components/Snippet/Snippet.js +3 -11
  30. package/cjs/components/Stats/Stats.js +7 -20
  31. package/cjs/components/Template/Template.js +8 -37
  32. package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
  33. package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
  34. package/cjs/connectors/answers/connectAnswers.js +21 -36
  35. package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
  36. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
  37. package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
  38. package/cjs/connectors/configure/connectConfigure.js +6 -20
  39. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
  40. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
  41. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
  42. package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
  43. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
  44. package/cjs/connectors/hits/connectHits.js +10 -26
  45. package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
  46. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
  47. package/cjs/connectors/index.js +62 -96
  48. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
  49. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
  50. package/cjs/connectors/menu/connectMenu.js +28 -66
  51. package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
  52. package/cjs/connectors/pagination/Paginator.js +3 -20
  53. package/cjs/connectors/pagination/connectPagination.js +8 -25
  54. package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
  55. package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
  56. package/cjs/connectors/range/connectRange.js +41 -101
  57. package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
  58. package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
  59. package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
  60. package/cjs/connectors/search-box/connectSearchBox.js +7 -23
  61. package/cjs/connectors/sort-by/connectSortBy.js +11 -21
  62. package/cjs/connectors/stats/connectStats.js +4 -11
  63. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
  64. package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
  65. package/cjs/helpers/components/Highlight.js +4 -12
  66. package/cjs/helpers/components/ReverseHighlight.js +7 -19
  67. package/cjs/helpers/components/ReverseSnippet.js +7 -19
  68. package/cjs/helpers/components/Snippet.js +4 -12
  69. package/cjs/helpers/components/index.js +0 -8
  70. package/cjs/helpers/get-insights-anonymous-user-token.js +7 -12
  71. package/cjs/helpers/highlight.js +10 -16
  72. package/cjs/helpers/index.js +17 -31
  73. package/cjs/helpers/insights.js +5 -17
  74. package/cjs/helpers/reverseHighlight.js +10 -16
  75. package/cjs/helpers/reverseSnippet.js +10 -16
  76. package/cjs/helpers/snippet.js +10 -16
  77. package/cjs/index.js +3 -18
  78. package/cjs/lib/InstantSearch.js +79 -180
  79. package/cjs/lib/createHelpers.js +4 -11
  80. package/cjs/lib/formatNumber.js +0 -1
  81. package/cjs/lib/infiniteHitsCache/index.js +0 -2
  82. package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
  83. package/cjs/lib/insights/client.js +8 -34
  84. package/cjs/lib/insights/index.js +7 -13
  85. package/cjs/lib/insights/listener.js +4 -20
  86. package/cjs/lib/routers/history.js +63 -102
  87. package/cjs/lib/routers/index.js +0 -2
  88. package/cjs/lib/stateMappings/index.js +0 -3
  89. package/cjs/lib/stateMappings/simple.js +6 -13
  90. package/cjs/lib/stateMappings/singleIndex.js +1 -7
  91. package/cjs/lib/suit.js +2 -5
  92. package/cjs/lib/templating/index.js +0 -4
  93. package/cjs/lib/templating/prepareTemplateProps.js +8 -19
  94. package/cjs/lib/templating/renderTemplate.js +9 -24
  95. package/cjs/lib/utils/capitalize.js +0 -1
  96. package/cjs/lib/utils/checkIndexUiState.js +15 -43
  97. package/cjs/lib/utils/checkRendering.js +0 -2
  98. package/cjs/lib/utils/clearRefinements.js +2 -9
  99. package/cjs/lib/utils/concatHighlightedParts.js +1 -3
  100. package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
  101. package/cjs/lib/utils/createSendEventForFacet.js +7 -14
  102. package/cjs/lib/utils/createSendEventForHits.js +9 -33
  103. package/cjs/lib/utils/debounce.js +0 -3
  104. package/cjs/lib/utils/defer.js +0 -11
  105. package/cjs/lib/utils/detect-insights-client.js +0 -2
  106. package/cjs/lib/utils/documentation.js +2 -5
  107. package/cjs/lib/utils/escape-highlight.js +5 -22
  108. package/cjs/lib/utils/escape-html.js +9 -7
  109. package/cjs/lib/utils/escapeFacetValue.js +1 -5
  110. package/cjs/lib/utils/find.js +2 -5
  111. package/cjs/lib/utils/findIndex.js +0 -3
  112. package/cjs/lib/utils/geo-search.js +14 -34
  113. package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
  114. package/cjs/lib/utils/getContainerNode.js +0 -6
  115. package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
  116. package/cjs/lib/utils/getHighlightedParts.js +1 -4
  117. package/cjs/lib/utils/getObjectType.js +0 -1
  118. package/cjs/lib/utils/getPropertyByPath.js +0 -1
  119. package/cjs/lib/utils/getRefinements.js +13 -26
  120. package/cjs/lib/utils/getWidgetAttribute.js +0 -6
  121. package/cjs/lib/utils/hits-absolute-position.js +2 -6
  122. package/cjs/lib/utils/hits-query-id.js +2 -7
  123. package/cjs/lib/utils/index.js +0 -92
  124. package/cjs/lib/utils/isDomElement.js +0 -1
  125. package/cjs/lib/utils/isEqual.js +0 -8
  126. package/cjs/lib/utils/isFacetRefined.js +0 -1
  127. package/cjs/lib/utils/isFiniteNumber.js +0 -1
  128. package/cjs/lib/utils/isIndexWidget.js +0 -1
  129. package/cjs/lib/utils/isPlainObject.js +3 -11
  130. package/cjs/lib/utils/isSpecialClick.js +0 -1
  131. package/cjs/lib/utils/logger.js +3 -13
  132. package/cjs/lib/utils/mergeSearchParameters.js +16 -40
  133. package/cjs/lib/utils/noop.js +0 -1
  134. package/cjs/lib/utils/range.js +8 -14
  135. package/cjs/lib/utils/render-args.js +0 -2
  136. package/cjs/lib/utils/resolveSearchParameters.js +0 -3
  137. package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
  138. package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
  139. package/cjs/lib/utils/serializer.js +1 -3
  140. package/cjs/lib/utils/setIndexHelperState.js +0 -5
  141. package/cjs/lib/utils/toArray.js +0 -1
  142. package/cjs/lib/utils/typedObject.js +0 -1
  143. package/cjs/lib/utils/uniq.js +0 -1
  144. package/cjs/lib/version.js +1 -1
  145. package/cjs/lib/voiceSearchHelper/index.js +8 -36
  146. package/cjs/middlewares/createInsightsMiddleware.js +15 -44
  147. package/cjs/middlewares/createMetadataMiddleware.js +4 -12
  148. package/cjs/middlewares/createRouterMiddleware.js +8 -19
  149. package/cjs/middlewares/index.js +0 -6
  150. package/cjs/types/algoliasearch.js +0 -2
  151. package/cjs/types/index.js +0 -28
  152. package/cjs/widgets/analytics/analytics.js +12 -47
  153. package/cjs/widgets/answers/answers.js +19 -39
  154. package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
  155. package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
  156. package/cjs/widgets/configure/configure.js +2 -10
  157. package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
  158. package/cjs/widgets/current-refinements/current-refinements.js +12 -30
  159. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
  160. package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
  161. package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
  162. package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
  163. package/cjs/widgets/geo-search/geo-search.js +27 -59
  164. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
  165. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
  166. package/cjs/widgets/hits/hits.js +16 -37
  167. package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
  168. package/cjs/widgets/index/index.js +49 -95
  169. package/cjs/widgets/index.js +12 -50
  170. package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
  171. package/cjs/widgets/menu/defaultTemplates.js +3 -6
  172. package/cjs/widgets/menu/menu.js +23 -43
  173. package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
  174. package/cjs/widgets/menu-select/menu-select.js +18 -38
  175. package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
  176. package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
  177. package/cjs/widgets/pagination/pagination.js +32 -53
  178. package/cjs/widgets/panel/panel.js +20 -48
  179. package/cjs/widgets/places/places.js +16 -33
  180. package/cjs/widgets/powered-by/powered-by.js +10 -27
  181. package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
  182. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
  183. package/cjs/widgets/range-input/range-input.js +23 -50
  184. package/cjs/widgets/range-slider/range-slider.js +28 -53
  185. package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
  186. package/cjs/widgets/rating-menu/rating-menu.js +17 -38
  187. package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
  188. package/cjs/widgets/refinement-list/refinement-list.js +39 -60
  189. package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
  190. package/cjs/widgets/search-box/defaultTemplates.js +0 -5
  191. package/cjs/widgets/search-box/search-box.js +31 -49
  192. package/cjs/widgets/sort-by/sort-by.js +11 -29
  193. package/cjs/widgets/stats/defaultTemplates.js +0 -1
  194. package/cjs/widgets/stats/stats.js +27 -57
  195. package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
  196. package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
  197. package/cjs/widgets/voice-search/voice-search.js +17 -36
  198. package/dist/instantsearch.development.d.ts +8 -6
  199. package/dist/instantsearch.development.js +1725 -3087
  200. package/dist/instantsearch.development.js.map +1 -1
  201. package/dist/instantsearch.production.d.ts +8 -6
  202. package/dist/instantsearch.production.min.d.ts +8 -6
  203. package/dist/instantsearch.production.min.js +2 -2
  204. package/dist/instantsearch.production.min.js.map +1 -1
  205. package/es/components/Answers/Answers.js +6 -11
  206. package/es/components/Breadcrumb/Breadcrumb.js +5 -7
  207. package/es/components/ClearRefinements/ClearRefinements.js +4 -6
  208. package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
  209. package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
  210. package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
  211. package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
  212. package/es/components/Highlight/Highlight.js +3 -7
  213. package/es/components/Hits/Hits.js +8 -15
  214. package/es/components/InfiniteHits/InfiniteHits.js +13 -20
  215. package/es/components/MenuSelect/MenuSelect.js +9 -13
  216. package/es/components/Pagination/Pagination.js +12 -15
  217. package/es/components/Panel/Panel.js +7 -20
  218. package/es/components/PoweredBy/PoweredBy.js +6 -5
  219. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
  220. package/es/components/RangeInput/RangeInput.js +16 -43
  221. package/es/components/RefinementList/RefinementList.js +19 -64
  222. package/es/components/RefinementList/RefinementListItem.js +8 -10
  223. package/es/components/RelevantSort/RelevantSort.js +6 -6
  224. package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
  225. package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
  226. package/es/components/SearchBox/SearchBox.js +25 -63
  227. package/es/components/Selector/Selector.js +5 -5
  228. package/es/components/Slider/Pit.js +3 -7
  229. package/es/components/Slider/Rheostat.js +64 -129
  230. package/es/components/Slider/Slider.js +28 -58
  231. package/es/components/Snippet/Snippet.js +3 -7
  232. package/es/components/Stats/Stats.js +7 -15
  233. package/es/components/Template/Template.js +8 -32
  234. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
  235. package/es/components/VoiceSearch/VoiceSearch.js +10 -13
  236. package/es/connectors/answers/connectAnswers.js +21 -35
  237. package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
  238. package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
  239. package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
  240. package/es/connectors/configure/connectConfigure.js +7 -16
  241. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
  242. package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
  243. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
  244. package/es/connectors/geo-search/connectGeoSearch.js +17 -45
  245. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
  246. package/es/connectors/hits/connectHits.js +10 -24
  247. package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
  248. package/es/connectors/index.d.ts +2 -1
  249. package/es/connectors/index.js +6 -3
  250. package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
  251. package/es/connectors/menu/connectMenu.js +28 -64
  252. package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
  253. package/es/connectors/pagination/Paginator.js +3 -19
  254. package/es/connectors/pagination/connectPagination.js +8 -21
  255. package/es/connectors/powered-by/connectPoweredBy.js +4 -11
  256. package/es/connectors/query-rules/connectQueryRules.js +32 -54
  257. package/es/connectors/range/connectRange.js +41 -99
  258. package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
  259. package/es/connectors/refinement-list/connectRefinementList.js +37 -68
  260. package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
  261. package/es/connectors/search-box/connectSearchBox.js +7 -21
  262. package/es/connectors/sort-by/connectSortBy.js +11 -19
  263. package/es/connectors/stats/connectStats.js +4 -9
  264. package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
  265. package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
  266. package/es/helpers/components/Highlight.js +4 -8
  267. package/es/helpers/components/ReverseHighlight.js +7 -15
  268. package/es/helpers/components/ReverseSnippet.js +7 -15
  269. package/es/helpers/components/Snippet.js +4 -8
  270. package/es/helpers/get-insights-anonymous-user-token.js +5 -7
  271. package/es/helpers/highlight.js +9 -11
  272. package/es/helpers/insights.js +3 -10
  273. package/es/helpers/reverseHighlight.js +9 -11
  274. package/es/helpers/reverseSnippet.js +9 -11
  275. package/es/helpers/snippet.js +9 -11
  276. package/es/index.js +0 -2
  277. package/es/lib/InstantSearch.js +79 -170
  278. package/es/lib/createHelpers.js +4 -8
  279. package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
  280. package/es/lib/insights/client.js +8 -32
  281. package/es/lib/insights/listener.js +6 -18
  282. package/es/lib/routers/history.js +63 -99
  283. package/es/lib/stateMappings/simple.js +6 -12
  284. package/es/lib/stateMappings/singleIndex.js +1 -6
  285. package/es/lib/suit.js +2 -3
  286. package/es/lib/templating/prepareTemplateProps.js +8 -18
  287. package/es/lib/templating/renderTemplate.js +9 -20
  288. package/es/lib/utils/checkIndexUiState.js +18 -40
  289. package/es/lib/utils/clearRefinements.js +2 -8
  290. package/es/lib/utils/concatHighlightedParts.js +1 -1
  291. package/es/lib/utils/createConcurrentSafePromise.js +0 -2
  292. package/es/lib/utils/createSendEventForFacet.js +7 -12
  293. package/es/lib/utils/createSendEventForHits.js +8 -30
  294. package/es/lib/utils/debounce.js +0 -2
  295. package/es/lib/utils/defer.js +0 -10
  296. package/es/lib/utils/documentation.js +2 -3
  297. package/es/lib/utils/escape-highlight.js +3 -16
  298. package/es/lib/utils/escape-html.js +9 -5
  299. package/es/lib/utils/escapeFacetValue.js +0 -2
  300. package/es/lib/utils/find.js +2 -4
  301. package/es/lib/utils/findIndex.js +0 -2
  302. package/es/lib/utils/geo-search.js +14 -32
  303. package/es/lib/utils/getAppIdAndApiKey.js +2 -2
  304. package/es/lib/utils/getContainerNode.js +1 -5
  305. package/es/lib/utils/getHighlightFromSiblings.js +0 -3
  306. package/es/lib/utils/getHighlightedParts.js +1 -2
  307. package/es/lib/utils/getRefinements.js +13 -24
  308. package/es/lib/utils/getWidgetAttribute.js +0 -5
  309. package/es/lib/utils/hits-absolute-position.js +2 -5
  310. package/es/lib/utils/hits-query-id.js +2 -6
  311. package/es/lib/utils/isEqual.js +0 -7
  312. package/es/lib/utils/isPlainObject.js +3 -10
  313. package/es/lib/utils/logger.js +2 -12
  314. package/es/lib/utils/mergeSearchParameters.js +16 -37
  315. package/es/lib/utils/range.js +8 -13
  316. package/es/lib/utils/resolveSearchParameters.js +0 -2
  317. package/es/lib/utils/reverseHighlightedParts.js +2 -6
  318. package/es/lib/utils/safelyRunOnBrowser.js +7 -8
  319. package/es/lib/utils/setIndexHelperState.js +0 -2
  320. package/es/lib/version.d.ts +1 -1
  321. package/es/lib/version.js +1 -1
  322. package/es/lib/voiceSearchHelper/index.js +8 -35
  323. package/es/middlewares/createInsightsMiddleware.js +15 -41
  324. package/es/middlewares/createMetadataMiddleware.js +3 -9
  325. package/es/middlewares/createRouterMiddleware.js +8 -13
  326. package/es/types/index.js +9 -5
  327. package/es/widgets/analytics/analytics.js +12 -45
  328. package/es/widgets/answers/answers.js +19 -28
  329. package/es/widgets/breadcrumb/breadcrumb.js +18 -27
  330. package/es/widgets/clear-refinements/clear-refinements.js +15 -24
  331. package/es/widgets/configure/configure.js +3 -6
  332. package/es/widgets/configure-related-items/configure-related-items.js +2 -7
  333. package/es/widgets/current-refinements/current-refinements.js +12 -21
  334. package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
  335. package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
  336. package/es/widgets/geo-search/createHTMLMarker.js +30 -59
  337. package/es/widgets/geo-search/defaultTemplates.js +2 -2
  338. package/es/widgets/geo-search/geo-search.js +27 -49
  339. package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
  340. package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
  341. package/es/widgets/hits/hits.js +16 -25
  342. package/es/widgets/hits-per-page/hits-per-page.js +13 -22
  343. package/es/widgets/index/index.js +49 -91
  344. package/es/widgets/index.d.ts +2 -1
  345. package/es/widgets/index.js +4 -3
  346. package/es/widgets/infinite-hits/infinite-hits.js +23 -32
  347. package/es/widgets/menu/defaultTemplates.js +4 -3
  348. package/es/widgets/menu/menu.js +23 -32
  349. package/es/widgets/menu-select/defaultTemplates.js +1 -1
  350. package/es/widgets/menu-select/menu-select.js +18 -27
  351. package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
  352. package/es/widgets/numeric-menu/numeric-menu.js +17 -26
  353. package/es/widgets/pagination/pagination.js +32 -44
  354. package/es/widgets/panel/panel.js +20 -40
  355. package/es/widgets/places/places.js +16 -32
  356. package/es/widgets/powered-by/powered-by.js +10 -18
  357. package/es/widgets/query-rule-context/query-rule-context.js +2 -9
  358. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
  359. package/es/widgets/range-input/range-input.js +23 -40
  360. package/es/widgets/range-slider/range-slider.js +28 -44
  361. package/es/widgets/rating-menu/defaultTemplates.js +9 -12
  362. package/es/widgets/rating-menu/rating-menu.js +17 -27
  363. package/es/widgets/refinement-list/defaultTemplates.js +6 -5
  364. package/es/widgets/refinement-list/refinement-list.js +39 -48
  365. package/es/widgets/relevant-sort/relevant-sort.js +10 -19
  366. package/es/widgets/search-box/defaultTemplates.js +1 -4
  367. package/es/widgets/search-box/search-box.js +31 -39
  368. package/es/widgets/sort-by/sort-by.js +11 -20
  369. package/es/widgets/stats/stats.js +26 -45
  370. package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
  371. package/es/widgets/voice-search/defaultTemplates.js +5 -13
  372. package/es/widgets/voice-search/voice-search.js +17 -26
  373. package/package.json +20 -119
  374. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
  375. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
  376. package/CHANGELOG.md +0 -3684
@@ -4,37 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
10
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
11
  function _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; }
17
-
18
12
  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; }
19
-
20
13
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
-
22
14
  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."); }
23
-
24
15
  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); }
25
-
26
16
  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; }
27
-
28
- 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; }
29
-
17
+ 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; }
30
18
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
-
32
19
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
33
20
  name: 'hierarchical-menu',
34
21
  connector: true
35
22
  });
36
23
  var DEFAULT_SORT = ['name:asc'];
37
-
38
24
  /**
39
25
  * **HierarchicalMenu** connector provides the logic to build a custom widget
40
26
  * that will give the user the ability to explore facets in a tree-like structure.
@@ -53,86 +39,73 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
53
39
  (0, _index.checkRendering)(renderFn, withUsage());
54
40
  return function (widgetParams) {
55
41
  var _ref = widgetParams || {},
56
- attributes = _ref.attributes,
57
- _ref$separator = _ref.separator,
58
- separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
59
- _ref$rootPath = _ref.rootPath,
60
- rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
61
- _ref$showParentLevel = _ref.showParentLevel,
62
- showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,
63
- _ref$limit = _ref.limit,
64
- limit = _ref$limit === void 0 ? 10 : _ref$limit,
65
- _ref$showMore = _ref.showMore,
66
- showMore = _ref$showMore === void 0 ? false : _ref$showMore,
67
- _ref$showMoreLimit = _ref.showMoreLimit,
68
- showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
69
- _ref$sortBy = _ref.sortBy,
70
- sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
71
- _ref$transformItems = _ref.transformItems,
72
- transformItems = _ref$transformItems === void 0 ? function (items) {
73
- return items;
74
- } : _ref$transformItems;
75
-
42
+ attributes = _ref.attributes,
43
+ _ref$separator = _ref.separator,
44
+ separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
45
+ _ref$rootPath = _ref.rootPath,
46
+ rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
47
+ _ref$showParentLevel = _ref.showParentLevel,
48
+ showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,
49
+ _ref$limit = _ref.limit,
50
+ limit = _ref$limit === void 0 ? 10 : _ref$limit,
51
+ _ref$showMore = _ref.showMore,
52
+ showMore = _ref$showMore === void 0 ? false : _ref$showMore,
53
+ _ref$showMoreLimit = _ref.showMoreLimit,
54
+ showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
55
+ _ref$sortBy = _ref.sortBy,
56
+ sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
57
+ _ref$transformItems = _ref.transformItems,
58
+ transformItems = _ref$transformItems === void 0 ? function (items) {
59
+ return items;
60
+ } : _ref$transformItems;
76
61
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
77
62
  throw new Error(withUsage('The `attributes` option expects an array of strings.'));
78
63
  }
79
-
80
64
  if (showMore === true && showMoreLimit <= limit) {
81
65
  throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
82
66
  }
83
-
84
67
  // we need to provide a hierarchicalFacet name for the search state
85
68
  // so that we can always map $hierarchicalFacetName => real attributes
86
69
  // we use the first attribute name
87
70
  var _attributes = _slicedToArray(attributes, 1),
88
- hierarchicalFacetName = _attributes[0];
71
+ hierarchicalFacetName = _attributes[0];
72
+ var sendEvent;
89
73
 
90
- var sendEvent; // Provide the same function to the `renderFn` so that way the user
74
+ // Provide the same function to the `renderFn` so that way the user
91
75
  // has to only bind it once when `isFirstRendering` for instance
92
-
93
76
  var toggleShowMore = function toggleShowMore() {};
94
-
95
77
  function cachedToggleShowMore() {
96
78
  toggleShowMore();
97
79
  }
98
-
99
80
  var _refine;
100
-
101
81
  var isShowingMore = false;
102
-
103
82
  function createToggleShowMore(renderOptions, widget) {
104
83
  return function () {
105
84
  isShowingMore = !isShowingMore;
106
85
  widget.render(renderOptions);
107
86
  };
108
87
  }
109
-
110
88
  function getLimit() {
111
89
  return isShowingMore ? showMoreLimit : limit;
112
90
  }
113
-
114
91
  function _prepareFacetValues(facetValues) {
115
92
  return facetValues.slice(0, getLimit()).map(function (_ref2) {
116
93
  var label = _ref2.name,
117
- value = _ref2.escapedValue,
118
- data = _ref2.data,
119
- path = _ref2.path,
120
- subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
121
-
94
+ value = _ref2.escapedValue,
95
+ data = _ref2.data,
96
+ path = _ref2.path,
97
+ subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
122
98
  var item = _objectSpread(_objectSpread({}, subValue), {}, {
123
99
  value: value,
124
100
  label: label,
125
101
  data: null
126
102
  });
127
-
128
103
  if (Array.isArray(data)) {
129
104
  item.data = _prepareFacetValues(data);
130
105
  }
131
-
132
106
  return item;
133
107
  });
134
108
  }
135
-
136
109
  return {
137
110
  $$type: 'ais.hierarchicalMenu',
138
111
  init: function init(initOptions) {
@@ -160,17 +133,17 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
160
133
  },
161
134
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
162
135
  var results = _ref4.results,
163
- state = _ref4.state,
164
- createURL = _ref4.createURL,
165
- instantSearchInstance = _ref4.instantSearchInstance,
166
- helper = _ref4.helper;
136
+ state = _ref4.state,
137
+ createURL = _ref4.createURL,
138
+ instantSearchInstance = _ref4.instantSearchInstance,
139
+ helper = _ref4.helper;
167
140
  var items = [];
168
- var canToggleShowMore = false; // Bind createURL to this specific attribute
141
+ var canToggleShowMore = false;
169
142
 
143
+ // Bind createURL to this specific attribute
170
144
  function _createURL(facetValue) {
171
145
  return createURL(state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue));
172
146
  }
173
-
174
147
  if (!sendEvent) {
175
148
  sendEvent = (0, _index.createSendEventForFacet)({
176
149
  instantSearchInstance: instantSearchInstance,
@@ -182,33 +155,31 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
182
155
  widgetType: this.$$type
183
156
  });
184
157
  }
185
-
186
158
  if (!_refine) {
187
159
  _refine = function _refine(facetValue) {
188
160
  sendEvent('click', facetValue);
189
161
  helper.toggleFacetRefinement(hierarchicalFacetName, facetValue).search();
190
162
  };
191
163
  }
192
-
193
164
  if (results) {
194
165
  var facetValues = results.getFacetValues(hierarchicalFacetName, {
195
166
  sortBy: sortBy,
196
167
  facetOrdering: sortBy === DEFAULT_SORT
197
168
  });
198
- 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
169
+ var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];
170
+
171
+ // If the limit is the max number of facet retrieved it is impossible to know
199
172
  // if the facets are exhaustive. The only moment we are sure it is exhaustive
200
173
  // is when it is strictly under the number requested unless we know that another
201
174
  // widget has requested more values (maxValuesPerFacet > getLimit()).
202
175
  // Because this is used for making the search of facets unable or not, it is important
203
176
  // to be conservative here.
204
-
205
177
  var hasExhaustiveItems = (state.maxValuesPerFacet || 0) > getLimit() ? facetItems.length <= getLimit() : facetItems.length < getLimit();
206
178
  canToggleShowMore = showMore && (isShowingMore || !hasExhaustiveItems);
207
179
  items = transformItems(_prepareFacetValues(facetItems), {
208
180
  results: results
209
181
  });
210
182
  }
211
-
212
183
  return {
213
184
  items: items,
214
185
  refine: _refine,
@@ -224,11 +195,9 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
224
195
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
225
196
  var searchParameters = _ref5.searchParameters;
226
197
  var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
227
-
228
198
  if (!path.length) {
229
199
  return uiState;
230
200
  }
231
-
232
201
  return _objectSpread(_objectSpread({}, uiState), {}, {
233
202
  hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))
234
203
  });
@@ -236,12 +205,10 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
236
205
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
237
206
  var uiState = _ref6.uiState;
238
207
  var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];
239
-
240
208
  if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
241
209
  var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
242
210
  process.env.NODE_ENV === 'development' ? (0, _index.warning)((0, _index.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
243
211
  }
244
-
245
212
  var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({
246
213
  name: hierarchicalFacetName,
247
214
  attributes: attributes,
@@ -252,18 +219,15 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
252
219
  var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
253
220
  var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
254
221
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
255
-
256
222
  if (!values) {
257
223
  return withMaxValuesPerFacet.setQueryParameters({
258
224
  hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))
259
225
  });
260
226
  }
261
-
262
227
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
263
228
  }
264
229
  };
265
230
  };
266
231
  };
267
-
268
232
  var _default = connectHierarchicalMenu;
269
233
  exports.default = _default;
@@ -4,32 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
10
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
11
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
17
12
  name: 'hits',
18
13
  connector: true
19
14
  });
20
-
21
15
  var connectHits = function connectHits(renderFn) {
22
16
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
23
17
  (0, _index.checkRendering)(renderFn, withUsage());
24
18
  return function (widgetParams) {
25
19
  var _ref = widgetParams || {},
26
- _ref$escapeHTML = _ref.escapeHTML,
27
- escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
28
- _ref$transformItems = _ref.transformItems,
29
- transformItems = _ref$transformItems === void 0 ? function (items) {
30
- return items;
31
- } : _ref$transformItems;
32
-
20
+ _ref$escapeHTML = _ref.escapeHTML,
21
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
22
+ _ref$transformItems = _ref.transformItems,
23
+ transformItems = _ref$transformItems === void 0 ? function (items) {
24
+ return items;
25
+ } : _ref$transformItems;
33
26
  var sendEvent;
34
27
  var bindEvent;
35
28
  return {
@@ -53,9 +46,8 @@ var connectHits = function connectHits(renderFn) {
53
46
  },
54
47
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
55
48
  var results = _ref2.results,
56
- helper = _ref2.helper,
57
- instantSearchInstance = _ref2.instantSearchInstance;
58
-
49
+ helper = _ref2.helper,
50
+ instantSearchInstance = _ref2.instantSearchInstance;
59
51
  if (!sendEvent) {
60
52
  sendEvent = (0, _index.createSendEventForHits)({
61
53
  instantSearchInstance: instantSearchInstance,
@@ -63,14 +55,12 @@ var connectHits = function connectHits(renderFn) {
63
55
  widgetType: this.$$type
64
56
  });
65
57
  }
66
-
67
58
  if (!bindEvent) {
68
59
  bindEvent = (0, _index.createBindEventForHits)({
69
60
  index: helper.getIndex(),
70
61
  widgetType: this.$$type
71
62
  });
72
63
  }
73
-
74
64
  if (!results) {
75
65
  return {
76
66
  hits: [],
@@ -80,11 +70,9 @@ var connectHits = function connectHits(renderFn) {
80
70
  widgetParams: widgetParams
81
71
  };
82
72
  }
83
-
84
73
  if (escapeHTML && results.hits.length > 0) {
85
74
  results.hits = (0, _index.escapeHits)(results.hits);
86
75
  }
87
-
88
76
  var hitsWithAbsolutePosition = (0, _index.addAbsolutePosition)(results.hits, results.page, results.hitsPerPage);
89
77
  var hitsWithAbsolutePositionAndQueryID = (0, _index.addQueryID)(hitsWithAbsolutePosition, results.queryID);
90
78
  var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
@@ -101,11 +89,9 @@ var connectHits = function connectHits(renderFn) {
101
89
  dispose: function dispose(_ref3) {
102
90
  var state = _ref3.state;
103
91
  unmountFn();
104
-
105
92
  if (!escapeHTML) {
106
93
  return state;
107
94
  }
108
-
109
95
  return state.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
110
96
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
111
97
  }, {}));
@@ -114,12 +100,10 @@ var connectHits = function connectHits(renderFn) {
114
100
  if (!escapeHTML) {
115
101
  return state;
116
102
  }
117
-
118
103
  return state.setQueryParameters(_index.TAG_PLACEHOLDER);
119
104
  }
120
105
  };
121
106
  };
122
107
  };
123
-
124
108
  var _default = connectHits;
125
109
  exports.default = _default;
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/insights/index.js");
9
-
10
8
  var _connectHits = _interopRequireDefault(require("./connectHits.js"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  var connectHitsWithInsights = (0, _index.withInsights)(_connectHits.default);
15
11
  var _default = connectHitsWithInsights;
16
12
  exports.default = _default;
@@ -4,62 +4,44 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _index = require("../../lib/utils/index.js");
9
-
10
8
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
-
12
9
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
-
14
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
17
-
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
18
12
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
19
-
20
13
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
-
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
-
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
-
28
17
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
29
18
  name: 'hits-per-page',
30
19
  connector: true
31
20
  });
32
-
33
21
  var connectHitsPerPage = function connectHitsPerPage(renderFn) {
34
22
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
23
  (0, _index.checkRendering)(renderFn, withUsage());
36
24
  return function (widgetParams) {
37
25
  var _ref = widgetParams || {},
38
- userItems = _ref.items,
39
- _ref$transformItems = _ref.transformItems,
40
- transformItems = _ref$transformItems === void 0 ? function (items) {
41
- return items;
42
- } : _ref$transformItems;
43
-
26
+ userItems = _ref.items,
27
+ _ref$transformItems = _ref.transformItems,
28
+ transformItems = _ref$transformItems === void 0 ? function (items) {
29
+ return items;
30
+ } : _ref$transformItems;
44
31
  if (!Array.isArray(userItems)) {
45
32
  throw new Error(withUsage('The `items` option expects an array of objects.'));
46
33
  }
47
-
48
34
  var items = userItems;
49
35
  var defaultItems = items.filter(function (item) {
50
36
  return item.default === true;
51
37
  });
52
-
53
38
  if (defaultItems.length === 0) {
54
39
  throw new Error(withUsage("A default value must be specified in `items`."));
55
40
  }
56
-
57
41
  if (defaultItems.length > 1) {
58
42
  throw new Error(withUsage('More than one default value is specified in `items`.'));
59
43
  }
60
-
61
44
  var defaultItem = defaultItems[0];
62
-
63
45
  var normalizeItems = function normalizeItems(_ref2) {
64
46
  var hitsPerPage = _ref2.hitsPerPage;
65
47
  return items.map(function (item) {
@@ -68,7 +50,6 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
68
50
  });
69
51
  });
70
52
  };
71
-
72
53
  var connectorState = {
73
54
  getRefine: function getRefine(helper) {
74
55
  return function (value) {
@@ -77,7 +58,7 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
77
58
  },
78
59
  createURLFactory: function createURLFactory(_ref3) {
79
60
  var state = _ref3.state,
80
- createURL = _ref3.createURL;
61
+ createURL = _ref3.createURL;
81
62
  return function (value) {
82
63
  return createURL(state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value));
83
64
  };
@@ -87,21 +68,20 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
87
68
  $$type: 'ais.hitsPerPage',
88
69
  init: function init(initOptions) {
89
70
  var state = initOptions.state,
90
- instantSearchInstance = initOptions.instantSearchInstance;
71
+ instantSearchInstance = initOptions.instantSearchInstance;
91
72
  var isCurrentInOptions = items.some(function (item) {
92
73
  return Number(state.hitsPerPage) === Number(item.value);
93
74
  });
94
-
95
75
  if (!isCurrentInOptions) {
96
76
  process.env.NODE_ENV === 'development' ? (0, _index.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;
97
77
  process.env.NODE_ENV === 'development' ? (0, _index.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;
98
- items = [// The helper will convert the empty string to `undefined`.
78
+ items = [
79
+ // The helper will convert the empty string to `undefined`.
99
80
  {
100
81
  value: '',
101
82
  label: ''
102
83
  }].concat(_toConsumableArray(items));
103
84
  }
104
-
105
85
  renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
106
86
  instantSearchInstance: instantSearchInstance
107
87
  }), true);
@@ -124,9 +104,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
124
104
  },
125
105
  getWidgetRenderState: function getWidgetRenderState(_ref5) {
126
106
  var state = _ref5.state,
127
- results = _ref5.results,
128
- createURL = _ref5.createURL,
129
- helper = _ref5.helper;
107
+ results = _ref5.results,
108
+ createURL = _ref5.createURL,
109
+ helper = _ref5.helper;
130
110
  var canRefine = results ? results.nbHits > 0 : false;
131
111
  return {
132
112
  items: transformItems(normalizeItems(state), {
@@ -145,11 +125,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
145
125
  getWidgetUiState: function getWidgetUiState(uiState, _ref6) {
146
126
  var searchParameters = _ref6.searchParameters;
147
127
  var hitsPerPage = searchParameters.hitsPerPage;
148
-
149
128
  if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {
150
129
  return uiState;
151
130
  }
152
-
153
131
  return _objectSpread(_objectSpread({}, uiState), {}, {
154
132
  hitsPerPage: hitsPerPage
155
133
  });
@@ -163,6 +141,5 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
163
141
  };
164
142
  };
165
143
  };
166
-
167
144
  var _default = connectHitsPerPage;
168
145
  exports.default = _default;