@botonic/react 0.21.5 → 0.21.7-alpha.0

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 (425) 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 +9 -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 +10 -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 +1 -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 +1 -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 +34 -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 +3 -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 +18 -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 +11 -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.js +47 -0
  143. package/lib/cjs/util/error-boundary.js.map +1 -0
  144. package/lib/cjs/util/index.d.ts +0 -0
  145. package/lib/cjs/util/index.js +2 -0
  146. package/lib/cjs/util/index.js.map +1 -0
  147. package/lib/cjs/util/logs.d.ts +2 -0
  148. package/lib/cjs/util/logs.js +20 -0
  149. package/lib/cjs/util/logs.js.map +1 -0
  150. package/lib/cjs/util/objects.d.ts +3 -0
  151. package/lib/cjs/util/objects.js +44 -0
  152. package/lib/cjs/util/objects.js.map +1 -0
  153. package/lib/cjs/util/react.d.ts +12 -0
  154. package/lib/cjs/util/react.js +42 -0
  155. package/lib/cjs/util/react.js.map +1 -0
  156. package/lib/cjs/util/regexs.d.ts +2 -0
  157. package/lib/cjs/util/regexs.js +23 -0
  158. package/lib/cjs/util/regexs.js.map +1 -0
  159. package/lib/cjs/util/webchat.d.ts +11 -0
  160. package/lib/cjs/util/webchat.js +62 -0
  161. package/lib/cjs/util/webchat.js.map +1 -0
  162. package/lib/cjs/webchat/actions.d.ts +23 -0
  163. package/lib/cjs/webchat/actions.js +27 -0
  164. package/lib/cjs/webchat/actions.js.map +1 -0
  165. package/lib/cjs/webchat/components/attachment.d.ts +5 -0
  166. package/lib/cjs/webchat/components/attachment.js +32 -0
  167. package/lib/cjs/webchat/components/attachment.js.map +1 -0
  168. package/lib/cjs/webchat/components/common.d.ts +1 -0
  169. package/lib/cjs/webchat/components/common.js +13 -0
  170. package/lib/cjs/webchat/components/common.js.map +1 -0
  171. package/lib/cjs/webchat/components/conditional-animation.d.ts +1 -0
  172. package/lib/cjs/webchat/components/conditional-animation.js +18 -0
  173. package/lib/cjs/webchat/components/conditional-animation.js.map +1 -0
  174. package/lib/cjs/webchat/components/emoji-picker.d.ts +5 -0
  175. package/lib/cjs/webchat/components/emoji-picker.js +52 -0
  176. package/lib/cjs/webchat/components/emoji-picker.js.map +1 -0
  177. package/lib/cjs/webchat/components/persistent-menu.d.ts +10 -0
  178. package/lib/cjs/webchat/components/persistent-menu.js +59 -0
  179. package/lib/cjs/webchat/components/persistent-menu.js.map +1 -0
  180. package/lib/cjs/webchat/components/send-button.d.ts +3 -0
  181. package/lib/cjs/webchat/components/send-button.js +24 -0
  182. package/lib/cjs/webchat/components/send-button.js.map +1 -0
  183. package/lib/cjs/webchat/components/styled-scrollbar.d.ts +1 -0
  184. package/lib/cjs/webchat/components/styled-scrollbar.js +54 -0
  185. package/lib/cjs/webchat/components/styled-scrollbar.js.map +1 -0
  186. package/lib/cjs/webchat/components/typing-indicator.d.ts +1 -0
  187. package/lib/cjs/webchat/components/typing-indicator.js +14 -0
  188. package/lib/cjs/webchat/components/typing-indicator.js.map +1 -0
  189. package/lib/cjs/webchat/devices/device-adapter.d.ts +12 -0
  190. package/lib/cjs/webchat/devices/device-adapter.js +47 -0
  191. package/lib/cjs/webchat/devices/device-adapter.js.map +1 -0
  192. package/lib/cjs/webchat/devices/index.d.ts +11 -0
  193. package/lib/cjs/webchat/devices/index.js +23 -0
  194. package/lib/cjs/webchat/devices/index.js.map +1 -0
  195. package/lib/cjs/webchat/devices/scrollbar-controller.d.ts +12 -0
  196. package/lib/cjs/webchat/devices/scrollbar-controller.js +103 -0
  197. package/lib/cjs/webchat/devices/scrollbar-controller.js.map +1 -0
  198. package/lib/cjs/webchat/devices/webchat-resizer.d.ts +9 -0
  199. package/lib/cjs/webchat/devices/webchat-resizer.js +47 -0
  200. package/lib/cjs/webchat/devices/webchat-resizer.js.map +1 -0
  201. package/lib/cjs/webchat/header.d.ts +3 -0
  202. package/lib/cjs/webchat/header.js +95 -0
  203. package/lib/cjs/webchat/header.js.map +1 -0
  204. package/lib/cjs/webchat/hooks.d.ts +80 -0
  205. package/lib/cjs/webchat/hooks.js +218 -0
  206. package/lib/cjs/webchat/hooks.js.map +1 -0
  207. package/lib/cjs/webchat/index.d.ts +4 -0
  208. package/lib/cjs/webchat/index.js +17 -0
  209. package/lib/cjs/webchat/index.js.map +1 -0
  210. package/lib/cjs/webchat/message-list.d.ts +1 -0
  211. package/lib/cjs/webchat/message-list.js +46 -0
  212. package/lib/cjs/webchat/message-list.js.map +1 -0
  213. package/lib/cjs/webchat/messages-reducer.d.ts +1 -0
  214. package/lib/cjs/webchat/messages-reducer.js +58 -0
  215. package/lib/cjs/webchat/messages-reducer.js.map +1 -0
  216. package/lib/cjs/webchat/replies.d.ts +1 -0
  217. package/lib/cjs/webchat/replies.js +46 -0
  218. package/lib/cjs/webchat/replies.js.map +1 -0
  219. package/lib/cjs/webchat/session-view.d.ts +1 -0
  220. package/lib/cjs/webchat/session-view.js +124 -0
  221. package/lib/cjs/webchat/session-view.js.map +1 -0
  222. package/lib/cjs/webchat/use-storage-state-hook.d.ts +1 -0
  223. package/lib/cjs/webchat/use-storage-state-hook.js +32 -0
  224. package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -0
  225. package/lib/cjs/webchat/webchat-dev.d.ts +7 -0
  226. package/lib/cjs/webchat/webchat-dev.js +64 -0
  227. package/lib/cjs/webchat/webchat-dev.js.map +1 -0
  228. package/lib/cjs/webchat/webchat-reducer.d.ts +1 -0
  229. package/lib/cjs/webchat/webchat-reducer.js +48 -0
  230. package/lib/cjs/webchat/webchat-reducer.js.map +1 -0
  231. package/lib/cjs/webchat/webchat.d.ts +3 -0
  232. package/lib/cjs/webchat/webchat.js +703 -0
  233. package/lib/cjs/webchat/webchat.js.map +1 -0
  234. package/lib/cjs/webchat/webview.d.ts +2 -0
  235. package/lib/cjs/webchat/webview.js +92 -0
  236. package/lib/cjs/webchat/webview.js.map +1 -0
  237. package/lib/cjs/webchat-app.d.ts +99 -0
  238. package/lib/cjs/webchat-app.js +269 -0
  239. package/lib/cjs/webchat-app.js.map +1 -0
  240. package/lib/cjs/webview.d.ts +9 -0
  241. package/lib/cjs/webview.js +102 -0
  242. package/lib/cjs/webview.js.map +1 -0
  243. package/package.json +3 -3
  244. package/src/util/environment.js +29 -1
  245. package/lib/app.js +0 -19
  246. package/lib/app.js.map +0 -1
  247. package/lib/assets/attachment-icon.svg +0 -7
  248. package/lib/assets/audio.svg +0 -4
  249. package/lib/assets/botonic_react_logo100x100.png +0 -0
  250. package/lib/assets/document.svg +0 -3
  251. package/lib/assets/emojiButton.svg +0 -6
  252. package/lib/assets/image.svg +0 -4
  253. package/lib/assets/leftArrow.svg +0 -3
  254. package/lib/assets/menuButton.svg +0 -3
  255. package/lib/assets/rightArrow.svg +0 -3
  256. package/lib/assets/send-button.svg +0 -1
  257. package/lib/assets/video.svg +0 -3
  258. package/lib/botonic-tester.js +0 -224
  259. package/lib/botonic-tester.js.map +0 -1
  260. package/lib/components/audio.js +0 -48
  261. package/lib/components/audio.js.map +0 -1
  262. package/lib/components/button.js +0 -224
  263. package/lib/components/button.js.map +0 -1
  264. package/lib/components/buttons-disabler.js +0 -133
  265. package/lib/components/buttons-disabler.js.map +0 -1
  266. package/lib/components/carousel.js +0 -194
  267. package/lib/components/carousel.js.map +0 -1
  268. package/lib/components/components.js.map +0 -1
  269. package/lib/components/custom-message.js +0 -131
  270. package/lib/components/custom-message.js.map +0 -1
  271. package/lib/components/document.js +0 -76
  272. package/lib/components/document.js.map +0 -1
  273. package/lib/components/element.js +0 -69
  274. package/lib/components/element.js.map +0 -1
  275. package/lib/components/handoff.js +0 -69
  276. package/lib/components/handoff.js.map +0 -1
  277. package/lib/components/image.js +0 -91
  278. package/lib/components/image.js.map +0 -1
  279. package/lib/components/index.d.ts +0 -228
  280. package/lib/components/index.js +0 -193
  281. package/lib/components/index.js.map +0 -1
  282. package/lib/components/location.js +0 -69
  283. package/lib/components/location.js.map +0 -1
  284. package/lib/components/markdown.js +0 -108
  285. package/lib/components/markdown.js.map +0 -1
  286. package/lib/components/message-template.js +0 -36
  287. package/lib/components/message-template.js.map +0 -1
  288. package/lib/components/message.js +0 -351
  289. package/lib/components/message.js.map +0 -1
  290. package/lib/components/multichannel/facebook/facebook.js +0 -96
  291. package/lib/components/multichannel/facebook/facebook.js.map +0 -1
  292. package/lib/components/multichannel/index.d.ts +0 -65
  293. package/lib/components/multichannel/index.js +0 -46
  294. package/lib/components/multichannel/index.js.map +0 -1
  295. package/lib/components/multichannel/multichannel-button.js +0 -119
  296. package/lib/components/multichannel/multichannel-button.js.map +0 -1
  297. package/lib/components/multichannel/multichannel-carousel.js +0 -143
  298. package/lib/components/multichannel/multichannel-carousel.js.map +0 -1
  299. package/lib/components/multichannel/multichannel-context.js +0 -24
  300. package/lib/components/multichannel/multichannel-context.js.map +0 -1
  301. package/lib/components/multichannel/multichannel-reply.js +0 -46
  302. package/lib/components/multichannel/multichannel-reply.js.map +0 -1
  303. package/lib/components/multichannel/multichannel-text.js +0 -222
  304. package/lib/components/multichannel/multichannel-text.js.map +0 -1
  305. package/lib/components/multichannel/multichannel-utils.js +0 -126
  306. package/lib/components/multichannel/multichannel-utils.js.map +0 -1
  307. package/lib/components/multichannel/multichannel.js +0 -111
  308. package/lib/components/multichannel/multichannel.js.map +0 -1
  309. package/lib/components/pic.js +0 -50
  310. package/lib/components/pic.js.map +0 -1
  311. package/lib/components/raw.js +0 -70
  312. package/lib/components/raw.js.map +0 -1
  313. package/lib/components/reply.js +0 -107
  314. package/lib/components/reply.js.map +0 -1
  315. package/lib/components/share-button.js +0 -36
  316. package/lib/components/share-button.js.map +0 -1
  317. package/lib/components/subtitle.js +0 -54
  318. package/lib/components/subtitle.js.map +0 -1
  319. package/lib/components/text.js +0 -80
  320. package/lib/components/text.js.map +0 -1
  321. package/lib/components/timestamps.js +0 -69
  322. package/lib/components/timestamps.js.map +0 -1
  323. package/lib/components/title.js +0 -52
  324. package/lib/components/title.js.map +0 -1
  325. package/lib/components/video.js +0 -51
  326. package/lib/components/video.js.map +0 -1
  327. package/lib/components/webchat-settings.js +0 -118
  328. package/lib/components/webchat-settings.js.map +0 -1
  329. package/lib/components/whatsapp-template.js +0 -53
  330. package/lib/components/whatsapp-template.js.map +0 -1
  331. package/lib/constants.js +0 -203
  332. package/lib/constants.js.map +0 -1
  333. package/lib/contexts.js +0 -57
  334. package/lib/contexts.js.map +0 -1
  335. package/lib/dev-app.js +0 -241
  336. package/lib/dev-app.js.map +0 -1
  337. package/lib/index.d.ts +0 -238
  338. package/lib/index.js +0 -131
  339. package/lib/index.js.map +0 -1
  340. package/lib/message-utils.js +0 -149
  341. package/lib/message-utils.js.map +0 -1
  342. package/lib/msg-to-botonic.js +0 -199
  343. package/lib/msg-to-botonic.js.map +0 -1
  344. package/lib/node-app.js +0 -97
  345. package/lib/node-app.js.map +0 -1
  346. package/lib/react-bot.js +0 -167
  347. package/lib/react-bot.js.map +0 -1
  348. package/lib/util/dom.js +0 -84
  349. package/lib/util/dom.js.map +0 -1
  350. package/lib/util/environment.js +0 -42
  351. package/lib/util/environment.js.map +0 -1
  352. package/lib/util/error-boundary.js +0 -105
  353. package/lib/util/error-boundary.js.map +0 -1
  354. package/lib/util/index.d.ts +0 -9
  355. package/lib/util/index.js +0 -2
  356. package/lib/util/index.js.map +0 -1
  357. package/lib/util/logs.js +0 -28
  358. package/lib/util/logs.js.map +0 -1
  359. package/lib/util/objects.js +0 -60
  360. package/lib/util/objects.js.map +0 -1
  361. package/lib/util/react.js +0 -75
  362. package/lib/util/react.js.map +0 -1
  363. package/lib/util/regexs.js +0 -31
  364. package/lib/util/regexs.js.map +0 -1
  365. package/lib/util/webchat.js +0 -92
  366. package/lib/util/webchat.js.map +0 -1
  367. package/lib/webchat/actions.js +0 -53
  368. package/lib/webchat/actions.js.map +0 -1
  369. package/lib/webchat/components/attachment.js +0 -68
  370. package/lib/webchat/components/attachment.js.map +0 -1
  371. package/lib/webchat/components/common.js +0 -29
  372. package/lib/webchat/components/common.js.map +0 -1
  373. package/lib/webchat/components/conditional-animation.js +0 -42
  374. package/lib/webchat/components/conditional-animation.js.map +0 -1
  375. package/lib/webchat/components/emoji-picker.js +0 -89
  376. package/lib/webchat/components/emoji-picker.js.map +0 -1
  377. package/lib/webchat/components/persistent-menu.js +0 -104
  378. package/lib/webchat/components/persistent-menu.js.map +0 -1
  379. package/lib/webchat/components/send-button.js +0 -45
  380. package/lib/webchat/components/send-button.js.map +0 -1
  381. package/lib/webchat/components/styled-scrollbar.js +0 -55
  382. package/lib/webchat/components/styled-scrollbar.js.map +0 -1
  383. package/lib/webchat/components/styled-scrollbar.scss +0 -12
  384. package/lib/webchat/components/typing-indicator.js +0 -27
  385. package/lib/webchat/components/typing-indicator.js.map +0 -1
  386. package/lib/webchat/components/typing-indicator.scss +0 -38
  387. package/lib/webchat/devices/device-adapter.js +0 -82
  388. package/lib/webchat/devices/device-adapter.js.map +0 -1
  389. package/lib/webchat/devices/index.js +0 -32
  390. package/lib/webchat/devices/index.js.map +0 -1
  391. package/lib/webchat/devices/scrollbar-controller.js +0 -152
  392. package/lib/webchat/devices/scrollbar-controller.js.map +0 -1
  393. package/lib/webchat/devices/webchat-resizer.js +0 -76
  394. package/lib/webchat/devices/webchat-resizer.js.map +0 -1
  395. package/lib/webchat/header.js +0 -116
  396. package/lib/webchat/header.js.map +0 -1
  397. package/lib/webchat/hooks.js +0 -359
  398. package/lib/webchat/hooks.js.map +0 -1
  399. package/lib/webchat/index.d.ts +0 -62
  400. package/lib/webchat/index.js +0 -32
  401. package/lib/webchat/index.js.map +0 -1
  402. package/lib/webchat/message-list.js +0 -88
  403. package/lib/webchat/message-list.js.map +0 -1
  404. package/lib/webchat/messages-reducer.js +0 -93
  405. package/lib/webchat/messages-reducer.js.map +0 -1
  406. package/lib/webchat/replies.js +0 -78
  407. package/lib/webchat/replies.js.map +0 -1
  408. package/lib/webchat/session-view.js +0 -106
  409. package/lib/webchat/session-view.js.map +0 -1
  410. package/lib/webchat/use-storage-state-hook.js +0 -60
  411. package/lib/webchat/use-storage-state-hook.js.map +0 -1
  412. package/lib/webchat/webchat-dev.js +0 -109
  413. package/lib/webchat/webchat-dev.js.map +0 -1
  414. package/lib/webchat/webchat-reducer.js +0 -108
  415. package/lib/webchat/webchat-reducer.js.map +0 -1
  416. package/lib/webchat/webchat.js +0 -1108
  417. package/lib/webchat/webchat.js.map +0 -1
  418. package/lib/webchat/webview.js +0 -122
  419. package/lib/webchat/webview.js.map +0 -1
  420. package/lib/webchat-app.js +0 -660
  421. package/lib/webchat-app.js.map +0 -1
  422. package/lib/webchat.template.html +0 -37
  423. package/lib/webview.js +0 -231
  424. package/lib/webview.js.map +0 -1
  425. package/lib/webview.template.html +0 -39
@@ -1,119 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.MultichannelButton = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _contexts = require("../../contexts");
13
-
14
- var _button = require("../button");
15
-
16
- var _multichannelContext = require("./multichannel-context");
17
-
18
- var _multichannelUtils = require("./multichannel-utils");
19
-
20
- 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); }
21
-
22
- 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; }
23
-
24
- var MultichannelButton = function MultichannelButton(props) {
25
- var requestContext = (0, _react.useContext)(_contexts.RequestContext);
26
- var multichannelContext = (0, _react.useContext)(_multichannelContext.MultichannelContext);
27
-
28
- var hasUrl = function hasUrl() {
29
- return Boolean(props.url);
30
- };
31
-
32
- var hasPath = function hasPath() {
33
- return Boolean(props.path);
34
- };
35
-
36
- var hasPayload = function hasPayload() {
37
- return Boolean(props.payload);
38
- };
39
-
40
- var hasPostback = function hasPostback() {
41
- return hasPath() || hasPayload();
42
- };
43
-
44
- var hasWebview = function hasWebview() {
45
- return Boolean(props.webview);
46
- };
47
-
48
- var getUrl = function getUrl() {
49
- return props.url;
50
- };
51
-
52
- var getWebview = function getWebview() {
53
- return props.webview;
54
- };
55
-
56
- var increaseCurrentIndex = function increaseCurrentIndex() {
57
- if (typeof multichannelContext.currentIndex === 'number') {
58
- multichannelContext.currentIndex += 1;
59
- } else if (typeof multichannelContext.currentIndex === 'string') {
60
- var lastChar = multichannelContext.currentIndex.charCodeAt(multichannelContext.currentIndex.length - 1);
61
- multichannelContext.currentIndex = String.fromCharCode(lastChar + 1);
62
- }
63
- };
64
-
65
- var formatIndex = function formatIndex(index) {
66
- var _multichannelContext$;
67
-
68
- var boldIndex = (_multichannelContext$ = multichannelContext.boldIndex) !== null && _multichannelContext$ !== void 0 ? _multichannelContext$ : false;
69
- return boldIndex ? "*".concat(index, "*") : index;
70
- };
71
-
72
- var getText = function getText() {
73
- var text = props.children;
74
- var newline = props.newline || '';
75
- var separator = multichannelContext.indexSeparator || ' ';
76
- var index = multichannelContext.currentIndex ? "".concat(formatIndex(multichannelContext.currentIndex + separator), " ") : '';
77
-
78
- if (hasPostback()) {
79
- text = newline + "".concat(index).concat(text);
80
- } else if (hasUrl()) {
81
- text = newline + "- ".concat(text);
82
- }
83
-
84
- return text;
85
- };
86
-
87
- var truncateText = function truncateText(text, maxLength) {
88
- var ellipsis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '...';
89
-
90
- if (text.length > maxLength) {
91
- return text.substring(0, maxLength - ellipsis.length) + ellipsis;
92
- }
93
-
94
- return text;
95
- };
96
-
97
- if ((0, _multichannelUtils.isWhatsapp)(requestContext)) {
98
- var _props$asText;
99
-
100
- var asText = (_props$asText = props.asText) !== null && _props$asText !== void 0 ? _props$asText : true;
101
-
102
- if (asText) {
103
- if (hasUrl()) {
104
- return "".concat(getText(), ": ").concat(getUrl());
105
- } else if (hasPath() || hasPayload()) {
106
- var text = getText();
107
- increaseCurrentIndex();
108
- return "".concat(text);
109
- } else if (hasWebview()) return /*#__PURE__*/_react["default"].createElement(_button.Button, props, getText());
110
- }
111
-
112
- return /*#__PURE__*/_react["default"].createElement(_button.Button, props, truncateText(props.children, _multichannelUtils.WHATSAPP_MAX_BUTTON_CHARS));
113
- }
114
-
115
- return /*#__PURE__*/_react["default"].createElement(_button.Button, props, props.children);
116
- };
117
-
118
- exports.MultichannelButton = MultichannelButton;
119
- //# sourceMappingURL=multichannel-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-button.jsx"],"names":["MultichannelButton","props","requestContext","RequestContext","multichannelContext","MultichannelContext","hasUrl","Boolean","url","hasPath","path","hasPayload","payload","hasPostback","hasWebview","webview","getUrl","getWebview","increaseCurrentIndex","currentIndex","lastChar","charCodeAt","length","String","fromCharCode","formatIndex","index","boldIndex","getText","text","children","newline","separator","indexSeparator","truncateText","maxLength","ellipsis","substring","asText","WHATSAPP_MAX_BUTTON_CHARS"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { Button } from '../button'\nimport { MultichannelContext } from './multichannel-context'\nimport { isWhatsapp, WHATSAPP_MAX_BUTTON_CHARS } from './multichannel-utils'\n\nexport const MultichannelButton = props => {\n const requestContext = useContext(RequestContext)\n const multichannelContext = useContext(MultichannelContext)\n\n const hasUrl = () => Boolean(props.url)\n\n const hasPath = () => Boolean(props.path)\n\n const hasPayload = () => Boolean(props.payload)\n\n const hasPostback = () => hasPath() || hasPayload()\n\n const hasWebview = () => Boolean(props.webview)\n\n const getUrl = () => props.url\n const getWebview = () => props.webview\n\n const increaseCurrentIndex = () => {\n if (typeof multichannelContext.currentIndex === 'number') {\n multichannelContext.currentIndex += 1\n } else if (typeof multichannelContext.currentIndex === 'string') {\n const lastChar = multichannelContext.currentIndex.charCodeAt(\n multichannelContext.currentIndex.length - 1\n )\n multichannelContext.currentIndex = String.fromCharCode(lastChar + 1)\n }\n }\n\n const formatIndex = index => {\n const boldIndex = multichannelContext.boldIndex ?? false\n return boldIndex ? `*${index}*` : index\n }\n\n const getText = () => {\n let text = props.children\n const newline = props.newline || ''\n const separator = multichannelContext.indexSeparator || ' '\n const index = multichannelContext.currentIndex\n ? `${formatIndex(multichannelContext.currentIndex + separator)} `\n : ''\n if (hasPostback()) {\n text = newline + `${index}${text}`\n } else if (hasUrl()) {\n text = newline + `- ${text}`\n }\n return text\n }\n\n const truncateText = (text, maxLength, ellipsis = '...') => {\n if (text.length > maxLength) {\n return text.substring(0, maxLength - ellipsis.length) + ellipsis\n }\n return text\n }\n\n if (isWhatsapp(requestContext)) {\n const asText = props.asText ?? true\n if (asText) {\n if (hasUrl()) {\n return `${getText()}: ${getUrl()}`\n } else if (hasPath() || hasPayload()) {\n const text = getText()\n increaseCurrentIndex()\n return `${text}`\n } else if (hasWebview()) return <Button {...props}>{getText()}</Button>\n }\n return (\n <Button {...props}>\n {truncateText(props.children, WHATSAPP_MAX_BUTTON_CHARS)}\n </Button>\n )\n }\n return <Button {...props}>{props.children}</Button>\n}\n"],"file":"multichannel-button.js"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.MultichannelCarousel = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _contexts = require("../../contexts");
13
-
14
- var _carousel = require("../carousel");
15
-
16
- var _multichannelText = require("./multichannel-text");
17
-
18
- var _multichannelUtils = require("./multichannel-utils");
19
-
20
- 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); }
21
-
22
- 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; }
23
-
24
- 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; } } }; }
25
-
26
- 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); }
27
-
28
- 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; }
29
-
30
- var MultichannelCarousel = function MultichannelCarousel(props) {
31
- var requestContext = (0, _react.useContext)(_contexts.RequestContext);
32
-
33
- var getButtons = function getButtons(node) {
34
- return [].concat((0, _multichannelUtils.getFilteredElements)(node, _multichannelUtils.isMultichannelButton));
35
- };
36
-
37
- if ((0, _multichannelUtils.isWhatsapp)(requestContext)) {
38
- var elements = props.children.map(function (e) {
39
- return e.props.children;
40
- }).map(function (element, i) {
41
- var imageProps = undefined;
42
- var title = undefined;
43
- var subtitle = undefined;
44
- var buttons = [];
45
-
46
- var _iterator = _createForOfIteratorHelper(element),
47
- _step;
48
-
49
- try {
50
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
51
- var node = _step.value;
52
-
53
- if ((0, _multichannelUtils.isNodeKind)(node, 'Pic')) {
54
- imageProps = node.props;
55
- }
56
-
57
- if ((0, _multichannelUtils.isNodeKind)(node, 'Title')) {
58
- title = node.props.children;
59
- }
60
-
61
- if ((0, _multichannelUtils.isNodeKind)(node, 'Subtitle')) {
62
- subtitle = node.props.children;
63
- }
64
-
65
- if ((0, _multichannelUtils.isNodeKind)(node, 'MultichannelButton')) {
66
- buttons.push(node);
67
- } //TODO support fragment containing an array
68
-
69
-
70
- if (Array.isArray(node)) {
71
- buttons.push(getButtons(node));
72
- }
73
- }
74
- } catch (err) {
75
- _iterator.e(err);
76
- } finally {
77
- _iterator.f();
78
- }
79
-
80
- var header = '';
81
-
82
- if (props.showTitle && title) {
83
- header += "".concat(title ? "*".concat(title, "*") : '');
84
-
85
- if (title && subtitle) {
86
- header += ' ';
87
- }
88
- }
89
-
90
- if (props.showSubtitle && subtitle) {
91
- header += "_".concat(subtitle, "_");
92
- }
93
-
94
- return (
95
- /*#__PURE__*/
96
- // TODO: newkey only for 1 nested button
97
- _react["default"].createElement(_multichannelText.MultichannelText, {
98
- key: i,
99
- newkey: i,
100
- indexMode: props.indexMode,
101
- buttonsAsText: props.buttonsAsText
102
- }, header || null, buttons)
103
- ); // TODO: in the future, this would be the default mode
104
- // } else {
105
- // return (
106
- // <React.Fragment key={i}>
107
- // <Image
108
- // src={imageSrc}
109
- // caption={carouselToCaption(
110
- // i + 1,
111
- // title,
112
- // subtitle,
113
- // imageSrc,
114
- // buttonProps
115
- // )}
116
- // ></Image>
117
- // </React.Fragment>
118
- // )
119
- // }
120
- });
121
- return elements;
122
- } else {
123
- return /*#__PURE__*/_react["default"].createElement(_carousel.Carousel, props, props.children);
124
- }
125
- }; // const carouselToCaption = (index, title, subtitle, imageSrc, buttonProps) => {
126
- // let caption = ''
127
- // let header = `${title ? `*${title}*` : ''}`
128
- // header += `${subtitle ? ` - _${subtitle}_` : ''}`
129
- // let buttons = ''
130
- // if (buttonProps.url) {
131
- // buttons += ` - ${buttonProps.children}: ${buttonProps.url}`
132
- // caption = `${header ? `${header}\n` : ''}${buttons}`
133
- // }
134
- // if (buttonProps.payload || buttonProps.path) {
135
- // buttons += `${index}. `
136
- // caption = `${buttons}${buttonProps.children}`
137
- // }
138
- // return caption
139
- // }
140
-
141
-
142
- exports.MultichannelCarousel = MultichannelCarousel;
143
- //# sourceMappingURL=multichannel-carousel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-carousel.jsx"],"names":["MultichannelCarousel","props","requestContext","RequestContext","getButtons","node","concat","isMultichannelButton","elements","children","map","e","element","i","imageProps","undefined","title","subtitle","buttons","push","Array","isArray","header","showTitle","showSubtitle","indexMode","buttonsAsText"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAOO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAC,KAAK,EAAI;AAC3C,MAAMC,cAAc,GAAG,uBAAWC,wBAAX,CAAvB;;AAEA,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,IAAI;AAAA,WACrB,GAAGC,MAAH,CAAU,4CAAoBD,IAApB,EAA0BE,uCAA1B,CAAV,CADqB;AAAA,GAAvB;;AAGA,MAAI,mCAAWL,cAAX,CAAJ,EAAgC;AAC9B,QAAMM,QAAQ,GAAGP,KAAK,CAACQ,QAAN,CACdC,GADc,CACV,UAAAC,CAAC;AAAA,aAAIA,CAAC,CAACV,KAAF,CAAQQ,QAAZ;AAAA,KADS,EAEdC,GAFc,CAEV,UAACE,OAAD,EAAUC,CAAV,EAAgB;AACnB,UAAIC,UAAU,GAAGC,SAAjB;AACA,UAAIC,KAAK,GAAGD,SAAZ;AACA,UAAIE,QAAQ,GAAGF,SAAf;AACA,UAAMG,OAAO,GAAG,EAAhB;;AAJmB,iDAMAN,OANA;AAAA;;AAAA;AAMnB,4DAA4B;AAAA,cAAjBP,IAAiB;;AAC1B,cAAI,mCAAWA,IAAX,EAAiB,KAAjB,CAAJ,EAA6B;AAC3BS,YAAAA,UAAU,GAAGT,IAAI,CAACJ,KAAlB;AACD;;AACD,cAAI,mCAAWI,IAAX,EAAiB,OAAjB,CAAJ,EAA+B;AAC7BW,YAAAA,KAAK,GAAGX,IAAI,CAACJ,KAAL,CAAWQ,QAAnB;AACD;;AACD,cAAI,mCAAWJ,IAAX,EAAiB,UAAjB,CAAJ,EAAkC;AAChCY,YAAAA,QAAQ,GAAGZ,IAAI,CAACJ,KAAL,CAAWQ,QAAtB;AACD;;AAED,cAAI,mCAAWJ,IAAX,EAAiB,oBAAjB,CAAJ,EAA4C;AAC1Ca,YAAAA,OAAO,CAACC,IAAR,CAAad,IAAb;AACD,WAbyB,CAc1B;;;AACA,cAAIe,KAAK,CAACC,OAAN,CAAchB,IAAd,CAAJ,EAAyB;AACvBa,YAAAA,OAAO,CAACC,IAAR,CAAaf,UAAU,CAACC,IAAD,CAAvB;AACD;AACF;AAxBkB;AAAA;AAAA;AAAA;AAAA;;AA0BnB,UAAIiB,MAAM,GAAG,EAAb;;AACA,UAAIrB,KAAK,CAACsB,SAAN,IAAmBP,KAAvB,EAA8B;AAC5BM,QAAAA,MAAM,cAAON,KAAK,cAAOA,KAAP,SAAkB,EAA9B,CAAN;;AACA,YAAIA,KAAK,IAAIC,QAAb,EAAuB;AACrBK,UAAAA,MAAM,IAAI,GAAV;AACD;AACF;;AACD,UAAIrB,KAAK,CAACuB,YAAN,IAAsBP,QAA1B,EAAoC;AAClCK,QAAAA,MAAM,eAAQL,QAAR,MAAN;AACD;;AAED;AAAA;AACE;AACA,wCAAC,kCAAD;AACE,UAAA,GAAG,EAAEJ,CADP;AAEE,UAAA,MAAM,EAAEA,CAFV;AAGE,UAAA,SAAS,EAAEZ,KAAK,CAACwB,SAHnB;AAIE,UAAA,aAAa,EAAExB,KAAK,CAACyB;AAJvB,WAMGJ,MAAM,IAAI,IANb,EAOGJ,OAPH;AAFF,QArCmB,CAkDnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD,KArEc,CAAjB;AAsEA,WAAOV,QAAP;AACD,GAxED,MAwEO;AACL,wBAAO,gCAAC,kBAAD,EAAcP,KAAd,EAAsBA,KAAK,CAACQ,QAA5B,CAAP;AACD;AACF,CAjFM,C,CAmFP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["import React, { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { Carousel } from '../carousel'\nimport { MultichannelText } from './multichannel-text'\nimport {\n getFilteredElements,\n isMultichannelButton,\n isNodeKind,\n isWhatsapp,\n} from './multichannel-utils'\n\nexport const MultichannelCarousel = props => {\n const requestContext = useContext(RequestContext)\n\n const getButtons = node =>\n [].concat(getFilteredElements(node, isMultichannelButton))\n\n if (isWhatsapp(requestContext)) {\n const elements = props.children\n .map(e => e.props.children)\n .map((element, i) => {\n let imageProps = undefined\n let title = undefined\n let subtitle = undefined\n const buttons = []\n\n for (const node of element) {\n if (isNodeKind(node, 'Pic')) {\n imageProps = node.props\n }\n if (isNodeKind(node, 'Title')) {\n title = node.props.children\n }\n if (isNodeKind(node, 'Subtitle')) {\n subtitle = node.props.children\n }\n\n if (isNodeKind(node, 'MultichannelButton')) {\n buttons.push(node)\n }\n //TODO support fragment containing an array\n if (Array.isArray(node)) {\n buttons.push(getButtons(node))\n }\n }\n\n let header = ''\n if (props.showTitle && title) {\n header += `${title ? `*${title}*` : ''}`\n if (title && subtitle) {\n header += ' '\n }\n }\n if (props.showSubtitle && subtitle) {\n header += `_${subtitle}_`\n }\n\n return (\n // TODO: newkey only for 1 nested button\n <MultichannelText\n key={i}\n newkey={i}\n indexMode={props.indexMode}\n buttonsAsText={props.buttonsAsText}\n >\n {header || null}\n {buttons}\n </MultichannelText>\n )\n\n // TODO: in the future, this would be the default mode\n // } else {\n // return (\n // <React.Fragment key={i}>\n // <Image\n // src={imageSrc}\n // caption={carouselToCaption(\n // i + 1,\n // title,\n // subtitle,\n // imageSrc,\n // buttonProps\n // )}\n // ></Image>\n // </React.Fragment>\n // )\n // }\n })\n return elements\n } else {\n return <Carousel {...props}>{props.children}</Carousel>\n }\n}\n\n// const carouselToCaption = (index, title, subtitle, imageSrc, buttonProps) => {\n// let caption = ''\n// let header = `${title ? `*${title}*` : ''}`\n// header += `${subtitle ? ` - _${subtitle}_` : ''}`\n// let buttons = ''\n// if (buttonProps.url) {\n// buttons += ` - ${buttonProps.children}: ${buttonProps.url}`\n// caption = `${header ? `${header}\\n` : ''}${buttons}`\n// }\n// if (buttonProps.payload || buttonProps.path) {\n// buttons += `${index}. `\n// caption = `${buttons}${buttonProps.children}`\n// }\n// return caption\n// }\n"],"file":"multichannel-carousel.js"}
@@ -1,24 +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.MultichannelContext = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var MultichannelContext = /*#__PURE__*/_react["default"].createContext({
13
- boldIndex: true,
14
- carousel: {
15
- indexMode: undefined
16
- },
17
- text: {
18
- indexMode: 'letter'
19
- },
20
- indexSeparator: '.'
21
- });
22
-
23
- exports.MultichannelContext = MultichannelContext;
24
- //# sourceMappingURL=multichannel-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-context.jsx"],"names":["MultichannelContext","React","createContext","boldIndex","carousel","indexMode","undefined","text","indexSeparator"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,mBAAmB,gBAAGC,kBAAMC,aAAN,CAAoB;AACrDC,EAAAA,SAAS,EAAE,IAD0C;AAErDC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAEC;AADH,GAF2C;AAKrDC,EAAAA,IAAI,EAAE;AACJF,IAAAA,SAAS,EAAE;AADP,GAL+C;AAQrDG,EAAAA,cAAc,EAAE;AARqC,CAApB,CAA5B","sourcesContent":["import React from 'react'\n\nexport const MultichannelContext = React.createContext({\n boldIndex: true,\n carousel: {\n indexMode: undefined,\n },\n text: {\n indexMode: 'letter',\n },\n indexSeparator: '.',\n})\n"],"file":"multichannel-context.js"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.MultichannelReply = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _contexts = require("../../contexts");
13
-
14
- var _reply = require("../reply");
15
-
16
- var _multichannelUtils = require("./multichannel-utils");
17
-
18
- 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); }
19
-
20
- 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; }
21
-
22
- var MultichannelReply = function MultichannelReply(props) {
23
- var requestContext = (0, _react.useContext)(_contexts.RequestContext);
24
-
25
- var hasPath = function hasPath() {
26
- return Boolean(props.path);
27
- };
28
-
29
- var hasPayload = function hasPayload() {
30
- return Boolean(props.payload);
31
- };
32
-
33
- var getText = function getText() {
34
- return "".concat(props.children);
35
- };
36
-
37
- if ((0, _multichannelUtils.isWhatsapp)(requestContext)) {
38
- if (hasPath() || hasPayload()) return "".concat(getText());
39
- return null;
40
- } else {
41
- return /*#__PURE__*/_react["default"].createElement(_reply.Reply, props, props.children);
42
- }
43
- };
44
-
45
- exports.MultichannelReply = MultichannelReply;
46
- //# sourceMappingURL=multichannel-reply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-reply.jsx"],"names":["MultichannelReply","props","requestContext","RequestContext","hasPath","Boolean","path","hasPayload","payload","getText","children"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;;;;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,KAAK,EAAI;AACxC,MAAMC,cAAc,GAAG,uBAAWC,wBAAX,CAAvB;;AACA,MAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,WAAMC,OAAO,CAACJ,KAAK,CAACK,IAAP,CAAb;AAAA,GAAhB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAMF,OAAO,CAACJ,KAAK,CAACO,OAAP,CAAb;AAAA,GAAnB;;AACA,MAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,qBAASR,KAAK,CAACS,QAAf;AAAA,GAAhB;;AAEA,MAAI,mCAAWR,cAAX,CAAJ,EAAgC;AAC9B,QAAIE,OAAO,MAAMG,UAAU,EAA3B,EAA+B,iBAAUE,OAAO,EAAjB;AAC/B,WAAO,IAAP;AACD,GAHD,MAGO;AACL,wBAAO,gCAAC,YAAD,EAAWR,KAAX,EAAmBA,KAAK,CAACS,QAAzB,CAAP;AACD;AACF,CAZM","sourcesContent":["import React, { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { Reply } from '../reply'\nimport { isWhatsapp } from './multichannel-utils'\n\nexport const MultichannelReply = props => {\n const requestContext = useContext(RequestContext)\n const hasPath = () => Boolean(props.path)\n const hasPayload = () => Boolean(props.payload)\n const getText = () => `${props.children}`\n\n if (isWhatsapp(requestContext)) {\n if (hasPath() || hasPayload()) return `${getText()}`\n return null\n } else {\n return <Reply {...props}>{props.children}</Reply>\n }\n}\n"],"file":"multichannel-reply.js"}
@@ -1,222 +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.MultichannelText = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _contexts = require("../../contexts");
19
-
20
- var _text = require("../text");
21
-
22
- var _facebook = require("./facebook/facebook");
23
-
24
- var _multichannelButton = require("./multichannel-button");
25
-
26
- var _multichannelContext = require("./multichannel-context");
27
-
28
- var _multichannelUtils = require("./multichannel-utils");
29
-
30
- 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); }
31
-
32
- 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; }
33
-
34
- 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; } } }; }
35
-
36
- 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); }
37
-
38
- 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; }
39
-
40
- var MultichannelText = function MultichannelText(props) {
41
- var _props$buttonsAsText;
42
-
43
- var requestContext = (0, _react.useContext)(_contexts.RequestContext);
44
- var multichannelContext = (0, _react.useContext)(_multichannelContext.MultichannelContext);
45
- var postbackButtonsAsText = (_props$buttonsAsText = props.buttonsAsText) !== null && _props$buttonsAsText !== void 0 ? _props$buttonsAsText : true;
46
- var elements = [];
47
-
48
- var getText = function getText(children) {
49
- children = Array.isArray(children) ? children : [children];
50
- var text = children.filter(function (e) {
51
- return e && !e.type;
52
- }).map(function (e) {
53
- if (Array.isArray(e)) return getText(e);else return String(e);
54
- }).join('');
55
-
56
- if (text == undefined) {
57
- return [];
58
- }
59
-
60
- return [text].filter(function (t) {
61
- return t !== '';
62
- }); // to avoid line breaks when the carousel doesn't have title or subtitle
63
- };
64
-
65
- var getButtonsAndReplies = function getButtonsAndReplies() {
66
- return [].concat((0, _multichannelUtils.getMultichannelButtons)(_react["default"].Children.toArray(props.children)), (0, _multichannelUtils.getMultichannelReplies)(_react["default"].Children.toArray(props.children)));
67
- };
68
-
69
- var getWhatsappButtons = function getWhatsappButtons() {
70
- var postbackButtons = [];
71
- var urlButtons = [];
72
- var webviewButtons = [];
73
-
74
- var _iterator = _createForOfIteratorHelper(getButtonsAndReplies()),
75
- _step;
76
-
77
- try {
78
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
79
- var button = _step.value;
80
- if ((0, _multichannelUtils.elementHasUrl)(button)) urlButtons.push(button);
81
- if ((0, _multichannelUtils.elementHasPostback)(button)) postbackButtons.push(button);
82
- if ((0, _multichannelUtils.elementHasWebview)(button)) webviewButtons.push(button);
83
- }
84
- } catch (err) {
85
- _iterator.e(err);
86
- } finally {
87
- _iterator.f();
88
- }
89
-
90
- return {
91
- postbackButtons: postbackButtons,
92
- urlButtons: urlButtons,
93
- webviewButtons: webviewButtons
94
- };
95
- };
96
-
97
- var getDefaultIndex = function getDefaultIndex() {
98
- if (props.indexMode == undefined) {
99
- return undefined;
100
- }
101
-
102
- if (multichannelContext.currentIndex != null) {
103
- return multichannelContext.currentIndex;
104
- }
105
-
106
- return props.indexMode === 'letter' ? 'a' : 1;
107
- };
108
-
109
- var regenerateMultichannelButtons = function regenerateMultichannelButtons() {
110
- var newLineFirstButton = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
111
-
112
- var generator = function generator(multichannelButton, i) {
113
- var type = (0, _multichannelUtils.getButtonType)(multichannelButton);
114
- var asText = type === _multichannelUtils.buttonTypes.POSTBACK ? postbackButtonsAsText : true;
115
- var newline = multichannelContext.messageSeparator == null && !newLineFirstButton && i === 0 ? '' : '\n';
116
- return /*#__PURE__*/_react["default"].createElement(_multichannelButton.MultichannelButton, (0, _extends2["default"])({
117
- key: "".concat(type).concat(i),
118
- newline: newline,
119
- asText: asText
120
- }, multichannelButton.props), multichannelButton.props.children);
121
- };
122
-
123
- return generator;
124
- };
125
-
126
- var splitPostbackButtons = function splitPostbackButtons(postbackButtons) {
127
- var messages = [];
128
-
129
- for (var i = 0; i < postbackButtons.length; i += _multichannelUtils.WHATSAPP_MAX_BUTTONS) {
130
- messages.push(postbackButtons.slice(i, i + _multichannelUtils.WHATSAPP_MAX_BUTTONS));
131
- }
132
-
133
- return messages;
134
- };
135
-
136
- if ((0, _multichannelUtils.isWhatsapp)(requestContext)) {
137
- var texts = getText(props.children);
138
-
139
- var _getWhatsappButtons = getWhatsappButtons(),
140
- postbackButtons = _getWhatsappButtons.postbackButtons,
141
- urlButtons = _getWhatsappButtons.urlButtons,
142
- webviewButtons = _getWhatsappButtons.webviewButtons;
143
-
144
- var textElements = texts.map(function (text) {
145
- return (props.newline || '') + text;
146
- });
147
- var webviewButtonElements = webviewButtons.map(regenerateMultichannelButtons(false));
148
- var buttonsTextSeparator = props.buttonsTextSeparator || _multichannelUtils.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR;
149
-
150
- if (!postbackButtonsAsText && postbackButtons.length > _multichannelUtils.WHATSAPP_MAX_BUTTONS) {
151
- var _urlButtonElements = urlButtons.map(regenerateMultichannelButtons(!!texts.length));
152
-
153
- var _postbackButtonElements = postbackButtons.map(regenerateMultichannelButtons(!!texts.length || !!urlButtons.length));
154
-
155
- var messagesPostbackButtons = splitPostbackButtons(_postbackButtonElements);
156
-
157
- var _messages = messagesPostbackButtons.map(function (postbackButtons, i) {
158
- if (i === 0) {
159
- var _ref;
160
-
161
- return (_ref = []).concat.apply(_ref, (0, _toConsumableArray2["default"])(textElements).concat((0, _toConsumableArray2["default"])(_urlButtonElements), (0, _toConsumableArray2["default"])(postbackButtons)));
162
- } else {
163
- var _ref2;
164
-
165
- return (_ref2 = []).concat.apply(_ref2, [buttonsTextSeparator].concat((0, _toConsumableArray2["default"])(postbackButtons)));
166
- }
167
- });
168
-
169
- if (webviewButtonElements.length) {
170
- _messages.push([buttonsTextSeparator].concat((0, _toConsumableArray2["default"])(webviewButtonElements)));
171
- }
172
-
173
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _messages.map(function (message, i) {
174
- return /*#__PURE__*/_react["default"].createElement(_text.Text, (0, _extends2["default"])({
175
- key: i
176
- }, _multichannelUtils.MULTICHANNEL_WHATSAPP_PROPS, props), message);
177
- }));
178
- }
179
-
180
- multichannelContext.currentIndex = getDefaultIndex();
181
- var postbackButtonElements = postbackButtons.map(regenerateMultichannelButtons(!!texts.length));
182
- var urlButtonElements = urlButtons.map(regenerateMultichannelButtons(!!texts.length || !!postbackButtons.length));
183
- elements = [].concat((0, _toConsumableArray2["default"])(textElements), (0, _toConsumableArray2["default"])(postbackButtonElements), (0, _toConsumableArray2["default"])(urlButtonElements));
184
-
185
- if (multichannelContext.messageSeparator != null) {
186
- return elements;
187
- }
188
-
189
- var messages = [/*#__PURE__*/_react["default"].createElement(_text.Text, (0, _extends2["default"])({
190
- key: 0
191
- }, _multichannelUtils.MULTICHANNEL_WHATSAPP_PROPS, props), elements)];
192
-
193
- if (webviewButtonElements.length) {
194
- messages.push( /*#__PURE__*/_react["default"].createElement(_text.Text, (0, _extends2["default"])({
195
- key: 1
196
- }, _multichannelUtils.MULTICHANNEL_WHATSAPP_PROPS, props), buttonsTextSeparator, webviewButtonElements));
197
- }
198
-
199
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, messages);
200
- }
201
-
202
- if ((0, _multichannelUtils.isFacebook)(requestContext)) {
203
- var text = getText(props.children);
204
- var multichannelFacebook = new _facebook.MultichannelFacebook();
205
-
206
- var _multichannelFacebook = multichannelFacebook.convertText(props, text[0]),
207
- _texts = _multichannelFacebook.texts,
208
- propsLastText = _multichannelFacebook.propsLastText,
209
- propsWithoutChildren = _multichannelFacebook.propsWithoutChildren;
210
-
211
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _texts && _texts.map(function (e, i) {
212
- return /*#__PURE__*/_react["default"].createElement(_text.Text, (0, _extends2["default"])({
213
- key: i
214
- }, propsWithoutChildren), e);
215
- }), /*#__PURE__*/_react["default"].createElement(_text.Text, propsLastText, propsLastText.children));
216
- } else {
217
- return /*#__PURE__*/_react["default"].createElement(_text.Text, props, props.children);
218
- }
219
- };
220
-
221
- exports.MultichannelText = MultichannelText;
222
- //# sourceMappingURL=multichannel-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-text.jsx"],"names":["MultichannelText","props","requestContext","RequestContext","multichannelContext","MultichannelContext","postbackButtonsAsText","buttonsAsText","elements","getText","children","Array","isArray","text","filter","e","type","map","String","join","undefined","t","getButtonsAndReplies","concat","React","Children","toArray","getWhatsappButtons","postbackButtons","urlButtons","webviewButtons","button","push","getDefaultIndex","indexMode","currentIndex","regenerateMultichannelButtons","newLineFirstButton","generator","multichannelButton","i","asText","buttonTypes","POSTBACK","newline","messageSeparator","splitPostbackButtons","messages","length","WHATSAPP_MAX_BUTTONS","slice","texts","textElements","webviewButtonElements","buttonsTextSeparator","DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR","urlButtonElements","postbackButtonElements","messagesPostbackButtons","message","MULTICHANNEL_WHATSAPP_PROPS","multichannelFacebook","MultichannelFacebook","convertText","propsLastText","propsWithoutChildren"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { Text } from '../text'\nimport { MultichannelFacebook } from './facebook/facebook'\nimport { MultichannelButton } from './multichannel-button'\nimport { MultichannelContext } from './multichannel-context'\nimport {\n buttonTypes,\n DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR,\n elementHasPostback,\n elementHasUrl,\n elementHasWebview,\n getButtonType,\n getMultichannelButtons,\n getMultichannelReplies,\n isFacebook,\n isWhatsapp,\n MULTICHANNEL_WHATSAPP_PROPS,\n WHATSAPP_MAX_BUTTONS,\n} from './multichannel-utils'\n\nexport const MultichannelText = props => {\n const requestContext = useContext(RequestContext)\n const multichannelContext = useContext(MultichannelContext)\n const postbackButtonsAsText = props.buttonsAsText ?? true\n\n let elements = []\n\n const getText = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => e && !e.type)\n .map(e => {\n if (Array.isArray(e)) return getText(e)\n else return String(e)\n })\n .join('')\n if (text == undefined) {\n return []\n }\n return [text].filter(t => t !== '') // to avoid line breaks when the carousel doesn't have title or subtitle\n }\n\n const getButtonsAndReplies = () =>\n [].concat(\n getMultichannelButtons(React.Children.toArray(props.children)),\n getMultichannelReplies(React.Children.toArray(props.children))\n )\n\n const getWhatsappButtons = () => {\n const postbackButtons = []\n const urlButtons = []\n const webviewButtons = []\n for (const button of getButtonsAndReplies()) {\n if (elementHasUrl(button)) urlButtons.push(button)\n if (elementHasPostback(button)) postbackButtons.push(button)\n if (elementHasWebview(button)) webviewButtons.push(button)\n }\n return { postbackButtons, urlButtons, webviewButtons }\n }\n\n const getDefaultIndex = () => {\n if (props.indexMode == undefined) {\n return undefined\n }\n if (multichannelContext.currentIndex != null) {\n return multichannelContext.currentIndex\n }\n return props.indexMode === 'letter' ? 'a' : 1\n }\n\n const regenerateMultichannelButtons = (newLineFirstButton = true) => {\n const generator = (multichannelButton, i) => {\n const type = getButtonType(multichannelButton)\n const asText =\n type === buttonTypes.POSTBACK ? postbackButtonsAsText : true\n const newline =\n multichannelContext.messageSeparator == null &&\n !newLineFirstButton &&\n i === 0\n ? ''\n : '\\n'\n return (\n <MultichannelButton\n key={`${type}${i}`}\n newline={newline}\n asText={asText}\n {...multichannelButton.props}\n >\n {multichannelButton.props.children}\n </MultichannelButton>\n )\n }\n return generator\n }\n\n const splitPostbackButtons = postbackButtons => {\n const messages = []\n for (let i = 0; i < postbackButtons.length; i += WHATSAPP_MAX_BUTTONS) {\n messages.push(postbackButtons.slice(i, i + WHATSAPP_MAX_BUTTONS))\n }\n return messages\n }\n\n if (isWhatsapp(requestContext)) {\n const texts = getText(props.children)\n const { postbackButtons, urlButtons, webviewButtons } = getWhatsappButtons()\n\n const textElements = texts.map(text => {\n return (props.newline || '') + text\n })\n\n const webviewButtonElements = webviewButtons.map(\n regenerateMultichannelButtons(false)\n )\n\n const buttonsTextSeparator =\n props.buttonsTextSeparator || DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR\n\n if (\n !postbackButtonsAsText &&\n postbackButtons.length > WHATSAPP_MAX_BUTTONS\n ) {\n const urlButtonElements = urlButtons.map(\n regenerateMultichannelButtons(!!texts.length)\n )\n const postbackButtonElements = postbackButtons.map(\n regenerateMultichannelButtons(!!texts.length || !!urlButtons.length)\n )\n const messagesPostbackButtons = splitPostbackButtons(\n postbackButtonElements\n )\n\n const messages = messagesPostbackButtons.map((postbackButtons, i) => {\n if (i === 0) {\n return [].concat(\n ...textElements,\n ...urlButtonElements,\n ...postbackButtons\n )\n } else {\n return [].concat(buttonsTextSeparator, ...postbackButtons)\n }\n })\n if (webviewButtonElements.length) {\n messages.push([buttonsTextSeparator, ...webviewButtonElements])\n }\n\n return (\n <>\n {messages.map((message, i) => (\n <Text key={i} {...MULTICHANNEL_WHATSAPP_PROPS} {...props}>\n {message}\n </Text>\n ))}\n </>\n )\n }\n\n multichannelContext.currentIndex = getDefaultIndex()\n const postbackButtonElements = postbackButtons.map(\n regenerateMultichannelButtons(!!texts.length)\n )\n const urlButtonElements = urlButtons.map(\n regenerateMultichannelButtons(!!texts.length || !!postbackButtons.length)\n )\n\n elements = [].concat(\n [...textElements],\n [...postbackButtonElements],\n [...urlButtonElements]\n )\n if (multichannelContext.messageSeparator != null) {\n return elements\n }\n const messages = [\n <Text key={0} {...MULTICHANNEL_WHATSAPP_PROPS} {...props}>\n {elements}\n </Text>,\n ]\n if (webviewButtonElements.length) {\n messages.push(\n <Text key={1} {...MULTICHANNEL_WHATSAPP_PROPS} {...props}>\n {buttonsTextSeparator}\n {webviewButtonElements}\n </Text>\n )\n }\n\n return <>{messages}</>\n }\n\n if (isFacebook(requestContext)) {\n const text = getText(props.children)\n const multichannelFacebook = new MultichannelFacebook()\n const {\n texts,\n propsLastText,\n propsWithoutChildren,\n } = multichannelFacebook.convertText(props, text[0])\n return (\n <>\n {texts &&\n texts.map((e, i) => (\n <Text key={i} {...propsWithoutChildren}>\n {e}\n </Text>\n ))}\n <Text {...propsLastText}>{propsLastText.children}</Text>\n </>\n )\n } else {\n return <Text {...props}>{props.children}</Text>\n }\n}\n"],"file":"multichannel-text.js"}