@botonic/react 0.22.0-alpha.0 → 0.22.0-alpha.2

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 (702) hide show
  1. package/lib/cjs/app.d.ts +2 -0
  2. package/lib/cjs/app.js +10 -0
  3. package/lib/cjs/app.js.map +1 -0
  4. package/lib/cjs/botonic-tester.d.ts +18 -0
  5. package/lib/cjs/botonic-tester.js +68 -0
  6. package/lib/cjs/botonic-tester.js.map +1 -0
  7. package/lib/cjs/components/audio.d.ts +8 -0
  8. package/lib/cjs/components/audio.js +23 -0
  9. package/lib/cjs/components/audio.js.map +1 -0
  10. package/lib/cjs/components/button.d.ts +15 -0
  11. package/lib/cjs/components/button.js +145 -0
  12. package/lib/cjs/components/button.js.map +1 -0
  13. package/lib/cjs/components/buttons-disabler.d.ts +24 -0
  14. package/lib/cjs/components/buttons-disabler.js +88 -0
  15. package/lib/cjs/components/buttons-disabler.js.map +1 -0
  16. package/lib/cjs/components/carousel.d.ts +10 -0
  17. package/lib/cjs/components/carousel.js +107 -0
  18. package/lib/cjs/components/carousel.js.map +1 -0
  19. package/lib/cjs/components/components.d.ts +12 -0
  20. package/lib/{components → cjs/components}/components.js +6 -11
  21. package/lib/cjs/components/components.js.map +1 -0
  22. package/lib/cjs/components/custom-message.d.ts +12 -0
  23. package/lib/cjs/components/custom-message.js +59 -0
  24. package/lib/cjs/components/custom-message.js.map +1 -0
  25. package/lib/cjs/components/document.d.ts +8 -0
  26. package/lib/cjs/components/document.js +47 -0
  27. package/lib/cjs/components/document.js.map +1 -0
  28. package/lib/cjs/components/element.d.ts +4 -0
  29. package/lib/cjs/components/element.js +56 -0
  30. package/lib/cjs/components/element.js.map +1 -0
  31. package/lib/cjs/components/handoff.d.ts +1 -0
  32. package/lib/cjs/components/handoff.js +54 -0
  33. package/lib/cjs/components/handoff.js.map +1 -0
  34. package/lib/cjs/components/image.d.ts +8 -0
  35. package/lib/cjs/components/image.js +38 -0
  36. package/lib/cjs/components/image.js.map +1 -0
  37. package/lib/cjs/components/index.d.ts +20 -0
  38. package/lib/cjs/components/index.js +44 -0
  39. package/lib/cjs/components/index.js.map +1 -0
  40. package/lib/cjs/components/location.d.ts +11 -0
  41. package/lib/cjs/components/location.js +32 -0
  42. package/lib/cjs/components/location.js.map +1 -0
  43. package/lib/cjs/components/markdown.d.ts +7 -0
  44. package/lib/cjs/components/markdown.js +162 -0
  45. package/lib/cjs/components/markdown.js.map +1 -0
  46. package/lib/cjs/components/message-template.d.ts +1 -0
  47. package/lib/cjs/components/message-template.js +14 -0
  48. package/lib/cjs/components/message-template.js.map +1 -0
  49. package/lib/cjs/components/message.d.ts +1 -0
  50. package/lib/cjs/components/message.js +188 -0
  51. package/lib/cjs/components/message.js.map +1 -0
  52. package/lib/cjs/components/multichannel/facebook/facebook.d.ts +17 -0
  53. package/lib/cjs/components/multichannel/facebook/facebook.js +47 -0
  54. package/lib/cjs/components/multichannel/facebook/facebook.js.map +1 -0
  55. package/lib/cjs/components/multichannel/index.d.ts +6 -0
  56. package/lib/cjs/components/multichannel/index.js +14 -0
  57. package/lib/cjs/components/multichannel/index.js.map +1 -0
  58. package/lib/cjs/components/multichannel/multichannel-button.d.ts +1 -0
  59. package/lib/cjs/components/multichannel/multichannel-button.js +76 -0
  60. package/lib/cjs/components/multichannel/multichannel-button.js.map +1 -0
  61. package/lib/cjs/components/multichannel/multichannel-carousel.d.ts +1 -0
  62. package/lib/cjs/components/multichannel/multichannel-carousel.js +78 -0
  63. package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -0
  64. package/lib/cjs/components/multichannel/multichannel-context.d.ts +11 -0
  65. package/lib/cjs/components/multichannel/multichannel-context.js +16 -0
  66. package/lib/cjs/components/multichannel/multichannel-context.js.map +1 -0
  67. package/lib/cjs/components/multichannel/multichannel-reply.d.ts +1 -0
  68. package/lib/cjs/components/multichannel/multichannel-reply.js +25 -0
  69. package/lib/cjs/components/multichannel/multichannel-reply.js.map +1 -0
  70. package/lib/cjs/components/multichannel/multichannel-text.d.ts +1 -0
  71. package/lib/cjs/components/multichannel/multichannel-text.js +132 -0
  72. package/lib/cjs/components/multichannel/multichannel-text.js.map +1 -0
  73. package/lib/cjs/components/multichannel/multichannel-utils.d.ts +24 -0
  74. package/lib/cjs/components/multichannel/multichannel-utils.js +83 -0
  75. package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -0
  76. package/lib/cjs/components/multichannel/multichannel.d.ts +1 -0
  77. package/lib/cjs/components/multichannel/multichannel.js +60 -0
  78. package/lib/cjs/components/multichannel/multichannel.js.map +1 -0
  79. package/lib/cjs/components/pic.d.ts +6 -0
  80. package/lib/cjs/components/pic.js +30 -0
  81. package/lib/cjs/components/pic.js.map +1 -0
  82. package/lib/cjs/components/raw.d.ts +9 -0
  83. package/lib/cjs/components/raw.js +44 -0
  84. package/lib/cjs/components/raw.js.map +1 -0
  85. package/lib/cjs/components/reply.d.ts +9 -0
  86. package/lib/cjs/components/reply.js +54 -0
  87. package/lib/cjs/components/reply.js.map +1 -0
  88. package/lib/cjs/components/share-button.d.ts +1 -0
  89. package/lib/cjs/components/share-button.js +14 -0
  90. package/lib/cjs/components/share-button.js.map +1 -0
  91. package/lib/cjs/components/subtitle.d.ts +6 -0
  92. package/lib/cjs/components/subtitle.js +24 -0
  93. package/lib/cjs/components/subtitle.js.map +1 -0
  94. package/lib/cjs/components/text.d.ts +8 -0
  95. package/lib/cjs/components/text.js +47 -0
  96. package/lib/cjs/components/text.js.map +1 -0
  97. package/lib/cjs/components/timestamps.d.ts +10 -0
  98. package/lib/cjs/components/timestamps.js +51 -0
  99. package/lib/cjs/components/timestamps.js.map +1 -0
  100. package/lib/cjs/components/title.d.ts +6 -0
  101. package/lib/cjs/components/title.js +22 -0
  102. package/lib/cjs/components/title.js.map +1 -0
  103. package/lib/cjs/components/video.d.ts +8 -0
  104. package/lib/cjs/components/video.js +31 -0
  105. package/lib/cjs/components/video.js.map +1 -0
  106. package/lib/cjs/components/webchat-settings.d.ts +10 -0
  107. package/lib/cjs/components/webchat-settings.js +79 -0
  108. package/lib/cjs/components/webchat-settings.js.map +1 -0
  109. package/lib/cjs/components/whatsapp-template.d.ts +1 -0
  110. package/lib/cjs/components/whatsapp-template.js +25 -0
  111. package/lib/cjs/components/whatsapp-template.js.map +1 -0
  112. package/lib/cjs/constants.d.ts +168 -0
  113. package/lib/cjs/constants.js +190 -0
  114. package/lib/cjs/constants.js.map +1 -0
  115. package/lib/cjs/contexts.d.ts +69 -0
  116. package/lib/cjs/contexts.js +38 -0
  117. package/lib/cjs/contexts.js.map +1 -0
  118. package/lib/cjs/dev-app.d.ts +30 -0
  119. package/lib/cjs/dev-app.js +72 -0
  120. package/lib/cjs/dev-app.js.map +1 -0
  121. package/lib/cjs/index.d.ts +10 -0
  122. package/lib/cjs/index.js +28 -0
  123. package/lib/cjs/index.js.map +1 -0
  124. package/lib/cjs/message-utils.d.ts +19 -0
  125. package/lib/cjs/message-utils.js +61 -0
  126. package/lib/cjs/message-utils.js.map +1 -0
  127. package/lib/cjs/msg-to-botonic.d.ts +18 -0
  128. package/lib/cjs/msg-to-botonic.js +138 -0
  129. package/lib/cjs/msg-to-botonic.js.map +1 -0
  130. package/lib/cjs/node-app.d.ts +12 -0
  131. package/lib/cjs/node-app.js +25 -0
  132. package/lib/cjs/node-app.js.map +1 -0
  133. package/lib/cjs/react-bot.d.ts +8 -0
  134. package/lib/cjs/react-bot.js +34 -0
  135. package/lib/cjs/react-bot.js.map +1 -0
  136. package/lib/cjs/util/dom.d.ts +13 -0
  137. package/lib/cjs/util/dom.js +55 -0
  138. package/lib/cjs/util/dom.js.map +1 -0
  139. package/lib/cjs/util/environment.d.ts +6 -0
  140. package/lib/cjs/util/environment.js +68 -0
  141. package/lib/cjs/util/environment.js.map +1 -0
  142. package/lib/cjs/util/error-boundary.d.ts +7 -0
  143. package/lib/cjs/util/error-boundary.js +33 -0
  144. package/lib/cjs/util/error-boundary.js.map +1 -0
  145. package/lib/cjs/util/index.d.ts +0 -0
  146. package/lib/cjs/util/index.js +2 -0
  147. package/lib/cjs/util/index.js.map +1 -0
  148. package/lib/cjs/util/logs.d.ts +2 -0
  149. package/lib/cjs/util/logs.js +20 -0
  150. package/lib/cjs/util/logs.js.map +1 -0
  151. package/lib/cjs/util/objects.d.ts +3 -0
  152. package/lib/cjs/util/objects.js +44 -0
  153. package/lib/cjs/util/objects.js.map +1 -0
  154. package/lib/cjs/util/react.d.ts +12 -0
  155. package/lib/cjs/util/react.js +42 -0
  156. package/lib/cjs/util/react.js.map +1 -0
  157. package/lib/cjs/util/regexs.d.ts +2 -0
  158. package/lib/cjs/util/regexs.js +23 -0
  159. package/lib/cjs/util/regexs.js.map +1 -0
  160. package/lib/cjs/util/webchat.d.ts +11 -0
  161. package/lib/cjs/util/webchat.js +62 -0
  162. package/lib/cjs/util/webchat.js.map +1 -0
  163. package/lib/cjs/webchat/actions.d.ts +23 -0
  164. package/lib/cjs/webchat/actions.js +27 -0
  165. package/lib/cjs/webchat/actions.js.map +1 -0
  166. package/lib/cjs/webchat/components/attachment.d.ts +5 -0
  167. package/lib/cjs/webchat/components/attachment.js +29 -0
  168. package/lib/cjs/webchat/components/attachment.js.map +1 -0
  169. package/lib/cjs/webchat/components/common.d.ts +1 -0
  170. package/lib/cjs/webchat/components/common.js +14 -0
  171. package/lib/cjs/webchat/components/common.js.map +1 -0
  172. package/lib/cjs/webchat/components/conditional-animation.d.ts +1 -0
  173. package/lib/cjs/webchat/components/conditional-animation.js +17 -0
  174. package/lib/cjs/webchat/components/conditional-animation.js.map +1 -0
  175. package/lib/cjs/webchat/components/emoji-picker.d.ts +5 -0
  176. package/lib/cjs/webchat/components/emoji-picker.js +43 -0
  177. package/lib/cjs/webchat/components/emoji-picker.js.map +1 -0
  178. package/lib/cjs/webchat/components/persistent-menu.d.ts +10 -0
  179. package/lib/cjs/webchat/components/persistent-menu.js +45 -0
  180. package/lib/cjs/webchat/components/persistent-menu.js.map +1 -0
  181. package/lib/cjs/webchat/components/send-button.d.ts +3 -0
  182. package/lib/cjs/webchat/components/send-button.js +19 -0
  183. package/lib/cjs/webchat/components/send-button.js.map +1 -0
  184. package/lib/cjs/webchat/components/styled-scrollbar.d.ts +1 -0
  185. package/lib/cjs/webchat/components/styled-scrollbar.js +54 -0
  186. package/lib/cjs/webchat/components/styled-scrollbar.js.map +1 -0
  187. package/lib/cjs/webchat/components/typing-indicator.d.ts +1 -0
  188. package/lib/cjs/webchat/components/typing-indicator.js +11 -0
  189. package/lib/cjs/webchat/components/typing-indicator.js.map +1 -0
  190. package/lib/cjs/webchat/devices/device-adapter.d.ts +12 -0
  191. package/lib/cjs/webchat/devices/device-adapter.js +47 -0
  192. package/lib/cjs/webchat/devices/device-adapter.js.map +1 -0
  193. package/lib/cjs/webchat/devices/index.d.ts +11 -0
  194. package/lib/cjs/webchat/devices/index.js +23 -0
  195. package/lib/cjs/webchat/devices/index.js.map +1 -0
  196. package/lib/cjs/webchat/devices/scrollbar-controller.d.ts +12 -0
  197. package/lib/cjs/webchat/devices/scrollbar-controller.js +103 -0
  198. package/lib/cjs/webchat/devices/scrollbar-controller.js.map +1 -0
  199. package/lib/cjs/webchat/devices/webchat-resizer.d.ts +9 -0
  200. package/lib/cjs/webchat/devices/webchat-resizer.js +47 -0
  201. package/lib/cjs/webchat/devices/webchat-resizer.js.map +1 -0
  202. package/lib/cjs/webchat/header.d.ts +3 -0
  203. package/lib/cjs/webchat/header.js +85 -0
  204. package/lib/cjs/webchat/header.js.map +1 -0
  205. package/lib/cjs/webchat/hooks.d.ts +80 -0
  206. package/lib/cjs/webchat/hooks.js +219 -0
  207. package/lib/cjs/webchat/hooks.js.map +1 -0
  208. package/lib/cjs/webchat/index.d.ts +6 -0
  209. package/lib/cjs/webchat/index.js +17 -0
  210. package/lib/cjs/webchat/index.js.map +1 -0
  211. package/lib/cjs/webchat/message-list.d.ts +1 -0
  212. package/lib/cjs/webchat/message-list.js +39 -0
  213. package/lib/cjs/webchat/message-list.js.map +1 -0
  214. package/lib/cjs/webchat/messages-reducer.d.ts +1 -0
  215. package/lib/cjs/webchat/messages-reducer.js +58 -0
  216. package/lib/cjs/webchat/messages-reducer.js.map +1 -0
  217. package/lib/cjs/webchat/replies.d.ts +1 -0
  218. package/lib/cjs/webchat/replies.js +43 -0
  219. package/lib/cjs/webchat/replies.js.map +1 -0
  220. package/lib/cjs/webchat/session-view.d.ts +1 -0
  221. package/lib/cjs/webchat/session-view.js +101 -0
  222. package/lib/cjs/webchat/session-view.js.map +1 -0
  223. package/lib/cjs/webchat/use-storage-state-hook.d.ts +1 -0
  224. package/lib/cjs/webchat/use-storage-state-hook.js +42 -0
  225. package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -0
  226. package/lib/cjs/webchat/webchat-dev.d.ts +7 -0
  227. package/lib/cjs/webchat/webchat-dev.js +60 -0
  228. package/lib/cjs/webchat/webchat-dev.js.map +1 -0
  229. package/lib/cjs/webchat/webchat-reducer.d.ts +1 -0
  230. package/lib/cjs/webchat/webchat-reducer.js +48 -0
  231. package/lib/cjs/webchat/webchat-reducer.js.map +1 -0
  232. package/lib/cjs/webchat/webchat.d.ts +3 -0
  233. package/lib/cjs/webchat/webchat.js +661 -0
  234. package/lib/cjs/webchat/webchat.js.map +1 -0
  235. package/lib/cjs/webchat/webview.d.ts +2 -0
  236. package/lib/cjs/webchat/webview.js +84 -0
  237. package/lib/cjs/webchat/webview.js.map +1 -0
  238. package/lib/cjs/webchat-app.d.ts +99 -0
  239. package/lib/cjs/webchat-app.js +270 -0
  240. package/lib/cjs/webchat-app.js.map +1 -0
  241. package/lib/cjs/webview-app.d.ts +7 -0
  242. package/lib/cjs/webview-app.js +102 -0
  243. package/lib/cjs/webview-app.js.map +1 -0
  244. package/lib/esm/app.d.ts +2 -0
  245. package/lib/esm/app.js +6 -0
  246. package/lib/esm/app.js.map +1 -0
  247. package/lib/esm/assets/attachment-icon.svg +7 -0
  248. package/lib/esm/assets/audio.svg +4 -0
  249. package/lib/esm/assets/botonic_react_logo100x100.png +0 -0
  250. package/lib/esm/assets/document.svg +3 -0
  251. package/lib/esm/assets/emojiButton.svg +6 -0
  252. package/lib/esm/assets/image.svg +4 -0
  253. package/lib/esm/assets/leftArrow.svg +3 -0
  254. package/lib/esm/assets/menuButton.svg +3 -0
  255. package/lib/esm/assets/rightArrow.svg +3 -0
  256. package/lib/esm/assets/send-button.svg +1 -0
  257. package/lib/esm/assets/video.svg +3 -0
  258. package/lib/esm/botonic-tester.d.ts +18 -0
  259. package/lib/esm/botonic-tester.js +62 -0
  260. package/lib/esm/botonic-tester.js.map +1 -0
  261. package/lib/esm/components/audio.d.ts +8 -0
  262. package/lib/esm/components/audio.js +18 -0
  263. package/lib/esm/components/audio.js.map +1 -0
  264. package/lib/esm/components/button.d.ts +15 -0
  265. package/lib/esm/components/button.js +140 -0
  266. package/lib/esm/components/button.js.map +1 -0
  267. package/lib/esm/components/buttons-disabler.d.ts +24 -0
  268. package/lib/esm/components/buttons-disabler.js +84 -0
  269. package/lib/esm/components/buttons-disabler.js.map +1 -0
  270. package/lib/esm/components/carousel.d.ts +9 -0
  271. package/lib/esm/components/carousel.js +102 -0
  272. package/lib/esm/components/carousel.js.map +1 -0
  273. package/lib/esm/components/components.d.ts +12 -0
  274. package/lib/esm/components/components.js +17 -0
  275. package/lib/esm/components/components.js.map +1 -0
  276. package/lib/esm/components/custom-message.d.ts +12 -0
  277. package/lib/esm/components/custom-message.js +55 -0
  278. package/lib/esm/components/custom-message.js.map +1 -0
  279. package/lib/esm/components/document.d.ts +8 -0
  280. package/lib/esm/components/document.js +42 -0
  281. package/lib/esm/components/document.js.map +1 -0
  282. package/lib/esm/components/element.d.ts +4 -0
  283. package/lib/esm/components/element.js +51 -0
  284. package/lib/esm/components/element.js.map +1 -0
  285. package/lib/esm/components/handoff.d.ts +1 -0
  286. package/lib/esm/components/handoff.js +49 -0
  287. package/lib/esm/components/handoff.js.map +1 -0
  288. package/lib/esm/components/image.d.ts +8 -0
  289. package/lib/esm/components/image.js +33 -0
  290. package/lib/esm/components/image.js.map +1 -0
  291. package/lib/esm/components/index.d.ts +19 -0
  292. package/lib/esm/components/index.js +21 -0
  293. package/lib/esm/components/index.js.map +1 -0
  294. package/lib/esm/components/location.d.ts +11 -0
  295. package/lib/esm/components/location.js +27 -0
  296. package/lib/esm/components/location.js.map +1 -0
  297. package/lib/esm/components/markdown.d.ts +7 -0
  298. package/lib/esm/components/markdown.js +152 -0
  299. package/lib/esm/components/markdown.js.map +1 -0
  300. package/lib/esm/components/message-template.d.ts +1 -0
  301. package/lib/esm/components/message-template.js +9 -0
  302. package/lib/esm/components/message-template.js.map +1 -0
  303. package/lib/esm/components/message.d.ts +1 -0
  304. package/lib/esm/components/message.js +184 -0
  305. package/lib/esm/components/message.js.map +1 -0
  306. package/lib/esm/components/multichannel/facebook/facebook.d.ts +17 -0
  307. package/lib/esm/components/multichannel/facebook/facebook.js +43 -0
  308. package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -0
  309. package/lib/esm/components/multichannel/index.d.ts +6 -0
  310. package/lib/esm/components/multichannel/index.js +11 -0
  311. package/lib/esm/components/multichannel/index.js.map +1 -0
  312. package/lib/esm/components/multichannel/multichannel-button.d.ts +1 -0
  313. package/lib/esm/components/multichannel/multichannel-button.js +71 -0
  314. package/lib/esm/components/multichannel/multichannel-button.js.map +1 -0
  315. package/lib/esm/components/multichannel/multichannel-carousel.d.ts +1 -0
  316. package/lib/esm/components/multichannel/multichannel-carousel.js +73 -0
  317. package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -0
  318. package/lib/esm/components/multichannel/multichannel-context.d.ts +11 -0
  319. package/lib/esm/components/multichannel/multichannel-context.js +12 -0
  320. package/lib/esm/components/multichannel/multichannel-context.js.map +1 -0
  321. package/lib/esm/components/multichannel/multichannel-reply.d.ts +1 -0
  322. package/lib/esm/components/multichannel/multichannel-reply.js +20 -0
  323. package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -0
  324. package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -0
  325. package/lib/esm/components/multichannel/multichannel-text.js +127 -0
  326. package/lib/esm/components/multichannel/multichannel-text.js.map +1 -0
  327. package/lib/esm/components/multichannel/multichannel-utils.d.ts +24 -0
  328. package/lib/esm/components/multichannel/multichannel-utils.js +67 -0
  329. package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -0
  330. package/lib/esm/components/multichannel/multichannel.d.ts +1 -0
  331. package/lib/esm/components/multichannel/multichannel.js +55 -0
  332. package/lib/esm/components/multichannel/multichannel.js.map +1 -0
  333. package/lib/esm/components/pic.d.ts +6 -0
  334. package/lib/esm/components/pic.js +25 -0
  335. package/lib/esm/components/pic.js.map +1 -0
  336. package/lib/esm/components/raw.d.ts +9 -0
  337. package/lib/esm/components/raw.js +39 -0
  338. package/lib/esm/components/raw.js.map +1 -0
  339. package/lib/esm/components/reply.d.ts +9 -0
  340. package/lib/esm/components/reply.js +49 -0
  341. package/lib/esm/components/reply.js.map +1 -0
  342. package/lib/esm/components/share-button.d.ts +1 -0
  343. package/lib/esm/components/share-button.js +9 -0
  344. package/lib/esm/components/share-button.js.map +1 -0
  345. package/lib/esm/components/subtitle.d.ts +6 -0
  346. package/lib/esm/components/subtitle.js +19 -0
  347. package/lib/esm/components/subtitle.js.map +1 -0
  348. package/lib/esm/components/text.d.ts +8 -0
  349. package/lib/esm/components/text.js +42 -0
  350. package/lib/esm/components/text.js.map +1 -0
  351. package/lib/esm/components/timestamps.d.ts +10 -0
  352. package/lib/esm/components/timestamps.js +45 -0
  353. package/lib/esm/components/timestamps.js.map +1 -0
  354. package/lib/esm/components/title.d.ts +6 -0
  355. package/lib/esm/components/title.js +17 -0
  356. package/lib/esm/components/title.js.map +1 -0
  357. package/lib/esm/components/video.d.ts +8 -0
  358. package/lib/esm/components/video.js +26 -0
  359. package/lib/esm/components/video.js.map +1 -0
  360. package/lib/esm/components/webchat-settings.d.ts +10 -0
  361. package/lib/esm/components/webchat-settings.js +73 -0
  362. package/lib/esm/components/webchat-settings.js.map +1 -0
  363. package/lib/esm/components/whatsapp-template.d.ts +1 -0
  364. package/lib/esm/components/whatsapp-template.js +20 -0
  365. package/lib/esm/components/whatsapp-template.js.map +1 -0
  366. package/lib/esm/constants.d.ts +168 -0
  367. package/lib/esm/constants.js +186 -0
  368. package/lib/esm/constants.js.map +1 -0
  369. package/lib/esm/contexts.d.ts +69 -0
  370. package/lib/esm/contexts.js +34 -0
  371. package/lib/esm/contexts.js.map +1 -0
  372. package/lib/esm/dev-app.d.ts +30 -0
  373. package/lib/esm/dev-app.js +68 -0
  374. package/lib/esm/dev-app.js.map +1 -0
  375. package/lib/esm/index.d.ts +9 -0
  376. package/lib/esm/index.js +11 -0
  377. package/lib/esm/index.js.map +1 -0
  378. package/lib/esm/message-utils.d.ts +18 -0
  379. package/lib/esm/message-utils.js +41 -0
  380. package/lib/esm/message-utils.js.map +1 -0
  381. package/lib/esm/msg-to-botonic.d.ts +18 -0
  382. package/lib/esm/msg-to-botonic.js +132 -0
  383. package/lib/esm/msg-to-botonic.js.map +1 -0
  384. package/lib/esm/node-app.d.ts +12 -0
  385. package/lib/esm/node-app.js +21 -0
  386. package/lib/esm/node-app.js.map +1 -0
  387. package/lib/esm/react-bot.d.ts +7 -0
  388. package/lib/esm/react-bot.js +29 -0
  389. package/lib/esm/react-bot.js.map +1 -0
  390. package/lib/esm/util/dom.d.ts +13 -0
  391. package/lib/esm/util/dom.js +46 -0
  392. package/lib/esm/util/dom.js.map +1 -0
  393. package/lib/esm/util/environment.d.ts +6 -0
  394. package/lib/esm/util/environment.js +61 -0
  395. package/lib/esm/util/environment.js.map +1 -0
  396. package/lib/esm/util/error-boundary.d.ts +7 -0
  397. package/lib/esm/util/error-boundary.js +28 -0
  398. package/lib/esm/util/error-boundary.js.map +1 -0
  399. package/lib/esm/util/index.d.ts +0 -0
  400. package/lib/esm/util/index.js +2 -0
  401. package/lib/esm/util/index.js.map +1 -0
  402. package/lib/esm/util/logs.d.ts +2 -0
  403. package/lib/esm/util/logs.js +15 -0
  404. package/lib/esm/util/logs.js.map +1 -0
  405. package/lib/esm/util/objects.d.ts +3 -0
  406. package/lib/esm/util/objects.js +38 -0
  407. package/lib/esm/util/objects.js.map +1 -0
  408. package/lib/esm/util/react.d.ts +12 -0
  409. package/lib/esm/util/react.js +34 -0
  410. package/lib/esm/util/react.js.map +1 -0
  411. package/lib/esm/util/regexs.d.ts +2 -0
  412. package/lib/esm/util/regexs.js +18 -0
  413. package/lib/esm/util/regexs.js.map +1 -0
  414. package/lib/esm/util/webchat.d.ts +11 -0
  415. package/lib/esm/util/webchat.js +53 -0
  416. package/lib/esm/util/webchat.js.map +1 -0
  417. package/lib/esm/webchat/actions.d.ts +23 -0
  418. package/lib/esm/webchat/actions.js +24 -0
  419. package/lib/esm/webchat/actions.js.map +1 -0
  420. package/lib/esm/webchat/components/attachment.d.ts +5 -0
  421. package/lib/esm/webchat/components/attachment.js +24 -0
  422. package/lib/esm/webchat/components/attachment.js.map +1 -0
  423. package/lib/esm/webchat/components/common.d.ts +1 -0
  424. package/lib/esm/webchat/components/common.js +9 -0
  425. package/lib/esm/webchat/components/common.js.map +1 -0
  426. package/lib/esm/webchat/components/conditional-animation.d.ts +1 -0
  427. package/lib/esm/webchat/components/conditional-animation.js +12 -0
  428. package/lib/esm/webchat/components/conditional-animation.js.map +1 -0
  429. package/lib/esm/webchat/components/emoji-picker.d.ts +5 -0
  430. package/lib/esm/webchat/components/emoji-picker.js +37 -0
  431. package/lib/esm/webchat/components/emoji-picker.js.map +1 -0
  432. package/lib/esm/webchat/components/persistent-menu.d.ts +10 -0
  433. package/lib/esm/webchat/components/persistent-menu.js +39 -0
  434. package/lib/esm/webchat/components/persistent-menu.js.map +1 -0
  435. package/lib/esm/webchat/components/send-button.d.ts +3 -0
  436. package/lib/esm/webchat/components/send-button.js +14 -0
  437. package/lib/esm/webchat/components/send-button.js.map +1 -0
  438. package/lib/esm/webchat/components/styled-scrollbar.d.ts +1 -0
  439. package/lib/esm/webchat/components/styled-scrollbar.js +50 -0
  440. package/lib/esm/webchat/components/styled-scrollbar.js.map +1 -0
  441. package/lib/esm/webchat/components/styled-scrollbar.scss +12 -0
  442. package/lib/esm/webchat/components/typing-indicator.d.ts +1 -0
  443. package/lib/esm/webchat/components/typing-indicator.js +6 -0
  444. package/lib/esm/webchat/components/typing-indicator.js.map +1 -0
  445. package/lib/esm/webchat/components/typing-indicator.scss +38 -0
  446. package/lib/esm/webchat/devices/device-adapter.d.ts +12 -0
  447. package/lib/esm/webchat/devices/device-adapter.js +43 -0
  448. package/lib/esm/webchat/devices/device-adapter.js.map +1 -0
  449. package/lib/esm/webchat/devices/index.d.ts +11 -0
  450. package/lib/esm/webchat/devices/index.js +18 -0
  451. package/lib/esm/webchat/devices/index.js.map +1 -0
  452. package/lib/esm/webchat/devices/scrollbar-controller.d.ts +12 -0
  453. package/lib/esm/webchat/devices/scrollbar-controller.js +99 -0
  454. package/lib/esm/webchat/devices/scrollbar-controller.js.map +1 -0
  455. package/lib/esm/webchat/devices/webchat-resizer.d.ts +9 -0
  456. package/lib/esm/webchat/devices/webchat-resizer.js +43 -0
  457. package/lib/esm/webchat/devices/webchat-resizer.js.map +1 -0
  458. package/lib/esm/webchat/header.d.ts +3 -0
  459. package/lib/esm/webchat/header.js +79 -0
  460. package/lib/esm/webchat/header.js.map +1 -0
  461. package/lib/esm/webchat/hooks.d.ts +80 -0
  462. package/lib/esm/webchat/hooks.js +211 -0
  463. package/lib/esm/webchat/hooks.js.map +1 -0
  464. package/lib/esm/webchat/index.d.ts +6 -0
  465. package/lib/esm/webchat/index.js +11 -0
  466. package/lib/esm/webchat/index.js.map +1 -0
  467. package/lib/esm/webchat/message-list.d.ts +1 -0
  468. package/lib/esm/webchat/message-list.js +34 -0
  469. package/lib/esm/webchat/message-list.js.map +1 -0
  470. package/lib/esm/webchat/messages-reducer.d.ts +1 -0
  471. package/lib/esm/webchat/messages-reducer.js +54 -0
  472. package/lib/esm/webchat/messages-reducer.js.map +1 -0
  473. package/lib/esm/webchat/replies.d.ts +1 -0
  474. package/lib/esm/webchat/replies.js +38 -0
  475. package/lib/esm/webchat/replies.js.map +1 -0
  476. package/lib/esm/webchat/session-view.d.ts +1 -0
  477. package/lib/esm/webchat/session-view.js +96 -0
  478. package/lib/esm/webchat/session-view.js.map +1 -0
  479. package/lib/esm/webchat/use-storage-state-hook.d.ts +1 -0
  480. package/lib/esm/webchat/use-storage-state-hook.js +38 -0
  481. package/lib/esm/webchat/use-storage-state-hook.js.map +1 -0
  482. package/lib/esm/webchat/webchat-dev.d.ts +7 -0
  483. package/lib/esm/webchat/webchat-dev.js +56 -0
  484. package/lib/esm/webchat/webchat-dev.js.map +1 -0
  485. package/lib/esm/webchat/webchat-reducer.d.ts +1 -0
  486. package/lib/esm/webchat/webchat-reducer.js +44 -0
  487. package/lib/esm/webchat/webchat-reducer.js.map +1 -0
  488. package/lib/esm/webchat/webchat.d.ts +3 -0
  489. package/lib/esm/webchat/webchat.js +656 -0
  490. package/lib/esm/webchat/webchat.js.map +1 -0
  491. package/lib/esm/webchat/webview.d.ts +2 -0
  492. package/lib/esm/webchat/webview.js +78 -0
  493. package/lib/esm/webchat/webview.js.map +1 -0
  494. package/lib/esm/webchat-app.d.ts +98 -0
  495. package/lib/esm/webchat-app.js +266 -0
  496. package/lib/esm/webchat-app.js.map +1 -0
  497. package/lib/esm/webchat.template.html +37 -0
  498. package/lib/esm/webview-app.d.ts +7 -0
  499. package/lib/esm/webview-app.js +97 -0
  500. package/lib/esm/webview-app.js.map +1 -0
  501. package/lib/esm/webview.template.html +39 -0
  502. package/package.json +40 -27
  503. package/src/components/audio.jsx +2 -0
  504. package/src/components/document.jsx +2 -0
  505. package/src/components/image.jsx +2 -0
  506. package/src/components/location.jsx +2 -2
  507. package/src/components/message.jsx +4 -11
  508. package/src/components/multichannel/multichannel-text.jsx +2 -5
  509. package/src/components/pic.jsx +3 -1
  510. package/src/components/video.jsx +2 -0
  511. package/src/index.js +1 -1
  512. package/src/msg-to-botonic.jsx +11 -11
  513. package/src/util/environment.js +31 -2
  514. package/src/util/error-boundary.jsx +15 -30
  515. package/src/util/webchat.js +12 -13
  516. package/src/webchat/components/attachment.jsx +10 -2
  517. package/src/webchat/components/emoji-picker.jsx +7 -1
  518. package/src/webchat/hooks.js +2 -1
  519. package/src/webchat/use-storage-state-hook.js +13 -2
  520. package/src/webchat/webchat.jsx +5 -7
  521. package/src/{webview.jsx → webview-app.tsx} +7 -1
  522. package/lib/app.js +0 -19
  523. package/lib/app.js.map +0 -1
  524. package/lib/botonic-tester.js +0 -224
  525. package/lib/botonic-tester.js.map +0 -1
  526. package/lib/components/audio.js +0 -48
  527. package/lib/components/audio.js.map +0 -1
  528. package/lib/components/button.js +0 -224
  529. package/lib/components/button.js.map +0 -1
  530. package/lib/components/buttons-disabler.js +0 -133
  531. package/lib/components/buttons-disabler.js.map +0 -1
  532. package/lib/components/carousel.js +0 -194
  533. package/lib/components/carousel.js.map +0 -1
  534. package/lib/components/components.js.map +0 -1
  535. package/lib/components/custom-message.js +0 -131
  536. package/lib/components/custom-message.js.map +0 -1
  537. package/lib/components/document.js +0 -76
  538. package/lib/components/document.js.map +0 -1
  539. package/lib/components/element.js +0 -69
  540. package/lib/components/element.js.map +0 -1
  541. package/lib/components/handoff.js +0 -69
  542. package/lib/components/handoff.js.map +0 -1
  543. package/lib/components/image.js +0 -91
  544. package/lib/components/image.js.map +0 -1
  545. package/lib/components/index.d.ts +0 -228
  546. package/lib/components/index.js +0 -193
  547. package/lib/components/index.js.map +0 -1
  548. package/lib/components/location.js +0 -69
  549. package/lib/components/location.js.map +0 -1
  550. package/lib/components/markdown.js +0 -108
  551. package/lib/components/markdown.js.map +0 -1
  552. package/lib/components/message-template.js +0 -36
  553. package/lib/components/message-template.js.map +0 -1
  554. package/lib/components/message.js +0 -351
  555. package/lib/components/message.js.map +0 -1
  556. package/lib/components/multichannel/facebook/facebook.js +0 -96
  557. package/lib/components/multichannel/facebook/facebook.js.map +0 -1
  558. package/lib/components/multichannel/index.d.ts +0 -65
  559. package/lib/components/multichannel/index.js +0 -46
  560. package/lib/components/multichannel/index.js.map +0 -1
  561. package/lib/components/multichannel/multichannel-button.js +0 -119
  562. package/lib/components/multichannel/multichannel-button.js.map +0 -1
  563. package/lib/components/multichannel/multichannel-carousel.js +0 -143
  564. package/lib/components/multichannel/multichannel-carousel.js.map +0 -1
  565. package/lib/components/multichannel/multichannel-context.js +0 -24
  566. package/lib/components/multichannel/multichannel-context.js.map +0 -1
  567. package/lib/components/multichannel/multichannel-reply.js +0 -46
  568. package/lib/components/multichannel/multichannel-reply.js.map +0 -1
  569. package/lib/components/multichannel/multichannel-text.js +0 -222
  570. package/lib/components/multichannel/multichannel-text.js.map +0 -1
  571. package/lib/components/multichannel/multichannel-utils.js +0 -126
  572. package/lib/components/multichannel/multichannel-utils.js.map +0 -1
  573. package/lib/components/multichannel/multichannel.js +0 -111
  574. package/lib/components/multichannel/multichannel.js.map +0 -1
  575. package/lib/components/pic.js +0 -50
  576. package/lib/components/pic.js.map +0 -1
  577. package/lib/components/raw.js +0 -70
  578. package/lib/components/raw.js.map +0 -1
  579. package/lib/components/reply.js +0 -107
  580. package/lib/components/reply.js.map +0 -1
  581. package/lib/components/share-button.js +0 -36
  582. package/lib/components/share-button.js.map +0 -1
  583. package/lib/components/subtitle.js +0 -54
  584. package/lib/components/subtitle.js.map +0 -1
  585. package/lib/components/text.js +0 -80
  586. package/lib/components/text.js.map +0 -1
  587. package/lib/components/timestamps.js +0 -69
  588. package/lib/components/timestamps.js.map +0 -1
  589. package/lib/components/title.js +0 -52
  590. package/lib/components/title.js.map +0 -1
  591. package/lib/components/video.js +0 -51
  592. package/lib/components/video.js.map +0 -1
  593. package/lib/components/webchat-settings.js +0 -118
  594. package/lib/components/webchat-settings.js.map +0 -1
  595. package/lib/components/whatsapp-template.js +0 -53
  596. package/lib/components/whatsapp-template.js.map +0 -1
  597. package/lib/constants.js +0 -203
  598. package/lib/constants.js.map +0 -1
  599. package/lib/contexts.js +0 -57
  600. package/lib/contexts.js.map +0 -1
  601. package/lib/dev-app.js +0 -241
  602. package/lib/dev-app.js.map +0 -1
  603. package/lib/index.d.ts +0 -238
  604. package/lib/index.js +0 -131
  605. package/lib/index.js.map +0 -1
  606. package/lib/message-utils.js +0 -149
  607. package/lib/message-utils.js.map +0 -1
  608. package/lib/msg-to-botonic.js +0 -199
  609. package/lib/msg-to-botonic.js.map +0 -1
  610. package/lib/node-app.js +0 -97
  611. package/lib/node-app.js.map +0 -1
  612. package/lib/react-bot.js +0 -167
  613. package/lib/react-bot.js.map +0 -1
  614. package/lib/util/dom.js +0 -84
  615. package/lib/util/dom.js.map +0 -1
  616. package/lib/util/environment.js +0 -42
  617. package/lib/util/environment.js.map +0 -1
  618. package/lib/util/error-boundary.js +0 -105
  619. package/lib/util/error-boundary.js.map +0 -1
  620. package/lib/util/index.d.ts +0 -9
  621. package/lib/util/index.js +0 -2
  622. package/lib/util/index.js.map +0 -1
  623. package/lib/util/logs.js +0 -28
  624. package/lib/util/logs.js.map +0 -1
  625. package/lib/util/objects.js +0 -60
  626. package/lib/util/objects.js.map +0 -1
  627. package/lib/util/react.js +0 -75
  628. package/lib/util/react.js.map +0 -1
  629. package/lib/util/regexs.js +0 -31
  630. package/lib/util/regexs.js.map +0 -1
  631. package/lib/util/webchat.js +0 -92
  632. package/lib/util/webchat.js.map +0 -1
  633. package/lib/webchat/actions.js +0 -53
  634. package/lib/webchat/actions.js.map +0 -1
  635. package/lib/webchat/components/attachment.js +0 -68
  636. package/lib/webchat/components/attachment.js.map +0 -1
  637. package/lib/webchat/components/common.js +0 -29
  638. package/lib/webchat/components/common.js.map +0 -1
  639. package/lib/webchat/components/conditional-animation.js +0 -42
  640. package/lib/webchat/components/conditional-animation.js.map +0 -1
  641. package/lib/webchat/components/emoji-picker.js +0 -89
  642. package/lib/webchat/components/emoji-picker.js.map +0 -1
  643. package/lib/webchat/components/persistent-menu.js +0 -104
  644. package/lib/webchat/components/persistent-menu.js.map +0 -1
  645. package/lib/webchat/components/send-button.js +0 -45
  646. package/lib/webchat/components/send-button.js.map +0 -1
  647. package/lib/webchat/components/styled-scrollbar.js +0 -55
  648. package/lib/webchat/components/styled-scrollbar.js.map +0 -1
  649. package/lib/webchat/components/typing-indicator.js +0 -27
  650. package/lib/webchat/components/typing-indicator.js.map +0 -1
  651. package/lib/webchat/devices/device-adapter.js +0 -82
  652. package/lib/webchat/devices/device-adapter.js.map +0 -1
  653. package/lib/webchat/devices/index.js +0 -32
  654. package/lib/webchat/devices/index.js.map +0 -1
  655. package/lib/webchat/devices/scrollbar-controller.js +0 -152
  656. package/lib/webchat/devices/scrollbar-controller.js.map +0 -1
  657. package/lib/webchat/devices/webchat-resizer.js +0 -76
  658. package/lib/webchat/devices/webchat-resizer.js.map +0 -1
  659. package/lib/webchat/header.js +0 -116
  660. package/lib/webchat/header.js.map +0 -1
  661. package/lib/webchat/hooks.js +0 -359
  662. package/lib/webchat/hooks.js.map +0 -1
  663. package/lib/webchat/index.d.ts +0 -62
  664. package/lib/webchat/index.js +0 -32
  665. package/lib/webchat/index.js.map +0 -1
  666. package/lib/webchat/message-list.js +0 -88
  667. package/lib/webchat/message-list.js.map +0 -1
  668. package/lib/webchat/messages-reducer.js +0 -93
  669. package/lib/webchat/messages-reducer.js.map +0 -1
  670. package/lib/webchat/replies.js +0 -78
  671. package/lib/webchat/replies.js.map +0 -1
  672. package/lib/webchat/session-view.js +0 -106
  673. package/lib/webchat/session-view.js.map +0 -1
  674. package/lib/webchat/use-storage-state-hook.js +0 -60
  675. package/lib/webchat/use-storage-state-hook.js.map +0 -1
  676. package/lib/webchat/webchat-dev.js +0 -109
  677. package/lib/webchat/webchat-dev.js.map +0 -1
  678. package/lib/webchat/webchat-reducer.js +0 -108
  679. package/lib/webchat/webchat-reducer.js.map +0 -1
  680. package/lib/webchat/webchat.js +0 -1108
  681. package/lib/webchat/webchat.js.map +0 -1
  682. package/lib/webchat/webview.js +0 -122
  683. package/lib/webchat/webview.js.map +0 -1
  684. package/lib/webchat-app.js +0 -660
  685. package/lib/webchat-app.js.map +0 -1
  686. package/lib/webview.js +0 -231
  687. package/lib/webview.js.map +0 -1
  688. /package/lib/{assets → cjs/assets}/attachment-icon.svg +0 -0
  689. /package/lib/{assets → cjs/assets}/audio.svg +0 -0
  690. /package/lib/{assets → cjs/assets}/botonic_react_logo100x100.png +0 -0
  691. /package/lib/{assets → cjs/assets}/document.svg +0 -0
  692. /package/lib/{assets → cjs/assets}/emojiButton.svg +0 -0
  693. /package/lib/{assets → cjs/assets}/image.svg +0 -0
  694. /package/lib/{assets → cjs/assets}/leftArrow.svg +0 -0
  695. /package/lib/{assets → cjs/assets}/menuButton.svg +0 -0
  696. /package/lib/{assets → cjs/assets}/rightArrow.svg +0 -0
  697. /package/lib/{assets → cjs/assets}/send-button.svg +0 -0
  698. /package/lib/{assets → cjs/assets}/video.svg +0 -0
  699. /package/lib/{webchat → cjs/webchat}/components/styled-scrollbar.scss +0 -0
  700. /package/lib/{webchat → cjs/webchat}/components/typing-indicator.scss +0 -0
  701. /package/lib/{webchat.template.html → cjs/webchat.template.html} +0 -0
  702. /package/lib/{webview.template.html → cjs/webview.template.html} +0 -0
@@ -0,0 +1,211 @@
1
+ import { useEffect, useMemo, useReducer, useRef, useState } from 'react';
2
+ import { COLORS, WEBCHAT } from '../constants';
3
+ import { scrollToBottom } from '../util/dom';
4
+ import { ADD_MESSAGE, ADD_MESSAGE_COMPONENT, CLEAR_MESSAGES, DO_RENDER_CUSTOM_COMPONENT, SET_CURRENT_ATTACHMENT, SET_ERROR, SET_ONLINE, TOGGLE_COVER_COMPONENT, TOGGLE_EMOJI_PICKER, TOGGLE_PERSISTENT_MENU, TOGGLE_WEBCHAT, UPDATE_DEV_SETTINGS, UPDATE_HANDOFF, UPDATE_JWT, UPDATE_LAST_MESSAGE_DATE, UPDATE_LAST_ROUTE_PATH, UPDATE_LATEST_INPUT, UPDATE_MESSAGE, UPDATE_REPLIES, UPDATE_SESSION, UPDATE_THEME, UPDATE_TYPING, UPDATE_WEBVIEW, } from './actions';
5
+ import { webchatReducer } from './webchat-reducer';
6
+ export const webchatInitialState = {
7
+ width: WEBCHAT.DEFAULTS.WIDTH,
8
+ height: WEBCHAT.DEFAULTS.HEIGHT,
9
+ messagesJSON: [],
10
+ messagesComponents: [],
11
+ replies: [],
12
+ latestInput: {},
13
+ typing: false,
14
+ webview: null,
15
+ webviewParams: null,
16
+ session: { user: null },
17
+ lastRoutePath: null,
18
+ handoff: false,
19
+ theme: {
20
+ headerTitle: WEBCHAT.DEFAULTS.TITLE,
21
+ brandColor: COLORS.BOTONIC_BLUE,
22
+ brandImage: WEBCHAT.DEFAULTS.LOGO,
23
+ triggerButtonImage: undefined,
24
+ textPlaceholder: WEBCHAT.DEFAULTS.PLACEHOLDER,
25
+ style: {
26
+ fontFamily: WEBCHAT.DEFAULTS.FONT_FAMILY,
27
+ },
28
+ },
29
+ themeUpdates: {},
30
+ error: {},
31
+ online: true,
32
+ devSettings: { keepSessionOnReload: false },
33
+ isWebchatOpen: false,
34
+ isEmojiPickerOpen: false,
35
+ isPersistentMenuOpen: false,
36
+ isCoverComponentOpen: false,
37
+ isCustomComponentRendered: false,
38
+ lastMessageUpdate: undefined,
39
+ currentAttachment: undefined,
40
+ jwt: null,
41
+ };
42
+ export function useWebchat() {
43
+ const [webchatState, webchatDispatch] = useReducer(webchatReducer, webchatInitialState);
44
+ const addMessage = message => webchatDispatch({ type: ADD_MESSAGE, payload: message });
45
+ const addMessageComponent = message => webchatDispatch({ type: ADD_MESSAGE_COMPONENT, payload: message });
46
+ const updateMessage = message => webchatDispatch({ type: UPDATE_MESSAGE, payload: message });
47
+ const updateReplies = replies => webchatDispatch({ type: UPDATE_REPLIES, payload: replies });
48
+ const updateLatestInput = input => webchatDispatch({ type: UPDATE_LATEST_INPUT, payload: input });
49
+ const updateTyping = typing => webchatDispatch({ type: UPDATE_TYPING, payload: typing });
50
+ const updateWebview = (webview, params) => webchatDispatch({
51
+ type: UPDATE_WEBVIEW,
52
+ payload: { webview, webviewParams: params },
53
+ });
54
+ const updateSession = session => {
55
+ webchatDispatch({
56
+ type: UPDATE_SESSION,
57
+ payload: session,
58
+ });
59
+ };
60
+ const updateLastRoutePath = path => webchatDispatch({
61
+ type: UPDATE_LAST_ROUTE_PATH,
62
+ payload: path,
63
+ });
64
+ const updateHandoff = handoff => webchatDispatch({
65
+ type: UPDATE_HANDOFF,
66
+ payload: handoff,
67
+ });
68
+ const updateTheme = (theme, themeUpdates = undefined) => {
69
+ const payload = themeUpdates !== undefined ? { theme, themeUpdates } : { theme };
70
+ webchatDispatch({
71
+ type: UPDATE_THEME,
72
+ payload,
73
+ });
74
+ };
75
+ const updateDevSettings = settings => webchatDispatch({
76
+ type: UPDATE_DEV_SETTINGS,
77
+ payload: settings,
78
+ });
79
+ const toggleWebchat = toggle => webchatDispatch({
80
+ type: TOGGLE_WEBCHAT,
81
+ payload: toggle,
82
+ });
83
+ const toggleEmojiPicker = toggle => webchatDispatch({
84
+ type: TOGGLE_EMOJI_PICKER,
85
+ payload: toggle,
86
+ });
87
+ const togglePersistentMenu = toggle => webchatDispatch({
88
+ type: TOGGLE_PERSISTENT_MENU,
89
+ payload: toggle,
90
+ });
91
+ const toggleCoverComponent = toggle => webchatDispatch({
92
+ type: TOGGLE_COVER_COMPONENT,
93
+ payload: toggle,
94
+ });
95
+ const doRenderCustomComponent = toggle => webchatDispatch({
96
+ type: DO_RENDER_CUSTOM_COMPONENT,
97
+ payload: toggle,
98
+ });
99
+ const setError = error => webchatDispatch({
100
+ type: SET_ERROR,
101
+ payload: error,
102
+ });
103
+ const setOnline = online => webchatDispatch({
104
+ type: SET_ONLINE,
105
+ payload: online,
106
+ });
107
+ const clearMessages = () => {
108
+ webchatDispatch({
109
+ type: CLEAR_MESSAGES,
110
+ });
111
+ };
112
+ const updateLastMessageDate = date => {
113
+ webchatDispatch({
114
+ type: UPDATE_LAST_MESSAGE_DATE,
115
+ payload: date,
116
+ });
117
+ };
118
+ const setCurrentAttachment = attachment => {
119
+ webchatDispatch({
120
+ type: SET_CURRENT_ATTACHMENT,
121
+ payload: attachment,
122
+ });
123
+ };
124
+ const updateJwt = jwt => {
125
+ webchatDispatch({
126
+ type: UPDATE_JWT,
127
+ payload: jwt,
128
+ });
129
+ };
130
+ return {
131
+ webchatState,
132
+ webchatDispatch,
133
+ addMessage,
134
+ addMessageComponent,
135
+ updateMessage,
136
+ updateReplies,
137
+ updateLatestInput,
138
+ updateTyping,
139
+ updateWebview,
140
+ updateSession,
141
+ updateLastRoutePath,
142
+ updateHandoff,
143
+ updateTheme,
144
+ updateDevSettings,
145
+ toggleWebchat,
146
+ toggleEmojiPicker,
147
+ togglePersistentMenu,
148
+ toggleCoverComponent,
149
+ doRenderCustomComponent,
150
+ setError,
151
+ setOnline,
152
+ clearMessages,
153
+ updateLastMessageDate,
154
+ setCurrentAttachment,
155
+ updateJwt,
156
+ };
157
+ }
158
+ export function useTyping({ webchatState, updateTyping, updateMessage, host }) {
159
+ useEffect(() => {
160
+ let delayTimeout, typingTimeout;
161
+ scrollToBottom({ host });
162
+ try {
163
+ const nextMsg = webchatState.messagesJSON.filter(m => !m.display)[0];
164
+ if (nextMsg.delay && nextMsg.typing) {
165
+ delayTimeout = setTimeout(() => updateTyping(true), nextMsg.delay * 1000);
166
+ }
167
+ else if (nextMsg.typing)
168
+ updateTyping(true);
169
+ const totalDelay = nextMsg.delay + nextMsg.typing;
170
+ if (totalDelay)
171
+ typingTimeout = setTimeout(() => {
172
+ updateMessage(Object.assign(Object.assign({}, nextMsg), { display: true }));
173
+ updateTyping(false);
174
+ }, totalDelay * 1000);
175
+ }
176
+ catch (e) { }
177
+ return () => {
178
+ clearTimeout(delayTimeout);
179
+ clearTimeout(typingTimeout);
180
+ };
181
+ }, [webchatState.messagesJSON, webchatState.typing]);
182
+ }
183
+ export function usePrevious(value) {
184
+ const ref = useRef();
185
+ useEffect(() => {
186
+ ref.current = value;
187
+ });
188
+ return ref.current;
189
+ }
190
+ export function useComponentVisible(initialIsVisible, onClickOutside) {
191
+ const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible);
192
+ const ref = useRef(null);
193
+ const handleClickOutside = event => {
194
+ const target = event.path ? event.path[0] : event.target;
195
+ if (ref.current && !ref.current.contains(target)) {
196
+ setIsComponentVisible(false);
197
+ onClickOutside();
198
+ }
199
+ };
200
+ useEffect(() => {
201
+ document.addEventListener('click', handleClickOutside, false);
202
+ return () => {
203
+ document.removeEventListener('click', handleClickOutside, false);
204
+ };
205
+ });
206
+ return { ref, isComponentVisible, setIsComponentVisible };
207
+ }
208
+ export const useComponentWillMount = func => {
209
+ useMemo(func, []);
210
+ };
211
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"src/","sources":["webchat/hooks.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @returns {WebChatApp}
3
+ */
4
+ export function getBotonicApp(): WebChatApp;
5
+ export { Webchat } from "./webchat";
6
+ export { WebchatDev } from "./webchat-dev";
@@ -0,0 +1,11 @@
1
+ export { Webchat } from './webchat';
2
+ export { WebchatDev } from './webchat-dev';
3
+ /**
4
+ * @returns {WebChatApp}
5
+ */
6
+ export function getBotonicApp() {
7
+ // Botonic is exported from your bot
8
+ // eslint-disable-next-line no-undef
9
+ return Botonic;
10
+ }
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["webchat/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,oCAAoC;IACpC,oCAAoC;IACpC,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export function WebchatMessageList(props: any): JSX.Element;
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useContext } from 'react';
3
+ import Fade from 'react-reveal/Fade';
4
+ import styled from 'styled-components';
5
+ import { ROLES, WEBCHAT } from '../constants';
6
+ import { WebchatContext } from '../contexts';
7
+ import { resolveImage } from '../util/environment';
8
+ import { ConditionalWrapper } from '../util/react';
9
+ import { StyledScrollbar } from './components/styled-scrollbar';
10
+ const StyledMessages = styled.div `
11
+ display: flex;
12
+ overflow-x: hidden;
13
+ flex-direction: column;
14
+ flex: none;
15
+ white-space: pre;
16
+ word-wrap: break-word;
17
+ `;
18
+ const DefaultIntroImage = styled.img `
19
+ max-height: 50%;
20
+ width: 100%;
21
+ `;
22
+ export const WebchatMessageList = props => {
23
+ const { webchatState, getThemeProperty } = useContext(WebchatContext);
24
+ const animationsEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.enableAnimations, true);
25
+ const CustomIntro = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.customIntro);
26
+ const introImage = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.introImage);
27
+ const introStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.introStyle);
28
+ const scrollbarOptions = Object.assign({ enable: true, autoHide: true }, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.scrollbar));
29
+ const DefaultIntro = introImage && (_jsx(DefaultIntroImage, { style: Object.assign({}, introStyle), src: resolveImage(introImage) }));
30
+ return (_jsxs(StyledScrollbar, Object.assign({ role: ROLES.MESSAGE_LIST,
31
+ // TODO: Distinguis between multiple instances of webchat, e.g. `${uniqueId}-botonic-scrollable`
32
+ id: 'botonic-scrollable-content', scrollbar: scrollbarOptions, autoHide: scrollbarOptions.autoHide, ismessagescontainer: 'true', style: Object.assign({}, props.style) }, { children: [(CustomIntro || DefaultIntro) && (_jsx(ConditionalWrapper, Object.assign({ condition: animationsEnabled, wrapper: children => _jsx(Fade, { children: children }) }, { children: CustomIntro ? _jsx(CustomIntro, {}) : DefaultIntro }))), webchatState.messagesComponents.map((e, i) => (_jsx(StyledMessages, Object.assign({ role: ROLES.MESSAGE }, { children: e }), i))), props.children] })));
33
+ };
34
+ //# sourceMappingURL=message-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-list.js","sourceRoot":"src/","sources":["webchat/message-list.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOhC,CAAA;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGnC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE;IACxC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACrE,MAAM,iBAAiB,GAAG,gBAAgB,CACxC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAC1C,IAAI,CACL,CAAA;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAEzE,MAAM,gBAAgB,iBACjB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAChC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CACzD,CAAA;IAED,MAAM,YAAY,GAAG,UAAU,IAAI,CACjC,KAAC,iBAAiB,IAChB,KAAK,oBACA,UAAU,GAEf,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,GAC7B,CACH,CAAA;IAED,OAAO,CACL,MAAC,eAAe,kBACd,IAAI,EAAE,KAAK,CAAC,YAAY;QACxB,gGAAgG;QAChG,EAAE,EAAC,4BAA4B,EAC/B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EACnC,mBAAmB,EAAC,MAAM,EAC1B,KAAK,oBACA,KAAK,CAAC,KAAK,kBAGf,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAChC,KAAC,kBAAkB,kBACjB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAC,IAAI,cAAE,QAAQ,GAAQ,gBAE3C,WAAW,CAAC,CAAC,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC,CAAC,YAAY,IAC1B,CACtB,EACA,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7C,KAAC,cAAc,kBAAC,IAAI,EAAE,KAAK,CAAC,OAAO,gBAChC,CAAC,KADsC,CAAC,CAE1B,CAClB,CAAC,EACD,KAAK,CAAC,QAAQ,KACC,CACnB,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export function messagesReducer(state: any, action: any): any;
@@ -0,0 +1,54 @@
1
+ import { ADD_MESSAGE, ADD_MESSAGE_COMPONENT, CLEAR_MESSAGES, UPDATE_LAST_MESSAGE_DATE, UPDATE_MESSAGE, UPDATE_REPLIES, } from './actions';
2
+ export const messagesReducer = (state, action) => {
3
+ switch (action.type) {
4
+ case ADD_MESSAGE:
5
+ return addMessageReducer(state, action);
6
+ case ADD_MESSAGE_COMPONENT:
7
+ return Object.assign(Object.assign({}, state), { messagesComponents: [
8
+ ...(state.messagesComponents || []),
9
+ action.payload,
10
+ ] });
11
+ case UPDATE_MESSAGE:
12
+ return updateMessageReducer(state, action);
13
+ case UPDATE_REPLIES:
14
+ return Object.assign(Object.assign({}, state), { replies: action.payload });
15
+ case CLEAR_MESSAGES:
16
+ return Object.assign(Object.assign({}, state), { messagesJSON: [], messagesComponents: [] });
17
+ case UPDATE_LAST_MESSAGE_DATE:
18
+ return Object.assign(Object.assign({}, state), { lastMessageUpdate: action.payload });
19
+ default:
20
+ throw new Error();
21
+ }
22
+ };
23
+ function updateMessageReducer(state, action) {
24
+ const msgIndex = state.messagesJSON.map(m => m.id).indexOf(action.payload.id);
25
+ if (msgIndex > -1) {
26
+ const msgComponent = state.messagesComponents[msgIndex];
27
+ let updatedMessageComponents = {};
28
+ if (msgComponent) {
29
+ const updatedMsgComponent = Object.assign(Object.assign({}, msgComponent), {
30
+ props: Object.assign(Object.assign({}, msgComponent.props), { ack: action.payload.ack }),
31
+ });
32
+ updatedMessageComponents = {
33
+ messagesComponents: [
34
+ ...state.messagesComponents.slice(0, msgIndex),
35
+ Object.assign({}, updatedMsgComponent),
36
+ ...state.messagesComponents.slice(msgIndex + 1),
37
+ ],
38
+ };
39
+ }
40
+ return Object.assign(Object.assign(Object.assign({}, state), { messagesJSON: [
41
+ ...state.messagesJSON.slice(0, msgIndex),
42
+ Object.assign({}, action.payload),
43
+ ...state.messagesJSON.slice(msgIndex + 1),
44
+ ] }), updatedMessageComponents);
45
+ }
46
+ return state;
47
+ }
48
+ function addMessageReducer(state, action) {
49
+ if (state.messagesJSON &&
50
+ state.messagesJSON.find(m => m.id === action.payload.id))
51
+ return state;
52
+ return Object.assign(Object.assign({}, state), { messagesJSON: [...(state.messagesJSON || []), action.payload] });
53
+ }
54
+ //# sourceMappingURL=messages-reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-reducer.js","sourceRoot":"src/","sources":["webchat/messages-reducer.js"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAA;AAElB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAC/C,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACd,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzC,KAAK,qBAAqB;YACxB,uCACK,KAAK,KACR,kBAAkB,EAAE;oBAClB,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;oBACnC,MAAM,CAAC,OAAO;iBACf,IACF;QACH,KAAK,cAAc;YACjB,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC5C,KAAK,cAAc;YACjB,uCAAY,KAAK,KAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAE;QAC9C,KAAK,cAAc;YACjB,uCACK,KAAK,KACR,YAAY,EAAE,EAAE,EAChB,kBAAkB,EAAE,EAAE,IACvB;QACH,KAAK,wBAAwB;YAC3B,uCACK,KAAK,KACR,iBAAiB,EAAE,MAAM,CAAC,OAAO,IAClC;QACH;YACE,MAAM,IAAI,KAAK,EAAE,CAAA;KACpB;AACH,CAAC,CAAA;AAED,SAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7E,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;QACjB,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QACvD,IAAI,wBAAwB,GAAG,EAAE,CAAA;QACjC,IAAI,YAAY,EAAE;YAChB,MAAM,mBAAmB,mCACpB,YAAY,GACZ;gBACD,KAAK,kCAAO,YAAY,CAAC,KAAK,KAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAE;aAC1D,CACF,CAAA;YACD,wBAAwB,GAAG;gBACzB,kBAAkB,EAAE;oBAClB,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;sCACzC,mBAAmB;oBACxB,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;iBAChD;aACF,CAAA;SACF;QACD,qDACK,KAAK,KACR,YAAY,EAAE;gBACZ,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;kCACnC,MAAM,CAAC,OAAO;gBACnB,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC1C,KACE,wBAAwB,EAC5B;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAK,EAAE,MAAM;IACtC,IACE,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAExD,OAAO,KAAK,CAAA;IACd,uCACK,KAAK,KACR,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAC9D;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export function WebchatReplies(props: any): JSX.Element;
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useContext } from 'react';
3
+ import styled from 'styled-components';
4
+ import { WEBCHAT } from '../constants';
5
+ import { WebchatContext } from '../contexts';
6
+ import { StyledScrollbar } from '../webchat/components/styled-scrollbar';
7
+ const RepliesContainer = styled.div `
8
+ display: flex;
9
+ text-align: center;
10
+ justify-content: ${props => props.justify};
11
+ flex-wrap: ${props => props.wrap};
12
+ padding-bottom: 10px;
13
+ margin-left: 5px;
14
+ margin-right: 5px;
15
+ `;
16
+ const ReplyContainer = styled.div `
17
+ flex: none;
18
+ display: inline-block;
19
+ margin: 3px;
20
+ `;
21
+ const options = {
22
+ left: 'flex-start',
23
+ center: 'center',
24
+ right: 'flex-end',
25
+ };
26
+ export const WebchatReplies = props => {
27
+ const { webchatState, getThemeProperty } = useContext(WebchatContext);
28
+ const scrollbarOptions = Object.assign({ enable: true, autoHide: true }, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.scrollbar));
29
+ let justifyContent = 'center';
30
+ const flexWrap = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.wrapReplies, 'wrap');
31
+ if (flexWrap == 'nowrap')
32
+ justifyContent = 'flex-start';
33
+ else if (getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.alignReplies))
34
+ justifyContent =
35
+ options[getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.alignReplies)];
36
+ return (_jsx(StyledScrollbar, Object.assign({ scrollbar: scrollbarOptions, autoHide: scrollbarOptions.autoHide }, { children: _jsx(RepliesContainer, Object.assign({ justify: justifyContent, wrap: flexWrap, style: Object.assign({}, props.style) }, { children: webchatState.replies.map((r, i) => (_jsx(ReplyContainer, { children: r }, i))) })) })));
37
+ };
38
+ //# sourceMappingURL=replies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replies.js","sourceRoot":"src/","sources":["webchat/replies.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAExE,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;;;qBAGd,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO;eAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;;;;CAIjC,CAAA;AAED,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIhC,CAAA;AAED,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,UAAU;CAClB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE;IACpC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACrE,MAAM,gBAAgB,iBACjB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAChC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CACzD,CAAA;IACD,IAAI,cAAc,GAAG,QAAQ,CAAA;IAC7B,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,OAAO,CAAC,iBAAiB,CAAC,WAAW,EACrC,MAAM,CACP,CAAA;IACD,IAAI,QAAQ,IAAI,QAAQ;QAAE,cAAc,GAAG,YAAY,CAAA;SAClD,IAAI,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC;QAC/D,cAAc;YACZ,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;IAErE,OAAO,CACL,KAAC,eAAe,kBACd,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,gBAEnC,KAAC,gBAAgB,kBACf,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,QAAQ,EACd,KAAK,oBACA,KAAK,CAAC,KAAK,iBAGf,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,cAAU,CAAC,IAAL,CAAC,CAAsB,CAC7C,CAAC,IACe,IACH,CACnB,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export function SessionView(props: any): JSX.Element;
@@ -0,0 +1,96 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import JSONTree from 'react-json-tree';
4
+ import styled from 'styled-components';
5
+ import { COLORS } from '../constants';
6
+ import { useWebchat } from './hooks';
7
+ const AttributeContainer = styled.div `
8
+ display: flex;
9
+ flex: none;
10
+ padding: 12px;
11
+ padding-bottom: 0px;
12
+ font-size: 12px;
13
+ font-weight: 600;
14
+ color: ${COLORS.SOLID_WHITE};
15
+ align-items: center;
16
+ `;
17
+ const Label = styled.div `
18
+ flex: none;
19
+ `;
20
+ const Value = styled.div `
21
+ flex: 1 1 auto;
22
+ max-height: 20px;
23
+ font-size: 16px;
24
+ font-weight: 400;
25
+ margin-left: 6px;
26
+ color: ${COLORS.CURIOUS_BLUE};
27
+ overflow-x: hidden;
28
+ `;
29
+ const SessionViewAttribute = props => (_jsxs(AttributeContainer, { children: [_jsx(Label, { children: props.label }), _jsx(Value, { children: props.value })] }));
30
+ const SessionViewContent = styled.div `
31
+ position: relative;
32
+ width: ${props => (props.show ? '100%' : '0%')};
33
+ height: 100%;
34
+ display: flex;
35
+ background-color: ${COLORS.DAINTREE_BLUE};
36
+ font-family: Arial, Helvetica, sans-serif;
37
+ flex-direction: column;
38
+ z-index: 100000;
39
+ transition: all 0.2s ease-in-out;
40
+ `;
41
+ const ToggleTab = styled.div `
42
+ position: absolute;
43
+ top: 10px;
44
+ right: -32px;
45
+ width: 32px;
46
+ height: 32px;
47
+ cursor: pointer;
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ color: ${COLORS.SOLID_WHITE_ALPHA_0_8};
52
+ font-size: 14px;
53
+ font-weight: 600;
54
+ background-color: ${COLORS.DAINTREE_BLUE};
55
+ flex-direction: column;
56
+ z-index: 100000;
57
+ border-top-right-radius: 6px;
58
+ border-bottom-right-radius: 6px;
59
+ `;
60
+ const ContentContainer = styled.div `
61
+ overflow-y: auto;
62
+ overflow-x: auto;
63
+ display: flex;
64
+ flex: 1 1 auto;
65
+ flex-direction: column;
66
+ `;
67
+ const Title = styled.div `
68
+ padding: 12px;
69
+ text-align: center;
70
+ color: ${COLORS.SOLID_WHITE};
71
+ border-bottom: 1px solid ${COLORS.SOLID_WHITE_ALPHA_0_2};
72
+ `;
73
+ const SessionContainer = styled.div `
74
+ flex: 1 1 auto;
75
+ height: 100%;
76
+ overflow-y: auto;
77
+ `;
78
+ const KeepSessionContainer = styled.div `
79
+ flex: none;
80
+ padding: 12px;
81
+ color: ${COLORS.SOLID_WHITE_ALPHA_0_8};
82
+ font-size: 12px;
83
+ `;
84
+ export const SessionView = props => {
85
+ // eslint-disable-next-line react-hooks/rules-of-hooks
86
+ const { webchatState, updateDevSettings } = props.webchatHooks || useWebchat();
87
+ const { latestInput: input, session, lastRoutePath } = webchatState;
88
+ const toggleSessionView = () => updateDevSettings(Object.assign(Object.assign({}, webchatState.devSettings), { showSessionView: !webchatState.devSettings.showSessionView }));
89
+ const toggleKeepSessionOnReload = () => updateDevSettings(Object.assign(Object.assign({}, webchatState.devSettings), { keepSessionOnReload: !webchatState.devSettings.keepSessionOnReload }));
90
+ return (_jsxs(SessionViewContent, Object.assign({ show: webchatState.devSettings.showSessionView }, { children: [_jsx(ToggleTab, Object.assign({ onClick: toggleSessionView }, { children: webchatState.devSettings.showSessionView ? '⇤' : '⇥' })), _jsxs(ContentContainer, { children: [_jsx(Title, { children: "Botonic Dev Console" }), _jsx(SessionViewAttribute, { label: 'INPUT:', value: input && Object.keys(input).length
91
+ ? `[${input.type}] ${input.data || ''}`
92
+ : '' }), _jsx(SessionViewAttribute, { label: 'PAYLOAD:', value: input.payload }), _jsx(SessionViewAttribute, { label: 'INTENT:', value: input.intent
93
+ ? `${input.intent} (${(input.confidence * 100).toFixed(1)}%)`
94
+ : '' }), _jsx(SessionViewAttribute, { label: 'PATH:', value: lastRoutePath ? `/${lastRoutePath}` : '/' }), _jsx(SessionViewAttribute, { label: 'SESSION:' }), _jsx(SessionContainer, { children: _jsx(JSONTree, { data: session, hideRoot: true }) }), _jsx(KeepSessionContainer, { children: _jsxs("label", { children: [_jsx("input", { type: 'checkbox', name: 'toggleKeepSessionOnReload', checked: Boolean(webchatState.devSettings.keepSessionOnReload), onChange: toggleKeepSessionOnReload }), "Keep session on reload"] }) })] })] })));
95
+ };
96
+ //# sourceMappingURL=session-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-view.js","sourceRoot":"src/","sources":["webchat/session-view.jsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export function useStorageState(storage: any, key: any, defaultValue: any): any[];
@@ -0,0 +1,38 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ // Code taken from https://github.com/leny/react-use-storage/blob/master/src/index.js
3
+ const IS_BROWSER = typeof window !== 'undefined' &&
4
+ typeof navigator !== 'undefined' &&
5
+ typeof document !== 'undefined';
6
+ export function useStorageState(storage, key, defaultValue) {
7
+ var _a, _b;
8
+ let evtTarget;
9
+ try {
10
+ evtTarget = new EventTarget();
11
+ }
12
+ catch (_c) {
13
+ evtTarget = (_b = (_a = (IS_BROWSER ? document : {})) === null || _a === void 0 ? void 0 : _a.createElement) === null || _b === void 0 ? void 0 : _b.call(_a, 'phony');
14
+ }
15
+ const raw = storage === null || storage === void 0 ? void 0 : storage.getItem(key);
16
+ const [value, setValue] = useState(raw ? JSON.parse(raw) : defaultValue);
17
+ const updater = useCallback((updatedValue, remove = false) => {
18
+ setValue(updatedValue);
19
+ storage[remove ? 'removeItem' : 'setItem'](key, JSON.stringify(updatedValue));
20
+ evtTarget.dispatchEvent(new CustomEvent('storage_change', { detail: { key } }));
21
+ }, [key]);
22
+ defaultValue != null && !raw && updater(defaultValue);
23
+ useEffect(() => {
24
+ const listener = ({ detail }) => {
25
+ if (detail.key === key) {
26
+ const lraw = storage === null || storage === void 0 ? void 0 : storage.getItem(key);
27
+ lraw !== raw && setValue(JSON.parse(lraw));
28
+ }
29
+ };
30
+ evtTarget.addEventListener('storage_change', listener);
31
+ return () => evtTarget.removeEventListener('storage_change', listener);
32
+ });
33
+ if (storage === null) {
34
+ return [undefined, undefined];
35
+ }
36
+ return [value, updater, () => updater(null, true)];
37
+ }
38
+ //# sourceMappingURL=use-storage-state-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-storage-state-hook.js","sourceRoot":"src/","sources":["webchat/use-storage-state-hook.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAExD,qFAAqF;AACrF,MAAM,UAAU,GACd,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,SAAS,KAAK,WAAW;IAChC,OAAO,QAAQ,KAAK,WAAW,CAAA;AAEjC,MAAM,UAAU,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY;;IACxD,IAAI,SAAS,CAAA;IAEb,IAAI;QACF,SAAS,GAAG,IAAI,WAAW,EAAE,CAAA;KAC9B;IAAC,WAAM;QACN,SAAS,GAAG,MAAA,MAAA,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,0CAAE,aAAa,mDAAG,OAAO,CAAC,CAAA;KACnE;IAED,MAAM,GAAG,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAExE,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;QAC/B,QAAQ,CAAC,YAAY,CAAC,CAAA;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CACxC,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAC7B,CAAA;QACD,SAAS,CAAC,aAAa,CACrB,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACvD,CAAA;IACH,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAA;IAED,YAAY,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9B,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtB,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,GAAG,CAAC,CAAA;gBAElC,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;aAC3C;QACH,CAAC,CAAA;QAED,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;QACtD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;KAC9B;IACD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const DebugTab: any;
2
+ export function DebugTabPortal({ webchatHooks, ...props }: {
3
+ [x: string]: any;
4
+ webchatHooks: any;
5
+ }): React.ReactPortal;
6
+ export const WebchatDev: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
7
+ import React from 'react';
@@ -0,0 +1,56 @@
1
+ import { __rest } from "tslib";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { PROVIDER } from '@botonic/core';
4
+ import merge from 'lodash.merge';
5
+ import React, { forwardRef, useEffect } from 'react';
6
+ import { createPortal } from 'react-dom';
7
+ import styled from 'styled-components';
8
+ import { useWebchat } from './hooks';
9
+ import { SessionView } from './session-view';
10
+ import { Webchat } from './webchat';
11
+ export const DebugTab = styled.div `
12
+ position: fixed;
13
+ left: 0;
14
+ top: 0;
15
+ width: ${props => (props.show ? '350px' : '32px')};
16
+ height: ${props => (props.show ? '100%' : '42px')};
17
+ `;
18
+ // We want the debug tab to be rendered in the <body> even if the
19
+ // webchat is being rendered in a shadowDOM, that's why we need a portal
20
+ export const DebugTabPortal = (_a) => {
21
+ var { webchatHooks } = _a, props = __rest(_a, ["webchatHooks"]);
22
+ return createPortal(_jsx(DebugTab, Object.assign({}, props, { children: _jsx(SessionView, { webchatHooks: webchatHooks }) })), document.body);
23
+ };
24
+ const initialSession = {
25
+ is_first_interaction: true,
26
+ last_session: {},
27
+ user: {
28
+ id: '000001',
29
+ username: 'johndoe',
30
+ name: 'John Doe',
31
+ provider: PROVIDER.DEV,
32
+ provider_id: '0000000',
33
+ extra_data: {},
34
+ },
35
+ organization: '',
36
+ bot: {
37
+ id: '0000000',
38
+ name: 'botName',
39
+ },
40
+ };
41
+ // eslint-disable-next-line react/display-name
42
+ export const WebchatDev = forwardRef((props, ref) => {
43
+ const webchatHooks = useWebchat();
44
+ const { webchatState, updateTheme } = webchatHooks;
45
+ /* TODO: webchatState.theme should be included in the dependencies array
46
+ together with props.theme. The problem is that this effect modifies webchatState
47
+ so we enter an infinite rerender loop. */
48
+ useEffect(() => {
49
+ updateTheme(merge(webchatState.theme, props.theme));
50
+ }, [props.theme]);
51
+ return (_jsxs(_Fragment, { children: [_jsx(Webchat, Object.assign({ style: { flex: 1, position: 'relative' } }, props, { ref: ref, webchatHooks: webchatHooks, initialSession: initialSession, initialDevSettings: {
52
+ keepSessionOnReload: webchatState.devSettings.keepSessionOnReload,
53
+ showSessionView: webchatState.devSettings.showSessionView,
54
+ } })), _jsx(DebugTabPortal, { show: webchatState.devSettings.showSessionView, webchatHooks: webchatHooks })] }));
55
+ });
56
+ //# sourceMappingURL=webchat-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webchat-dev.js","sourceRoot":"src/","sources":["webchat/webchat-dev.jsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;WAIvB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;CAClD,CAAA;AAED,iEAAiE;AACjE,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAA0B,EAAE,EAAE;QAA9B,EAAE,YAAY,OAAY,EAAP,KAAK,cAAxB,gBAA0B,CAAF;IACrD,OAAA,YAAY,CACV,KAAC,QAAQ,oBAAK,KAAK,cACjB,KAAC,WAAW,IAAC,YAAY,EAAE,YAAY,GAAI,IAClC,EACX,QAAQ,CAAC,IAAI,CACd,CAAA;CAAA,CAAA;AAEH,MAAM,cAAc,GAAG;IACrB,oBAAoB,EAAE,IAAI;IAC1B,YAAY,EAAE,EAAE;IAChB,IAAI,EAAE;QACJ,EAAE,EAAE,QAAQ;QACZ,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ,CAAC,GAAG;QACtB,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,EAAE;KACf;IACD,YAAY,EAAE,EAAE;IAChB,GAAG,EAAE;QACH,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;KAChB;CACF,CAAA;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClD,MAAM,YAAY,GAAG,UAAU,EAAE,CAAA;IACjC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,YAAY,CAAA;IAElD;;6CAEyC;IACzC,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAEjB,OAAO,CACL,8BACE,KAAC,OAAO,kBACN,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IACpC,KAAK,IACT,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE;oBAClB,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAAC,mBAAmB;oBACjE,eAAe,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe;iBAC1D,IACD,EACF,KAAC,cAAc,IACb,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe,EAC9C,YAAY,EAAE,YAAY,GAC1B,IACD,CACJ,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export function webchatReducer(state: any, action: any): any;