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,31 +1,23 @@
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
-
5
- 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
-
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["initialSearchParameters"];
3
+ 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; }
4
+ 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
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
8
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
-
9
9
  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
10
  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
-
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
12
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
-
17
- 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
-
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
14
  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
15
  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
16
  import algoliasearchHelper from 'algoliasearch-helper';
24
17
  import { checkIndexUiState, createDocumentationMessageGenerator, resolveSearchParameters, mergeSearchParameters, warning, isIndexWidget, createInitArgs, createRenderArgs } from "../../lib/utils/index.js";
25
18
  var withUsage = createDocumentationMessageGenerator({
26
19
  name: 'index-widget'
27
20
  });
28
-
29
21
  /**
30
22
  * This is the same content as helper._change / setState, but allowing for extra
31
23
  * UiState to be synchronized.
@@ -33,9 +25,8 @@ var withUsage = createDocumentationMessageGenerator({
33
25
  */
34
26
  function privateHelperSetState(helper, _ref) {
35
27
  var state = _ref.state,
36
- isPageReset = _ref.isPageReset,
37
- _uiState = _ref._uiState;
38
-
28
+ isPageReset = _ref.isPageReset,
29
+ _uiState = _ref._uiState;
39
30
  if (state !== helper.state) {
40
31
  helper.state = state;
41
32
  helper.emit('change', {
@@ -46,48 +37,38 @@ function privateHelperSetState(helper, _ref) {
46
37
  });
47
38
  }
48
39
  }
49
-
50
40
  function getLocalWidgetsUiState(widgets, widgetStateOptions) {
51
41
  var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
52
42
  return widgets.reduce(function (uiState, widget) {
53
43
  if (isIndexWidget(widget)) {
54
44
  return uiState;
55
45
  }
56
-
57
46
  if (!widget.getWidgetUiState && !widget.getWidgetState) {
58
47
  return uiState;
59
48
  }
60
-
61
49
  if (widget.getWidgetUiState) {
62
50
  return widget.getWidgetUiState(uiState, widgetStateOptions);
63
51
  }
64
-
65
52
  return widget.getWidgetState(uiState, widgetStateOptions);
66
53
  }, initialUiState);
67
54
  }
68
-
69
55
  function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions) {
70
56
  var initialSearchParameters = widgetSearchParametersOptions.initialSearchParameters,
71
- rest = _objectWithoutProperties(widgetSearchParametersOptions, ["initialSearchParameters"]);
72
-
57
+ rest = _objectWithoutProperties(widgetSearchParametersOptions, _excluded);
73
58
  return widgets.filter(function (widget) {
74
59
  return !isIndexWidget(widget);
75
60
  }).reduce(function (state, widget) {
76
61
  if (!widget.getWidgetSearchParameters) {
77
62
  return state;
78
63
  }
79
-
80
64
  return widget.getWidgetSearchParameters(state, rest);
81
65
  }, initialSearchParameters);
82
66
  }
83
-
84
67
  function resetPageFromWidgets(widgets) {
85
68
  var indexWidgets = widgets.filter(isIndexWidget);
86
-
87
69
  if (indexWidgets.length === 0) {
88
70
  return;
89
71
  }
90
-
91
72
  indexWidgets.forEach(function (widget) {
92
73
  var widgetHelper = widget.getHelper();
93
74
  privateHelperSetState(widgetHelper, {
@@ -97,7 +78,6 @@ function resetPageFromWidgets(widgets) {
97
78
  resetPageFromWidgets(widget.getWidgets());
98
79
  });
99
80
  }
100
-
101
81
  function resolveScopedResultsFromWidgets(widgets) {
102
82
  var indexWidgets = widgets.filter(isIndexWidget);
103
83
  return indexWidgets.reduce(function (scopedResults, current) {
@@ -108,15 +88,13 @@ function resolveScopedResultsFromWidgets(widgets) {
108
88
  }].concat(_toConsumableArray(resolveScopedResultsFromWidgets(current.getWidgets()))));
109
89
  }, []);
110
90
  }
111
-
112
91
  var index = function index(widgetParams) {
113
92
  if (widgetParams === undefined || widgetParams.indexName === undefined) {
114
93
  throw new Error(withUsage('The `indexName` option is required.'));
115
94
  }
116
-
117
95
  var indexName = widgetParams.indexName,
118
- _widgetParams$indexId = widgetParams.indexId,
119
- indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
96
+ _widgetParams$indexId = widgetParams.indexId,
97
+ indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
120
98
  var localWidgets = [];
121
99
  var localUiState = {};
122
100
  var localInstantSearchInstance = null;
@@ -139,8 +117,9 @@ var index = function index(widgetParams) {
139
117
  return derivedHelper && derivedHelper.lastResults;
140
118
  },
141
119
  getScopedResults: function getScopedResults() {
142
- var widgetParent = this.getParent(); // If the widget is the root, we consider itself as the only sibling.
120
+ var widgetParent = this.getParent();
143
121
 
122
+ // If the widget is the root, we consider itself as the only sibling.
144
123
  var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];
145
124
  return resolveScopedResultsFromWidgets(widgetSiblings);
146
125
  },
@@ -158,19 +137,15 @@ var index = function index(widgetParams) {
158
137
  },
159
138
  addWidgets: function addWidgets(widgets) {
160
139
  var _this = this;
161
-
162
140
  if (!Array.isArray(widgets)) {
163
141
  throw new Error(withUsage('The `addWidgets` method expects an array of widgets.'));
164
142
  }
165
-
166
143
  if (widgets.some(function (widget) {
167
144
  return typeof widget.init !== 'function' && typeof widget.render !== 'function';
168
145
  })) {
169
146
  throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
170
147
  }
171
-
172
148
  localWidgets = localWidgets.concat(widgets);
173
-
174
149
  if (localInstantSearchInstance && Boolean(widgets.length)) {
175
150
  privateHelperSetState(helper, {
176
151
  state: getLocalWidgetsSearchParameters(localWidgets, {
@@ -178,10 +153,11 @@ var index = function index(widgetParams) {
178
153
  initialSearchParameters: helper.state
179
154
  }),
180
155
  _uiState: localUiState
181
- }); // We compute the render state before calling `init` in a separate loop
156
+ });
157
+
158
+ // We compute the render state before calling `init` in a separate loop
182
159
  // to construct the whole render state object that is then passed to
183
160
  // `init`.
184
-
185
161
  widgets.forEach(function (widget) {
186
162
  if (widget.getRenderState) {
187
163
  var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, createInitArgs(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
@@ -199,26 +175,21 @@ var index = function index(widgetParams) {
199
175
  });
200
176
  localInstantSearchInstance.scheduleSearch();
201
177
  }
202
-
203
178
  return this;
204
179
  },
205
180
  removeWidgets: function removeWidgets(widgets) {
206
181
  var _this2 = this;
207
-
208
182
  if (!Array.isArray(widgets)) {
209
183
  throw new Error(withUsage('The `removeWidgets` method expects an array of widgets.'));
210
184
  }
211
-
212
185
  if (widgets.some(function (widget) {
213
186
  return typeof widget.dispose !== 'function';
214
187
  })) {
215
188
  throw new Error(withUsage('The widget definition expects a `dispose` method.'));
216
189
  }
217
-
218
190
  localWidgets = localWidgets.filter(function (widget) {
219
191
  return widgets.indexOf(widget) === -1;
220
192
  });
221
-
222
193
  if (localInstantSearchInstance && Boolean(widgets.length)) {
223
194
  var nextState = widgets.reduce(function (state, widget) {
224
195
  // the `dispose` method exists at this point we already assert it
@@ -237,48 +208,46 @@ var index = function index(widgetParams) {
237
208
  uiState: localUiState,
238
209
  initialSearchParameters: nextState
239
210
  }));
240
-
241
211
  if (localWidgets.length) {
242
212
  localInstantSearchInstance.scheduleSearch();
243
213
  }
244
214
  }
245
-
246
215
  return this;
247
216
  },
248
217
  init: function init(_ref2) {
249
218
  var _this3 = this,
250
- _instantSearchInstanc;
251
-
219
+ _instantSearchInstanc;
252
220
  var instantSearchInstance = _ref2.instantSearchInstance,
253
- parent = _ref2.parent,
254
- uiState = _ref2.uiState;
255
-
221
+ parent = _ref2.parent,
222
+ uiState = _ref2.uiState;
256
223
  if (helper !== null) {
257
224
  // helper is already initialized, therefore we do not need to set up
258
225
  // any listeners
259
226
  return;
260
227
  }
261
-
262
228
  localInstantSearchInstance = instantSearchInstance;
263
229
  localParent = parent;
264
- localUiState = uiState[indexId] || {}; // The `mainHelper` is already defined at this point. The instance is created
230
+ localUiState = uiState[indexId] || {};
231
+
232
+ // The `mainHelper` is already defined at this point. The instance is created
265
233
  // inside InstantSearch at the `start` method, which occurs before the `init`
266
234
  // step.
267
-
268
235
  var mainHelper = instantSearchInstance.mainHelper;
269
236
  var parameters = getLocalWidgetsSearchParameters(localWidgets, {
270
237
  uiState: localUiState,
271
238
  initialSearchParameters: new algoliasearchHelper.SearchParameters({
272
239
  index: indexName
273
240
  })
274
- }); // This Helper is only used for state management we do not care about the
241
+ });
242
+
243
+ // This Helper is only used for state management we do not care about the
275
244
  // `searchClient`. Only the "main" Helper created at the `InstantSearch`
276
245
  // level is aware of the client.
246
+ helper = algoliasearchHelper({}, parameters.index, parameters);
277
247
 
278
- helper = algoliasearchHelper({}, parameters.index, parameters); // We forward the call to `search` to the "main" instance of the Helper
248
+ // We forward the call to `search` to the "main" instance of the Helper
279
249
  // which is responsible for managing the queries (it's the only one that is
280
250
  // aware of the `searchClient`).
281
-
282
251
  helper.search = function () {
283
252
  if (instantSearchInstance.onStateChange) {
284
253
  instantSearchInstance.onStateChange({
@@ -286,45 +255,41 @@ var index = function index(widgetParams) {
286
255
  setUiState: function setUiState(nextState) {
287
256
  return instantSearchInstance.setUiState(nextState, false);
288
257
  }
289
- }); // We don't trigger a search when controlled because it becomes the
290
- // responsibility of `setUiState`.
258
+ });
291
259
 
260
+ // We don't trigger a search when controlled because it becomes the
261
+ // responsibility of `setUiState`.
292
262
  return mainHelper;
293
263
  }
294
-
295
264
  return mainHelper.search();
296
265
  };
297
-
298
266
  helper.searchWithoutTriggeringOnStateChange = function () {
299
267
  return mainHelper.search();
300
- }; // We use the same pattern for the `searchForFacetValues`.
301
-
268
+ };
302
269
 
270
+ // We use the same pattern for the `searchForFacetValues`.
303
271
  helper.searchForFacetValues = function (facetName, facetValue, maxFacetHits, userState) {
304
272
  var state = helper.state.setQueryParameters(userState);
305
273
  return mainHelper.searchForFacetValues(facetName, facetValue, maxFacetHits, state);
306
274
  };
307
-
308
275
  derivedHelper = mainHelper.derive(function () {
309
276
  return mergeSearchParameters.apply(void 0, _toConsumableArray(resolveSearchParameters(_this3)));
310
277
  });
311
278
  var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
312
-
313
279
  if (indexInitialResults) {
314
280
  // We restore the shape of the results provided to the instance to respect
315
281
  // the helper's structure.
316
282
  var results = new algoliasearchHelper.SearchResults(new algoliasearchHelper.SearchParameters(indexInitialResults.state), indexInitialResults.results);
317
283
  derivedHelper.lastResults = results;
318
284
  helper.lastResults = results;
319
- } // Subscribe to the Helper state changes for the page before widgets
285
+ }
286
+
287
+ // Subscribe to the Helper state changes for the page before widgets
320
288
  // are initialized. This behavior mimics the original one of the Helper.
321
289
  // It makes sense to replicate it at the `init` step. We have another
322
290
  // listener on `change` below, once `init` is done.
323
-
324
-
325
291
  helper.on('change', function (_ref3) {
326
292
  var isPageReset = _ref3.isPageReset;
327
-
328
293
  if (isPageReset) {
329
294
  resetPageFromWidgets(localWidgets);
330
295
  }
@@ -335,7 +300,6 @@ var index = function index(widgetParams) {
335
300
  // it at the index level because it's either: all of them or none of them
336
301
  // that are stalled. The queries are performed into a single network request.
337
302
  instantSearchInstance.scheduleStalledRender();
338
-
339
303
  if (process.env.NODE_ENV === 'development') {
340
304
  checkIndexUiState({
341
305
  index: _this3,
@@ -348,16 +312,18 @@ var index = function index(widgetParams) {
348
312
  // The index does not render the results it schedules a new render
349
313
  // to let all the other indices emit their own results. It allows us to
350
314
  // run the render process in one pass.
351
- instantSearchInstance.scheduleRender(); // the derived helper is the one which actually searches, but the helper
315
+ instantSearchInstance.scheduleRender();
316
+
317
+ // the derived helper is the one which actually searches, but the helper
352
318
  // which is exposed e.g. via instance.helper, doesn't search, and thus
353
319
  // does not have access to lastResults, which it used to in pre-federated
354
320
  // search behavior.
355
-
356
321
  helper.lastResults = results;
357
- }); // We compute the render state before calling `init` in a separate loop
322
+ });
323
+
324
+ // We compute the render state before calling `init` in a separate loop
358
325
  // to construct the whole render state object that is then passed to
359
326
  // `init`.
360
-
361
327
  localWidgets.forEach(function (widget) {
362
328
  if (widget.getRenderState) {
363
329
  var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, createInitArgs(instantSearchInstance, _this3, uiState));
@@ -369,34 +335,35 @@ var index = function index(widgetParams) {
369
335
  }
370
336
  });
371
337
  localWidgets.forEach(function (widget) {
372
- process.env.NODE_ENV === 'development' ? warning( // if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
338
+ process.env.NODE_ENV === 'development' ? warning(
339
+ // if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
373
340
  // aka we warn if there's _only_ getWidgetState
374
341
  !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;
375
-
376
342
  if (widget.init) {
377
343
  widget.init(createInitArgs(instantSearchInstance, _this3, uiState));
378
344
  }
379
- }); // Subscribe to the Helper state changes for the `uiState` once widgets
345
+ });
346
+
347
+ // Subscribe to the Helper state changes for the `uiState` once widgets
380
348
  // are initialized. Until the first render, state changes are part of the
381
349
  // configuration step. This is mainly for backward compatibility with custom
382
350
  // widgets. When the subscription happens before the `init` step, the (static)
383
351
  // configuration of the widget is pushed in the URL. That's what we want to avoid.
384
352
  // https://github.com/algolia/instantsearch.js/pull/994/commits/4a672ae3fd78809e213de0368549ef12e9dc9454
385
-
386
353
  helper.on('change', function (event) {
387
354
  var state = event.state;
388
355
  var _uiState = event._uiState;
389
356
  localUiState = getLocalWidgetsUiState(localWidgets, {
390
357
  searchParameters: state,
391
358
  helper: helper
392
- }, _uiState || {}); // We don't trigger an internal change when controlled because it
393
- // becomes the responsibility of `setUiState`.
359
+ }, _uiState || {});
394
360
 
361
+ // We don't trigger an internal change when controlled because it
362
+ // becomes the responsibility of `setUiState`.
395
363
  if (!instantSearchInstance.onStateChange) {
396
364
  instantSearchInstance.onInternalStateChange();
397
365
  }
398
366
  });
399
-
400
367
  if (indexInitialResults) {
401
368
  // If there are initial results, we're not notified of the next results
402
369
  // because we don't trigger an initial search. We therefore need to directly
@@ -406,13 +373,10 @@ var index = function index(widgetParams) {
406
373
  },
407
374
  render: function render(_ref5) {
408
375
  var _this4 = this;
409
-
410
376
  var instantSearchInstance = _ref5.instantSearchInstance;
411
-
412
377
  if (!this.getResults()) {
413
378
  return;
414
379
  }
415
-
416
380
  localWidgets.forEach(function (widget) {
417
381
  if (widget.getRenderState) {
418
382
  var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, createRenderArgs(instantSearchInstance, _this4));
@@ -430,6 +394,7 @@ var index = function index(widgetParams) {
430
394
  // happens before the result e.g with a dynamically added index the request might
431
395
  // be delayed. The render is triggered for the complete tree but some parts do
432
396
  // not have results yet.
397
+
433
398
  if (widget.render) {
434
399
  widget.render(createRenderArgs(instantSearchInstance, _this4));
435
400
  }
@@ -437,7 +402,6 @@ var index = function index(widgetParams) {
437
402
  },
438
403
  dispose: function dispose() {
439
404
  var _this5 = this;
440
-
441
405
  localWidgets.forEach(function (widget) {
442
406
  if (widget.dispose) {
443
407
  // The dispose function is always called once the instance is started
@@ -484,13 +448,11 @@ var index = function index(widgetParams) {
484
448
  }
485
449
  };
486
450
  };
487
-
488
451
  export default index;
489
-
490
452
  function storeRenderState(_ref7) {
491
453
  var renderState = _ref7.renderState,
492
- instantSearchInstance = _ref7.instantSearchInstance,
493
- parent = _ref7.parent;
454
+ instantSearchInstance = _ref7.instantSearchInstance,
455
+ parent = _ref7.parent;
494
456
  var parentIndexName = parent ? parent.getIndexId() : instantSearchInstance.mainIndex.getIndexId();
495
457
  instantSearchInstance.renderState = _objectSpread(_objectSpread({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread(_objectSpread({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
496
458
  }
@@ -3,7 +3,8 @@ export { default as breadcrumb } from './breadcrumb/breadcrumb';
3
3
  export { default as clearRefinements } from './clear-refinements/clear-refinements';
4
4
  export { default as configure } from './configure/configure';
5
5
  export { default as currentRefinements } from './current-refinements/current-refinements';
6
- export { default as EXPERIMENTAL_answers } from './answers/answers';
6
+ /** @deprecated answers is no longer supported */
7
+ export declare const EXPERIMENTAL_answers: import("./answers/answers").AnswersWidget;
7
8
  export { default as EXPERIMENTAL_configureRelatedItems } from './configure-related-items/configure-related-items';
8
9
  import dynamicWidgets from './dynamic-widgets/dynamic-widgets';
9
10
  export { dynamicWidgets };
@@ -1,15 +1,16 @@
1
+ import { deprecate } from "../lib/utils/index.js";
1
2
  export { default as analytics } from "./analytics/analytics.js";
2
3
  export { default as breadcrumb } from "./breadcrumb/breadcrumb.js";
3
4
  export { default as clearRefinements } from "./clear-refinements/clear-refinements.js";
4
5
  export { default as configure } from "./configure/configure.js";
5
6
  export { default as currentRefinements } from "./current-refinements/current-refinements.js";
6
- export { default as EXPERIMENTAL_answers } from "./answers/answers.js";
7
+ import answers from "./answers/answers.js";
8
+ /** @deprecated answers is no longer supported */
9
+ export var EXPERIMENTAL_answers = deprecate(answers, 'answers is no longer supported');
7
10
  export { default as EXPERIMENTAL_configureRelatedItems } from "./configure-related-items/configure-related-items.js";
8
11
  import dynamicWidgets from "./dynamic-widgets/dynamic-widgets.js";
9
12
  export { dynamicWidgets };
10
- import { deprecate } from "../lib/utils/index.js";
11
13
  /** @deprecated use dynamicWidgets */
12
-
13
14
  export var EXPERIMENTAL_dynamicWidgets = deprecate(dynamicWidgets, 'use dynamicWidgets');
14
15
  export { default as geoSearch } from "./geo-search/geo-search.js";
15
16
  export { default as hierarchicalMenu } from "./hierarchical-menu/hierarchical-menu.js";
@@ -1,9 +1,9 @@
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
-
5
- 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
-
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ 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); }
7
7
  import { h, render } from 'preact';
8
8
  import { cx } from '@algolia/ui-components-shared';
9
9
  import InfiniteHits from "../../components/InfiniteHits/InfiniteHits.js";
@@ -18,24 +18,22 @@ var withUsage = createDocumentationMessageGenerator({
18
18
  });
19
19
  var suit = component('InfiniteHits');
20
20
  var InfiniteHitsWithInsightsListener = withInsightsListener(InfiniteHits);
21
-
22
21
  var renderer = function renderer(_ref) {
23
22
  var containerNode = _ref.containerNode,
24
- cssClasses = _ref.cssClasses,
25
- renderState = _ref.renderState,
26
- templates = _ref.templates,
27
- hasShowPrevious = _ref.showPrevious;
23
+ cssClasses = _ref.cssClasses,
24
+ renderState = _ref.renderState,
25
+ templates = _ref.templates,
26
+ hasShowPrevious = _ref.showPrevious;
28
27
  return function (_ref2, isFirstRendering) {
29
28
  var hits = _ref2.hits,
30
- results = _ref2.results,
31
- showMore = _ref2.showMore,
32
- showPrevious = _ref2.showPrevious,
33
- isFirstPage = _ref2.isFirstPage,
34
- isLastPage = _ref2.isLastPage,
35
- instantSearchInstance = _ref2.instantSearchInstance,
36
- insights = _ref2.insights,
37
- bindEvent = _ref2.bindEvent;
38
-
29
+ results = _ref2.results,
30
+ showMore = _ref2.showMore,
31
+ showPrevious = _ref2.showPrevious,
32
+ isFirstPage = _ref2.isFirstPage,
33
+ isLastPage = _ref2.isLastPage,
34
+ instantSearchInstance = _ref2.instantSearchInstance,
35
+ insights = _ref2.insights,
36
+ bindEvent = _ref2.bindEvent;
39
37
  if (isFirstRendering) {
40
38
  renderState.templateProps = prepareTemplateProps({
41
39
  defaultTemplates: defaultTemplates,
@@ -44,7 +42,6 @@ var renderer = function renderer(_ref) {
44
42
  });
45
43
  return;
46
44
  }
47
-
48
45
  render(h(InfiniteHitsWithInsightsListener, {
49
46
  cssClasses: cssClasses,
50
47
  hits: hits,
@@ -63,23 +60,20 @@ var renderer = function renderer(_ref) {
63
60
  }), containerNode);
64
61
  };
65
62
  };
66
-
67
63
  var infiniteHits = function infiniteHits(widgetParams) {
68
64
  var _ref3 = widgetParams || {},
69
- container = _ref3.container,
70
- escapeHTML = _ref3.escapeHTML,
71
- transformItems = _ref3.transformItems,
72
- _ref3$templates = _ref3.templates,
73
- templates = _ref3$templates === void 0 ? {} : _ref3$templates,
74
- _ref3$cssClasses = _ref3.cssClasses,
75
- userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses,
76
- showPrevious = _ref3.showPrevious,
77
- cache = _ref3.cache;
78
-
65
+ container = _ref3.container,
66
+ escapeHTML = _ref3.escapeHTML,
67
+ transformItems = _ref3.transformItems,
68
+ _ref3$templates = _ref3.templates,
69
+ templates = _ref3$templates === void 0 ? {} : _ref3$templates,
70
+ _ref3$cssClasses = _ref3.cssClasses,
71
+ userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses,
72
+ showPrevious = _ref3.showPrevious,
73
+ cache = _ref3.cache;
79
74
  if (!container) {
80
75
  throw new Error(withUsage('The `container` option is required.'));
81
76
  }
82
-
83
77
  var containerNode = getContainerNode(container);
84
78
  var cssClasses = {
85
79
  root: cx(suit(), userCssClasses.root),
@@ -126,5 +120,4 @@ var infiniteHits = function infiniteHits(widgetParams) {
126
120
  $$widgetType: 'ais.infiniteHits'
127
121
  });
128
122
  };
129
-
130
123
  export default infiniteHits;
@@ -4,9 +4,9 @@ import { cx } from '@algolia/ui-components-shared';
4
4
  var defaultTemplates = {
5
5
  item: function item(_ref) {
6
6
  var cssClasses = _ref.cssClasses,
7
- url = _ref.url,
8
- label = _ref.label,
9
- count = _ref.count;
7
+ url = _ref.url,
8
+ label = _ref.label,
9
+ count = _ref.count;
10
10
  return h("a", {
11
11
  className: cx(cssClasses.link),
12
12
  href: url