@botonic/react 0.22.0-alpha.0 → 0.22.0-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 (693) 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 +70 -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 +27 -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 +156 -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 +120 -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 +43 -0
  23. package/lib/cjs/components/custom-message.js +65 -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 +50 -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 +55 -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 +58 -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 +42 -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 +38 -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 +15 -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 +206 -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 +77 -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 +95 -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 +24 -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 +147 -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 +72 -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 +29 -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 +53 -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 +57 -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 +15 -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 +25 -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 +50 -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 +54 -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 +21 -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 +34 -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 +78 -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 +26 -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 +71 -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 +160 -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 +35 -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 +40 -0
  143. package/lib/cjs/util/error-boundary.js +46 -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 +32 -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 +13 -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 +18 -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 +52 -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 +59 -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 +24 -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 +14 -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 +95 -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 +218 -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 +46 -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 +46 -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 +124 -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 +32 -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 +64 -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 +704 -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 +92 -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 +269 -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 +103 -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 +64 -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 +22 -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 +151 -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 +115 -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 +43 -0
  277. package/lib/esm/components/custom-message.js +61 -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 +45 -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 +50 -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 +53 -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 +37 -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 +33 -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 +10 -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 +202 -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 +72 -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 +90 -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 +19 -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 +142 -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 +67 -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 +24 -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 +48 -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 +52 -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 +10 -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 +20 -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 +45 -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 +48 -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 +16 -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 +29 -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 +72 -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 +21 -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 +67 -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 +154 -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 +30 -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 +40 -0
  397. package/lib/esm/util/error-boundary.js +41 -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 +27 -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 +8 -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 +13 -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 +46 -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 +53 -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 +19 -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 +9 -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 +89 -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 +210 -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 +41 -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 +41 -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 +119 -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 +28 -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 +60 -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 +699 -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 +86 -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 +265 -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 +98 -0
  500. package/lib/esm/webview-app.js.map +1 -0
  501. package/lib/esm/webview.template.html +39 -0
  502. package/package.json +27 -20
  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/pic.jsx +3 -1
  508. package/src/components/video.jsx +2 -0
  509. package/src/index.js +1 -1
  510. package/src/msg-to-botonic.jsx +1 -1
  511. package/src/util/environment.js +31 -2
  512. package/src/{webview.jsx → webview-app.tsx} +7 -1
  513. package/lib/app.js +0 -19
  514. package/lib/app.js.map +0 -1
  515. package/lib/botonic-tester.js +0 -224
  516. package/lib/botonic-tester.js.map +0 -1
  517. package/lib/components/audio.js +0 -48
  518. package/lib/components/audio.js.map +0 -1
  519. package/lib/components/button.js +0 -224
  520. package/lib/components/button.js.map +0 -1
  521. package/lib/components/buttons-disabler.js +0 -133
  522. package/lib/components/buttons-disabler.js.map +0 -1
  523. package/lib/components/carousel.js +0 -194
  524. package/lib/components/carousel.js.map +0 -1
  525. package/lib/components/components.js.map +0 -1
  526. package/lib/components/custom-message.js +0 -131
  527. package/lib/components/custom-message.js.map +0 -1
  528. package/lib/components/document.js +0 -76
  529. package/lib/components/document.js.map +0 -1
  530. package/lib/components/element.js +0 -69
  531. package/lib/components/element.js.map +0 -1
  532. package/lib/components/handoff.js +0 -69
  533. package/lib/components/handoff.js.map +0 -1
  534. package/lib/components/image.js +0 -91
  535. package/lib/components/image.js.map +0 -1
  536. package/lib/components/index.d.ts +0 -228
  537. package/lib/components/index.js +0 -193
  538. package/lib/components/index.js.map +0 -1
  539. package/lib/components/location.js +0 -69
  540. package/lib/components/location.js.map +0 -1
  541. package/lib/components/markdown.js +0 -108
  542. package/lib/components/markdown.js.map +0 -1
  543. package/lib/components/message-template.js +0 -36
  544. package/lib/components/message-template.js.map +0 -1
  545. package/lib/components/message.js +0 -351
  546. package/lib/components/message.js.map +0 -1
  547. package/lib/components/multichannel/facebook/facebook.js +0 -96
  548. package/lib/components/multichannel/facebook/facebook.js.map +0 -1
  549. package/lib/components/multichannel/index.d.ts +0 -65
  550. package/lib/components/multichannel/index.js +0 -46
  551. package/lib/components/multichannel/index.js.map +0 -1
  552. package/lib/components/multichannel/multichannel-button.js +0 -119
  553. package/lib/components/multichannel/multichannel-button.js.map +0 -1
  554. package/lib/components/multichannel/multichannel-carousel.js +0 -143
  555. package/lib/components/multichannel/multichannel-carousel.js.map +0 -1
  556. package/lib/components/multichannel/multichannel-context.js +0 -24
  557. package/lib/components/multichannel/multichannel-context.js.map +0 -1
  558. package/lib/components/multichannel/multichannel-reply.js +0 -46
  559. package/lib/components/multichannel/multichannel-reply.js.map +0 -1
  560. package/lib/components/multichannel/multichannel-text.js +0 -222
  561. package/lib/components/multichannel/multichannel-text.js.map +0 -1
  562. package/lib/components/multichannel/multichannel-utils.js +0 -126
  563. package/lib/components/multichannel/multichannel-utils.js.map +0 -1
  564. package/lib/components/multichannel/multichannel.js +0 -111
  565. package/lib/components/multichannel/multichannel.js.map +0 -1
  566. package/lib/components/pic.js +0 -50
  567. package/lib/components/pic.js.map +0 -1
  568. package/lib/components/raw.js +0 -70
  569. package/lib/components/raw.js.map +0 -1
  570. package/lib/components/reply.js +0 -107
  571. package/lib/components/reply.js.map +0 -1
  572. package/lib/components/share-button.js +0 -36
  573. package/lib/components/share-button.js.map +0 -1
  574. package/lib/components/subtitle.js +0 -54
  575. package/lib/components/subtitle.js.map +0 -1
  576. package/lib/components/text.js +0 -80
  577. package/lib/components/text.js.map +0 -1
  578. package/lib/components/timestamps.js +0 -69
  579. package/lib/components/timestamps.js.map +0 -1
  580. package/lib/components/title.js +0 -52
  581. package/lib/components/title.js.map +0 -1
  582. package/lib/components/video.js +0 -51
  583. package/lib/components/video.js.map +0 -1
  584. package/lib/components/webchat-settings.js +0 -118
  585. package/lib/components/webchat-settings.js.map +0 -1
  586. package/lib/components/whatsapp-template.js +0 -53
  587. package/lib/components/whatsapp-template.js.map +0 -1
  588. package/lib/constants.js +0 -203
  589. package/lib/constants.js.map +0 -1
  590. package/lib/contexts.js +0 -57
  591. package/lib/contexts.js.map +0 -1
  592. package/lib/dev-app.js +0 -241
  593. package/lib/dev-app.js.map +0 -1
  594. package/lib/index.d.ts +0 -238
  595. package/lib/index.js +0 -131
  596. package/lib/index.js.map +0 -1
  597. package/lib/message-utils.js +0 -149
  598. package/lib/message-utils.js.map +0 -1
  599. package/lib/msg-to-botonic.js +0 -199
  600. package/lib/msg-to-botonic.js.map +0 -1
  601. package/lib/node-app.js +0 -97
  602. package/lib/node-app.js.map +0 -1
  603. package/lib/react-bot.js +0 -167
  604. package/lib/react-bot.js.map +0 -1
  605. package/lib/util/dom.js +0 -84
  606. package/lib/util/dom.js.map +0 -1
  607. package/lib/util/environment.js +0 -42
  608. package/lib/util/environment.js.map +0 -1
  609. package/lib/util/error-boundary.js +0 -105
  610. package/lib/util/error-boundary.js.map +0 -1
  611. package/lib/util/index.d.ts +0 -9
  612. package/lib/util/index.js +0 -2
  613. package/lib/util/index.js.map +0 -1
  614. package/lib/util/logs.js +0 -28
  615. package/lib/util/logs.js.map +0 -1
  616. package/lib/util/objects.js +0 -60
  617. package/lib/util/objects.js.map +0 -1
  618. package/lib/util/react.js +0 -75
  619. package/lib/util/react.js.map +0 -1
  620. package/lib/util/regexs.js +0 -31
  621. package/lib/util/regexs.js.map +0 -1
  622. package/lib/util/webchat.js +0 -92
  623. package/lib/util/webchat.js.map +0 -1
  624. package/lib/webchat/actions.js +0 -53
  625. package/lib/webchat/actions.js.map +0 -1
  626. package/lib/webchat/components/attachment.js +0 -68
  627. package/lib/webchat/components/attachment.js.map +0 -1
  628. package/lib/webchat/components/common.js +0 -29
  629. package/lib/webchat/components/common.js.map +0 -1
  630. package/lib/webchat/components/conditional-animation.js +0 -42
  631. package/lib/webchat/components/conditional-animation.js.map +0 -1
  632. package/lib/webchat/components/emoji-picker.js +0 -89
  633. package/lib/webchat/components/emoji-picker.js.map +0 -1
  634. package/lib/webchat/components/persistent-menu.js +0 -104
  635. package/lib/webchat/components/persistent-menu.js.map +0 -1
  636. package/lib/webchat/components/send-button.js +0 -45
  637. package/lib/webchat/components/send-button.js.map +0 -1
  638. package/lib/webchat/components/styled-scrollbar.js +0 -55
  639. package/lib/webchat/components/styled-scrollbar.js.map +0 -1
  640. package/lib/webchat/components/typing-indicator.js +0 -27
  641. package/lib/webchat/components/typing-indicator.js.map +0 -1
  642. package/lib/webchat/devices/device-adapter.js +0 -82
  643. package/lib/webchat/devices/device-adapter.js.map +0 -1
  644. package/lib/webchat/devices/index.js +0 -32
  645. package/lib/webchat/devices/index.js.map +0 -1
  646. package/lib/webchat/devices/scrollbar-controller.js +0 -152
  647. package/lib/webchat/devices/scrollbar-controller.js.map +0 -1
  648. package/lib/webchat/devices/webchat-resizer.js +0 -76
  649. package/lib/webchat/devices/webchat-resizer.js.map +0 -1
  650. package/lib/webchat/header.js +0 -116
  651. package/lib/webchat/header.js.map +0 -1
  652. package/lib/webchat/hooks.js +0 -359
  653. package/lib/webchat/hooks.js.map +0 -1
  654. package/lib/webchat/index.d.ts +0 -62
  655. package/lib/webchat/index.js +0 -32
  656. package/lib/webchat/index.js.map +0 -1
  657. package/lib/webchat/message-list.js +0 -88
  658. package/lib/webchat/message-list.js.map +0 -1
  659. package/lib/webchat/messages-reducer.js +0 -93
  660. package/lib/webchat/messages-reducer.js.map +0 -1
  661. package/lib/webchat/replies.js +0 -78
  662. package/lib/webchat/replies.js.map +0 -1
  663. package/lib/webchat/session-view.js +0 -106
  664. package/lib/webchat/session-view.js.map +0 -1
  665. package/lib/webchat/use-storage-state-hook.js +0 -60
  666. package/lib/webchat/use-storage-state-hook.js.map +0 -1
  667. package/lib/webchat/webchat-dev.js +0 -109
  668. package/lib/webchat/webchat-dev.js.map +0 -1
  669. package/lib/webchat/webchat-reducer.js +0 -108
  670. package/lib/webchat/webchat-reducer.js.map +0 -1
  671. package/lib/webchat/webchat.js +0 -1108
  672. package/lib/webchat/webchat.js.map +0 -1
  673. package/lib/webchat/webview.js +0 -122
  674. package/lib/webchat/webview.js.map +0 -1
  675. package/lib/webchat-app.js +0 -660
  676. package/lib/webchat-app.js.map +0 -1
  677. package/lib/webview.js +0 -231
  678. package/lib/webview.js.map +0 -1
  679. /package/lib/{assets → cjs/assets}/attachment-icon.svg +0 -0
  680. /package/lib/{assets → cjs/assets}/audio.svg +0 -0
  681. /package/lib/{assets → cjs/assets}/botonic_react_logo100x100.png +0 -0
  682. /package/lib/{assets → cjs/assets}/document.svg +0 -0
  683. /package/lib/{assets → cjs/assets}/emojiButton.svg +0 -0
  684. /package/lib/{assets → cjs/assets}/image.svg +0 -0
  685. /package/lib/{assets → cjs/assets}/leftArrow.svg +0 -0
  686. /package/lib/{assets → cjs/assets}/menuButton.svg +0 -0
  687. /package/lib/{assets → cjs/assets}/rightArrow.svg +0 -0
  688. /package/lib/{assets → cjs/assets}/send-button.svg +0 -0
  689. /package/lib/{assets → cjs/assets}/video.svg +0 -0
  690. /package/lib/{webchat → cjs/webchat}/components/styled-scrollbar.scss +0 -0
  691. /package/lib/{webchat → cjs/webchat}/components/typing-indicator.scss +0 -0
  692. /package/lib/{webchat.template.html → cjs/webchat.template.html} +0 -0
  693. /package/lib/{webview.template.html → cjs/webview.template.html} +0 -0
@@ -1,1108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.getParsedAction = exports.Webchat = void 0;
11
-
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
-
20
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
-
22
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
23
-
24
- var _core = require("@botonic/core");
25
-
26
- var _framerMotion = require("framer-motion");
27
-
28
- var _lodash = _interopRequireDefault(require("lodash.merge"));
29
-
30
- var _react = _interopRequireWildcard(require("react"));
31
-
32
- var _reactTextareaAutosize = _interopRequireDefault(require("react-textarea-autosize"));
33
-
34
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
35
-
36
- var _useAsyncEffect = require("use-async-effect");
37
-
38
- var _uuid = require("uuid");
39
-
40
- var _components = require("../components");
41
-
42
- var _handoff = require("../components/handoff");
43
-
44
- var _webchatSettings = require("../components/webchat-settings");
45
-
46
- var _constants = require("../constants");
47
-
48
- var _contexts = require("../contexts");
49
-
50
- var _messageUtils = require("../message-utils");
51
-
52
- var _msgToBotonic = require("../msg-to-botonic");
53
-
54
- var _dom = require("../util/dom");
55
-
56
- var _environment = require("../util/environment");
57
-
58
- var _regexs = require("../util/regexs");
59
-
60
- var _webchat = require("../util/webchat");
61
-
62
- var _attachment = require("./components/attachment");
63
-
64
- var _emojiPicker = require("./components/emoji-picker");
65
-
66
- var _persistentMenu = require("./components/persistent-menu");
67
-
68
- var _sendButton = require("./components/send-button");
69
-
70
- var _typingIndicator = require("./components/typing-indicator");
71
-
72
- var _deviceAdapter = require("./devices/device-adapter");
73
-
74
- var _header = require("./header");
75
-
76
- var _hooks = require("./hooks");
77
-
78
- var _messageList = require("./message-list");
79
-
80
- var _replies = require("./replies");
81
-
82
- var _useStorageStateHook = require("./use-storage-state-hook");
83
-
84
- var _webview = require("./webview");
85
-
86
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
87
-
88
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
89
-
90
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
91
-
92
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
93
-
94
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
95
-
96
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
97
-
98
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
99
-
100
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
101
-
102
- var getParsedAction = function getParsedAction(botonicAction) {
103
- var splittedAction = botonicAction.split('create_case:');
104
- if (splittedAction.length <= 1) return undefined;
105
- return JSON.parse(splittedAction[1]);
106
- };
107
-
108
- exports.getParsedAction = getParsedAction;
109
-
110
- var StyledWebchat = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n right: 20px;\n bottom: 20px;\n width: ", "px;\n height: ", "px;\n margin: auto;\n background-color: ", ";\n border-radius: 10px;\n box-shadow: ", " 0px 0px 12px;\n display: flex;\n flex-direction: column;\n"])), function (props) {
111
- return props.width;
112
- }, function (props) {
113
- return props.height;
114
- }, _constants.COLORS.SOLID_WHITE, _constants.COLORS.SOLID_BLACK_ALPHA_0_2);
115
-
116
- var StyledTriggerButton = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n position: fixed;\n background: ", ";\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n width: 65px;\n height: 65px;\n bottom: 20px;\n right: 10px;\n padding: 8px;\n"])), _constants.COLORS.SOLID_WHITE);
117
-
118
- var UserInputContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 52px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 16px;\n padding: 0px 16px;\n z-index: 1;\n border-top: 1px solid ", ";\n"])), _constants.COLORS.SOLID_BLACK_ALPHA_0_5);
119
-
120
- var TextAreaContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n"])));
121
-
122
- var TriggerImage = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 100%;\n max-height: 100%;\n"])));
123
-
124
- var ErrorMessageContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: flex;\n z-index: 1;\n justify-content: center;\n width: 100%;\n"])));
125
-
126
- var ErrorMessage = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 10px;\n font-size: 14px;\n line-height: 20px;\n padding: 4px 11px;\n display: flex;\n background-color: ", ";\n color: ", ";\n border-radius: 5px;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n"])), _constants.COLORS.ERROR_RED, _constants.COLORS.CONCRETE_WHITE, _constants.WEBCHAT.DEFAULTS.FONT_FAMILY);
127
-
128
- var DarkBackgroundMenu = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n background: ", ";\n opacity: 0.3;\n z-index: 1;\n right: 0;\n bottom: 0;\n border-radius: 10px;\n position: absolute;\n width: 100%;\n height: 100%;\n"])), _constants.COLORS.SOLID_BLACK); // eslint-disable-next-line complexity
129
-
130
-
131
- var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
132
- var _ref = props.webchatHooks || (0, _hooks.useWebchat)(),
133
- webchatState = _ref.webchatState,
134
- addMessage = _ref.addMessage,
135
- addMessageComponent = _ref.addMessageComponent,
136
- updateMessage = _ref.updateMessage,
137
- updateReplies = _ref.updateReplies,
138
- updateLatestInput = _ref.updateLatestInput,
139
- updateTyping = _ref.updateTyping,
140
- updateWebview = _ref.updateWebview,
141
- updateSession = _ref.updateSession,
142
- updateLastRoutePath = _ref.updateLastRoutePath,
143
- updateHandoff = _ref.updateHandoff,
144
- updateTheme = _ref.updateTheme,
145
- updateDevSettings = _ref.updateDevSettings,
146
- _toggleWebchat = _ref.toggleWebchat,
147
- toggleEmojiPicker = _ref.toggleEmojiPicker,
148
- togglePersistentMenu = _ref.togglePersistentMenu,
149
- _toggleCoverComponent = _ref.toggleCoverComponent,
150
- doRenderCustomComponent = _ref.doRenderCustomComponent,
151
- setError = _ref.setError,
152
- setOnline = _ref.setOnline,
153
- _clearMessages = _ref.clearMessages,
154
- openWebviewT = _ref.openWebviewT,
155
- closeWebviewT = _ref.closeWebviewT,
156
- updateLastMessageDate = _ref.updateLastMessageDate,
157
- setCurrentAttachment = _ref.setCurrentAttachment;
158
-
159
- var firstUpdate = (0, _react.useRef)(true);
160
-
161
- var isOnline = function isOnline() {
162
- return webchatState.online;
163
- };
164
-
165
- var currentDateString = function currentDateString() {
166
- return new Date().toISOString();
167
- };
168
-
169
- var theme = (0, _lodash["default"])(webchatState.theme, props.theme);
170
- var initialSession = props.initialSession,
171
- initialDevSettings = props.initialDevSettings,
172
- onStateChange = props.onStateChange;
173
- var getThemeProperty = (0, _webchat._getThemeProperty)(theme);
174
-
175
- var _useState = (0, _react.useState)(null),
176
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
177
- customComponent = _useState2[0],
178
- setCustomComponent = _useState2[1];
179
-
180
- var storage = props.storage;
181
- var storageKey = typeof props.storageKey === 'function' ? props.storageKey() : props.storageKey;
182
-
183
- var _useStorageState = (0, _useStorageStateHook.useStorageState)(storage, storageKey),
184
- _useStorageState2 = (0, _slicedToArray2["default"])(_useStorageState, 2),
185
- botonicState = _useStorageState2[0],
186
- saveState = _useStorageState2[1];
187
-
188
- var host = props.host || document.body;
189
- var deviceAdapter = new _deviceAdapter.DeviceAdapter();
190
-
191
- var saveWebchatState = function saveWebchatState(webchatState) {
192
- storage && saveState(JSON.parse((0, _regexs.stringifyWithRegexs)({
193
- messages: webchatState.messagesJSON,
194
- session: webchatState.session,
195
- lastRoutePath: webchatState.lastRoutePath,
196
- devSettings: webchatState.devSettings,
197
- lastMessageUpdate: webchatState.lastMessageUpdate,
198
- themeUpdates: webchatState.themeUpdates
199
- })));
200
- };
201
-
202
- var handleAttachment = function handleAttachment(event) {
203
- if (!(0, _messageUtils.isAllowedSize)(event.target.files[0].size)) {
204
- throw new Error("The file is too large. A maximum of ".concat(_constants.MAX_ALLOWED_SIZE_MB, "MB is allowed."));
205
- }
206
-
207
- setCurrentAttachment({
208
- fileName: event.target.files[0].name,
209
- file: event.target.files[0],
210
- // TODO: Attach more files?
211
- attachmentType: (0, _messageUtils.getMediaType)(event.target.files[0].type)
212
- });
213
- };
214
-
215
- (0, _react.useEffect)(function () {
216
- if (webchatState.currentAttachment) sendAttachment(webchatState.currentAttachment);
217
- }, [webchatState.currentAttachment]);
218
-
219
- var sendUserInput = /*#__PURE__*/function () {
220
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(input) {
221
- return _regenerator["default"].wrap(function _callee$(_context) {
222
- while (1) {
223
- switch (_context.prev = _context.next) {
224
- case 0:
225
- props.onUserInput && props.onUserInput({
226
- user: webchatState.session.user,
227
- input: input,
228
- session: webchatState.session,
229
- lastRoutePath: webchatState.lastRoutePath
230
- });
231
-
232
- case 1:
233
- case "end":
234
- return _context.stop();
235
- }
236
- }
237
- }, _callee);
238
- }));
239
-
240
- return function sendUserInput(_x) {
241
- return _ref2.apply(this, arguments);
242
- };
243
- }();
244
-
245
- var sendChatEvent = /*#__PURE__*/function () {
246
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(chatEvent) {
247
- var chatEventInput;
248
- return _regenerator["default"].wrap(function _callee2$(_context2) {
249
- while (1) {
250
- switch (_context2.prev = _context2.next) {
251
- case 0:
252
- chatEventInput = {
253
- id: (0, _uuid.v4)(),
254
- type: _core.INPUT.CHAT_EVENT,
255
- data: chatEvent
256
- };
257
- props.onUserInput && props.onUserInput({
258
- user: webchatState.session.user,
259
- input: chatEventInput,
260
- session: webchatState.session,
261
- lastRoutePath: webchatState.lastRoutePath
262
- });
263
-
264
- case 2:
265
- case "end":
266
- return _context2.stop();
267
- }
268
- }
269
- }, _callee2);
270
- }));
271
-
272
- return function sendChatEvent(_x2) {
273
- return _ref3.apply(this, arguments);
274
- };
275
- }(); // Load styles stored in window._botonicInsertStyles by Webpack
276
-
277
-
278
- (0, _hooks.useComponentWillMount)(function () {
279
- if (window._botonicInsertStyles && window._botonicInsertStyles.length) {
280
- var _iterator = _createForOfIteratorHelper(window._botonicInsertStyles),
281
- _step;
282
-
283
- try {
284
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
285
- var botonicStyle = _step.value;
286
- // Injecting styles at head is needed even if we use shadowDOM
287
- // as some dependencies like simplebar rely on creating ephemeral elements
288
- // on document.body and assume styles will be available globally
289
- document.head.appendChild(botonicStyle); // injecting styles in host node too so that shadowDOM works
290
-
291
- if (props.shadowDOM) host.appendChild(botonicStyle.cloneNode(true));
292
- }
293
- } catch (err) {
294
- _iterator.e(err);
295
- } finally {
296
- _iterator.f();
297
- }
298
-
299
- delete window._botonicInsertStyles;
300
- }
301
-
302
- if (props.shadowDOM) {
303
- // emoji-picker-react injects styles in head, so we need to
304
- // re-inject them in our host node to make it work with shadowDOM
305
- var _iterator2 = _createForOfIteratorHelper(document.querySelectorAll('style')),
306
- _step2;
307
-
308
- try {
309
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
310
- var style = _step2.value;
311
- if (style.textContent && style.textContent.includes('emoji-picker-react')) host.appendChild(style.cloneNode(true));
312
- }
313
- } catch (err) {
314
- _iterator2.e(err);
315
- } finally {
316
- _iterator2.f();
317
- }
318
- }
319
- }); // Load initial state from storage
320
-
321
- (0, _react.useEffect)(function () {
322
- var _ref4 = botonicState || {},
323
- messages = _ref4.messages,
324
- session = _ref4.session,
325
- lastRoutePath = _ref4.lastRoutePath,
326
- devSettings = _ref4.devSettings,
327
- lastMessageUpdate = _ref4.lastMessageUpdate,
328
- themeUpdates = _ref4.themeUpdates;
329
-
330
- session = (0, _webchat.initSession)(session);
331
- updateSession(session);
332
-
333
- if ((0, _webchat.shouldKeepSessionOnReload)({
334
- initialDevSettings: initialDevSettings,
335
- devSettings: devSettings
336
- })) {
337
- if (messages) {
338
- messages.forEach(function (m) {
339
- addMessage(m);
340
- var newComponent = (0, _msgToBotonic.msgToBotonic)(_objectSpread(_objectSpread({}, m), {}, {
341
- delay: 0,
342
- typing: 0
343
- }), props.theme.message && props.theme.message.customTypes || props.theme.customMessageTypes);
344
- if (newComponent) addMessageComponent(newComponent);
345
- });
346
- }
347
-
348
- if (initialSession) updateSession((0, _lodash["default"])(initialSession, session));
349
- if (lastRoutePath) updateLastRoutePath(lastRoutePath);
350
- } else updateSession((0, _lodash["default"])(initialSession, session));
351
-
352
- if (devSettings) updateDevSettings(devSettings);else if (initialDevSettings) updateDevSettings(initialDevSettings);
353
- if (lastMessageUpdate) updateLastMessageDate(lastMessageUpdate);
354
- if (themeUpdates !== undefined) updateTheme((0, _lodash["default"])(props.theme, themeUpdates), themeUpdates);
355
- if (props.onInit) setTimeout(function () {
356
- return props.onInit();
357
- }, 100);
358
- }, []);
359
- (0, _react.useEffect)(function () {
360
- if (!webchatState.isWebchatOpen) return;
361
- deviceAdapter.init(host);
362
- (0, _dom.scrollToBottom)({
363
- behavior: 'auto',
364
- host: host
365
- });
366
- }, [webchatState.isWebchatOpen]);
367
- (0, _react.useEffect)(function () {
368
- if (onStateChange && typeof onStateChange === 'function') onStateChange(webchatState);
369
- saveWebchatState(webchatState);
370
- }, [webchatState.messagesJSON, webchatState.session, webchatState.lastRoutePath, webchatState.devSettings, webchatState.lastMessageUpdate]);
371
- (0, _useAsyncEffect.useAsyncEffect)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
372
- return _regenerator["default"].wrap(function _callee3$(_context3) {
373
- while (1) {
374
- switch (_context3.prev = _context3.next) {
375
- case 0:
376
- if (!webchatState.online) {
377
- setError({
378
- message: (0, _webchat.getServerErrorMessage)(props.server)
379
- });
380
- } else {
381
- if (!firstUpdate.current) {
382
- setError(undefined);
383
- }
384
- }
385
-
386
- case 1:
387
- case "end":
388
- return _context3.stop();
389
- }
390
- }
391
- }, _callee3);
392
- })), [webchatState.online]);
393
- (0, _hooks.useTyping)({
394
- webchatState: webchatState,
395
- updateTyping: updateTyping,
396
- updateMessage: updateMessage,
397
- host: host
398
- });
399
- (0, _react.useEffect)(function () {
400
- updateTheme((0, _lodash["default"])(props.theme, theme, webchatState.themeUpdates));
401
- }, [props.theme, webchatState.themeUpdates]);
402
-
403
- var openWebview = function openWebview(webviewComponent, params) {
404
- return updateWebview(webviewComponent, params);
405
- };
406
-
407
- var handleSelectedEmoji = function handleSelectedEmoji(event, emojiObject) {
408
- textArea.current.value += emojiObject.emoji;
409
- textArea.current.focus();
410
- };
411
-
412
- var closeWebview = function closeWebview(options) {
413
- updateWebview();
414
-
415
- if (userInputEnabled) {
416
- textArea.current.focus();
417
- }
418
-
419
- if (options && options.payload) {
420
- sendPayload(options.payload);
421
- } else if (options && options.path) {
422
- var params = '';
423
- if (options.params) params = (0, _core.params2queryString)(options.params);
424
- sendPayload("__PATH_PAYLOAD__".concat(options.path, "?").concat(params));
425
- }
426
- };
427
-
428
- var handleMenu = function handleMenu() {
429
- togglePersistentMenu(!webchatState.isPersistentMenuOpen);
430
- };
431
-
432
- var handleEmojiClick = function handleEmojiClick() {
433
- toggleEmojiPicker(!webchatState.isEmojiPickerOpen);
434
- };
435
-
436
- var persistentMenuOptions = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.persistentMenu, props.persistentMenu);
437
- var darkBackgroundMenu = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu, false);
438
-
439
- var getBlockInputs = function getBlockInputs(rule, inputData) {
440
- var processedInput = rule.preprocess ? rule.preprocess(inputData) : inputData;
441
- return rule.match.some(function (regex) {
442
- if (typeof regex === 'string') regex = (0, _regexs.deserializeRegex)(regex);
443
- return regex.test(processedInput);
444
- });
445
- };
446
-
447
- var checkBlockInput = function checkBlockInput(input) {
448
- // if is a text we check if it is a serialized RE
449
- var blockInputs = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.blockInputs, props.blockInputs);
450
- if (!Array.isArray(blockInputs)) return false;
451
-
452
- var _iterator3 = _createForOfIteratorHelper(blockInputs),
453
- _step3;
454
-
455
- try {
456
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
457
- var rule = _step3.value;
458
-
459
- if (getBlockInputs(rule, input.data)) {
460
- addMessageComponent( /*#__PURE__*/_react["default"].createElement(_components.Text, {
461
- id: input.id,
462
- from: _constants.SENDERS.user,
463
- blob: false,
464
- style: {
465
- backgroundColor: _constants.COLORS.SCORPION_GRAY,
466
- borderColor: _constants.COLORS.SCORPION_GRAY,
467
- padding: '8px 12px'
468
- }
469
- }, rule.message));
470
- updateReplies(false);
471
- return true;
472
- }
473
- }
474
- } catch (err) {
475
- _iterator3.e(err);
476
- } finally {
477
- _iterator3.f();
478
- }
479
-
480
- return false;
481
- };
482
-
483
- var closeMenu = function closeMenu() {
484
- togglePersistentMenu(false);
485
- };
486
-
487
- var persistentMenu = function persistentMenu() {
488
- return /*#__PURE__*/_react["default"].createElement(_persistentMenu.OpenedPersistentMenu, {
489
- onClick: closeMenu,
490
- options: persistentMenuOptions,
491
- borderRadius: webchatState.theme.style.borderRadius || '10px'
492
- });
493
- };
494
-
495
- var getCoverComponent = function getCoverComponent() {
496
- return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.coverComponent, props.coverComponent && (props.coverComponent.component || props.coverComponent));
497
- };
498
-
499
- var CoverComponent = getCoverComponent();
500
-
501
- var closeCoverComponent = function closeCoverComponent() {
502
- _toggleCoverComponent(false);
503
- };
504
-
505
- (0, _react.useEffect)(function () {
506
- if (!CoverComponent) return;
507
- if (!botonicState || botonicState.messages && botonicState.messages.length == 0) _toggleCoverComponent(true);
508
- }, []);
509
-
510
- var coverComponent = function coverComponent() {
511
- var coverComponentProps = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.coverComponentProps, props.coverComponent && props.coverComponent.props);
512
- if (CoverComponent && webchatState.isCoverComponentOpen) return /*#__PURE__*/_react["default"].createElement(CoverComponent, (0, _extends2["default"])({
513
- closeComponent: closeCoverComponent
514
- }, coverComponentProps));
515
- return null;
516
- };
517
-
518
- var messageComponentFromInput = function messageComponentFromInput(input) {
519
- var messageComponent = null;
520
-
521
- if ((0, _messageUtils.isText)(input)) {
522
- messageComponent = /*#__PURE__*/_react["default"].createElement(_components.Text, {
523
- id: input.id,
524
- payload: input.payload,
525
- from: _constants.SENDERS.user
526
- }, input.data);
527
- } else if ((0, _messageUtils.isMedia)(input)) {
528
- var temporaryDisplayUrl = URL.createObjectURL(input.data);
529
- var mediaProps = {
530
- id: input.id,
531
- from: _constants.SENDERS.user,
532
- src: temporaryDisplayUrl
533
- };
534
- if ((0, _messageUtils.isImage)(input)) messageComponent = /*#__PURE__*/_react["default"].createElement(_components.Image, mediaProps);else if ((0, _messageUtils.isAudio)(input)) messageComponent = /*#__PURE__*/_react["default"].createElement(_components.Audio, mediaProps);else if ((0, _messageUtils.isVideo)(input)) messageComponent = /*#__PURE__*/_react["default"].createElement(_components.Video, mediaProps);else if ((0, _messageUtils.isDocument)(input)) messageComponent = /*#__PURE__*/_react["default"].createElement(_components.Document, mediaProps);
535
- }
536
-
537
- return messageComponent;
538
- };
539
-
540
- var sendInput = /*#__PURE__*/function () {
541
- var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(input) {
542
- var messageComponent;
543
- return _regenerator["default"].wrap(function _callee4$(_context4) {
544
- while (1) {
545
- switch (_context4.prev = _context4.next) {
546
- case 0:
547
- if (!(!input || Object.keys(input).length == 0)) {
548
- _context4.next = 2;
549
- break;
550
- }
551
-
552
- return _context4.abrupt("return");
553
-
554
- case 2:
555
- if (!((0, _messageUtils.isText)(input) && (!input.data || !input.data.trim()))) {
556
- _context4.next = 4;
557
- break;
558
- }
559
-
560
- return _context4.abrupt("return");
561
-
562
- case 4:
563
- if (!((0, _messageUtils.isText)(input) && checkBlockInput(input))) {
564
- _context4.next = 6;
565
- break;
566
- }
567
-
568
- return _context4.abrupt("return");
569
-
570
- case 6:
571
- if (!input.id) input.id = (0, _uuid.v4)();
572
- messageComponent = messageComponentFromInput(input);
573
- if (messageComponent) addMessageComponent(messageComponent);
574
-
575
- if (!(0, _messageUtils.isMedia)(input)) {
576
- _context4.next = 13;
577
- break;
578
- }
579
-
580
- _context4.next = 12;
581
- return (0, _messageUtils.readDataURL)(input.data);
582
-
583
- case 12:
584
- input.data = _context4.sent;
585
-
586
- case 13:
587
- sendUserInput(input);
588
- updateLatestInput(input);
589
- isOnline() && updateLastMessageDate(currentDateString());
590
- updateReplies(false);
591
- togglePersistentMenu(false);
592
- toggleEmojiPicker(false);
593
-
594
- case 19:
595
- case "end":
596
- return _context4.stop();
597
- }
598
- }
599
- }, _callee4);
600
- }));
601
-
602
- return function sendInput(_x3) {
603
- return _ref6.apply(this, arguments);
604
- };
605
- }();
606
- /* This is the public API this component exposes to its parents
607
- https://stackoverflow.com/questions/37949981/call-child-method-from-parent
608
- */
609
-
610
-
611
- var updateSessionWithUser = function updateSessionWithUser(userToUpdate) {
612
- return updateSession((0, _lodash["default"])(webchatState.session, {
613
- user: userToUpdate
614
- }));
615
- };
616
-
617
- (0, _react.useImperativeHandle)(ref, function () {
618
- return {
619
- addBotResponse: function addBotResponse(_ref7) {
620
- var response = _ref7.response,
621
- session = _ref7.session,
622
- lastRoutePath = _ref7.lastRoutePath;
623
- updateTyping(false);
624
- if (Array.isArray(response)) response.map(function (r) {
625
- return addMessageComponent(r);
626
- });else if (response) addMessageComponent(response);
627
-
628
- if (session) {
629
- updateSession((0, _lodash["default"])(session, {
630
- user: webchatState.session.user
631
- }));
632
- var action = session._botonic_action || '';
633
- var handoff = action.startsWith('create_case');
634
- if (handoff && _environment.isDev) addMessageComponent( /*#__PURE__*/_react["default"].createElement(_handoff.Handoff, null));
635
- updateHandoff(handoff);
636
- }
637
-
638
- if (lastRoutePath) updateLastRoutePath(lastRoutePath);
639
- updateLastMessageDate(currentDateString());
640
- },
641
- setTyping: function setTyping(typing) {
642
- return updateTyping(typing);
643
- },
644
- addUserMessage: function addUserMessage(message) {
645
- return sendInput(message);
646
- },
647
- updateUser: updateSessionWithUser,
648
- openWebchat: function openWebchat() {
649
- return _toggleWebchat(true);
650
- },
651
- closeWebchat: function closeWebchat() {
652
- return _toggleWebchat(false);
653
- },
654
- toggleWebchat: function toggleWebchat() {
655
- return _toggleWebchat(!webchatState.isWebchatOpen);
656
- },
657
- openCoverComponent: function openCoverComponent() {
658
- return _toggleCoverComponent(true);
659
- },
660
- closeCoverComponent: function closeCoverComponent() {
661
- return _toggleCoverComponent(false);
662
- },
663
- renderCustomComponent: function renderCustomComponent(_customComponent) {
664
- setCustomComponent(_customComponent);
665
- doRenderCustomComponent(true);
666
- },
667
- unmountCustomComponent: function unmountCustomComponent() {
668
- return doRenderCustomComponent(false);
669
- },
670
- toggleCoverComponent: function toggleCoverComponent() {
671
- return _toggleCoverComponent(!webchatState.isCoverComponentOpen);
672
- },
673
- openWebviewApi: function openWebviewApi(component) {
674
- return openWebviewT(component);
675
- },
676
- setError: setError,
677
- setOnline: setOnline,
678
- getMessages: function getMessages() {
679
- return webchatState.messagesJSON;
680
- },
681
- isOnline: isOnline,
682
- clearMessages: function clearMessages() {
683
- _clearMessages();
684
-
685
- updateReplies(false);
686
- },
687
- getLastMessageUpdate: function getLastMessageUpdate() {
688
- return webchatState.lastMessageUpdate;
689
- },
690
- updateMessageInfo: function updateMessageInfo(msgId, messageInfo) {
691
- var messageToUpdate = webchatState.messagesJSON.filter(function (m) {
692
- return m.id == msgId;
693
- })[0];
694
- var updatedMsg = (0, _lodash["default"])(messageToUpdate, messageInfo);
695
- if (updatedMsg.ack === 1) delete updatedMsg.unsentInput;
696
- updateMessage(updatedMsg);
697
- },
698
- updateWebchatSettings: function updateWebchatSettings(settings) {
699
- var themeUpdates = (0, _webchatSettings.normalizeWebchatSettings)(settings);
700
- updateTheme((0, _lodash["default"])(webchatState.theme, themeUpdates), themeUpdates);
701
- }
702
- };
703
- });
704
-
705
- var resolveCase = function resolveCase() {
706
- updateHandoff(false);
707
- updateSession(_objectSpread(_objectSpread({}, webchatState.session), {}, {
708
- _botonic_action: null
709
- }));
710
- };
711
-
712
- var prevSession = (0, _hooks.usePrevious)(webchatState.session);
713
- (0, _react.useEffect)(function () {
714
- // Resume conversation after handoff
715
- if (prevSession && prevSession._botonic_action && !webchatState.session._botonic_action) {
716
- var action = getParsedAction(prevSession._botonic_action);
717
- if (action && action.on_finish) sendPayload(action.on_finish);
718
- }
719
- }, [webchatState.session._botonic_action]);
720
-
721
- var sendText = /*#__PURE__*/function () {
722
- var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(text, payload) {
723
- var input;
724
- return _regenerator["default"].wrap(function _callee5$(_context5) {
725
- while (1) {
726
- switch (_context5.prev = _context5.next) {
727
- case 0:
728
- if (text) {
729
- _context5.next = 2;
730
- break;
731
- }
732
-
733
- return _context5.abrupt("return");
734
-
735
- case 2:
736
- input = {
737
- type: _core.INPUT.TEXT,
738
- data: text,
739
- payload: payload
740
- };
741
- _context5.next = 5;
742
- return sendInput(input);
743
-
744
- case 5:
745
- case "end":
746
- return _context5.stop();
747
- }
748
- }
749
- }, _callee5);
750
- }));
751
-
752
- return function sendText(_x4, _x5) {
753
- return _ref8.apply(this, arguments);
754
- };
755
- }();
756
-
757
- var sendPayload = /*#__PURE__*/function () {
758
- var _ref9 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(payload) {
759
- var input;
760
- return _regenerator["default"].wrap(function _callee6$(_context6) {
761
- while (1) {
762
- switch (_context6.prev = _context6.next) {
763
- case 0:
764
- if (payload) {
765
- _context6.next = 2;
766
- break;
767
- }
768
-
769
- return _context6.abrupt("return");
770
-
771
- case 2:
772
- input = {
773
- type: _core.INPUT.POSTBACK,
774
- payload: payload
775
- };
776
- _context6.next = 5;
777
- return sendInput(input);
778
-
779
- case 5:
780
- case "end":
781
- return _context6.stop();
782
- }
783
- }
784
- }, _callee6);
785
- }));
786
-
787
- return function sendPayload(_x6) {
788
- return _ref9.apply(this, arguments);
789
- };
790
- }();
791
-
792
- var sendAttachment = /*#__PURE__*/function () {
793
- var _ref10 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(attachment) {
794
- var attachmentType, input;
795
- return _regenerator["default"].wrap(function _callee7$(_context7) {
796
- while (1) {
797
- switch (_context7.prev = _context7.next) {
798
- case 0:
799
- if (!attachment.file) {
800
- _context7.next = 8;
801
- break;
802
- }
803
-
804
- attachmentType = (0, _messageUtils.getMediaType)(attachment.file.type);
805
-
806
- if (attachmentType) {
807
- _context7.next = 4;
808
- break;
809
- }
810
-
811
- return _context7.abrupt("return");
812
-
813
- case 4:
814
- input = {
815
- type: attachmentType,
816
- data: attachment.file
817
- };
818
- _context7.next = 7;
819
- return sendInput(input);
820
-
821
- case 7:
822
- setCurrentAttachment(undefined);
823
-
824
- case 8:
825
- case "end":
826
- return _context7.stop();
827
- }
828
- }
829
- }, _callee7);
830
- }));
831
-
832
- return function sendAttachment(_x7) {
833
- return _ref10.apply(this, arguments);
834
- };
835
- }();
836
-
837
- var sendTextAreaText = function sendTextAreaText() {
838
- sendText(textArea.current.value);
839
- textArea.current.value = '';
840
- };
841
-
842
- var isTyping = false;
843
- var typingTimeout = null;
844
-
845
- function clearTimeoutWithReset(reset) {
846
- var waitTime = 20 * 1000;
847
- if (typingTimeout) clearTimeout(typingTimeout);
848
- if (reset) typingTimeout = setTimeout(stopTyping, waitTime);
849
- }
850
-
851
- function startTyping() {
852
- isTyping = true;
853
- sendChatEvent('typing_on');
854
- }
855
-
856
- function stopTyping() {
857
- clearTimeoutWithReset(false);
858
- isTyping = false;
859
- sendChatEvent('typing_off');
860
- }
861
-
862
- var _onKeyDown = function onKeyDown(event) {
863
- if (event.keyCode === 13 && event.shiftKey === false) {
864
- event.preventDefault();
865
- sendTextAreaText();
866
- stopTyping();
867
- }
868
- };
869
-
870
- var onKeyUp = function onKeyUp() {
871
- if (textArea.current.value === '') {
872
- stopTyping();
873
- return;
874
- }
875
-
876
- if (!isTyping) {
877
- startTyping();
878
- }
879
-
880
- clearTimeoutWithReset(true);
881
- };
882
-
883
- var webviewRequestContext = {
884
- getString: function getString(stringId) {
885
- return props.getString(stringId, webchatState.session);
886
- },
887
- setLocale: function setLocale(locale) {
888
- return props.getString(locale, webchatState.session);
889
- },
890
- session: webchatState.session || {},
891
- params: webchatState.webviewParams || {},
892
- closeWebview: closeWebview,
893
- defaultDelay: props.defaultDelay || 0,
894
- defaultTyping: props.defaultTyping || 0
895
- };
896
- (0, _react.useEffect)(function () {
897
- if (firstUpdate.current) {
898
- firstUpdate.current = false;
899
- return;
900
- }
901
-
902
- if (webchatState.isWebchatOpen && props.onOpen) props.onOpen();
903
-
904
- if (!webchatState.isWebchatOpen && props.onClose && !firstUpdate.current) {
905
- props.onClose();
906
- toggleEmojiPicker(false);
907
- togglePersistentMenu(false);
908
- }
909
- }, [webchatState.isWebchatOpen]);
910
- var textArea = (0, _react.useRef)();
911
-
912
- var getTriggerImage = function getTriggerImage() {
913
- var triggerImage = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.triggerButtonImage, null);
914
-
915
- if (triggerImage === null) {
916
- webchatState.theme.triggerButtonImage = _constants.WEBCHAT.DEFAULTS.LOGO;
917
- return null;
918
- }
919
-
920
- return triggerImage;
921
- };
922
-
923
- var triggerButtonStyle = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.triggerButtonStyle);
924
- var CustomTriggerButton = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.customTrigger, undefined);
925
-
926
- var triggerButton = function triggerButton() {
927
- if (CustomTriggerButton) {
928
- return /*#__PURE__*/_react["default"].createElement(CustomTriggerButton, null);
929
- }
930
-
931
- return /*#__PURE__*/_react["default"].createElement(StyledTriggerButton, {
932
- role: _constants.ROLES.TRIGGER_BUTTON,
933
- style: _objectSpread({}, triggerButtonStyle)
934
- }, getTriggerImage() && /*#__PURE__*/_react["default"].createElement(TriggerImage, {
935
- src: (0, _environment.resolveImage)(getTriggerImage())
936
- }));
937
- };
938
-
939
- var webchatMessageList = function webchatMessageList() {
940
- return /*#__PURE__*/_react["default"].createElement(_messageList.WebchatMessageList, {
941
- style: {
942
- flex: 1
943
- }
944
- }, webchatState.typing && /*#__PURE__*/_react["default"].createElement(_typingIndicator.TypingIndicator, null));
945
- };
946
-
947
- var webchatReplies = function webchatReplies() {
948
- return /*#__PURE__*/_react["default"].createElement(_replies.WebchatReplies, {
949
- replies: webchatState.replies
950
- });
951
- };
952
-
953
- var isUserInputEnabled = function isUserInputEnabled() {
954
- var isUserInputEnabled = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.enableUserInput, props.enableUserInput !== undefined ? props.enableUserInput : true);
955
- return isUserInputEnabled && !webchatState.isCoverComponentOpen;
956
- };
957
-
958
- var userInputEnabled = isUserInputEnabled();
959
-
960
- var userInputArea = function userInputArea() {
961
- return userInputEnabled && /*#__PURE__*/_react["default"].createElement(UserInputContainer, {
962
- style: _objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userInputStyle)),
963
- className: "user-input-container"
964
- }, webchatState.isEmojiPickerOpen && /*#__PURE__*/_react["default"].createElement(_emojiPicker.OpenedEmojiPicker, {
965
- height: webchatState.theme.style.height,
966
- onEmojiClick: handleSelectedEmoji,
967
- onClick: handleEmojiClick
968
- }), /*#__PURE__*/_react["default"].createElement(_persistentMenu.PersistentMenu, {
969
- onClick: handleMenu,
970
- persistentMenu: props.persistentMenu
971
- }), /*#__PURE__*/_react["default"].createElement(TextAreaContainer, null, /*#__PURE__*/_react["default"].createElement(_reactTextareaAutosize["default"], {
972
- name: "text",
973
- onFocus: function onFocus() {
974
- return deviceAdapter.onFocus(host);
975
- },
976
- onBlur: function onBlur() {
977
- return deviceAdapter.onBlur();
978
- },
979
- maxRows: 4,
980
- wrap: "soft",
981
- maxLength: "1000",
982
- placeholder: getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.textPlaceholder, _constants.WEBCHAT.DEFAULTS.PLACEHOLDER),
983
- autoFocus: true,
984
- inputRef: textArea,
985
- onKeyDown: function onKeyDown(e) {
986
- return _onKeyDown(e);
987
- },
988
- onKeyUp: onKeyUp,
989
- style: _objectSpread({
990
- display: 'flex',
991
- fontSize: deviceAdapter.fontSize(14),
992
- width: '100%',
993
- border: 'none',
994
- resize: 'none',
995
- overflow: 'auto',
996
- outline: 'none',
997
- flex: '1 1 auto',
998
- padding: 10,
999
- paddingLeft: persistentMenuOptions ? 0 : 10,
1000
- fontFamily: 'inherit'
1001
- }, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userInputBoxStyle))
1002
- })), /*#__PURE__*/_react["default"].createElement(_emojiPicker.EmojiPicker, {
1003
- enableEmojiPicker: props.enableEmojiPicker,
1004
- onClick: handleEmojiClick
1005
- }), /*#__PURE__*/_react["default"].createElement(_attachment.Attachment, {
1006
- enableAttachments: props.enableAttachments,
1007
- onChange: handleAttachment,
1008
- accept: (0, _messageUtils.getFullMimeWhitelist)().join(',')
1009
- }), /*#__PURE__*/_react["default"].createElement(_sendButton.SendButton, {
1010
- onClick: sendTextAreaText
1011
- }));
1012
- };
1013
-
1014
- var webchatWebview = function webchatWebview() {
1015
- return /*#__PURE__*/_react["default"].createElement(_contexts.RequestContext.Provider, {
1016
- value: webviewRequestContext
1017
- }, /*#__PURE__*/_react["default"].createElement(_webview.WebviewContainer, {
1018
- style: _objectSpread(_objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.webviewStyle)), mobileStyle),
1019
- webview: webchatState.webview
1020
- }));
1021
- };
1022
-
1023
- var mobileStyle = {};
1024
-
1025
- if ((0, _core.isMobile)(getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.mobileBreakpoint))) {
1026
- mobileStyle = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.mobileStyle) || {
1027
- width: '100%',
1028
- height: '100%',
1029
- right: 0,
1030
- bottom: 0,
1031
- borderRadius: 0
1032
- };
1033
- }
1034
-
1035
- (0, _react.useEffect)(function () {
1036
- // Prod mode
1037
- saveWebchatState(webchatState);
1038
- (0, _dom.scrollToBottom)({
1039
- host: host
1040
- });
1041
- }, [webchatState.themeUpdates]); // Only needed for dev/serve mode
1042
-
1043
- var updateWebchatDevSettings = function updateWebchatDevSettings(settings) {
1044
- // eslint-disable-next-line react-hooks/rules-of-hooks
1045
- (0, _react.useEffect)(function () {
1046
- var themeUpdates = (0, _webchatSettings.normalizeWebchatSettings)(settings);
1047
- updateTheme((0, _lodash["default"])(webchatState.theme, themeUpdates), themeUpdates);
1048
- }, [webchatState.messagesJSON]);
1049
- };
1050
-
1051
- var DarkenBackground = function DarkenBackground(_ref11) {
1052
- var component = _ref11.component;
1053
- return /*#__PURE__*/_react["default"].createElement("div", null, darkBackgroundMenu && /*#__PURE__*/_react["default"].createElement(DarkBackgroundMenu, {
1054
- style: {
1055
- borderRadius: webchatState.theme.style.borderRadius
1056
- }
1057
- }), component);
1058
- };
1059
-
1060
- var _renderCustomComponent = function _renderCustomComponent() {
1061
- if (!customComponent) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);else return customComponent;
1062
- };
1063
-
1064
- var WebchatComponent = /*#__PURE__*/_react["default"].createElement(_contexts.WebchatContext.Provider, {
1065
- value: {
1066
- sendText: sendText,
1067
- sendAttachment: sendAttachment,
1068
- sendPayload: sendPayload,
1069
- sendInput: sendInput,
1070
- openWebview: openWebview,
1071
- resolveCase: resolveCase,
1072
- webchatState: webchatState,
1073
- getThemeProperty: getThemeProperty,
1074
- addMessage: addMessage,
1075
- toggleWebchat: _toggleWebchat,
1076
- updateMessage: updateMessage,
1077
- updateReplies: updateReplies,
1078
- updateLatestInput: updateLatestInput,
1079
- updateUser: updateSessionWithUser,
1080
- updateWebchatDevSettings: updateWebchatDevSettings
1081
- }
1082
- }, !webchatState.isWebchatOpen && /*#__PURE__*/_react["default"].createElement("div", {
1083
- onClick: function onClick(event) {
1084
- _toggleWebchat(true);
1085
-
1086
- event.preventDefault();
1087
- }
1088
- }, triggerButton()), webchatState.isWebchatOpen && /*#__PURE__*/_react["default"].createElement(StyledWebchat // TODO: Distinguis between multiple instances of webchat, e.g. `${uniqueId}-botonic-webchat`
1089
- , {
1090
- role: _constants.ROLES.WEBCHAT,
1091
- id: _constants.WEBCHAT.DEFAULTS.ID,
1092
- width: webchatState.width,
1093
- height: webchatState.height,
1094
- style: _objectSpread(_objectSpread({}, webchatState.theme.style), mobileStyle)
1095
- }, /*#__PURE__*/_react["default"].createElement(_header.StyledWebchatHeader, {
1096
- onCloseClick: function onCloseClick() {
1097
- _toggleWebchat(false);
1098
- }
1099
- }), webchatState.error.message && /*#__PURE__*/_react["default"].createElement(ErrorMessageContainer, null, /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, webchatState.error.message)), webchatMessageList(), webchatState.replies && Object.keys(webchatState.replies).length > 0 && webchatReplies(), webchatState.isPersistentMenuOpen && /*#__PURE__*/_react["default"].createElement(DarkenBackground, {
1100
- component: persistentMenu()
1101
- }), !webchatState.handoff && userInputArea(), webchatState.webview && webchatWebview(), webchatState.isCoverComponentOpen && coverComponent(), webchatState.isCustomComponentRendered && customComponent && _renderCustomComponent()));
1102
-
1103
- return props.shadowDOM ? /*#__PURE__*/_react["default"].createElement(_styledComponents.StyleSheetManager, {
1104
- target: host
1105
- }, WebchatComponent) : WebchatComponent;
1106
- });
1107
- exports.Webchat = Webchat;
1108
- //# sourceMappingURL=webchat.js.map