@botonic/react 0.31.1-alpha.0 → 0.31.1-alpha.1

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