@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,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.toMarkdownChildren = exports.serializeMarkdown = exports.renderMarkdown = exports.renderLinks = exports.getMarkdownStyle = exports.getDefaultMarkdownStyle = exports.ESCAPED_LINE_BREAK = void 0;
9
-
10
- var _markdownIt = _interopRequireDefault(require("markdown-it"));
11
-
12
- var BR_STRING_TAG = '<br/>';
13
- var BR_STRING_TAG_REGEX = new RegExp('<br\\s*/?>', 'g');
14
- var ESCAPED_LINE_BREAK = '&lt;br&gt;';
15
- exports.ESCAPED_LINE_BREAK = ESCAPED_LINE_BREAK;
16
- var ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g');
17
-
18
- var isLineBreakElement = function isLineBreakElement(element) {
19
- return element.type === 'br';
20
- };
21
-
22
- var withLinksTarget = function withLinksTarget(renderer) {
23
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_blank';
24
-
25
- // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer
26
- var newRenderer = renderer.renderer.rules.link_open || function (tokens, idx, options, env, self) {
27
- return self.renderToken(tokens, idx, options);
28
- };
29
-
30
- renderer.renderer.rules.link_open = function (tokens, idx, options, env, self) {
31
- var aIndex = tokens[idx].attrIndex('target');
32
- if (aIndex < 0) tokens[idx].attrPush(['target', target]);else tokens[idx].attrs[aIndex][1] = target;
33
- return newRenderer(tokens, idx, options, env, self);
34
- };
35
- };
36
-
37
- var configureLinksRenderer = function configureLinksRenderer() {
38
- // zero preset comes with all options disabled, only enabling links
39
- var linksRenderer = new _markdownIt["default"]('zero', {
40
- linkify: true
41
- }).enable(['linkify']);
42
- withLinksTarget(linksRenderer);
43
- return linksRenderer;
44
- };
45
-
46
- var configureMarkdownRenderer = function configureMarkdownRenderer() {
47
- var markdownRenderer = new _markdownIt["default"]({
48
- html: true,
49
- linkify: true,
50
- typographer: true
51
- });
52
- withLinksTarget(markdownRenderer);
53
- return markdownRenderer;
54
- };
55
-
56
- var markdownRenderer = configureMarkdownRenderer();
57
-
58
- var renderMarkdown = function renderMarkdown(text) {
59
- // markdown-it renderer expects '<br/>' strings to render correctly line breaks
60
- // Supporting multiline: https://stackoverflow.com/a/20543835
61
- text = text.map(function (e) {
62
- if (isLineBreakElement(e)) return BR_STRING_TAG;else if (typeof e === 'string') return e.replace(BR_STRING_TAG_REGEX, BR_STRING_TAG).replace(ESCAPED_LINE_BREAK_REGEX, BR_STRING_TAG);else return String(e);
63
- }).join('');
64
- return markdownRenderer.render(text);
65
- };
66
-
67
- exports.renderMarkdown = renderMarkdown;
68
- var linksRenderer = configureLinksRenderer();
69
-
70
- var renderLinks = function renderLinks(text) {
71
- return linksRenderer.render(text);
72
- };
73
-
74
- exports.renderLinks = renderLinks;
75
-
76
- var serializeMarkdown = function serializeMarkdown(children) {
77
- children = Array.isArray(children) ? children : [children];
78
- var text = children.filter(function (e) {
79
- return isLineBreakElement(e) || !e.type;
80
- }).map(function (e) {
81
- if (Array.isArray(e)) return serializeMarkdown(e);
82
- if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK;else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK);
83
- }).join('');
84
- return text;
85
- };
86
-
87
- exports.serializeMarkdown = serializeMarkdown;
88
-
89
- var toMarkdownChildren = function toMarkdownChildren(children) {
90
- return children.map(function (e) {
91
- return isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e;
92
- });
93
- };
94
-
95
- exports.toMarkdownChildren = toMarkdownChildren;
96
-
97
- var getMarkdownStyle = function getMarkdownStyle(getThemeFn, defaultColor) {
98
- return getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor));
99
- };
100
-
101
- exports.getMarkdownStyle = getMarkdownStyle;
102
-
103
- var getDefaultMarkdownStyle = function getDefaultMarkdownStyle(color) {
104
- return "\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:".concat(color, "; \n}\n\na:visited {\n color:").concat(color, ";\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n");
105
- };
106
-
107
- exports.getDefaultMarkdownStyle = getDefaultMarkdownStyle;
108
- //# sourceMappingURL=markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/markdown.js"],"names":["BR_STRING_TAG","BR_STRING_TAG_REGEX","RegExp","ESCAPED_LINE_BREAK","ESCAPED_LINE_BREAK_REGEX","isLineBreakElement","element","type","withLinksTarget","renderer","target","newRenderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","configureLinksRenderer","linksRenderer","MarkdownIt","linkify","enable","configureMarkdownRenderer","markdownRenderer","html","typographer","renderMarkdown","text","map","e","replace","String","join","render","renderLinks","serializeMarkdown","children","Array","isArray","filter","toMarkdownChildren","getMarkdownStyle","getThemeFn","defaultColor","getDefaultMarkdownStyle","color"],"mappings":"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","sourcesContent":["import MarkdownIt from 'markdown-it'\n\nconst BR_STRING_TAG = '<br/>'\nconst BR_STRING_TAG_REGEX = new RegExp('<br\\\\s*/?>', 'g')\nexport const ESCAPED_LINE_BREAK = '&lt;br&gt;'\nconst ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g')\nconst isLineBreakElement = element => element.type === 'br'\n\nconst withLinksTarget = (renderer, target = '_blank') => {\n // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer\n const newRenderer =\n renderer.renderer.rules.link_open ||\n function (tokens, idx, options, env, self) {\n return self.renderToken(tokens, idx, options)\n }\n renderer.renderer.rules.link_open = function (\n tokens,\n idx,\n options,\n env,\n self\n ) {\n const aIndex = tokens[idx].attrIndex('target')\n if (aIndex < 0) tokens[idx].attrPush(['target', target])\n else tokens[idx].attrs[aIndex][1] = target\n return newRenderer(tokens, idx, options, env, self)\n }\n}\n\nconst configureLinksRenderer = () => {\n // zero preset comes with all options disabled, only enabling links\n const linksRenderer = new MarkdownIt('zero', { linkify: true }).enable([\n 'linkify',\n ])\n withLinksTarget(linksRenderer)\n return linksRenderer\n}\n\nconst configureMarkdownRenderer = () => {\n const markdownRenderer = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n })\n withLinksTarget(markdownRenderer)\n return markdownRenderer\n}\n\nconst markdownRenderer = configureMarkdownRenderer()\nexport const renderMarkdown = text => {\n // markdown-it renderer expects '<br/>' strings to render correctly line breaks\n // Supporting multiline: https://stackoverflow.com/a/20543835\n text = text\n .map(e => {\n if (isLineBreakElement(e)) return BR_STRING_TAG\n else if (typeof e === 'string')\n return e\n .replace(BR_STRING_TAG_REGEX, BR_STRING_TAG)\n .replace(ESCAPED_LINE_BREAK_REGEX, BR_STRING_TAG)\n else return String(e)\n })\n .join('')\n return markdownRenderer.render(text)\n}\n\nconst linksRenderer = configureLinksRenderer()\nexport const renderLinks = text => {\n return linksRenderer.render(text)\n}\n\nexport const serializeMarkdown = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => isLineBreakElement(e) || !e.type)\n .map(e => {\n if (Array.isArray(e)) return serializeMarkdown(e)\n if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK\n else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK)\n })\n .join('')\n return text\n}\n\nexport const toMarkdownChildren = children =>\n children.map(e => (isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e))\n\nexport const getMarkdownStyle = (getThemeFn, defaultColor) =>\n getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor))\n\nexport const getDefaultMarkdownStyle = color => `\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:${color}; \n}\n\na:visited {\n color:${color};\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n`\n"],"file":"markdown.js"}
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.MessageTemplate = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _react2 = require("../util/react");
13
-
14
- var MessageTemplate = function MessageTemplate(props) {
15
- var renderBrowser = function renderBrowser() {
16
- return null;
17
- };
18
-
19
- var renderNode = function renderNode() {
20
- return /*#__PURE__*/_react["default"].createElement("message", {
21
- type: "template"
22
- }, /*#__PURE__*/_react["default"].createElement("pre", {
23
- dangerouslySetInnerHTML: {
24
- __html: JSON.stringify(props.payload)
25
- }
26
- }));
27
- };
28
-
29
- return (0, _react2.renderComponent)({
30
- renderBrowser: renderBrowser,
31
- renderNode: renderNode
32
- });
33
- };
34
-
35
- exports.MessageTemplate = MessageTemplate;
36
- //# sourceMappingURL=message-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/message-template.jsx"],"names":["MessageTemplate","props","renderBrowser","renderNode","__html","JSON","stringify","payload"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AACtC,MAAMC,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WAAM,IAAN;AAAA,GAAtB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,wBACjB;AAAS,MAAA,IAAI,EAAC;AAAd,oBACE;AACE,MAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEC,IAAI,CAACC,SAAL,CAAeL,KAAK,CAACM,OAArB;AAAV;AAD3B,MADF,CADiB;AAAA,GAAnB;;AAOA,SAAO,6BAAgB;AAAEL,IAAAA,aAAa,EAAbA,aAAF;AAAiBC,IAAAA,UAAU,EAAVA;AAAjB,GAAhB,CAAP;AACD,CAVM","sourcesContent":["import React from 'react'\n\nimport { renderComponent } from '../util/react'\n\nexport const MessageTemplate = props => {\n const renderBrowser = () => null\n const renderNode = () => (\n <message type='template'>\n <pre\n dangerouslySetInnerHTML={{ __html: JSON.stringify(props.payload) }}\n />\n </message>\n )\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"message-template.js"}
@@ -1,351 +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.Message = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
-
20
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
21
-
22
- var _core = require("@botonic/core");
23
-
24
- var _react = _interopRequireWildcard(require("react"));
25
-
26
- var _Fade = _interopRequireDefault(require("react-reveal/Fade"));
27
-
28
- var _styledComponents = _interopRequireDefault(require("styled-components"));
29
-
30
- var _uuid = require("uuid");
31
-
32
- var _constants = require("../constants");
33
-
34
- var _contexts = require("../contexts");
35
-
36
- var _environment = require("../util/environment");
37
-
38
- var _react2 = require("../util/react");
39
-
40
- var _button = require("./button");
41
-
42
- var _buttonsDisabler = require("./buttons-disabler");
43
-
44
- var _markdown = require("./markdown");
45
-
46
- var _reply = require("./reply");
47
-
48
- var _timestamps = require("./timestamps");
49
-
50
- var _excluded = ["type", "blob", "from", "delay", "typing", "children", "enabletimestamps", "json", "style", "imagestyle"],
51
- _excluded2 = ["blob", "json"];
52
-
53
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
54
-
55
- 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); }
56
-
57
- 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; }
58
-
59
- 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; }
60
-
61
- 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; }
62
-
63
- var MessageContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: ", ";\n position: relative;\n padding: 0px 6px;\n"])), function (props) {
64
- return props.isfromuser ? 'flex-end' : 'flex-start';
65
- });
66
-
67
- var BotMessageImageContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
68
-
69
- var Blob = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ", ";\n color: ", ";\n max-width: ", ";\n"])), function (props) {
70
- return props.bgcolor;
71
- }, function (props) {
72
- return props.color;
73
- }, function (props) {
74
- return props.blob ? props.blobwidth ? props.blobwidth : '60%' : 'calc(100% - 16px)';
75
- });
76
-
77
- var BlobText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ", "\n"])), function (props) {
78
- return props.blob ? '8px 12px' : '0px';
79
- }, function (props) {
80
- return props.markdownstyle;
81
- });
82
-
83
- var BlobTickContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n"])));
84
-
85
- var BlobTick = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: -", "px 0px;\n border: ", "px solid ", ";\n"])), function (props) {
86
- return props.pointerSize;
87
- }, function (props) {
88
- return props.pointerSize;
89
- }, _constants.COLORS.TRANSPARENT);
90
-
91
- var Message = function Message(props) {
92
- var _useContext = (0, _react.useContext)(_contexts.RequestContext),
93
- defaultTyping = _useContext.defaultTyping,
94
- defaultDelay = _useContext.defaultDelay;
95
-
96
- var _props$type = props.type,
97
- type = _props$type === void 0 ? '' : _props$type,
98
- _props$blob = props.blob,
99
- blob = _props$blob === void 0 ? true : _props$blob,
100
- _props$from = props.from,
101
- from = _props$from === void 0 ? _constants.SENDERS.bot : _props$from,
102
- _props$delay = props.delay,
103
- delay = _props$delay === void 0 ? defaultDelay : _props$delay,
104
- _props$typing = props.typing,
105
- typing = _props$typing === void 0 ? defaultTyping : _props$typing,
106
- children = props.children,
107
- _props$enabletimestam = props.enabletimestamps,
108
- enabletimestamps = _props$enabletimestam === void 0 ? props.enabletimestamps || props.enableTimestamps : _props$enabletimestam,
109
- json = props.json,
110
- style = props.style,
111
- _props$imagestyle = props.imagestyle,
112
- imagestyle = _props$imagestyle === void 0 ? props.imagestyle || props.imageStyle : _props$imagestyle,
113
- otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
114
- var isFromUser = from === _constants.SENDERS.user;
115
- var isFromBot = from === _constants.SENDERS.bot;
116
- var markdown = props.markdown;
117
-
118
- var _useContext2 = (0, _react.useContext)(_contexts.WebchatContext),
119
- webchatState = _useContext2.webchatState,
120
- addMessage = _useContext2.addMessage,
121
- updateReplies = _useContext2.updateReplies,
122
- getThemeProperty = _useContext2.getThemeProperty;
123
-
124
- var _useState = (0, _react.useState)({
125
- id: props.id || (0, _uuid.v4)()
126
- }),
127
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
128
- state = _useState2[0],
129
- setState = _useState2[1];
130
-
131
- var _useState3 = (0, _react.useState)(false),
132
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
133
- disabled = _useState4[0],
134
- setDisabled = _useState4[1];
135
-
136
- children = _buttonsDisabler.ButtonsDisabler.updateChildrenButtons(children, {
137
- parentId: state.id,
138
- disabled: disabled,
139
- setDisabled: setDisabled
140
- });
141
-
142
- var replies = _react["default"].Children.toArray(children).filter(function (e) {
143
- return e.type === _reply.Reply;
144
- });
145
-
146
- var buttons = _react["default"].Children.toArray(children).filter(function (e) {
147
- return e.type === _button.Button;
148
- });
149
-
150
- var textChildren = _react["default"].Children.toArray(children).filter(function (e) {
151
- return ![_button.Button, _reply.Reply].includes(e.type);
152
- });
153
-
154
- if (isFromUser) textChildren = textChildren.map(function (e) {
155
- return typeof e === 'string' ? (0, _markdown.renderLinks)(e) : e;
156
- });
157
-
158
- var _resolveMessageTimest = (0, _timestamps.resolveMessageTimestamps)(getThemeProperty, enabletimestamps),
159
- timestampsEnabled = _resolveMessageTimest.timestampsEnabled,
160
- getFormattedTimestamp = _resolveMessageTimest.getFormattedTimestamp,
161
- timestampStyle = _resolveMessageTimest.timestampStyle;
162
-
163
- var getEnvAck = function getEnvAck() {
164
- if (_environment.isDev) return 1;
165
- if (!isFromUser) return 1;
166
- if (props.ack !== undefined) return props.ack;
167
- return 0;
168
- };
169
-
170
- var ack = getEnvAck();
171
-
172
- if ((0, _core.isBrowser)()) {
173
- // eslint-disable-next-line react-hooks/rules-of-hooks
174
- (0, _react.useEffect)(function () {
175
- var decomposedChildren = json;
176
- var message = {
177
- id: state.id,
178
- type: type,
179
- data: decomposedChildren ? decomposedChildren : textChildren,
180
- timestamp: props.timestamp || getFormattedTimestamp,
181
- markdown: markdown,
182
- from: from,
183
- buttons: buttons.map(function (b) {
184
- return _objectSpread({
185
- parentId: b.props.parentId,
186
- payload: b.props.payload,
187
- path: b.props.path,
188
- url: b.props.url,
189
- target: b.props.target,
190
- webview: b.props.webview && String(b.props.webview),
191
- title: b.props.children
192
- }, _buttonsDisabler.ButtonsDisabler.withDisabledProps(b.props));
193
- }),
194
- delay: delay,
195
- typing: typing,
196
- replies: replies.map(function (r) {
197
- return {
198
- payload: r.props.payload,
199
- path: r.props.path,
200
- url: r.props.url,
201
- text: r.props.children
202
- };
203
- }),
204
- display: delay + typing == 0,
205
- customTypeName: decomposedChildren.customTypeName,
206
- ack: ack
207
- };
208
- addMessage(message);
209
- }, []); // eslint-disable-next-line react-hooks/rules-of-hooks
210
-
211
- (0, _react.useEffect)(function () {
212
- var msg = webchatState.messagesJSON.find(function (m) {
213
- return m.id === state.id;
214
- });
215
-
216
- if (msg && msg.display && webchatState.messagesJSON.filter(function (m) {
217
- return !m.display;
218
- }).length == 0) {
219
- updateReplies(replies);
220
- }
221
- }, [webchatState.messagesJSON]);
222
- }
223
-
224
- var brandColor = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandColor, _constants.COLORS.BOTONIC_BLUE);
225
-
226
- var getBgColor = function getBgColor() {
227
- if (!blob) return _constants.COLORS.TRANSPARENT;
228
-
229
- if (isFromUser) {
230
- return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground, brandColor);
231
- }
232
-
233
- return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground, _constants.COLORS.SEASHELL_WHITE);
234
- };
235
-
236
- var getMessageStyle = function getMessageStyle() {
237
- return isFromBot ? getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle) : getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle);
238
- };
239
-
240
- var hasBlobTick = function hasBlobTick() {
241
- return getThemeProperty("message.".concat(from, ".blobTick"), true);
242
- };
243
-
244
- var renderBrowser = function renderBrowser() {
245
- var m = webchatState.messagesJSON.find(function (m) {
246
- return m.id === state.id;
247
- });
248
- if (!m || !m.display) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);
249
-
250
- var getBlobTick = function getBlobTick(pointerSize) {
251
- // to add a border to the blobTick we need to create two triangles and overlap them
252
- // that is why the color depends on the pointerSize
253
- // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/
254
- var color = pointerSize == 5 ? getBgColor() : getThemeProperty("message.".concat(from, ".style.borderColor"), _constants.COLORS.TRANSPARENT);
255
-
256
- var containerStyle = _objectSpread({}, getThemeProperty("message.".concat(from, ".blobTickStyle")));
257
-
258
- var blobTickStyle = {};
259
-
260
- if (isFromUser) {
261
- containerStyle.right = 0;
262
- containerStyle.marginRight = -pointerSize;
263
- blobTickStyle.borderRight = 0;
264
- blobTickStyle.borderLeftColor = color;
265
- } else {
266
- containerStyle.left = 0;
267
- containerStyle.marginLeft = -pointerSize;
268
- blobTickStyle.borderLeft = 0;
269
- blobTickStyle.borderRightColor = color;
270
- }
271
-
272
- return /*#__PURE__*/_react["default"].createElement(BlobTickContainer, {
273
- style: containerStyle
274
- }, /*#__PURE__*/_react["default"].createElement(BlobTick, {
275
- pointerSize: pointerSize,
276
- style: blobTickStyle
277
- }));
278
- };
279
-
280
- var BotMessageImage = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImage, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandImage, _constants.WEBCHAT.DEFAULTS.LOGO));
281
- var animationsEnabled = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.enableAnimations, true);
282
-
283
- var resolveCustomTypeName = function resolveCustomTypeName() {
284
- return isFromBot && type === _core.INPUT.CUSTOM ? " ".concat(m.customTypeName) : '';
285
- };
286
-
287
- var className = "".concat(type, "-").concat(from).concat(resolveCustomTypeName());
288
- return /*#__PURE__*/_react["default"].createElement(_react2.ConditionalWrapper, {
289
- condition: animationsEnabled,
290
- wrapper: function wrapper(children) {
291
- return /*#__PURE__*/_react["default"].createElement(_Fade["default"], null, children);
292
- }
293
- }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(MessageContainer, {
294
- isfromuser: isFromUser,
295
- style: _objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.messageStyle))
296
- }, isFromBot && BotMessageImage && /*#__PURE__*/_react["default"].createElement(BotMessageImageContainer, {
297
- style: _objectSpread(_objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle)), imagestyle)
298
- }, /*#__PURE__*/_react["default"].createElement("img", {
299
- style: {
300
- width: '100%'
301
- },
302
- src: (0, _environment.resolveImage)(BotMessageImage)
303
- })), /*#__PURE__*/_react["default"].createElement(Blob, (0, _extends2["default"])({
304
- className: className,
305
- bgcolor: getBgColor(),
306
- color: isFromUser ? _constants.COLORS.SOLID_WHITE : _constants.COLORS.SOLID_BLACK,
307
- blobwidth: getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth),
308
- blob: blob,
309
- style: _objectSpread(_objectSpread(_objectSpread({}, getMessageStyle()), style), {
310
- opacity: ack === 0 ? 0.6 : 1
311
- })
312
- }, otherProps), markdown ? /*#__PURE__*/_react["default"].createElement(BlobText, {
313
- blob: blob,
314
- dangerouslySetInnerHTML: {
315
- __html: (0, _markdown.renderMarkdown)(textChildren)
316
- },
317
- markdownstyle: (0, _markdown.getMarkdownStyle)(getThemeProperty, isFromUser ? _constants.COLORS.SEASHELL_WHITE : brandColor)
318
- }) : /*#__PURE__*/_react["default"].createElement(BlobText, {
319
- blob: blob
320
- }, textChildren), !!buttons.length && /*#__PURE__*/_react["default"].createElement("div", {
321
- className: "message-buttons-container"
322
- }, buttons), Boolean(blob) && hasBlobTick() && getBlobTick(6), Boolean(blob) && hasBlobTick() && getBlobTick(5))), timestampsEnabled && /*#__PURE__*/_react["default"].createElement(_timestamps.MessageTimestamp, {
323
- timestamp: m.timestamp,
324
- style: timestampStyle,
325
- isfromuser: isFromUser
326
- })));
327
- };
328
-
329
- var _blob = props.blob,
330
- _json = props.json,
331
- nodeProps = (0, _objectWithoutProperties2["default"])(props, _excluded2);
332
-
333
- var renderNode = function renderNode() {
334
- return type === _core.INPUT.CUSTOM ? /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
335
- json: JSON.stringify(_json),
336
- typing: typing,
337
- delay: delay
338
- }, nodeProps)) : /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
339
- typing: typing,
340
- delay: delay
341
- }, nodeProps), children);
342
- };
343
-
344
- return (0, _react2.renderComponent)({
345
- renderBrowser: renderBrowser,
346
- renderNode: renderNode
347
- });
348
- };
349
-
350
- exports.Message = Message;
351
- //# sourceMappingURL=message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/message.jsx"],"names":["MessageContainer","styled","div","props","isfromuser","BotMessageImageContainer","Blob","bgcolor","color","blob","blobwidth","BlobText","markdownstyle","BlobTickContainer","BlobTick","pointerSize","COLORS","TRANSPARENT","Message","RequestContext","defaultTyping","defaultDelay","type","from","SENDERS","bot","delay","typing","children","enabletimestamps","enableTimestamps","json","style","imagestyle","imageStyle","otherProps","isFromUser","user","isFromBot","markdown","WebchatContext","webchatState","addMessage","updateReplies","getThemeProperty","id","state","setState","disabled","setDisabled","ButtonsDisabler","updateChildrenButtons","parentId","replies","React","Children","toArray","filter","e","Reply","buttons","Button","textChildren","includes","map","timestampsEnabled","getFormattedTimestamp","timestampStyle","getEnvAck","isDev","ack","undefined","decomposedChildren","message","data","timestamp","b","payload","path","url","target","webview","String","title","withDisabledProps","r","text","display","customTypeName","msg","messagesJSON","find","m","length","brandColor","WEBCHAT","CUSTOM_PROPERTIES","BOTONIC_BLUE","getBgColor","userMessageBackground","botMessageBackground","SEASHELL_WHITE","getMessageStyle","botMessageStyle","userMessageStyle","hasBlobTick","renderBrowser","getBlobTick","containerStyle","blobTickStyle","right","marginRight","borderRight","borderLeftColor","left","marginLeft","borderLeft","borderRightColor","BotMessageImage","botMessageImage","brandImage","DEFAULTS","LOGO","animationsEnabled","enableAnimations","resolveCustomTypeName","INPUT","CUSTOM","className","messageStyle","botMessageImageStyle","width","SOLID_WHITE","SOLID_BLACK","botMessageBlobWidth","opacity","__html","Boolean","_blob","_json","nodeProps","renderNode","JSON","stringify"],"mappings":"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","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useEffect, useState } from 'react'\nimport Fade from 'react-reveal/Fade'\nimport styled from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { COLORS, SENDERS, WEBCHAT } from '../constants'\nimport { RequestContext, WebchatContext } from '../contexts'\nimport { isDev, resolveImage } from '../util/environment'\nimport { ConditionalWrapper, renderComponent } from '../util/react'\nimport { Button } from './button'\nimport { ButtonsDisabler } from './buttons-disabler'\nimport { getMarkdownStyle, renderLinks, renderMarkdown } from './markdown'\nimport { Reply } from './reply'\nimport { MessageTimestamp, resolveMessageTimestamps } from './timestamps'\n\nconst MessageContainer = styled.div`\n display: flex;\n justify-content: ${props => (props.isfromuser ? 'flex-end' : 'flex-start')};\n position: relative;\n padding: 0px 6px;\n`\n\nconst BotMessageImageContainer = styled.div`\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Blob = styled.div`\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ${props => props.bgcolor};\n color: ${props => props.color};\n max-width: ${props =>\n props.blob\n ? props.blobwidth\n ? props.blobwidth\n : '60%'\n : 'calc(100% - 16px)'};\n`\n\nconst BlobText = styled.div`\n padding: ${props => (props.blob ? '8px 12px' : '0px')};\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ${props => props.markdownstyle}\n`\n\nconst BlobTickContainer = styled.div`\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n`\nconst BlobTick = styled.div`\n position: relative;\n margin: -${props => props.pointerSize}px 0px;\n border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};\n`\n\nexport const Message = props => {\n const { defaultTyping, defaultDelay } = useContext(RequestContext)\n let {\n type = '',\n blob = true,\n from = SENDERS.bot,\n delay = defaultDelay,\n typing = defaultTyping,\n children,\n enabletimestamps = props.enabletimestamps || props.enableTimestamps,\n json,\n style,\n imagestyle = props.imagestyle || props.imageStyle,\n ...otherProps\n } = props\n const isFromUser = from === SENDERS.user\n const isFromBot = from === SENDERS.bot\n const markdown = props.markdown\n const {\n webchatState,\n addMessage,\n updateReplies,\n getThemeProperty,\n } = useContext(WebchatContext)\n const [state, setState] = useState({\n id: props.id || uuidv4(),\n })\n\n const [disabled, setDisabled] = useState(false)\n children = ButtonsDisabler.updateChildrenButtons(children, {\n parentId: state.id,\n disabled,\n setDisabled,\n })\n const replies = React.Children.toArray(children).filter(e => e.type === Reply)\n const buttons = React.Children.toArray(children).filter(\n e => e.type === Button\n )\n\n let textChildren = React.Children.toArray(children).filter(\n e => ![Button, Reply].includes(e.type)\n )\n if (isFromUser)\n textChildren = textChildren.map(e =>\n typeof e === 'string' ? renderLinks(e) : e\n )\n\n const {\n timestampsEnabled,\n getFormattedTimestamp,\n timestampStyle,\n } = resolveMessageTimestamps(getThemeProperty, enabletimestamps)\n\n const getEnvAck = () => {\n if (isDev) return 1\n if (!isFromUser) return 1\n if (props.ack !== undefined) return props.ack\n return 0\n }\n\n const ack = getEnvAck()\n\n if (isBrowser()) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const decomposedChildren = json\n const message = {\n id: state.id,\n type,\n data: decomposedChildren ? decomposedChildren : textChildren,\n timestamp: props.timestamp || getFormattedTimestamp,\n markdown,\n from,\n buttons: buttons.map(b => ({\n parentId: b.props.parentId,\n payload: b.props.payload,\n path: b.props.path,\n url: b.props.url,\n target: b.props.target,\n webview: b.props.webview && String(b.props.webview),\n title: b.props.children,\n ...ButtonsDisabler.withDisabledProps(b.props),\n })),\n delay,\n typing,\n replies: replies.map(r => ({\n payload: r.props.payload,\n path: r.props.path,\n url: r.props.url,\n text: r.props.children,\n })),\n display: delay + typing == 0,\n customTypeName: decomposedChildren.customTypeName,\n ack: ack,\n }\n addMessage(message)\n }, [])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const msg = webchatState.messagesJSON.find(m => m.id === state.id)\n if (\n msg &&\n msg.display &&\n webchatState.messagesJSON.filter(m => !m.display).length == 0\n ) {\n updateReplies(replies)\n }\n }, [webchatState.messagesJSON])\n }\n\n const brandColor = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandColor,\n COLORS.BOTONIC_BLUE\n )\n\n const getBgColor = () => {\n if (!blob) return COLORS.TRANSPARENT\n if (isFromUser) {\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground,\n brandColor\n )\n }\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground,\n COLORS.SEASHELL_WHITE\n )\n }\n\n const getMessageStyle = () =>\n isFromBot\n ? getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle)\n : getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle)\n\n const hasBlobTick = () => getThemeProperty(`message.${from}.blobTick`, true)\n\n const renderBrowser = () => {\n const m = webchatState.messagesJSON.find(m => m.id === state.id)\n if (!m || !m.display) return <></>\n\n const getBlobTick = pointerSize => {\n // to add a border to the blobTick we need to create two triangles and overlap them\n // that is why the color depends on the pointerSize\n // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/\n const color =\n pointerSize == 5\n ? getBgColor()\n : getThemeProperty(\n `message.${from}.style.borderColor`,\n COLORS.TRANSPARENT\n )\n const containerStyle = {\n ...getThemeProperty(`message.${from}.blobTickStyle`),\n }\n const blobTickStyle = {}\n if (isFromUser) {\n containerStyle.right = 0\n containerStyle.marginRight = -pointerSize\n blobTickStyle.borderRight = 0\n blobTickStyle.borderLeftColor = color\n } else {\n containerStyle.left = 0\n containerStyle.marginLeft = -pointerSize\n blobTickStyle.borderLeft = 0\n blobTickStyle.borderRightColor = color\n }\n return (\n <BlobTickContainer style={containerStyle}>\n <BlobTick pointerSize={pointerSize} style={blobTickStyle} />\n </BlobTickContainer>\n )\n }\n\n const BotMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,\n getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandImage,\n WEBCHAT.DEFAULTS.LOGO\n )\n )\n const animationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableAnimations,\n true\n )\n\n const resolveCustomTypeName = () =>\n isFromBot && type === INPUT.CUSTOM ? ` ${m.customTypeName}` : ''\n\n const className = `${type}-${from}${resolveCustomTypeName()}`\n return (\n <ConditionalWrapper\n condition={animationsEnabled}\n wrapper={children => <Fade>{children}</Fade>}\n >\n <>\n <MessageContainer\n isfromuser={isFromUser}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.messageStyle),\n }}\n >\n {isFromBot && BotMessageImage && (\n <BotMessageImageContainer\n style={{\n ...getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle\n ),\n ...imagestyle,\n }}\n >\n <img\n style={{ width: '100%' }}\n src={resolveImage(BotMessageImage)}\n />\n </BotMessageImageContainer>\n )}\n <Blob\n className={className}\n bgcolor={getBgColor()}\n color={isFromUser ? COLORS.SOLID_WHITE : COLORS.SOLID_BLACK}\n blobwidth={getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth\n )}\n blob={blob}\n style={{\n ...getMessageStyle(),\n ...style,\n ...{ opacity: ack === 0 ? 0.6 : 1 },\n }}\n {...otherProps}\n >\n {markdown ? (\n <BlobText\n blob={blob}\n dangerouslySetInnerHTML={{\n __html: renderMarkdown(textChildren),\n }}\n markdownstyle={getMarkdownStyle(\n getThemeProperty,\n isFromUser ? COLORS.SEASHELL_WHITE : brandColor\n )}\n />\n ) : (\n <BlobText blob={blob}>{textChildren}</BlobText>\n )}\n {!!buttons.length && (\n <div className='message-buttons-container'>{buttons}</div>\n )}\n {Boolean(blob) && hasBlobTick() && getBlobTick(6)}\n {Boolean(blob) && hasBlobTick() && getBlobTick(5)}\n </Blob>\n </MessageContainer>\n {timestampsEnabled && (\n <MessageTimestamp\n timestamp={m.timestamp}\n style={timestampStyle}\n isfromuser={isFromUser}\n />\n )}\n </>\n </ConditionalWrapper>\n )\n }\n\n const { blob: _blob, json: _json, ...nodeProps } = props\n const renderNode = () =>\n type === INPUT.CUSTOM ? (\n <message\n json={JSON.stringify(_json)}\n typing={typing}\n delay={delay}\n {...nodeProps}\n />\n ) : (\n <message typing={typing} delay={delay} {...nodeProps}>\n {children}\n </message>\n )\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"message.js"}