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,42 +1,30 @@
1
1
  "use strict";
2
2
 
3
+ 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); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
7
-
8
8
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
9
-
10
- var _index = require("../../lib/utils/index.js");
11
-
9
+ var _utils = require("../../lib/utils");
10
+ var _excluded = ["initialSearchParameters"];
12
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- 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; }
15
-
16
- 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; }
17
-
18
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
-
12
+ 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; }
13
+ 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; }
14
+ 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; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ 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); }
20
17
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
21
-
22
18
  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."); }
23
-
24
19
  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); }
25
-
26
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
27
-
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
28
21
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
29
-
30
- 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; }
31
-
22
+ 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; }
32
23
  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; }
33
-
34
24
  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; }
35
-
36
- var withUsage = (0, _index.createDocumentationMessageGenerator)({
25
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
37
26
  name: 'index-widget'
38
27
  });
39
-
40
28
  /**
41
29
  * This is the same content as helper._change / setState, but allowing for extra
42
30
  * UiState to be synchronized.
@@ -44,9 +32,8 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
44
32
  */
45
33
  function privateHelperSetState(helper, _ref) {
46
34
  var state = _ref.state,
47
- isPageReset = _ref.isPageReset,
48
- _uiState = _ref._uiState;
49
-
35
+ isPageReset = _ref.isPageReset,
36
+ _uiState = _ref._uiState;
50
37
  if (state !== helper.state) {
51
38
  helper.state = state;
52
39
  helper.emit('change', {
@@ -57,48 +44,38 @@ function privateHelperSetState(helper, _ref) {
57
44
  });
58
45
  }
59
46
  }
60
-
61
47
  function getLocalWidgetsUiState(widgets, widgetStateOptions) {
62
48
  var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
63
49
  return widgets.reduce(function (uiState, widget) {
64
- if ((0, _index.isIndexWidget)(widget)) {
50
+ if ((0, _utils.isIndexWidget)(widget)) {
65
51
  return uiState;
66
52
  }
67
-
68
53
  if (!widget.getWidgetUiState && !widget.getWidgetState) {
69
54
  return uiState;
70
55
  }
71
-
72
56
  if (widget.getWidgetUiState) {
73
57
  return widget.getWidgetUiState(uiState, widgetStateOptions);
74
58
  }
75
-
76
59
  return widget.getWidgetState(uiState, widgetStateOptions);
77
60
  }, initialUiState);
78
61
  }
79
-
80
62
  function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions) {
81
63
  var initialSearchParameters = widgetSearchParametersOptions.initialSearchParameters,
82
- rest = _objectWithoutProperties(widgetSearchParametersOptions, ["initialSearchParameters"]);
83
-
64
+ rest = _objectWithoutProperties(widgetSearchParametersOptions, _excluded);
84
65
  return widgets.filter(function (widget) {
85
- return !(0, _index.isIndexWidget)(widget);
66
+ return !(0, _utils.isIndexWidget)(widget);
86
67
  }).reduce(function (state, widget) {
87
68
  if (!widget.getWidgetSearchParameters) {
88
69
  return state;
89
70
  }
90
-
91
71
  return widget.getWidgetSearchParameters(state, rest);
92
72
  }, initialSearchParameters);
93
73
  }
94
-
95
74
  function resetPageFromWidgets(widgets) {
96
- var indexWidgets = widgets.filter(_index.isIndexWidget);
97
-
75
+ var indexWidgets = widgets.filter(_utils.isIndexWidget);
98
76
  if (indexWidgets.length === 0) {
99
77
  return;
100
78
  }
101
-
102
79
  indexWidgets.forEach(function (widget) {
103
80
  var widgetHelper = widget.getHelper();
104
81
  privateHelperSetState(widgetHelper, {
@@ -108,9 +85,8 @@ function resetPageFromWidgets(widgets) {
108
85
  resetPageFromWidgets(widget.getWidgets());
109
86
  });
110
87
  }
111
-
112
88
  function resolveScopedResultsFromWidgets(widgets) {
113
- var indexWidgets = widgets.filter(_index.isIndexWidget);
89
+ var indexWidgets = widgets.filter(_utils.isIndexWidget);
114
90
  return indexWidgets.reduce(function (scopedResults, current) {
115
91
  return scopedResults.concat.apply(scopedResults, [{
116
92
  indexId: current.getIndexId(),
@@ -119,15 +95,13 @@ function resolveScopedResultsFromWidgets(widgets) {
119
95
  }].concat(_toConsumableArray(resolveScopedResultsFromWidgets(current.getWidgets()))));
120
96
  }, []);
121
97
  }
122
-
123
98
  var index = function index(widgetParams) {
124
99
  if (widgetParams === undefined || widgetParams.indexName === undefined) {
125
100
  throw new Error(withUsage('The `indexName` option is required.'));
126
101
  }
127
-
128
102
  var indexName = widgetParams.indexName,
129
- _widgetParams$indexId = widgetParams.indexId,
130
- indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
103
+ _widgetParams$indexId = widgetParams.indexId,
104
+ indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
131
105
  var localWidgets = [];
132
106
  var localUiState = {};
133
107
  var localInstantSearchInstance = null;
@@ -150,8 +124,9 @@ var index = function index(widgetParams) {
150
124
  return derivedHelper && derivedHelper.lastResults;
151
125
  },
152
126
  getScopedResults: function getScopedResults() {
153
- var widgetParent = this.getParent(); // If the widget is the root, we consider itself as the only sibling.
127
+ var widgetParent = this.getParent();
154
128
 
129
+ // If the widget is the root, we consider itself as the only sibling.
155
130
  var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];
156
131
  return resolveScopedResultsFromWidgets(widgetSiblings);
157
132
  },
@@ -169,19 +144,15 @@ var index = function index(widgetParams) {
169
144
  },
170
145
  addWidgets: function addWidgets(widgets) {
171
146
  var _this = this;
172
-
173
147
  if (!Array.isArray(widgets)) {
174
148
  throw new Error(withUsage('The `addWidgets` method expects an array of widgets.'));
175
149
  }
176
-
177
150
  if (widgets.some(function (widget) {
178
151
  return typeof widget.init !== 'function' && typeof widget.render !== 'function';
179
152
  })) {
180
153
  throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
181
154
  }
182
-
183
155
  localWidgets = localWidgets.concat(widgets);
184
-
185
156
  if (localInstantSearchInstance && Boolean(widgets.length)) {
186
157
  privateHelperSetState(helper, {
187
158
  state: getLocalWidgetsSearchParameters(localWidgets, {
@@ -189,13 +160,14 @@ var index = function index(widgetParams) {
189
160
  initialSearchParameters: helper.state
190
161
  }),
191
162
  _uiState: localUiState
192
- }); // We compute the render state before calling `init` in a separate loop
163
+ });
164
+
165
+ // We compute the render state before calling `init` in a separate loop
193
166
  // to construct the whole render state object that is then passed to
194
167
  // `init`.
195
-
196
168
  widgets.forEach(function (widget) {
197
169
  if (widget.getRenderState) {
198
- var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, (0, _index.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
170
+ var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, (0, _utils.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
199
171
  storeRenderState({
200
172
  renderState: renderState,
201
173
  instantSearchInstance: localInstantSearchInstance,
@@ -205,31 +177,26 @@ var index = function index(widgetParams) {
205
177
  });
206
178
  widgets.forEach(function (widget) {
207
179
  if (widget.init) {
208
- widget.init((0, _index.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
180
+ widget.init((0, _utils.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
209
181
  }
210
182
  });
211
183
  localInstantSearchInstance.scheduleSearch();
212
184
  }
213
-
214
185
  return this;
215
186
  },
216
187
  removeWidgets: function removeWidgets(widgets) {
217
188
  var _this2 = this;
218
-
219
189
  if (!Array.isArray(widgets)) {
220
190
  throw new Error(withUsage('The `removeWidgets` method expects an array of widgets.'));
221
191
  }
222
-
223
192
  if (widgets.some(function (widget) {
224
193
  return typeof widget.dispose !== 'function';
225
194
  })) {
226
195
  throw new Error(withUsage('The widget definition expects a `dispose` method.'));
227
196
  }
228
-
229
197
  localWidgets = localWidgets.filter(function (widget) {
230
198
  return widgets.indexOf(widget) === -1;
231
199
  });
232
-
233
200
  if (localInstantSearchInstance && Boolean(widgets.length)) {
234
201
  var nextState = widgets.reduce(function (state, widget) {
235
202
  // the `dispose` method exists at this point we already assert it
@@ -248,48 +215,46 @@ var index = function index(widgetParams) {
248
215
  uiState: localUiState,
249
216
  initialSearchParameters: nextState
250
217
  }));
251
-
252
218
  if (localWidgets.length) {
253
219
  localInstantSearchInstance.scheduleSearch();
254
220
  }
255
221
  }
256
-
257
222
  return this;
258
223
  },
259
224
  init: function init(_ref2) {
260
225
  var _this3 = this,
261
- _instantSearchInstanc;
262
-
226
+ _instantSearchInstanc;
263
227
  var instantSearchInstance = _ref2.instantSearchInstance,
264
- parent = _ref2.parent,
265
- uiState = _ref2.uiState;
266
-
228
+ parent = _ref2.parent,
229
+ uiState = _ref2.uiState;
267
230
  if (helper !== null) {
268
231
  // helper is already initialized, therefore we do not need to set up
269
232
  // any listeners
270
233
  return;
271
234
  }
272
-
273
235
  localInstantSearchInstance = instantSearchInstance;
274
236
  localParent = parent;
275
- localUiState = uiState[indexId] || {}; // The `mainHelper` is already defined at this point. The instance is created
237
+ localUiState = uiState[indexId] || {};
238
+
239
+ // The `mainHelper` is already defined at this point. The instance is created
276
240
  // inside InstantSearch at the `start` method, which occurs before the `init`
277
241
  // step.
278
-
279
242
  var mainHelper = instantSearchInstance.mainHelper;
280
243
  var parameters = getLocalWidgetsSearchParameters(localWidgets, {
281
244
  uiState: localUiState,
282
245
  initialSearchParameters: new _algoliasearchHelper.default.SearchParameters({
283
246
  index: indexName
284
247
  })
285
- }); // This Helper is only used for state management we do not care about the
248
+ });
249
+
250
+ // This Helper is only used for state management we do not care about the
286
251
  // `searchClient`. Only the "main" Helper created at the `InstantSearch`
287
252
  // level is aware of the client.
253
+ helper = (0, _algoliasearchHelper.default)({}, parameters.index, parameters);
288
254
 
289
- helper = (0, _algoliasearchHelper.default)({}, parameters.index, parameters); // We forward the call to `search` to the "main" instance of the Helper
255
+ // We forward the call to `search` to the "main" instance of the Helper
290
256
  // which is responsible for managing the queries (it's the only one that is
291
257
  // aware of the `searchClient`).
292
-
293
258
  helper.search = function () {
294
259
  if (instantSearchInstance.onStateChange) {
295
260
  instantSearchInstance.onStateChange({
@@ -297,45 +262,41 @@ var index = function index(widgetParams) {
297
262
  setUiState: function setUiState(nextState) {
298
263
  return instantSearchInstance.setUiState(nextState, false);
299
264
  }
300
- }); // We don't trigger a search when controlled because it becomes the
301
- // responsibility of `setUiState`.
265
+ });
302
266
 
267
+ // We don't trigger a search when controlled because it becomes the
268
+ // responsibility of `setUiState`.
303
269
  return mainHelper;
304
270
  }
305
-
306
271
  return mainHelper.search();
307
272
  };
308
-
309
273
  helper.searchWithoutTriggeringOnStateChange = function () {
310
274
  return mainHelper.search();
311
- }; // We use the same pattern for the `searchForFacetValues`.
312
-
275
+ };
313
276
 
277
+ // We use the same pattern for the `searchForFacetValues`.
314
278
  helper.searchForFacetValues = function (facetName, facetValue, maxFacetHits, userState) {
315
279
  var state = helper.state.setQueryParameters(userState);
316
280
  return mainHelper.searchForFacetValues(facetName, facetValue, maxFacetHits, state);
317
281
  };
318
-
319
282
  derivedHelper = mainHelper.derive(function () {
320
- return _index.mergeSearchParameters.apply(void 0, _toConsumableArray((0, _index.resolveSearchParameters)(_this3)));
283
+ return _utils.mergeSearchParameters.apply(void 0, _toConsumableArray((0, _utils.resolveSearchParameters)(_this3)));
321
284
  });
322
285
  var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
323
-
324
286
  if (indexInitialResults) {
325
287
  // We restore the shape of the results provided to the instance to respect
326
288
  // the helper's structure.
327
289
  var results = new _algoliasearchHelper.default.SearchResults(new _algoliasearchHelper.default.SearchParameters(indexInitialResults.state), indexInitialResults.results);
328
290
  derivedHelper.lastResults = results;
329
291
  helper.lastResults = results;
330
- } // Subscribe to the Helper state changes for the page before widgets
292
+ }
293
+
294
+ // Subscribe to the Helper state changes for the page before widgets
331
295
  // are initialized. This behavior mimics the original one of the Helper.
332
296
  // It makes sense to replicate it at the `init` step. We have another
333
297
  // listener on `change` below, once `init` is done.
334
-
335
-
336
298
  helper.on('change', function (_ref3) {
337
299
  var isPageReset = _ref3.isPageReset;
338
-
339
300
  if (isPageReset) {
340
301
  resetPageFromWidgets(localWidgets);
341
302
  }
@@ -346,9 +307,8 @@ var index = function index(widgetParams) {
346
307
  // it at the index level because it's either: all of them or none of them
347
308
  // that are stalled. The queries are performed into a single network request.
348
309
  instantSearchInstance.scheduleStalledRender();
349
-
350
310
  if (process.env.NODE_ENV === 'development') {
351
- (0, _index.checkIndexUiState)({
311
+ (0, _utils.checkIndexUiState)({
352
312
  index: _this3,
353
313
  indexUiState: localUiState
354
314
  });
@@ -359,19 +319,21 @@ var index = function index(widgetParams) {
359
319
  // The index does not render the results it schedules a new render
360
320
  // to let all the other indices emit their own results. It allows us to
361
321
  // run the render process in one pass.
362
- instantSearchInstance.scheduleRender(); // the derived helper is the one which actually searches, but the helper
322
+ instantSearchInstance.scheduleRender();
323
+
324
+ // the derived helper is the one which actually searches, but the helper
363
325
  // which is exposed e.g. via instance.helper, doesn't search, and thus
364
326
  // does not have access to lastResults, which it used to in pre-federated
365
327
  // search behavior.
366
-
367
328
  helper.lastResults = results;
368
- }); // We compute the render state before calling `init` in a separate loop
329
+ });
330
+
331
+ // We compute the render state before calling `init` in a separate loop
369
332
  // to construct the whole render state object that is then passed to
370
333
  // `init`.
371
-
372
334
  localWidgets.forEach(function (widget) {
373
335
  if (widget.getRenderState) {
374
- var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, (0, _index.createInitArgs)(instantSearchInstance, _this3, uiState));
336
+ var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, (0, _utils.createInitArgs)(instantSearchInstance, _this3, uiState));
375
337
  storeRenderState({
376
338
  renderState: renderState,
377
339
  instantSearchInstance: instantSearchInstance,
@@ -380,34 +342,35 @@ var index = function index(widgetParams) {
380
342
  }
381
343
  });
382
344
  localWidgets.forEach(function (widget) {
383
- process.env.NODE_ENV === 'development' ? (0, _index.warning)( // if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
345
+ process.env.NODE_ENV === 'development' ? (0, _utils.warning)(
346
+ // if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
384
347
  // aka we warn if there's _only_ getWidgetState
385
348
  !widget.getWidgetState || Boolean(widget.getWidgetUiState), 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;
386
-
387
349
  if (widget.init) {
388
- widget.init((0, _index.createInitArgs)(instantSearchInstance, _this3, uiState));
350
+ widget.init((0, _utils.createInitArgs)(instantSearchInstance, _this3, uiState));
389
351
  }
390
- }); // Subscribe to the Helper state changes for the `uiState` once widgets
352
+ });
353
+
354
+ // Subscribe to the Helper state changes for the `uiState` once widgets
391
355
  // are initialized. Until the first render, state changes are part of the
392
356
  // configuration step. This is mainly for backward compatibility with custom
393
357
  // widgets. When the subscription happens before the `init` step, the (static)
394
358
  // configuration of the widget is pushed in the URL. That's what we want to avoid.
395
359
  // https://github.com/algolia/instantsearch.js/pull/994/commits/4a672ae3fd78809e213de0368549ef12e9dc9454
396
-
397
360
  helper.on('change', function (event) {
398
361
  var state = event.state;
399
362
  var _uiState = event._uiState;
400
363
  localUiState = getLocalWidgetsUiState(localWidgets, {
401
364
  searchParameters: state,
402
365
  helper: helper
403
- }, _uiState || {}); // We don't trigger an internal change when controlled because it
404
- // becomes the responsibility of `setUiState`.
366
+ }, _uiState || {});
405
367
 
368
+ // We don't trigger an internal change when controlled because it
369
+ // becomes the responsibility of `setUiState`.
406
370
  if (!instantSearchInstance.onStateChange) {
407
371
  instantSearchInstance.onInternalStateChange();
408
372
  }
409
373
  });
410
-
411
374
  if (indexInitialResults) {
412
375
  // If there are initial results, we're not notified of the next results
413
376
  // because we don't trigger an initial search. We therefore need to directly
@@ -417,16 +380,13 @@ var index = function index(widgetParams) {
417
380
  },
418
381
  render: function render(_ref5) {
419
382
  var _this4 = this;
420
-
421
383
  var instantSearchInstance = _ref5.instantSearchInstance;
422
-
423
384
  if (!this.getResults()) {
424
385
  return;
425
386
  }
426
-
427
387
  localWidgets.forEach(function (widget) {
428
388
  if (widget.getRenderState) {
429
- var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, (0, _index.createRenderArgs)(instantSearchInstance, _this4));
389
+ var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, (0, _utils.createRenderArgs)(instantSearchInstance, _this4));
430
390
  storeRenderState({
431
391
  renderState: renderState,
432
392
  instantSearchInstance: instantSearchInstance,
@@ -441,14 +401,14 @@ var index = function index(widgetParams) {
441
401
  // happens before the result e.g with a dynamically added index the request might
442
402
  // be delayed. The render is triggered for the complete tree but some parts do
443
403
  // not have results yet.
404
+
444
405
  if (widget.render) {
445
- widget.render((0, _index.createRenderArgs)(instantSearchInstance, _this4));
406
+ widget.render((0, _utils.createRenderArgs)(instantSearchInstance, _this4));
446
407
  }
447
408
  });
448
409
  },
449
410
  dispose: function dispose() {
450
411
  var _this5 = this;
451
-
452
412
  localWidgets.forEach(function (widget) {
453
413
  if (widget.dispose) {
454
414
  // The dispose function is always called once the instance is started
@@ -472,12 +432,12 @@ var index = function index(widgetParams) {
472
432
  derivedHelper = null;
473
433
  },
474
434
  getWidgetUiState: function getWidgetUiState(uiState) {
475
- return localWidgets.filter(_index.isIndexWidget).reduce(function (previousUiState, innerIndex) {
435
+ return localWidgets.filter(_utils.isIndexWidget).reduce(function (previousUiState, innerIndex) {
476
436
  return innerIndex.getWidgetUiState(previousUiState);
477
437
  }, _objectSpread(_objectSpread({}, uiState), {}, _defineProperty({}, indexId, _objectSpread(_objectSpread({}, uiState[indexId]), localUiState))));
478
438
  },
479
439
  getWidgetState: function getWidgetState(uiState) {
480
- process.env.NODE_ENV === 'development' ? (0, _index.warning)(false, 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;
440
+ process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;
481
441
  return this.getWidgetUiState(uiState);
482
442
  },
483
443
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
@@ -495,14 +455,12 @@ var index = function index(widgetParams) {
495
455
  }
496
456
  };
497
457
  };
498
-
499
458
  var _default = index;
500
459
  exports.default = _default;
501
-
502
460
  function storeRenderState(_ref7) {
503
461
  var renderState = _ref7.renderState,
504
- instantSearchInstance = _ref7.instantSearchInstance,
505
- parent = _ref7.parent;
462
+ instantSearchInstance = _ref7.instantSearchInstance,
463
+ parent = _ref7.parent;
506
464
  var parentIndexName = parent ? parent.getIndexId() : instantSearchInstance.mainIndex.getIndexId();
507
465
  instantSearchInstance.renderState = _objectSpread(_objectSpread({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread(_objectSpread({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
508
466
  }
@@ -3,6 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.EXPERIMENTAL_answers = void 0;
7
+ Object.defineProperty(exports, "EXPERIMENTAL_configureRelatedItems", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _configureRelatedItems.default;
11
+ }
12
+ });
13
+ exports.EXPERIMENTAL_dynamicWidgets = void 0;
6
14
  Object.defineProperty(exports, "analytics", {
7
15
  enumerable: true,
8
16
  get: function get() {
@@ -33,18 +41,6 @@ Object.defineProperty(exports, "currentRefinements", {
33
41
  return _currentRefinements.default;
34
42
  }
35
43
  });
36
- Object.defineProperty(exports, "EXPERIMENTAL_answers", {
37
- enumerable: true,
38
- get: function get() {
39
- return _answers.default;
40
- }
41
- });
42
- Object.defineProperty(exports, "EXPERIMENTAL_configureRelatedItems", {
43
- enumerable: true,
44
- get: function get() {
45
- return _configureRelatedItems.default;
46
- }
47
- });
48
44
  Object.defineProperty(exports, "dynamicWidgets", {
49
45
  enumerable: true,
50
46
  get: function get() {
@@ -78,7 +74,7 @@ Object.defineProperty(exports, "hitsPerPage", {
78
74
  Object.defineProperty(exports, "index", {
79
75
  enumerable: true,
80
76
  get: function get() {
81
- return _index2.default;
77
+ return _index.default;
82
78
  }
83
79
  });
84
80
  Object.defineProperty(exports, "infiniteHits", {
@@ -201,78 +197,44 @@ Object.defineProperty(exports, "voiceSearch", {
201
197
  return _voiceSearch.default;
202
198
  }
203
199
  });
204
- exports.EXPERIMENTAL_dynamicWidgets = void 0;
205
-
206
- var _analytics = _interopRequireDefault(require("./analytics/analytics.js"));
207
-
208
- var _breadcrumb = _interopRequireDefault(require("./breadcrumb/breadcrumb.js"));
209
-
210
- var _clearRefinements = _interopRequireDefault(require("./clear-refinements/clear-refinements.js"));
211
-
212
- var _configure = _interopRequireDefault(require("./configure/configure.js"));
213
-
214
- var _currentRefinements = _interopRequireDefault(require("./current-refinements/current-refinements.js"));
215
-
216
- var _answers = _interopRequireDefault(require("./answers/answers.js"));
217
-
218
- var _configureRelatedItems = _interopRequireDefault(require("./configure-related-items/configure-related-items.js"));
219
-
220
- var _dynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/dynamic-widgets.js"));
221
-
222
- var _index = require("../lib/utils/index.js");
223
-
224
- var _geoSearch = _interopRequireDefault(require("./geo-search/geo-search.js"));
225
-
226
- var _hierarchicalMenu = _interopRequireDefault(require("./hierarchical-menu/hierarchical-menu.js"));
227
-
228
- var _hits = _interopRequireDefault(require("./hits/hits.js"));
229
-
230
- var _hitsPerPage = _interopRequireDefault(require("./hits-per-page/hits-per-page.js"));
231
-
232
- var _index2 = _interopRequireDefault(require("./index/index.js"));
233
-
234
- var _infiniteHits = _interopRequireDefault(require("./infinite-hits/infinite-hits.js"));
235
-
236
- var _menu = _interopRequireDefault(require("./menu/menu.js"));
237
-
238
- var _menuSelect = _interopRequireDefault(require("./menu-select/menu-select.js"));
239
-
240
- var _numericMenu = _interopRequireDefault(require("./numeric-menu/numeric-menu.js"));
241
-
242
- var _pagination = _interopRequireDefault(require("./pagination/pagination.js"));
243
-
244
- var _panel = _interopRequireDefault(require("./panel/panel.js"));
245
-
246
- var _places = _interopRequireDefault(require("./places/places.js"));
247
-
248
- var _poweredBy = _interopRequireDefault(require("./powered-by/powered-by.js"));
249
-
250
- var _queryRuleContext = _interopRequireDefault(require("./query-rule-context/query-rule-context.js"));
251
-
252
- var _queryRuleCustomData = _interopRequireDefault(require("./query-rule-custom-data/query-rule-custom-data.js"));
253
-
254
- var _rangeInput = _interopRequireDefault(require("./range-input/range-input.js"));
255
-
256
- var _rangeSlider = _interopRequireDefault(require("./range-slider/range-slider.js"));
257
-
258
- var _ratingMenu = _interopRequireDefault(require("./rating-menu/rating-menu.js"));
259
-
260
- var _refinementList = _interopRequireDefault(require("./refinement-list/refinement-list.js"));
261
-
262
- var _relevantSort = _interopRequireDefault(require("./relevant-sort/relevant-sort.js"));
263
-
264
- var _searchBox = _interopRequireDefault(require("./search-box/search-box.js"));
265
-
266
- var _sortBy = _interopRequireDefault(require("./sort-by/sort-by.js"));
267
-
268
- var _stats = _interopRequireDefault(require("./stats/stats.js"));
269
-
270
- var _toggleRefinement = _interopRequireDefault(require("./toggle-refinement/toggle-refinement.js"));
271
-
272
- var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search.js"));
273
-
200
+ var _utils = require("../lib/utils");
201
+ var _analytics = _interopRequireDefault(require("./analytics/analytics"));
202
+ var _breadcrumb = _interopRequireDefault(require("./breadcrumb/breadcrumb"));
203
+ var _clearRefinements = _interopRequireDefault(require("./clear-refinements/clear-refinements"));
204
+ var _configure = _interopRequireDefault(require("./configure/configure"));
205
+ var _currentRefinements = _interopRequireDefault(require("./current-refinements/current-refinements"));
206
+ var _answers = _interopRequireDefault(require("./answers/answers"));
207
+ var _configureRelatedItems = _interopRequireDefault(require("./configure-related-items/configure-related-items"));
208
+ var _dynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/dynamic-widgets"));
209
+ var _geoSearch = _interopRequireDefault(require("./geo-search/geo-search"));
210
+ var _hierarchicalMenu = _interopRequireDefault(require("./hierarchical-menu/hierarchical-menu"));
211
+ var _hits = _interopRequireDefault(require("./hits/hits"));
212
+ var _hitsPerPage = _interopRequireDefault(require("./hits-per-page/hits-per-page"));
213
+ var _index = _interopRequireDefault(require("./index/index"));
214
+ var _infiniteHits = _interopRequireDefault(require("./infinite-hits/infinite-hits"));
215
+ var _menu = _interopRequireDefault(require("./menu/menu"));
216
+ var _menuSelect = _interopRequireDefault(require("./menu-select/menu-select"));
217
+ var _numericMenu = _interopRequireDefault(require("./numeric-menu/numeric-menu"));
218
+ var _pagination = _interopRequireDefault(require("./pagination/pagination"));
219
+ var _panel = _interopRequireDefault(require("./panel/panel"));
220
+ var _places = _interopRequireDefault(require("./places/places"));
221
+ var _poweredBy = _interopRequireDefault(require("./powered-by/powered-by"));
222
+ var _queryRuleContext = _interopRequireDefault(require("./query-rule-context/query-rule-context"));
223
+ var _queryRuleCustomData = _interopRequireDefault(require("./query-rule-custom-data/query-rule-custom-data"));
224
+ var _rangeInput = _interopRequireDefault(require("./range-input/range-input"));
225
+ var _rangeSlider = _interopRequireDefault(require("./range-slider/range-slider"));
226
+ var _ratingMenu = _interopRequireDefault(require("./rating-menu/rating-menu"));
227
+ var _refinementList = _interopRequireDefault(require("./refinement-list/refinement-list"));
228
+ var _relevantSort = _interopRequireDefault(require("./relevant-sort/relevant-sort"));
229
+ var _searchBox = _interopRequireDefault(require("./search-box/search-box"));
230
+ var _sortBy = _interopRequireDefault(require("./sort-by/sort-by"));
231
+ var _stats = _interopRequireDefault(require("./stats/stats"));
232
+ var _toggleRefinement = _interopRequireDefault(require("./toggle-refinement/toggle-refinement"));
233
+ var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search"));
274
234
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
275
-
235
+ /** @deprecated answers is no longer supported */
236
+ var EXPERIMENTAL_answers = (0, _utils.deprecate)(_answers.default, 'answers is no longer supported');
237
+ exports.EXPERIMENTAL_answers = EXPERIMENTAL_answers;
276
238
  /** @deprecated use dynamicWidgets */
277
- var EXPERIMENTAL_dynamicWidgets = (0, _index.deprecate)(_dynamicWidgets.default, 'use dynamicWidgets');
239
+ var EXPERIMENTAL_dynamicWidgets = (0, _utils.deprecate)(_dynamicWidgets.default, 'use dynamicWidgets');
278
240
  exports.EXPERIMENTAL_dynamicWidgets = EXPERIMENTAL_dynamicWidgets;