instantsearch.js 4.49.0 → 4.49.2

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