instantsearch.js 4.49.1 → 4.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/README.md +3 -3
  2. package/cjs/components/Answers/Answers.js +6 -16
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
  6. package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
  8. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
  9. package/cjs/components/Highlight/Highlight.js +3 -11
  10. package/cjs/components/Hits/Hits.js +8 -20
  11. package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
  12. package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
  13. package/cjs/components/MenuSelect/MenuSelect.js +9 -19
  14. package/cjs/components/Pagination/Pagination.js +10 -17
  15. package/cjs/components/Panel/Panel.js +7 -26
  16. package/cjs/components/PoweredBy/PoweredBy.js +4 -5
  17. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
  18. package/cjs/components/RangeInput/RangeInput.js +16 -48
  19. package/cjs/components/RefinementList/RefinementList.js +19 -73
  20. package/cjs/components/RefinementList/RefinementListItem.js +8 -14
  21. package/cjs/components/RelevantSort/RelevantSort.js +4 -8
  22. package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
  23. package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
  24. package/cjs/components/SearchBox/SearchBox.js +25 -69
  25. package/cjs/components/Selector/Selector.js +3 -6
  26. package/cjs/components/Slider/Pit.js +3 -10
  27. package/cjs/components/Slider/Rheostat.js +63 -131
  28. package/cjs/components/Slider/Slider.js +28 -65
  29. package/cjs/components/Snippet/Snippet.js +3 -11
  30. package/cjs/components/Stats/Stats.js +7 -20
  31. package/cjs/components/Template/Template.js +8 -37
  32. package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
  33. package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
  34. package/cjs/connectors/answers/connectAnswers.js +21 -36
  35. package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
  36. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
  37. package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
  38. package/cjs/connectors/configure/connectConfigure.js +6 -20
  39. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
  40. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
  41. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
  42. package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
  43. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
  44. package/cjs/connectors/hits/connectHits.js +10 -26
  45. package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
  46. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
  47. package/cjs/connectors/index.js +62 -96
  48. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
  49. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
  50. package/cjs/connectors/menu/connectMenu.js +28 -66
  51. package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
  52. package/cjs/connectors/pagination/Paginator.js +3 -20
  53. package/cjs/connectors/pagination/connectPagination.js +8 -25
  54. package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
  55. package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
  56. package/cjs/connectors/range/connectRange.js +41 -101
  57. package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
  58. package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
  59. package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
  60. package/cjs/connectors/search-box/connectSearchBox.js +7 -23
  61. package/cjs/connectors/sort-by/connectSortBy.js +11 -21
  62. package/cjs/connectors/stats/connectStats.js +4 -11
  63. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
  64. package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
  65. package/cjs/helpers/components/Highlight.js +4 -12
  66. package/cjs/helpers/components/ReverseHighlight.js +7 -19
  67. package/cjs/helpers/components/ReverseSnippet.js +7 -19
  68. package/cjs/helpers/components/Snippet.js +4 -12
  69. package/cjs/helpers/components/index.js +0 -8
  70. package/cjs/helpers/get-insights-anonymous-user-token.js +4 -15
  71. package/cjs/helpers/highlight.js +10 -16
  72. package/cjs/helpers/index.js +17 -31
  73. package/cjs/helpers/insights.js +5 -17
  74. package/cjs/helpers/reverseHighlight.js +10 -16
  75. package/cjs/helpers/reverseSnippet.js +10 -16
  76. package/cjs/helpers/snippet.js +10 -16
  77. package/cjs/index.js +3 -18
  78. package/cjs/lib/InstantSearch.js +79 -180
  79. package/cjs/lib/createHelpers.js +4 -11
  80. package/cjs/lib/formatNumber.js +0 -1
  81. package/cjs/lib/infiniteHitsCache/index.js +0 -2
  82. package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
  83. package/cjs/lib/insights/client.js +8 -34
  84. package/cjs/lib/insights/index.js +7 -13
  85. package/cjs/lib/insights/listener.js +4 -20
  86. package/cjs/lib/routers/history.js +63 -102
  87. package/cjs/lib/routers/index.js +0 -2
  88. package/cjs/lib/stateMappings/index.js +0 -3
  89. package/cjs/lib/stateMappings/simple.js +6 -13
  90. package/cjs/lib/stateMappings/singleIndex.js +1 -7
  91. package/cjs/lib/suit.js +2 -5
  92. package/cjs/lib/templating/index.js +0 -4
  93. package/cjs/lib/templating/prepareTemplateProps.js +8 -19
  94. package/cjs/lib/templating/renderTemplate.js +9 -24
  95. package/cjs/lib/utils/capitalize.js +0 -1
  96. package/cjs/lib/utils/checkIndexUiState.js +15 -43
  97. package/cjs/lib/utils/checkRendering.js +0 -2
  98. package/cjs/lib/utils/clearRefinements.js +2 -9
  99. package/cjs/lib/utils/concatHighlightedParts.js +1 -3
  100. package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
  101. package/cjs/lib/utils/createSendEventForFacet.js +7 -14
  102. package/cjs/lib/utils/createSendEventForHits.js +9 -33
  103. package/cjs/lib/utils/debounce.js +0 -3
  104. package/cjs/lib/utils/defer.js +0 -11
  105. package/cjs/lib/utils/detect-insights-client.js +0 -2
  106. package/cjs/lib/utils/documentation.js +2 -5
  107. package/cjs/lib/utils/escape-highlight.js +5 -22
  108. package/cjs/lib/utils/escape-html.js +9 -7
  109. package/cjs/lib/utils/escapeFacetValue.js +1 -5
  110. package/cjs/lib/utils/find.js +2 -5
  111. package/cjs/lib/utils/findIndex.js +0 -3
  112. package/cjs/lib/utils/geo-search.js +14 -34
  113. package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
  114. package/cjs/lib/utils/getContainerNode.js +0 -6
  115. package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
  116. package/cjs/lib/utils/getHighlightedParts.js +1 -4
  117. package/cjs/lib/utils/getObjectType.js +0 -1
  118. package/cjs/lib/utils/getPropertyByPath.js +0 -1
  119. package/cjs/lib/utils/getRefinements.js +13 -26
  120. package/cjs/lib/utils/getWidgetAttribute.js +0 -6
  121. package/cjs/lib/utils/hits-absolute-position.js +2 -6
  122. package/cjs/lib/utils/hits-query-id.js +2 -7
  123. package/cjs/lib/utils/index.js +0 -92
  124. package/cjs/lib/utils/isDomElement.js +0 -1
  125. package/cjs/lib/utils/isEqual.js +0 -8
  126. package/cjs/lib/utils/isFacetRefined.js +0 -1
  127. package/cjs/lib/utils/isFiniteNumber.js +0 -1
  128. package/cjs/lib/utils/isIndexWidget.js +0 -1
  129. package/cjs/lib/utils/isPlainObject.js +3 -11
  130. package/cjs/lib/utils/isSpecialClick.js +0 -1
  131. package/cjs/lib/utils/logger.js +3 -13
  132. package/cjs/lib/utils/mergeSearchParameters.js +16 -40
  133. package/cjs/lib/utils/noop.js +0 -1
  134. package/cjs/lib/utils/range.js +8 -14
  135. package/cjs/lib/utils/render-args.js +0 -2
  136. package/cjs/lib/utils/resolveSearchParameters.js +0 -3
  137. package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
  138. package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
  139. package/cjs/lib/utils/serializer.js +1 -3
  140. package/cjs/lib/utils/setIndexHelperState.js +0 -5
  141. package/cjs/lib/utils/toArray.js +0 -1
  142. package/cjs/lib/utils/typedObject.js +0 -1
  143. package/cjs/lib/utils/uniq.js +0 -1
  144. package/cjs/lib/version.js +1 -1
  145. package/cjs/lib/voiceSearchHelper/index.js +8 -36
  146. package/cjs/middlewares/createInsightsMiddleware.js +15 -44
  147. package/cjs/middlewares/createMetadataMiddleware.js +4 -12
  148. package/cjs/middlewares/createRouterMiddleware.js +8 -19
  149. package/cjs/middlewares/index.js +0 -6
  150. package/cjs/types/algoliasearch.js +0 -2
  151. package/cjs/types/index.js +0 -28
  152. package/cjs/widgets/analytics/analytics.js +12 -47
  153. package/cjs/widgets/answers/answers.js +19 -39
  154. package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
  155. package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
  156. package/cjs/widgets/configure/configure.js +2 -10
  157. package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
  158. package/cjs/widgets/current-refinements/current-refinements.js +12 -30
  159. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
  160. package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
  161. package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
  162. package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
  163. package/cjs/widgets/geo-search/geo-search.js +27 -59
  164. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
  165. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
  166. package/cjs/widgets/hits/hits.js +16 -37
  167. package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
  168. package/cjs/widgets/index/index.js +49 -95
  169. package/cjs/widgets/index.js +12 -50
  170. package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
  171. package/cjs/widgets/menu/defaultTemplates.js +3 -6
  172. package/cjs/widgets/menu/menu.js +23 -43
  173. package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
  174. package/cjs/widgets/menu-select/menu-select.js +18 -38
  175. package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
  176. package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
  177. package/cjs/widgets/pagination/pagination.js +32 -53
  178. package/cjs/widgets/panel/panel.js +20 -48
  179. package/cjs/widgets/places/places.js +16 -33
  180. package/cjs/widgets/powered-by/powered-by.js +10 -27
  181. package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
  182. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
  183. package/cjs/widgets/range-input/range-input.js +23 -50
  184. package/cjs/widgets/range-slider/range-slider.js +28 -53
  185. package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
  186. package/cjs/widgets/rating-menu/rating-menu.js +17 -38
  187. package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
  188. package/cjs/widgets/refinement-list/refinement-list.js +39 -60
  189. package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
  190. package/cjs/widgets/search-box/defaultTemplates.js +0 -5
  191. package/cjs/widgets/search-box/search-box.js +31 -49
  192. package/cjs/widgets/sort-by/sort-by.js +11 -29
  193. package/cjs/widgets/stats/defaultTemplates.js +0 -1
  194. package/cjs/widgets/stats/stats.js +27 -57
  195. package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
  196. package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
  197. package/cjs/widgets/voice-search/voice-search.js +17 -36
  198. package/dist/instantsearch.development.d.ts +8 -6
  199. package/dist/instantsearch.development.js +1722 -3088
  200. package/dist/instantsearch.development.js.map +1 -1
  201. package/dist/instantsearch.production.d.ts +8 -6
  202. package/dist/instantsearch.production.min.d.ts +8 -6
  203. package/dist/instantsearch.production.min.js +2 -2
  204. package/dist/instantsearch.production.min.js.map +1 -1
  205. package/es/components/Answers/Answers.js +6 -11
  206. package/es/components/Breadcrumb/Breadcrumb.js +5 -7
  207. package/es/components/ClearRefinements/ClearRefinements.js +4 -6
  208. package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
  209. package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
  210. package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
  211. package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
  212. package/es/components/Highlight/Highlight.js +3 -7
  213. package/es/components/Hits/Hits.js +8 -15
  214. package/es/components/InfiniteHits/InfiniteHits.js +13 -20
  215. package/es/components/MenuSelect/MenuSelect.js +9 -13
  216. package/es/components/Pagination/Pagination.js +12 -15
  217. package/es/components/Panel/Panel.js +7 -20
  218. package/es/components/PoweredBy/PoweredBy.js +6 -5
  219. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
  220. package/es/components/RangeInput/RangeInput.js +16 -43
  221. package/es/components/RefinementList/RefinementList.js +19 -64
  222. package/es/components/RefinementList/RefinementListItem.js +8 -10
  223. package/es/components/RelevantSort/RelevantSort.js +6 -6
  224. package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
  225. package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
  226. package/es/components/SearchBox/SearchBox.js +25 -63
  227. package/es/components/Selector/Selector.js +5 -5
  228. package/es/components/Slider/Pit.js +3 -7
  229. package/es/components/Slider/Rheostat.js +64 -129
  230. package/es/components/Slider/Slider.js +28 -58
  231. package/es/components/Snippet/Snippet.js +3 -7
  232. package/es/components/Stats/Stats.js +7 -15
  233. package/es/components/Template/Template.js +8 -32
  234. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
  235. package/es/components/VoiceSearch/VoiceSearch.js +10 -13
  236. package/es/connectors/answers/connectAnswers.js +21 -35
  237. package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
  238. package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
  239. package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
  240. package/es/connectors/configure/connectConfigure.js +7 -16
  241. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
  242. package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
  243. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
  244. package/es/connectors/geo-search/connectGeoSearch.js +17 -45
  245. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
  246. package/es/connectors/hits/connectHits.js +10 -24
  247. package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
  248. package/es/connectors/index.d.ts +2 -1
  249. package/es/connectors/index.js +6 -3
  250. package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
  251. package/es/connectors/menu/connectMenu.js +28 -64
  252. package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
  253. package/es/connectors/pagination/Paginator.js +3 -19
  254. package/es/connectors/pagination/connectPagination.js +8 -21
  255. package/es/connectors/powered-by/connectPoweredBy.js +4 -11
  256. package/es/connectors/query-rules/connectQueryRules.js +32 -54
  257. package/es/connectors/range/connectRange.js +41 -99
  258. package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
  259. package/es/connectors/refinement-list/connectRefinementList.js +37 -68
  260. package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
  261. package/es/connectors/search-box/connectSearchBox.js +7 -21
  262. package/es/connectors/sort-by/connectSortBy.js +11 -19
  263. package/es/connectors/stats/connectStats.js +4 -9
  264. package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
  265. package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
  266. package/es/helpers/components/Highlight.js +4 -8
  267. package/es/helpers/components/ReverseHighlight.js +7 -15
  268. package/es/helpers/components/ReverseSnippet.js +7 -15
  269. package/es/helpers/components/Snippet.js +4 -8
  270. package/es/helpers/get-insights-anonymous-user-token.js +2 -10
  271. package/es/helpers/highlight.js +9 -11
  272. package/es/helpers/insights.js +3 -10
  273. package/es/helpers/reverseHighlight.js +9 -11
  274. package/es/helpers/reverseSnippet.js +9 -11
  275. package/es/helpers/snippet.js +9 -11
  276. package/es/index.js +0 -2
  277. package/es/lib/InstantSearch.js +79 -170
  278. package/es/lib/createHelpers.js +4 -8
  279. package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
  280. package/es/lib/insights/client.js +8 -32
  281. package/es/lib/insights/listener.js +6 -18
  282. package/es/lib/routers/history.js +63 -99
  283. package/es/lib/stateMappings/simple.js +6 -12
  284. package/es/lib/stateMappings/singleIndex.js +1 -6
  285. package/es/lib/suit.js +2 -3
  286. package/es/lib/templating/prepareTemplateProps.js +8 -18
  287. package/es/lib/templating/renderTemplate.js +9 -20
  288. package/es/lib/utils/checkIndexUiState.js +18 -40
  289. package/es/lib/utils/clearRefinements.js +2 -8
  290. package/es/lib/utils/concatHighlightedParts.js +1 -1
  291. package/es/lib/utils/createConcurrentSafePromise.js +0 -2
  292. package/es/lib/utils/createSendEventForFacet.js +7 -12
  293. package/es/lib/utils/createSendEventForHits.js +8 -30
  294. package/es/lib/utils/debounce.js +0 -2
  295. package/es/lib/utils/defer.js +0 -10
  296. package/es/lib/utils/documentation.js +2 -3
  297. package/es/lib/utils/escape-highlight.js +3 -16
  298. package/es/lib/utils/escape-html.js +9 -5
  299. package/es/lib/utils/escapeFacetValue.js +0 -2
  300. package/es/lib/utils/find.js +2 -4
  301. package/es/lib/utils/findIndex.js +0 -2
  302. package/es/lib/utils/geo-search.js +14 -32
  303. package/es/lib/utils/getAppIdAndApiKey.js +2 -2
  304. package/es/lib/utils/getContainerNode.js +1 -5
  305. package/es/lib/utils/getHighlightFromSiblings.js +0 -3
  306. package/es/lib/utils/getHighlightedParts.js +1 -2
  307. package/es/lib/utils/getRefinements.js +13 -24
  308. package/es/lib/utils/getWidgetAttribute.js +0 -5
  309. package/es/lib/utils/hits-absolute-position.js +2 -5
  310. package/es/lib/utils/hits-query-id.js +2 -6
  311. package/es/lib/utils/isEqual.js +0 -7
  312. package/es/lib/utils/isPlainObject.js +3 -10
  313. package/es/lib/utils/logger.js +2 -12
  314. package/es/lib/utils/mergeSearchParameters.js +16 -37
  315. package/es/lib/utils/range.js +8 -13
  316. package/es/lib/utils/resolveSearchParameters.js +0 -2
  317. package/es/lib/utils/reverseHighlightedParts.js +2 -6
  318. package/es/lib/utils/safelyRunOnBrowser.js +7 -8
  319. package/es/lib/utils/setIndexHelperState.js +0 -2
  320. package/es/lib/version.d.ts +1 -1
  321. package/es/lib/version.js +1 -1
  322. package/es/lib/voiceSearchHelper/index.js +8 -35
  323. package/es/middlewares/createInsightsMiddleware.js +15 -41
  324. package/es/middlewares/createMetadataMiddleware.js +3 -9
  325. package/es/middlewares/createRouterMiddleware.js +8 -13
  326. package/es/types/index.js +9 -5
  327. package/es/widgets/analytics/analytics.js +12 -45
  328. package/es/widgets/answers/answers.js +19 -28
  329. package/es/widgets/breadcrumb/breadcrumb.js +18 -27
  330. package/es/widgets/clear-refinements/clear-refinements.js +15 -24
  331. package/es/widgets/configure/configure.js +3 -6
  332. package/es/widgets/configure-related-items/configure-related-items.js +2 -7
  333. package/es/widgets/current-refinements/current-refinements.js +12 -21
  334. package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
  335. package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
  336. package/es/widgets/geo-search/createHTMLMarker.js +30 -59
  337. package/es/widgets/geo-search/defaultTemplates.js +2 -2
  338. package/es/widgets/geo-search/geo-search.js +27 -49
  339. package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
  340. package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
  341. package/es/widgets/hits/hits.js +16 -25
  342. package/es/widgets/hits-per-page/hits-per-page.js +13 -22
  343. package/es/widgets/index/index.js +49 -91
  344. package/es/widgets/index.d.ts +2 -1
  345. package/es/widgets/index.js +4 -3
  346. package/es/widgets/infinite-hits/infinite-hits.js +23 -32
  347. package/es/widgets/menu/defaultTemplates.js +4 -3
  348. package/es/widgets/menu/menu.js +23 -32
  349. package/es/widgets/menu-select/defaultTemplates.js +1 -1
  350. package/es/widgets/menu-select/menu-select.js +18 -27
  351. package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
  352. package/es/widgets/numeric-menu/numeric-menu.js +17 -26
  353. package/es/widgets/pagination/pagination.js +32 -44
  354. package/es/widgets/panel/panel.js +20 -40
  355. package/es/widgets/places/places.js +16 -32
  356. package/es/widgets/powered-by/powered-by.js +10 -18
  357. package/es/widgets/query-rule-context/query-rule-context.js +2 -9
  358. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
  359. package/es/widgets/range-input/range-input.js +23 -40
  360. package/es/widgets/range-slider/range-slider.js +28 -44
  361. package/es/widgets/rating-menu/defaultTemplates.js +9 -12
  362. package/es/widgets/rating-menu/rating-menu.js +17 -27
  363. package/es/widgets/refinement-list/defaultTemplates.js +6 -5
  364. package/es/widgets/refinement-list/refinement-list.js +39 -48
  365. package/es/widgets/relevant-sort/relevant-sort.js +10 -19
  366. package/es/widgets/search-box/defaultTemplates.js +1 -4
  367. package/es/widgets/search-box/search-box.js +31 -39
  368. package/es/widgets/sort-by/sort-by.js +11 -20
  369. package/es/widgets/stats/stats.js +26 -45
  370. package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
  371. package/es/widgets/voice-search/defaultTemplates.js +5 -13
  372. package/es/widgets/voice-search/voice-search.js +17 -26
  373. package/package.json +20 -119
  374. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
  375. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
  376. package/CHANGELOG.md +0 -3693
@@ -1,43 +1,32 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
-
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
-
9
5
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
-
11
6
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
-
13
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
14
-
7
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
8
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
-
17
9
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
-
19
10
  import { checkRendering, createDocumentationMessageGenerator, warning, getRefinements, isEqual, noop } from "../../lib/utils/index.js";
20
11
  var withUsage = createDocumentationMessageGenerator({
21
12
  name: 'query-rules',
22
13
  connector: true
23
14
  });
24
-
25
15
  function hasStateRefinements(state) {
26
16
  return [state.disjunctiveFacetsRefinements, state.facetsRefinements, state.hierarchicalFacetsRefinements, state.numericRefinements].some(function (refinement) {
27
17
  return Boolean(refinement && Object.keys(refinement).length > 0);
28
18
  });
29
- } // A context rule must consist only of alphanumeric characters, hyphens, and underscores.
30
- // See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
31
-
19
+ }
32
20
 
21
+ // A context rule must consist only of alphanumeric characters, hyphens, and underscores.
22
+ // See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
33
23
  function escapeRuleContext(ruleName) {
34
24
  return ruleName.replace(/[^a-z0-9-_]+/gi, '_');
35
25
  }
36
-
37
26
  function getRuleContextsFromTrackedFilters(_ref) {
38
27
  var helper = _ref.helper,
39
- sharedHelperState = _ref.sharedHelperState,
40
- trackedFilters = _ref.trackedFilters;
28
+ sharedHelperState = _ref.sharedHelperState,
29
+ trackedFilters = _ref.trackedFilters;
41
30
  var ruleContexts = Object.keys(trackedFilters).reduce(function (facets, facetName) {
42
31
  var facetRefinements = getRefinements(helper.lastResults || {}, sharedHelperState, true).filter(function (refinement) {
43
32
  return refinement.attribute === facetName;
@@ -54,12 +43,11 @@ function getRuleContextsFromTrackedFilters(_ref) {
54
43
  }, []);
55
44
  return ruleContexts;
56
45
  }
57
-
58
46
  function applyRuleContexts(event) {
59
47
  var helper = this.helper,
60
- initialRuleContexts = this.initialRuleContexts,
61
- trackedFilters = this.trackedFilters,
62
- transformRuleContexts = this.transformRuleContexts;
48
+ initialRuleContexts = this.initialRuleContexts,
49
+ trackedFilters = this.trackedFilters,
50
+ transformRuleContexts = this.transformRuleContexts;
63
51
  var sharedHelperState = event.state;
64
52
  var previousRuleContexts = sharedHelperState.ruleContexts || [];
65
53
  var newRuleContexts = getRuleContextsFromTrackedFilters({
@@ -70,46 +58,44 @@ function applyRuleContexts(event) {
70
58
  var nextRuleContexts = [].concat(_toConsumableArray(initialRuleContexts), _toConsumableArray(newRuleContexts));
71
59
  process.env.NODE_ENV === 'development' ? warning(nextRuleContexts.length <= 10, "\nThe maximum number of `ruleContexts` is 10. They have been sliced to that limit.\nConsider using `transformRuleContexts` to minimize the number of rules sent to Algolia.\n") : void 0;
72
60
  var ruleContexts = transformRuleContexts(nextRuleContexts).slice(0, 10);
73
-
74
61
  if (!isEqual(previousRuleContexts, ruleContexts)) {
75
62
  helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, sharedHelperState), {}, {
76
63
  ruleContexts: ruleContexts
77
64
  }));
78
65
  }
79
66
  }
80
-
81
67
  var connectQueryRules = function connectQueryRules(_render) {
82
68
  var unmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
83
69
  checkRendering(_render, withUsage());
84
70
  return function (widgetParams) {
85
71
  var _ref2 = widgetParams || {},
86
- _ref2$trackedFilters = _ref2.trackedFilters,
87
- trackedFilters = _ref2$trackedFilters === void 0 ? {} : _ref2$trackedFilters,
88
- _ref2$transformRuleCo = _ref2.transformRuleContexts,
89
- transformRuleContexts = _ref2$transformRuleCo === void 0 ? function (rules) {
90
- return rules;
91
- } : _ref2$transformRuleCo,
92
- _ref2$transformItems = _ref2.transformItems,
93
- transformItems = _ref2$transformItems === void 0 ? function (items) {
94
- return items;
95
- } : _ref2$transformItems;
96
-
72
+ _ref2$trackedFilters = _ref2.trackedFilters,
73
+ trackedFilters = _ref2$trackedFilters === void 0 ? {} : _ref2$trackedFilters,
74
+ _ref2$transformRuleCo = _ref2.transformRuleContexts,
75
+ transformRuleContexts = _ref2$transformRuleCo === void 0 ? function (rules) {
76
+ return rules;
77
+ } : _ref2$transformRuleCo,
78
+ _ref2$transformItems = _ref2.transformItems,
79
+ transformItems = _ref2$transformItems === void 0 ? function (items) {
80
+ return items;
81
+ } : _ref2$transformItems;
97
82
  Object.keys(trackedFilters).forEach(function (facetName) {
98
83
  if (typeof trackedFilters[facetName] !== 'function') {
99
84
  throw new Error(withUsage("'The \"".concat(facetName, "\" filter value in the `trackedFilters` option expects a function.")));
100
85
  }
101
86
  });
102
- var hasTrackedFilters = Object.keys(trackedFilters).length > 0; // We store the initial rule contexts applied before creating the widget
103
- // so that we do not override them with the rules created from `trackedFilters`.
87
+ var hasTrackedFilters = Object.keys(trackedFilters).length > 0;
104
88
 
89
+ // We store the initial rule contexts applied before creating the widget
90
+ // so that we do not override them with the rules created from `trackedFilters`.
105
91
  var initialRuleContexts = [];
106
92
  var onHelperChange;
107
93
  return {
108
94
  $$type: 'ais.queryRules',
109
95
  init: function init(initOptions) {
110
96
  var helper = initOptions.helper,
111
- state = initOptions.state,
112
- instantSearchInstance = initOptions.instantSearchInstance;
97
+ state = initOptions.state,
98
+ instantSearchInstance = initOptions.instantSearchInstance;
113
99
  initialRuleContexts = state.ruleContexts || [];
114
100
  onHelperChange = applyRuleContexts.bind({
115
101
  helper: helper,
@@ -117,7 +103,6 @@ var connectQueryRules = function connectQueryRules(_render) {
117
103
  trackedFilters: trackedFilters,
118
104
  transformRuleContexts: transformRuleContexts
119
105
  });
120
-
121
106
  if (hasTrackedFilters) {
122
107
  // We need to apply the `ruleContexts` based on the `trackedFilters`
123
108
  // before the helper changes state in some cases:
@@ -127,31 +112,27 @@ var connectQueryRules = function connectQueryRules(_render) {
127
112
  onHelperChange({
128
113
  state: state
129
114
  });
130
- } // We track every change in the helper to override its state and add
131
- // any `ruleContexts` needed based on the `trackedFilters`.
132
-
115
+ }
133
116
 
117
+ // We track every change in the helper to override its state and add
118
+ // any `ruleContexts` needed based on the `trackedFilters`.
134
119
  helper.on('change', onHelperChange);
135
120
  }
136
-
137
121
  _render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
138
122
  instantSearchInstance: instantSearchInstance
139
123
  }), true);
140
124
  },
141
125
  render: function render(renderOptions) {
142
126
  var instantSearchInstance = renderOptions.instantSearchInstance;
143
-
144
127
  _render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {
145
128
  instantSearchInstance: instantSearchInstance
146
129
  }), false);
147
130
  },
148
131
  getWidgetRenderState: function getWidgetRenderState(_ref3) {
149
132
  var results = _ref3.results;
150
-
151
133
  var _ref4 = results || {},
152
- _ref4$userData = _ref4.userData,
153
- userData = _ref4$userData === void 0 ? [] : _ref4$userData;
154
-
134
+ _ref4$userData = _ref4.userData,
135
+ userData = _ref4$userData === void 0 ? [] : _ref4$userData;
155
136
  var items = transformItems(userData, {
156
137
  results: results
157
138
  });
@@ -167,18 +148,15 @@ var connectQueryRules = function connectQueryRules(_render) {
167
148
  },
168
149
  dispose: function dispose(_ref5) {
169
150
  var helper = _ref5.helper,
170
- state = _ref5.state;
151
+ state = _ref5.state;
171
152
  unmount();
172
-
173
153
  if (hasTrackedFilters) {
174
154
  helper.removeListener('change', onHelperChange);
175
155
  return state.setQueryParameter('ruleContexts', initialRuleContexts);
176
156
  }
177
-
178
157
  return state;
179
158
  }
180
159
  };
181
160
  };
182
161
  };
183
-
184
162
  export default connectQueryRules;
@@ -1,21 +1,12 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
-
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
-
9
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
-
11
6
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
-
13
7
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14
-
15
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16
-
8
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
17
9
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
-
19
10
  import { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, find, noop } from "../../lib/utils/index.js";
20
11
  var withUsage = createDocumentationMessageGenerator({
21
12
  name: 'range-input',
@@ -25,17 +16,17 @@ var withUsage = createDocumentationMessageGenerator({
25
16
  connector: true
26
17
  });
27
18
  var $$type = 'ais.range';
28
-
29
19
  function toPrecision(_ref) {
30
20
  var min = _ref.min,
31
- max = _ref.max,
32
- precision = _ref.precision;
21
+ max = _ref.max,
22
+ precision = _ref.precision;
33
23
  var pow = Math.pow(10, precision);
34
24
  return {
35
25
  min: min ? Math.floor(min * pow) / pow : min,
36
26
  max: max ? Math.ceil(max * pow) / pow : max
37
27
  };
38
28
  }
29
+
39
30
  /**
40
31
  * **Range** connector provides the logic to create custom widget that will let
41
32
  * the user refine results using a numeric range.
@@ -43,32 +34,26 @@ function toPrecision(_ref) {
43
34
  * This connectors provides a `refine()` function that accepts bounds. It will also provide
44
35
  * information about the min and max bounds for the current result set.
45
36
  */
46
-
47
-
48
37
  var connectRange = function connectRange(renderFn) {
49
38
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
50
39
  checkRendering(renderFn, withUsage());
51
40
  return function (widgetParams) {
52
41
  var _ref2 = widgetParams || {},
53
- _ref2$attribute = _ref2.attribute,
54
- attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
55
- minBound = _ref2.min,
56
- maxBound = _ref2.max,
57
- _ref2$precision = _ref2.precision,
58
- precision = _ref2$precision === void 0 ? 0 : _ref2$precision;
59
-
42
+ _ref2$attribute = _ref2.attribute,
43
+ attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
44
+ minBound = _ref2.min,
45
+ maxBound = _ref2.max,
46
+ _ref2$precision = _ref2.precision,
47
+ precision = _ref2$precision === void 0 ? 0 : _ref2$precision;
60
48
  if (!attribute) {
61
49
  throw new Error(withUsage('The `attribute` option is required.'));
62
50
  }
63
-
64
51
  if (isFiniteNumber(minBound) && isFiniteNumber(maxBound) && minBound > maxBound) {
65
52
  throw new Error(withUsage("The `max` option can't be lower than `min`."));
66
53
  }
67
-
68
54
  var formatToNumber = function formatToNumber(v) {
69
55
  return Number(Number(v).toFixed(precision));
70
56
  };
71
-
72
57
  var rangeFormatter = {
73
58
  from: function from(v) {
74
59
  return v.toLocaleString();
@@ -76,34 +61,29 @@ var connectRange = function connectRange(renderFn) {
76
61
  to: function to(v) {
77
62
  return formatToNumber(v).toLocaleString();
78
63
  }
79
- }; // eslint-disable-next-line complexity
64
+ };
80
65
 
66
+ // eslint-disable-next-line complexity
81
67
  var getRefinedState = function getRefinedState(helper, currentRange, nextMin, nextMax) {
82
68
  var resolvedState = helper.state;
83
69
  var currentRangeMin = currentRange.min,
84
- currentRangeMax = currentRange.max;
85
-
70
+ currentRangeMax = currentRange.max;
86
71
  var _ref3 = resolvedState.getNumericRefinement(attribute, '>=') || [],
87
- _ref4 = _slicedToArray(_ref3, 1),
88
- min = _ref4[0];
89
-
72
+ _ref4 = _slicedToArray(_ref3, 1),
73
+ min = _ref4[0];
90
74
  var _ref5 = resolvedState.getNumericRefinement(attribute, '<=') || [],
91
- _ref6 = _slicedToArray(_ref5, 1),
92
- max = _ref6[0];
93
-
75
+ _ref6 = _slicedToArray(_ref5, 1),
76
+ max = _ref6[0];
94
77
  var isResetMin = nextMin === undefined || nextMin === '';
95
78
  var isResetMax = nextMax === undefined || nextMax === '';
96
-
97
79
  var _toPrecision = toPrecision({
98
- min: !isResetMin ? parseFloat(nextMin) : undefined,
99
- max: !isResetMax ? parseFloat(nextMax) : undefined,
100
- precision: precision
101
- }),
102
- nextMinAsNumber = _toPrecision.min,
103
- nextMaxAsNumber = _toPrecision.max;
104
-
80
+ min: !isResetMin ? parseFloat(nextMin) : undefined,
81
+ max: !isResetMax ? parseFloat(nextMax) : undefined,
82
+ precision: precision
83
+ }),
84
+ nextMinAsNumber = _toPrecision.min,
85
+ nextMaxAsNumber = _toPrecision.max;
105
86
  var newNextMin;
106
-
107
87
  if (!isFiniteNumber(minBound) && currentRangeMin === nextMinAsNumber) {
108
88
  newNextMin = undefined;
109
89
  } else if (isFiniteNumber(minBound) && isResetMin) {
@@ -111,9 +91,7 @@ var connectRange = function connectRange(renderFn) {
111
91
  } else {
112
92
  newNextMin = nextMinAsNumber;
113
93
  }
114
-
115
94
  var newNextMax;
116
-
117
95
  if (!isFiniteNumber(maxBound) && currentRangeMax === nextMaxAsNumber) {
118
96
  newNextMax = undefined;
119
97
  } else if (isFiniteNumber(maxBound) && isResetMax) {
@@ -121,7 +99,6 @@ var connectRange = function connectRange(renderFn) {
121
99
  } else {
122
100
  newNextMax = nextMaxAsNumber;
123
101
  }
124
-
125
102
  var isResetNewNextMin = newNextMin === undefined;
126
103
  var isGreaterThanCurrentRange = isFiniteNumber(currentRangeMin) && currentRangeMin <= newNextMin;
127
104
  var isMinValid = isResetNewNextMin || isFiniteNumber(newNextMin) && (!isFiniteNumber(currentRangeMin) || isGreaterThanCurrentRange);
@@ -130,24 +107,18 @@ var connectRange = function connectRange(renderFn) {
130
107
  var isMaxValid = isResetNewNextMax || isFiniteNumber(newNextMax) && (!isFiniteNumber(currentRangeMax) || isLowerThanRange);
131
108
  var hasMinChange = min !== newNextMin;
132
109
  var hasMaxChange = max !== newNextMax;
133
-
134
110
  if ((hasMinChange || hasMaxChange) && isMinValid && isMaxValid) {
135
111
  resolvedState = resolvedState.removeNumericRefinement(attribute);
136
-
137
112
  if (isFiniteNumber(newNextMin)) {
138
113
  resolvedState = resolvedState.addNumericRefinement(attribute, '>=', newNextMin);
139
114
  }
140
-
141
115
  if (isFiniteNumber(newNextMax)) {
142
116
  resolvedState = resolvedState.addNumericRefinement(attribute, '<=', newNextMax);
143
117
  }
144
-
145
118
  return resolvedState.resetPage();
146
119
  }
147
-
148
120
  return null;
149
121
  };
150
-
151
122
  var createSendEvent = function createSendEvent(instantSearchInstance) {
152
123
  return function () {
153
124
  if (arguments.length === 1) {
@@ -156,10 +127,8 @@ var connectRange = function connectRange(renderFn) {
156
127
  }
157
128
  };
158
129
  };
159
-
160
130
  function _getCurrentRange(stats) {
161
131
  var min;
162
-
163
132
  if (isFiniteNumber(minBound)) {
164
133
  min = minBound;
165
134
  } else if (isFiniteNumber(stats.min)) {
@@ -167,9 +136,7 @@ var connectRange = function connectRange(renderFn) {
167
136
  } else {
168
137
  min = 0;
169
138
  }
170
-
171
139
  var max;
172
-
173
140
  if (isFiniteNumber(maxBound)) {
174
141
  max = maxBound;
175
142
  } else if (isFiniteNumber(stats.max)) {
@@ -177,43 +144,35 @@ var connectRange = function connectRange(renderFn) {
177
144
  } else {
178
145
  max = 0;
179
146
  }
180
-
181
147
  return toPrecision({
182
148
  min: min,
183
149
  max: max,
184
150
  precision: precision
185
151
  });
186
152
  }
187
-
188
153
  function _getCurrentRefinement(helper) {
189
154
  var _ref7 = helper.getNumericRefinement(attribute, '>=') || [],
190
- _ref8 = _slicedToArray(_ref7, 1),
191
- minValue = _ref8[0];
192
-
155
+ _ref8 = _slicedToArray(_ref7, 1),
156
+ minValue = _ref8[0];
193
157
  var _ref9 = helper.getNumericRefinement(attribute, '<=') || [],
194
- _ref10 = _slicedToArray(_ref9, 1),
195
- maxValue = _ref10[0];
196
-
158
+ _ref10 = _slicedToArray(_ref9, 1),
159
+ maxValue = _ref10[0];
197
160
  var min = isFiniteNumber(minValue) ? minValue : -Infinity;
198
161
  var max = isFiniteNumber(maxValue) ? maxValue : Infinity;
199
162
  return [min, max];
200
163
  }
201
-
202
164
  function _refine(helper, currentRange) {
203
165
  return function () {
204
166
  var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [undefined, undefined],
205
- _ref12 = _slicedToArray(_ref11, 2),
206
- nextMin = _ref12[0],
207
- nextMax = _ref12[1];
208
-
167
+ _ref12 = _slicedToArray(_ref11, 2),
168
+ nextMin = _ref12[0],
169
+ nextMax = _ref12[1];
209
170
  var refinedState = getRefinedState(helper, currentRange, nextMin, nextMax);
210
-
211
171
  if (refinedState) {
212
172
  helper.setState(refinedState).search();
213
173
  }
214
174
  };
215
175
  }
216
-
217
176
  return {
218
177
  $$type: $$type,
219
178
  init: function init(initOptions) {
@@ -233,8 +192,8 @@ var connectRange = function connectRange(renderFn) {
233
192
  },
234
193
  getWidgetRenderState: function getWidgetRenderState(_ref13) {
235
194
  var results = _ref13.results,
236
- helper = _ref13.helper,
237
- instantSearchInstance = _ref13.instantSearchInstance;
195
+ helper = _ref13.helper,
196
+ instantSearchInstance = _ref13.instantSearchInstance;
238
197
  var facetsFromResults = results && results.disjunctiveFacets || [];
239
198
  var facet = find(facetsFromResults, function (facetResult) {
240
199
  return facetResult.name === attribute;
@@ -243,13 +202,9 @@ var connectRange = function connectRange(renderFn) {
243
202
  min: undefined,
244
203
  max: undefined
245
204
  };
246
-
247
205
  var currentRange = _getCurrentRange(stats);
248
-
249
206
  var start = _getCurrentRefinement(helper);
250
-
251
207
  var refine;
252
-
253
208
  if (!results) {
254
209
  // On first render pass an empty range
255
210
  // to be able to bypass the validation
@@ -261,7 +216,6 @@ var connectRange = function connectRange(renderFn) {
261
216
  } else {
262
217
  refine = _refine(helper, currentRange);
263
218
  }
264
-
265
219
  return {
266
220
  refine: refine,
267
221
  canRefine: currentRange.min !== currentRange.max,
@@ -281,17 +235,14 @@ var connectRange = function connectRange(renderFn) {
281
235
  },
282
236
  getWidgetUiState: function getWidgetUiState(uiState, _ref15) {
283
237
  var searchParameters = _ref15.searchParameters;
284
-
285
238
  var _searchParameters$get = searchParameters.getNumericRefinements(attribute),
286
- _searchParameters$get2 = _searchParameters$get['>='],
287
- min = _searchParameters$get2 === void 0 ? [] : _searchParameters$get2,
288
- _searchParameters$get3 = _searchParameters$get['<='],
289
- max = _searchParameters$get3 === void 0 ? [] : _searchParameters$get3;
290
-
239
+ _searchParameters$get2 = _searchParameters$get['>='],
240
+ min = _searchParameters$get2 === void 0 ? [] : _searchParameters$get2,
241
+ _searchParameters$get3 = _searchParameters$get['<='],
242
+ max = _searchParameters$get3 === void 0 ? [] : _searchParameters$get3;
291
243
  if (min.length === 0 && max.length === 0) {
292
244
  return uiState;
293
245
  }
294
-
295
246
  return _objectSpread(_objectSpread({}, uiState), {}, {
296
247
  range: _objectSpread(_objectSpread({}, uiState.range), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
297
248
  });
@@ -301,40 +252,31 @@ var connectRange = function connectRange(renderFn) {
301
252
  var widgetSearchParameters = searchParameters.addDisjunctiveFacet(attribute).setQueryParameters({
302
253
  numericRefinements: _objectSpread(_objectSpread({}, searchParameters.numericRefinements), {}, _defineProperty({}, attribute, {}))
303
254
  });
304
-
305
255
  if (isFiniteNumber(minBound)) {
306
256
  widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', minBound);
307
257
  }
308
-
309
258
  if (isFiniteNumber(maxBound)) {
310
259
  widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', maxBound);
311
260
  }
312
-
313
261
  var value = uiState.range && uiState.range[attribute];
314
-
315
262
  if (!value || value.indexOf(':') === -1) {
316
263
  return widgetSearchParameters;
317
264
  }
318
-
319
265
  var _value$split$map = value.split(':').map(parseFloat),
320
- _value$split$map2 = _slicedToArray(_value$split$map, 2),
321
- lowerBound = _value$split$map2[0],
322
- upperBound = _value$split$map2[1];
323
-
266
+ _value$split$map2 = _slicedToArray(_value$split$map, 2),
267
+ lowerBound = _value$split$map2[0],
268
+ upperBound = _value$split$map2[1];
324
269
  if (isFiniteNumber(lowerBound) && (!isFiniteNumber(minBound) || minBound < lowerBound)) {
325
270
  widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '>=');
326
271
  widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', lowerBound);
327
272
  }
328
-
329
273
  if (isFiniteNumber(upperBound) && (!isFiniteNumber(maxBound) || upperBound < maxBound)) {
330
274
  widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '<=');
331
275
  widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', upperBound);
332
276
  }
333
-
334
277
  return widgetSearchParameters;
335
278
  }
336
279
  };
337
280
  };
338
281
  };
339
-
340
282
  export default connectRange;