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,45 +1,35 @@
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
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
-
9
8
  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."); }
10
-
11
9
  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 _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; }
14
-
15
- 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; }
16
-
10
+ 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; }
11
+ 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; } }
17
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
-
19
13
  import { h, render } from 'preact';
20
14
  import { prepareTemplateProps } from "../../lib/templating/index.js";
21
15
  import GeoSearchControls from "../../components/GeoSearchControls/GeoSearchControls.js";
22
-
23
16
  var refineWithMap = function refineWithMap(_ref) {
24
17
  var refine = _ref.refine,
25
- mapInstance = _ref.mapInstance;
18
+ mapInstance = _ref.mapInstance;
26
19
  return refine({
27
20
  northEast: mapInstance.getBounds().getNorthEast().toJSON(),
28
21
  southWest: mapInstance.getBounds().getSouthWest().toJSON()
29
22
  });
30
23
  };
31
-
32
24
  var collectMarkersForNextRender = function collectMarkersForNextRender(markers, nextIds) {
33
25
  return markers.reduce(function (_ref2, marker) {
34
26
  var _ref3 = _slicedToArray(_ref2, 2),
35
- update = _ref3[0],
36
- exit = _ref3[1];
37
-
27
+ update = _ref3[0],
28
+ exit = _ref3[1];
38
29
  var persist = nextIds.includes(marker.__id);
39
30
  return persist ? [update.concat(marker), exit] : [update, exit.concat(marker)];
40
31
  }, [[], []]);
41
32
  };
42
-
43
33
  var createBoundingBoxFromMarkers = function createBoundingBoxFromMarkers(google, markers) {
44
34
  var latLngBounds = markers.reduce(function (acc, marker) {
45
35
  return acc.extend(marker.getPosition());
@@ -49,40 +39,37 @@ var createBoundingBoxFromMarkers = function createBoundingBoxFromMarkers(google,
49
39
  southWest: latLngBounds.getSouthWest().toJSON()
50
40
  };
51
41
  };
52
-
53
42
  var lockUserInteraction = function lockUserInteraction(renderState, functionThatAltersTheMapPosition) {
54
43
  renderState.isUserInteraction = false;
55
44
  functionThatAltersTheMapPosition();
56
45
  renderState.isUserInteraction = true;
57
46
  };
58
-
59
47
  var renderer = function renderer(_ref4, isFirstRendering) {
60
48
  var items = _ref4.items,
61
- position = _ref4.position,
62
- currentRefinement = _ref4.currentRefinement,
63
- refine = _ref4.refine,
64
- clearMapRefinement = _ref4.clearMapRefinement,
65
- toggleRefineOnMapMove = _ref4.toggleRefineOnMapMove,
66
- isRefineOnMapMove = _ref4.isRefineOnMapMove,
67
- setMapMoveSinceLastRefine = _ref4.setMapMoveSinceLastRefine,
68
- hasMapMoveSinceLastRefine = _ref4.hasMapMoveSinceLastRefine,
69
- isRefinedWithMap = _ref4.isRefinedWithMap,
70
- widgetParams = _ref4.widgetParams,
71
- instantSearchInstance = _ref4.instantSearchInstance;
49
+ position = _ref4.position,
50
+ currentRefinement = _ref4.currentRefinement,
51
+ refine = _ref4.refine,
52
+ clearMapRefinement = _ref4.clearMapRefinement,
53
+ toggleRefineOnMapMove = _ref4.toggleRefineOnMapMove,
54
+ isRefineOnMapMove = _ref4.isRefineOnMapMove,
55
+ setMapMoveSinceLastRefine = _ref4.setMapMoveSinceLastRefine,
56
+ hasMapMoveSinceLastRefine = _ref4.hasMapMoveSinceLastRefine,
57
+ isRefinedWithMap = _ref4.isRefinedWithMap,
58
+ widgetParams = _ref4.widgetParams,
59
+ instantSearchInstance = _ref4.instantSearchInstance;
72
60
  var container = widgetParams.container,
73
- googleReference = widgetParams.googleReference,
74
- cssClasses = widgetParams.cssClasses,
75
- templates = widgetParams.templates,
76
- initialZoom = widgetParams.initialZoom,
77
- initialPosition = widgetParams.initialPosition,
78
- enableRefine = widgetParams.enableRefine,
79
- enableClearMapRefinement = widgetParams.enableClearMapRefinement,
80
- enableRefineControl = widgetParams.enableRefineControl,
81
- mapOptions = widgetParams.mapOptions,
82
- createMarker = widgetParams.createMarker,
83
- markerOptions = widgetParams.markerOptions,
84
- renderState = widgetParams.renderState;
85
-
61
+ googleReference = widgetParams.googleReference,
62
+ cssClasses = widgetParams.cssClasses,
63
+ templates = widgetParams.templates,
64
+ initialZoom = widgetParams.initialZoom,
65
+ initialPosition = widgetParams.initialPosition,
66
+ enableRefine = widgetParams.enableRefine,
67
+ enableClearMapRefinement = widgetParams.enableClearMapRefinement,
68
+ enableRefineControl = widgetParams.enableRefineControl,
69
+ mapOptions = widgetParams.mapOptions,
70
+ createMarker = widgetParams.createMarker,
71
+ markerOptions = widgetParams.markerOptions,
72
+ renderState = widgetParams.renderState;
86
73
  if (isFirstRendering) {
87
74
  renderState.isUserInteraction = true;
88
75
  renderState.isPendingRefine = false;
@@ -105,18 +92,15 @@ var renderer = function renderer(_ref4, isFirstRendering) {
105
92
  position: googleReference.maps.ControlPosition.LEFT_TOP
106
93
  }
107
94
  }, mapOptions));
108
-
109
95
  var setupListenersWhenMapIsReady = function setupListenersWhenMapIsReady() {
110
96
  var onChange = function onChange() {
111
97
  if (renderState.isUserInteraction && enableRefine) {
112
98
  setMapMoveSinceLastRefine();
113
-
114
99
  if (isRefineOnMapMove()) {
115
100
  renderState.isPendingRefine = true;
116
101
  }
117
102
  }
118
103
  };
119
-
120
104
  renderState.mapInstance.addListener('center_changed', onChange);
121
105
  renderState.mapInstance.addListener('zoom_changed', onChange);
122
106
  renderState.mapInstance.addListener('dragstart', onChange);
@@ -130,37 +114,37 @@ var renderer = function renderer(_ref4, isFirstRendering) {
130
114
  }
131
115
  });
132
116
  };
133
-
134
117
  googleReference.maps.event.addListenerOnce(renderState.mapInstance, 'idle', setupListenersWhenMapIsReady);
135
118
  renderState.templateProps = prepareTemplateProps({
136
119
  templatesConfig: instantSearchInstance.templatesConfig,
137
120
  templates: templates
138
121
  });
139
122
  return;
140
- } // Collect markers that need to be updated or removed
141
-
123
+ }
142
124
 
125
+ // Collect markers that need to be updated or removed
143
126
  var nextItemsIds = items.map(function (_) {
144
127
  return _.objectID;
145
128
  });
146
-
147
129
  var _collectMarkersForNex = collectMarkersForNextRender(renderState.markers, nextItemsIds),
148
- _collectMarkersForNex2 = _slicedToArray(_collectMarkersForNex, 2),
149
- updateMarkers = _collectMarkersForNex2[0],
150
- exitMarkers = _collectMarkersForNex2[1]; // Collect items that will be added
151
-
130
+ _collectMarkersForNex2 = _slicedToArray(_collectMarkersForNex, 2),
131
+ updateMarkers = _collectMarkersForNex2[0],
132
+ exitMarkers = _collectMarkersForNex2[1];
152
133
 
134
+ // Collect items that will be added
153
135
  var updateMarkerIds = updateMarkers.map(function (_) {
154
136
  return _.__id;
155
137
  });
156
138
  var nextPendingItems = items.filter(function (item) {
157
139
  return !updateMarkerIds.includes(item.objectID);
158
- }); // Remove all markers that need to be removed
140
+ });
159
141
 
142
+ // Remove all markers that need to be removed
160
143
  exitMarkers.forEach(function (marker) {
161
144
  return marker.setMap(null);
162
- }); // Create the markers from the items
145
+ });
163
146
 
147
+ // Create the markers from the items
164
148
  renderState.markers = updateMarkers.concat(nextPendingItems.map(function (item) {
165
149
  var marker = createMarker({
166
150
  map: renderState.mapInstance,
@@ -178,15 +162,15 @@ var renderer = function renderer(_ref4, isFirstRendering) {
178
162
  });
179
163
  return marker;
180
164
  }));
181
- var shouldUpdate = !hasMapMoveSinceLastRefine(); // We use this value for differentiate the padding to apply during
165
+ var shouldUpdate = !hasMapMoveSinceLastRefine();
166
+
167
+ // We use this value for differentiate the padding to apply during
182
168
  // fitBounds. When we don't have a currenRefinement (boundingBox)
183
169
  // we let Google Maps compute the automatic padding. But when we
184
170
  // provide the currentRefinement we explicitly set the padding
185
171
  // to `0` otherwise the map will decrease the zoom on each refine.
186
-
187
172
  var boundingBoxPadding = currentRefinement ? 0 : null;
188
173
  var boundingBox = !currentRefinement && Boolean(renderState.markers.length) ? createBoundingBoxFromMarkers(googleReference, renderState.markers) : currentRefinement;
189
-
190
174
  if (boundingBox && shouldUpdate) {
191
175
  lockUserInteraction(renderState, function () {
192
176
  renderState.mapInstance.fitBounds(new googleReference.maps.LatLngBounds(boundingBox.southWest, boundingBox.northEast), boundingBoxPadding);
@@ -197,7 +181,6 @@ var renderer = function renderer(_ref4, isFirstRendering) {
197
181
  renderState.mapInstance.setZoom(initialZoom);
198
182
  });
199
183
  }
200
-
201
184
  render(h(GeoSearchControls, {
202
185
  cssClasses: cssClasses,
203
186
  enableRefine: enableRefine,
@@ -217,5 +200,4 @@ var renderer = function renderer(_ref4, isFirstRendering) {
217
200
  templateProps: renderState.templateProps
218
201
  }), container.querySelector(".".concat(cssClasses.tree)));
219
202
  };
220
-
221
203
  export default renderer;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="google.maps" />
2
+ /// <reference types="googlemaps" />
2
3
  import type { renderTemplate } from '../../lib/templating';
3
4
  export declare type HTMLMarkerArguments = {
4
5
  __id: string;
@@ -1,66 +1,43 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
-
5
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6
-
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8
-
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
10
-
11
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
-
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13
7
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
-
15
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
16
-
8
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
17
9
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18
-
19
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
20
-
21
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
22
-
23
- 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; }
24
-
10
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12
+ 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; }
13
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
+ 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); }
25
15
  /* global google EventListener */
26
16
  import { render } from 'preact';
27
-
28
17
  var createHTMLMarker = function createHTMLMarker(googleReference) {
29
18
  var HTMLMarker = /*#__PURE__*/function (_googleReference$maps) {
30
19
  _inherits(HTMLMarker, _googleReference$maps);
31
-
32
20
  var _super = _createSuper(HTMLMarker);
33
-
34
21
  function HTMLMarker(_ref) {
35
22
  var _this;
36
-
37
23
  var __id = _ref.__id,
38
- position = _ref.position,
39
- map = _ref.map,
40
- template = _ref.template,
41
- className = _ref.className,
42
- _ref$anchor = _ref.anchor,
43
- anchor = _ref$anchor === void 0 ? {
44
- x: 0,
45
- y: 0
46
- } : _ref$anchor;
47
-
24
+ position = _ref.position,
25
+ map = _ref.map,
26
+ template = _ref.template,
27
+ className = _ref.className,
28
+ _ref$anchor = _ref.anchor,
29
+ anchor = _ref$anchor === void 0 ? {
30
+ x: 0,
31
+ y: 0
32
+ } : _ref$anchor;
48
33
  _classCallCheck(this, HTMLMarker);
49
-
50
34
  _this = _super.call(this);
51
-
52
35
  _defineProperty(_assertThisInitialized(_this), "__id", void 0);
53
-
54
36
  _defineProperty(_assertThisInitialized(_this), "anchor", void 0);
55
-
56
37
  _defineProperty(_assertThisInitialized(_this), "offset", void 0);
57
-
58
38
  _defineProperty(_assertThisInitialized(_this), "listeners", void 0);
59
-
60
39
  _defineProperty(_assertThisInitialized(_this), "latLng", void 0);
61
-
62
40
  _defineProperty(_assertThisInitialized(_this), "element", void 0);
63
-
64
41
  _this.__id = __id;
65
42
  _this.anchor = anchor;
66
43
  _this.listeners = {};
@@ -68,33 +45,31 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
68
45
  _this.element = document.createElement('div');
69
46
  _this.element.className = className;
70
47
  _this.element.style.position = 'absolute';
71
-
72
48
  if (_typeof(template) === 'object') {
73
49
  render(template, _this.element);
74
50
  } else {
75
51
  _this.element.innerHTML = template;
76
52
  }
77
-
78
53
  _this.setMap(map);
79
-
80
54
  return _this;
81
55
  }
82
-
83
56
  _createClass(HTMLMarker, [{
84
57
  key: "onAdd",
85
58
  value: function onAdd() {
86
59
  // Append the element to the map
87
- this.getPanes().overlayMouseTarget.appendChild(this.element); // Compute the offset onAdd & cache it because afterwards
60
+ this.getPanes().overlayMouseTarget.appendChild(this.element);
61
+
62
+ // Compute the offset onAdd & cache it because afterwards
88
63
  // it won't retrieve the correct values, we also avoid
89
64
  // to read the values on every draw
90
-
91
65
  var bbBox = this.element.getBoundingClientRect();
92
66
  this.offset = {
93
67
  x: this.anchor.x + bbBox.width / 2,
94
68
  y: this.anchor.y + bbBox.height
95
- }; // Force the width of the element will avoid the
96
- // content to collapse when we move the map
69
+ };
97
70
 
71
+ // Force the width of the element will avoid the
72
+ // content to collapse when we move the map
98
73
  this.element.style.width = "".concat(bbBox.width, "px");
99
74
  }
100
75
  }, {
@@ -102,25 +77,26 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
102
77
  value: function draw() {
103
78
  var position = this.getProjection().fromLatLngToDivPixel(this.latLng);
104
79
  this.element.style.left = "".concat(Math.round(position.x - this.offset.x), "px");
105
- this.element.style.top = "".concat(Math.round(position.y - this.offset.y), "px"); // Markers to the south are in front of markers to the north
106
- // This is the default behaviour of Google Maps
80
+ this.element.style.top = "".concat(Math.round(position.y - this.offset.y), "px");
107
81
 
82
+ // Markers to the south are in front of markers to the north
83
+ // This is the default behaviour of Google Maps
108
84
  this.element.style.zIndex = String(parseInt(this.element.style.top, 10));
109
85
  }
110
86
  }, {
111
87
  key: "onRemove",
112
88
  value: function onRemove() {
113
89
  var _this2 = this;
114
-
115
90
  if (this.element) {
116
91
  this.element.parentNode.removeChild(this.element);
117
92
  Object.keys(this.listeners).forEach(function (eventName) {
118
93
  _this2.element.removeEventListener(eventName, _this2.listeners[eventName]);
119
- }); // after onRemove the class is no longer used, thus it can be deleted
120
- // @ts-expect-error
121
-
122
- delete this.element; // @ts-expect-error
94
+ });
123
95
 
96
+ // after onRemove the class is no longer used, thus it can be deleted
97
+ // @ts-expect-error
98
+ delete this.element;
99
+ // @ts-expect-error
124
100
  delete this.listeners;
125
101
  }
126
102
  }
@@ -142,11 +118,8 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
142
118
  return this.latLng;
143
119
  }
144
120
  }]);
145
-
146
121
  return HTMLMarker;
147
122
  }(googleReference.maps.OverlayView);
148
-
149
123
  return HTMLMarker;
150
124
  };
151
-
152
125
  export default createHTMLMarker;
@@ -1,7 +1,5 @@
1
1
  import { h } from 'preact';
2
-
3
2
  var _ref = h("p", null, "Your custom HTML Marker");
4
-
5
3
  var defaultTemplates = {
6
4
  HTMLMarker: function HTMLMarker() {
7
5
  return _ref;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="google.maps" />
2
+ /// <reference types="googlemaps" />
2
3
  import type { GeoSearchConnectorParams, GeoSearchWidgetDescription, GeoHit } from '../../connectors/geo-search/connectGeoSearch';
3
4
  import type { HTMLMarkerArguments } from './createHTMLMarker';
4
5
  import type { GeoLoc, Template, WidgetFactory } from '../../types';
@@ -1,15 +1,15 @@
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 = ["initialZoom", "initialPosition", "templates", "cssClasses", "builtInMarker", "customHTMLMarker", "enableRefine", "enableClearMapRefinement", "enableRefineControl", "container", "googleReference"],
3
+ _excluded2 = ["item"],
4
+ _excluded3 = ["item"];
5
+ 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; }
6
+ 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; }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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
10
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
-
9
11
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
-
11
12
  // global for TypeScript alone
12
-
13
13
  /* global google */
14
14
  import { cx } from '@algolia/ui-components-shared';
15
15
  import { render } from 'preact';
@@ -24,7 +24,6 @@ var withUsage = createDocumentationMessageGenerator({
24
24
  name: 'geo-search'
25
25
  });
26
26
  var suit = component('GeoSearch');
27
-
28
27
  /**
29
28
  * The **GeoSearch** widget displays the list of results from the search on a Google Maps. It also provides a way to search for results based on their position. The widget also provide some of the common GeoSearch patterns like search on map interaction.
30
29
  *
@@ -40,30 +39,29 @@ var suit = component('GeoSearch');
40
39
  */
41
40
  var geoSearch = function geoSearch(widgetParams) {
42
41
  var _ref = widgetParams || {},
43
- _ref$initialZoom = _ref.initialZoom,
44
- initialZoom = _ref$initialZoom === void 0 ? 1 : _ref$initialZoom,
45
- _ref$initialPosition = _ref.initialPosition,
46
- initialPosition = _ref$initialPosition === void 0 ? {
47
- lat: 0,
48
- lng: 0
49
- } : _ref$initialPosition,
50
- _ref$templates = _ref.templates,
51
- userTemplates = _ref$templates === void 0 ? {} : _ref$templates,
52
- _ref$cssClasses = _ref.cssClasses,
53
- userCssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses,
54
- _ref$builtInMarker = _ref.builtInMarker,
55
- userBuiltInMarker = _ref$builtInMarker === void 0 ? {} : _ref$builtInMarker,
56
- userCustomHTMLMarker = _ref.customHTMLMarker,
57
- _ref$enableRefine = _ref.enableRefine,
58
- enableRefine = _ref$enableRefine === void 0 ? true : _ref$enableRefine,
59
- _ref$enableClearMapRe = _ref.enableClearMapRefinement,
60
- enableClearMapRefinement = _ref$enableClearMapRe === void 0 ? true : _ref$enableClearMapRe,
61
- _ref$enableRefineCont = _ref.enableRefineControl,
62
- enableRefineControl = _ref$enableRefineCont === void 0 ? true : _ref$enableRefineCont,
63
- container = _ref.container,
64
- googleReference = _ref.googleReference,
65
- otherWidgetParams = _objectWithoutProperties(_ref, ["initialZoom", "initialPosition", "templates", "cssClasses", "builtInMarker", "customHTMLMarker", "enableRefine", "enableClearMapRefinement", "enableRefineControl", "container", "googleReference"]);
66
-
42
+ _ref$initialZoom = _ref.initialZoom,
43
+ initialZoom = _ref$initialZoom === void 0 ? 1 : _ref$initialZoom,
44
+ _ref$initialPosition = _ref.initialPosition,
45
+ initialPosition = _ref$initialPosition === void 0 ? {
46
+ lat: 0,
47
+ lng: 0
48
+ } : _ref$initialPosition,
49
+ _ref$templates = _ref.templates,
50
+ userTemplates = _ref$templates === void 0 ? {} : _ref$templates,
51
+ _ref$cssClasses = _ref.cssClasses,
52
+ userCssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses,
53
+ _ref$builtInMarker = _ref.builtInMarker,
54
+ userBuiltInMarker = _ref$builtInMarker === void 0 ? {} : _ref$builtInMarker,
55
+ userCustomHTMLMarker = _ref.customHTMLMarker,
56
+ _ref$enableRefine = _ref.enableRefine,
57
+ enableRefine = _ref$enableRefine === void 0 ? true : _ref$enableRefine,
58
+ _ref$enableClearMapRe = _ref.enableClearMapRefinement,
59
+ enableClearMapRefinement = _ref$enableClearMapRe === void 0 ? true : _ref$enableClearMapRe,
60
+ _ref$enableRefineCont = _ref.enableRefineControl,
61
+ enableRefineControl = _ref$enableRefineCont === void 0 ? true : _ref$enableRefineCont,
62
+ container = _ref.container,
63
+ googleReference = _ref.googleReference,
64
+ otherWidgetParams = _objectWithoutProperties(_ref, _excluded);
67
65
  var defaultBuiltInMarker = {
68
66
  createOptions: function createOptions() {
69
67
  return {};
@@ -76,15 +74,12 @@ var geoSearch = function geoSearch(widgetParams) {
76
74
  },
77
75
  events: {}
78
76
  };
79
-
80
77
  if (!container) {
81
78
  throw new Error(withUsage('The `container` option is required.'));
82
79
  }
83
-
84
80
  if (!googleReference) {
85
81
  throw new Error(withUsage('The `googleReference` option is required.'));
86
82
  }
87
-
88
83
  var containerNode = getContainerNode(container);
89
84
  var cssClasses = {
90
85
  root: cx(suit(), userCssClasses.root),
@@ -119,32 +114,23 @@ var geoSearch = function geoSearch(widgetParams) {
119
114
  descendantName: 'reset'
120
115
  }), userCssClasses.reset)
121
116
  };
122
-
123
117
  var templates = _objectSpread(_objectSpread({}, defaultTemplates), userTemplates);
124
-
125
118
  var builtInMarker = _objectSpread(_objectSpread({}, defaultBuiltInMarker), userBuiltInMarker);
126
-
127
119
  var isCustomHTMLMarker = Boolean(userCustomHTMLMarker) || Boolean(userTemplates.HTMLMarker);
128
-
129
120
  var customHTMLMarker = isCustomHTMLMarker && _objectSpread(_objectSpread({}, defaultCustomHTMLMarker), userCustomHTMLMarker);
130
-
131
121
  var createBuiltInMarker = function createBuiltInMarker(_ref2) {
132
122
  var item = _ref2.item,
133
- rest = _objectWithoutProperties(_ref2, ["item"]);
134
-
123
+ rest = _objectWithoutProperties(_ref2, _excluded2);
135
124
  return new googleReference.maps.Marker(_objectSpread(_objectSpread(_objectSpread({}, builtInMarker.createOptions(item)), rest), {}, {
136
125
  // @ts-expect-error @types/googlemaps doesn't document this
137
126
  __id: item.objectID,
138
127
  position: item._geoloc
139
128
  }));
140
129
  };
141
-
142
130
  var HTMLMarker = createHTMLMarker(googleReference);
143
-
144
131
  var createCustomHTMLMarker = function createCustomHTMLMarker(_ref3) {
145
132
  var item = _ref3.item,
146
- rest = _objectWithoutProperties(_ref3, ["item"]);
147
-
133
+ rest = _objectWithoutProperties(_ref3, _excluded3);
148
134
  return new HTMLMarker(_objectSpread(_objectSpread(_objectSpread({}, customHTMLMarker.createOptions(item)), rest), {}, {
149
135
  __id: item.objectID,
150
136
  position: item._geoloc,
@@ -158,7 +144,6 @@ var geoSearch = function geoSearch(widgetParams) {
158
144
  })
159
145
  }));
160
146
  };
161
-
162
147
  var createMarker = !customHTMLMarker ? createBuiltInMarker : createCustomHTMLMarker;
163
148
  var markerOptions = !customHTMLMarker ? builtInMarker : customHTMLMarker;
164
149
  var makeWidget = connectGeoSearch(renderer, function () {
@@ -181,5 +166,4 @@ var geoSearch = function geoSearch(widgetParams) {
181
166
  $$widgetType: 'ais.geoSearch'
182
167
  });
183
168
  };
184
-
185
169
  export default geoSearch;
@@ -4,10 +4,10 @@ import { cx } from '@algolia/ui-components-shared';
4
4
  var defaultTemplates = {
5
5
  item: function item(_ref) {
6
6
  var url = _ref.url,
7
- label = _ref.label,
8
- count = _ref.count,
9
- cssClasses = _ref.cssClasses,
10
- isRefined = _ref.isRefined;
7
+ label = _ref.label,
8
+ count = _ref.count,
9
+ cssClasses = _ref.cssClasses,
10
+ isRefined = _ref.isRefined;
11
11
  return h("a", {
12
12
  className: cx(cx(cssClasses.link), cx(isRefined ? cssClasses.selectedItemLink : undefined)),
13
13
  href: url