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
@@ -1,32 +1,24 @@
1
+ var _excluded = ["name", "escapedValue", "path"];
2
+ 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); }
1
3
  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; }
2
-
3
4
  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; }
4
-
5
5
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
-
7
6
  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."); }
8
-
9
7
  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); }
10
-
11
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
-
13
- function _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; }
14
-
8
+ 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; }
9
+ 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; } }
15
10
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
-
17
- 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; }
18
-
19
- 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; }
20
-
21
- 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; }
22
-
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
+ 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
16
  import { checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop } from "../../lib/utils/index.js";
24
17
  var withUsage = createDocumentationMessageGenerator({
25
18
  name: 'menu',
26
19
  connector: true
27
20
  });
28
21
  var DEFAULT_SORT = ['isRefined', 'name:asc'];
29
-
30
22
  /**
31
23
  * **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.
32
24
  *
@@ -41,55 +33,45 @@ var connectMenu = function connectMenu(renderFn) {
41
33
  checkRendering(renderFn, withUsage());
42
34
  return function (widgetParams) {
43
35
  var _ref = widgetParams || {},
44
- attribute = _ref.attribute,
45
- _ref$limit = _ref.limit,
46
- limit = _ref$limit === void 0 ? 10 : _ref$limit,
47
- _ref$showMore = _ref.showMore,
48
- showMore = _ref$showMore === void 0 ? false : _ref$showMore,
49
- _ref$showMoreLimit = _ref.showMoreLimit,
50
- showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
51
- _ref$sortBy = _ref.sortBy,
52
- sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
53
- _ref$transformItems = _ref.transformItems,
54
- transformItems = _ref$transformItems === void 0 ? function (items) {
55
- return items;
56
- } : _ref$transformItems;
57
-
36
+ attribute = _ref.attribute,
37
+ _ref$limit = _ref.limit,
38
+ limit = _ref$limit === void 0 ? 10 : _ref$limit,
39
+ _ref$showMore = _ref.showMore,
40
+ showMore = _ref$showMore === void 0 ? false : _ref$showMore,
41
+ _ref$showMoreLimit = _ref.showMoreLimit,
42
+ showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
43
+ _ref$sortBy = _ref.sortBy,
44
+ sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
45
+ _ref$transformItems = _ref.transformItems,
46
+ transformItems = _ref$transformItems === void 0 ? function (items) {
47
+ return items;
48
+ } : _ref$transformItems;
58
49
  if (!attribute) {
59
50
  throw new Error(withUsage('The `attribute` option is required.'));
60
51
  }
61
-
62
52
  if (showMore === true && showMoreLimit <= limit) {
63
53
  throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
64
54
  }
65
-
66
55
  var sendEvent;
67
-
68
56
  var _createURL;
57
+ var _refine;
69
58
 
70
- var _refine; // Provide the same function to the `renderFn` so that way the user
59
+ // Provide the same function to the `renderFn` so that way the user
71
60
  // has to only bind it once when `isFirstRendering` for instance
72
-
73
-
74
61
  var isShowingMore = false;
75
-
76
62
  var toggleShowMore = function toggleShowMore() {};
77
-
78
63
  function createToggleShowMore(renderOptions, widget) {
79
64
  return function () {
80
65
  isShowingMore = !isShowingMore;
81
66
  widget.render(renderOptions);
82
67
  };
83
68
  }
84
-
85
69
  function cachedToggleShowMore() {
86
70
  toggleShowMore();
87
71
  }
88
-
89
72
  function getLimit() {
90
73
  return isShowingMore ? showMoreLimit : limit;
91
74
  }
92
-
93
75
  return {
94
76
  $$type: 'ais.menu',
95
77
  init: function init(initOptions) {
@@ -116,12 +98,11 @@ var connectMenu = function connectMenu(renderFn) {
116
98
  },
117
99
  getWidgetRenderState: function getWidgetRenderState(renderOptions) {
118
100
  var results = renderOptions.results,
119
- createURL = renderOptions.createURL,
120
- instantSearchInstance = renderOptions.instantSearchInstance,
121
- helper = renderOptions.helper;
101
+ createURL = renderOptions.createURL,
102
+ instantSearchInstance = renderOptions.instantSearchInstance,
103
+ helper = renderOptions.helper;
122
104
  var items = [];
123
105
  var canToggleShowMore = false;
124
-
125
106
  if (!sendEvent) {
126
107
  sendEvent = createSendEventForFacet({
127
108
  instantSearchInstance: instantSearchInstance,
@@ -130,28 +111,23 @@ var connectMenu = function connectMenu(renderFn) {
130
111
  widgetType: this.$$type
131
112
  });
132
113
  }
133
-
134
114
  if (!_createURL) {
135
115
  _createURL = function _createURL(facetValue) {
136
116
  return createURL(helper.state.resetPage().toggleFacetRefinement(attribute, facetValue));
137
117
  };
138
118
  }
139
-
140
119
  if (!_refine) {
141
120
  _refine = function _refine(facetValue) {
142
121
  var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
143
- _helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
144
- refinedItem = _helper$getHierarchic2[0];
145
-
122
+ _helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
123
+ refinedItem = _helper$getHierarchic2[0];
146
124
  sendEvent('click', facetValue ? facetValue : refinedItem);
147
125
  helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
148
126
  };
149
127
  }
150
-
151
128
  if (renderOptions.results) {
152
129
  toggleShowMore = createToggleShowMore(renderOptions, this);
153
130
  }
154
-
155
131
  if (results) {
156
132
  var facetValues = results.getFacetValues(attribute, {
157
133
  sortBy: sortBy,
@@ -161,10 +137,9 @@ var connectMenu = function connectMenu(renderFn) {
161
137
  canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
162
138
  items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
163
139
  var label = _ref3.name,
164
- value = _ref3.escapedValue,
165
- path = _ref3.path,
166
- item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
167
-
140
+ value = _ref3.escapedValue,
141
+ path = _ref3.path,
142
+ item = _objectWithoutProperties(_ref3, _excluded);
168
143
  return _objectSpread(_objectSpread({}, item), {}, {
169
144
  label: label,
170
145
  value: value
@@ -173,7 +148,6 @@ var connectMenu = function connectMenu(renderFn) {
173
148
  results: results
174
149
  });
175
150
  }
176
-
177
151
  return {
178
152
  items: items,
179
153
  createURL: _createURL,
@@ -188,15 +162,12 @@ var connectMenu = function connectMenu(renderFn) {
188
162
  },
189
163
  getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
190
164
  var searchParameters = _ref4.searchParameters;
191
-
192
165
  var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
193
- _searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
194
- value = _searchParameters$get2[0];
195
-
166
+ _searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
167
+ value = _searchParameters$get2[0];
196
168
  if (!value) {
197
169
  return uiState;
198
170
  }
199
-
200
171
  return _objectSpread(_objectSpread({}, uiState), {}, {
201
172
  menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))
202
173
  });
@@ -211,17 +182,14 @@ var connectMenu = function connectMenu(renderFn) {
211
182
  var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
212
183
  var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
213
184
  var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
214
-
215
185
  if (!value) {
216
186
  return withMaxValuesPerFacet.setQueryParameters({
217
187
  hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))
218
188
  });
219
189
  }
220
-
221
190
  return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
222
191
  }
223
192
  };
224
193
  };
225
194
  };
226
-
227
195
  export default connectMenu;
@@ -1,30 +1,22 @@
1
- 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; } } }; }
2
-
1
+ 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); }
2
+ 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; } } }; }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
4
  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."); }
6
-
7
5
  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); }
8
-
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; }
10
-
11
- 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; }
12
-
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ 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; } }
13
8
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
-
15
- 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; }
16
-
17
- 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; }
18
-
19
- 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; }
20
-
9
+ 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; }
10
+ 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; }
11
+ 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; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ 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
14
  import { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, noop } from "../../lib/utils/index.js";
22
15
  var withUsage = createDocumentationMessageGenerator({
23
16
  name: 'numeric-menu',
24
17
  connector: true
25
18
  });
26
19
  var $$type = 'ais.numericMenu';
27
-
28
20
  var createSendEvent = function createSendEvent(_ref) {
29
21
  var instantSearchInstance = _ref.instantSearchInstance;
30
22
  return function () {
@@ -34,34 +26,30 @@ var createSendEvent = function createSendEvent(_ref) {
34
26
  }
35
27
  };
36
28
  };
37
-
38
29
  var connectNumericMenu = function connectNumericMenu(renderFn) {
39
30
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
40
31
  checkRendering(renderFn, withUsage());
41
32
  return function (widgetParams) {
42
33
  var _ref2 = widgetParams || {},
43
- _ref2$attribute = _ref2.attribute,
44
- attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
45
- _ref2$items = _ref2.items,
46
- items = _ref2$items === void 0 ? [] : _ref2$items,
47
- _ref2$transformItems = _ref2.transformItems,
48
- transformItems = _ref2$transformItems === void 0 ? function (item) {
49
- return item;
50
- } : _ref2$transformItems;
51
-
34
+ _ref2$attribute = _ref2.attribute,
35
+ attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
36
+ _ref2$items = _ref2.items,
37
+ items = _ref2$items === void 0 ? [] : _ref2$items,
38
+ _ref2$transformItems = _ref2.transformItems,
39
+ transformItems = _ref2$transformItems === void 0 ? function (item) {
40
+ return item;
41
+ } : _ref2$transformItems;
52
42
  if (attribute === '') {
53
43
  throw new Error(withUsage('The `attribute` option is required.'));
54
44
  }
55
-
56
45
  if (!items || items.length === 0) {
57
46
  throw new Error(withUsage('The `items` option expects an array of objects.'));
58
47
  }
59
-
60
48
  var prepareItems = function prepareItems(state) {
61
49
  return items.map(function (_ref3) {
62
50
  var start = _ref3.start,
63
- end = _ref3.end,
64
- label = _ref3.label;
51
+ end = _ref3.end,
52
+ label = _ref3.label;
65
53
  return {
66
54
  label: label,
67
55
  value: encodeURI(JSON.stringify({
@@ -76,7 +64,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
76
64
  };
77
65
  });
78
66
  };
79
-
80
67
  var connectorState = {};
81
68
  return {
82
69
  $$type: $$type,
@@ -101,20 +88,16 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
101
88
  var searchParameters = _ref5.searchParameters;
102
89
  var values = searchParameters.getNumericRefinements(attribute);
103
90
  var equal = values['='] && values['='][0];
104
-
105
91
  if (equal || equal === 0) {
106
92
  return _objectSpread(_objectSpread({}, uiState), {}, {
107
93
  numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(values['='])))
108
94
  });
109
95
  }
110
-
111
96
  var min = values['>='] && values['>='][0] || '';
112
97
  var max = values['<='] && values['<='][0] || '';
113
-
114
98
  if (min === '' && max === '') {
115
99
  return uiState;
116
100
  }
117
-
118
101
  return _objectSpread(_objectSpread({}, uiState), {}, {
119
102
  numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
120
103
  });
@@ -123,24 +106,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
123
106
  var uiState = _ref6.uiState;
124
107
  var value = uiState.numericMenu && uiState.numericMenu[attribute];
125
108
  var withoutRefinements = searchParameters.clearRefinements(attribute);
126
-
127
109
  if (!value) {
128
110
  return withoutRefinements.setQueryParameters({
129
111
  numericRefinements: _objectSpread(_objectSpread({}, withoutRefinements.numericRefinements), {}, _defineProperty({}, attribute, {}))
130
112
  });
131
113
  }
132
-
133
114
  var isExact = value.indexOf(':') === -1;
134
-
135
115
  if (isExact) {
136
116
  return withoutRefinements.addNumericRefinement(attribute, '=', Number(value));
137
117
  }
138
-
139
118
  var _value$split$map = value.split(':').map(parseFloat),
140
- _value$split$map2 = _slicedToArray(_value$split$map, 2),
141
- min = _value$split$map2[0],
142
- max = _value$split$map2[1];
143
-
119
+ _value$split$map2 = _slicedToArray(_value$split$map, 2),
120
+ min = _value$split$map2[0],
121
+ max = _value$split$map2[1];
144
122
  var withMinRefinement = isFiniteNumber(min) ? withoutRefinements.addNumericRefinement(attribute, '>=', min) : withoutRefinements;
145
123
  var withMaxRefinement = isFiniteNumber(max) ? withMinRefinement.addNumericRefinement(attribute, '<=', max) : withMinRefinement;
146
124
  return withMaxRefinement;
@@ -152,11 +130,10 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
152
130
  },
153
131
  getWidgetRenderState: function getWidgetRenderState(_ref7) {
154
132
  var results = _ref7.results,
155
- state = _ref7.state,
156
- instantSearchInstance = _ref7.instantSearchInstance,
157
- helper = _ref7.helper,
158
- createURL = _ref7.createURL;
159
-
133
+ state = _ref7.state,
134
+ instantSearchInstance = _ref7.instantSearchInstance,
135
+ helper = _ref7.helper,
136
+ createURL = _ref7.createURL;
160
137
  if (!connectorState.refine) {
161
138
  connectorState.refine = function (facetValue) {
162
139
  var refinedState = getRefinedState(helper.state, attribute, facetValue);
@@ -164,7 +141,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
164
141
  helper.setState(refinedState).search();
165
142
  };
166
143
  }
167
-
168
144
  if (!connectorState.createURL) {
169
145
  connectorState.createURL = function (newState) {
170
146
  return function (facetValue) {
@@ -172,24 +148,21 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
172
148
  };
173
149
  };
174
150
  }
175
-
176
151
  if (!connectorState.sendEvent) {
177
152
  connectorState.sendEvent = createSendEvent({
178
153
  instantSearchInstance: instantSearchInstance
179
154
  });
180
155
  }
181
-
182
156
  var hasNoResults = results ? results.nbHits === 0 : true;
183
157
  var preparedItems = prepareItems(state);
184
158
  var allIsSelected = true;
185
-
159
+ // @TODO avoid for..of for polyfill reasons
160
+ // eslint-disable-next-line no-restricted-syntax
186
161
  var _iterator = _createForOfIteratorHelper(preparedItems),
187
- _step;
188
-
162
+ _step;
189
163
  try {
190
164
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
191
165
  var item = _step.value;
192
-
193
166
  if (item.isRefined && decodeURI(item.value) !== '{}') {
194
167
  allIsSelected = false;
195
168
  break;
@@ -200,7 +173,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
200
173
  } finally {
201
174
  _iterator.f();
202
175
  }
203
-
204
176
  return {
205
177
  createURL: connectorState.createURL(state),
206
178
  items: transformItems(preparedItems, {
@@ -216,11 +188,9 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
216
188
  };
217
189
  };
218
190
  };
219
-
220
191
  function isRefined(state, attribute, option) {
221
192
  // @TODO: same as another spot, why is this mixing arrays & elements?
222
193
  var currentRefinements = state.getNumericRefinements(attribute);
223
-
224
194
  if (option.start !== undefined && option.end !== undefined) {
225
195
  if (option.start === option.end) {
226
196
  return hasNumericRefinement(currentRefinements, '=', option.start);
@@ -228,79 +198,62 @@ function isRefined(state, attribute, option) {
228
198
  return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);
229
199
  }
230
200
  }
231
-
232
201
  if (option.start !== undefined) {
233
202
  return hasNumericRefinement(currentRefinements, '>=', option.start);
234
203
  }
235
-
236
204
  if (option.end !== undefined) {
237
205
  return hasNumericRefinement(currentRefinements, '<=', option.end);
238
206
  }
239
-
240
207
  if (option.start === undefined && option.end === undefined) {
241
208
  return Object.keys(currentRefinements).every(function (operator) {
242
209
  return (currentRefinements[operator] || []).length === 0;
243
210
  });
244
211
  }
245
-
246
212
  return false;
247
213
  }
248
-
249
214
  function getRefinedState(state, attribute, facetValue) {
250
215
  var resolvedState = state;
251
- var refinedOption = JSON.parse(decodeURI(facetValue)); // @TODO: why is array / element mixed here & hasRefinements; seems wrong?
216
+ var refinedOption = JSON.parse(decodeURI(facetValue));
252
217
 
218
+ // @TODO: why is array / element mixed here & hasRefinements; seems wrong?
253
219
  var currentRefinements = resolvedState.getNumericRefinements(attribute);
254
-
255
220
  if (refinedOption.start === undefined && refinedOption.end === undefined) {
256
221
  return resolvedState.removeNumericRefinement(attribute);
257
222
  }
258
-
259
223
  if (!isRefined(resolvedState, attribute, refinedOption)) {
260
224
  resolvedState = resolvedState.removeNumericRefinement(attribute);
261
225
  }
262
-
263
226
  if (refinedOption.start !== undefined && refinedOption.end !== undefined) {
264
227
  if (refinedOption.start > refinedOption.end) {
265
228
  throw new Error('option.start should be > to option.end');
266
229
  }
267
-
268
230
  if (refinedOption.start === refinedOption.end) {
269
231
  if (hasNumericRefinement(currentRefinements, '=', refinedOption.start)) {
270
232
  resolvedState = resolvedState.removeNumericRefinement(attribute, '=', refinedOption.start);
271
233
  } else {
272
234
  resolvedState = resolvedState.addNumericRefinement(attribute, '=', refinedOption.start);
273
235
  }
274
-
275
236
  return resolvedState;
276
237
  }
277
238
  }
278
-
279
239
  if (refinedOption.start !== undefined) {
280
240
  if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {
281
241
  resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);
282
242
  }
283
-
284
243
  resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
285
244
  }
286
-
287
245
  if (refinedOption.end !== undefined) {
288
246
  if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {
289
247
  resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);
290
248
  }
291
-
292
249
  resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
293
250
  }
294
-
295
251
  if (typeof resolvedState.page === 'number') {
296
252
  resolvedState.page = 0;
297
253
  }
298
-
299
254
  return resolvedState;
300
255
  }
301
-
302
256
  function hasNumericRefinement(currentRefinements, operator, value) {
303
257
  return currentRefinements[operator] !== undefined && currentRefinements[operator].includes(value);
304
258
  }
305
-
306
259
  export default connectNumericMenu;
@@ -1,43 +1,34 @@
1
+ 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); }
1
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
-
3
- 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); } }
4
-
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6
-
7
- 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; }
8
-
3
+ 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); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ 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; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ 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); }
9
8
  import { range } from "../../lib/utils/index.js";
10
-
11
9
  var Paginator = /*#__PURE__*/function () {
12
10
  function Paginator(params) {
13
11
  _classCallCheck(this, Paginator);
14
-
15
12
  _defineProperty(this, "currentPage", void 0);
16
-
17
13
  _defineProperty(this, "total", void 0);
18
-
19
14
  _defineProperty(this, "padding", void 0);
20
-
21
15
  this.currentPage = params.currentPage;
22
16
  this.total = params.total;
23
17
  this.padding = params.padding;
24
18
  }
25
-
26
19
  _createClass(Paginator, [{
27
20
  key: "pages",
28
21
  value: function pages() {
29
22
  var total = this.total,
30
- currentPage = this.currentPage,
31
- padding = this.padding;
23
+ currentPage = this.currentPage,
24
+ padding = this.padding;
32
25
  if (total === 0) return [0];
33
26
  var totalDisplayedPages = this.nbPagesDisplayed(padding, total);
34
-
35
27
  if (totalDisplayedPages === total) {
36
28
  return range({
37
29
  end: total
38
30
  });
39
31
  }
40
-
41
32
  var paddingLeft = this.calculatePaddingLeft(currentPage, padding, total, totalDisplayedPages);
42
33
  var paddingRight = totalDisplayedPages - paddingLeft;
43
34
  var first = currentPage - paddingLeft;
@@ -58,11 +49,9 @@ var Paginator = /*#__PURE__*/function () {
58
49
  if (current <= padding) {
59
50
  return current;
60
51
  }
61
-
62
52
  if (current >= total - padding) {
63
53
  return totalDisplayedPages - (total - current);
64
54
  }
65
-
66
55
  return padding;
67
56
  }
68
57
  }, {
@@ -76,8 +65,6 @@ var Paginator = /*#__PURE__*/function () {
76
65
  return this.currentPage === 0;
77
66
  }
78
67
  }]);
79
-
80
68
  return Paginator;
81
69
  }();
82
-
83
70
  export default Paginator;