@botonic/react 0.30.8-alpha.0 → 0.30.8

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 (378) hide show
  1. package/lib/cjs/components/carousel.d.ts +2 -1
  2. package/lib/cjs/contexts.d.ts +1 -0
  3. package/lib/cjs/message-utils.d.ts +2 -1
  4. package/lib/cjs/node-app.d.ts +1 -1
  5. package/lib/cjs/react-bot.d.ts +2 -1
  6. package/lib/cjs/webchat/hooks/use-webchat.d.ts +1 -0
  7. package/lib/cjs/webchat/utils.d.ts +1 -0
  8. package/lib/cjs/webchat-app.d.ts +4 -3
  9. package/lib/esm/app.d.ts +2 -0
  10. package/lib/esm/app.js +6 -0
  11. package/lib/esm/app.js.map +1 -0
  12. package/lib/esm/botonic-tester.d.ts +30 -0
  13. package/lib/esm/botonic-tester.js +78 -0
  14. package/lib/esm/botonic-tester.js.map +1 -0
  15. package/lib/esm/components/audio.d.ts +8 -0
  16. package/lib/esm/components/audio.js +18 -0
  17. package/lib/esm/components/audio.js.map +1 -0
  18. package/lib/esm/components/button.d.ts +17 -0
  19. package/lib/esm/components/button.js +160 -0
  20. package/lib/esm/components/button.js.map +1 -0
  21. package/lib/esm/components/buttons-disabler.d.ts +24 -0
  22. package/lib/esm/components/buttons-disabler.js +84 -0
  23. package/lib/esm/components/buttons-disabler.js.map +1 -0
  24. package/lib/esm/components/carousel.d.ts +10 -0
  25. package/lib/esm/components/carousel.js +105 -0
  26. package/lib/esm/components/carousel.js.map +1 -0
  27. package/lib/esm/components/components.d.ts +12 -0
  28. package/lib/esm/components/components.js +17 -0
  29. package/lib/esm/components/components.js.map +1 -0
  30. package/lib/esm/components/custom-message.d.ts +12 -0
  31. package/lib/esm/components/custom-message.js +56 -0
  32. package/lib/esm/components/custom-message.js.map +1 -0
  33. package/lib/esm/components/document.d.ts +8 -0
  34. package/lib/esm/components/document.js +42 -0
  35. package/lib/esm/components/document.js.map +1 -0
  36. package/lib/esm/components/element.d.ts +4 -0
  37. package/lib/esm/components/element.js +51 -0
  38. package/lib/esm/components/element.js.map +1 -0
  39. package/lib/esm/components/handoff.d.ts +1 -0
  40. package/lib/esm/components/handoff.js +49 -0
  41. package/lib/esm/components/handoff.js.map +1 -0
  42. package/lib/esm/components/image.d.ts +8 -0
  43. package/lib/esm/components/image.js +35 -0
  44. package/lib/esm/components/image.js.map +1 -0
  45. package/lib/esm/components/index-types.d.ts +186 -0
  46. package/lib/esm/components/index-types.js +2 -0
  47. package/lib/esm/components/index-types.js.map +1 -0
  48. package/lib/esm/components/index.d.ts +24 -0
  49. package/lib/esm/components/index.js +25 -0
  50. package/lib/esm/components/index.js.map +1 -0
  51. package/lib/esm/components/location.d.ts +11 -0
  52. package/lib/esm/components/location.js +27 -0
  53. package/lib/esm/components/location.js.map +1 -0
  54. package/lib/esm/components/markdown.d.ts +7 -0
  55. package/lib/esm/components/markdown.js +152 -0
  56. package/lib/esm/components/markdown.js.map +1 -0
  57. package/lib/esm/components/message/index.d.ts +1 -0
  58. package/lib/esm/components/message/index.js +146 -0
  59. package/lib/esm/components/message/index.js.map +1 -0
  60. package/lib/esm/components/message/message-feedback.d.ts +7 -0
  61. package/lib/esm/components/message/message-feedback.js +59 -0
  62. package/lib/esm/components/message/message-feedback.js.map +1 -0
  63. package/lib/esm/components/message/message-footer.d.ts +11 -0
  64. package/lib/esm/components/message/message-footer.js +17 -0
  65. package/lib/esm/components/message/message-footer.js.map +1 -0
  66. package/lib/esm/components/message/message-image.d.ts +7 -0
  67. package/lib/esm/components/message/message-image.js +19 -0
  68. package/lib/esm/components/message/message-image.js.map +1 -0
  69. package/lib/esm/components/message/styles.d.ts +33 -0
  70. package/lib/esm/components/message/styles.js +118 -0
  71. package/lib/esm/components/message/styles.js.map +1 -0
  72. package/lib/esm/components/message/timestamps.d.ts +13 -0
  73. package/lib/esm/components/message/timestamps.js +40 -0
  74. package/lib/esm/components/message/timestamps.js.map +1 -0
  75. package/lib/esm/components/message-template.d.ts +1 -0
  76. package/lib/esm/components/message-template.js +9 -0
  77. package/lib/esm/components/message-template.js.map +1 -0
  78. package/lib/esm/components/multichannel/facebook/facebook.d.ts +17 -0
  79. package/lib/esm/components/multichannel/facebook/facebook.js +43 -0
  80. package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -0
  81. package/lib/esm/components/multichannel/index-types.d.ts +46 -0
  82. package/lib/esm/components/multichannel/index-types.js +2 -0
  83. package/lib/esm/components/multichannel/index-types.js.map +1 -0
  84. package/lib/esm/components/multichannel/index.d.ts +11 -0
  85. package/lib/esm/components/multichannel/index.js +12 -0
  86. package/lib/esm/components/multichannel/index.js.map +1 -0
  87. package/lib/esm/components/multichannel/multichannel-button.d.ts +1 -0
  88. package/lib/esm/components/multichannel/multichannel-button.js +67 -0
  89. package/lib/esm/components/multichannel/multichannel-button.js.map +1 -0
  90. package/lib/esm/components/multichannel/multichannel-carousel.d.ts +1 -0
  91. package/lib/esm/components/multichannel/multichannel-carousel.js +74 -0
  92. package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -0
  93. package/lib/esm/components/multichannel/multichannel-context.d.ts +11 -0
  94. package/lib/esm/components/multichannel/multichannel-context.js +12 -0
  95. package/lib/esm/components/multichannel/multichannel-context.js.map +1 -0
  96. package/lib/esm/components/multichannel/multichannel-reply.d.ts +1 -0
  97. package/lib/esm/components/multichannel/multichannel-reply.js +20 -0
  98. package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -0
  99. package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -0
  100. package/lib/esm/components/multichannel/multichannel-text.js +160 -0
  101. package/lib/esm/components/multichannel/multichannel-text.js.map +1 -0
  102. package/lib/esm/components/multichannel/multichannel-utils.d.ts +21 -0
  103. package/lib/esm/components/multichannel/multichannel-utils.js +81 -0
  104. package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -0
  105. package/lib/esm/components/multichannel/multichannel.d.ts +1 -0
  106. package/lib/esm/components/multichannel/multichannel.js +57 -0
  107. package/lib/esm/components/multichannel/multichannel.js.map +1 -0
  108. package/lib/esm/components/multichannel/whatsapp/constants.d.ts +11 -0
  109. package/lib/esm/components/multichannel/whatsapp/constants.js +10 -0
  110. package/lib/esm/components/multichannel/whatsapp/constants.js.map +1 -0
  111. package/lib/esm/components/multichannel/whatsapp/markdown-meta.d.ts +1 -0
  112. package/lib/esm/components/multichannel/whatsapp/markdown-meta.js +38 -0
  113. package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +1 -0
  114. package/lib/esm/components/pic.d.ts +6 -0
  115. package/lib/esm/components/pic.js +25 -0
  116. package/lib/esm/components/pic.js.map +1 -0
  117. package/lib/esm/components/raw.d.ts +9 -0
  118. package/lib/esm/components/raw.js +39 -0
  119. package/lib/esm/components/raw.js.map +1 -0
  120. package/lib/esm/components/reply.d.ts +9 -0
  121. package/lib/esm/components/reply.js +49 -0
  122. package/lib/esm/components/reply.js.map +1 -0
  123. package/lib/esm/components/share-button.d.ts +1 -0
  124. package/lib/esm/components/share-button.js +9 -0
  125. package/lib/esm/components/share-button.js.map +1 -0
  126. package/lib/esm/components/subtitle.d.ts +6 -0
  127. package/lib/esm/components/subtitle.js +19 -0
  128. package/lib/esm/components/subtitle.js.map +1 -0
  129. package/lib/esm/components/text.d.ts +7 -0
  130. package/lib/esm/components/text.js +40 -0
  131. package/lib/esm/components/text.js.map +1 -0
  132. package/lib/esm/components/title.d.ts +6 -0
  133. package/lib/esm/components/title.js +17 -0
  134. package/lib/esm/components/title.js.map +1 -0
  135. package/lib/esm/components/video.d.ts +8 -0
  136. package/lib/esm/components/video.js +26 -0
  137. package/lib/esm/components/video.js.map +1 -0
  138. package/lib/esm/components/webchat-settings.d.ts +3 -0
  139. package/lib/esm/components/webchat-settings.js +69 -0
  140. package/lib/esm/components/webchat-settings.js.map +1 -0
  141. package/lib/esm/components/whatsapp-button-list.d.ts +20 -0
  142. package/lib/esm/components/whatsapp-button-list.js +47 -0
  143. package/lib/esm/components/whatsapp-button-list.js.map +1 -0
  144. package/lib/esm/components/whatsapp-cta-url-button.d.ts +15 -0
  145. package/lib/esm/components/whatsapp-cta-url-button.js +33 -0
  146. package/lib/esm/components/whatsapp-cta-url-button.js.map +1 -0
  147. package/lib/esm/components/whatsapp-template.d.ts +1 -0
  148. package/lib/esm/components/whatsapp-template.js +20 -0
  149. package/lib/esm/components/whatsapp-template.js.map +1 -0
  150. package/lib/esm/constants.d.ts +165 -0
  151. package/lib/esm/constants.js +187 -0
  152. package/lib/esm/constants.js.map +1 -0
  153. package/lib/esm/contexts.d.ts +19 -0
  154. package/lib/esm/contexts.js +95 -0
  155. package/lib/esm/contexts.js.map +1 -0
  156. package/lib/esm/dev-app.d.ts +31 -0
  157. package/lib/esm/dev-app.js +78 -0
  158. package/lib/esm/dev-app.js.map +1 -0
  159. package/lib/esm/index-types.d.ts +150 -0
  160. package/lib/esm/index-types.js +12 -0
  161. package/lib/esm/index-types.js.map +1 -0
  162. package/lib/esm/index.d.ts +11 -0
  163. package/lib/esm/index.js +12 -0
  164. package/lib/esm/index.js.map +1 -0
  165. package/lib/esm/message-utils.d.ts +19 -0
  166. package/lib/esm/message-utils.js +41 -0
  167. package/lib/esm/message-utils.js.map +1 -0
  168. package/lib/esm/msg-to-botonic.d.ts +18 -0
  169. package/lib/esm/msg-to-botonic.js +135 -0
  170. package/lib/esm/msg-to-botonic.js.map +1 -0
  171. package/lib/esm/node-app.d.ts +7 -0
  172. package/lib/esm/node-app.js +19 -0
  173. package/lib/esm/node-app.js.map +1 -0
  174. package/lib/esm/react-bot.d.ts +8 -0
  175. package/lib/esm/react-bot.js +32 -0
  176. package/lib/esm/react-bot.js.map +1 -0
  177. package/lib/esm/shared/styles.d.ts +2 -0
  178. package/lib/esm/shared/styles.js +28 -0
  179. package/lib/esm/shared/styles.js.map +1 -0
  180. package/lib/esm/util/dom.d.ts +4 -0
  181. package/lib/esm/util/dom.js +24 -0
  182. package/lib/esm/util/dom.js.map +1 -0
  183. package/lib/esm/util/environment.d.ts +6 -0
  184. package/lib/esm/util/environment.js +61 -0
  185. package/lib/esm/util/environment.js.map +1 -0
  186. package/lib/esm/util/error-boundary.d.ts +7 -0
  187. package/lib/esm/util/error-boundary.js +28 -0
  188. package/lib/esm/util/error-boundary.js.map +1 -0
  189. package/lib/esm/util/index.d.ts +9 -0
  190. package/lib/esm/util/index.js +10 -0
  191. package/lib/esm/util/index.js.map +1 -0
  192. package/lib/esm/util/logs.d.ts +2 -0
  193. package/lib/esm/util/logs.js +15 -0
  194. package/lib/esm/util/logs.js.map +1 -0
  195. package/lib/esm/util/objects.d.ts +3 -0
  196. package/lib/esm/util/objects.js +38 -0
  197. package/lib/esm/util/objects.js.map +1 -0
  198. package/lib/esm/util/react.d.ts +12 -0
  199. package/lib/esm/util/react.js +34 -0
  200. package/lib/esm/util/react.js.map +1 -0
  201. package/lib/esm/util/regexs.d.ts +2 -0
  202. package/lib/esm/util/regexs.js +18 -0
  203. package/lib/esm/util/regexs.js.map +1 -0
  204. package/lib/esm/util/strings.d.ts +1 -0
  205. package/lib/esm/util/strings.js +7 -0
  206. package/lib/esm/util/strings.js.map +1 -0
  207. package/lib/esm/util/webchat.d.ts +11 -0
  208. package/lib/esm/util/webchat.js +53 -0
  209. package/lib/esm/util/webchat.js.map +1 -0
  210. package/lib/esm/util/webviews.d.ts +1 -0
  211. package/lib/esm/util/webviews.js +6 -0
  212. package/lib/esm/util/webviews.js.map +1 -0
  213. package/lib/esm/webchat/actions.d.ts +27 -0
  214. package/lib/esm/webchat/actions.js +29 -0
  215. package/lib/esm/webchat/actions.js.map +1 -0
  216. package/lib/esm/webchat/chat-area/index.d.ts +1 -0
  217. package/lib/esm/webchat/chat-area/index.js +18 -0
  218. package/lib/esm/webchat/chat-area/index.js.map +1 -0
  219. package/lib/esm/webchat/chat-area/styles.d.ts +3 -0
  220. package/lib/esm/webchat/chat-area/styles.js +9 -0
  221. package/lib/esm/webchat/chat-area/styles.js.map +1 -0
  222. package/lib/esm/webchat/components/common.d.ts +1 -0
  223. package/lib/esm/webchat/components/common.js +9 -0
  224. package/lib/esm/webchat/components/common.js.map +1 -0
  225. package/lib/esm/webchat/components/conditional-animation.d.ts +1 -0
  226. package/lib/esm/webchat/components/conditional-animation.js +12 -0
  227. package/lib/esm/webchat/components/conditional-animation.js.map +1 -0
  228. package/lib/esm/webchat/components/opened-persistent-menu.d.ts +6 -0
  229. package/lib/esm/webchat/components/opened-persistent-menu.js +30 -0
  230. package/lib/esm/webchat/components/opened-persistent-menu.js.map +1 -0
  231. package/lib/esm/webchat/constants.d.ts +8 -0
  232. package/lib/esm/webchat/constants.js +10 -0
  233. package/lib/esm/webchat/constants.js.map +1 -0
  234. package/lib/esm/webchat/cover-component/index.d.ts +6 -0
  235. package/lib/esm/webchat/cover-component/index.js +17 -0
  236. package/lib/esm/webchat/cover-component/index.js.map +1 -0
  237. package/lib/esm/webchat/devices/index.d.ts +11 -0
  238. package/lib/esm/webchat/devices/index.js +18 -0
  239. package/lib/esm/webchat/devices/index.js.map +1 -0
  240. package/lib/esm/webchat/header.d.ts +3 -0
  241. package/lib/esm/webchat/header.js +81 -0
  242. package/lib/esm/webchat/header.js.map +1 -0
  243. package/lib/esm/webchat/hooks/index.d.ts +11 -0
  244. package/lib/esm/webchat/hooks/index.js +12 -0
  245. package/lib/esm/webchat/hooks/index.js.map +1 -0
  246. package/lib/esm/webchat/hooks/use-component-visible.d.ts +8 -0
  247. package/lib/esm/webchat/hooks/use-component-visible.js +20 -0
  248. package/lib/esm/webchat/hooks/use-component-visible.js.map +1 -0
  249. package/lib/esm/webchat/hooks/use-component-will-mount.d.ts +1 -0
  250. package/lib/esm/webchat/hooks/use-component-will-mount.js +5 -0
  251. package/lib/esm/webchat/hooks/use-component-will-mount.js.map +1 -0
  252. package/lib/esm/webchat/hooks/use-device-adapter.d.ts +3 -0
  253. package/lib/esm/webchat/hooks/use-device-adapter.js +42 -0
  254. package/lib/esm/webchat/hooks/use-device-adapter.js.map +1 -0
  255. package/lib/esm/webchat/hooks/use-previous.d.ts +1 -0
  256. package/lib/esm/webchat/hooks/use-previous.js +9 -0
  257. package/lib/esm/webchat/hooks/use-previous.js.map +1 -0
  258. package/lib/esm/webchat/hooks/use-scroll-to-bottom.d.ts +6 -0
  259. package/lib/esm/webchat/hooks/use-scroll-to-bottom.js +18 -0
  260. package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +1 -0
  261. package/lib/esm/webchat/hooks/use-scrollbar-controller.d.ts +6 -0
  262. package/lib/esm/webchat/hooks/use-scrollbar-controller.js +136 -0
  263. package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +1 -0
  264. package/lib/esm/webchat/hooks/use-typing.d.ts +10 -0
  265. package/lib/esm/webchat/hooks/use-typing.js +28 -0
  266. package/lib/esm/webchat/hooks/use-typing.js.map +1 -0
  267. package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.d.ts +3 -0
  268. package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js +24 -0
  269. package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -0
  270. package/lib/esm/webchat/hooks/use-webchat-dimensions.d.ts +4 -0
  271. package/lib/esm/webchat/hooks/use-webchat-dimensions.js +36 -0
  272. package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +1 -0
  273. package/lib/esm/webchat/hooks/use-webchat-resizer.d.ts +4 -0
  274. package/lib/esm/webchat/hooks/use-webchat-resizer.js +30 -0
  275. package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +1 -0
  276. package/lib/esm/webchat/hooks/use-webchat.d.ts +47 -0
  277. package/lib/esm/webchat/hooks/use-webchat.js +189 -0
  278. package/lib/esm/webchat/hooks/use-webchat.js.map +1 -0
  279. package/lib/esm/webchat/index-types.d.ts +62 -0
  280. package/lib/esm/webchat/index-types.js +2 -0
  281. package/lib/esm/webchat/index-types.js.map +1 -0
  282. package/lib/esm/webchat/index.d.ts +4 -0
  283. package/lib/esm/webchat/index.js +10 -0
  284. package/lib/esm/webchat/index.js.map +1 -0
  285. package/lib/esm/webchat/input-panel/attachment.d.ts +7 -0
  286. package/lib/esm/webchat/input-panel/attachment.js +26 -0
  287. package/lib/esm/webchat/input-panel/attachment.js.map +1 -0
  288. package/lib/esm/webchat/input-panel/emoji-picker.d.ts +6 -0
  289. package/lib/esm/webchat/input-panel/emoji-picker.js +23 -0
  290. package/lib/esm/webchat/input-panel/emoji-picker.js.map +1 -0
  291. package/lib/esm/webchat/input-panel/index.d.ts +12 -0
  292. package/lib/esm/webchat/input-panel/index.js +50 -0
  293. package/lib/esm/webchat/input-panel/index.js.map +1 -0
  294. package/lib/esm/webchat/input-panel/opened-emoji-picker.d.ts +6 -0
  295. package/lib/esm/webchat/input-panel/opened-emoji-picker.js +10 -0
  296. package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +1 -0
  297. package/lib/esm/webchat/input-panel/persistent-menu.d.ts +6 -0
  298. package/lib/esm/webchat/input-panel/persistent-menu.js +14 -0
  299. package/lib/esm/webchat/input-panel/persistent-menu.js.map +1 -0
  300. package/lib/esm/webchat/input-panel/send-button.d.ts +5 -0
  301. package/lib/esm/webchat/input-panel/send-button.js +14 -0
  302. package/lib/esm/webchat/input-panel/send-button.js.map +1 -0
  303. package/lib/esm/webchat/input-panel/styles.d.ts +3 -0
  304. package/lib/esm/webchat/input-panel/styles.js +27 -0
  305. package/lib/esm/webchat/input-panel/styles.js.map +1 -0
  306. package/lib/esm/webchat/input-panel/textarea.d.ts +11 -0
  307. package/lib/esm/webchat/input-panel/textarea.js +56 -0
  308. package/lib/esm/webchat/input-panel/textarea.js.map +1 -0
  309. package/lib/esm/webchat/message-list/index.d.ts +1 -0
  310. package/lib/esm/webchat/message-list/index.js +107 -0
  311. package/lib/esm/webchat/message-list/index.js.map +1 -0
  312. package/lib/esm/webchat/message-list/intro-message.d.ts +1 -0
  313. package/lib/esm/webchat/message-list/intro-message.js +18 -0
  314. package/lib/esm/webchat/message-list/intro-message.js.map +1 -0
  315. package/lib/esm/webchat/message-list/scroll-button.d.ts +5 -0
  316. package/lib/esm/webchat/message-list/scroll-button.js +12 -0
  317. package/lib/esm/webchat/message-list/scroll-button.js.map +1 -0
  318. package/lib/esm/webchat/message-list/styles.d.ts +5 -0
  319. package/lib/esm/webchat/message-list/styles.js +56 -0
  320. package/lib/esm/webchat/message-list/styles.js.map +1 -0
  321. package/lib/esm/webchat/message-list/unread-messages-banner.d.ts +6 -0
  322. package/lib/esm/webchat/message-list/unread-messages-banner.js +13 -0
  323. package/lib/esm/webchat/message-list/unread-messages-banner.js.map +1 -0
  324. package/lib/esm/webchat/message-list/use-debounce.d.ts +1 -0
  325. package/lib/esm/webchat/message-list/use-debounce.js +14 -0
  326. package/lib/esm/webchat/message-list/use-debounce.js.map +1 -0
  327. package/lib/esm/webchat/message-list/use-notifications.d.ts +7 -0
  328. package/lib/esm/webchat/message-list/use-notifications.js +20 -0
  329. package/lib/esm/webchat/message-list/use-notifications.js.map +1 -0
  330. package/lib/esm/webchat/messages-reducer.d.ts +6 -0
  331. package/lib/esm/webchat/messages-reducer.js +83 -0
  332. package/lib/esm/webchat/messages-reducer.js.map +1 -0
  333. package/lib/esm/webchat/replies.d.ts +1 -0
  334. package/lib/esm/webchat/replies.js +42 -0
  335. package/lib/esm/webchat/replies.js.map +1 -0
  336. package/lib/esm/webchat/session-view.d.ts +1 -0
  337. package/lib/esm/webchat/session-view.js +96 -0
  338. package/lib/esm/webchat/session-view.js.map +1 -0
  339. package/lib/esm/webchat/tracking.d.ts +7 -0
  340. package/lib/esm/webchat/tracking.js +10 -0
  341. package/lib/esm/webchat/tracking.js.map +1 -0
  342. package/lib/esm/webchat/trigger-button/index.d.ts +1 -0
  343. package/lib/esm/webchat/trigger-button/index.js +28 -0
  344. package/lib/esm/webchat/trigger-button/index.js.map +1 -0
  345. package/lib/esm/webchat/trigger-button/styles.d.ts +3 -0
  346. package/lib/esm/webchat/trigger-button/styles.js +36 -0
  347. package/lib/esm/webchat/trigger-button/styles.js.map +1 -0
  348. package/lib/esm/webchat/typing-indicator/index.d.ts +3 -0
  349. package/lib/esm/webchat/typing-indicator/index.js +8 -0
  350. package/lib/esm/webchat/typing-indicator/index.js.map +1 -0
  351. package/lib/esm/webchat/typing-indicator/styles.d.ts +7 -0
  352. package/lib/esm/webchat/typing-indicator/styles.js +46 -0
  353. package/lib/esm/webchat/typing-indicator/styles.js.map +1 -0
  354. package/lib/esm/webchat/use-storage-state-hook.d.ts +1 -0
  355. package/lib/esm/webchat/use-storage-state-hook.js +38 -0
  356. package/lib/esm/webchat/use-storage-state-hook.js.map +1 -0
  357. package/lib/esm/webchat/utils.d.ts +2 -0
  358. package/lib/esm/webchat/utils.js +8 -0
  359. package/lib/esm/webchat/utils.js.map +1 -0
  360. package/lib/esm/webchat/webchat-dev.d.ts +7 -0
  361. package/lib/esm/webchat/webchat-dev.js +56 -0
  362. package/lib/esm/webchat/webchat-dev.js.map +1 -0
  363. package/lib/esm/webchat/webchat-reducer.d.ts +6 -0
  364. package/lib/esm/webchat/webchat-reducer.js +46 -0
  365. package/lib/esm/webchat/webchat-reducer.js.map +1 -0
  366. package/lib/esm/webchat/webchat.d.ts +2 -0
  367. package/lib/esm/webchat/webchat.js +543 -0
  368. package/lib/esm/webchat/webchat.js.map +1 -0
  369. package/lib/esm/webchat/webview.d.ts +2 -0
  370. package/lib/esm/webchat/webview.js +70 -0
  371. package/lib/esm/webchat/webview.js.map +1 -0
  372. package/lib/esm/webchat-app.d.ts +102 -0
  373. package/lib/esm/webchat-app.js +299 -0
  374. package/lib/esm/webchat-app.js.map +1 -0
  375. package/lib/esm/webview-app.d.ts +7 -0
  376. package/lib/esm/webview-app.js +102 -0
  377. package/lib/esm/webview-app.js.map +1 -0
  378. package/package.json +2 -2
@@ -0,0 +1,543 @@
1
+ import { __awaiter } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { BotonicAction, INPUT, isMobile, params2queryString, } from '@botonic/core';
4
+ import merge from 'lodash.merge';
5
+ import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from 'react';
6
+ import styled, { StyleSheetManager } from 'styled-components';
7
+ import { v7 as uuidv7 } from 'uuid';
8
+ import { Audio, Document, Image, Text, Video } from '../components';
9
+ import { Handoff } from '../components/handoff';
10
+ import { normalizeWebchatSettings } from '../components/webchat-settings';
11
+ import { COLORS, MAX_ALLOWED_SIZE_MB, ROLES, WEBCHAT } from '../constants';
12
+ import { WebchatContext, WebviewRequestContext } from '../contexts';
13
+ import { SENDERS } from '../index-types';
14
+ import { getMediaType, isAllowedSize, isAudio, isDocument, isImage, isMedia, isText, isVideo, readDataURL, } from '../message-utils';
15
+ import { msgToBotonic } from '../msg-to-botonic';
16
+ import { isDev } from '../util/environment';
17
+ import { deserializeRegex, stringifyWithRegexs } from '../util/regexs';
18
+ import { _getThemeProperty, getServerErrorMessage, initSession, shouldKeepSessionOnReload, } from '../util/webchat';
19
+ import { ChatArea } from './chat-area';
20
+ import { OpenedPersistentMenu } from './components/opened-persistent-menu';
21
+ import { BotonicContainerId } from './constants';
22
+ import { CoverComponent } from './cover-component';
23
+ import { WebchatHeader } from './header';
24
+ import { useComponentWillMount, usePrevious, useScrollToBottom, useTyping, useWebchat, } from './hooks';
25
+ import { InputPanel } from './input-panel';
26
+ import { TriggerButton } from './trigger-button';
27
+ import { useStorageState } from './use-storage-state-hook';
28
+ import { getParsedAction } from './utils';
29
+ import { WebviewContainer } from './webview';
30
+ const StyledWebchat = styled.div `
31
+ position: fixed;
32
+ right: 20px;
33
+ bottom: 20px;
34
+ width: ${props => props.width}px;
35
+ height: ${props => props.height}px;
36
+ margin: auto;
37
+ background-color: ${COLORS.SOLID_WHITE};
38
+ border-radius: 10px;
39
+ box-shadow: ${COLORS.SOLID_BLACK_ALPHA_0_2} 0px 0px 12px;
40
+ display: flex;
41
+ flex-direction: column;
42
+ justify-content: space-between;
43
+ overflow: hidden;
44
+ `;
45
+ const ErrorMessageContainer = styled.div `
46
+ position: relative;
47
+ display: flex;
48
+ z-index: 1;
49
+ justify-content: center;
50
+ width: 100%;
51
+ `;
52
+ const ErrorMessage = styled.div `
53
+ position: absolute;
54
+ top: 10px;
55
+ font-size: 14px;
56
+ line-height: 20px;
57
+ padding: 4px 11px;
58
+ display: flex;
59
+ background-color: ${COLORS.ERROR_RED};
60
+ color: ${COLORS.CONCRETE_WHITE};
61
+ border-radius: 5px;
62
+ align-items: center;
63
+ justify-content: center;
64
+ font-family: ${WEBCHAT.DEFAULTS.FONT_FAMILY};
65
+ `;
66
+ const DarkBackgroundMenu = styled.div `
67
+ background: ${COLORS.SOLID_BLACK};
68
+ opacity: 0.3;
69
+ z-index: 1;
70
+ right: 0;
71
+ bottom: 0;
72
+ border-radius: 10px;
73
+ position: absolute;
74
+ width: 100%;
75
+ height: 100%;
76
+ `;
77
+ // eslint-disable-next-line complexity, react/display-name
78
+ export const Webchat = forwardRef((props, ref) => {
79
+ var _a;
80
+ const { addMessage, addMessageComponent, clearMessages, doRenderCustomComponent, openWebviewT, resetUnreadMessages, setCurrentAttachment, setError, setIsInputFocused, setLastMessageVisible, setOnline, toggleCoverComponent, toggleEmojiPicker, togglePersistentMenu, toggleWebchat, updateDevSettings, updateHandoff, updateLastMessageDate, updateLastRoutePath, updateLatestInput, updateMessage, updateReplies, updateSession, updateTheme, updateTyping, updateWebview, webchatState, webchatRef, chatAreaRef, inputPanelRef, headerRef, scrollableMessagesListRef,
81
+ // eslint-disable-next-line react-hooks/rules-of-hooks
82
+ } = props.webchatHooks || useWebchat();
83
+ const firstUpdate = useRef(true);
84
+ const isOnline = () => webchatState.online;
85
+ const currentDateString = () => new Date().toISOString();
86
+ const theme = merge(webchatState.theme, props.theme);
87
+ const { initialSession, initialDevSettings, onStateChange } = props;
88
+ const getThemeProperty = _getThemeProperty(theme);
89
+ const [customComponent, setCustomComponent] = useState(null);
90
+ const storage = props.storage;
91
+ const storageKey = typeof props.storageKey === 'function'
92
+ ? props.storageKey()
93
+ : props.storageKey;
94
+ const [botonicState, saveState] = useStorageState(storage, storageKey);
95
+ const host = props.host || document.body;
96
+ const { scrollToBottom } = useScrollToBottom({ host });
97
+ const saveWebchatState = webchatState => {
98
+ storage &&
99
+ saveState(JSON.parse(stringifyWithRegexs({
100
+ messages: webchatState.messagesJSON,
101
+ session: webchatState.session,
102
+ lastRoutePath: webchatState.lastRoutePath,
103
+ devSettings: webchatState.devSettings,
104
+ lastMessageUpdate: webchatState.lastMessageUpdate,
105
+ themeUpdates: webchatState.themeUpdates,
106
+ })));
107
+ };
108
+ const handleAttachment = event => {
109
+ if (!isAllowedSize(event.target.files[0].size)) {
110
+ throw new Error(`The file is too large. A maximum of ${MAX_ALLOWED_SIZE_MB}MB is allowed.`);
111
+ }
112
+ setCurrentAttachment({
113
+ fileName: event.target.files[0].name,
114
+ file: event.target.files[0],
115
+ attachmentType: getMediaType(event.target.files[0].type),
116
+ });
117
+ };
118
+ useEffect(() => {
119
+ if (webchatState.currentAttachment)
120
+ sendAttachment(webchatState.currentAttachment);
121
+ }, [webchatState.currentAttachment]);
122
+ const sendUserInput = (input) => __awaiter(void 0, void 0, void 0, function* () {
123
+ if (props.onUserInput) {
124
+ resetUnreadMessages();
125
+ scrollToBottom({ host });
126
+ props.onUserInput({
127
+ user: webchatState.session.user,
128
+ input: input,
129
+ session: webchatState.session,
130
+ lastRoutePath: webchatState.lastRoutePath,
131
+ });
132
+ }
133
+ });
134
+ // Load styles stored in window._botonicInsertStyles by Webpack
135
+ useComponentWillMount(() => {
136
+ if (window._botonicInsertStyles && window._botonicInsertStyles.length) {
137
+ for (const botonicStyle of window._botonicInsertStyles) {
138
+ // Injecting styles at head is needed even if we use shadowDOM
139
+ // as some dependencies like simplebar rely on creating ephemeral elements
140
+ // on document.body and assume styles will be available globally
141
+ document.head.appendChild(botonicStyle);
142
+ // injecting styles in host node too so that shadowDOM works
143
+ if (props.shadowDOM)
144
+ host.appendChild(botonicStyle.cloneNode(true));
145
+ }
146
+ delete window._botonicInsertStyles;
147
+ }
148
+ if (props.shadowDOM) {
149
+ // emoji-picker-react injects styles in head, so we need to
150
+ // re-inject them in our host node to make it work with shadowDOM
151
+ for (const style of document.querySelectorAll('style')) {
152
+ if (style.textContent &&
153
+ style.textContent.includes('emoji-picker-react'))
154
+ host.appendChild(style.cloneNode(true));
155
+ }
156
+ }
157
+ });
158
+ // Load initial state from storage
159
+ useEffect(() => {
160
+ let { messages, session, lastRoutePath, devSettings, lastMessageUpdate, themeUpdates, } = botonicState || {};
161
+ session = initSession(session);
162
+ updateSession(session);
163
+ if (shouldKeepSessionOnReload({ initialDevSettings, devSettings })) {
164
+ if (messages) {
165
+ messages.forEach(message => {
166
+ addMessage(message);
167
+ const newMessageComponent = msgToBotonic(Object.assign(Object.assign({}, message), { delay: 0, typing: 0 }), (props.theme.message && props.theme.message.customTypes) ||
168
+ props.theme.customMessageTypes);
169
+ if (newMessageComponent)
170
+ addMessageComponent(newMessageComponent);
171
+ });
172
+ }
173
+ if (initialSession)
174
+ updateSession(merge(initialSession, session));
175
+ if (lastRoutePath)
176
+ updateLastRoutePath(lastRoutePath);
177
+ }
178
+ else
179
+ updateSession(merge(initialSession, session));
180
+ if (devSettings)
181
+ updateDevSettings(devSettings);
182
+ else if (initialDevSettings)
183
+ updateDevSettings(initialDevSettings);
184
+ if (lastMessageUpdate)
185
+ updateLastMessageDate(lastMessageUpdate);
186
+ if (themeUpdates !== undefined)
187
+ updateTheme(merge(props.theme, themeUpdates), themeUpdates);
188
+ if (props.onInit)
189
+ setTimeout(() => props.onInit(), 100);
190
+ }, []);
191
+ useEffect(() => {
192
+ if (!webchatState.isWebchatOpen) {
193
+ if (webchatState.isLastMessageVisible) {
194
+ resetUnreadMessages();
195
+ }
196
+ return;
197
+ }
198
+ }, [webchatState.isWebchatOpen]);
199
+ useEffect(() => {
200
+ if (onStateChange && typeof onStateChange === 'function') {
201
+ onStateChange(webchatState);
202
+ }
203
+ saveWebchatState(webchatState);
204
+ }, [
205
+ webchatState.messagesJSON,
206
+ webchatState.session,
207
+ webchatState.lastRoutePath,
208
+ webchatState.devSettings,
209
+ webchatState.lastMessageUpdate,
210
+ ]);
211
+ useEffect(() => {
212
+ if (!webchatState.online) {
213
+ setError({
214
+ message: getServerErrorMessage(props.server),
215
+ });
216
+ }
217
+ else {
218
+ if (!firstUpdate.current) {
219
+ setError(undefined);
220
+ }
221
+ }
222
+ }, [webchatState.online]);
223
+ useTyping({ webchatState, updateTyping, updateMessage, host });
224
+ useEffect(() => {
225
+ updateTheme(merge(props.theme, theme, webchatState.themeUpdates));
226
+ }, [props.theme, webchatState.themeUpdates]);
227
+ const openWebview = (webviewComponent, params) => {
228
+ updateWebview(webviewComponent, params);
229
+ };
230
+ const textareaRef = useRef(null);
231
+ const closeWebview = (options) => __awaiter(void 0, void 0, void 0, function* () {
232
+ updateWebview();
233
+ if (userInputEnabled) {
234
+ textareaRef.current.focus();
235
+ }
236
+ if (options === null || options === void 0 ? void 0 : options.payload) {
237
+ yield sendPayload(options.payload);
238
+ }
239
+ else if (options === null || options === void 0 ? void 0 : options.path) {
240
+ const params = options.params ? params2queryString(options.params) : '';
241
+ yield sendPayload(`__PATH_PAYLOAD__${options.path}?${params}`);
242
+ }
243
+ });
244
+ const persistentMenuOptions = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.persistentMenu, props.persistentMenu);
245
+ const darkBackgroundMenu = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu, false);
246
+ const getBlockInputs = (rule, inputData) => {
247
+ const processedInput = rule.preprocess
248
+ ? rule.preprocess(inputData)
249
+ : inputData;
250
+ return rule.match.some(regex => {
251
+ if (typeof regex === 'string')
252
+ regex = deserializeRegex(regex);
253
+ return regex.test(processedInput);
254
+ });
255
+ };
256
+ const checkBlockInput = input => {
257
+ // if is a text we check if it is a serialized RE
258
+ const blockInputs = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.blockInputs, props.blockInputs);
259
+ if (!Array.isArray(blockInputs))
260
+ return false;
261
+ for (const rule of blockInputs) {
262
+ if (getBlockInputs(rule, input.data)) {
263
+ addMessageComponent(_jsx(Text, Object.assign({ id: input.id, sentBy: SENDERS.user, blob: false, style: {
264
+ backgroundColor: COLORS.SCORPION_GRAY,
265
+ borderColor: COLORS.SCORPION_GRAY,
266
+ padding: '8px 12px',
267
+ } }, { children: rule.message })));
268
+ updateReplies(false);
269
+ return true;
270
+ }
271
+ }
272
+ return false;
273
+ };
274
+ const closeMenu = () => {
275
+ togglePersistentMenu(false);
276
+ };
277
+ const persistentMenu = () => {
278
+ return (_jsx(OpenedPersistentMenu, { onClick: closeMenu, options: persistentMenuOptions, borderRadius: webchatState.theme.style.borderRadius || '10px' }));
279
+ };
280
+ const getCoverComponent = () => {
281
+ return getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.coverComponent, props.coverComponent &&
282
+ (props.coverComponent.component || props.coverComponent));
283
+ };
284
+ const coverComponent = getCoverComponent();
285
+ const coverComponentProps = (_a = props.coverComponent) === null || _a === void 0 ? void 0 : _a.props;
286
+ useEffect(() => {
287
+ if (!coverComponent)
288
+ return;
289
+ if (!botonicState ||
290
+ (botonicState.messages && botonicState.messages.length === 0))
291
+ toggleCoverComponent(true);
292
+ }, []);
293
+ const messageComponentFromInput = input => {
294
+ let messageComponent = null;
295
+ if (isText(input)) {
296
+ messageComponent = (_jsx(Text, Object.assign({ id: input.id, payload: input.payload, sentBy: SENDERS.user }, { children: input.data })));
297
+ }
298
+ else if (isMedia(input)) {
299
+ const temporaryDisplayUrl = URL.createObjectURL(input.data);
300
+ const mediaProps = {
301
+ id: input.id,
302
+ sentBy: SENDERS.user,
303
+ src: temporaryDisplayUrl,
304
+ };
305
+ if (isImage(input)) {
306
+ mediaProps.input = input;
307
+ messageComponent = _jsx(Image, Object.assign({}, mediaProps));
308
+ }
309
+ else if (isAudio(input))
310
+ messageComponent = _jsx(Audio, Object.assign({}, mediaProps));
311
+ else if (isVideo(input))
312
+ messageComponent = _jsx(Video, Object.assign({}, mediaProps));
313
+ else if (isDocument(input))
314
+ messageComponent = _jsx(Document, Object.assign({}, mediaProps));
315
+ }
316
+ return messageComponent;
317
+ };
318
+ const sendInput = (input) => __awaiter(void 0, void 0, void 0, function* () {
319
+ if (!input || Object.keys(input).length == 0)
320
+ return;
321
+ if (isText(input) && (!input.data || !input.data.trim()))
322
+ return; // in case trim() doesn't work in a browser we can use !/\S/.test(input.data)
323
+ if (isText(input) && checkBlockInput(input))
324
+ return;
325
+ if (!input.id)
326
+ input.id = uuidv7();
327
+ const messageComponent = messageComponentFromInput(input);
328
+ if (messageComponent)
329
+ addMessageComponent(messageComponent);
330
+ if (isMedia(input))
331
+ input.data = yield readDataURL(input.data);
332
+ sendUserInput(input);
333
+ updateLatestInput(input);
334
+ isOnline() && updateLastMessageDate(currentDateString());
335
+ updateReplies(false);
336
+ togglePersistentMenu(false);
337
+ toggleEmojiPicker(false);
338
+ });
339
+ /* This is the public API this component exposes to its parents
340
+ https://stackoverflow.com/questions/37949981/call-child-method-from-parent
341
+ */
342
+ const updateSessionWithUser = userToUpdate => updateSession(merge(webchatState.session, { user: userToUpdate }));
343
+ useImperativeHandle(ref, () => ({
344
+ addBotResponse: ({ response, session, lastRoutePath }) => {
345
+ updateTyping(false);
346
+ const isUnread = !webchatState.isLastMessageVisible || webchatState.numUnreadMessages > 0;
347
+ if (Array.isArray(response)) {
348
+ response.forEach(r => {
349
+ addMessageComponent(Object.assign(Object.assign({}, r), { props: Object.assign(Object.assign({}, r.props), { isUnread }) }));
350
+ });
351
+ }
352
+ else if (response) {
353
+ addMessageComponent(Object.assign(Object.assign({}, response), { props: Object.assign(Object.assign({}, response.props), { isUnread }) }));
354
+ }
355
+ if (session) {
356
+ updateSession(merge(session, { user: webchatState.session.user }));
357
+ const action = session._botonic_action || '';
358
+ const handoff = action.startsWith(BotonicAction.CreateCase);
359
+ if (handoff && isDev)
360
+ addMessageComponent(_jsx(Handoff, {}));
361
+ updateHandoff(handoff);
362
+ }
363
+ if (lastRoutePath)
364
+ updateLastRoutePath(lastRoutePath);
365
+ updateLastMessageDate(currentDateString());
366
+ },
367
+ setTyping: typing => updateTyping(typing),
368
+ addUserMessage: message => sendInput(message),
369
+ updateUser: updateSessionWithUser,
370
+ openWebchat: () => toggleWebchat(true),
371
+ closeWebchat: () => toggleWebchat(false),
372
+ toggleWebchat: () => toggleWebchat(!webchatState.isWebchatOpen),
373
+ openCoverComponent: () => toggleCoverComponent(true),
374
+ closeCoverComponent: () => toggleCoverComponent(false),
375
+ renderCustomComponent: _customComponent => {
376
+ setCustomComponent(_customComponent);
377
+ doRenderCustomComponent(true);
378
+ },
379
+ unmountCustomComponent: () => doRenderCustomComponent(false),
380
+ toggleCoverComponent: () => toggleCoverComponent(!webchatState.isCoverComponentOpen),
381
+ openWebviewApi: component => openWebviewT(component),
382
+ setError,
383
+ setOnline,
384
+ getMessages: () => webchatState.messagesJSON,
385
+ isOnline,
386
+ clearMessages: () => {
387
+ clearMessages();
388
+ updateReplies(false);
389
+ },
390
+ getLastMessageUpdate: () => webchatState.lastMessageUpdate,
391
+ updateMessageInfo: (msgId, messageInfo) => {
392
+ const messageToUpdate = webchatState.messagesJSON.filter(m => m.id == msgId)[0];
393
+ const updatedMsg = merge(messageToUpdate, messageInfo);
394
+ if (updatedMsg.ack === 1)
395
+ delete updatedMsg.unsentInput;
396
+ updateMessage(updatedMsg);
397
+ },
398
+ updateWebchatSettings: settings => {
399
+ if (settings.user) {
400
+ updateSessionWithUser(settings.user);
401
+ }
402
+ const themeUpdates = normalizeWebchatSettings(settings);
403
+ updateTheme(merge(webchatState.theme, themeUpdates), themeUpdates);
404
+ updateTyping(false);
405
+ },
406
+ closeWebview: closeWebview,
407
+ }));
408
+ const resolveCase = () => {
409
+ updateHandoff(false);
410
+ updateSession(Object.assign(Object.assign({}, webchatState.session), { _botonic_action: null }));
411
+ };
412
+ const prevSession = usePrevious(webchatState.session);
413
+ useEffect(() => {
414
+ // Resume conversation after handoff
415
+ if (prevSession &&
416
+ prevSession._botonic_action &&
417
+ !webchatState.session._botonic_action) {
418
+ const action = getParsedAction(prevSession._botonic_action);
419
+ if (action && action.on_finish)
420
+ sendPayload(action.on_finish);
421
+ }
422
+ }, [webchatState.session._botonic_action]);
423
+ const sendText = (text, payload) => __awaiter(void 0, void 0, void 0, function* () {
424
+ if (!text)
425
+ return;
426
+ const input = { type: INPUT.TEXT, data: text, payload };
427
+ yield sendInput(input);
428
+ });
429
+ const sendPayload = (payload) => __awaiter(void 0, void 0, void 0, function* () {
430
+ if (!payload)
431
+ return;
432
+ const input = { type: INPUT.POSTBACK, payload };
433
+ yield sendInput(input);
434
+ });
435
+ const sendAttachment = (attachment) => __awaiter(void 0, void 0, void 0, function* () {
436
+ if (attachment.file) {
437
+ const attachmentType = getMediaType(attachment.file.type);
438
+ if (!attachmentType)
439
+ return;
440
+ const input = {
441
+ type: attachmentType,
442
+ data: attachment.file,
443
+ };
444
+ yield sendInput(input);
445
+ setCurrentAttachment(undefined);
446
+ }
447
+ });
448
+ const webviewRequestContext = {
449
+ closeWebview: closeWebview,
450
+ getString: stringId => props.getString(stringId, webchatState.session),
451
+ params: webchatState.webviewParams || {},
452
+ session: webchatState.session || {},
453
+ };
454
+ useEffect(() => {
455
+ if (firstUpdate.current) {
456
+ firstUpdate.current = false;
457
+ return;
458
+ }
459
+ if (webchatState.isWebchatOpen && props.onOpen)
460
+ props.onOpen();
461
+ if (!webchatState.isWebchatOpen && props.onClose && !firstUpdate.current) {
462
+ props.onClose();
463
+ toggleEmojiPicker(false);
464
+ togglePersistentMenu(false);
465
+ }
466
+ }, [webchatState.isWebchatOpen]);
467
+ const isUserInputEnabled = () => {
468
+ const isUserInputEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.enableUserInput, props.enableUserInput !== undefined ? props.enableUserInput : true);
469
+ return isUserInputEnabled && !webchatState.isCoverComponentOpen;
470
+ };
471
+ const userInputEnabled = isUserInputEnabled();
472
+ const webchatWebview = () => (_jsx(WebviewRequestContext.Provider, Object.assign({ value: webviewRequestContext }, { children: _jsx(WebviewContainer, { style: Object.assign(Object.assign({}, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewStyle)), mobileStyle), webview: webchatState.webview }) })));
473
+ let mobileStyle = {};
474
+ if (isMobile(getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.mobileBreakpoint))) {
475
+ mobileStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.mobileStyle) || {
476
+ width: '100%',
477
+ height: '100%',
478
+ right: 0,
479
+ bottom: 0,
480
+ borderRadius: 0,
481
+ };
482
+ }
483
+ useEffect(() => {
484
+ // Prod mode
485
+ saveWebchatState(webchatState);
486
+ }, [webchatState.themeUpdates]);
487
+ // Only needed for dev/serve mode
488
+ const updateWebchatDevSettings = settings => {
489
+ // eslint-disable-next-line react-hooks/rules-of-hooks
490
+ useEffect(() => {
491
+ const themeUpdates = normalizeWebchatSettings(settings);
492
+ updateTheme(merge(webchatState.theme, themeUpdates), themeUpdates);
493
+ }, [webchatState.messagesJSON]);
494
+ };
495
+ const DarkenBackground = ({ component }) => {
496
+ return (_jsxs("div", { children: [darkBackgroundMenu && (_jsx(DarkBackgroundMenu, { style: {
497
+ borderRadius: webchatState.theme.style.borderRadius,
498
+ } })), component] }));
499
+ };
500
+ const _renderCustomComponent = () => {
501
+ if (!customComponent)
502
+ return _jsx(_Fragment, {});
503
+ else
504
+ return customComponent;
505
+ };
506
+ const WebchatComponent = (_jsxs(WebchatContext.Provider, Object.assign({ value: {
507
+ addMessage,
508
+ getThemeProperty,
509
+ openWebview,
510
+ resolveCase,
511
+ resetUnreadMessages,
512
+ setIsInputFocused,
513
+ setLastMessageVisible,
514
+ sendAttachment,
515
+ sendInput,
516
+ sendPayload,
517
+ sendText,
518
+ toggleWebchat,
519
+ toggleEmojiPicker,
520
+ togglePersistentMenu,
521
+ toggleCoverComponent,
522
+ updateLatestInput,
523
+ updateMessage,
524
+ updateReplies,
525
+ updateUser: updateSessionWithUser,
526
+ updateWebchatDevSettings: updateWebchatDevSettings,
527
+ webchatState,
528
+ trackEvent: props.onTrackEvent,
529
+ webchatRef,
530
+ chatAreaRef,
531
+ inputPanelRef,
532
+ headerRef,
533
+ scrollableMessagesListRef,
534
+ } }, { children: [!webchatState.isWebchatOpen && _jsx(TriggerButton, {}), webchatState.isWebchatOpen && (_jsxs(StyledWebchat, Object.assign({ id: BotonicContainerId.Webchat, ref: webchatRef,
535
+ // TODO: Distinguish between multiple instances of webchat, e.g. `${uniqueId}-botonic-webchat`
536
+ role: ROLES.WEBCHAT, width: webchatState.width, height: webchatState.height, style: Object.assign(Object.assign({}, webchatState.theme.style), mobileStyle) }, { children: [_jsx(WebchatHeader, { id: BotonicContainerId.Header, ref: headerRef, onCloseClick: () => {
537
+ toggleWebchat(false);
538
+ } }), webchatState.isCoverComponentOpen ? (_jsx(CoverComponent, { component: coverComponent, componentProps: coverComponentProps })) : (_jsxs(_Fragment, { children: [webchatState.error.message && (_jsx(ErrorMessageContainer, { children: _jsx(ErrorMessage, { children: webchatState.error.message }) })), _jsx(ChatArea, {}), webchatState.isPersistentMenuOpen && (_jsx(DarkenBackground, { component: persistentMenu() })), !webchatState.handoff && userInputEnabled && (_jsx(InputPanel, { persistentMenu: props.persistentMenu, enableEmojiPicker: props.enableEmojiPicker, enableAttachments: props.enableAttachments, handleAttachment: handleAttachment, textareaRef: textareaRef, host: host, onUserInput: props.onUserInput })), webchatState.webview && webchatWebview(), webchatState.isCustomComponentRendered &&
539
+ customComponent &&
540
+ _renderCustomComponent()] }))] })))] })));
541
+ return props.shadowDOM ? (_jsx(StyleSheetManager, Object.assign({ target: host }, { children: WebchatComponent }))) : (WebchatComponent);
542
+ });
543
+ //# sourceMappingURL=webchat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/webchat/webchat.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export function WebviewHeader(): JSX.Element;
2
+ export function WebviewContainer(props: any): JSX.Element;
@@ -0,0 +1,70 @@
1
+ import { __awaiter } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { useContext, useEffect } from 'react';
4
+ import styled from 'styled-components';
5
+ import { COLORS, ROLES, WEBCHAT } from '../constants';
6
+ import { WebchatContext, WebviewRequestContext } from '../contexts';
7
+ const StyledWebview = styled.div `
8
+ position: absolute;
9
+ display: flex;
10
+ flex-direction: column;
11
+ bottom: 0;
12
+ width: 100%;
13
+ height: 100%;
14
+ background-color: ${COLORS.SOLID_WHITE};
15
+ z-index: 2;
16
+ border-radius: ${WEBCHAT.DEFAULTS.BORDER_RADIUS_TOP_CORNERS};
17
+ `;
18
+ const StyledWebviewHeader = styled.div `
19
+ text-align: right;
20
+ background-color: ${COLORS.WILD_SAND_WHITE};
21
+ border-top: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};
22
+ border-bottom: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};
23
+ border-radius: ${WEBCHAT.DEFAULTS.BORDER_RADIUS_TOP_CORNERS};
24
+ `;
25
+ const StyledCloseHeader = styled.div `
26
+ display: inline-block;
27
+ padding: 8px 12px;
28
+ cursor: pointer;
29
+ `;
30
+ const StyledWebviewContent = styled.div `
31
+ flex: 1;
32
+ overflow: auto;
33
+ `;
34
+ const FrameStyles = `
35
+ border-style: none;
36
+ width: 100%;
37
+ height: 100%;
38
+ `;
39
+ const StyledFrame = styled.iframe `
40
+ ${FrameStyles}
41
+ `;
42
+ const StyledFrameAsDiv = styled.div `
43
+ ${FrameStyles}
44
+ `;
45
+ export const WebviewHeader = () => {
46
+ const { closeWebview } = useContext(WebviewRequestContext);
47
+ const { getThemeProperty } = useContext(WebchatContext);
48
+ return (_jsx(StyledWebviewHeader, Object.assign({ role: ROLES.WEBVIEW_HEADER, style: Object.assign({}, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewHeaderStyle)) }, { children: _jsx(StyledCloseHeader, Object.assign({ onClick: closeWebview }, { children: "\u2715" })) })));
49
+ };
50
+ export const WebviewContainer = props => {
51
+ const { webchatState } = useContext(WebchatContext);
52
+ const { closeWebview } = useContext(WebviewRequestContext);
53
+ const Webview = webchatState.webview;
54
+ const close = (e) => __awaiter(void 0, void 0, void 0, function* () {
55
+ if (e.data === 'botonicCloseWebview') {
56
+ yield closeWebview();
57
+ }
58
+ });
59
+ useEffect(() => {
60
+ if (window.addEventListener) {
61
+ window.addEventListener('message', close, false);
62
+ }
63
+ else if (window.attachEvent) {
64
+ // ie8
65
+ window.attachEvent('onmessage', close);
66
+ }
67
+ }, []);
68
+ return (_jsxs(StyledWebview, Object.assign({ role: ROLES.WEBVIEW, style: Object.assign({}, props.style) }, { children: [_jsx(WebviewHeader, { style: { flex: 'none' } }), _jsx(StyledWebviewContent, { children: typeof Webview === 'string' ? (_jsx(StyledFrame, { src: Webview })) : (_jsx(StyledFrameAsDiv, { children: _jsx(Webview, {}) })) })] })));
69
+ };
70
+ //# sourceMappingURL=webview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview.js","sourceRoot":"","sources":["../../../src/webchat/webview.jsx"],"names":[],"mappings":"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"}