@botonic/react 1.0.0-beta.0 → 1.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/lib/components/button.js +2 -0
  2. package/lib/components/button.js.map +1 -1
  3. package/lib/components/components.js +1 -1
  4. package/lib/components/image.js +47 -5
  5. package/lib/components/image.js.map +1 -1
  6. package/lib/components/index.js +6 -6
  7. package/lib/components/markdown.js +1 -1
  8. package/lib/components/multichannel/multichannel-utils.js +8 -6
  9. package/lib/components/multichannel/multichannel-utils.js.map +1 -1
  10. package/lib/components/timestamps.js +1 -1
  11. package/lib/constants.js +2 -1
  12. package/lib/constants.js.map +1 -1
  13. package/lib/dev-app.js +7 -6
  14. package/lib/dev-app.js.map +1 -1
  15. package/lib/index.d.ts +3 -0
  16. package/lib/index.js +20 -20
  17. package/lib/message-utils.js +1 -1
  18. package/lib/util/dom.js +8 -2
  19. package/lib/util/dom.js.map +1 -1
  20. package/lib/util/environment.js +1 -1
  21. package/lib/util/objects.js +1 -1
  22. package/lib/util/react.js +1 -1
  23. package/lib/util/webchat.js +1 -1
  24. package/lib/webchat/actions.js +5 -1
  25. package/lib/webchat/actions.js.map +1 -1
  26. package/lib/webchat/devices/device-adapter.js +14 -4
  27. package/lib/webchat/devices/device-adapter.js.map +1 -1
  28. package/lib/webchat/devices/scrollbar-controller.js +5 -3
  29. package/lib/webchat/devices/scrollbar-controller.js.map +1 -1
  30. package/lib/webchat/header.js +1 -1
  31. package/lib/webchat/hooks.js +25 -6
  32. package/lib/webchat/hooks.js.map +1 -1
  33. package/lib/webchat/index.js +1 -1
  34. package/lib/webchat/webchat-reducer.js +11 -0
  35. package/lib/webchat/webchat-reducer.js.map +1 -1
  36. package/lib/webchat/webchat.js +21 -4
  37. package/lib/webchat/webchat.js.map +1 -1
  38. package/lib/webchat/webview.js +1 -1
  39. package/lib/webchat-app.js +20 -9
  40. package/lib/webchat-app.js.map +1 -1
  41. package/package.json +6 -6
  42. package/src/components/button.jsx +2 -0
  43. package/src/dev-app.jsx +8 -3
  44. package/src/experimental/components/message.jsx +8 -2
  45. package/src/experimental/constants.js +189 -0
  46. package/src/experimental/contexts.jsx +36 -0
  47. package/src/experimental/dev-app.jsx +14 -7
  48. package/src/experimental/index.js +94 -25
  49. package/src/experimental/msg-to-botonic.jsx +8 -8
  50. package/src/experimental/react-bot.jsx +1 -1
  51. package/src/experimental/util/dom.js +55 -0
  52. package/src/experimental/util/objects.js +39 -0
  53. package/src/experimental/util/webchat.js +61 -0
  54. package/src/experimental/webchat/actions.jsx +24 -0
  55. package/src/experimental/webchat/hooks.js +296 -0
  56. package/src/experimental/webchat/messages-reducer.js +86 -0
  57. package/src/experimental/webchat/session-view.jsx +166 -0
  58. package/src/experimental/webchat/webchat-dev.jsx +23 -19
  59. package/src/experimental/webchat/webchat-reducer.js +68 -0
  60. package/src/experimental/webchat/webchat.jsx +109 -82
  61. package/src/experimental/webchat-app.jsx +39 -15
  62. package/src/index.d.ts +1 -0
  63. package/src/util/dom.js +5 -3
  64. package/src/webchat/actions.jsx +1 -0
  65. package/src/webchat/devices/device-adapter.js +16 -4
  66. package/src/webchat/devices/scrollbar-controller.js +9 -4
  67. package/src/webchat/hooks.js +10 -0
  68. package/src/webchat/webchat-reducer.js +3 -0
  69. package/src/webchat/webchat.jsx +2 -1
  70. package/src/webchat-app.jsx +6 -4
  71. package/lib/experimental/components/audio.js +0 -46
  72. package/lib/experimental/components/audio.js.map +0 -1
  73. package/lib/experimental/components/carousel.js +0 -194
  74. package/lib/experimental/components/carousel.js.map +0 -1
  75. package/lib/experimental/components/custom-message.js +0 -132
  76. package/lib/experimental/components/custom-message.js.map +0 -1
  77. package/lib/experimental/components/document.js +0 -69
  78. package/lib/experimental/components/document.js.map +0 -1
  79. package/lib/experimental/components/image.js +0 -47
  80. package/lib/experimental/components/image.js.map +0 -1
  81. package/lib/experimental/components/index.js +0 -184
  82. package/lib/experimental/components/index.js.map +0 -1
  83. package/lib/experimental/components/location.js +0 -54
  84. package/lib/experimental/components/location.js.map +0 -1
  85. package/lib/experimental/components/markdown.js +0 -103
  86. package/lib/experimental/components/markdown.js.map +0 -1
  87. package/lib/experimental/components/message.js +0 -353
  88. package/lib/experimental/components/message.js.map +0 -1
  89. package/lib/experimental/components/text.js +0 -80
  90. package/lib/experimental/components/text.js.map +0 -1
  91. package/lib/experimental/components/video.js +0 -49
  92. package/lib/experimental/components/video.js.map +0 -1
  93. package/lib/experimental/components/whatsapp-template.js +0 -53
  94. package/lib/experimental/components/whatsapp-template.js.map +0 -1
  95. package/lib/experimental/dev-app.js +0 -240
  96. package/lib/experimental/dev-app.js.map +0 -1
  97. package/lib/experimental/index.js +0 -748
  98. package/lib/experimental/index.js.map +0 -1
  99. package/lib/experimental/msg-to-botonic.js +0 -162
  100. package/lib/experimental/msg-to-botonic.js.map +0 -1
  101. package/lib/experimental/node-app.js +0 -97
  102. package/lib/experimental/node-app.js.map +0 -1
  103. package/lib/experimental/react-bot.js +0 -167
  104. package/lib/experimental/react-bot.js.map +0 -1
  105. package/lib/experimental/webchat/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  106. package/lib/experimental/webchat/assets/botonic-logo-white.svg +0 -16
  107. package/lib/experimental/webchat/assets/messenger.svg +0 -10
  108. package/lib/experimental/webchat/assets/open-new-window.svg +0 -3
  109. package/lib/experimental/webchat/assets/open.svg +0 -3
  110. package/lib/experimental/webchat/assets/telegram.svg +0 -10
  111. package/lib/experimental/webchat/assets/webchat.svg +0 -21
  112. package/lib/experimental/webchat/assets/whatsapp.svg +0 -4
  113. package/lib/experimental/webchat/webchat-dev.js +0 -300
  114. package/lib/experimental/webchat/webchat-dev.js.map +0 -1
  115. package/lib/experimental/webchat/webchat.js +0 -1044
  116. package/lib/experimental/webchat/webchat.js.map +0 -1
  117. package/lib/experimental/webchat-app.js +0 -635
  118. package/lib/experimental/webchat-app.js.map +0 -1
@@ -1,353 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.Message = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
-
20
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
21
-
22
- var _core = require("@botonic/core");
23
-
24
- var _react = _interopRequireWildcard(require("react"));
25
-
26
- var _Fade = _interopRequireDefault(require("react-reveal/Fade"));
27
-
28
- var _styledComponents = _interopRequireDefault(require("styled-components"));
29
-
30
- var _uuid = require("uuid");
31
-
32
- var _button = require("../../components/button");
33
-
34
- var _buttonsDisabler = require("../../components/buttons-disabler");
35
-
36
- var _reply = require("../../components/reply");
37
-
38
- var _timestamps = require("../../components/timestamps");
39
-
40
- var _constants = require("../../constants");
41
-
42
- var _contexts = require("../../contexts");
43
-
44
- var _environment = require("../../util/environment");
45
-
46
- var _react2 = require("../../util/react");
47
-
48
- var _markdown = require("./markdown");
49
-
50
- var _excluded = ["type", "blob", "from", "delay", "typing", "children", "enabletimestamps", "json", "style", "imagestyle"],
51
- _excluded2 = ["blob", "json"];
52
-
53
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
54
-
55
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56
-
57
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
58
-
59
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
60
-
61
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
62
-
63
- var MessageContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: ", ";\n position: relative;\n padding: 0px 6px;\n"])), function (props) {
64
- return props.isfromuser ? 'flex-end' : 'flex-start';
65
- });
66
-
67
- var BotMessageImageContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
68
-
69
- var Blob = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ", ";\n color: ", ";\n max-width: ", ";\n"])), function (props) {
70
- return props.bgcolor;
71
- }, function (props) {
72
- return props.color;
73
- }, function (props) {
74
- return props.blob ? props.blobwidth ? props.blobwidth : '60%' : 'calc(100% - 16px)';
75
- });
76
-
77
- var BlobText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ", "\n"])), function (props) {
78
- return props.blob ? '8px 12px' : '0px';
79
- }, function (props) {
80
- return props.markdownstyle;
81
- });
82
-
83
- var BlobTickContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n"])));
84
-
85
- var BlobTick = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: -", "px 0px;\n border: ", "px solid ", ";\n"])), function (props) {
86
- return props.pointerSize;
87
- }, function (props) {
88
- return props.pointerSize;
89
- }, _constants.COLORS.TRANSPARENT);
90
-
91
- var Message = function Message(props) {
92
- var _useContext = (0, _react.useContext)(_contexts.RequestContext),
93
- defaultTyping = _useContext.defaultTyping,
94
- defaultDelay = _useContext.defaultDelay;
95
-
96
- var _props$type = props.type,
97
- type = _props$type === void 0 ? '' : _props$type,
98
- _props$blob = props.blob,
99
- blob = _props$blob === void 0 ? true : _props$blob,
100
- _props$from = props.from,
101
- from = _props$from === void 0 ? _constants.SENDERS.bot : _props$from,
102
- _props$delay = props.delay,
103
- delay = _props$delay === void 0 ? defaultDelay : _props$delay,
104
- _props$typing = props.typing,
105
- typing = _props$typing === void 0 ? defaultTyping : _props$typing,
106
- children = props.children,
107
- _props$enabletimestam = props.enabletimestamps,
108
- enabletimestamps = _props$enabletimestam === void 0 ? props.enabletimestamps || props.enableTimestamps : _props$enabletimestam,
109
- json = props.json,
110
- style = props.style,
111
- _props$imagestyle = props.imagestyle,
112
- imagestyle = _props$imagestyle === void 0 ? props.imagestyle || props.imageStyle : _props$imagestyle,
113
- otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
114
- var isFromUser = from === _constants.SENDERS.user;
115
- var isFromBot = from === _constants.SENDERS.bot;
116
- var markdown = props.markdown;
117
-
118
- var _useContext2 = (0, _react.useContext)(_contexts.WebchatContext),
119
- webchatState = _useContext2.webchatState,
120
- addMessage = _useContext2.addMessage,
121
- updateReplies = _useContext2.updateReplies,
122
- getThemeProperty = _useContext2.getThemeProperty;
123
-
124
- var _useState = (0, _react.useState)({
125
- id: props.id || (0, _uuid.v4)()
126
- }),
127
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
128
- state = _useState2[0],
129
- setState = _useState2[1];
130
-
131
- var _useState3 = (0, _react.useState)(false),
132
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
133
- disabled = _useState4[0],
134
- setDisabled = _useState4[1];
135
-
136
- children = _buttonsDisabler.ButtonsDisabler.updateChildrenButtons(children, {
137
- parentId: state.id,
138
- disabled: disabled,
139
- setDisabled: setDisabled
140
- });
141
-
142
- var childrenWithoutButtonsNorReplies = _react["default"].Children.toArray(children).filter(function (e) {
143
- return ![_button.Button, _reply.Reply].includes(e.type);
144
- });
145
-
146
- var textChildren = childrenWithoutButtonsNorReplies.filter(function (e) {
147
- return typeof e === 'string';
148
- }).join('');
149
-
150
- var replies = _react["default"].Children.toArray(children).filter(function (e) {
151
- return e.type === _reply.Reply;
152
- });
153
-
154
- var buttons = _react["default"].Children.toArray(children).filter(function (e) {
155
- return e.type === _button.Button;
156
- });
157
-
158
- var _resolveMessageTimest = (0, _timestamps.resolveMessageTimestamps)(getThemeProperty, enabletimestamps),
159
- timestampsEnabled = _resolveMessageTimest.timestampsEnabled,
160
- getFormattedTimestamp = _resolveMessageTimest.getFormattedTimestamp,
161
- timestampStyle = _resolveMessageTimest.timestampStyle;
162
-
163
- var getEnvAck = function getEnvAck() {
164
- if (_environment.isDev) return 1;
165
- if (!isFromUser) return 1;
166
- if (props.ack !== undefined) return props.ack;
167
- return 0;
168
- };
169
-
170
- var ack = getEnvAck();
171
-
172
- if ((0, _core.isBrowser)()) {
173
- // eslint-disable-next-line react-hooks/rules-of-hooks
174
- (0, _react.useEffect)(function () {
175
- var decomposedChildren = json;
176
- var message = {
177
- id: state.id,
178
- type: type,
179
- // data: decomposedChildren ? decomposedChildren : textChildren,
180
- text: props.text || textChildren || undefined,
181
- src: props.src,
182
- lat: props.lat,
183
- "long": props["long"],
184
- timestamp: props.timestamp || getFormattedTimestamp,
185
- markdown: markdown,
186
- from: from,
187
- buttons: buttons.map(function (b) {
188
- return _objectSpread({
189
- parentId: b.props.parentId,
190
- payload: b.props.payload,
191
- path: b.props.path,
192
- url: b.props.url,
193
- target: b.props.target,
194
- webview: b.props.webview && String(b.props.webview),
195
- title: b.props.children
196
- }, _buttonsDisabler.ButtonsDisabler.withDisabledProps(b.props));
197
- }),
198
- delay: delay,
199
- typing: typing,
200
- replies: replies.map(function (r) {
201
- return {
202
- payload: r.props.payload,
203
- path: r.props.path,
204
- title: r.props.children
205
- };
206
- }),
207
- elements: props.elements,
208
- display: delay + typing == 0,
209
- customTypeName: decomposedChildren.customTypeName,
210
- ack: ack
211
- };
212
- addMessage(message);
213
- }, []); // eslint-disable-next-line react-hooks/rules-of-hooks
214
-
215
- (0, _react.useEffect)(function () {
216
- var msg = webchatState.messagesJSON.find(function (m) {
217
- return m.id === state.id;
218
- });
219
-
220
- if (msg && msg.display && webchatState.messagesJSON.filter(function (m) {
221
- return !m.display;
222
- }).length == 0) {
223
- updateReplies(replies);
224
- }
225
- }, [webchatState.messagesJSON]);
226
- }
227
-
228
- var brandColor = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandColor, _constants.COLORS.BOTONIC_BLUE);
229
-
230
- var getBgColor = function getBgColor() {
231
- if (!blob) return _constants.COLORS.TRANSPARENT;
232
-
233
- if (isFromUser) {
234
- return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground, brandColor);
235
- }
236
-
237
- return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground, _constants.COLORS.SEASHELL_WHITE);
238
- };
239
-
240
- var getMessageStyle = function getMessageStyle() {
241
- return isFromBot ? getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle) : getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle);
242
- };
243
-
244
- var hasBlobTick = function hasBlobTick() {
245
- return getThemeProperty("message.".concat(from, ".blobTick"), true);
246
- };
247
-
248
- var renderBrowser = function renderBrowser() {
249
- var m = webchatState.messagesJSON.find(function (m) {
250
- return m.id === state.id;
251
- });
252
- if (!m || !m.display) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);
253
-
254
- var getBlobTick = function getBlobTick(pointerSize) {
255
- // to add a border to the blobTick we need to create two triangles and overlap them
256
- // that is why the color depends on the pointerSize
257
- // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/
258
- var color = pointerSize == 5 ? getBgColor() : getThemeProperty("message.".concat(from, ".style.borderColor"), _constants.COLORS.TRANSPARENT);
259
-
260
- var containerStyle = _objectSpread({}, getThemeProperty("message.".concat(from, ".blobTickStyle")));
261
-
262
- var blobTickStyle = {};
263
-
264
- if (isFromUser) {
265
- containerStyle.right = 0;
266
- containerStyle.marginRight = -pointerSize;
267
- blobTickStyle.borderRight = 0;
268
- blobTickStyle.borderLeftColor = color;
269
- } else {
270
- containerStyle.left = 0;
271
- containerStyle.marginLeft = -pointerSize;
272
- blobTickStyle.borderLeft = 0;
273
- blobTickStyle.borderRightColor = color;
274
- }
275
-
276
- return /*#__PURE__*/_react["default"].createElement(BlobTickContainer, {
277
- style: containerStyle
278
- }, /*#__PURE__*/_react["default"].createElement(BlobTick, {
279
- pointerSize: pointerSize,
280
- style: blobTickStyle
281
- }));
282
- };
283
-
284
- var BotMessageImage = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImage, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandImage, _constants.WEBCHAT.DEFAULTS.LOGO));
285
- var animationsEnabled = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.enableAnimations, true);
286
-
287
- var resolveCustomTypeName = function resolveCustomTypeName() {
288
- return isFromBot && type === _core.INPUT.CUSTOM ? " ".concat(m.customTypeName) : '';
289
- };
290
-
291
- var className = "".concat(type, "-").concat(from).concat(resolveCustomTypeName());
292
- return /*#__PURE__*/_react["default"].createElement(_react2.ConditionalWrapper, {
293
- condition: animationsEnabled,
294
- wrapper: function wrapper(children) {
295
- return /*#__PURE__*/_react["default"].createElement(_Fade["default"], null, children);
296
- }
297
- }, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(MessageContainer, {
298
- isfromuser: isFromUser,
299
- style: _objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.messageStyle))
300
- }, isFromBot && BotMessageImage && /*#__PURE__*/_react["default"].createElement(BotMessageImageContainer, {
301
- style: _objectSpread(_objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle)), imagestyle)
302
- }, /*#__PURE__*/_react["default"].createElement("img", {
303
- style: {
304
- width: '100%'
305
- },
306
- src: (0, _environment.resolveImage)(BotMessageImage)
307
- })), /*#__PURE__*/_react["default"].createElement(Blob, (0, _extends2["default"])({
308
- className: className,
309
- bgcolor: getBgColor(),
310
- color: isFromUser ? _constants.COLORS.SOLID_WHITE : _constants.COLORS.SOLID_BLACK,
311
- blobwidth: getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth),
312
- blob: blob,
313
- style: _objectSpread(_objectSpread(_objectSpread({}, getMessageStyle()), style), {
314
- opacity: ack === 0 ? 0.6 : 1
315
- })
316
- }, otherProps), markdown ? /*#__PURE__*/_react["default"].createElement(BlobText, {
317
- blob: blob,
318
- dangerouslySetInnerHTML: {
319
- __html: (0, _markdown.renderMarkdown)(isFromUser ? (0, _markdown.renderLinks)(textChildren) : textChildren)
320
- },
321
- markdownstyle: (0, _markdown.getMarkdownStyle)(getThemeProperty, isFromUser ? _constants.COLORS.SEASHELL_WHITE : brandColor)
322
- }) : /*#__PURE__*/_react["default"].createElement(BlobText, {
323
- blob: blob
324
- }, childrenWithoutButtonsNorReplies), buttons, Boolean(blob) && hasBlobTick() && getBlobTick(6), Boolean(blob) && hasBlobTick() && getBlobTick(5))), timestampsEnabled && /*#__PURE__*/_react["default"].createElement(_timestamps.MessageTimestamp, {
325
- timestamp: m.timestamp,
326
- style: timestampStyle,
327
- isfromuser: isFromUser
328
- })));
329
- };
330
-
331
- var _blob = props.blob,
332
- _json = props.json,
333
- nodeProps = (0, _objectWithoutProperties2["default"])(props, _excluded2);
334
-
335
- var renderNode = function renderNode() {
336
- return type === _core.INPUT.CUSTOM ? /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
337
- json: JSON.stringify(_json),
338
- typing: typing,
339
- delay: delay
340
- }, nodeProps)) : /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
341
- typing: typing,
342
- delay: delay
343
- }, nodeProps), children);
344
- };
345
-
346
- return (0, _react2.renderComponent)({
347
- renderBrowser: renderBrowser,
348
- renderNode: renderNode
349
- });
350
- };
351
-
352
- exports.Message = Message;
353
- //# sourceMappingURL=message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/message.jsx"],"names":["MessageContainer","styled","div","props","isfromuser","BotMessageImageContainer","Blob","bgcolor","color","blob","blobwidth","BlobText","markdownstyle","BlobTickContainer","BlobTick","pointerSize","COLORS","TRANSPARENT","Message","RequestContext","defaultTyping","defaultDelay","type","from","SENDERS","bot","delay","typing","children","enabletimestamps","enableTimestamps","json","style","imagestyle","imageStyle","otherProps","isFromUser","user","isFromBot","markdown","WebchatContext","webchatState","addMessage","updateReplies","getThemeProperty","id","state","setState","disabled","setDisabled","ButtonsDisabler","updateChildrenButtons","parentId","childrenWithoutButtonsNorReplies","React","Children","toArray","filter","e","Button","Reply","includes","textChildren","join","replies","buttons","timestampsEnabled","getFormattedTimestamp","timestampStyle","getEnvAck","isDev","ack","undefined","decomposedChildren","message","text","src","lat","timestamp","map","b","payload","path","url","target","webview","String","title","withDisabledProps","r","elements","display","customTypeName","msg","messagesJSON","find","m","length","brandColor","WEBCHAT","CUSTOM_PROPERTIES","BOTONIC_BLUE","getBgColor","userMessageBackground","botMessageBackground","SEASHELL_WHITE","getMessageStyle","botMessageStyle","userMessageStyle","hasBlobTick","renderBrowser","getBlobTick","containerStyle","blobTickStyle","right","marginRight","borderRight","borderLeftColor","left","marginLeft","borderLeft","borderRightColor","BotMessageImage","botMessageImage","brandImage","DEFAULTS","LOGO","animationsEnabled","enableAnimations","resolveCustomTypeName","INPUT","CUSTOM","className","messageStyle","botMessageImageStyle","width","SOLID_WHITE","SOLID_BLACK","botMessageBlobWidth","opacity","__html","Boolean","_blob","_json","nodeProps","renderNode","JSON","stringify"],"mappings":"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","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useEffect, useState } from 'react'\nimport Fade from 'react-reveal/Fade'\nimport styled from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Button } from '../../components/button'\nimport { ButtonsDisabler } from '../../components/buttons-disabler'\nimport { Reply } from '../../components/reply'\nimport {\n MessageTimestamp,\n resolveMessageTimestamps,\n} from '../../components/timestamps'\nimport { COLORS, SENDERS, WEBCHAT } from '../../constants'\nimport { RequestContext, WebchatContext } from '../../contexts'\nimport { isDev, resolveImage } from '../../util/environment'\nimport { ConditionalWrapper, renderComponent } from '../../util/react'\n// Experimental\nimport { getMarkdownStyle, renderLinks, renderMarkdown } from './markdown'\n\nconst MessageContainer = styled.div`\n display: flex;\n justify-content: ${props => (props.isfromuser ? 'flex-end' : 'flex-start')};\n position: relative;\n padding: 0px 6px;\n`\n\nconst BotMessageImageContainer = styled.div`\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Blob = styled.div`\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ${props => props.bgcolor};\n color: ${props => props.color};\n max-width: ${props =>\n props.blob\n ? props.blobwidth\n ? props.blobwidth\n : '60%'\n : 'calc(100% - 16px)'};\n`\n\nconst BlobText = styled.div`\n padding: ${props => (props.blob ? '8px 12px' : '0px')};\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ${props => props.markdownstyle}\n`\n\nconst BlobTickContainer = styled.div`\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n`\nconst BlobTick = styled.div`\n position: relative;\n margin: -${props => props.pointerSize}px 0px;\n border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};\n`\n\nexport const Message = props => {\n const { defaultTyping, defaultDelay } = useContext(RequestContext)\n let {\n type = '',\n blob = true,\n from = SENDERS.bot,\n delay = defaultDelay,\n typing = defaultTyping,\n children,\n enabletimestamps = props.enabletimestamps || props.enableTimestamps,\n json,\n style,\n imagestyle = props.imagestyle || props.imageStyle,\n ...otherProps\n } = props\n\n const isFromUser = from === SENDERS.user\n const isFromBot = from === SENDERS.bot\n const markdown = props.markdown\n const {\n webchatState,\n addMessage,\n updateReplies,\n getThemeProperty,\n } = useContext(WebchatContext)\n const [state, setState] = useState({\n id: props.id || uuidv4(),\n })\n\n const [disabled, setDisabled] = useState(false)\n children = ButtonsDisabler.updateChildrenButtons(children, {\n parentId: state.id,\n disabled,\n setDisabled,\n })\n\n const childrenWithoutButtonsNorReplies = React.Children.toArray(\n children\n ).filter(e => ![Button, Reply].includes(e.type))\n\n const textChildren = childrenWithoutButtonsNorReplies\n .filter(e => typeof e === 'string')\n .join('')\n\n const replies = React.Children.toArray(children).filter(e => e.type === Reply)\n const buttons = React.Children.toArray(children).filter(\n e => e.type === Button\n )\n\n const {\n timestampsEnabled,\n getFormattedTimestamp,\n timestampStyle,\n } = resolveMessageTimestamps(getThemeProperty, enabletimestamps)\n\n const getEnvAck = () => {\n if (isDev) return 1\n if (!isFromUser) return 1\n if (props.ack !== undefined) return props.ack\n return 0\n }\n\n const ack = getEnvAck()\n\n if (isBrowser()) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const decomposedChildren = json\n const message = {\n id: state.id,\n type,\n // data: decomposedChildren ? decomposedChildren : textChildren,\n text: props.text || textChildren || undefined,\n src: props.src,\n lat: props.lat,\n long: props.long,\n timestamp: props.timestamp || getFormattedTimestamp,\n markdown,\n from,\n buttons: buttons.map(b => ({\n parentId: b.props.parentId,\n payload: b.props.payload,\n path: b.props.path,\n url: b.props.url,\n target: b.props.target,\n webview: b.props.webview && String(b.props.webview),\n title: b.props.children,\n ...ButtonsDisabler.withDisabledProps(b.props),\n })),\n delay,\n typing,\n replies: replies.map(r => ({\n payload: r.props.payload,\n path: r.props.path,\n title: r.props.children,\n })),\n elements: props.elements,\n display: delay + typing == 0,\n customTypeName: decomposedChildren.customTypeName,\n ack: ack,\n }\n addMessage(message)\n }, [])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const msg = webchatState.messagesJSON.find(m => m.id === state.id)\n if (\n msg &&\n msg.display &&\n webchatState.messagesJSON.filter(m => !m.display).length == 0\n ) {\n updateReplies(replies)\n }\n }, [webchatState.messagesJSON])\n }\n\n const brandColor = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandColor,\n COLORS.BOTONIC_BLUE\n )\n\n const getBgColor = () => {\n if (!blob) return COLORS.TRANSPARENT\n if (isFromUser) {\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground,\n brandColor\n )\n }\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground,\n COLORS.SEASHELL_WHITE\n )\n }\n\n const getMessageStyle = () =>\n isFromBot\n ? getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle)\n : getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle)\n\n const hasBlobTick = () => getThemeProperty(`message.${from}.blobTick`, true)\n\n const renderBrowser = () => {\n const m = webchatState.messagesJSON.find(m => m.id === state.id)\n if (!m || !m.display) return <></>\n\n const getBlobTick = pointerSize => {\n // to add a border to the blobTick we need to create two triangles and overlap them\n // that is why the color depends on the pointerSize\n // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/\n const color =\n pointerSize == 5\n ? getBgColor()\n : getThemeProperty(\n `message.${from}.style.borderColor`,\n COLORS.TRANSPARENT\n )\n const containerStyle = {\n ...getThemeProperty(`message.${from}.blobTickStyle`),\n }\n const blobTickStyle = {}\n if (isFromUser) {\n containerStyle.right = 0\n containerStyle.marginRight = -pointerSize\n blobTickStyle.borderRight = 0\n blobTickStyle.borderLeftColor = color\n } else {\n containerStyle.left = 0\n containerStyle.marginLeft = -pointerSize\n blobTickStyle.borderLeft = 0\n blobTickStyle.borderRightColor = color\n }\n return (\n <BlobTickContainer style={containerStyle}>\n <BlobTick pointerSize={pointerSize} style={blobTickStyle} />\n </BlobTickContainer>\n )\n }\n\n const BotMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,\n getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandImage,\n WEBCHAT.DEFAULTS.LOGO\n )\n )\n const animationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableAnimations,\n true\n )\n\n const resolveCustomTypeName = () =>\n isFromBot && type === INPUT.CUSTOM ? ` ${m.customTypeName}` : ''\n\n const className = `${type}-${from}${resolveCustomTypeName()}`\n return (\n <ConditionalWrapper\n condition={animationsEnabled}\n wrapper={children => <Fade>{children}</Fade>}\n >\n <>\n <MessageContainer\n isfromuser={isFromUser}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.messageStyle),\n }}\n >\n {isFromBot && BotMessageImage && (\n <BotMessageImageContainer\n style={{\n ...getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle\n ),\n ...imagestyle,\n }}\n >\n <img\n style={{ width: '100%' }}\n src={resolveImage(BotMessageImage)}\n />\n </BotMessageImageContainer>\n )}\n <Blob\n className={className}\n bgcolor={getBgColor()}\n color={isFromUser ? COLORS.SOLID_WHITE : COLORS.SOLID_BLACK}\n blobwidth={getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth\n )}\n blob={blob}\n style={{\n ...getMessageStyle(),\n ...style,\n ...{ opacity: ack === 0 ? 0.6 : 1 },\n }}\n {...otherProps}\n >\n {markdown ? (\n <BlobText\n blob={blob}\n dangerouslySetInnerHTML={{\n __html: renderMarkdown(\n isFromUser ? renderLinks(textChildren) : textChildren\n ),\n }}\n markdownstyle={getMarkdownStyle(\n getThemeProperty,\n isFromUser ? COLORS.SEASHELL_WHITE : brandColor\n )}\n />\n ) : (\n <BlobText blob={blob}>\n {childrenWithoutButtonsNorReplies}\n </BlobText>\n )}\n {buttons}\n {Boolean(blob) && hasBlobTick() && getBlobTick(6)}\n {Boolean(blob) && hasBlobTick() && getBlobTick(5)}\n </Blob>\n </MessageContainer>\n {timestampsEnabled && (\n <MessageTimestamp\n timestamp={m.timestamp}\n style={timestampStyle}\n isfromuser={isFromUser}\n />\n )}\n </>\n </ConditionalWrapper>\n )\n }\n\n const { blob: _blob, json: _json, ...nodeProps } = props\n const renderNode = () =>\n type === INPUT.CUSTOM ? (\n <message\n json={JSON.stringify(_json)}\n typing={typing}\n delay={delay}\n {...nodeProps}\n />\n ) : (\n <message typing={typing} delay={delay} {...nodeProps}>\n {children}\n </message>\n )\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"message.js"}
@@ -1,80 +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.Text = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _core = require("@botonic/core");
17
-
18
- var _react = _interopRequireWildcard(require("react"));
19
-
20
- var _react2 = require("../../util/react");
21
-
22
- var _markdown = require("./markdown");
23
-
24
- var _message = require("./message");
25
-
26
- 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); }
27
-
28
- 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; }
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
34
- var serializeText = function serializeText(children) {
35
- children = Array.isArray(children) ? children : [children];
36
- var text = children.filter(function (e) {
37
- return !e.type;
38
- }).map(function (e) {
39
- if (Array.isArray(e)) return serializeText(e);else return String(e);
40
- }).join('');
41
- return text;
42
- };
43
-
44
- var serialize = function serialize(textProps) {
45
- if (!textProps.markdown) return {
46
- text: serializeText(textProps.children)
47
- };
48
- return {
49
- text: (0, _markdown.serializeMarkdown)(textProps.children)
50
- };
51
- };
52
- /**
53
- *
54
- * @param {TextProps} props
55
- * @returns {JSX.Element}
56
- */
57
-
58
-
59
- var Text = function Text(props) {
60
- var defaultTextProps = {
61
- markdown: props.markdown === undefined ? true : props.markdown
62
- };
63
- var textProps = (0, _react2.mapObjectNonBooleanValues)(_objectSpread(_objectSpread(_objectSpread({}, props), defaultTextProps), {
64
- children: _react.Children.toArray(props.children)
65
- }));
66
- if (!textProps.markdown) return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
67
- json: serialize(textProps)
68
- }, textProps, {
69
- type: _core.INPUT.TEXT
70
- }), textProps.children);
71
- return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
72
- json: serialize(textProps)
73
- }, textProps, {
74
- type: _core.INPUT.TEXT
75
- }), (0, _markdown.toMarkdownChildren)(textProps.children));
76
- };
77
-
78
- exports.Text = Text;
79
- Text.serialize = serialize;
80
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/text.jsx"],"names":["serializeText","children","Array","isArray","text","filter","e","type","map","String","join","serialize","textProps","markdown","Text","props","defaultTextProps","undefined","Children","toArray","INPUT","TEXT"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,QAAQ,EAAI;AAChCA,EAAAA,QAAQ,GAAGC,KAAK,CAACC,OAAN,CAAcF,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAAhD;AACA,MAAMG,IAAI,GAAGH,QAAQ,CAClBI,MADU,CACH,UAAAC,CAAC;AAAA,WAAI,CAACA,CAAC,CAACC,IAAP;AAAA,GADE,EAEVC,GAFU,CAEN,UAAAF,CAAC,EAAI;AACR,QAAIJ,KAAK,CAACC,OAAN,CAAcG,CAAd,CAAJ,EAAsB,OAAON,aAAa,CAACM,CAAD,CAApB,CAAtB,KACK,OAAOG,MAAM,CAACH,CAAD,CAAb;AACN,GALU,EAMVI,IANU,CAML,EANK,CAAb;AAOA,SAAON,IAAP;AACD,CAVD;;AAYA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAAC,SAAS,EAAI;AAC7B,MAAI,CAACA,SAAS,CAACC,QAAf,EACE,OAAO;AACLT,IAAAA,IAAI,EAAEJ,aAAa,CAACY,SAAS,CAACX,QAAX;AADd,GAAP;AAGF,SAAO;AAAEG,IAAAA,IAAI,EAAE,iCAAkBQ,SAAS,CAACX,QAA5B;AAAR,GAAP;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACO,IAAMa,IAAI,GAAG,SAAPA,IAAO,CAAAC,KAAK,EAAI;AAC3B,MAAMC,gBAAgB,GAAG;AACvBH,IAAAA,QAAQ,EAAEE,KAAK,CAACF,QAAN,KAAmBI,SAAnB,GAA+B,IAA/B,GAAsCF,KAAK,CAACF;AAD/B,GAAzB;AAGA,MAAMD,SAAS,GAAG,qFACbG,KADa,GAEbC,gBAFa,GAGb;AAAEf,IAAAA,QAAQ,EAAEiB,gBAASC,OAAT,CAAiBJ,KAAK,CAACd,QAAvB;AAAZ,GAHa,EAAlB;AAKA,MAAI,CAACW,SAAS,CAACC,QAAf,EACE,oBACE,gCAAC,gBAAD;AAAS,IAAA,IAAI,EAAEF,SAAS,CAACC,SAAD;AAAxB,KAAyCA,SAAzC;AAAoD,IAAA,IAAI,EAAEQ,YAAMC;AAAhE,MACGT,SAAS,CAACX,QADb,CADF;AAKF,sBACE,gCAAC,gBAAD;AAAS,IAAA,IAAI,EAAEU,SAAS,CAACC,SAAD;AAAxB,KAAyCA,SAAzC;AAAoD,IAAA,IAAI,EAAEQ,YAAMC;AAAhE,MACG,kCAAmBT,SAAS,CAACX,QAA7B,CADH,CADF;AAKD,CApBM;;;AAsBPa,IAAI,CAACH,SAAL,GAAiBA,SAAjB","sourcesContent":["import { INPUT } from '@botonic/core'\nimport React, { Children } from 'react'\n\nimport { mapObjectNonBooleanValues } from '../../util/react'\nimport { serializeMarkdown, toMarkdownChildren } from './markdown'\nimport { Message } from './message'\n\nconst serializeText = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => !e.type)\n .map(e => {\n if (Array.isArray(e)) return serializeText(e)\n else return String(e)\n })\n .join('')\n return text\n}\n\nconst serialize = textProps => {\n if (!textProps.markdown)\n return {\n text: serializeText(textProps.children),\n }\n return { text: serializeMarkdown(textProps.children) }\n}\n\n/**\n *\n * @param {TextProps} props\n * @returns {JSX.Element}\n */\nexport const Text = props => {\n const defaultTextProps = {\n markdown: props.markdown === undefined ? true : props.markdown,\n }\n const textProps = mapObjectNonBooleanValues({\n ...props,\n ...defaultTextProps,\n ...{ children: Children.toArray(props.children) },\n })\n if (!textProps.markdown)\n return (\n <Message json={serialize(textProps)} {...textProps} type={INPUT.TEXT}>\n {textProps.children}\n </Message>\n )\n return (\n <Message json={serialize(textProps)} {...textProps} type={INPUT.TEXT}>\n {toMarkdownChildren(textProps.children)}\n </Message>\n )\n}\n\nText.serialize = serialize\n"],"file":"text.js"}
@@ -1,49 +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.Video = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
- var _core = require("@botonic/core");
15
-
16
- var _react = _interopRequireDefault(require("react"));
17
-
18
- var _styledComponents = _interopRequireDefault(require("styled-components"));
19
-
20
- var _constants = require("../../constants");
21
-
22
- var _message = require("./message");
23
-
24
- var _templateObject;
25
-
26
- var StyledVideo = _styledComponents["default"].video(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n border-radius: 8px;\n max-height: 180px;\n max-width: 300px;\n margin: 10px;\n"])), _constants.COLORS.SOLID_BLACK_ALPHA_0_5);
27
-
28
- var serialize = function serialize(videoProps) {
29
- return {
30
- src: videoProps.src
31
- };
32
- };
33
-
34
- var Video = function Video(props) {
35
- return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
36
- role: _constants.ROLES.VIDEO_MESSAGE,
37
- json: serialize(props)
38
- }, props, {
39
- type: _core.INPUT.VIDEO
40
- }), (0, _core.isBrowser)() && /*#__PURE__*/_react["default"].createElement(StyledVideo, {
41
- controls: true
42
- }, /*#__PURE__*/_react["default"].createElement("source", {
43
- src: props.src
44
- })), props.children);
45
- };
46
-
47
- exports.Video = Video;
48
- Video.serialize = serialize;
49
- //# sourceMappingURL=video.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/video.jsx"],"names":["StyledVideo","styled","video","COLORS","SOLID_BLACK_ALPHA_0_5","serialize","videoProps","src","Video","props","ROLES","VIDEO_MESSAGE","INPUT","VIDEO","children"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;AAEA,IAAMA,WAAW,GAAGC,6BAAOC,KAAV,uMACKC,kBAAOC,qBADZ,CAAjB;;AAQA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,UAAU,EAAI;AAC9B,SAAO;AAAEC,IAAAA,GAAG,EAAED,UAAU,CAACC;AAAlB,GAAP;AACD,CAFD;;AAIO,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAAAC,KAAK;AAAA,sBACxB,gCAAC,gBAAD;AACE,IAAA,IAAI,EAAEC,iBAAMC,aADd;AAEE,IAAA,IAAI,EAAEN,SAAS,CAACI,KAAD;AAFjB,KAGMA,KAHN;AAIE,IAAA,IAAI,EAAEG,YAAMC;AAJd,MAMG,uCACC,gCAAC,WAAD;AAAa,IAAA,QAAQ;AAArB,kBACE;AAAQ,IAAA,GAAG,EAAEJ,KAAK,CAACF;AAAnB,IADF,CAPJ,EAWGE,KAAK,CAACK,QAXT,CADwB;AAAA,CAAnB;;;AAgBPN,KAAK,CAACH,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS, ROLES } from '../../constants'\nimport { Message } from './message'\n\nconst StyledVideo = styled.video`\n background-color: ${COLORS.SOLID_BLACK_ALPHA_0_5};\n border-radius: 8px;\n max-height: 180px;\n max-width: 300px;\n margin: 10px;\n`\n\nconst serialize = videoProps => {\n return { src: videoProps.src }\n}\n\nexport const Video = props => (\n <Message\n role={ROLES.VIDEO_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.VIDEO}\n >\n {isBrowser() && (\n <StyledVideo controls>\n <source src={props.src} />\n </StyledVideo>\n )}\n {props.children}\n </Message>\n)\n\nVideo.serialize = serialize\n"],"file":"video.js"}
@@ -1,53 +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.WhatsappTemplate = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _core = require("@botonic/core");
13
-
14
- var _react = _interopRequireDefault(require("react"));
15
-
16
- var _react2 = require("../../util/react");
17
-
18
- var _message = require("./message");
19
-
20
- var serialize = function serialize(whatsappTemplateProps) {
21
- return {
22
- text: whatsappTemplateProps
23
- };
24
- };
25
-
26
- var WhatsappTemplate = function WhatsappTemplate(props) {
27
- var renderBrowser = function renderBrowser() {
28
- // Return a dummy message for browser
29
- var message = "Template ".concat(props.name, " with namespace ").concat(props.namespace, " would be sent to the user.");
30
- return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
31
- json: serialize(message)
32
- }, props, {
33
- type: _core.INPUT.TEXT
34
- }), message);
35
- };
36
-
37
- var renderNode = function renderNode() {
38
- return /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({}, props, {
39
- header: props.header && JSON.stringify(props.header),
40
- body: props.body && JSON.stringify(props.body),
41
- footer: props.footer && JSON.stringify(props.footer),
42
- type: _core.INPUT.WHATSAPP_TEMPLATE
43
- }));
44
- };
45
-
46
- return (0, _react2.renderComponent)({
47
- renderBrowser: renderBrowser,
48
- renderNode: renderNode
49
- });
50
- };
51
-
52
- exports.WhatsappTemplate = WhatsappTemplate;
53
- //# sourceMappingURL=whatsapp-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/whatsapp-template.jsx"],"names":["serialize","whatsappTemplateProps","text","WhatsappTemplate","props","renderBrowser","message","name","namespace","INPUT","TEXT","renderNode","header","JSON","stringify","body","footer","WHATSAPP_TEMPLATE"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAAAC,qBAAqB,EAAI;AACzC,SAAO;AAAEC,IAAAA,IAAI,EAAED;AAAR,GAAP;AACD,CAFD;;AAIO,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,KAAK,EAAI;AACvC,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B;AACA,QAAMC,OAAO,sBAAeF,KAAK,CAACG,IAArB,6BAA4CH,KAAK,CAACI,SAAlD,gCAAb;AACA,wBACE,gCAAC,gBAAD;AAAS,MAAA,IAAI,EAAER,SAAS,CAACM,OAAD;AAAxB,OAAuCF,KAAvC;AAA8C,MAAA,IAAI,EAAEK,YAAMC;AAA1D,QACGJ,OADH,CADF;AAKD,GARD;;AAUA,MAAMK,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,wBACE,yEACMP,KADN;AAEE,MAAA,MAAM,EAAEA,KAAK,CAACQ,MAAN,IAAgBC,IAAI,CAACC,SAAL,CAAeV,KAAK,CAACQ,MAArB,CAF1B;AAGE,MAAA,IAAI,EAAER,KAAK,CAACW,IAAN,IAAcF,IAAI,CAACC,SAAL,CAAeV,KAAK,CAACW,IAArB,CAHtB;AAIE,MAAA,MAAM,EAAEX,KAAK,CAACY,MAAN,IAAgBH,IAAI,CAACC,SAAL,CAAeV,KAAK,CAACY,MAArB,CAJ1B;AAKE,MAAA,IAAI,EAAEP,YAAMQ;AALd,OADF;AASD,GAVD;;AAYA,SAAO,6BAAgB;AAAEZ,IAAAA,aAAa,EAAbA,aAAF;AAAiBM,IAAAA,UAAU,EAAVA;AAAjB,GAAhB,CAAP;AACD,CAxBM","sourcesContent":["import { INPUT } from '@botonic/core'\nimport React from 'react'\n\nimport { renderComponent } from '../../util/react'\nimport { Message } from './message'\n\nconst serialize = whatsappTemplateProps => {\n return { text: whatsappTemplateProps }\n}\n\nexport const WhatsappTemplate = props => {\n const renderBrowser = () => {\n // Return a dummy message for browser\n const message = `Template ${props.name} with namespace ${props.namespace} would be sent to the user.`\n return (\n <Message json={serialize(message)} {...props} type={INPUT.TEXT}>\n {message}\n </Message>\n )\n }\n\n const renderNode = () => {\n return (\n <message\n {...props}\n header={props.header && JSON.stringify(props.header)}\n body={props.body && JSON.stringify(props.body)}\n footer={props.footer && JSON.stringify(props.footer)}\n type={INPUT.WHATSAPP_TEMPLATE}\n />\n )\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"whatsapp-template.js"}