instantsearch.js 4.49.1 → 4.49.3

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