instantsearch.js 4.80.0 → 4.82.0

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 (320) hide show
  1. package/cjs/components/Answers/Answers.js +4 -4
  2. package/cjs/components/Breadcrumb/Breadcrumb.js +2 -2
  3. package/cjs/components/ClearRefinements/ClearRefinements.js +2 -2
  4. package/cjs/components/GeoSearchControls/GeoSearchControls.js +2 -2
  5. package/cjs/components/Highlight/Highlight.js +3 -3
  6. package/cjs/components/InfiniteHits/InfiniteHits.js +4 -4
  7. package/cjs/components/MenuSelect/MenuSelect.js +2 -2
  8. package/cjs/components/Pagination/Pagination.js +1 -1
  9. package/cjs/components/Panel/Panel.js +5 -5
  10. package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +1 -1
  11. package/cjs/components/RangeInput/RangeInput.js +14 -14
  12. package/cjs/components/RefinementList/RefinementList.js +16 -16
  13. package/cjs/components/RefinementList/RefinementListItem.js +2 -2
  14. package/cjs/components/RelevantSort/RelevantSort.js +1 -1
  15. package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -3
  16. package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -3
  17. package/cjs/components/SearchBox/SearchBox.js +31 -19
  18. package/cjs/components/Slider/Pit.js +2 -2
  19. package/cjs/components/Slider/Rheostat.js +13 -13
  20. package/cjs/components/Slider/Slider.js +19 -19
  21. package/cjs/components/Snippet/Snippet.js +3 -3
  22. package/cjs/components/Stats/Stats.js +6 -6
  23. package/cjs/components/Template/Template.js +18 -18
  24. package/cjs/components/ToggleRefinement/ToggleRefinement.js +2 -2
  25. package/cjs/components/VoiceSearch/VoiceSearch.js +1 -1
  26. package/cjs/connectors/answers/connectAnswers.js +2 -2
  27. package/cjs/connectors/autocomplete/connectAutocomplete.js +2 -2
  28. package/cjs/connectors/breadcrumb/connectBreadcrumb.js +6 -6
  29. package/cjs/connectors/chat/connectChat.js +221 -0
  30. package/cjs/connectors/clear-refinements/connectClearRefinements.js +7 -7
  31. package/cjs/connectors/configure/connectConfigure.js +3 -3
  32. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +8 -8
  33. package/cjs/connectors/current-refinements/connectCurrentRefinements.js +7 -7
  34. package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +2 -2
  35. package/cjs/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +6 -3
  36. package/cjs/connectors/geo-search/connectGeoSearch.js +2 -2
  37. package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +28 -16
  38. package/cjs/connectors/hits/connectHits.js +2 -2
  39. package/cjs/connectors/hits/connectHitsWithInsights.js +1 -1
  40. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +7 -7
  41. package/cjs/connectors/index.js +8 -1
  42. package/cjs/connectors/index.umd.js +239 -0
  43. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +11 -11
  44. package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +1 -1
  45. package/cjs/connectors/looking-similar/connectLookingSimilar.js +3 -3
  46. package/cjs/connectors/menu/connectMenu.js +8 -8
  47. package/cjs/connectors/numeric-menu/connectNumericMenu.js +7 -7
  48. package/cjs/connectors/pagination/Paginator.js +5 -5
  49. package/cjs/connectors/pagination/connectPagination.js +3 -3
  50. package/cjs/connectors/powered-by/connectPoweredBy.js +2 -2
  51. package/cjs/connectors/query-rules/connectQueryRules.js +7 -7
  52. package/cjs/connectors/range/connectRange.js +22 -22
  53. package/cjs/connectors/rating-menu/connectRatingMenu.js +9 -9
  54. package/cjs/connectors/refinement-list/connectRefinementList.js +4 -4
  55. package/cjs/connectors/related-products/connectRelatedProducts.js +3 -3
  56. package/cjs/connectors/relevant-sort/connectRelevantSort.js +2 -2
  57. package/cjs/connectors/search-box/connectSearchBox.js +2 -2
  58. package/cjs/connectors/sort-by/connectSortBy.js +2 -2
  59. package/cjs/connectors/stats/connectStats.js +2 -2
  60. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +10 -10
  61. package/cjs/connectors/trending-items/connectTrendingItems.js +3 -3
  62. package/cjs/connectors/voice-search/connectVoiceSearch.js +3 -3
  63. package/cjs/helpers/components/Highlight.js +3 -3
  64. package/cjs/helpers/components/ReverseHighlight.js +5 -5
  65. package/cjs/helpers/components/ReverseSnippet.js +5 -5
  66. package/cjs/helpers/components/Snippet.js +3 -3
  67. package/cjs/helpers/index.js +2 -3
  68. package/cjs/index.js +4 -5
  69. package/cjs/lib/InstantSearch.js +13 -13
  70. package/cjs/lib/chat/chat.js +177 -0
  71. package/cjs/lib/chat/index.js +27 -0
  72. package/cjs/lib/createHelpers.js +2 -2
  73. package/cjs/lib/infiniteHitsCache/index.js +1 -1
  74. package/cjs/lib/infiniteHitsCache/sessionStorage.js +2 -2
  75. package/cjs/lib/insights/client.js +2 -2
  76. package/cjs/lib/insights/index.js +2 -3
  77. package/cjs/lib/routers/history.js +8 -8
  78. package/cjs/lib/routers/index.js +1 -1
  79. package/cjs/lib/server.js +2 -2
  80. package/cjs/lib/stateMappings/index.js +1 -1
  81. package/cjs/lib/stateMappings/simple.js +4 -4
  82. package/cjs/lib/stateMappings/singleIndex.js +4 -4
  83. package/cjs/lib/templating/prepareTemplateProps.js +7 -7
  84. package/cjs/lib/templating/renderTemplate.js +3 -3
  85. package/cjs/lib/useStickToBottom.js +20 -0
  86. package/cjs/lib/utils/checkIndexUiState.js +14 -14
  87. package/cjs/lib/utils/createSendEventForFacet.js +6 -6
  88. package/cjs/lib/utils/createSendEventForHits.js +6 -6
  89. package/cjs/lib/utils/escape-highlight.js +4 -4
  90. package/cjs/lib/utils/geo-search.js +4 -4
  91. package/cjs/lib/utils/hits-absolute-position.js +2 -2
  92. package/cjs/lib/utils/hits-query-id.js +2 -2
  93. package/cjs/lib/utils/hydrateRecommendCache.js +2 -2
  94. package/cjs/lib/utils/hydrateSearchClient.js +6 -6
  95. package/cjs/lib/utils/mergeSearchParameters.js +4 -4
  96. package/cjs/lib/utils/range.js +5 -5
  97. package/cjs/lib/utils/reverseHighlightedParts.js +2 -2
  98. package/cjs/lib/version.js +1 -1
  99. package/cjs/lib/voiceSearchHelper/index.js +2 -2
  100. package/cjs/middlewares/createInsightsMiddleware.js +13 -13
  101. package/cjs/middlewares/createRouterMiddleware.js +3 -3
  102. package/cjs/templates/carousel/carousel.js +34 -7
  103. package/cjs/widgets/analytics/analytics.js +2 -2
  104. package/cjs/widgets/answers/answers.js +3 -3
  105. package/cjs/widgets/autocomplete/autocomplete.js +281 -0
  106. package/cjs/widgets/breadcrumb/breadcrumb.js +3 -3
  107. package/cjs/widgets/chat/chat.js +612 -0
  108. package/cjs/widgets/clear-refinements/clear-refinements.js +3 -3
  109. package/cjs/widgets/configure/configure.js +3 -3
  110. package/cjs/widgets/configure-related-items/configure-related-items.js +3 -3
  111. package/cjs/widgets/current-refinements/current-refinements.js +3 -3
  112. package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +5 -5
  113. package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +8 -6
  114. package/cjs/widgets/geo-search/GeoSearchRenderer.js +7 -7
  115. package/cjs/widgets/geo-search/createHTMLMarker.js +12 -12
  116. package/cjs/widgets/geo-search/geo-search.js +5 -5
  117. package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +3 -3
  118. package/cjs/widgets/hits/hits.js +7 -7
  119. package/cjs/widgets/hits-per-page/hits-per-page.js +3 -3
  120. package/cjs/widgets/index/index.js +18 -11
  121. package/cjs/widgets/index.js +17 -2
  122. package/cjs/widgets/index.umd.js +275 -0
  123. package/cjs/widgets/infinite-hits/infinite-hits.js +3 -3
  124. package/cjs/widgets/looking-similar/looking-similar.js +6 -6
  125. package/cjs/widgets/menu/menu.js +3 -3
  126. package/cjs/widgets/menu-select/menu-select.js +3 -3
  127. package/cjs/widgets/numeric-menu/numeric-menu.js +3 -3
  128. package/cjs/widgets/pagination/pagination.js +3 -3
  129. package/cjs/widgets/panel/panel.js +3 -3
  130. package/cjs/widgets/places/places.js +4 -4
  131. package/cjs/widgets/powered-by/powered-by.js +3 -3
  132. package/cjs/widgets/query-rule-context/query-rule-context.js +3 -3
  133. package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +3 -3
  134. package/cjs/widgets/range-input/range-input.js +7 -7
  135. package/cjs/widgets/range-slider/range-slider.js +7 -7
  136. package/cjs/widgets/rating-menu/rating-menu.js +3 -3
  137. package/cjs/widgets/refinement-list/refinement-list.js +3 -3
  138. package/cjs/widgets/related-products/related-products.js +6 -6
  139. package/cjs/widgets/relevant-sort/relevant-sort.js +3 -3
  140. package/cjs/widgets/search-box/search-box.js +3 -3
  141. package/cjs/widgets/sort-by/sort-by.js +3 -3
  142. package/cjs/widgets/stats/stats.js +3 -3
  143. package/cjs/widgets/toggle-refinement/toggle-refinement.js +3 -3
  144. package/cjs/widgets/trending-items/trending-items.js +6 -6
  145. package/cjs/widgets/voice-search/voice-search.js +3 -3
  146. package/dist/instantsearch.development.d.ts +165 -14
  147. package/dist/instantsearch.development.js +1456 -680
  148. package/dist/instantsearch.development.js.map +1 -1
  149. package/dist/instantsearch.production.d.ts +165 -14
  150. package/dist/instantsearch.production.min.d.ts +165 -14
  151. package/dist/instantsearch.production.min.js +2 -2
  152. package/dist/instantsearch.production.min.js.map +1 -1
  153. package/es/components/Answers/Answers.js +3 -3
  154. package/es/components/Breadcrumb/Breadcrumb.js +1 -1
  155. package/es/components/ClearRefinements/ClearRefinements.js +1 -1
  156. package/es/components/GeoSearchControls/GeoSearchControls.js +1 -1
  157. package/es/components/Highlight/Highlight.js +3 -3
  158. package/es/components/InfiniteHits/InfiniteHits.js +3 -3
  159. package/es/components/MenuSelect/MenuSelect.js +1 -1
  160. package/es/components/Panel/Panel.js +4 -4
  161. package/es/components/RangeInput/RangeInput.js +13 -13
  162. package/es/components/RefinementList/RefinementList.js +15 -15
  163. package/es/components/RefinementList/RefinementListItem.js +1 -1
  164. package/es/components/ReverseHighlight/ReverseHighlight.js +3 -3
  165. package/es/components/ReverseSnippet/ReverseSnippet.js +3 -3
  166. package/es/components/SearchBox/SearchBox.d.ts +4 -0
  167. package/es/components/SearchBox/SearchBox.js +30 -18
  168. package/es/components/Slider/Pit.js +2 -2
  169. package/es/components/Slider/Rheostat.js +13 -13
  170. package/es/components/Slider/Slider.js +18 -18
  171. package/es/components/Snippet/Snippet.js +3 -3
  172. package/es/components/Stats/Stats.js +5 -5
  173. package/es/components/Template/Template.js +18 -18
  174. package/es/components/ToggleRefinement/ToggleRefinement.js +1 -1
  175. package/es/connectors/answers/connectAnswers.js +2 -2
  176. package/es/connectors/autocomplete/connectAutocomplete.js +2 -2
  177. package/es/connectors/breadcrumb/connectBreadcrumb.js +6 -6
  178. package/es/connectors/chat/connectChat.d.ts +433 -0
  179. package/es/connectors/chat/connectChat.js +215 -0
  180. package/es/connectors/clear-refinements/connectClearRefinements.js +7 -7
  181. package/es/connectors/configure/connectConfigure.js +2 -2
  182. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +7 -7
  183. package/es/connectors/current-refinements/connectCurrentRefinements.js +7 -7
  184. package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +2 -2
  185. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +6 -0
  186. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +6 -3
  187. package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -0
  188. package/es/connectors/geo-search/connectGeoSearch.js +2 -2
  189. package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +28 -16
  190. package/es/connectors/hits/connectHits.d.ts +1 -0
  191. package/es/connectors/hits/connectHits.js +2 -2
  192. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -0
  193. package/es/connectors/hits-per-page/connectHitsPerPage.js +7 -7
  194. package/es/connectors/index.d.ts +1 -0
  195. package/es/connectors/index.js +2 -1
  196. package/es/connectors/index.umd.d.ts +39 -0
  197. package/es/connectors/index.umd.js +47 -0
  198. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -0
  199. package/es/connectors/infinite-hits/connectInfiniteHits.js +11 -11
  200. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -0
  201. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -0
  202. package/es/connectors/looking-similar/connectLookingSimilar.js +3 -3
  203. package/es/connectors/menu/connectMenu.js +8 -8
  204. package/es/connectors/numeric-menu/connectNumericMenu.js +7 -7
  205. package/es/connectors/pagination/Paginator.js +5 -5
  206. package/es/connectors/pagination/connectPagination.js +2 -2
  207. package/es/connectors/powered-by/connectPoweredBy.js +2 -2
  208. package/es/connectors/query-rules/connectQueryRules.js +7 -7
  209. package/es/connectors/range/connectRange.js +22 -22
  210. package/es/connectors/rating-menu/connectRatingMenu.js +9 -9
  211. package/es/connectors/refinement-list/connectRefinementList.js +4 -4
  212. package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -0
  213. package/es/connectors/related-products/connectRelatedProducts.js +3 -3
  214. package/es/connectors/relevant-sort/connectRelevantSort.js +2 -2
  215. package/es/connectors/search-box/connectSearchBox.js +2 -2
  216. package/es/connectors/sort-by/connectSortBy.js +2 -2
  217. package/es/connectors/stats/connectStats.js +2 -2
  218. package/es/connectors/toggle-refinement/connectToggleRefinement.js +10 -10
  219. package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -0
  220. package/es/connectors/trending-items/connectTrendingItems.js +3 -3
  221. package/es/connectors/voice-search/connectVoiceSearch.js +2 -2
  222. package/es/helpers/components/Highlight.js +3 -3
  223. package/es/helpers/components/ReverseHighlight.js +5 -5
  224. package/es/helpers/components/ReverseSnippet.js +5 -5
  225. package/es/helpers/components/Snippet.js +3 -3
  226. package/es/lib/InstantSearch.d.ts +1 -1
  227. package/es/lib/InstantSearch.js +12 -12
  228. package/es/lib/chat/chat.d.ts +40 -0
  229. package/es/lib/chat/chat.js +166 -0
  230. package/es/lib/chat/index.d.ts +7 -0
  231. package/es/lib/chat/index.js +5 -0
  232. package/es/lib/createHelpers.js +2 -2
  233. package/es/lib/infiniteHitsCache/sessionStorage.js +2 -2
  234. package/es/lib/insights/client.js +2 -2
  235. package/es/lib/routers/history.js +7 -7
  236. package/es/lib/server.js +2 -2
  237. package/es/lib/stateMappings/simple.js +4 -4
  238. package/es/lib/stateMappings/singleIndex.js +4 -4
  239. package/es/lib/templating/prepareTemplateProps.js +7 -7
  240. package/es/lib/templating/renderTemplate.js +2 -2
  241. package/es/lib/useStickToBottom.d.ts +1 -0
  242. package/es/lib/useStickToBottom.js +14 -0
  243. package/es/lib/utils/checkIndexUiState.js +14 -14
  244. package/es/lib/utils/createSendEventForFacet.js +6 -6
  245. package/es/lib/utils/createSendEventForHits.js +6 -6
  246. package/es/lib/utils/escape-highlight.js +4 -4
  247. package/es/lib/utils/geo-search.js +4 -4
  248. package/es/lib/utils/hits-absolute-position.js +2 -2
  249. package/es/lib/utils/hits-query-id.js +2 -2
  250. package/es/lib/utils/hydrateRecommendCache.js +2 -2
  251. package/es/lib/utils/hydrateSearchClient.js +6 -6
  252. package/es/lib/utils/mergeSearchParameters.js +4 -4
  253. package/es/lib/utils/range.js +5 -5
  254. package/es/lib/utils/reverseHighlightedParts.js +2 -2
  255. package/es/lib/version.d.ts +1 -1
  256. package/es/lib/version.js +1 -1
  257. package/es/lib/voiceSearchHelper/index.js +2 -2
  258. package/es/middlewares/createInsightsMiddleware.js +13 -13
  259. package/es/middlewares/createRouterMiddleware.js +2 -2
  260. package/es/templates/carousel/carousel.d.ts +10 -3
  261. package/es/templates/carousel/carousel.js +35 -8
  262. package/es/types/render-state.d.ts +2 -1
  263. package/es/types/templates.d.ts +1 -1
  264. package/es/types/widget.d.ts +10 -3
  265. package/es/widgets/analytics/analytics.js +2 -2
  266. package/es/widgets/answers/answers.js +2 -2
  267. package/es/widgets/autocomplete/autocomplete.d.ts +57 -0
  268. package/es/widgets/autocomplete/autocomplete.js +274 -0
  269. package/es/widgets/breadcrumb/breadcrumb.js +2 -2
  270. package/es/widgets/chat/chat.d.ts +559 -0
  271. package/es/widgets/chat/chat.js +594 -0
  272. package/es/widgets/clear-refinements/clear-refinements.js +2 -2
  273. package/es/widgets/configure/configure.js +2 -2
  274. package/es/widgets/configure-related-items/configure-related-items.js +2 -2
  275. package/es/widgets/current-refinements/current-refinements.js +2 -2
  276. package/es/widgets/dynamic-widgets/dynamic-widgets.js +4 -4
  277. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -1
  278. package/es/widgets/frequently-bought-together/frequently-bought-together.js +7 -5
  279. package/es/widgets/geo-search/GeoSearchRenderer.js +6 -6
  280. package/es/widgets/geo-search/createHTMLMarker.js +12 -12
  281. package/es/widgets/geo-search/geo-search.d.ts +1 -0
  282. package/es/widgets/geo-search/geo-search.js +4 -4
  283. package/es/widgets/hierarchical-menu/hierarchical-menu.js +2 -2
  284. package/es/widgets/hits/hits.d.ts +1 -0
  285. package/es/widgets/hits/hits.js +6 -6
  286. package/es/widgets/hits-per-page/hits-per-page.js +2 -2
  287. package/es/widgets/index/index.d.ts +1 -1
  288. package/es/widgets/index/index.js +17 -10
  289. package/es/widgets/index.d.ts +2 -0
  290. package/es/widgets/index.js +3 -1
  291. package/es/widgets/index.umd.d.ts +45 -0
  292. package/es/widgets/index.umd.js +52 -0
  293. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -0
  294. package/es/widgets/infinite-hits/infinite-hits.js +2 -2
  295. package/es/widgets/looking-similar/looking-similar.d.ts +3 -1
  296. package/es/widgets/looking-similar/looking-similar.js +5 -5
  297. package/es/widgets/menu/menu.js +2 -2
  298. package/es/widgets/menu-select/menu-select.js +2 -2
  299. package/es/widgets/numeric-menu/numeric-menu.js +2 -2
  300. package/es/widgets/pagination/pagination.js +2 -2
  301. package/es/widgets/panel/panel.js +2 -2
  302. package/es/widgets/places/places.js +4 -4
  303. package/es/widgets/powered-by/powered-by.js +2 -2
  304. package/es/widgets/query-rule-context/query-rule-context.js +2 -2
  305. package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +2 -2
  306. package/es/widgets/range-input/range-input.js +6 -6
  307. package/es/widgets/range-slider/range-slider.js +6 -6
  308. package/es/widgets/rating-menu/rating-menu.js +2 -2
  309. package/es/widgets/refinement-list/refinement-list.js +2 -2
  310. package/es/widgets/related-products/related-products.d.ts +3 -1
  311. package/es/widgets/related-products/related-products.js +5 -5
  312. package/es/widgets/relevant-sort/relevant-sort.js +2 -2
  313. package/es/widgets/search-box/search-box.js +2 -2
  314. package/es/widgets/sort-by/sort-by.js +2 -2
  315. package/es/widgets/stats/stats.js +2 -2
  316. package/es/widgets/toggle-refinement/toggle-refinement.js +2 -2
  317. package/es/widgets/trending-items/trending-items.d.ts +3 -1
  318. package/es/widgets/trending-items/trending-items.js +5 -5
  319. package/es/widgets/voice-search/voice-search.js +2 -2
  320. package/package.json +11 -7
@@ -0,0 +1,594 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["container", "templates", "cssClasses", "resume", "tools", "getSearchPageURL"];
3
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
11
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
12
+ 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."); }
13
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
14
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
17
+ import { ArrowRightIconComponent, ChevronLeftIconComponent, ChevronRightIconComponent, createButtonComponent, createChatComponent } from 'instantsearch-ui-components';
18
+ import { Fragment, h, render } from 'preact';
19
+ import { useMemo } from 'preact/hooks';
20
+ import TemplateComponent from "../../components/Template/Template.js";
21
+ import connectChat from "../../connectors/chat/connectChat.js";
22
+ import { SearchIndexToolType, RecommendToolType } from "../../lib/chat/index.js";
23
+ import { prepareTemplateProps } from "../../lib/templating/index.js";
24
+ import { useStickToBottom } from "../../lib/useStickToBottom.js";
25
+ import { getContainerNode, createDocumentationMessageGenerator } from "../../lib/utils/index.js";
26
+ import { carousel } from "../../templates/index.js";
27
+ var withUsage = createDocumentationMessageGenerator({
28
+ name: 'chat'
29
+ });
30
+ var Chat = createChatComponent({
31
+ createElement: h,
32
+ Fragment: Fragment
33
+ });
34
+ export { SearchIndexToolType, RecommendToolType };
35
+ function getDefinedProperties(obj) {
36
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref) {
37
+ var _ref2 = _slicedToArray(_ref, 2),
38
+ value = _ref2[1];
39
+ return value !== undefined;
40
+ }));
41
+ }
42
+ var _ref6 = h(ArrowRightIconComponent, {
43
+ createElement: h
44
+ });
45
+ var _ref7 = h(ChevronLeftIconComponent, {
46
+ createElement: h
47
+ });
48
+ var _ref8 = h(ChevronRightIconComponent, {
49
+ createElement: h
50
+ });
51
+ function createCarouselTool(showViewAll, templates, getSearchPageURL) {
52
+ var Button = createButtonComponent({
53
+ createElement: h
54
+ });
55
+ function SearchLayoutComponent(_ref3) {
56
+ var message = _ref3.message,
57
+ indexUiState = _ref3.indexUiState,
58
+ setIndexUiState = _ref3.setIndexUiState,
59
+ onClose = _ref3.onClose;
60
+ var input = message === null || message === void 0 ? void 0 : message.input;
61
+ var output = message === null || message === void 0 ? void 0 : message.output;
62
+ var items = (output === null || output === void 0 ? void 0 : output.hits) || [];
63
+ var MemoedHeaderComponent = useMemo(function () {
64
+ return function (props) {
65
+ return h(HeaderComponent, _extends({
66
+ nbHits: output === null || output === void 0 ? void 0 : output.nbHits,
67
+ query: input === null || input === void 0 ? void 0 : input.query,
68
+ hitsPerPage: items.length,
69
+ setIndexUiState: setIndexUiState,
70
+ indexUiState: indexUiState,
71
+ getSearchPageURL: getSearchPageURL,
72
+ onClose: onClose
73
+ }, props));
74
+ };
75
+ }, [items.length, input === null || input === void 0 ? void 0 : input.query, output === null || output === void 0 ? void 0 : output.nbHits, setIndexUiState, indexUiState, onClose]);
76
+ return carousel({
77
+ showNavigation: false,
78
+ templates: {
79
+ header: MemoedHeaderComponent
80
+ }
81
+ })({
82
+ items: items,
83
+ templates: {
84
+ item: function item(_ref4) {
85
+ var _item = _ref4.item;
86
+ return h(TemplateComponent, {
87
+ templates: templates,
88
+ templateKey: "item",
89
+ data: _item,
90
+ rootTagName: "fragment"
91
+ });
92
+ }
93
+ },
94
+ sendEvent: function sendEvent() {}
95
+ });
96
+ }
97
+ function HeaderComponent(_ref5) {
98
+ var canScrollLeft = _ref5.canScrollLeft,
99
+ canScrollRight = _ref5.canScrollRight,
100
+ scrollLeft = _ref5.scrollLeft,
101
+ scrollRight = _ref5.scrollRight,
102
+ nbHits = _ref5.nbHits,
103
+ query = _ref5.query,
104
+ hitsPerPage = _ref5.hitsPerPage,
105
+ setIndexUiState = _ref5.setIndexUiState,
106
+ indexUiState = _ref5.indexUiState,
107
+ onClose = _ref5.onClose,
108
+ getSearchPageURL = _ref5.getSearchPageURL;
109
+ if ((hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) < 1) {
110
+ return null;
111
+ }
112
+ return h("div", {
113
+ className: "ais-ChatToolSearchIndexCarouselHeader"
114
+ }, h("div", {
115
+ className: "ais-ChatToolSearchIndexCarouselHeaderResults"
116
+ }, nbHits && h("div", {
117
+ className: "ais-ChatToolSearchIndexCarouselHeaderCount"
118
+ }, hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0, " of ", nbHits.toLocaleString(), " result", nbHits > 1 ? 's' : ''), showViewAll && h(Button, {
119
+ variant: "ghost",
120
+ size: "sm",
121
+ onClick: function onClick() {
122
+ if (!query) return;
123
+ var nextUiState = _objectSpread(_objectSpread({}, indexUiState), {}, {
124
+ query: query
125
+ });
126
+
127
+ // If no main search page URL or we are on the search page, just update the state
128
+ if (!getSearchPageURL || getSearchPageURL && new URL(getSearchPageURL(nextUiState)).pathname === window.location.pathname) {
129
+ setIndexUiState(nextUiState);
130
+ onClose();
131
+ return;
132
+ }
133
+
134
+ // Navigate to different page
135
+ window.location.href = getSearchPageURL(nextUiState);
136
+ },
137
+ className: "ais-ChatToolSearchIndexCarouselHeaderViewAll"
138
+ }, "View all", _ref6)), (hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) > 2 && h("div", {
139
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButtons"
140
+ }, h(Button, {
141
+ variant: "outline",
142
+ size: "sm",
143
+ iconOnly: true,
144
+ onClick: scrollLeft,
145
+ disabled: !canScrollLeft,
146
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
147
+ }, _ref7), h(Button, {
148
+ variant: "outline",
149
+ size: "sm",
150
+ iconOnly: true,
151
+ onClick: scrollRight,
152
+ disabled: !canScrollRight,
153
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
154
+ }, _ref8)));
155
+ }
156
+ return {
157
+ templates: {
158
+ layout: SearchLayoutComponent
159
+ }
160
+ };
161
+ }
162
+ function createDefaultTools(templates, getSearchPageURL) {
163
+ var _ref9;
164
+ return _ref9 = {}, _defineProperty(_ref9, SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _ref9;
165
+ }
166
+ function ChatWrapper(_ref0) {
167
+ var cssClasses = _ref0.cssClasses,
168
+ chatOpen = _ref0.chatOpen,
169
+ setChatOpen = _ref0.setChatOpen,
170
+ chatMessages = _ref0.chatMessages,
171
+ indexUiState = _ref0.indexUiState,
172
+ setIndexUiState = _ref0.setIndexUiState,
173
+ chatStatus = _ref0.chatStatus,
174
+ chatInput = _ref0.chatInput,
175
+ setChatInput = _ref0.setChatInput,
176
+ sendMessage = _ref0.sendMessage,
177
+ regenerate = _ref0.regenerate,
178
+ stop = _ref0.stop,
179
+ isClearing = _ref0.isClearing,
180
+ clearMessages = _ref0.clearMessages,
181
+ onClearTransitionEnd = _ref0.onClearTransitionEnd,
182
+ toolsForUi = _ref0.toolsForUi,
183
+ toggleButtonProps = _ref0.toggleButtonProps,
184
+ headerProps = _ref0.headerProps,
185
+ messagesProps = _ref0.messagesProps,
186
+ promptProps = _ref0.promptProps,
187
+ state = _ref0.state;
188
+ var _useStickToBottom = useStickToBottom({
189
+ initial: 'smooth',
190
+ resize: 'smooth'
191
+ }),
192
+ scrollRef = _useStickToBottom.scrollRef,
193
+ contentRef = _useStickToBottom.contentRef,
194
+ scrollToBottom = _useStickToBottom.scrollToBottom,
195
+ isAtBottom = _useStickToBottom.isAtBottom;
196
+ state.init();
197
+ var _state$use = state.use(false),
198
+ _state$use2 = _slicedToArray(_state$use, 2),
199
+ maximized = _state$use2[0],
200
+ setMaximized = _state$use2[1];
201
+ return h(Chat, {
202
+ classNames: cssClasses,
203
+ open: chatOpen,
204
+ maximized: maximized,
205
+ toggleButtonComponent: toggleButtonProps.layoutComponent,
206
+ toggleButtonProps: {
207
+ open: chatOpen,
208
+ onClick: function onClick() {
209
+ return setChatOpen(!chatOpen);
210
+ },
211
+ toggleIconComponent: toggleButtonProps.iconComponent
212
+ },
213
+ headerComponent: headerProps.layoutComponent,
214
+ promptComponent: promptProps.layoutComponent,
215
+ headerProps: {
216
+ onClose: function onClose() {
217
+ return setChatOpen(false);
218
+ },
219
+ maximized: maximized,
220
+ onToggleMaximize: function onToggleMaximize() {
221
+ return setMaximized(!maximized);
222
+ },
223
+ onClear: clearMessages,
224
+ canClear: Boolean(chatMessages === null || chatMessages === void 0 ? void 0 : chatMessages.length) && !isClearing,
225
+ closeIconComponent: headerProps.closeIconComponent,
226
+ minimizeIconComponent: headerProps.minimizeIconComponent,
227
+ maximizeIconComponent: headerProps.maximizeIconComponent,
228
+ titleIconComponent: headerProps.titleIconComponent,
229
+ translations: headerProps.translations
230
+ },
231
+ messagesProps: {
232
+ status: chatStatus,
233
+ onReload: function onReload(messageId) {
234
+ return regenerate({
235
+ messageId: messageId
236
+ });
237
+ },
238
+ onClose: function onClose() {
239
+ return setChatOpen(false);
240
+ },
241
+ messages: chatMessages,
242
+ indexUiState: indexUiState,
243
+ isClearing: isClearing,
244
+ onClearTransitionEnd: onClearTransitionEnd,
245
+ isScrollAtBottom: isAtBottom,
246
+ scrollRef: scrollRef,
247
+ contentRef: contentRef,
248
+ onScrollToBottom: scrollToBottom,
249
+ setIndexUiState: setIndexUiState,
250
+ tools: toolsForUi,
251
+ loaderComponent: messagesProps.loaderComponent,
252
+ errorComponent: messagesProps.errorComponent,
253
+ actionsComponent: messagesProps.actionsComponent,
254
+ translations: messagesProps.translations
255
+ },
256
+ promptProps: {
257
+ promptRef: promptProps.promptRef,
258
+ status: chatStatus,
259
+ value: chatInput,
260
+ onInput: function onInput(event) {
261
+ setChatInput(event.currentTarget.value);
262
+ },
263
+ onSubmit: function onSubmit() {
264
+ sendMessage({
265
+ text: chatInput
266
+ });
267
+ setChatInput('');
268
+ },
269
+ onStop: function onStop() {
270
+ stop();
271
+ },
272
+ headerComponent: promptProps.headerComponent,
273
+ footerComponent: promptProps.footerComponent,
274
+ translations: promptProps.translations
275
+ }
276
+ });
277
+ }
278
+ var createRenderer = function createRenderer(_ref1) {
279
+ var renderState = _ref1.renderState,
280
+ cssClasses = _ref1.cssClasses,
281
+ containerNode = _ref1.containerNode,
282
+ templates = _ref1.templates,
283
+ tools = _ref1.tools;
284
+ var state = createLocalState();
285
+ var promptRef = {
286
+ current: null
287
+ };
288
+ return function (props, isFirstRendering) {
289
+ var _templates$header, _templates$header2, _templates$header3, _templates$header4, _templates$header5, _templates$header6, _templates$header7, _templates$header8, _templates$header9, _templates$header0, _templates$messages, _templates$messages2, _templates$messages3, _templates$messages4, _templates$messages5, _templates$messages6, _templates$prompt, _templates$prompt2, _templates$prompt3, _templates$prompt4, _templates$prompt5, _templates$prompt6, _templates$prompt7, _templates$prompt8, _templates$prompt9, _templates$toggleButt, _templates$toggleButt2;
290
+ var indexUiState = props.indexUiState,
291
+ input = props.input,
292
+ instantSearchInstance = props.instantSearchInstance,
293
+ messages = props.messages,
294
+ open = props.open,
295
+ sendMessage = props.sendMessage,
296
+ setIndexUiState = props.setIndexUiState,
297
+ setInput = props.setInput,
298
+ setOpen = props.setOpen,
299
+ status = props.status,
300
+ error = props.error,
301
+ addToolResult = props.addToolResult,
302
+ regenerate = props.regenerate,
303
+ stop = props.stop,
304
+ isClearing = props.isClearing,
305
+ clearMessages = props.clearMessages,
306
+ onClearTransitionEnd = props.onClearTransitionEnd,
307
+ toolsFromConnector = props.tools;
308
+ if (process.env.NODE_ENV === 'development' && error) {
309
+ throw error;
310
+ }
311
+ if (isFirstRendering) {
312
+ renderState.templateProps = prepareTemplateProps({
313
+ defaultTemplates: {},
314
+ templatesConfig: instantSearchInstance.templatesConfig,
315
+ templates: templates
316
+ });
317
+ return;
318
+ }
319
+ var toolsForUi = {};
320
+ Object.entries(toolsFromConnector).forEach(function (_ref10) {
321
+ var _ref11 = _slicedToArray(_ref10, 2),
322
+ key = _ref11[0],
323
+ connectorTool = _ref11[1];
324
+ var widgetTool = tools[key];
325
+ toolsForUi[key] = _objectSpread(_objectSpread({}, connectorTool), {}, {
326
+ addToolResult: addToolResult,
327
+ layoutComponent: function layoutComponent(layoutComponentProps) {
328
+ return h(TemplateComponent, {
329
+ templates: widgetTool.templates,
330
+ rootTagName: "fragment",
331
+ templateKey: "layout",
332
+ data: layoutComponentProps
333
+ });
334
+ }
335
+ });
336
+ });
337
+ var headerTemplateProps = prepareTemplateProps({
338
+ defaultTemplates: {},
339
+ templatesConfig: instantSearchInstance.templatesConfig,
340
+ templates: templates.header
341
+ });
342
+ var headerLayoutComponent = (_templates$header = templates.header) !== null && _templates$header !== void 0 && _templates$header.layout ? function (headerProps) {
343
+ return h(TemplateComponent, _extends({}, headerTemplateProps, {
344
+ templateKey: "layout",
345
+ rootTagName: "div",
346
+ data: headerProps
347
+ }));
348
+ } : undefined;
349
+ var headerCloseIconComponent = (_templates$header2 = templates.header) !== null && _templates$header2 !== void 0 && _templates$header2.closeIcon ? function () {
350
+ return h(TemplateComponent, _extends({}, headerTemplateProps, {
351
+ templateKey: "closeIcon",
352
+ rootTagName: "span"
353
+ }));
354
+ } : undefined;
355
+ var headerMinimizeIconComponent = (_templates$header3 = templates.header) !== null && _templates$header3 !== void 0 && _templates$header3.minimizeIcon ? function () {
356
+ return h(TemplateComponent, _extends({}, headerTemplateProps, {
357
+ templateKey: "minimizeIcon",
358
+ rootTagName: "span"
359
+ }));
360
+ } : undefined;
361
+ var headerMaximizeIconComponent = (_templates$header4 = templates.header) !== null && _templates$header4 !== void 0 && _templates$header4.maximizeIcon ? function (_ref12) {
362
+ var maximized = _ref12.maximized;
363
+ return h(TemplateComponent, _extends({}, headerTemplateProps, {
364
+ templateKey: "maximizeIcon",
365
+ rootTagName: "span",
366
+ data: {
367
+ maximized: maximized
368
+ }
369
+ }));
370
+ } : undefined;
371
+ var headerTitleIconComponent = (_templates$header5 = templates.header) !== null && _templates$header5 !== void 0 && _templates$header5.titleIcon ? function () {
372
+ return h(TemplateComponent, _extends({}, headerTemplateProps, {
373
+ templateKey: "titleIcon",
374
+ rootTagName: "span"
375
+ }));
376
+ } : undefined;
377
+ var headerTranslations = getDefinedProperties({
378
+ title: (_templates$header6 = templates.header) === null || _templates$header6 === void 0 ? void 0 : _templates$header6.titleText,
379
+ minimizeLabel: (_templates$header7 = templates.header) === null || _templates$header7 === void 0 ? void 0 : _templates$header7.minimizeLabelText,
380
+ maximizeLabel: (_templates$header8 = templates.header) === null || _templates$header8 === void 0 ? void 0 : _templates$header8.maximizeLabelText,
381
+ closeLabel: (_templates$header9 = templates.header) === null || _templates$header9 === void 0 ? void 0 : _templates$header9.closeLabelText,
382
+ clearLabel: (_templates$header0 = templates.header) === null || _templates$header0 === void 0 ? void 0 : _templates$header0.clearLabelText
383
+ });
384
+ var messagesTemplateProps = prepareTemplateProps({
385
+ defaultTemplates: {},
386
+ templatesConfig: instantSearchInstance.templatesConfig,
387
+ templates: templates.messages
388
+ });
389
+ var messagesLoaderComponent = (_templates$messages = templates.messages) !== null && _templates$messages !== void 0 && _templates$messages.loader ? function (loaderProps) {
390
+ return h(TemplateComponent, _extends({}, messagesTemplateProps, {
391
+ templateKey: "loader",
392
+ rootTagName: "div",
393
+ data: loaderProps
394
+ }));
395
+ } : undefined;
396
+ var messagesErrorComponent = (_templates$messages2 = templates.messages) !== null && _templates$messages2 !== void 0 && _templates$messages2.error ? function (errorProps) {
397
+ return h(TemplateComponent, _extends({}, messagesTemplateProps, {
398
+ templateKey: "error",
399
+ rootTagName: "div",
400
+ data: errorProps
401
+ }));
402
+ } : undefined;
403
+ var messagesTranslations = getDefinedProperties({
404
+ scrollToBottomLabel: (_templates$messages3 = templates.messages) === null || _templates$messages3 === void 0 ? void 0 : _templates$messages3.scrollToBottomLabelText,
405
+ loaderText: (_templates$messages4 = templates.messages) === null || _templates$messages4 === void 0 ? void 0 : _templates$messages4.loaderText,
406
+ copyToClipboardLabel: (_templates$messages5 = templates.messages) === null || _templates$messages5 === void 0 ? void 0 : _templates$messages5.copyToClipboardLabelText,
407
+ regenerateLabel: (_templates$messages6 = templates.messages) === null || _templates$messages6 === void 0 ? void 0 : _templates$messages6.regenerateLabelText
408
+ });
409
+ var promptTemplateProps = prepareTemplateProps({
410
+ defaultTemplates: {},
411
+ templatesConfig: instantSearchInstance.templatesConfig,
412
+ templates: templates.prompt
413
+ });
414
+ var promptLayoutComponent = (_templates$prompt = templates.prompt) !== null && _templates$prompt !== void 0 && _templates$prompt.layout ? function (promptProps) {
415
+ return h(TemplateComponent, _extends({}, promptTemplateProps, {
416
+ templateKey: "layout",
417
+ rootTagName: "div",
418
+ data: promptProps
419
+ }));
420
+ } : undefined;
421
+ var promptHeaderComponent = (_templates$prompt2 = templates.prompt) !== null && _templates$prompt2 !== void 0 && _templates$prompt2.header ? function () {
422
+ return h(TemplateComponent, _extends({}, promptTemplateProps, {
423
+ templateKey: "header",
424
+ rootTagName: "fragment"
425
+ }));
426
+ } : undefined;
427
+ var promptFooterComponent = (_templates$prompt3 = templates.prompt) !== null && _templates$prompt3 !== void 0 && _templates$prompt3.footer ? function () {
428
+ return h(TemplateComponent, _extends({}, promptTemplateProps, {
429
+ templateKey: "footer",
430
+ rootTagName: "fragment"
431
+ }));
432
+ } : undefined;
433
+ var promptTranslations = getDefinedProperties({
434
+ textareaLabel: (_templates$prompt4 = templates.prompt) === null || _templates$prompt4 === void 0 ? void 0 : _templates$prompt4.textareaLabelText,
435
+ textareaPlaceholder: (_templates$prompt5 = templates.prompt) === null || _templates$prompt5 === void 0 ? void 0 : _templates$prompt5.textareaPlaceholderText,
436
+ emptyMessageTooltip: (_templates$prompt6 = templates.prompt) === null || _templates$prompt6 === void 0 ? void 0 : _templates$prompt6.emptyMessageTooltipText,
437
+ stopResponseTooltip: (_templates$prompt7 = templates.prompt) === null || _templates$prompt7 === void 0 ? void 0 : _templates$prompt7.stopResponseTooltipText,
438
+ sendMessageTooltip: (_templates$prompt8 = templates.prompt) === null || _templates$prompt8 === void 0 ? void 0 : _templates$prompt8.sendMessageTooltipText,
439
+ disclaimer: (_templates$prompt9 = templates.prompt) === null || _templates$prompt9 === void 0 ? void 0 : _templates$prompt9.disclaimerText
440
+ });
441
+ var actionsComponent = templates.actions ? function (actionsProps) {
442
+ return h(TemplateComponent, _extends({}, renderState.templateProps, {
443
+ templateKey: "actions",
444
+ rootTagName: "div",
445
+ data: actionsProps
446
+ }));
447
+ } : undefined;
448
+ var toggleButtonTemplateProps = prepareTemplateProps({
449
+ defaultTemplates: {},
450
+ templatesConfig: instantSearchInstance.templatesConfig,
451
+ templates: templates.toggleButton
452
+ });
453
+ var toggleButtonLayoutComponent = (_templates$toggleButt = templates.toggleButton) !== null && _templates$toggleButt !== void 0 && _templates$toggleButt.layout ? function (toggleButtonProps) {
454
+ return h(TemplateComponent, _extends({}, toggleButtonTemplateProps, {
455
+ templateKey: "layout",
456
+ rootTagName: "button",
457
+ data: toggleButtonProps
458
+ }));
459
+ } : undefined;
460
+ var toggleButtonIconComponent = (_templates$toggleButt2 = templates.toggleButton) !== null && _templates$toggleButt2 !== void 0 && _templates$toggleButt2.icon ? function (_ref13) {
461
+ var isOpen = _ref13.isOpen;
462
+ return h(TemplateComponent, _extends({}, toggleButtonTemplateProps, {
463
+ templateKey: "icon",
464
+ rootTagName: "span",
465
+ data: {
466
+ isOpen: isOpen
467
+ }
468
+ }));
469
+ } : undefined;
470
+ state.subscribe(rerender);
471
+ function rerender() {
472
+ render(h(ChatWrapper, {
473
+ cssClasses: cssClasses,
474
+ chatOpen: open,
475
+ setChatOpen: setOpen,
476
+ chatMessages: messages,
477
+ indexUiState: indexUiState,
478
+ setIndexUiState: setIndexUiState,
479
+ chatStatus: status,
480
+ chatInput: input,
481
+ setChatInput: setInput,
482
+ sendMessage: sendMessage,
483
+ regenerate: regenerate,
484
+ stop: stop,
485
+ isClearing: isClearing,
486
+ clearMessages: clearMessages,
487
+ onClearTransitionEnd: onClearTransitionEnd,
488
+ toolsForUi: toolsForUi,
489
+ toggleButtonProps: {
490
+ layoutComponent: toggleButtonLayoutComponent,
491
+ iconComponent: toggleButtonIconComponent
492
+ },
493
+ headerProps: {
494
+ layoutComponent: headerLayoutComponent,
495
+ closeIconComponent: headerCloseIconComponent,
496
+ minimizeIconComponent: headerMinimizeIconComponent,
497
+ maximizeIconComponent: headerMaximizeIconComponent,
498
+ titleIconComponent: headerTitleIconComponent,
499
+ translations: headerTranslations
500
+ },
501
+ messagesProps: {
502
+ loaderComponent: messagesLoaderComponent,
503
+ errorComponent: messagesErrorComponent,
504
+ actionsComponent: actionsComponent,
505
+ translations: messagesTranslations
506
+ },
507
+ promptProps: {
508
+ layoutComponent: promptLayoutComponent,
509
+ headerComponent: promptHeaderComponent,
510
+ footerComponent: promptFooterComponent,
511
+ translations: promptTranslations,
512
+ promptRef: promptRef
513
+ },
514
+ state: state
515
+ }), containerNode);
516
+ }
517
+ rerender();
518
+ };
519
+ };
520
+ var defaultTemplates = {
521
+ item: function item(_item2) {
522
+ return JSON.stringify(_item2, null, 2);
523
+ }
524
+ };
525
+ export default (function chat(widgetParams) {
526
+ var _ref14 = widgetParams || {},
527
+ container = _ref14.container,
528
+ _ref14$templates = _ref14.templates,
529
+ userTemplates = _ref14$templates === void 0 ? {} : _ref14$templates,
530
+ _ref14$cssClasses = _ref14.cssClasses,
531
+ cssClasses = _ref14$cssClasses === void 0 ? {} : _ref14$cssClasses,
532
+ _ref14$resume = _ref14.resume,
533
+ resume = _ref14$resume === void 0 ? false : _ref14$resume,
534
+ userTools = _ref14.tools,
535
+ getSearchPageURL = _ref14.getSearchPageURL,
536
+ options = _objectWithoutProperties(_ref14, _excluded);
537
+ if (!container) {
538
+ throw new Error(withUsage('The `container` option is required.'));
539
+ }
540
+ var containerNode = getContainerNode(container);
541
+ var templates = _objectSpread(_objectSpread({}, defaultTemplates), userTemplates);
542
+ var defaultTools = createDefaultTools(templates, getSearchPageURL);
543
+ var tools = _objectSpread(_objectSpread({}, defaultTools), userTools);
544
+ var specializedRenderer = createRenderer({
545
+ containerNode: containerNode,
546
+ cssClasses: cssClasses,
547
+ renderState: {},
548
+ templates: templates,
549
+ tools: tools
550
+ });
551
+ var makeWidget = connectChat(specializedRenderer, function () {
552
+ return render(null, containerNode);
553
+ });
554
+ return _objectSpread(_objectSpread({}, makeWidget(_objectSpread({
555
+ resume: resume,
556
+ tools: tools
557
+ }, options))), {}, {
558
+ $$widgetType: 'ais.chat'
559
+ });
560
+ });
561
+ function createLocalState() {
562
+ var state = [];
563
+ var subscriptions = new Set();
564
+ var cursor = 0;
565
+ function use(initialValue) {
566
+ var index = cursor++;
567
+ if (state[index] === undefined) {
568
+ state[index] = initialValue;
569
+ }
570
+ return [state[index], function (value) {
571
+ var prev = state[index];
572
+ if (prev === value) {
573
+ return prev;
574
+ }
575
+ state[index] = value;
576
+ subscriptions.forEach(function (fn) {
577
+ return fn();
578
+ });
579
+ return value;
580
+ }];
581
+ }
582
+ return {
583
+ init: function init() {
584
+ cursor = 0;
585
+ },
586
+ subscribe: function subscribe(fn) {
587
+ subscriptions.add(fn);
588
+ return function () {
589
+ return subscriptions.delete(fn);
590
+ };
591
+ },
592
+ use: use
593
+ };
594
+ }
@@ -1,8 +1,8 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import { cx } from 'instantsearch-ui-components';
8
8
  import { h, render } from 'preact';
@@ -1,8 +1,8 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import connectConfigure from "../../connectors/configure/connectConfigure.js";
8
8
  import { noop } from "../../lib/utils/index.js";
@@ -1,8 +1,8 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import connectConfigureRelatedItems from "../../connectors/configure-related-items/connectConfigureRelatedItems.js";
8
8
  import { noop } from "../../lib/utils/index.js";
@@ -1,8 +1,8 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import { cx } from 'instantsearch-ui-components';
8
8
  import { h, render } from 'preact';