instantsearch.js 4.49.1 → 4.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/README.md +3 -3
  2. package/cjs/components/Answers/Answers.js +6 -16
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
  6. package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
  8. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
  9. package/cjs/components/Highlight/Highlight.js +3 -11
  10. package/cjs/components/Hits/Hits.js +8 -20
  11. package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
  12. package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
  13. package/cjs/components/MenuSelect/MenuSelect.js +9 -19
  14. package/cjs/components/Pagination/Pagination.js +10 -17
  15. package/cjs/components/Panel/Panel.js +7 -26
  16. package/cjs/components/PoweredBy/PoweredBy.js +4 -5
  17. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
  18. package/cjs/components/RangeInput/RangeInput.js +16 -48
  19. package/cjs/components/RefinementList/RefinementList.js +19 -73
  20. package/cjs/components/RefinementList/RefinementListItem.js +8 -14
  21. package/cjs/components/RelevantSort/RelevantSort.js +4 -8
  22. package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
  23. package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
  24. package/cjs/components/SearchBox/SearchBox.js +25 -69
  25. package/cjs/components/Selector/Selector.js +3 -6
  26. package/cjs/components/Slider/Pit.js +3 -10
  27. package/cjs/components/Slider/Rheostat.js +63 -131
  28. package/cjs/components/Slider/Slider.js +28 -65
  29. package/cjs/components/Snippet/Snippet.js +3 -11
  30. package/cjs/components/Stats/Stats.js +7 -20
  31. package/cjs/components/Template/Template.js +8 -37
  32. package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
  33. package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
  34. package/cjs/connectors/answers/connectAnswers.js +21 -36
  35. package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
  36. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
  37. package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
  38. package/cjs/connectors/configure/connectConfigure.js +6 -20
  39. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
  40. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
  41. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
  42. package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
  43. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
  44. package/cjs/connectors/hits/connectHits.js +10 -26
  45. package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
  46. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
  47. package/cjs/connectors/index.js +62 -96
  48. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
  49. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
  50. package/cjs/connectors/menu/connectMenu.js +28 -66
  51. package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
  52. package/cjs/connectors/pagination/Paginator.js +3 -20
  53. package/cjs/connectors/pagination/connectPagination.js +8 -25
  54. package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
  55. package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
  56. package/cjs/connectors/range/connectRange.js +41 -101
  57. package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
  58. package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
  59. package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
  60. package/cjs/connectors/search-box/connectSearchBox.js +7 -23
  61. package/cjs/connectors/sort-by/connectSortBy.js +11 -21
  62. package/cjs/connectors/stats/connectStats.js +4 -11
  63. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
  64. package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
  65. package/cjs/helpers/components/Highlight.js +4 -12
  66. package/cjs/helpers/components/ReverseHighlight.js +7 -19
  67. package/cjs/helpers/components/ReverseSnippet.js +7 -19
  68. package/cjs/helpers/components/Snippet.js +4 -12
  69. package/cjs/helpers/components/index.js +0 -8
  70. package/cjs/helpers/get-insights-anonymous-user-token.js +4 -15
  71. package/cjs/helpers/highlight.js +10 -16
  72. package/cjs/helpers/index.js +17 -31
  73. package/cjs/helpers/insights.js +5 -17
  74. package/cjs/helpers/reverseHighlight.js +10 -16
  75. package/cjs/helpers/reverseSnippet.js +10 -16
  76. package/cjs/helpers/snippet.js +10 -16
  77. package/cjs/index.js +3 -18
  78. package/cjs/lib/InstantSearch.js +79 -180
  79. package/cjs/lib/createHelpers.js +4 -11
  80. package/cjs/lib/formatNumber.js +0 -1
  81. package/cjs/lib/infiniteHitsCache/index.js +0 -2
  82. package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
  83. package/cjs/lib/insights/client.js +8 -34
  84. package/cjs/lib/insights/index.js +7 -13
  85. package/cjs/lib/insights/listener.js +4 -20
  86. package/cjs/lib/routers/history.js +63 -102
  87. package/cjs/lib/routers/index.js +0 -2
  88. package/cjs/lib/stateMappings/index.js +0 -3
  89. package/cjs/lib/stateMappings/simple.js +6 -13
  90. package/cjs/lib/stateMappings/singleIndex.js +1 -7
  91. package/cjs/lib/suit.js +2 -5
  92. package/cjs/lib/templating/index.js +0 -4
  93. package/cjs/lib/templating/prepareTemplateProps.js +8 -19
  94. package/cjs/lib/templating/renderTemplate.js +9 -24
  95. package/cjs/lib/utils/capitalize.js +0 -1
  96. package/cjs/lib/utils/checkIndexUiState.js +15 -43
  97. package/cjs/lib/utils/checkRendering.js +0 -2
  98. package/cjs/lib/utils/clearRefinements.js +2 -9
  99. package/cjs/lib/utils/concatHighlightedParts.js +1 -3
  100. package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
  101. package/cjs/lib/utils/createSendEventForFacet.js +7 -14
  102. package/cjs/lib/utils/createSendEventForHits.js +9 -33
  103. package/cjs/lib/utils/debounce.js +0 -3
  104. package/cjs/lib/utils/defer.js +0 -11
  105. package/cjs/lib/utils/detect-insights-client.js +0 -2
  106. package/cjs/lib/utils/documentation.js +2 -5
  107. package/cjs/lib/utils/escape-highlight.js +5 -22
  108. package/cjs/lib/utils/escape-html.js +9 -7
  109. package/cjs/lib/utils/escapeFacetValue.js +1 -5
  110. package/cjs/lib/utils/find.js +2 -5
  111. package/cjs/lib/utils/findIndex.js +0 -3
  112. package/cjs/lib/utils/geo-search.js +14 -34
  113. package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
  114. package/cjs/lib/utils/getContainerNode.js +0 -6
  115. package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
  116. package/cjs/lib/utils/getHighlightedParts.js +1 -4
  117. package/cjs/lib/utils/getObjectType.js +0 -1
  118. package/cjs/lib/utils/getPropertyByPath.js +0 -1
  119. package/cjs/lib/utils/getRefinements.js +13 -26
  120. package/cjs/lib/utils/getWidgetAttribute.js +0 -6
  121. package/cjs/lib/utils/hits-absolute-position.js +2 -6
  122. package/cjs/lib/utils/hits-query-id.js +2 -7
  123. package/cjs/lib/utils/index.js +0 -92
  124. package/cjs/lib/utils/isDomElement.js +0 -1
  125. package/cjs/lib/utils/isEqual.js +0 -8
  126. package/cjs/lib/utils/isFacetRefined.js +0 -1
  127. package/cjs/lib/utils/isFiniteNumber.js +0 -1
  128. package/cjs/lib/utils/isIndexWidget.js +0 -1
  129. package/cjs/lib/utils/isPlainObject.js +3 -11
  130. package/cjs/lib/utils/isSpecialClick.js +0 -1
  131. package/cjs/lib/utils/logger.js +3 -13
  132. package/cjs/lib/utils/mergeSearchParameters.js +16 -40
  133. package/cjs/lib/utils/noop.js +0 -1
  134. package/cjs/lib/utils/range.js +8 -14
  135. package/cjs/lib/utils/render-args.js +0 -2
  136. package/cjs/lib/utils/resolveSearchParameters.js +0 -3
  137. package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
  138. package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
  139. package/cjs/lib/utils/serializer.js +1 -3
  140. package/cjs/lib/utils/setIndexHelperState.js +0 -5
  141. package/cjs/lib/utils/toArray.js +0 -1
  142. package/cjs/lib/utils/typedObject.js +0 -1
  143. package/cjs/lib/utils/uniq.js +0 -1
  144. package/cjs/lib/version.js +1 -1
  145. package/cjs/lib/voiceSearchHelper/index.js +8 -36
  146. package/cjs/middlewares/createInsightsMiddleware.js +15 -44
  147. package/cjs/middlewares/createMetadataMiddleware.js +4 -12
  148. package/cjs/middlewares/createRouterMiddleware.js +8 -19
  149. package/cjs/middlewares/index.js +0 -6
  150. package/cjs/types/algoliasearch.js +0 -2
  151. package/cjs/types/index.js +0 -28
  152. package/cjs/widgets/analytics/analytics.js +12 -47
  153. package/cjs/widgets/answers/answers.js +19 -39
  154. package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
  155. package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
  156. package/cjs/widgets/configure/configure.js +2 -10
  157. package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
  158. package/cjs/widgets/current-refinements/current-refinements.js +12 -30
  159. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
  160. package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
  161. package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
  162. package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
  163. package/cjs/widgets/geo-search/geo-search.js +27 -59
  164. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
  165. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
  166. package/cjs/widgets/hits/hits.js +16 -37
  167. package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
  168. package/cjs/widgets/index/index.js +49 -95
  169. package/cjs/widgets/index.js +12 -50
  170. package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
  171. package/cjs/widgets/menu/defaultTemplates.js +3 -6
  172. package/cjs/widgets/menu/menu.js +23 -43
  173. package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
  174. package/cjs/widgets/menu-select/menu-select.js +18 -38
  175. package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
  176. package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
  177. package/cjs/widgets/pagination/pagination.js +32 -53
  178. package/cjs/widgets/panel/panel.js +20 -48
  179. package/cjs/widgets/places/places.js +16 -33
  180. package/cjs/widgets/powered-by/powered-by.js +10 -27
  181. package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
  182. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
  183. package/cjs/widgets/range-input/range-input.js +23 -50
  184. package/cjs/widgets/range-slider/range-slider.js +28 -53
  185. package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
  186. package/cjs/widgets/rating-menu/rating-menu.js +17 -38
  187. package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
  188. package/cjs/widgets/refinement-list/refinement-list.js +39 -60
  189. package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
  190. package/cjs/widgets/search-box/defaultTemplates.js +0 -5
  191. package/cjs/widgets/search-box/search-box.js +31 -49
  192. package/cjs/widgets/sort-by/sort-by.js +11 -29
  193. package/cjs/widgets/stats/defaultTemplates.js +0 -1
  194. package/cjs/widgets/stats/stats.js +27 -57
  195. package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
  196. package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
  197. package/cjs/widgets/voice-search/voice-search.js +17 -36
  198. package/dist/instantsearch.development.d.ts +8 -6
  199. package/dist/instantsearch.development.js +1722 -3088
  200. package/dist/instantsearch.development.js.map +1 -1
  201. package/dist/instantsearch.production.d.ts +8 -6
  202. package/dist/instantsearch.production.min.d.ts +8 -6
  203. package/dist/instantsearch.production.min.js +2 -2
  204. package/dist/instantsearch.production.min.js.map +1 -1
  205. package/es/components/Answers/Answers.js +6 -11
  206. package/es/components/Breadcrumb/Breadcrumb.js +5 -7
  207. package/es/components/ClearRefinements/ClearRefinements.js +4 -6
  208. package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
  209. package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
  210. package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
  211. package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
  212. package/es/components/Highlight/Highlight.js +3 -7
  213. package/es/components/Hits/Hits.js +8 -15
  214. package/es/components/InfiniteHits/InfiniteHits.js +13 -20
  215. package/es/components/MenuSelect/MenuSelect.js +9 -13
  216. package/es/components/Pagination/Pagination.js +12 -15
  217. package/es/components/Panel/Panel.js +7 -20
  218. package/es/components/PoweredBy/PoweredBy.js +6 -5
  219. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
  220. package/es/components/RangeInput/RangeInput.js +16 -43
  221. package/es/components/RefinementList/RefinementList.js +19 -64
  222. package/es/components/RefinementList/RefinementListItem.js +8 -10
  223. package/es/components/RelevantSort/RelevantSort.js +6 -6
  224. package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
  225. package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
  226. package/es/components/SearchBox/SearchBox.js +25 -63
  227. package/es/components/Selector/Selector.js +5 -5
  228. package/es/components/Slider/Pit.js +3 -7
  229. package/es/components/Slider/Rheostat.js +64 -129
  230. package/es/components/Slider/Slider.js +28 -58
  231. package/es/components/Snippet/Snippet.js +3 -7
  232. package/es/components/Stats/Stats.js +7 -15
  233. package/es/components/Template/Template.js +8 -32
  234. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
  235. package/es/components/VoiceSearch/VoiceSearch.js +10 -13
  236. package/es/connectors/answers/connectAnswers.js +21 -35
  237. package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
  238. package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
  239. package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
  240. package/es/connectors/configure/connectConfigure.js +7 -16
  241. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
  242. package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
  243. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
  244. package/es/connectors/geo-search/connectGeoSearch.js +17 -45
  245. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
  246. package/es/connectors/hits/connectHits.js +10 -24
  247. package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
  248. package/es/connectors/index.d.ts +2 -1
  249. package/es/connectors/index.js +6 -3
  250. package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
  251. package/es/connectors/menu/connectMenu.js +28 -64
  252. package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
  253. package/es/connectors/pagination/Paginator.js +3 -19
  254. package/es/connectors/pagination/connectPagination.js +8 -21
  255. package/es/connectors/powered-by/connectPoweredBy.js +4 -11
  256. package/es/connectors/query-rules/connectQueryRules.js +32 -54
  257. package/es/connectors/range/connectRange.js +41 -99
  258. package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
  259. package/es/connectors/refinement-list/connectRefinementList.js +37 -68
  260. package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
  261. package/es/connectors/search-box/connectSearchBox.js +7 -21
  262. package/es/connectors/sort-by/connectSortBy.js +11 -19
  263. package/es/connectors/stats/connectStats.js +4 -9
  264. package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
  265. package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
  266. package/es/helpers/components/Highlight.js +4 -8
  267. package/es/helpers/components/ReverseHighlight.js +7 -15
  268. package/es/helpers/components/ReverseSnippet.js +7 -15
  269. package/es/helpers/components/Snippet.js +4 -8
  270. package/es/helpers/get-insights-anonymous-user-token.js +2 -10
  271. package/es/helpers/highlight.js +9 -11
  272. package/es/helpers/insights.js +3 -10
  273. package/es/helpers/reverseHighlight.js +9 -11
  274. package/es/helpers/reverseSnippet.js +9 -11
  275. package/es/helpers/snippet.js +9 -11
  276. package/es/index.js +0 -2
  277. package/es/lib/InstantSearch.js +79 -170
  278. package/es/lib/createHelpers.js +4 -8
  279. package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
  280. package/es/lib/insights/client.js +8 -32
  281. package/es/lib/insights/listener.js +6 -18
  282. package/es/lib/routers/history.js +63 -99
  283. package/es/lib/stateMappings/simple.js +6 -12
  284. package/es/lib/stateMappings/singleIndex.js +1 -6
  285. package/es/lib/suit.js +2 -3
  286. package/es/lib/templating/prepareTemplateProps.js +8 -18
  287. package/es/lib/templating/renderTemplate.js +9 -20
  288. package/es/lib/utils/checkIndexUiState.js +18 -40
  289. package/es/lib/utils/clearRefinements.js +2 -8
  290. package/es/lib/utils/concatHighlightedParts.js +1 -1
  291. package/es/lib/utils/createConcurrentSafePromise.js +0 -2
  292. package/es/lib/utils/createSendEventForFacet.js +7 -12
  293. package/es/lib/utils/createSendEventForHits.js +8 -30
  294. package/es/lib/utils/debounce.js +0 -2
  295. package/es/lib/utils/defer.js +0 -10
  296. package/es/lib/utils/documentation.js +2 -3
  297. package/es/lib/utils/escape-highlight.js +3 -16
  298. package/es/lib/utils/escape-html.js +9 -5
  299. package/es/lib/utils/escapeFacetValue.js +0 -2
  300. package/es/lib/utils/find.js +2 -4
  301. package/es/lib/utils/findIndex.js +0 -2
  302. package/es/lib/utils/geo-search.js +14 -32
  303. package/es/lib/utils/getAppIdAndApiKey.js +2 -2
  304. package/es/lib/utils/getContainerNode.js +1 -5
  305. package/es/lib/utils/getHighlightFromSiblings.js +0 -3
  306. package/es/lib/utils/getHighlightedParts.js +1 -2
  307. package/es/lib/utils/getRefinements.js +13 -24
  308. package/es/lib/utils/getWidgetAttribute.js +0 -5
  309. package/es/lib/utils/hits-absolute-position.js +2 -5
  310. package/es/lib/utils/hits-query-id.js +2 -6
  311. package/es/lib/utils/isEqual.js +0 -7
  312. package/es/lib/utils/isPlainObject.js +3 -10
  313. package/es/lib/utils/logger.js +2 -12
  314. package/es/lib/utils/mergeSearchParameters.js +16 -37
  315. package/es/lib/utils/range.js +8 -13
  316. package/es/lib/utils/resolveSearchParameters.js +0 -2
  317. package/es/lib/utils/reverseHighlightedParts.js +2 -6
  318. package/es/lib/utils/safelyRunOnBrowser.js +7 -8
  319. package/es/lib/utils/setIndexHelperState.js +0 -2
  320. package/es/lib/version.d.ts +1 -1
  321. package/es/lib/version.js +1 -1
  322. package/es/lib/voiceSearchHelper/index.js +8 -35
  323. package/es/middlewares/createInsightsMiddleware.js +15 -41
  324. package/es/middlewares/createMetadataMiddleware.js +3 -9
  325. package/es/middlewares/createRouterMiddleware.js +8 -13
  326. package/es/types/index.js +9 -5
  327. package/es/widgets/analytics/analytics.js +12 -45
  328. package/es/widgets/answers/answers.js +19 -28
  329. package/es/widgets/breadcrumb/breadcrumb.js +18 -27
  330. package/es/widgets/clear-refinements/clear-refinements.js +15 -24
  331. package/es/widgets/configure/configure.js +3 -6
  332. package/es/widgets/configure-related-items/configure-related-items.js +2 -7
  333. package/es/widgets/current-refinements/current-refinements.js +12 -21
  334. package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
  335. package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
  336. package/es/widgets/geo-search/createHTMLMarker.js +30 -59
  337. package/es/widgets/geo-search/defaultTemplates.js +2 -2
  338. package/es/widgets/geo-search/geo-search.js +27 -49
  339. package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
  340. package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
  341. package/es/widgets/hits/hits.js +16 -25
  342. package/es/widgets/hits-per-page/hits-per-page.js +13 -22
  343. package/es/widgets/index/index.js +49 -91
  344. package/es/widgets/index.d.ts +2 -1
  345. package/es/widgets/index.js +4 -3
  346. package/es/widgets/infinite-hits/infinite-hits.js +23 -32
  347. package/es/widgets/menu/defaultTemplates.js +4 -3
  348. package/es/widgets/menu/menu.js +23 -32
  349. package/es/widgets/menu-select/defaultTemplates.js +1 -1
  350. package/es/widgets/menu-select/menu-select.js +18 -27
  351. package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
  352. package/es/widgets/numeric-menu/numeric-menu.js +17 -26
  353. package/es/widgets/pagination/pagination.js +32 -44
  354. package/es/widgets/panel/panel.js +20 -40
  355. package/es/widgets/places/places.js +16 -32
  356. package/es/widgets/powered-by/powered-by.js +10 -18
  357. package/es/widgets/query-rule-context/query-rule-context.js +2 -9
  358. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
  359. package/es/widgets/range-input/range-input.js +23 -40
  360. package/es/widgets/range-slider/range-slider.js +28 -44
  361. package/es/widgets/rating-menu/defaultTemplates.js +9 -12
  362. package/es/widgets/rating-menu/rating-menu.js +17 -27
  363. package/es/widgets/refinement-list/defaultTemplates.js +6 -5
  364. package/es/widgets/refinement-list/refinement-list.js +39 -48
  365. package/es/widgets/relevant-sort/relevant-sort.js +10 -19
  366. package/es/widgets/search-box/defaultTemplates.js +1 -4
  367. package/es/widgets/search-box/search-box.js +31 -39
  368. package/es/widgets/sort-by/sort-by.js +11 -20
  369. package/es/widgets/stats/stats.js +26 -45
  370. package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
  371. package/es/widgets/voice-search/defaultTemplates.js +5 -13
  372. package/es/widgets/voice-search/voice-search.js +17 -26
  373. package/package.json +20 -119
  374. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
  375. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
  376. package/CHANGELOG.md +0 -3693
@@ -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
8
  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; }
11
-
12
9
  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; }
13
-
14
10
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
-
16
11
  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."); }
17
-
18
12
  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); }
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 _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; }
23
-
14
+ 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; }
24
15
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
-
26
- 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; }
27
-
28
- 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; }
29
-
16
+ 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; }
17
+ 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; }
30
18
  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; }
31
-
32
19
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
33
20
  name: 'menu',
34
21
  connector: true
35
22
  });
36
23
  var DEFAULT_SORT = ['isRefined', 'name:asc'];
37
-
38
24
  /**
39
25
  * **Menu** connector provides the logic to build a widget that will give the user the ability to choose a single value for a specific facet. The typical usage of menu is for navigation in categories.
40
26
  *
@@ -49,55 +35,45 @@ var connectMenu = function connectMenu(renderFn) {
49
35
  (0, _index.checkRendering)(renderFn, withUsage());
50
36
  return function (widgetParams) {
51
37
  var _ref = widgetParams || {},
52
- attribute = _ref.attribute,
53
- _ref$limit = _ref.limit,
54
- limit = _ref$limit === void 0 ? 10 : _ref$limit,
55
- _ref$showMore = _ref.showMore,
56
- showMore = _ref$showMore === void 0 ? false : _ref$showMore,
57
- _ref$showMoreLimit = _ref.showMoreLimit,
58
- showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
59
- _ref$sortBy = _ref.sortBy,
60
- sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
61
- _ref$transformItems = _ref.transformItems,
62
- transformItems = _ref$transformItems === void 0 ? function (items) {
63
- return items;
64
- } : _ref$transformItems;
65
-
38
+ attribute = _ref.attribute,
39
+ _ref$limit = _ref.limit,
40
+ limit = _ref$limit === void 0 ? 10 : _ref$limit,
41
+ _ref$showMore = _ref.showMore,
42
+ showMore = _ref$showMore === void 0 ? false : _ref$showMore,
43
+ _ref$showMoreLimit = _ref.showMoreLimit,
44
+ showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
45
+ _ref$sortBy = _ref.sortBy,
46
+ sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
47
+ _ref$transformItems = _ref.transformItems,
48
+ transformItems = _ref$transformItems === void 0 ? function (items) {
49
+ return items;
50
+ } : _ref$transformItems;
66
51
  if (!attribute) {
67
52
  throw new Error(withUsage('The `attribute` option is required.'));
68
53
  }
69
-
70
54
  if (showMore === true && showMoreLimit <= limit) {
71
55
  throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
72
56
  }
73
-
74
57
  var sendEvent;
75
-
76
58
  var _createURL;
59
+ var _refine;
77
60
 
78
- var _refine; // Provide the same function to the `renderFn` so that way the user
61
+ // Provide the same function to the `renderFn` so that way the user
79
62
  // has to only bind it once when `isFirstRendering` for instance
80
-
81
-
82
63
  var isShowingMore = false;
83
-
84
64
  var toggleShowMore = function toggleShowMore() {};
85
-
86
65
  function createToggleShowMore(renderOptions, widget) {
87
66
  return function () {
88
67
  isShowingMore = !isShowingMore;
89
68
  widget.render(renderOptions);
90
69
  };
91
70
  }
92
-
93
71
  function cachedToggleShowMore() {
94
72
  toggleShowMore();
95
73
  }
96
-
97
74
  function getLimit() {
98
75
  return isShowingMore ? showMoreLimit : limit;
99
76
  }
100
-
101
77
  return {
102
78
  $$type: 'ais.menu',
103
79
  init: function init(initOptions) {
@@ -124,12 +100,11 @@ var connectMenu = function connectMenu(renderFn) {
124
100
  },
125
101
  getWidgetRenderState: function getWidgetRenderState(renderOptions) {
126
102
  var results = renderOptions.results,
127
- createURL = renderOptions.createURL,
128
- instantSearchInstance = renderOptions.instantSearchInstance,
129
- helper = renderOptions.helper;
103
+ createURL = renderOptions.createURL,
104
+ instantSearchInstance = renderOptions.instantSearchInstance,
105
+ helper = renderOptions.helper;
130
106
  var items = [];
131
107
  var canToggleShowMore = false;
132
-
133
108
  if (!sendEvent) {
134
109
  sendEvent = (0, _index.createSendEventForFacet)({
135
110
  instantSearchInstance: instantSearchInstance,
@@ -138,28 +113,23 @@ var connectMenu = function connectMenu(renderFn) {
138
113
  widgetType: this.$$type
139
114
  });
140
115
  }
141
-
142
116
  if (!_createURL) {
143
117
  _createURL = function _createURL(facetValue) {
144
118
  return createURL(helper.state.resetPage().toggleFacetRefinement(attribute, facetValue));
145
119
  };
146
120
  }
147
-
148
121
  if (!_refine) {
149
122
  _refine = function _refine(facetValue) {
150
123
  var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
151
- _helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
152
- refinedItem = _helper$getHierarchic2[0];
153
-
124
+ _helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
125
+ refinedItem = _helper$getHierarchic2[0];
154
126
  sendEvent('click', facetValue ? facetValue : refinedItem);
155
127
  helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
156
128
  };
157
129
  }
158
-
159
130
  if (renderOptions.results) {
160
131
  toggleShowMore = createToggleShowMore(renderOptions, this);
161
132
  }
162
-
163
133
  if (results) {
164
134
  var facetValues = results.getFacetValues(attribute, {
165
135
  sortBy: sortBy,
@@ -169,10 +139,9 @@ var connectMenu = function connectMenu(renderFn) {
169
139
  canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
170
140
  items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
171
141
  var label = _ref3.name,
172
- value = _ref3.escapedValue,
173
- path = _ref3.path,
174
- item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
175
-
142
+ value = _ref3.escapedValue,
143
+ path = _ref3.path,
144
+ item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
176
145
  return _objectSpread(_objectSpread({}, item), {}, {
177
146
  label: label,
178
147
  value: value
@@ -181,7 +150,6 @@ var connectMenu = function connectMenu(renderFn) {
181
150
  results: results
182
151
  });
183
152
  }
184
-
185
153
  return {
186
154
  items: items,
187
155
  createURL: _createURL,
@@ -196,15 +164,12 @@ var connectMenu = function connectMenu(renderFn) {
196
164
  },
197
165
  getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
198
166
  var searchParameters = _ref4.searchParameters;
199
-
200
167
  var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
201
- _searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
202
- value = _searchParameters$get2[0];
203
-
168
+ _searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
169
+ value = _searchParameters$get2[0];
204
170
  if (!value) {
205
171
  return uiState;
206
172
  }
207
-
208
173
  return _objectSpread(_objectSpread({}, uiState), {}, {
209
174
  menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))
210
175
  });
@@ -219,18 +184,15 @@ var connectMenu = function connectMenu(renderFn) {
219
184
  var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
220
185
  var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
221
186
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
222
-
223
187
  if (!value) {
224
188
  return withMaxValuesPerFacet.setQueryParameters({
225
189
  hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))
226
190
  });
227
191
  }
228
-
229
192
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
230
193
  }
231
194
  };
232
195
  };
233
196
  };
234
-
235
197
  var _default = connectMenu;
236
198
  exports.default = _default;
@@ -4,35 +4,22 @@ 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 _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
-
8
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
12
9
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
-
14
10
  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."); }
15
-
16
11
  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); }
17
-
18
12
  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; }
19
-
20
- 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; }
21
-
13
+ 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; }
22
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
-
24
- 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; }
25
-
26
- 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; }
27
-
15
+ 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; }
16
+ 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; }
28
17
  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; }
29
-
30
18
  var withUsage = (0, _index.createDocumentationMessageGenerator)({
31
19
  name: 'numeric-menu',
32
20
  connector: true
33
21
  });
34
22
  var $$type = 'ais.numericMenu';
35
-
36
23
  var createSendEvent = function createSendEvent(_ref) {
37
24
  var instantSearchInstance = _ref.instantSearchInstance;
38
25
  return function () {
@@ -42,34 +29,30 @@ var createSendEvent = function createSendEvent(_ref) {
42
29
  }
43
30
  };
44
31
  };
45
-
46
32
  var connectNumericMenu = function connectNumericMenu(renderFn) {
47
33
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
48
34
  (0, _index.checkRendering)(renderFn, withUsage());
49
35
  return function (widgetParams) {
50
36
  var _ref2 = widgetParams || {},
51
- _ref2$attribute = _ref2.attribute,
52
- attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
53
- _ref2$items = _ref2.items,
54
- items = _ref2$items === void 0 ? [] : _ref2$items,
55
- _ref2$transformItems = _ref2.transformItems,
56
- transformItems = _ref2$transformItems === void 0 ? function (item) {
57
- return item;
58
- } : _ref2$transformItems;
59
-
37
+ _ref2$attribute = _ref2.attribute,
38
+ attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
39
+ _ref2$items = _ref2.items,
40
+ items = _ref2$items === void 0 ? [] : _ref2$items,
41
+ _ref2$transformItems = _ref2.transformItems,
42
+ transformItems = _ref2$transformItems === void 0 ? function (item) {
43
+ return item;
44
+ } : _ref2$transformItems;
60
45
  if (attribute === '') {
61
46
  throw new Error(withUsage('The `attribute` option is required.'));
62
47
  }
63
-
64
48
  if (!items || items.length === 0) {
65
49
  throw new Error(withUsage('The `items` option expects an array of objects.'));
66
50
  }
67
-
68
51
  var prepareItems = function prepareItems(state) {
69
52
  return items.map(function (_ref3) {
70
53
  var start = _ref3.start,
71
- end = _ref3.end,
72
- label = _ref3.label;
54
+ end = _ref3.end,
55
+ label = _ref3.label;
73
56
  return {
74
57
  label: label,
75
58
  value: encodeURI(JSON.stringify({
@@ -84,7 +67,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
84
67
  };
85
68
  });
86
69
  };
87
-
88
70
  var connectorState = {};
89
71
  return {
90
72
  $$type: $$type,
@@ -109,20 +91,16 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
109
91
  var searchParameters = _ref5.searchParameters;
110
92
  var values = searchParameters.getNumericRefinements(attribute);
111
93
  var equal = values['='] && values['='][0];
112
-
113
94
  if (equal || equal === 0) {
114
95
  return _objectSpread(_objectSpread({}, uiState), {}, {
115
96
  numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(values['='])))
116
97
  });
117
98
  }
118
-
119
99
  var min = values['>='] && values['>='][0] || '';
120
100
  var max = values['<='] && values['<='][0] || '';
121
-
122
101
  if (min === '' && max === '') {
123
102
  return uiState;
124
103
  }
125
-
126
104
  return _objectSpread(_objectSpread({}, uiState), {}, {
127
105
  numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
128
106
  });
@@ -131,24 +109,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
131
109
  var uiState = _ref6.uiState;
132
110
  var value = uiState.numericMenu && uiState.numericMenu[attribute];
133
111
  var withoutRefinements = searchParameters.clearRefinements(attribute);
134
-
135
112
  if (!value) {
136
113
  return withoutRefinements.setQueryParameters({
137
114
  numericRefinements: _objectSpread(_objectSpread({}, withoutRefinements.numericRefinements), {}, _defineProperty({}, attribute, {}))
138
115
  });
139
116
  }
140
-
141
117
  var isExact = value.indexOf(':') === -1;
142
-
143
118
  if (isExact) {
144
119
  return withoutRefinements.addNumericRefinement(attribute, '=', Number(value));
145
120
  }
146
-
147
121
  var _value$split$map = value.split(':').map(parseFloat),
148
- _value$split$map2 = _slicedToArray(_value$split$map, 2),
149
- min = _value$split$map2[0],
150
- max = _value$split$map2[1];
151
-
122
+ _value$split$map2 = _slicedToArray(_value$split$map, 2),
123
+ min = _value$split$map2[0],
124
+ max = _value$split$map2[1];
152
125
  var withMinRefinement = (0, _index.isFiniteNumber)(min) ? withoutRefinements.addNumericRefinement(attribute, '>=', min) : withoutRefinements;
153
126
  var withMaxRefinement = (0, _index.isFiniteNumber)(max) ? withMinRefinement.addNumericRefinement(attribute, '<=', max) : withMinRefinement;
154
127
  return withMaxRefinement;
@@ -160,11 +133,10 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
160
133
  },
161
134
  getWidgetRenderState: function getWidgetRenderState(_ref7) {
162
135
  var results = _ref7.results,
163
- state = _ref7.state,
164
- instantSearchInstance = _ref7.instantSearchInstance,
165
- helper = _ref7.helper,
166
- createURL = _ref7.createURL;
167
-
136
+ state = _ref7.state,
137
+ instantSearchInstance = _ref7.instantSearchInstance,
138
+ helper = _ref7.helper,
139
+ createURL = _ref7.createURL;
168
140
  if (!connectorState.refine) {
169
141
  connectorState.refine = function (facetValue) {
170
142
  var refinedState = getRefinedState(helper.state, attribute, facetValue);
@@ -172,7 +144,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
172
144
  helper.setState(refinedState).search();
173
145
  };
174
146
  }
175
-
176
147
  if (!connectorState.createURL) {
177
148
  connectorState.createURL = function (newState) {
178
149
  return function (facetValue) {
@@ -180,24 +151,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
180
151
  };
181
152
  };
182
153
  }
183
-
184
154
  if (!connectorState.sendEvent) {
185
155
  connectorState.sendEvent = createSendEvent({
186
156
  instantSearchInstance: instantSearchInstance
187
157
  });
188
158
  }
189
-
190
159
  var hasNoResults = results ? results.nbHits === 0 : true;
191
160
  var preparedItems = prepareItems(state);
192
161
  var allIsSelected = true;
193
-
194
162
  var _iterator = _createForOfIteratorHelper(preparedItems),
195
- _step;
196
-
163
+ _step;
197
164
  try {
198
165
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
199
166
  var item = _step.value;
200
-
201
167
  if (item.isRefined && decodeURI(item.value) !== '{}') {
202
168
  allIsSelected = false;
203
169
  break;
@@ -208,7 +174,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
208
174
  } finally {
209
175
  _iterator.f();
210
176
  }
211
-
212
177
  return {
213
178
  createURL: connectorState.createURL(state),
214
179
  items: transformItems(preparedItems, {
@@ -224,11 +189,9 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
224
189
  };
225
190
  };
226
191
  };
227
-
228
192
  function isRefined(state, attribute, option) {
229
193
  // @TODO: same as another spot, why is this mixing arrays & elements?
230
194
  var currentRefinements = state.getNumericRefinements(attribute);
231
-
232
195
  if (option.start !== undefined && option.end !== undefined) {
233
196
  if (option.start === option.end) {
234
197
  return hasNumericRefinement(currentRefinements, '=', option.start);
@@ -236,80 +199,63 @@ function isRefined(state, attribute, option) {
236
199
  return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);
237
200
  }
238
201
  }
239
-
240
202
  if (option.start !== undefined) {
241
203
  return hasNumericRefinement(currentRefinements, '>=', option.start);
242
204
  }
243
-
244
205
  if (option.end !== undefined) {
245
206
  return hasNumericRefinement(currentRefinements, '<=', option.end);
246
207
  }
247
-
248
208
  if (option.start === undefined && option.end === undefined) {
249
209
  return Object.keys(currentRefinements).every(function (operator) {
250
210
  return (currentRefinements[operator] || []).length === 0;
251
211
  });
252
212
  }
253
-
254
213
  return false;
255
214
  }
256
-
257
215
  function getRefinedState(state, attribute, facetValue) {
258
216
  var resolvedState = state;
259
- var refinedOption = JSON.parse(decodeURI(facetValue)); // @TODO: why is array / element mixed here & hasRefinements; seems wrong?
217
+ var refinedOption = JSON.parse(decodeURI(facetValue));
260
218
 
219
+ // @TODO: why is array / element mixed here & hasRefinements; seems wrong?
261
220
  var currentRefinements = resolvedState.getNumericRefinements(attribute);
262
-
263
221
  if (refinedOption.start === undefined && refinedOption.end === undefined) {
264
222
  return resolvedState.removeNumericRefinement(attribute);
265
223
  }
266
-
267
224
  if (!isRefined(resolvedState, attribute, refinedOption)) {
268
225
  resolvedState = resolvedState.removeNumericRefinement(attribute);
269
226
  }
270
-
271
227
  if (refinedOption.start !== undefined && refinedOption.end !== undefined) {
272
228
  if (refinedOption.start > refinedOption.end) {
273
229
  throw new Error('option.start should be > to option.end');
274
230
  }
275
-
276
231
  if (refinedOption.start === refinedOption.end) {
277
232
  if (hasNumericRefinement(currentRefinements, '=', refinedOption.start)) {
278
233
  resolvedState = resolvedState.removeNumericRefinement(attribute, '=', refinedOption.start);
279
234
  } else {
280
235
  resolvedState = resolvedState.addNumericRefinement(attribute, '=', refinedOption.start);
281
236
  }
282
-
283
237
  return resolvedState;
284
238
  }
285
239
  }
286
-
287
240
  if (refinedOption.start !== undefined) {
288
241
  if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {
289
242
  resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);
290
243
  }
291
-
292
244
  resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
293
245
  }
294
-
295
246
  if (refinedOption.end !== undefined) {
296
247
  if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {
297
248
  resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);
298
249
  }
299
-
300
250
  resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
301
251
  }
302
-
303
252
  if (typeof resolvedState.page === 'number') {
304
253
  resolvedState.page = 0;
305
254
  }
306
-
307
255
  return resolvedState;
308
256
  }
309
-
310
257
  function hasNumericRefinement(currentRefinements, operator, value) {
311
258
  return currentRefinements[operator] !== undefined && currentRefinements[operator].includes(value);
312
259
  }
313
-
314
260
  var _default = connectNumericMenu;
315
261
  exports.default = _default;
@@ -4,47 +4,34 @@ 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
-
12
9
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
13
-
14
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
15
-
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
16
11
  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; }
17
-
18
12
  var Paginator = /*#__PURE__*/function () {
19
13
  function Paginator(params) {
20
14
  _classCallCheck(this, Paginator);
21
-
22
15
  _defineProperty(this, "currentPage", void 0);
23
-
24
16
  _defineProperty(this, "total", void 0);
25
-
26
17
  _defineProperty(this, "padding", void 0);
27
-
28
18
  this.currentPage = params.currentPage;
29
19
  this.total = params.total;
30
20
  this.padding = params.padding;
31
21
  }
32
-
33
22
  _createClass(Paginator, [{
34
23
  key: "pages",
35
24
  value: function pages() {
36
25
  var total = this.total,
37
- currentPage = this.currentPage,
38
- padding = this.padding;
26
+ currentPage = this.currentPage,
27
+ padding = this.padding;
39
28
  if (total === 0) return [0];
40
29
  var totalDisplayedPages = this.nbPagesDisplayed(padding, total);
41
-
42
30
  if (totalDisplayedPages === total) {
43
31
  return (0, _index.range)({
44
32
  end: total
45
33
  });
46
34
  }
47
-
48
35
  var paddingLeft = this.calculatePaddingLeft(currentPage, padding, total, totalDisplayedPages);
49
36
  var paddingRight = totalDisplayedPages - paddingLeft;
50
37
  var first = currentPage - paddingLeft;
@@ -65,11 +52,9 @@ var Paginator = /*#__PURE__*/function () {
65
52
  if (current <= padding) {
66
53
  return current;
67
54
  }
68
-
69
55
  if (current >= total - padding) {
70
56
  return totalDisplayedPages - (total - current);
71
57
  }
72
-
73
58
  return padding;
74
59
  }
75
60
  }, {
@@ -83,9 +68,7 @@ var Paginator = /*#__PURE__*/function () {
83
68
  return this.currentPage === 0;
84
69
  }
85
70
  }]);
86
-
87
71
  return Paginator;
88
72
  }();
89
-
90
73
  var _default = Paginator;
91
74
  exports.default = _default;