instantsearch.js 4.49.1 → 4.49.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/README.md +14 -8
  2. package/cjs/components/Answers/Answers.js +11 -18
  3. package/cjs/components/Breadcrumb/Breadcrumb.js +6 -13
  4. package/cjs/components/ClearRefinements/ClearRefinements.js +5 -12
  5. package/cjs/components/CurrentRefinements/CurrentRefinements.js +8 -16
  6. package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -7
  7. package/cjs/components/GeoSearchControls/GeoSearchControls.js +14 -23
  8. package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -7
  9. package/cjs/components/Highlight/Highlight.js +5 -12
  10. package/cjs/components/Hits/Hits.js +13 -22
  11. package/cjs/components/InfiniteHits/InfiniteHits.js +18 -27
  12. package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
  13. package/cjs/components/MenuSelect/MenuSelect.js +12 -22
  14. package/cjs/components/Pagination/Pagination.js +12 -20
  15. package/cjs/components/Panel/Panel.js +9 -28
  16. package/cjs/components/PoweredBy/PoweredBy.js +4 -6
  17. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +3 -8
  18. package/cjs/components/RangeInput/RangeInput.js +21 -51
  19. package/cjs/components/RefinementList/RefinementList.js +30 -81
  20. package/cjs/components/RefinementList/RefinementListItem.js +9 -15
  21. package/cjs/components/RelevantSort/RelevantSort.js +5 -10
  22. package/cjs/components/ReverseHighlight/ReverseHighlight.js +5 -12
  23. package/cjs/components/ReverseSnippet/ReverseSnippet.js +5 -12
  24. package/cjs/components/SearchBox/SearchBox.js +35 -77
  25. package/cjs/components/Selector/Selector.js +3 -7
  26. package/cjs/components/Slider/Pit.js +7 -11
  27. package/cjs/components/Slider/Rheostat.js +69 -133
  28. package/cjs/components/Slider/Slider.js +39 -72
  29. package/cjs/components/Snippet/Snippet.js +5 -12
  30. package/cjs/components/Stats/Stats.js +13 -22
  31. package/cjs/components/Template/Template.js +17 -44
  32. package/cjs/components/ToggleRefinement/ToggleRefinement.js +5 -11
  33. package/cjs/components/VoiceSearch/VoiceSearch.js +9 -17
  34. package/cjs/connectors/answers/connectAnswers.js +36 -46
  35. package/cjs/connectors/autocomplete/connectAutocomplete.js +21 -35
  36. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +27 -55
  37. package/cjs/connectors/clear-refinements/connectClearRefinements.js +41 -56
  38. package/cjs/connectors/configure/connectConfigure.js +17 -28
  39. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +21 -43
  40. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +29 -65
  41. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +27 -45
  42. package/cjs/connectors/geo-search/connectGeoSearch.js +32 -59
  43. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +50 -82
  44. package/cjs/connectors/hits/connectHits.js +25 -38
  45. package/cjs/connectors/hits/connectHitsWithInsights.js +3 -7
  46. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +26 -46
  47. package/cjs/connectors/index.js +92 -126
  48. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +43 -75
  49. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +3 -7
  50. package/cjs/connectors/menu/connectMenu.js +39 -73
  51. package/cjs/connectors/numeric-menu/connectNumericMenu.js +37 -86
  52. package/cjs/connectors/pagination/Paginator.js +11 -25
  53. package/cjs/connectors/pagination/connectPagination.js +17 -31
  54. package/cjs/connectors/powered-by/connectPoweredBy.js +13 -19
  55. package/cjs/connectors/query-rules/connectQueryRules.js +44 -65
  56. package/cjs/connectors/range/connectRange.js +72 -129
  57. package/cjs/connectors/rating-menu/connectRatingMenu.js +34 -87
  58. package/cjs/connectors/refinement-list/connectRefinementList.js +51 -79
  59. package/cjs/connectors/relevant-sort/connectRelevantSort.js +11 -18
  60. package/cjs/connectors/search-box/connectSearchBox.js +15 -28
  61. package/cjs/connectors/sort-by/connectSortBy.js +21 -28
  62. package/cjs/connectors/stats/connectStats.js +12 -16
  63. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +44 -75
  64. package/cjs/connectors/voice-search/connectVoiceSearch.js +22 -41
  65. package/cjs/helpers/components/Highlight.js +11 -18
  66. package/cjs/helpers/components/ReverseHighlight.js +19 -26
  67. package/cjs/helpers/components/ReverseSnippet.js +19 -26
  68. package/cjs/helpers/components/Snippet.js +11 -18
  69. package/cjs/helpers/components/index.js +4 -12
  70. package/cjs/helpers/get-insights-anonymous-user-token.js +6 -17
  71. package/cjs/helpers/highlight.js +15 -19
  72. package/cjs/helpers/index.js +23 -37
  73. package/cjs/helpers/insights.js +9 -21
  74. package/cjs/helpers/reverseHighlight.js +16 -20
  75. package/cjs/helpers/reverseSnippet.js +16 -20
  76. package/cjs/helpers/snippet.js +15 -19
  77. package/cjs/index.js +12 -27
  78. package/cjs/lib/InstantSearch.js +108 -207
  79. package/cjs/lib/createHelpers.js +15 -19
  80. package/cjs/lib/formatNumber.js +0 -1
  81. package/cjs/lib/infiniteHitsCache/index.js +1 -3
  82. package/cjs/lib/infiniteHitsCache/sessionStorage.js +14 -22
  83. package/cjs/lib/insights/client.js +17 -40
  84. package/cjs/lib/insights/index.js +9 -15
  85. package/cjs/lib/insights/listener.js +7 -24
  86. package/cjs/lib/routers/history.js +75 -117
  87. package/cjs/lib/routers/index.js +1 -3
  88. package/cjs/lib/stateMappings/index.js +2 -5
  89. package/cjs/lib/stateMappings/simple.js +11 -14
  90. package/cjs/lib/stateMappings/singleIndex.js +6 -8
  91. package/cjs/lib/suit.js +2 -5
  92. package/cjs/lib/templating/index.js +2 -6
  93. package/cjs/lib/templating/prepareTemplateProps.js +14 -22
  94. package/cjs/lib/templating/renderTemplate.js +17 -30
  95. package/cjs/lib/utils/capitalize.js +0 -1
  96. package/cjs/lib/utils/checkIndexUiState.js +19 -47
  97. package/cjs/lib/utils/checkRendering.js +1 -3
  98. package/cjs/lib/utils/clearRefinements.js +2 -9
  99. package/cjs/lib/utils/concatHighlightedParts.js +2 -4
  100. package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
  101. package/cjs/lib/utils/createSendEventForFacet.js +8 -15
  102. package/cjs/lib/utils/createSendEventForHits.js +10 -34
  103. package/cjs/lib/utils/debounce.js +0 -3
  104. package/cjs/lib/utils/defer.js +0 -11
  105. package/cjs/lib/utils/detect-insights-client.js +1 -3
  106. package/cjs/lib/utils/documentation.js +2 -5
  107. package/cjs/lib/utils/escape-highlight.js +13 -26
  108. package/cjs/lib/utils/escape-html.js +9 -7
  109. package/cjs/lib/utils/escapeFacetValue.js +1 -5
  110. package/cjs/lib/utils/find.js +2 -5
  111. package/cjs/lib/utils/findIndex.js +0 -3
  112. package/cjs/lib/utils/geo-search.js +21 -37
  113. package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
  114. package/cjs/lib/utils/getContainerNode.js +1 -7
  115. package/cjs/lib/utils/getHighlightFromSiblings.js +1 -7
  116. package/cjs/lib/utils/getHighlightedParts.js +2 -5
  117. package/cjs/lib/utils/getObjectType.js +0 -1
  118. package/cjs/lib/utils/getPropertyByPath.js +0 -1
  119. package/cjs/lib/utils/getRefinements.js +30 -45
  120. package/cjs/lib/utils/getWidgetAttribute.js +0 -6
  121. package/cjs/lib/utils/hits-absolute-position.js +6 -7
  122. package/cjs/lib/utils/hits-query-id.js +6 -8
  123. package/cjs/lib/utils/index.js +46 -138
  124. package/cjs/lib/utils/isDomElement.js +0 -1
  125. package/cjs/lib/utils/isEqual.js +2 -7
  126. package/cjs/lib/utils/isFacetRefined.js +0 -1
  127. package/cjs/lib/utils/isFiniteNumber.js +0 -1
  128. package/cjs/lib/utils/isIndexWidget.js +0 -1
  129. package/cjs/lib/utils/isPlainObject.js +3 -11
  130. package/cjs/lib/utils/isSpecialClick.js +0 -1
  131. package/cjs/lib/utils/logger.js +6 -16
  132. package/cjs/lib/utils/mergeSearchParameters.js +23 -43
  133. package/cjs/lib/utils/noop.js +0 -1
  134. package/cjs/lib/utils/range.js +9 -15
  135. package/cjs/lib/utils/render-args.js +0 -2
  136. package/cjs/lib/utils/resolveSearchParameters.js +0 -3
  137. package/cjs/lib/utils/reverseHighlightedParts.js +7 -10
  138. package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
  139. package/cjs/lib/utils/serializer.js +1 -3
  140. package/cjs/lib/utils/setIndexHelperState.js +2 -7
  141. package/cjs/lib/utils/toArray.js +0 -1
  142. package/cjs/lib/utils/typedObject.js +0 -1
  143. package/cjs/lib/utils/uniq.js +0 -1
  144. package/cjs/lib/version.js +1 -1
  145. package/cjs/lib/voiceSearchHelper/index.js +12 -37
  146. package/cjs/middlewares/createInsightsMiddleware.js +30 -54
  147. package/cjs/middlewares/createMetadataMiddleware.js +7 -15
  148. package/cjs/middlewares/createRouterMiddleware.js +16 -24
  149. package/cjs/middlewares/index.js +3 -9
  150. package/cjs/types/algoliasearch.js +0 -2
  151. package/cjs/types/index.js +14 -42
  152. package/cjs/widgets/analytics/analytics.js +22 -48
  153. package/cjs/widgets/answers/answers.js +32 -49
  154. package/cjs/widgets/breadcrumb/breadcrumb.js +31 -48
  155. package/cjs/widgets/clear-refinements/clear-refinements.js +28 -45
  156. package/cjs/widgets/configure/configure.js +9 -14
  157. package/cjs/widgets/configure-related-items/configure-related-items.js +9 -14
  158. package/cjs/widgets/current-refinements/current-refinements.js +22 -37
  159. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +17 -32
  160. package/cjs/widgets/geo-search/GeoSearchRenderer.js +50 -72
  161. package/cjs/widgets/geo-search/createHTMLMarker.js +34 -62
  162. package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
  163. package/cjs/widgets/geo-search/geo-search.js +44 -70
  164. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +5 -9
  165. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +41 -57
  166. package/cjs/widgets/hits/hits.js +32 -50
  167. package/cjs/widgets/hits-per-page/hits-per-page.js +24 -39
  168. package/cjs/widgets/index/index.js +71 -113
  169. package/cjs/widgets/index.js +47 -85
  170. package/cjs/widgets/infinite-hits/infinite-hits.js +39 -57
  171. package/cjs/widgets/menu/defaultTemplates.js +4 -8
  172. package/cjs/widgets/menu/menu.js +36 -53
  173. package/cjs/widgets/menu-select/defaultTemplates.js +2 -4
  174. package/cjs/widgets/menu-select/menu-select.js +31 -48
  175. package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -5
  176. package/cjs/widgets/numeric-menu/numeric-menu.js +30 -47
  177. package/cjs/widgets/pagination/pagination.js +43 -61
  178. package/cjs/widgets/panel/panel.js +31 -56
  179. package/cjs/widgets/places/places.js +22 -34
  180. package/cjs/widgets/powered-by/powered-by.js +20 -34
  181. package/cjs/widgets/query-rule-context/query-rule-context.js +10 -18
  182. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +24 -39
  183. package/cjs/widgets/range-input/range-input.js +36 -60
  184. package/cjs/widgets/range-slider/range-slider.js +39 -61
  185. package/cjs/widgets/rating-menu/defaultTemplates.js +9 -16
  186. package/cjs/widgets/rating-menu/rating-menu.js +30 -48
  187. package/cjs/widgets/refinement-list/defaultTemplates.js +6 -10
  188. package/cjs/widgets/refinement-list/refinement-list.js +54 -72
  189. package/cjs/widgets/relevant-sort/relevant-sort.js +21 -37
  190. package/cjs/widgets/search-box/defaultTemplates.js +0 -5
  191. package/cjs/widgets/search-box/search-box.js +42 -57
  192. package/cjs/widgets/sort-by/sort-by.js +21 -36
  193. package/cjs/widgets/stats/defaultTemplates.js +1 -2
  194. package/cjs/widgets/stats/stats.js +40 -67
  195. package/cjs/widgets/toggle-refinement/toggle-refinement.js +29 -46
  196. package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
  197. package/cjs/widgets/voice-search/voice-search.js +28 -44
  198. package/dist/instantsearch.development.d.ts +9 -6
  199. package/dist/instantsearch.development.js +1840 -3142
  200. package/dist/instantsearch.development.js.map +1 -1
  201. package/dist/instantsearch.production.d.ts +9 -6
  202. package/dist/instantsearch.production.min.d.ts +9 -6
  203. package/dist/instantsearch.production.min.js +2 -2
  204. package/dist/instantsearch.production.min.js.map +1 -1
  205. package/es/components/Answers/Answers.js +10 -13
  206. package/es/components/Breadcrumb/Breadcrumb.js +5 -8
  207. package/es/components/ClearRefinements/ClearRefinements.js +4 -7
  208. package/es/components/CurrentRefinements/CurrentRefinements.js +5 -10
  209. package/es/components/GeoSearchControls/GeoSearchButton.js +4 -6
  210. package/es/components/GeoSearchControls/GeoSearchControls.js +11 -14
  211. package/es/components/GeoSearchControls/GeoSearchToggle.js +4 -6
  212. package/es/components/Highlight/Highlight.js +4 -7
  213. package/es/components/Hits/Hits.js +12 -17
  214. package/es/components/InfiniteHits/InfiniteHits.js +17 -22
  215. package/es/components/MenuSelect/MenuSelect.js +9 -14
  216. package/es/components/Pagination/Pagination.js +10 -15
  217. package/es/components/Panel/Panel.js +8 -22
  218. package/es/components/PoweredBy/PoweredBy.js +4 -5
  219. package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -4
  220. package/es/components/RangeInput/RangeInput.js +20 -46
  221. package/es/components/RefinementList/RefinementList.js +24 -67
  222. package/es/components/RefinementList/RefinementListItem.js +8 -11
  223. package/es/components/RelevantSort/RelevantSort.js +4 -6
  224. package/es/components/ReverseHighlight/ReverseHighlight.js +4 -7
  225. package/es/components/ReverseSnippet/ReverseSnippet.js +4 -7
  226. package/es/components/SearchBox/SearchBox.js +29 -66
  227. package/es/components/Selector/Selector.js +3 -5
  228. package/es/components/Slider/Pit.js +7 -9
  229. package/es/components/Slider/Rheostat.js +70 -133
  230. package/es/components/Slider/Slider.js +34 -61
  231. package/es/components/Snippet/Snippet.js +4 -7
  232. package/es/components/Stats/Stats.js +12 -17
  233. package/es/components/Template/Template.js +12 -35
  234. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -7
  235. package/es/components/VoiceSearch/VoiceSearch.js +8 -13
  236. package/es/connectors/answers/connectAnswers.js +27 -36
  237. package/es/connectors/autocomplete/connectAutocomplete.js +12 -24
  238. package/es/connectors/breadcrumb/connectBreadcrumb.js +22 -48
  239. package/es/connectors/clear-refinements/connectClearRefinements.js +32 -45
  240. package/es/connectors/configure/connectConfigure.js +11 -17
  241. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +16 -33
  242. package/es/connectors/current-refinements/connectCurrentRefinements.js +23 -57
  243. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +20 -36
  244. package/es/connectors/geo-search/connectGeoSearch.js +21 -46
  245. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +44 -74
  246. package/es/connectors/hits/connectHits.js +14 -25
  247. package/es/connectors/hits-per-page/connectHitsPerPage.js +20 -38
  248. package/es/connectors/index.d.ts +2 -1
  249. package/es/connectors/index.js +6 -3
  250. package/es/connectors/infinite-hits/connectInfiniteHits.js +32 -62
  251. package/es/connectors/menu/connectMenu.js +34 -66
  252. package/es/connectors/numeric-menu/connectNumericMenu.js +31 -78
  253. package/es/connectors/pagination/Paginator.js +8 -21
  254. package/es/connectors/pagination/connectPagination.js +12 -22
  255. package/es/connectors/powered-by/connectPoweredBy.js +8 -12
  256. package/es/connectors/query-rules/connectQueryRules.js +37 -56
  257. package/es/connectors/range/connectRange.js +46 -101
  258. package/es/connectors/rating-menu/connectRatingMenu.js +28 -79
  259. package/es/connectors/refinement-list/connectRefinementList.js +43 -69
  260. package/es/connectors/relevant-sort/connectRelevantSort.js +8 -14
  261. package/es/connectors/search-box/connectSearchBox.js +11 -22
  262. package/es/connectors/sort-by/connectSortBy.js +15 -20
  263. package/es/connectors/stats/connectStats.js +8 -10
  264. package/es/connectors/toggle-refinement/connectToggleRefinement.js +33 -62
  265. package/es/connectors/toggle-refinement/types.js +1 -0
  266. package/es/connectors/voice-search/connectVoiceSearch.js +17 -32
  267. package/es/helpers/components/Highlight.js +5 -8
  268. package/es/helpers/components/ReverseHighlight.js +13 -16
  269. package/es/helpers/components/ReverseSnippet.js +13 -16
  270. package/es/helpers/components/Snippet.js +5 -8
  271. package/es/helpers/get-insights-anonymous-user-token.js +2 -10
  272. package/es/helpers/highlight.js +10 -10
  273. package/es/helpers/insights.js +3 -10
  274. package/es/helpers/reverseHighlight.js +10 -10
  275. package/es/helpers/reverseSnippet.js +10 -10
  276. package/es/helpers/snippet.js +10 -10
  277. package/es/index.js +0 -2
  278. package/es/lib/InstantSearch.js +83 -172
  279. package/es/lib/createHelpers.js +8 -9
  280. package/es/lib/infiniteHitsCache/sessionStorage.js +10 -16
  281. package/es/lib/insights/client.js +12 -33
  282. package/es/lib/insights/listener.js +4 -18
  283. package/es/lib/routers/history.js +69 -108
  284. package/es/lib/stateMappings/simple.js +11 -13
  285. package/es/lib/stateMappings/singleIndex.js +6 -7
  286. package/es/lib/suit.js +2 -3
  287. package/es/lib/templating/prepareTemplateProps.js +13 -20
  288. package/es/lib/templating/renderTemplate.js +12 -21
  289. package/es/lib/utils/checkIndexUiState.js +19 -41
  290. package/es/lib/utils/clearRefinements.js +2 -8
  291. package/es/lib/utils/concatHighlightedParts.js +1 -1
  292. package/es/lib/utils/createConcurrentSafePromise.js +0 -2
  293. package/es/lib/utils/createSendEventForFacet.js +7 -12
  294. package/es/lib/utils/createSendEventForHits.js +8 -30
  295. package/es/lib/utils/debounce.js +0 -2
  296. package/es/lib/utils/defer.js +0 -10
  297. package/es/lib/utils/documentation.js +2 -3
  298. package/es/lib/utils/escape-highlight.js +9 -18
  299. package/es/lib/utils/escape-html.js +9 -5
  300. package/es/lib/utils/escapeFacetValue.js +0 -2
  301. package/es/lib/utils/find.js +2 -4
  302. package/es/lib/utils/findIndex.js +0 -2
  303. package/es/lib/utils/geo-search.js +21 -35
  304. package/es/lib/utils/getAppIdAndApiKey.js +2 -2
  305. package/es/lib/utils/getContainerNode.js +1 -5
  306. package/es/lib/utils/getHighlightFromSiblings.js +0 -3
  307. package/es/lib/utils/getHighlightedParts.js +1 -2
  308. package/es/lib/utils/getRefinements.js +28 -41
  309. package/es/lib/utils/getWidgetAttribute.js +0 -5
  310. package/es/lib/utils/hits-absolute-position.js +6 -6
  311. package/es/lib/utils/hits-query-id.js +6 -7
  312. package/es/lib/utils/isEqual.js +2 -6
  313. package/es/lib/utils/isPlainObject.js +3 -10
  314. package/es/lib/utils/logger.js +4 -14
  315. package/es/lib/utils/mergeSearchParameters.js +21 -38
  316. package/es/lib/utils/range.js +9 -14
  317. package/es/lib/utils/resolveSearchParameters.js +0 -2
  318. package/es/lib/utils/reverseHighlightedParts.js +6 -7
  319. package/es/lib/utils/safelyRunOnBrowser.js +7 -8
  320. package/es/lib/utils/setIndexHelperState.js +0 -2
  321. package/es/lib/version.d.ts +1 -1
  322. package/es/lib/version.js +1 -1
  323. package/es/lib/voiceSearchHelper/index.js +12 -36
  324. package/es/lib/voiceSearchHelper/types.js +1 -0
  325. package/es/middlewares/createInsightsMiddleware.js +21 -42
  326. package/es/middlewares/createMetadataMiddleware.js +3 -9
  327. package/es/middlewares/createRouterMiddleware.js +12 -14
  328. package/es/types/algoliasearch.js +1 -0
  329. package/es/types/component.js +1 -0
  330. package/es/types/connector.js +1 -0
  331. package/es/types/index.js +9 -5
  332. package/es/types/insights.js +1 -0
  333. package/es/types/instantsearch.js +1 -0
  334. package/es/types/middleware.js +1 -0
  335. package/es/types/render-state.js +1 -0
  336. package/es/types/results.js +1 -0
  337. package/es/types/router.js +1 -0
  338. package/es/types/templates.js +1 -0
  339. package/es/types/ui-state.js +1 -0
  340. package/es/types/utils.js +1 -0
  341. package/es/types/widget-factory.js +1 -0
  342. package/es/types/widget.js +1 -0
  343. package/es/widgets/analytics/analytics.js +19 -43
  344. package/es/widgets/answers/answers.js +23 -30
  345. package/es/widgets/breadcrumb/breadcrumb.js +22 -29
  346. package/es/widgets/clear-refinements/clear-refinements.js +19 -26
  347. package/es/widgets/configure/configure.js +7 -7
  348. package/es/widgets/configure-related-items/configure-related-items.js +6 -8
  349. package/es/widgets/current-refinements/current-refinements.js +16 -23
  350. package/es/widgets/dynamic-widgets/dynamic-widgets.js +11 -21
  351. package/es/widgets/geo-search/GeoSearchRenderer.d.js +1 -0
  352. package/es/widgets/geo-search/GeoSearchRenderer.js +47 -65
  353. package/es/widgets/geo-search/createHTMLMarker.d.ts +1 -0
  354. package/es/widgets/geo-search/createHTMLMarker.js +34 -61
  355. package/es/widgets/geo-search/defaultTemplates.js +0 -2
  356. package/es/widgets/geo-search/geo-search.d.ts +1 -0
  357. package/es/widgets/geo-search/geo-search.js +34 -50
  358. package/es/widgets/hierarchical-menu/defaultTemplates.js +4 -4
  359. package/es/widgets/hierarchical-menu/hierarchical-menu.js +32 -38
  360. package/es/widgets/hits/hits.js +20 -27
  361. package/es/widgets/hits-per-page/hits-per-page.js +17 -24
  362. package/es/widgets/index/index.js +55 -93
  363. package/es/widgets/index.d.ts +2 -1
  364. package/es/widgets/index.js +4 -3
  365. package/es/widgets/infinite-hits/infinite-hits.js +27 -34
  366. package/es/widgets/menu/defaultTemplates.js +3 -3
  367. package/es/widgets/menu/menu.js +27 -34
  368. package/es/widgets/menu-select/defaultTemplates.js +1 -1
  369. package/es/widgets/menu-select/menu-select.js +22 -29
  370. package/es/widgets/numeric-menu/defaultTemplates.js +3 -3
  371. package/es/widgets/numeric-menu/numeric-menu.js +21 -28
  372. package/es/widgets/pagination/pagination.js +36 -46
  373. package/es/widgets/panel/panel.js +24 -42
  374. package/es/widgets/places/places.js +22 -33
  375. package/es/widgets/powered-by/powered-by.js +14 -20
  376. package/es/widgets/query-rule-context/query-rule-context.js +6 -10
  377. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +17 -24
  378. package/es/widgets/range-input/range-input.js +28 -43
  379. package/es/widgets/range-slider/range-slider.js +33 -47
  380. package/es/widgets/rating-menu/defaultTemplates.js +8 -12
  381. package/es/widgets/rating-menu/rating-menu.js +21 -29
  382. package/es/widgets/refinement-list/defaultTemplates.js +5 -5
  383. package/es/widgets/refinement-list/refinement-list.js +43 -50
  384. package/es/widgets/relevant-sort/relevant-sort.js +14 -21
  385. package/es/widgets/search-box/defaultTemplates.js +0 -4
  386. package/es/widgets/search-box/search-box.js +35 -41
  387. package/es/widgets/sort-by/sort-by.js +15 -22
  388. package/es/widgets/stats/stats.js +30 -47
  389. package/es/widgets/toggle-refinement/toggle-refinement.js +20 -27
  390. package/es/widgets/voice-search/defaultTemplates.js +4 -13
  391. package/es/widgets/voice-search/voice-search.js +21 -28
  392. package/package.json +20 -119
  393. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
  394. package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
  395. package/scripts/transforms/__tests__/addWidget-to-addWidgets.test.js +1 -0
  396. package/CHANGELOG.md +0 -3693
@@ -4,74 +4,66 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- var _index = require("../../lib/utils/index.js");
9
-
10
- function 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; }
11
-
12
- 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; }
13
-
14
- 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; }
15
-
7
+ var _utils = require("../../lib/utils");
8
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
14
  function hasFindAnswersMethod(answersIndex) {
17
15
  return typeof answersIndex.findAnswers === 'function';
18
16
  }
19
-
20
- var withUsage = (0, _index.createDocumentationMessageGenerator)({
17
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
21
18
  name: 'answers',
22
19
  connector: true
23
20
  });
24
-
25
21
  var connectAnswers = function connectAnswers(renderFn) {
26
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
27
- (0, _index.checkRendering)(renderFn, withUsage());
22
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
23
+ (0, _utils.checkRendering)(renderFn, withUsage());
28
24
  return function (widgetParams) {
29
25
  var _ref = widgetParams || {},
30
- queryLanguages = _ref.queryLanguages,
31
- attributesForPrediction = _ref.attributesForPrediction,
32
- _ref$nbHits = _ref.nbHits,
33
- nbHits = _ref$nbHits === void 0 ? 1 : _ref$nbHits,
34
- _ref$renderDebounceTi = _ref.renderDebounceTime,
35
- renderDebounceTime = _ref$renderDebounceTi === void 0 ? 100 : _ref$renderDebounceTi,
36
- _ref$searchDebounceTi = _ref.searchDebounceTime,
37
- searchDebounceTime = _ref$searchDebounceTi === void 0 ? 100 : _ref$searchDebounceTi,
38
- _ref$escapeHTML = _ref.escapeHTML,
39
- escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
40
- _ref$extraParameters = _ref.extraParameters,
41
- extraParameters = _ref$extraParameters === void 0 ? {} : _ref$extraParameters; // @ts-expect-error checking for the wrong value
42
-
43
-
26
+ queryLanguages = _ref.queryLanguages,
27
+ attributesForPrediction = _ref.attributesForPrediction,
28
+ _ref$nbHits = _ref.nbHits,
29
+ nbHits = _ref$nbHits === void 0 ? 1 : _ref$nbHits,
30
+ _ref$renderDebounceTi = _ref.renderDebounceTime,
31
+ renderDebounceTime = _ref$renderDebounceTi === void 0 ? 100 : _ref$renderDebounceTi,
32
+ _ref$searchDebounceTi = _ref.searchDebounceTime,
33
+ searchDebounceTime = _ref$searchDebounceTi === void 0 ? 100 : _ref$searchDebounceTi,
34
+ _ref$escapeHTML = _ref.escapeHTML,
35
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
36
+ _ref$extraParameters = _ref.extraParameters,
37
+ extraParameters = _ref$extraParameters === void 0 ? {} : _ref$extraParameters;
38
+
39
+ // @ts-expect-error checking for the wrong value
44
40
  if (!queryLanguages || queryLanguages.length === 0) {
45
41
  throw new Error(withUsage('The `queryLanguages` expects an array of strings.'));
46
42
  }
47
-
48
- var runConcurrentSafePromise = (0, _index.createConcurrentSafePromise)();
43
+ var runConcurrentSafePromise = (0, _utils.createConcurrentSafePromise)();
49
44
  var lastHits = [];
50
45
  var isLoading = false;
51
- var debouncedRender = (0, _index.debounce)(renderFn, renderDebounceTime); // this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
46
+ var debouncedRender = (0, _utils.debounce)(renderFn, renderDebounceTime);
52
47
 
48
+ // this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
53
49
  var debouncedRefine;
54
50
  return {
55
51
  $$type: 'ais.answers',
56
52
  init: function init(initOptions) {
57
53
  var state = initOptions.state,
58
- instantSearchInstance = initOptions.instantSearchInstance;
54
+ instantSearchInstance = initOptions.instantSearchInstance;
59
55
  var answersIndex = instantSearchInstance.client.initIndex(state.index);
60
-
61
56
  if (!hasFindAnswersMethod(answersIndex)) {
62
57
  throw new Error(withUsage('`algoliasearch` >= 4.8.0 required.'));
63
58
  }
64
-
65
- debouncedRefine = (0, _index.debounce)(answersIndex.findAnswers, searchDebounceTime);
59
+ debouncedRefine = (0, _utils.debounce)(answersIndex.findAnswers, searchDebounceTime);
66
60
  renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
67
61
  instantSearchInstance: initOptions.instantSearchInstance
68
62
  }), true);
69
63
  },
70
64
  render: function render(renderOptions) {
71
65
  var _this = this;
72
-
73
66
  var query = renderOptions.state.query;
74
-
75
67
  if (!query) {
76
68
  // renders nothing with empty query
77
69
  lastHits = [];
@@ -80,15 +72,16 @@ var connectAnswers = function connectAnswers(renderFn) {
80
72
  instantSearchInstance: renderOptions.instantSearchInstance
81
73
  }), false);
82
74
  return;
83
- } // render the loader
84
-
75
+ }
85
76
 
77
+ // render the loader
86
78
  lastHits = [];
87
79
  isLoading = true;
88
80
  renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {
89
81
  instantSearchInstance: renderOptions.instantSearchInstance
90
- }), false); // call /answers API
82
+ }), false);
91
83
 
84
+ // call /answers API
92
85
  runConcurrentSafePromise(debouncedRefine(query, queryLanguages, _objectSpread(_objectSpread({}, extraParameters), {}, {
93
86
  nbHits: nbHits,
94
87
  attributesForPrediction: attributesForPrediction
@@ -97,13 +90,11 @@ var connectAnswers = function connectAnswers(renderFn) {
97
90
  // It's undefined when it's debounced.
98
91
  return;
99
92
  }
100
-
101
93
  if (escapeHTML && result.hits.length > 0) {
102
- result.hits = (0, _index.escapeHits)(result.hits);
94
+ result.hits = (0, _utils.escapeHits)(result.hits);
103
95
  }
104
-
105
- var hitsWithAbsolutePosition = (0, _index.addAbsolutePosition)(result.hits, 0, nbHits);
106
- var hitsWithAbsolutePositionAndQueryID = (0, _index.addQueryID)(hitsWithAbsolutePosition, result.queryID);
96
+ var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)(result.hits, 0, nbHits);
97
+ var hitsWithAbsolutePositionAndQueryID = (0, _utils.addQueryID)(hitsWithAbsolutePosition, result.queryID);
107
98
  lastHits = hitsWithAbsolutePositionAndQueryID;
108
99
  isLoading = false;
109
100
  debouncedRender(_objectSpread(_objectSpread({}, _this.getWidgetRenderState(renderOptions)), {}, {
@@ -134,6 +125,5 @@ var connectAnswers = function connectAnswers(renderFn) {
134
125
  };
135
126
  };
136
127
  };
137
-
138
128
  var _default = connectAnswers;
139
129
  exports.default = _default;
@@ -4,29 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- var _index = require("../../lib/utils/index.js");
9
-
10
- function 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; }
11
-
12
- 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; }
13
-
14
- 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; }
15
-
16
- var withUsage = (0, _index.createDocumentationMessageGenerator)({
7
+ var _utils = require("../../lib/utils");
8
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
17
15
  name: 'autocomplete',
18
16
  connector: true
19
17
  });
20
-
21
18
  var connectAutocomplete = function connectAutocomplete(renderFn) {
22
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
23
- (0, _index.checkRendering)(renderFn, withUsage());
19
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
20
+ (0, _utils.checkRendering)(renderFn, withUsage());
24
21
  return function (widgetParams) {
25
22
  var _ref = widgetParams || {},
26
- _ref$escapeHTML = _ref.escapeHTML,
27
- escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
28
-
29
- process.env.NODE_ENV === 'development' ? (0, _index.warning)(!widgetParams.indices, "\nThe option `indices` has been removed from the Autocomplete connector.\n\nThe indices to target are now inferred from the widgets tree.\n".concat(Array.isArray(widgetParams.indices) ? "\nAn alternative would be:\n\nconst autocomplete = connectAutocomplete(renderer);\n\nsearch.addWidgets([\n ".concat(widgetParams.indices.map(function (_ref2) {
23
+ _ref$escapeHTML = _ref.escapeHTML,
24
+ escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
25
+ process.env.NODE_ENV === 'development' ? (0, _utils.warning)(!widgetParams.indices, "\nThe option `indices` has been removed from the Autocomplete connector.\n\nThe indices to target are now inferred from the widgets tree.\n".concat(Array.isArray(widgetParams.indices) ? "\nAn alternative would be:\n\nconst autocomplete = connectAutocomplete(renderer);\n\nsearch.addWidgets([\n ".concat(widgetParams.indices.map(function (_ref2) {
30
26
  var value = _ref2.value;
31
27
  return "index({ indexName: '".concat(value, "' }),");
32
28
  }).join('\n '), "\n autocomplete()\n]);\n") : '', "\n ")) : void 0;
@@ -44,7 +40,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
44
40
  var renderState = this.getWidgetRenderState(renderOptions);
45
41
  renderState.indices.forEach(function (_ref3) {
46
42
  var sendEvent = _ref3.sendEvent,
47
- hits = _ref3.hits;
43
+ hits = _ref3.hits;
48
44
  sendEvent('view', hits);
49
45
  });
50
46
  renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
@@ -58,23 +54,20 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
58
54
  },
59
55
  getWidgetRenderState: function getWidgetRenderState(_ref4) {
60
56
  var _this = this;
61
-
62
57
  var helper = _ref4.helper,
63
- state = _ref4.state,
64
- scopedResults = _ref4.scopedResults,
65
- instantSearchInstance = _ref4.instantSearchInstance;
66
-
58
+ state = _ref4.state,
59
+ scopedResults = _ref4.scopedResults,
60
+ instantSearchInstance = _ref4.instantSearchInstance;
67
61
  if (!connectorState.refine) {
68
62
  connectorState.refine = function (query) {
69
63
  helper.setQuery(query).search();
70
64
  };
71
65
  }
72
-
73
66
  var indices = scopedResults.map(function (scopedResult) {
74
67
  // We need to escape the hits because highlighting
75
68
  // exposes HTML tags to the end-user.
76
- scopedResult.results.hits = escapeHTML ? (0, _index.escapeHits)(scopedResult.results.hits) : scopedResult.results.hits;
77
- var sendEvent = (0, _index.createSendEventForHits)({
69
+ scopedResult.results.hits = escapeHTML ? (0, _utils.escapeHits)(scopedResult.results.hits) : scopedResult.results.hits;
70
+ var sendEvent = (0, _utils.createSendEventForHits)({
78
71
  instantSearchInstance: instantSearchInstance,
79
72
  index: scopedResult.results.index,
80
73
  widgetType: _this.$$type
@@ -97,11 +90,9 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
97
90
  getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
98
91
  var searchParameters = _ref5.searchParameters;
99
92
  var query = searchParameters.query || '';
100
-
101
93
  if (query === '' || uiState && uiState.query === query) {
102
94
  return uiState;
103
95
  }
104
-
105
96
  return _objectSpread(_objectSpread({}, uiState), {}, {
106
97
  query: query
107
98
  });
@@ -111,29 +102,24 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
111
102
  var parameters = {
112
103
  query: uiState.query || ''
113
104
  };
114
-
115
105
  if (!escapeHTML) {
116
106
  return searchParameters.setQueryParameters(parameters);
117
107
  }
118
-
119
- return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _index.TAG_PLACEHOLDER));
108
+ return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _utils.TAG_PLACEHOLDER));
120
109
  },
121
110
  dispose: function dispose(_ref7) {
122
111
  var state = _ref7.state;
123
112
  unmountFn();
124
113
  var stateWithoutQuery = state.setQueryParameter('query', undefined);
125
-
126
114
  if (!escapeHTML) {
127
115
  return stateWithoutQuery;
128
116
  }
129
-
130
- return stateWithoutQuery.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
117
+ return stateWithoutQuery.setQueryParameters(Object.keys(_utils.TAG_PLACEHOLDER).reduce(function (acc, key) {
131
118
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
132
119
  }, {}));
133
120
  }
134
121
  };
135
122
  };
136
123
  };
137
-
138
124
  var _default = connectAutocomplete;
139
125
  exports.default = _default;
@@ -1,72 +1,57 @@
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
- var _index = require("../../lib/utils/index.js");
9
-
10
- 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; }
11
-
12
- 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; }
13
-
14
- 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; }
15
-
8
+ var _utils = require("../../lib/utils");
9
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
14
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
-
18
15
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
-
20
16
  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); }
21
-
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; }
23
-
24
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
-
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
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
26
19
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
-
28
- var withUsage = (0, _index.createDocumentationMessageGenerator)({
20
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
29
21
  name: 'breadcrumb',
30
22
  connector: true
31
23
  });
32
-
33
24
  var connectBreadcrumb = function connectBreadcrumb(renderFn) {
34
- var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
35
- (0, _index.checkRendering)(renderFn, withUsage());
25
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
26
+ (0, _utils.checkRendering)(renderFn, withUsage());
36
27
  var connectorState = {};
37
28
  return function (widgetParams) {
38
29
  var _ref = widgetParams || {},
39
- attributes = _ref.attributes,
40
- _ref$separator = _ref.separator,
41
- separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
42
- _ref$rootPath = _ref.rootPath,
43
- rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
44
- _ref$transformItems = _ref.transformItems,
45
- transformItems = _ref$transformItems === void 0 ? function (items) {
46
- return items;
47
- } : _ref$transformItems;
48
-
30
+ attributes = _ref.attributes,
31
+ _ref$separator = _ref.separator,
32
+ separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
33
+ _ref$rootPath = _ref.rootPath,
34
+ rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
35
+ _ref$transformItems = _ref.transformItems,
36
+ transformItems = _ref$transformItems === void 0 ? function (items) {
37
+ return items;
38
+ } : _ref$transformItems;
49
39
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
50
40
  throw new Error(withUsage('The `attributes` option expects an array of strings.'));
51
41
  }
52
-
53
42
  var _attributes = _slicedToArray(attributes, 1),
54
- hierarchicalFacetName = _attributes[0];
55
-
43
+ hierarchicalFacetName = _attributes[0];
56
44
  function getRefinedState(state, facetValue) {
57
45
  if (!facetValue) {
58
46
  var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
59
-
60
47
  if (breadcrumb.length === 0) {
61
48
  return state;
62
49
  } else {
63
50
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
64
51
  }
65
52
  }
66
-
67
53
  return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
68
54
  }
69
-
70
55
  return {
71
56
  $$type: 'ais.breadcrumb',
72
57
  init: function init(initOptions) {
@@ -89,10 +74,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
89
74
  },
90
75
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
91
76
  var helper = _ref2.helper,
92
- createURL = _ref2.createURL,
93
- results = _ref2.results,
94
- state = _ref2.state;
95
-
77
+ createURL = _ref2.createURL,
78
+ results = _ref2.results,
79
+ state = _ref2.state;
96
80
  function getItems() {
97
81
  // The hierarchicalFacets condition is required for flavors
98
82
  // that render immediately with empty results, without relying
@@ -100,10 +84,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
100
84
  if (!results || state.hierarchicalFacets.length === 0) {
101
85
  return [];
102
86
  }
103
-
104
87
  var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
105
- facetName = _state$hierarchicalFa[0].name;
106
-
88
+ facetName = _state$hierarchicalFa[0].name;
107
89
  var facetValues = results.getFacetValues(facetName, {});
108
90
  var data = Array.isArray(facetValues.data) ? facetValues.data : [];
109
91
  var items = transformItems(shiftItemsValues(prepareItems(data)), {
@@ -111,21 +93,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
111
93
  });
112
94
  return items;
113
95
  }
114
-
115
96
  var items = getItems();
116
-
117
97
  if (!connectorState.createURL) {
118
98
  connectorState.createURL = function (facetValue) {
119
99
  return createURL(getRefinedState(helper.state, facetValue));
120
100
  };
121
101
  }
122
-
123
102
  if (!connectorState.refine) {
124
103
  connectorState.refine = function (facetValue) {
125
104
  helper.setState(getRefinedState(helper.state, facetValue)).search();
126
105
  };
127
106
  }
128
-
129
107
  return {
130
108
  canRefine: items.length > 0,
131
109
  createURL: connectorState.createURL,
@@ -137,10 +115,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
137
115
  getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters) {
138
116
  if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
139
117
  var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
140
- process.env.NODE_ENV === 'development' ? (0, _index.warning)((0, _index.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
118
+ process.env.NODE_ENV === 'development' ? (0, _utils.warning)((0, _utils.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
141
119
  return searchParameters;
142
120
  }
143
-
144
121
  return searchParameters.addHierarchicalFacet({
145
122
  name: hierarchicalFacetName,
146
123
  attributes: attributes,
@@ -151,7 +128,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
151
128
  };
152
129
  };
153
130
  };
154
-
155
131
  function prepareItems(data) {
156
132
  return data.reduce(function (result, currentItem) {
157
133
  if (currentItem.isRefined) {
@@ -159,16 +135,13 @@ function prepareItems(data) {
159
135
  label: currentItem.name,
160
136
  value: currentItem.escapedValue
161
137
  });
162
-
163
138
  if (Array.isArray(currentItem.data)) {
164
139
  result = result.concat(prepareItems(currentItem.data));
165
140
  }
166
141
  }
167
-
168
142
  return result;
169
143
  }, []);
170
144
  }
171
-
172
145
  function shiftItemsValues(array) {
173
146
  return array.map(function (x, idx) {
174
147
  return {
@@ -177,6 +150,5 @@ function shiftItemsValues(array) {
177
150
  };
178
151
  });
179
152
  }
180
-
181
153
  var _default = connectBreadcrumb;
182
154
  exports.default = _default;