@botonic/react 0.20.1-alpha.1 → 0.20.3

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 (128) hide show
  1. package/lib/app.js +4 -3
  2. package/lib/app.js.map +1 -1
  3. package/lib/components/button.js +22 -2
  4. package/lib/components/button.js.map +1 -1
  5. package/lib/components/buttons-disabler.js +2 -2
  6. package/lib/components/carousel.js +2 -2
  7. package/lib/components/custom-message.js +2 -2
  8. package/lib/components/document.js +2 -2
  9. package/lib/components/image.js +28 -32
  10. package/lib/components/image.js.map +1 -1
  11. package/lib/components/message.js +2 -2
  12. package/lib/components/multichannel/facebook/facebook.js +2 -2
  13. package/lib/components/reply.js +2 -2
  14. package/lib/components/subtitle.js +2 -2
  15. package/lib/components/text.js +2 -2
  16. package/lib/components/timestamps.js +2 -2
  17. package/lib/components/title.js +2 -2
  18. package/lib/constants.js +201 -0
  19. package/lib/constants.js.map +1 -0
  20. package/lib/contexts.js +57 -0
  21. package/lib/contexts.js.map +1 -0
  22. package/lib/dev-app.js +241 -0
  23. package/lib/dev-app.js.map +1 -0
  24. package/lib/index.d.ts +241 -0
  25. package/lib/index.js +131 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/message-utils.js +149 -0
  28. package/lib/message-utils.js.map +1 -0
  29. package/lib/msg-to-botonic.js +199 -0
  30. package/lib/msg-to-botonic.js.map +1 -0
  31. package/lib/node-app.js +97 -0
  32. package/lib/node-app.js.map +1 -0
  33. package/lib/react-bot.js +167 -0
  34. package/lib/react-bot.js.map +1 -0
  35. package/lib/util/dom.js +84 -0
  36. package/lib/util/dom.js.map +1 -0
  37. package/lib/util/environment.js +42 -0
  38. package/lib/util/environment.js.map +1 -0
  39. package/lib/util/error-boundary.js +105 -0
  40. package/lib/util/error-boundary.js.map +1 -0
  41. package/lib/util/index.d.ts +9 -0
  42. package/lib/util/index.js +2 -0
  43. package/lib/util/index.js.map +1 -0
  44. package/lib/util/logs.js +28 -0
  45. package/lib/util/logs.js.map +1 -0
  46. package/lib/util/objects.js +60 -0
  47. package/lib/util/objects.js.map +1 -0
  48. package/lib/util/react.js +75 -0
  49. package/lib/util/react.js.map +1 -0
  50. package/lib/util/regexs.js +31 -0
  51. package/lib/util/regexs.js.map +1 -0
  52. package/lib/util/webchat.js +92 -0
  53. package/lib/util/webchat.js.map +1 -0
  54. package/lib/webchat/actions.js +53 -0
  55. package/lib/webchat/actions.js.map +1 -0
  56. package/lib/webchat/components/attachment.js +43 -0
  57. package/lib/webchat/components/attachment.js.map +1 -0
  58. package/lib/webchat/components/common.js +33 -0
  59. package/lib/webchat/components/common.js.map +1 -0
  60. package/lib/webchat/components/emoji-picker.js +58 -0
  61. package/lib/webchat/components/emoji-picker.js.map +1 -0
  62. package/lib/webchat/components/persistent-menu.js +96 -0
  63. package/lib/webchat/components/persistent-menu.js.map +1 -0
  64. package/lib/webchat/components/send-button.js +27 -0
  65. package/lib/webchat/components/send-button.js.map +1 -0
  66. package/lib/webchat/components/styled-scrollbar.js +55 -0
  67. package/lib/webchat/components/styled-scrollbar.js.map +1 -0
  68. package/lib/webchat/components/styled-scrollbar.scss +12 -0
  69. package/lib/webchat/components/typing-indicator.js +27 -0
  70. package/lib/webchat/components/typing-indicator.js.map +1 -0
  71. package/lib/webchat/components/typing-indicator.scss +38 -0
  72. package/lib/webchat/devices/device-adapter.js +82 -0
  73. package/lib/webchat/devices/device-adapter.js.map +1 -0
  74. package/lib/webchat/devices/index.js +32 -0
  75. package/lib/webchat/devices/index.js.map +1 -0
  76. package/lib/webchat/devices/scrollbar-controller.js +152 -0
  77. package/lib/webchat/devices/scrollbar-controller.js.map +1 -0
  78. package/lib/webchat/devices/webchat-resizer.js +76 -0
  79. package/lib/webchat/devices/webchat-resizer.js.map +1 -0
  80. package/lib/webchat/header.js +116 -0
  81. package/lib/webchat/header.js.map +1 -0
  82. package/lib/webchat/hooks.js +359 -0
  83. package/lib/webchat/hooks.js.map +1 -0
  84. package/lib/webchat/index.d.ts +62 -0
  85. package/lib/webchat/index.js +32 -0
  86. package/lib/webchat/index.js.map +1 -0
  87. package/lib/webchat/message-list.js +88 -0
  88. package/lib/webchat/message-list.js.map +1 -0
  89. package/lib/webchat/messages-reducer.js +93 -0
  90. package/lib/webchat/messages-reducer.js.map +1 -0
  91. package/lib/webchat/replies.js +78 -0
  92. package/lib/webchat/replies.js.map +1 -0
  93. package/lib/webchat/session-view.js +106 -0
  94. package/lib/webchat/session-view.js.map +1 -0
  95. package/lib/webchat/use-storage-state-hook.js +29 -0
  96. package/lib/webchat/use-storage-state-hook.js.map +1 -0
  97. package/lib/webchat/webchat-dev.js +109 -0
  98. package/lib/webchat/webchat-dev.js.map +1 -0
  99. package/lib/webchat/webchat-reducer.js +108 -0
  100. package/lib/webchat/webchat-reducer.js.map +1 -0
  101. package/lib/webchat/webchat.js +1059 -0
  102. package/lib/webchat/webchat.js.map +1 -0
  103. package/lib/webchat/webview.js +122 -0
  104. package/lib/webchat/webview.js.map +1 -0
  105. package/lib/webchat-app.js +653 -0
  106. package/lib/webchat-app.js.map +1 -0
  107. package/lib/webchat.template.html +37 -0
  108. package/lib/webview.js +214 -0
  109. package/lib/webview.js.map +1 -0
  110. package/lib/webview.template.html +39 -0
  111. package/package.json +2 -2
  112. package/src/components/button.jsx +21 -1
  113. package/src/components/image.jsx +22 -27
  114. package/src/components/index.d.ts +5 -1
  115. package/src/constants.js +1 -0
  116. package/src/index.d.ts +3 -7
  117. package/src/index.js +0 -1
  118. package/src/webchat/actions.jsx +1 -1
  119. package/src/webchat/hooks.js +5 -5
  120. package/src/webchat/webchat-reducer.js +3 -3
  121. package/src/webchat/webchat.jsx +20 -17
  122. package/src/webchat-app.jsx +4 -4
  123. package/src/webchat/components/portal-modal/backdrop.jsx +0 -38
  124. package/src/webchat/components/portal-modal/constants.js +0 -7
  125. package/src/webchat/components/portal-modal/content.jsx +0 -10
  126. package/src/webchat/components/portal-modal/index.js +0 -5
  127. package/src/webchat/components/portal-modal/portal-modal-component.jsx +0 -72
  128. package/src/webchat/components/portal-modal/portal.jsx +0 -21
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.WEBCHAT = exports.SENDERS = exports.ROLES = exports.MIME_WHITELIST = exports.MAX_ALLOWED_SIZE_MB = exports.COMPONENT_TYPE = exports.COLORS = void 0;
9
+
10
+ var _botonic_react_logo100x = _interopRequireDefault(require("./assets/botonic_react_logo100x100.png"));
11
+
12
+ var SENDERS = {
13
+ bot: 'bot',
14
+ user: 'user'
15
+ };
16
+ exports.SENDERS = SENDERS;
17
+ var COLORS = {
18
+ // http://chir.ag/projects/name-that-color
19
+ APPLE_GREEN: 'rgba(58, 156, 53, 1)',
20
+ BLEACHED_CEDAR_PURPLE: 'rgba(46, 32, 59, 1)',
21
+ BOTONIC_BLUE: 'rgba(0, 153, 255, 1)',
22
+ CACTUS_GREEN: 'rgba(96, 115, 94, 1)',
23
+ CONCRETE_WHITE: 'rgba(243, 243, 243, 1)',
24
+ CURIOUS_BLUE: 'rgba(38, 139, 210, 1)',
25
+ DAINTREE_BLUE: 'rgba(0, 43, 53, 1)',
26
+ ERROR_RED: 'rgba(255, 43, 94)',
27
+ FRINGY_FLOWER_GREEN: 'rgba(198, 231, 192, 1)',
28
+ GRAY: 'rgba(129, 129, 129, 1)',
29
+ LIGHT_GRAY: 'rgba(209, 209, 209, 1)',
30
+ MID_GRAY: 'rgba(105, 105, 115, 1)',
31
+ PIGEON_POST_BLUE_ALPHA_0_5: 'rgba(176, 196, 222, 0.5)',
32
+ SCORPION_GRAY: 'rgba(87, 87, 87, 1)',
33
+ SEASHELL_WHITE: 'rgba(241, 240, 240, 1)',
34
+ SILVER: 'rgba(200, 200, 200, 1)',
35
+ SOLID_BLACK_ALPHA_0_2: 'rgba(0, 0, 0, 0.2)',
36
+ SOLID_BLACK_ALPHA_0_5: 'rgba(0, 0, 0, 0.5)',
37
+ SOLID_BLACK: 'rgba(0, 0, 0, 1)',
38
+ SOLID_WHITE_ALPHA_0_2: 'rgba(255, 255, 255, 0.2)',
39
+ SOLID_WHITE_ALPHA_0_8: 'rgba(255, 255, 255, 0.8)',
40
+ SOLID_WHITE: 'rgba(255, 255, 255, 1)',
41
+ TASMAN_GRAY: 'rgba(209, 216, 207, 1)',
42
+ TRANSPARENT: 'rgba(0, 0, 0, 0)',
43
+ WILD_SAND_WHITE: 'rgba(244, 244, 244, 1)'
44
+ };
45
+ exports.COLORS = COLORS;
46
+ var WEBCHAT = {
47
+ DEFAULTS: {
48
+ WIDTH: 300,
49
+ HEIGHT: 450,
50
+ TITLE: 'Botonic',
51
+ LOGO: _botonic_react_logo100x["default"],
52
+ PLACEHOLDER: 'Ask me something...',
53
+ FONT_FAMILY: "'Noto Sans JP', sans-serif",
54
+ BORDER_RADIUS_TOP_CORNERS: '6px 6px 0px 0px',
55
+ ELEMENT_WIDTH: 222,
56
+ ELEMENT_MARGIN_RIGHT: 6,
57
+ STORAGE_KEY: 'botonicState',
58
+ HOST_ID: 'root',
59
+ ID: 'botonic-webchat',
60
+ BUTTON_AUTO_DISABLE: false,
61
+ BUTTON_DISABLED_STYLE: {
62
+ opacity: 0.5,
63
+ cursor: 'auto',
64
+ pointerEvents: 'none'
65
+ }
66
+ },
67
+ SELECTORS: {
68
+ SCROLLABLE_CONTENT: '#botonic-scrollable-content',
69
+ SIMPLEBAR_CONTENT: '.simplebar-content',
70
+ SIMPLEBAR_WRAPPER: '.simplebar-content-wrapper'
71
+ },
72
+ CUSTOM_PROPERTIES: {
73
+ // General
74
+ enableAnimations: 'animations.enable',
75
+ markdownStyle: 'markdownStyle',
76
+ scrollbar: 'scrollbar',
77
+ imagePreviewer: 'imagePreviewer',
78
+ // Mobile
79
+ mobileBreakpoint: 'mobileBreakpoint',
80
+ mobileStyle: 'mobileStyle',
81
+ // Webviews
82
+ webviewHeaderStyle: 'webview.header.style',
83
+ webviewStyle: 'webview.style',
84
+ // Brand
85
+ brandColor: 'brand.color',
86
+ brandImage: 'brand.image',
87
+ // Header
88
+ customHeader: 'header.custom',
89
+ headerImage: 'header.image',
90
+ headerStyle: 'header.style',
91
+ headerSubtitle: 'header.subtitle',
92
+ headerTitle: 'header.title',
93
+ // Bot Message
94
+ botMessageBackground: 'message.bot.style.background',
95
+ botMessageBlobTick: 'message.bot.blobTick',
96
+ botMessageBlobTickStyle: 'message.bot.blobTickStyle',
97
+ botMessageBlobWidth: 'message.bot.blobWidth',
98
+ botMessageBorderColor: 'message.bot.style.borderColor',
99
+ botMessageImage: 'message.bot.image',
100
+ botMessageImageStyle: 'message.bot.imageStyle',
101
+ botMessageStyle: 'message.bot.style',
102
+ // User Message
103
+ customMessageTypes: 'message.customTypes',
104
+ messageStyle: 'message.style',
105
+ userMessageBackground: 'message.user.style.background',
106
+ userMessageBlobTick: 'message.user.blobTick',
107
+ userMessageBlobTickStyle: 'message.user.blobTickStyle',
108
+ userMessageBorderColor: 'message.user.style.borderColor',
109
+ userMessageStyle: 'message.user.style',
110
+ // Timestamps
111
+ enableMessageTimestamps: 'message.timestamps.enable',
112
+ messageTimestampsFormat: 'message.timestamps.format',
113
+ messageTimestampsStyle: 'message.timestamps.style',
114
+ // Intro
115
+ customIntro: 'intro.custom',
116
+ introImage: 'intro.image',
117
+ introStyle: 'intro.style',
118
+ // Buttons
119
+ buttonHoverBackground: 'button.hoverBackground',
120
+ buttonHoverTextColor: 'button.hoverTextColor',
121
+ buttonMessageType: 'button.messageType',
122
+ buttonStyle: 'button.style',
123
+ buttonDisabledStyle: 'button.disabledstyle',
124
+ buttonAutoDisable: 'button.autodisable',
125
+ buttonStyleBackground: 'button.style.background',
126
+ buttonStyleColor: 'button.style.color',
127
+ customButton: 'button.custom',
128
+ // Replies
129
+ alignReplies: 'replies.align',
130
+ customReply: 'reply.custom',
131
+ replyStyle: 'reply.style',
132
+ wrapReplies: 'replies.wrap',
133
+ // TriggerButton
134
+ customTrigger: 'triggerButton.custom',
135
+ triggerButtonImage: 'triggerButton.image',
136
+ triggerButtonStyle: 'triggerButton.style',
137
+ // User Input
138
+ blockInputs: 'userInput.blockInputs',
139
+ documentDownload: 'documentDownload',
140
+ customMenuButton: 'userInput.menuButton.custom',
141
+ customPersistentMenu: 'userInput.menu.custom',
142
+ customSendButton: 'userInput.sendButton.custom',
143
+ darkBackgroundMenu: 'userInput.menu.darkBackground',
144
+ enableAttachments: 'userInput.attachments.enable',
145
+ enableEmojiPicker: 'userInput.emojiPicker.enable',
146
+ enableSendButton: 'userInput.sendButton.enable',
147
+ enableUserInput: 'userInput.enable',
148
+ persistentMenu: 'userInput.persistentMenu',
149
+ textPlaceholder: 'userInput.box.placeholder',
150
+ userInputBoxStyle: 'userInput.box.style',
151
+ userInputStyle: 'userInput.style',
152
+ // Cover Component
153
+ coverComponent: 'coverComponent.component',
154
+ coverComponentProps: 'coverComponent.props',
155
+ // Carousel
156
+ customCarouselLeftArrow: 'carousel.arrow.left',
157
+ customCarouselRightArrow: 'carousel.arrow.right',
158
+ enableCarouselArrows: 'carousel.enableArrows'
159
+ }
160
+ };
161
+ exports.WEBCHAT = WEBCHAT;
162
+ var MIME_WHITELIST = {
163
+ audio: ['audio/mpeg', 'audio/mp3'],
164
+ document: ['application/pdf'],
165
+ image: ['image/jpeg', 'image/png'],
166
+ video: ['video/mp4', 'video/quicktime']
167
+ };
168
+ exports.MIME_WHITELIST = MIME_WHITELIST;
169
+ var MAX_ALLOWED_SIZE_MB = 10;
170
+ exports.MAX_ALLOWED_SIZE_MB = MAX_ALLOWED_SIZE_MB;
171
+ var ROLES = {
172
+ ATTACHMENT_ICON: 'attachment-icon',
173
+ EMOJI_PICKER_ICON: 'emoji-picker-icon',
174
+ EMOJI_PICKER: 'emoji-picker',
175
+ HEADER: 'header',
176
+ MESSAGE_LIST: 'message-list',
177
+ PERSISTENT_MENU_ICON: 'persistent-menu-icon',
178
+ PERSISTENT_MENU: 'persistent-menu',
179
+ SEND_BUTTON_ICON: 'send-button-icon',
180
+ WEBCHAT: 'webchat',
181
+ TRIGGER_BUTTON: 'trigger-button',
182
+ TYPING_INDICATOR: 'typing-indicator',
183
+ TEXT_BOX: 'textbox',
184
+ WEBVIEW: 'webview',
185
+ WEBVIEW_HEADER: 'webview-header',
186
+ MESSAGE: 'message',
187
+ IMAGE_MESSAGE: 'image-message',
188
+ AUDIO_MESSAGE: 'audio-message',
189
+ VIDEO_MESSAGE: 'video-message',
190
+ DOCUMENT_MESSAGE: 'document-message',
191
+ RAW_MESSAGE: 'raw-message'
192
+ };
193
+ exports.ROLES = ROLES;
194
+ var COMPONENT_TYPE = {
195
+ TEXT: 'Text',
196
+ BUTTON: 'Button',
197
+ REPLY: 'Reply',
198
+ CAROUSEL: 'Carousel'
199
+ };
200
+ exports.COMPONENT_TYPE = COMPONENT_TYPE;
201
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.js"],"names":["SENDERS","bot","user","COLORS","APPLE_GREEN","BLEACHED_CEDAR_PURPLE","BOTONIC_BLUE","CACTUS_GREEN","CONCRETE_WHITE","CURIOUS_BLUE","DAINTREE_BLUE","ERROR_RED","FRINGY_FLOWER_GREEN","GRAY","LIGHT_GRAY","MID_GRAY","PIGEON_POST_BLUE_ALPHA_0_5","SCORPION_GRAY","SEASHELL_WHITE","SILVER","SOLID_BLACK_ALPHA_0_2","SOLID_BLACK_ALPHA_0_5","SOLID_BLACK","SOLID_WHITE_ALPHA_0_2","SOLID_WHITE_ALPHA_0_8","SOLID_WHITE","TASMAN_GRAY","TRANSPARENT","WILD_SAND_WHITE","WEBCHAT","DEFAULTS","WIDTH","HEIGHT","TITLE","LOGO","BotonicLogo","PLACEHOLDER","FONT_FAMILY","BORDER_RADIUS_TOP_CORNERS","ELEMENT_WIDTH","ELEMENT_MARGIN_RIGHT","STORAGE_KEY","HOST_ID","ID","BUTTON_AUTO_DISABLE","BUTTON_DISABLED_STYLE","opacity","cursor","pointerEvents","SELECTORS","SCROLLABLE_CONTENT","SIMPLEBAR_CONTENT","SIMPLEBAR_WRAPPER","CUSTOM_PROPERTIES","enableAnimations","markdownStyle","scrollbar","imagePreviewer","mobileBreakpoint","mobileStyle","webviewHeaderStyle","webviewStyle","brandColor","brandImage","customHeader","headerImage","headerStyle","headerSubtitle","headerTitle","botMessageBackground","botMessageBlobTick","botMessageBlobTickStyle","botMessageBlobWidth","botMessageBorderColor","botMessageImage","botMessageImageStyle","botMessageStyle","customMessageTypes","messageStyle","userMessageBackground","userMessageBlobTick","userMessageBlobTickStyle","userMessageBorderColor","userMessageStyle","enableMessageTimestamps","messageTimestampsFormat","messageTimestampsStyle","customIntro","introImage","introStyle","buttonHoverBackground","buttonHoverTextColor","buttonMessageType","buttonStyle","buttonDisabledStyle","buttonAutoDisable","buttonStyleBackground","buttonStyleColor","customButton","alignReplies","customReply","replyStyle","wrapReplies","customTrigger","triggerButtonImage","triggerButtonStyle","blockInputs","documentDownload","customMenuButton","customPersistentMenu","customSendButton","darkBackgroundMenu","enableAttachments","enableEmojiPicker","enableSendButton","enableUserInput","persistentMenu","textPlaceholder","userInputBoxStyle","userInputStyle","coverComponent","coverComponentProps","customCarouselLeftArrow","customCarouselRightArrow","enableCarouselArrows","MIME_WHITELIST","audio","document","image","video","MAX_ALLOWED_SIZE_MB","ROLES","ATTACHMENT_ICON","EMOJI_PICKER_ICON","EMOJI_PICKER","HEADER","MESSAGE_LIST","PERSISTENT_MENU_ICON","PERSISTENT_MENU","SEND_BUTTON_ICON","TRIGGER_BUTTON","TYPING_INDICATOR","TEXT_BOX","WEBVIEW","WEBVIEW_HEADER","MESSAGE","IMAGE_MESSAGE","AUDIO_MESSAGE","VIDEO_MESSAGE","DOCUMENT_MESSAGE","RAW_MESSAGE","COMPONENT_TYPE","TEXT","BUTTON","REPLY","CAROUSEL"],"mappings":"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","sourcesContent":["import BotonicLogo from './assets/botonic_react_logo100x100.png'\n\nexport const SENDERS = {\n bot: 'bot',\n user: 'user',\n}\n\nexport const COLORS = {\n // http://chir.ag/projects/name-that-color\n APPLE_GREEN: 'rgba(58, 156, 53, 1)',\n BLEACHED_CEDAR_PURPLE: 'rgba(46, 32, 59, 1)',\n BOTONIC_BLUE: 'rgba(0, 153, 255, 1)',\n CACTUS_GREEN: 'rgba(96, 115, 94, 1)',\n CONCRETE_WHITE: 'rgba(243, 243, 243, 1)',\n CURIOUS_BLUE: 'rgba(38, 139, 210, 1)',\n DAINTREE_BLUE: 'rgba(0, 43, 53, 1)',\n ERROR_RED: 'rgba(255, 43, 94)',\n FRINGY_FLOWER_GREEN: 'rgba(198, 231, 192, 1)',\n GRAY: 'rgba(129, 129, 129, 1)',\n LIGHT_GRAY: 'rgba(209, 209, 209, 1)',\n MID_GRAY: 'rgba(105, 105, 115, 1)',\n PIGEON_POST_BLUE_ALPHA_0_5: 'rgba(176, 196, 222, 0.5)',\n SCORPION_GRAY: 'rgba(87, 87, 87, 1)',\n SEASHELL_WHITE: 'rgba(241, 240, 240, 1)',\n SILVER: 'rgba(200, 200, 200, 1)',\n SOLID_BLACK_ALPHA_0_2: 'rgba(0, 0, 0, 0.2)',\n SOLID_BLACK_ALPHA_0_5: 'rgba(0, 0, 0, 0.5)',\n SOLID_BLACK: 'rgba(0, 0, 0, 1)',\n SOLID_WHITE_ALPHA_0_2: 'rgba(255, 255, 255, 0.2)',\n SOLID_WHITE_ALPHA_0_8: 'rgba(255, 255, 255, 0.8)',\n SOLID_WHITE: 'rgba(255, 255, 255, 1)',\n TASMAN_GRAY: 'rgba(209, 216, 207, 1)',\n TRANSPARENT: 'rgba(0, 0, 0, 0)',\n WILD_SAND_WHITE: 'rgba(244, 244, 244, 1)',\n}\n\nexport const WEBCHAT = {\n DEFAULTS: {\n WIDTH: 300,\n HEIGHT: 450,\n TITLE: 'Botonic',\n LOGO: BotonicLogo,\n PLACEHOLDER: 'Ask me something...',\n FONT_FAMILY: \"'Noto Sans JP', sans-serif\",\n BORDER_RADIUS_TOP_CORNERS: '6px 6px 0px 0px',\n ELEMENT_WIDTH: 222,\n ELEMENT_MARGIN_RIGHT: 6,\n STORAGE_KEY: 'botonicState',\n HOST_ID: 'root',\n ID: 'botonic-webchat',\n BUTTON_AUTO_DISABLE: false,\n BUTTON_DISABLED_STYLE: {\n opacity: 0.5,\n cursor: 'auto',\n pointerEvents: 'none',\n },\n },\n SELECTORS: {\n SCROLLABLE_CONTENT: '#botonic-scrollable-content',\n SIMPLEBAR_CONTENT: '.simplebar-content',\n SIMPLEBAR_WRAPPER: '.simplebar-content-wrapper',\n },\n CUSTOM_PROPERTIES: {\n // General\n enableAnimations: 'animations.enable',\n markdownStyle: 'markdownStyle',\n scrollbar: 'scrollbar',\n imagePreviewer: 'imagePreviewer',\n // Mobile\n mobileBreakpoint: 'mobileBreakpoint',\n mobileStyle: 'mobileStyle',\n // Webviews\n webviewHeaderStyle: 'webview.header.style',\n webviewStyle: 'webview.style',\n // Brand\n brandColor: 'brand.color',\n brandImage: 'brand.image',\n // Header\n customHeader: 'header.custom',\n headerImage: 'header.image',\n headerStyle: 'header.style',\n headerSubtitle: 'header.subtitle',\n headerTitle: 'header.title',\n // Bot Message\n botMessageBackground: 'message.bot.style.background',\n botMessageBlobTick: 'message.bot.blobTick',\n botMessageBlobTickStyle: 'message.bot.blobTickStyle',\n botMessageBlobWidth: 'message.bot.blobWidth',\n botMessageBorderColor: 'message.bot.style.borderColor',\n botMessageImage: 'message.bot.image',\n botMessageImageStyle: 'message.bot.imageStyle',\n botMessageStyle: 'message.bot.style',\n // User Message\n customMessageTypes: 'message.customTypes',\n messageStyle: 'message.style',\n userMessageBackground: 'message.user.style.background',\n userMessageBlobTick: 'message.user.blobTick',\n userMessageBlobTickStyle: 'message.user.blobTickStyle',\n userMessageBorderColor: 'message.user.style.borderColor',\n userMessageStyle: 'message.user.style',\n // Timestamps\n enableMessageTimestamps: 'message.timestamps.enable',\n messageTimestampsFormat: 'message.timestamps.format',\n messageTimestampsStyle: 'message.timestamps.style',\n // Intro\n customIntro: 'intro.custom',\n introImage: 'intro.image',\n introStyle: 'intro.style',\n // Buttons\n buttonHoverBackground: 'button.hoverBackground',\n buttonHoverTextColor: 'button.hoverTextColor',\n buttonMessageType: 'button.messageType',\n buttonStyle: 'button.style',\n buttonDisabledStyle: 'button.disabledstyle',\n buttonAutoDisable: 'button.autodisable',\n buttonStyleBackground: 'button.style.background',\n buttonStyleColor: 'button.style.color',\n customButton: 'button.custom',\n // Replies\n alignReplies: 'replies.align',\n customReply: 'reply.custom',\n replyStyle: 'reply.style',\n wrapReplies: 'replies.wrap',\n // TriggerButton\n customTrigger: 'triggerButton.custom',\n triggerButtonImage: 'triggerButton.image',\n triggerButtonStyle: 'triggerButton.style',\n // User Input\n blockInputs: 'userInput.blockInputs',\n documentDownload: 'documentDownload',\n customMenuButton: 'userInput.menuButton.custom',\n customPersistentMenu: 'userInput.menu.custom',\n customSendButton: 'userInput.sendButton.custom',\n darkBackgroundMenu: 'userInput.menu.darkBackground',\n enableAttachments: 'userInput.attachments.enable',\n enableEmojiPicker: 'userInput.emojiPicker.enable',\n enableSendButton: 'userInput.sendButton.enable',\n enableUserInput: 'userInput.enable',\n persistentMenu: 'userInput.persistentMenu',\n textPlaceholder: 'userInput.box.placeholder',\n userInputBoxStyle: 'userInput.box.style',\n userInputStyle: 'userInput.style',\n // Cover Component\n coverComponent: 'coverComponent.component',\n coverComponentProps: 'coverComponent.props',\n // Carousel\n customCarouselLeftArrow: 'carousel.arrow.left',\n customCarouselRightArrow: 'carousel.arrow.right',\n enableCarouselArrows: 'carousel.enableArrows',\n },\n}\n\nexport const MIME_WHITELIST = {\n audio: ['audio/mpeg', 'audio/mp3'],\n document: ['application/pdf'],\n image: ['image/jpeg', 'image/png'],\n video: ['video/mp4', 'video/quicktime'],\n}\n\nexport const MAX_ALLOWED_SIZE_MB = 10\n\nexport const ROLES = {\n ATTACHMENT_ICON: 'attachment-icon',\n EMOJI_PICKER_ICON: 'emoji-picker-icon',\n EMOJI_PICKER: 'emoji-picker',\n HEADER: 'header',\n MESSAGE_LIST: 'message-list',\n PERSISTENT_MENU_ICON: 'persistent-menu-icon',\n PERSISTENT_MENU: 'persistent-menu',\n SEND_BUTTON_ICON: 'send-button-icon',\n WEBCHAT: 'webchat',\n TRIGGER_BUTTON: 'trigger-button',\n TYPING_INDICATOR: 'typing-indicator',\n TEXT_BOX: 'textbox',\n WEBVIEW: 'webview',\n WEBVIEW_HEADER: 'webview-header',\n MESSAGE: 'message',\n IMAGE_MESSAGE: 'image-message',\n AUDIO_MESSAGE: 'audio-message',\n VIDEO_MESSAGE: 'video-message',\n DOCUMENT_MESSAGE: 'document-message',\n RAW_MESSAGE: 'raw-message',\n}\n\nexport const COMPONENT_TYPE = {\n TEXT: 'Text',\n BUTTON: 'Button',\n REPLY: 'Reply',\n CAROUSEL: 'Carousel',\n}\n"],"file":"constants.js"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.WebchatContext = exports.RequestContext = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _hooks = require("./webchat/hooks");
13
+
14
+ var RequestContext = /*#__PURE__*/_react["default"].createContext({
15
+ getString: function getString() {
16
+ return '';
17
+ },
18
+ setLocale: function setLocale() {
19
+ return '';
20
+ },
21
+ session: {},
22
+ params: {},
23
+ input: {},
24
+ defaultDelay: 0,
25
+ defaultTyping: 0
26
+ });
27
+
28
+ exports.RequestContext = RequestContext;
29
+
30
+ var WebchatContext = /*#__PURE__*/_react["default"].createContext({
31
+ sendText: function sendText(text) {},
32
+ sendAttachment: function sendAttachment(attachment) {},
33
+ sendPayload: function sendPayload(payload) {},
34
+ sendInput: function sendInput(input) {},
35
+ setReplies: function setReplies(replies) {},
36
+ openWebview: function openWebview(webviewComponent) {},
37
+ addMessage: function addMessage(message) {},
38
+ updateMessage: function updateMessage(message) {},
39
+ updateReplies: function updateReplies(replies) {},
40
+ updateLatestInput: function updateLatestInput(input) {},
41
+ closeWebview: function closeWebview() {},
42
+ toggleWebchat: function toggleWebchat() {},
43
+ getThemeProperty: function getThemeProperty(property) {
44
+ return undefined;
45
+ },
46
+ // used to retrieve a specific property of the theme defined by the developer in his 'webchat/index.js'
47
+ resolveCase: function resolveCase() {},
48
+ theme: {},
49
+ webchatState: _hooks.webchatInitialState,
50
+ updateWebchatDevSettings: function updateWebchatDevSettings(settings) {
51
+ return {};
52
+ },
53
+ updateUser: function updateUser(user) {}
54
+ });
55
+
56
+ exports.WebchatContext = WebchatContext;
57
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/contexts.jsx"],"names":["RequestContext","React","createContext","getString","setLocale","session","params","input","defaultDelay","defaultTyping","WebchatContext","sendText","text","sendAttachment","attachment","sendPayload","payload","sendInput","setReplies","replies","openWebview","webviewComponent","addMessage","message","updateMessage","updateReplies","updateLatestInput","closeWebview","toggleWebchat","getThemeProperty","property","undefined","resolveCase","theme","webchatState","webchatInitialState","updateWebchatDevSettings","settings","updateUser","user"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,IAAMA,cAAc,gBAAGC,kBAAMC,aAAN,CAAoB;AAChDC,EAAAA,SAAS,EAAE;AAAA,WAAM,EAAN;AAAA,GADqC;AAEhDC,EAAAA,SAAS,EAAE;AAAA,WAAM,EAAN;AAAA,GAFqC;AAGhDC,EAAAA,OAAO,EAAE,EAHuC;AAIhDC,EAAAA,MAAM,EAAE,EAJwC;AAKhDC,EAAAA,KAAK,EAAE,EALyC;AAMhDC,EAAAA,YAAY,EAAE,CANkC;AAOhDC,EAAAA,aAAa,EAAE;AAPiC,CAApB,CAAvB;;;;AAUA,IAAMC,cAAc,gBAAGT,kBAAMC,aAAN,CAAoB;AAChDS,EAAAA,QAAQ,EAAE,kBAAAC,IAAI,EAAI,CAAE,CAD4B;AAEhDC,EAAAA,cAAc,EAAE,wBAAAC,UAAU,EAAI,CAAE,CAFgB;AAGhDC,EAAAA,WAAW,EAAE,qBAAAC,OAAO,EAAI,CAAE,CAHsB;AAIhDC,EAAAA,SAAS,EAAE,mBAAAV,KAAK,EAAI,CAAE,CAJ0B;AAKhDW,EAAAA,UAAU,EAAE,oBAAAC,OAAO,EAAI,CAAE,CALuB;AAMhDC,EAAAA,WAAW,EAAE,qBAAAC,gBAAgB,EAAI,CAAE,CANa;AAOhDC,EAAAA,UAAU,EAAE,oBAAAC,OAAO,EAAI,CAAE,CAPuB;AAQhDC,EAAAA,aAAa,EAAE,uBAAAD,OAAO,EAAI,CAAE,CARoB;AAShDE,EAAAA,aAAa,EAAE,uBAAAN,OAAO,EAAI,CAAE,CAToB;AAUhDO,EAAAA,iBAAiB,EAAE,2BAAAnB,KAAK,EAAI,CAAE,CAVkB;AAWhDoB,EAAAA,YAAY,EAAE,wBAAM,CAAE,CAX0B;AAYhDC,EAAAA,aAAa,EAAE,yBAAM,CAAE,CAZyB;AAahDC,EAAAA,gBAAgB,EAAE,0BAAAC,QAAQ;AAAA,WAAIC,SAAJ;AAAA,GAbsB;AAaP;AACzCC,EAAAA,WAAW,EAAE,uBAAM,CAAE,CAd2B;AAehDC,EAAAA,KAAK,EAAE,EAfyC;AAgBhDC,EAAAA,YAAY,EAAEC,0BAhBkC;AAiBhDC,EAAAA,wBAAwB,EAAE,kCAAAC,QAAQ,EAAI;AACpC,WAAO,EAAP;AACD,GAnB+C;AAoBhDC,EAAAA,UAAU,EAAE,oBAAAC,IAAI,EAAI,CAAE;AApB0B,CAApB,CAAvB","sourcesContent":["import React from 'react'\n\nimport { webchatInitialState } from './webchat/hooks'\n\nexport const RequestContext = React.createContext({\n getString: () => '',\n setLocale: () => '',\n session: {},\n params: {},\n input: {},\n defaultDelay: 0,\n defaultTyping: 0,\n})\n\nexport const WebchatContext = React.createContext({\n sendText: text => {},\n sendAttachment: attachment => {},\n sendPayload: payload => {},\n sendInput: input => {},\n setReplies: replies => {},\n openWebview: webviewComponent => {},\n addMessage: message => {},\n updateMessage: message => {},\n updateReplies: replies => {},\n updateLatestInput: input => {},\n closeWebview: () => {},\n toggleWebchat: () => {},\n getThemeProperty: property => undefined, // used to retrieve a specific property of the theme defined by the developer in his 'webchat/index.js'\n resolveCase: () => {},\n theme: {},\n webchatState: webchatInitialState,\n updateWebchatDevSettings: settings => {\n return {}\n },\n updateUser: user => {},\n})\n"],"file":"contexts.js"}
package/lib/dev-app.js ADDED
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DevApp = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
+
22
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
+
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
26
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
+
28
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
+
30
+ var _lodash = _interopRequireDefault(require("lodash.merge"));
31
+
32
+ var _react = _interopRequireDefault(require("react"));
33
+
34
+ var _reactDom = require("react-dom");
35
+
36
+ var _constants = require("./constants");
37
+
38
+ var _reactBot = require("./react-bot");
39
+
40
+ var _dom = require("./util/dom");
41
+
42
+ var _webchatDev = require("./webchat/webchat-dev");
43
+
44
+ var _webchatApp = require("./webchat-app");
45
+
46
+ var _excluded = ["theme", "persistentMenu", "coverComponent", "blockInputs", "enableEmojiPicker", "enableAttachments", "enableUserInput", "enableAnimations", "shadowDOM", "hostId", "storage", "storageKey", "onInit", "onOpen", "onClose", "onMessage"],
47
+ _excluded2 = ["theme", "persistentMenu", "coverComponent", "blockInputs", "enableEmojiPicker", "enableAttachments", "enableUserInput", "enableAnimations", "storage", "storageKey", "onInit", "onOpen", "onClose", "onMessage", "hostId"];
48
+
49
+ 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; }
50
+
51
+ 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; }
52
+
53
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
54
+
55
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
56
+
57
+ var DevApp = /*#__PURE__*/function (_WebchatApp) {
58
+ (0, _inherits2["default"])(DevApp, _WebchatApp);
59
+
60
+ var _super = _createSuper(DevApp);
61
+
62
+ function DevApp(_ref) {
63
+ var _this;
64
+
65
+ var _ref$theme = _ref.theme,
66
+ theme = _ref$theme === void 0 ? {} : _ref$theme,
67
+ persistentMenu = _ref.persistentMenu,
68
+ coverComponent = _ref.coverComponent,
69
+ blockInputs = _ref.blockInputs,
70
+ enableEmojiPicker = _ref.enableEmojiPicker,
71
+ enableAttachments = _ref.enableAttachments,
72
+ enableUserInput = _ref.enableUserInput,
73
+ enableAnimations = _ref.enableAnimations,
74
+ shadowDOM = _ref.shadowDOM,
75
+ hostId = _ref.hostId,
76
+ storage = _ref.storage,
77
+ storageKey = _ref.storageKey,
78
+ onInit = _ref.onInit,
79
+ onOpen = _ref.onOpen,
80
+ onClose = _ref.onClose,
81
+ onMessage = _ref.onMessage,
82
+ botOptions = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
83
+ (0, _classCallCheck2["default"])(this, DevApp);
84
+ _this = _super.call(this, {
85
+ theme: theme,
86
+ persistentMenu: persistentMenu,
87
+ coverComponent: coverComponent,
88
+ blockInputs: blockInputs,
89
+ enableEmojiPicker: enableEmojiPicker,
90
+ enableAttachments: enableAttachments,
91
+ enableUserInput: enableUserInput,
92
+ enableAnimations: enableAnimations,
93
+ shadowDOM: shadowDOM,
94
+ hostId: hostId,
95
+ storage: storage,
96
+ storageKey: storageKey,
97
+ onInit: onInit,
98
+ onOpen: onOpen,
99
+ onClose: onClose,
100
+ onMessage: onMessage
101
+ });
102
+ _this.bot = new _reactBot.ReactBot(_objectSpread({}, botOptions));
103
+ return _this;
104
+ }
105
+
106
+ (0, _createClass2["default"])(DevApp, [{
107
+ key: "getComponent",
108
+ value: function getComponent(host) {
109
+ var _this2 = this;
110
+
111
+ var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
112
+ var _optionsAtRuntime$the = optionsAtRuntime.theme,
113
+ theme = _optionsAtRuntime$the === void 0 ? {} : _optionsAtRuntime$the,
114
+ persistentMenu = optionsAtRuntime.persistentMenu,
115
+ coverComponent = optionsAtRuntime.coverComponent,
116
+ blockInputs = optionsAtRuntime.blockInputs,
117
+ enableEmojiPicker = optionsAtRuntime.enableEmojiPicker,
118
+ enableAttachments = optionsAtRuntime.enableAttachments,
119
+ enableUserInput = optionsAtRuntime.enableUserInput,
120
+ enableAnimations = optionsAtRuntime.enableAnimations,
121
+ storage = optionsAtRuntime.storage,
122
+ storageKey = optionsAtRuntime.storageKey,
123
+ onInit = optionsAtRuntime.onInit,
124
+ onOpen = optionsAtRuntime.onOpen,
125
+ onClose = optionsAtRuntime.onClose,
126
+ onMessage = optionsAtRuntime.onMessage,
127
+ hostId = optionsAtRuntime.hostId,
128
+ webchatOptions = (0, _objectWithoutProperties2["default"])(optionsAtRuntime, _excluded2);
129
+ theme = (0, _lodash["default"])(this.theme, theme);
130
+ persistentMenu = persistentMenu || this.persistentMenu;
131
+ coverComponent = coverComponent || this.coverComponent;
132
+ blockInputs = blockInputs || this.blockInputs;
133
+ enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker;
134
+ enableAttachments = enableAttachments || this.enableAttachments;
135
+ enableUserInput = enableUserInput || this.enableUserInput;
136
+ enableAnimations = enableAnimations || this.enableAnimations;
137
+ storage = storage || this.storage;
138
+ storageKey = storageKey || this.storageKey;
139
+ this.onInit = onInit || this.onInit;
140
+ this.onOpen = onOpen || this.onOpen;
141
+ this.onClose = onClose || this.onClose;
142
+ this.onMessage = onMessage || this.onMessage;
143
+ this.hostId = hostId || this.hostId;
144
+ this.createRootElement(host);
145
+ return /*#__PURE__*/_react["default"].createElement(_webchatDev.WebchatDev, (0, _extends2["default"])({}, webchatOptions, {
146
+ ref: this.webchatRef,
147
+ host: this.host,
148
+ shadowDOM: this.shadowDOM,
149
+ theme: theme,
150
+ persistentMenu: persistentMenu,
151
+ coverComponent: coverComponent,
152
+ blockInputs: blockInputs,
153
+ enableEmojiPicker: enableEmojiPicker,
154
+ enableAttachments: enableAttachments,
155
+ enableUserInput: enableUserInput,
156
+ enableAnimations: enableAnimations,
157
+ storage: storage,
158
+ storageKey: storageKey,
159
+ getString: function getString(stringId, session) {
160
+ return _this2.bot.getString(stringId, session);
161
+ },
162
+ setLocale: function setLocale(locale, session) {
163
+ return _this2.bot.setLocale(locale, session);
164
+ },
165
+ onInit: function onInit() {
166
+ return _this2.onInitWebchat.apply(_this2, arguments);
167
+ },
168
+ onOpen: function onOpen() {
169
+ return _this2.onOpenWebchat.apply(_this2, arguments);
170
+ },
171
+ onClose: function onClose() {
172
+ return _this2.onCloseWebchat.apply(_this2, arguments);
173
+ },
174
+ onUserInput: function onUserInput() {
175
+ return _this2.onUserInput.apply(_this2, arguments);
176
+ }
177
+ }));
178
+ }
179
+ }, {
180
+ key: "render",
181
+ value: function render(dest) {
182
+ var _this3 = this;
183
+
184
+ var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
185
+ (0, _dom.onDOMLoaded)(function () {
186
+ (0, _reactDom.render)(_this3.getComponent(dest, optionsAtRuntime), _this3.getReactMountNode(dest));
187
+ });
188
+ }
189
+ }, {
190
+ key: "onUserInput",
191
+ value: function () {
192
+ var _onUserInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2) {
193
+ var _this4 = this;
194
+
195
+ var input, session, lastRoutePath, resp;
196
+ return _regenerator["default"].wrap(function _callee$(_context) {
197
+ while (1) {
198
+ switch (_context.prev = _context.next) {
199
+ case 0:
200
+ input = _ref2.input, session = _ref2.session, lastRoutePath = _ref2.lastRoutePath;
201
+ this.onMessage && this.onMessage(this, {
202
+ from: _constants.SENDERS.user,
203
+ message: input
204
+ });
205
+ _context.next = 4;
206
+ return this.bot.input({
207
+ input: input,
208
+ session: session,
209
+ lastRoutePath: lastRoutePath
210
+ });
211
+
212
+ case 4:
213
+ resp = _context.sent;
214
+ this.onMessage && resp.response.map(function (r) {
215
+ return _this4.onMessage(_this4, {
216
+ from: _constants.SENDERS.bot,
217
+ message: r
218
+ });
219
+ });
220
+ this.webchatRef.current.addBotResponse(resp);
221
+
222
+ case 7:
223
+ case "end":
224
+ return _context.stop();
225
+ }
226
+ }
227
+ }, _callee, this);
228
+ }));
229
+
230
+ function onUserInput(_x) {
231
+ return _onUserInput.apply(this, arguments);
232
+ }
233
+
234
+ return onUserInput;
235
+ }()
236
+ }]);
237
+ return DevApp;
238
+ }(_webchatApp.WebchatApp);
239
+
240
+ exports.DevApp = DevApp;
241
+ //# sourceMappingURL=dev-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/dev-app.jsx"],"names":["DevApp","theme","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","shadowDOM","hostId","storage","storageKey","onInit","onOpen","onClose","onMessage","botOptions","bot","ReactBot","host","optionsAtRuntime","webchatOptions","createRootElement","webchatRef","stringId","session","getString","locale","setLocale","onInitWebchat","onOpenWebchat","onCloseWebchat","onUserInput","dest","getComponent","getReactMountNode","input","lastRoutePath","from","SENDERS","user","message","resp","response","map","r","current","addBotResponse","WebchatApp"],"mappings":"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","sourcesContent":["import merge from 'lodash.merge'\nimport React from 'react'\nimport { render } from 'react-dom'\n\nimport { SENDERS } from './constants'\nimport { ReactBot } from './react-bot'\nimport { onDOMLoaded } from './util/dom'\nimport { WebchatDev } from './webchat/webchat-dev'\nimport { WebchatApp } from './webchat-app'\n\nexport class DevApp extends WebchatApp {\n constructor({\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n ...botOptions\n }) {\n super({\n theme,\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n })\n this.bot = new ReactBot({\n ...botOptions,\n })\n }\n\n getComponent(host, optionsAtRuntime = {}) {\n let {\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n hostId,\n ...webchatOptions\n } = optionsAtRuntime\n theme = merge(this.theme, theme)\n persistentMenu = persistentMenu || this.persistentMenu\n coverComponent = coverComponent || this.coverComponent\n blockInputs = blockInputs || this.blockInputs\n enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker\n enableAttachments = enableAttachments || this.enableAttachments\n enableUserInput = enableUserInput || this.enableUserInput\n enableAnimations = enableAnimations || this.enableAnimations\n storage = storage || this.storage\n storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.hostId = hostId || this.hostId\n this.createRootElement(host)\n return (\n <WebchatDev\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme}\n persistentMenu={persistentMenu}\n coverComponent={coverComponent}\n blockInputs={blockInputs}\n enableEmojiPicker={enableEmojiPicker}\n enableAttachments={enableAttachments}\n enableUserInput={enableUserInput}\n enableAnimations={enableAnimations}\n storage={storage}\n storageKey={storageKey}\n getString={(stringId, session) => this.bot.getString(stringId, session)}\n setLocale={(locale, session) => this.bot.setLocale(locale, session)}\n onInit={(...args) => this.onInitWebchat(...args)}\n onOpen={(...args) => this.onOpenWebchat(...args)}\n onClose={(...args) => this.onCloseWebchat(...args)}\n onUserInput={(...args) => this.onUserInput(...args)}\n />\n )\n }\n\n render(dest, optionsAtRuntime = {}) {\n onDOMLoaded(() => {\n render(\n this.getComponent(dest, optionsAtRuntime),\n this.getReactMountNode(dest)\n )\n })\n }\n\n async onUserInput({ input, session, lastRoutePath }) {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.user, message: input })\n const resp = await this.bot.input({ input, session, lastRoutePath })\n this.onMessage &&\n resp.response.map(r =>\n this.onMessage(this, { from: SENDERS.bot, message: r })\n )\n this.webchatRef.current.addBotResponse(resp)\n }\n}\n"],"file":"dev-app.js"}