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,612 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "RecommendToolType", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _chat.RecommendToolType;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "SearchIndexToolType", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _chat.SearchIndexToolType;
17
+ }
18
+ });
19
+ exports.default = void 0;
20
+ var _instantsearchUiComponents = require("instantsearch-ui-components");
21
+ var _preact = require("preact");
22
+ var _hooks = require("preact/hooks");
23
+ var _Template = _interopRequireDefault(require("../../components/Template/Template"));
24
+ var _connectChat = _interopRequireDefault(require("../../connectors/chat/connectChat"));
25
+ var _chat = require("../../lib/chat");
26
+ var _templating = require("../../lib/templating");
27
+ var _useStickToBottom2 = require("../../lib/useStickToBottom");
28
+ var _utils = require("../../lib/utils");
29
+ var _templates = require("../../templates");
30
+ var _excluded = ["container", "templates", "cssClasses", "resume", "tools", "getSearchPageURL"];
31
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
+ 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; }
33
+ 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; }
34
+ 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; }
35
+ 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; }
36
+ 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; }
37
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
38
+ 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); }
39
+ 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); }
40
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
41
+ 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."); }
42
+ 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; } }
43
+ 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; }
44
+ 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; } }
45
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
46
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
47
+ name: 'chat'
48
+ });
49
+ var Chat = (0, _instantsearchUiComponents.createChatComponent)({
50
+ createElement: _preact.h,
51
+ Fragment: _preact.Fragment
52
+ });
53
+ function getDefinedProperties(obj) {
54
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref) {
55
+ var _ref2 = _slicedToArray(_ref, 2),
56
+ value = _ref2[1];
57
+ return value !== undefined;
58
+ }));
59
+ }
60
+ var _ref6 = (0, _preact.h)(_instantsearchUiComponents.ArrowRightIconComponent, {
61
+ createElement: _preact.h
62
+ });
63
+ var _ref7 = (0, _preact.h)(_instantsearchUiComponents.ChevronLeftIconComponent, {
64
+ createElement: _preact.h
65
+ });
66
+ var _ref8 = (0, _preact.h)(_instantsearchUiComponents.ChevronRightIconComponent, {
67
+ createElement: _preact.h
68
+ });
69
+ function createCarouselTool(showViewAll, templates, getSearchPageURL) {
70
+ var Button = (0, _instantsearchUiComponents.createButtonComponent)({
71
+ createElement: _preact.h
72
+ });
73
+ function SearchLayoutComponent(_ref3) {
74
+ var message = _ref3.message,
75
+ indexUiState = _ref3.indexUiState,
76
+ setIndexUiState = _ref3.setIndexUiState,
77
+ onClose = _ref3.onClose;
78
+ var input = message === null || message === void 0 ? void 0 : message.input;
79
+ var output = message === null || message === void 0 ? void 0 : message.output;
80
+ var items = (output === null || output === void 0 ? void 0 : output.hits) || [];
81
+ var MemoedHeaderComponent = (0, _hooks.useMemo)(function () {
82
+ return function (props) {
83
+ return (0, _preact.h)(HeaderComponent, _extends({
84
+ nbHits: output === null || output === void 0 ? void 0 : output.nbHits,
85
+ query: input === null || input === void 0 ? void 0 : input.query,
86
+ hitsPerPage: items.length,
87
+ setIndexUiState: setIndexUiState,
88
+ indexUiState: indexUiState,
89
+ getSearchPageURL: getSearchPageURL,
90
+ onClose: onClose
91
+ }, props));
92
+ };
93
+ }, [items.length, input === null || input === void 0 ? void 0 : input.query, output === null || output === void 0 ? void 0 : output.nbHits, setIndexUiState, indexUiState, onClose]);
94
+ return (0, _templates.carousel)({
95
+ showNavigation: false,
96
+ templates: {
97
+ header: MemoedHeaderComponent
98
+ }
99
+ })({
100
+ items: items,
101
+ templates: {
102
+ item: function item(_ref4) {
103
+ var _item = _ref4.item;
104
+ return (0, _preact.h)(_Template.default, {
105
+ templates: templates,
106
+ templateKey: "item",
107
+ data: _item,
108
+ rootTagName: "fragment"
109
+ });
110
+ }
111
+ },
112
+ sendEvent: function sendEvent() {}
113
+ });
114
+ }
115
+ function HeaderComponent(_ref5) {
116
+ var canScrollLeft = _ref5.canScrollLeft,
117
+ canScrollRight = _ref5.canScrollRight,
118
+ scrollLeft = _ref5.scrollLeft,
119
+ scrollRight = _ref5.scrollRight,
120
+ nbHits = _ref5.nbHits,
121
+ query = _ref5.query,
122
+ hitsPerPage = _ref5.hitsPerPage,
123
+ setIndexUiState = _ref5.setIndexUiState,
124
+ indexUiState = _ref5.indexUiState,
125
+ onClose = _ref5.onClose,
126
+ getSearchPageURL = _ref5.getSearchPageURL;
127
+ if ((hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) < 1) {
128
+ return null;
129
+ }
130
+ return (0, _preact.h)("div", {
131
+ className: "ais-ChatToolSearchIndexCarouselHeader"
132
+ }, (0, _preact.h)("div", {
133
+ className: "ais-ChatToolSearchIndexCarouselHeaderResults"
134
+ }, nbHits && (0, _preact.h)("div", {
135
+ className: "ais-ChatToolSearchIndexCarouselHeaderCount"
136
+ }, hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0, " of ", nbHits.toLocaleString(), " result", nbHits > 1 ? 's' : ''), showViewAll && (0, _preact.h)(Button, {
137
+ variant: "ghost",
138
+ size: "sm",
139
+ onClick: function onClick() {
140
+ if (!query) return;
141
+ var nextUiState = _objectSpread(_objectSpread({}, indexUiState), {}, {
142
+ query: query
143
+ });
144
+
145
+ // If no main search page URL or we are on the search page, just update the state
146
+ if (!getSearchPageURL || getSearchPageURL && new URL(getSearchPageURL(nextUiState)).pathname === window.location.pathname) {
147
+ setIndexUiState(nextUiState);
148
+ onClose();
149
+ return;
150
+ }
151
+
152
+ // Navigate to different page
153
+ window.location.href = getSearchPageURL(nextUiState);
154
+ },
155
+ className: "ais-ChatToolSearchIndexCarouselHeaderViewAll"
156
+ }, "View all", _ref6)), (hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) > 2 && (0, _preact.h)("div", {
157
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButtons"
158
+ }, (0, _preact.h)(Button, {
159
+ variant: "outline",
160
+ size: "sm",
161
+ iconOnly: true,
162
+ onClick: scrollLeft,
163
+ disabled: !canScrollLeft,
164
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
165
+ }, _ref7), (0, _preact.h)(Button, {
166
+ variant: "outline",
167
+ size: "sm",
168
+ iconOnly: true,
169
+ onClick: scrollRight,
170
+ disabled: !canScrollRight,
171
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
172
+ }, _ref8)));
173
+ }
174
+ return {
175
+ templates: {
176
+ layout: SearchLayoutComponent
177
+ }
178
+ };
179
+ }
180
+ function createDefaultTools(templates, getSearchPageURL) {
181
+ var _ref9;
182
+ return _ref9 = {}, _defineProperty(_ref9, _chat.SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, _chat.RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _ref9;
183
+ }
184
+ function ChatWrapper(_ref0) {
185
+ var cssClasses = _ref0.cssClasses,
186
+ chatOpen = _ref0.chatOpen,
187
+ setChatOpen = _ref0.setChatOpen,
188
+ chatMessages = _ref0.chatMessages,
189
+ indexUiState = _ref0.indexUiState,
190
+ setIndexUiState = _ref0.setIndexUiState,
191
+ chatStatus = _ref0.chatStatus,
192
+ chatInput = _ref0.chatInput,
193
+ setChatInput = _ref0.setChatInput,
194
+ sendMessage = _ref0.sendMessage,
195
+ regenerate = _ref0.regenerate,
196
+ stop = _ref0.stop,
197
+ isClearing = _ref0.isClearing,
198
+ clearMessages = _ref0.clearMessages,
199
+ onClearTransitionEnd = _ref0.onClearTransitionEnd,
200
+ toolsForUi = _ref0.toolsForUi,
201
+ toggleButtonProps = _ref0.toggleButtonProps,
202
+ headerProps = _ref0.headerProps,
203
+ messagesProps = _ref0.messagesProps,
204
+ promptProps = _ref0.promptProps,
205
+ state = _ref0.state;
206
+ var _useStickToBottom = (0, _useStickToBottom2.useStickToBottom)({
207
+ initial: 'smooth',
208
+ resize: 'smooth'
209
+ }),
210
+ scrollRef = _useStickToBottom.scrollRef,
211
+ contentRef = _useStickToBottom.contentRef,
212
+ scrollToBottom = _useStickToBottom.scrollToBottom,
213
+ isAtBottom = _useStickToBottom.isAtBottom;
214
+ state.init();
215
+ var _state$use = state.use(false),
216
+ _state$use2 = _slicedToArray(_state$use, 2),
217
+ maximized = _state$use2[0],
218
+ setMaximized = _state$use2[1];
219
+ return (0, _preact.h)(Chat, {
220
+ classNames: cssClasses,
221
+ open: chatOpen,
222
+ maximized: maximized,
223
+ toggleButtonComponent: toggleButtonProps.layoutComponent,
224
+ toggleButtonProps: {
225
+ open: chatOpen,
226
+ onClick: function onClick() {
227
+ return setChatOpen(!chatOpen);
228
+ },
229
+ toggleIconComponent: toggleButtonProps.iconComponent
230
+ },
231
+ headerComponent: headerProps.layoutComponent,
232
+ promptComponent: promptProps.layoutComponent,
233
+ headerProps: {
234
+ onClose: function onClose() {
235
+ return setChatOpen(false);
236
+ },
237
+ maximized: maximized,
238
+ onToggleMaximize: function onToggleMaximize() {
239
+ return setMaximized(!maximized);
240
+ },
241
+ onClear: clearMessages,
242
+ canClear: Boolean(chatMessages === null || chatMessages === void 0 ? void 0 : chatMessages.length) && !isClearing,
243
+ closeIconComponent: headerProps.closeIconComponent,
244
+ minimizeIconComponent: headerProps.minimizeIconComponent,
245
+ maximizeIconComponent: headerProps.maximizeIconComponent,
246
+ titleIconComponent: headerProps.titleIconComponent,
247
+ translations: headerProps.translations
248
+ },
249
+ messagesProps: {
250
+ status: chatStatus,
251
+ onReload: function onReload(messageId) {
252
+ return regenerate({
253
+ messageId: messageId
254
+ });
255
+ },
256
+ onClose: function onClose() {
257
+ return setChatOpen(false);
258
+ },
259
+ messages: chatMessages,
260
+ indexUiState: indexUiState,
261
+ isClearing: isClearing,
262
+ onClearTransitionEnd: onClearTransitionEnd,
263
+ isScrollAtBottom: isAtBottom,
264
+ scrollRef: scrollRef,
265
+ contentRef: contentRef,
266
+ onScrollToBottom: scrollToBottom,
267
+ setIndexUiState: setIndexUiState,
268
+ tools: toolsForUi,
269
+ loaderComponent: messagesProps.loaderComponent,
270
+ errorComponent: messagesProps.errorComponent,
271
+ actionsComponent: messagesProps.actionsComponent,
272
+ translations: messagesProps.translations
273
+ },
274
+ promptProps: {
275
+ promptRef: promptProps.promptRef,
276
+ status: chatStatus,
277
+ value: chatInput,
278
+ onInput: function onInput(event) {
279
+ setChatInput(event.currentTarget.value);
280
+ },
281
+ onSubmit: function onSubmit() {
282
+ sendMessage({
283
+ text: chatInput
284
+ });
285
+ setChatInput('');
286
+ },
287
+ onStop: function onStop() {
288
+ stop();
289
+ },
290
+ headerComponent: promptProps.headerComponent,
291
+ footerComponent: promptProps.footerComponent,
292
+ translations: promptProps.translations
293
+ }
294
+ });
295
+ }
296
+ var createRenderer = function createRenderer(_ref1) {
297
+ var renderState = _ref1.renderState,
298
+ cssClasses = _ref1.cssClasses,
299
+ containerNode = _ref1.containerNode,
300
+ templates = _ref1.templates,
301
+ tools = _ref1.tools;
302
+ var state = createLocalState();
303
+ var promptRef = {
304
+ current: null
305
+ };
306
+ return function (props, isFirstRendering) {
307
+ 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;
308
+ var indexUiState = props.indexUiState,
309
+ input = props.input,
310
+ instantSearchInstance = props.instantSearchInstance,
311
+ messages = props.messages,
312
+ open = props.open,
313
+ sendMessage = props.sendMessage,
314
+ setIndexUiState = props.setIndexUiState,
315
+ setInput = props.setInput,
316
+ setOpen = props.setOpen,
317
+ status = props.status,
318
+ error = props.error,
319
+ addToolResult = props.addToolResult,
320
+ regenerate = props.regenerate,
321
+ stop = props.stop,
322
+ isClearing = props.isClearing,
323
+ clearMessages = props.clearMessages,
324
+ onClearTransitionEnd = props.onClearTransitionEnd,
325
+ toolsFromConnector = props.tools;
326
+ if (process.env.NODE_ENV === 'development' && error) {
327
+ throw error;
328
+ }
329
+ if (isFirstRendering) {
330
+ renderState.templateProps = (0, _templating.prepareTemplateProps)({
331
+ defaultTemplates: {},
332
+ templatesConfig: instantSearchInstance.templatesConfig,
333
+ templates: templates
334
+ });
335
+ return;
336
+ }
337
+ var toolsForUi = {};
338
+ Object.entries(toolsFromConnector).forEach(function (_ref10) {
339
+ var _ref11 = _slicedToArray(_ref10, 2),
340
+ key = _ref11[0],
341
+ connectorTool = _ref11[1];
342
+ var widgetTool = tools[key];
343
+ toolsForUi[key] = _objectSpread(_objectSpread({}, connectorTool), {}, {
344
+ addToolResult: addToolResult,
345
+ layoutComponent: function layoutComponent(layoutComponentProps) {
346
+ return (0, _preact.h)(_Template.default, {
347
+ templates: widgetTool.templates,
348
+ rootTagName: "fragment",
349
+ templateKey: "layout",
350
+ data: layoutComponentProps
351
+ });
352
+ }
353
+ });
354
+ });
355
+ var headerTemplateProps = (0, _templating.prepareTemplateProps)({
356
+ defaultTemplates: {},
357
+ templatesConfig: instantSearchInstance.templatesConfig,
358
+ templates: templates.header
359
+ });
360
+ var headerLayoutComponent = (_templates$header = templates.header) !== null && _templates$header !== void 0 && _templates$header.layout ? function (headerProps) {
361
+ return (0, _preact.h)(_Template.default, _extends({}, headerTemplateProps, {
362
+ templateKey: "layout",
363
+ rootTagName: "div",
364
+ data: headerProps
365
+ }));
366
+ } : undefined;
367
+ var headerCloseIconComponent = (_templates$header2 = templates.header) !== null && _templates$header2 !== void 0 && _templates$header2.closeIcon ? function () {
368
+ return (0, _preact.h)(_Template.default, _extends({}, headerTemplateProps, {
369
+ templateKey: "closeIcon",
370
+ rootTagName: "span"
371
+ }));
372
+ } : undefined;
373
+ var headerMinimizeIconComponent = (_templates$header3 = templates.header) !== null && _templates$header3 !== void 0 && _templates$header3.minimizeIcon ? function () {
374
+ return (0, _preact.h)(_Template.default, _extends({}, headerTemplateProps, {
375
+ templateKey: "minimizeIcon",
376
+ rootTagName: "span"
377
+ }));
378
+ } : undefined;
379
+ var headerMaximizeIconComponent = (_templates$header4 = templates.header) !== null && _templates$header4 !== void 0 && _templates$header4.maximizeIcon ? function (_ref12) {
380
+ var maximized = _ref12.maximized;
381
+ return (0, _preact.h)(_Template.default, _extends({}, headerTemplateProps, {
382
+ templateKey: "maximizeIcon",
383
+ rootTagName: "span",
384
+ data: {
385
+ maximized: maximized
386
+ }
387
+ }));
388
+ } : undefined;
389
+ var headerTitleIconComponent = (_templates$header5 = templates.header) !== null && _templates$header5 !== void 0 && _templates$header5.titleIcon ? function () {
390
+ return (0, _preact.h)(_Template.default, _extends({}, headerTemplateProps, {
391
+ templateKey: "titleIcon",
392
+ rootTagName: "span"
393
+ }));
394
+ } : undefined;
395
+ var headerTranslations = getDefinedProperties({
396
+ title: (_templates$header6 = templates.header) === null || _templates$header6 === void 0 ? void 0 : _templates$header6.titleText,
397
+ minimizeLabel: (_templates$header7 = templates.header) === null || _templates$header7 === void 0 ? void 0 : _templates$header7.minimizeLabelText,
398
+ maximizeLabel: (_templates$header8 = templates.header) === null || _templates$header8 === void 0 ? void 0 : _templates$header8.maximizeLabelText,
399
+ closeLabel: (_templates$header9 = templates.header) === null || _templates$header9 === void 0 ? void 0 : _templates$header9.closeLabelText,
400
+ clearLabel: (_templates$header0 = templates.header) === null || _templates$header0 === void 0 ? void 0 : _templates$header0.clearLabelText
401
+ });
402
+ var messagesTemplateProps = (0, _templating.prepareTemplateProps)({
403
+ defaultTemplates: {},
404
+ templatesConfig: instantSearchInstance.templatesConfig,
405
+ templates: templates.messages
406
+ });
407
+ var messagesLoaderComponent = (_templates$messages = templates.messages) !== null && _templates$messages !== void 0 && _templates$messages.loader ? function (loaderProps) {
408
+ return (0, _preact.h)(_Template.default, _extends({}, messagesTemplateProps, {
409
+ templateKey: "loader",
410
+ rootTagName: "div",
411
+ data: loaderProps
412
+ }));
413
+ } : undefined;
414
+ var messagesErrorComponent = (_templates$messages2 = templates.messages) !== null && _templates$messages2 !== void 0 && _templates$messages2.error ? function (errorProps) {
415
+ return (0, _preact.h)(_Template.default, _extends({}, messagesTemplateProps, {
416
+ templateKey: "error",
417
+ rootTagName: "div",
418
+ data: errorProps
419
+ }));
420
+ } : undefined;
421
+ var messagesTranslations = getDefinedProperties({
422
+ scrollToBottomLabel: (_templates$messages3 = templates.messages) === null || _templates$messages3 === void 0 ? void 0 : _templates$messages3.scrollToBottomLabelText,
423
+ loaderText: (_templates$messages4 = templates.messages) === null || _templates$messages4 === void 0 ? void 0 : _templates$messages4.loaderText,
424
+ copyToClipboardLabel: (_templates$messages5 = templates.messages) === null || _templates$messages5 === void 0 ? void 0 : _templates$messages5.copyToClipboardLabelText,
425
+ regenerateLabel: (_templates$messages6 = templates.messages) === null || _templates$messages6 === void 0 ? void 0 : _templates$messages6.regenerateLabelText
426
+ });
427
+ var promptTemplateProps = (0, _templating.prepareTemplateProps)({
428
+ defaultTemplates: {},
429
+ templatesConfig: instantSearchInstance.templatesConfig,
430
+ templates: templates.prompt
431
+ });
432
+ var promptLayoutComponent = (_templates$prompt = templates.prompt) !== null && _templates$prompt !== void 0 && _templates$prompt.layout ? function (promptProps) {
433
+ return (0, _preact.h)(_Template.default, _extends({}, promptTemplateProps, {
434
+ templateKey: "layout",
435
+ rootTagName: "div",
436
+ data: promptProps
437
+ }));
438
+ } : undefined;
439
+ var promptHeaderComponent = (_templates$prompt2 = templates.prompt) !== null && _templates$prompt2 !== void 0 && _templates$prompt2.header ? function () {
440
+ return (0, _preact.h)(_Template.default, _extends({}, promptTemplateProps, {
441
+ templateKey: "header",
442
+ rootTagName: "fragment"
443
+ }));
444
+ } : undefined;
445
+ var promptFooterComponent = (_templates$prompt3 = templates.prompt) !== null && _templates$prompt3 !== void 0 && _templates$prompt3.footer ? function () {
446
+ return (0, _preact.h)(_Template.default, _extends({}, promptTemplateProps, {
447
+ templateKey: "footer",
448
+ rootTagName: "fragment"
449
+ }));
450
+ } : undefined;
451
+ var promptTranslations = getDefinedProperties({
452
+ textareaLabel: (_templates$prompt4 = templates.prompt) === null || _templates$prompt4 === void 0 ? void 0 : _templates$prompt4.textareaLabelText,
453
+ textareaPlaceholder: (_templates$prompt5 = templates.prompt) === null || _templates$prompt5 === void 0 ? void 0 : _templates$prompt5.textareaPlaceholderText,
454
+ emptyMessageTooltip: (_templates$prompt6 = templates.prompt) === null || _templates$prompt6 === void 0 ? void 0 : _templates$prompt6.emptyMessageTooltipText,
455
+ stopResponseTooltip: (_templates$prompt7 = templates.prompt) === null || _templates$prompt7 === void 0 ? void 0 : _templates$prompt7.stopResponseTooltipText,
456
+ sendMessageTooltip: (_templates$prompt8 = templates.prompt) === null || _templates$prompt8 === void 0 ? void 0 : _templates$prompt8.sendMessageTooltipText,
457
+ disclaimer: (_templates$prompt9 = templates.prompt) === null || _templates$prompt9 === void 0 ? void 0 : _templates$prompt9.disclaimerText
458
+ });
459
+ var actionsComponent = templates.actions ? function (actionsProps) {
460
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
461
+ templateKey: "actions",
462
+ rootTagName: "div",
463
+ data: actionsProps
464
+ }));
465
+ } : undefined;
466
+ var toggleButtonTemplateProps = (0, _templating.prepareTemplateProps)({
467
+ defaultTemplates: {},
468
+ templatesConfig: instantSearchInstance.templatesConfig,
469
+ templates: templates.toggleButton
470
+ });
471
+ var toggleButtonLayoutComponent = (_templates$toggleButt = templates.toggleButton) !== null && _templates$toggleButt !== void 0 && _templates$toggleButt.layout ? function (toggleButtonProps) {
472
+ return (0, _preact.h)(_Template.default, _extends({}, toggleButtonTemplateProps, {
473
+ templateKey: "layout",
474
+ rootTagName: "button",
475
+ data: toggleButtonProps
476
+ }));
477
+ } : undefined;
478
+ var toggleButtonIconComponent = (_templates$toggleButt2 = templates.toggleButton) !== null && _templates$toggleButt2 !== void 0 && _templates$toggleButt2.icon ? function (_ref13) {
479
+ var isOpen = _ref13.isOpen;
480
+ return (0, _preact.h)(_Template.default, _extends({}, toggleButtonTemplateProps, {
481
+ templateKey: "icon",
482
+ rootTagName: "span",
483
+ data: {
484
+ isOpen: isOpen
485
+ }
486
+ }));
487
+ } : undefined;
488
+ state.subscribe(rerender);
489
+ function rerender() {
490
+ (0, _preact.render)((0, _preact.h)(ChatWrapper, {
491
+ cssClasses: cssClasses,
492
+ chatOpen: open,
493
+ setChatOpen: setOpen,
494
+ chatMessages: messages,
495
+ indexUiState: indexUiState,
496
+ setIndexUiState: setIndexUiState,
497
+ chatStatus: status,
498
+ chatInput: input,
499
+ setChatInput: setInput,
500
+ sendMessage: sendMessage,
501
+ regenerate: regenerate,
502
+ stop: stop,
503
+ isClearing: isClearing,
504
+ clearMessages: clearMessages,
505
+ onClearTransitionEnd: onClearTransitionEnd,
506
+ toolsForUi: toolsForUi,
507
+ toggleButtonProps: {
508
+ layoutComponent: toggleButtonLayoutComponent,
509
+ iconComponent: toggleButtonIconComponent
510
+ },
511
+ headerProps: {
512
+ layoutComponent: headerLayoutComponent,
513
+ closeIconComponent: headerCloseIconComponent,
514
+ minimizeIconComponent: headerMinimizeIconComponent,
515
+ maximizeIconComponent: headerMaximizeIconComponent,
516
+ titleIconComponent: headerTitleIconComponent,
517
+ translations: headerTranslations
518
+ },
519
+ messagesProps: {
520
+ loaderComponent: messagesLoaderComponent,
521
+ errorComponent: messagesErrorComponent,
522
+ actionsComponent: actionsComponent,
523
+ translations: messagesTranslations
524
+ },
525
+ promptProps: {
526
+ layoutComponent: promptLayoutComponent,
527
+ headerComponent: promptHeaderComponent,
528
+ footerComponent: promptFooterComponent,
529
+ translations: promptTranslations,
530
+ promptRef: promptRef
531
+ },
532
+ state: state
533
+ }), containerNode);
534
+ }
535
+ rerender();
536
+ };
537
+ };
538
+ var defaultTemplates = {
539
+ item: function item(_item2) {
540
+ return JSON.stringify(_item2, null, 2);
541
+ }
542
+ };
543
+ var chat = exports.default = function chat(widgetParams) {
544
+ var _ref14 = widgetParams || {},
545
+ container = _ref14.container,
546
+ _ref14$templates = _ref14.templates,
547
+ userTemplates = _ref14$templates === void 0 ? {} : _ref14$templates,
548
+ _ref14$cssClasses = _ref14.cssClasses,
549
+ cssClasses = _ref14$cssClasses === void 0 ? {} : _ref14$cssClasses,
550
+ _ref14$resume = _ref14.resume,
551
+ resume = _ref14$resume === void 0 ? false : _ref14$resume,
552
+ userTools = _ref14.tools,
553
+ getSearchPageURL = _ref14.getSearchPageURL,
554
+ options = _objectWithoutProperties(_ref14, _excluded);
555
+ if (!container) {
556
+ throw new Error(withUsage('The `container` option is required.'));
557
+ }
558
+ var containerNode = (0, _utils.getContainerNode)(container);
559
+ var templates = _objectSpread(_objectSpread({}, defaultTemplates), userTemplates);
560
+ var defaultTools = createDefaultTools(templates, getSearchPageURL);
561
+ var tools = _objectSpread(_objectSpread({}, defaultTools), userTools);
562
+ var specializedRenderer = createRenderer({
563
+ containerNode: containerNode,
564
+ cssClasses: cssClasses,
565
+ renderState: {},
566
+ templates: templates,
567
+ tools: tools
568
+ });
569
+ var makeWidget = (0, _connectChat.default)(specializedRenderer, function () {
570
+ return (0, _preact.render)(null, containerNode);
571
+ });
572
+ return _objectSpread(_objectSpread({}, makeWidget(_objectSpread({
573
+ resume: resume,
574
+ tools: tools
575
+ }, options))), {}, {
576
+ $$widgetType: 'ais.chat'
577
+ });
578
+ };
579
+ function createLocalState() {
580
+ var state = [];
581
+ var subscriptions = new Set();
582
+ var cursor = 0;
583
+ function use(initialValue) {
584
+ var index = cursor++;
585
+ if (state[index] === undefined) {
586
+ state[index] = initialValue;
587
+ }
588
+ return [state[index], function (value) {
589
+ var prev = state[index];
590
+ if (prev === value) {
591
+ return prev;
592
+ }
593
+ state[index] = value;
594
+ subscriptions.forEach(function (fn) {
595
+ return fn();
596
+ });
597
+ return value;
598
+ }];
599
+ }
600
+ return {
601
+ init: function init() {
602
+ cursor = 0;
603
+ },
604
+ subscribe: function subscribe(fn) {
605
+ subscriptions.add(fn);
606
+ return function () {
607
+ return subscriptions.delete(fn);
608
+ };
609
+ },
610
+ use: use
611
+ };
612
+ }
@@ -12,12 +12,12 @@ var _suit = require("../../lib/suit");
12
12
  var _templating = require("../../lib/templating");
13
13
  var _utils = require("../../lib/utils");
14
14
  var _defaultTemplates = _interopRequireDefault(require("./defaultTemplates"));
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  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); }
17
17
  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; }
18
18
  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; }
19
- 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; }
20
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
19
+ 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; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
21
21
  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); }
22
22
  var withUsage = (0, _utils.createDocumentationMessageGenerator)({
23
23
  name: 'clear-refinements'
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _connectConfigure = _interopRequireDefault(require("../../connectors/configure/connectConfigure"));
8
8
  var _utils = require("../../lib/utils");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  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); }
11
11
  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; }
12
12
  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; }
13
- 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; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
13
+ 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; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
15
  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); }
16
16
  /**
17
17
  * A list of [search parameters](https://www.algolia.com/doc/api-reference/search-api-parameters/)
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _connectConfigureRelatedItems = _interopRequireDefault(require("../../connectors/configure-related-items/connectConfigureRelatedItems"));
8
8
  var _utils = require("../../lib/utils");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  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); }
11
11
  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; }
12
12
  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; }
13
- 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; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
13
+ 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; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
15
  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); }
16
16
  var configureRelatedItems = function configureRelatedItems(widgetParams) {
17
17
  var makeWidget = (0, _connectConfigureRelatedItems.default)(_utils.noop);