@botonic/react 1.0.0-dev.1 → 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.
- package/lib/components/button.js +2 -0
- package/lib/components/button.js.map +1 -1
- package/lib/components/components.js +1 -1
- package/lib/components/image.js +47 -5
- package/lib/components/image.js.map +1 -1
- package/lib/components/index.js +6 -6
- package/lib/components/markdown.js +1 -1
- package/lib/components/multichannel/multichannel-utils.js +8 -6
- package/lib/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/components/timestamps.js +1 -1
- package/lib/constants.js +2 -1
- package/lib/constants.js.map +1 -1
- package/lib/dev-app.js +7 -6
- package/lib/dev-app.js.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +20 -20
- package/lib/message-utils.js +1 -1
- package/lib/util/dom.js +8 -2
- package/lib/util/dom.js.map +1 -1
- package/lib/util/environment.js +1 -1
- package/lib/util/objects.js +1 -1
- package/lib/util/react.js +1 -1
- package/lib/util/webchat.js +1 -1
- package/lib/webchat/actions.js +3 -1
- package/lib/webchat/actions.js.map +1 -1
- package/lib/webchat/devices/device-adapter.js +14 -4
- package/lib/webchat/devices/device-adapter.js.map +1 -1
- package/lib/webchat/devices/scrollbar-controller.js +5 -3
- package/lib/webchat/devices/scrollbar-controller.js.map +1 -1
- package/lib/webchat/header.js +1 -1
- package/lib/webchat/hooks.js +14 -4
- package/lib/webchat/hooks.js.map +1 -1
- package/lib/webchat/index.js +1 -1
- package/lib/webchat/webchat-reducer.js +6 -0
- package/lib/webchat/webchat-reducer.js.map +1 -1
- package/lib/webchat/webchat.js +21 -4
- package/lib/webchat/webchat.js.map +1 -1
- package/lib/webchat/webview.js +1 -1
- package/lib/webchat-app.js +20 -9
- package/lib/webchat-app.js.map +1 -1
- package/package.json +6 -6
- package/src/components/button.jsx +2 -0
- package/src/dev-app.jsx +8 -3
- package/src/experimental/components/custom-message.jsx +2 -1
- package/src/experimental/components/message.jsx +14 -7
- package/src/experimental/constants.js +189 -0
- package/src/experimental/contexts.jsx +36 -0
- package/src/experimental/dev-app.jsx +14 -7
- package/src/experimental/index.js +32 -20
- package/src/experimental/msg-to-botonic.jsx +9 -9
- package/src/experimental/react-bot.jsx +1 -1
- package/src/experimental/util/dom.js +55 -0
- package/src/experimental/util/objects.js +39 -0
- package/src/experimental/util/webchat.js +61 -0
- package/src/experimental/webchat/actions.jsx +24 -0
- package/src/experimental/webchat/hooks.js +296 -0
- package/src/experimental/webchat/messages-reducer.js +86 -0
- package/src/experimental/webchat/session-view.jsx +166 -0
- package/src/experimental/webchat/webchat-dev.jsx +23 -19
- package/src/experimental/webchat/webchat-reducer.js +68 -0
- package/src/experimental/webchat/webchat.jsx +107 -75
- package/src/experimental/webchat-app.jsx +34 -15
- package/src/index.d.ts +1 -0
- package/src/util/dom.js +5 -3
- package/src/webchat/devices/device-adapter.js +16 -4
- package/src/webchat/devices/scrollbar-controller.js +9 -4
- package/src/webchat/webchat.jsx +2 -1
- package/src/webchat-app.jsx +6 -4
- package/lib/experimental/components/audio.js +0 -46
- package/lib/experimental/components/audio.js.map +0 -1
- package/lib/experimental/components/carousel.js +0 -194
- package/lib/experimental/components/carousel.js.map +0 -1
- package/lib/experimental/components/custom-message.js +0 -132
- package/lib/experimental/components/custom-message.js.map +0 -1
- package/lib/experimental/components/document.js +0 -69
- package/lib/experimental/components/document.js.map +0 -1
- package/lib/experimental/components/image.js +0 -47
- package/lib/experimental/components/image.js.map +0 -1
- package/lib/experimental/components/index.js +0 -184
- package/lib/experimental/components/index.js.map +0 -1
- package/lib/experimental/components/location.js +0 -54
- package/lib/experimental/components/location.js.map +0 -1
- package/lib/experimental/components/markdown.js +0 -103
- package/lib/experimental/components/markdown.js.map +0 -1
- package/lib/experimental/components/message.js +0 -353
- package/lib/experimental/components/message.js.map +0 -1
- package/lib/experimental/components/text.js +0 -80
- package/lib/experimental/components/text.js.map +0 -1
- package/lib/experimental/components/video.js +0 -49
- package/lib/experimental/components/video.js.map +0 -1
- package/lib/experimental/components/whatsapp-template.js +0 -53
- package/lib/experimental/components/whatsapp-template.js.map +0 -1
- package/lib/experimental/dev-app.js +0 -240
- package/lib/experimental/dev-app.js.map +0 -1
- package/lib/experimental/index.js +0 -1022
- package/lib/experimental/index.js.map +0 -1
- package/lib/experimental/msg-to-botonic.js +0 -162
- package/lib/experimental/msg-to-botonic.js.map +0 -1
- package/lib/experimental/node-app.js +0 -97
- package/lib/experimental/node-app.js.map +0 -1
- package/lib/experimental/react-bot.js +0 -167
- package/lib/experimental/react-bot.js.map +0 -1
- package/lib/experimental/webchat/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
- package/lib/experimental/webchat/assets/botonic-logo-white.svg +0 -16
- package/lib/experimental/webchat/assets/messenger.svg +0 -10
- package/lib/experimental/webchat/assets/open-new-window.svg +0 -3
- package/lib/experimental/webchat/assets/open.svg +0 -3
- package/lib/experimental/webchat/assets/telegram.svg +0 -10
- package/lib/experimental/webchat/assets/webchat.svg +0 -21
- package/lib/experimental/webchat/assets/whatsapp.svg +0 -4
- package/lib/experimental/webchat/webchat-dev.js +0 -300
- package/lib/experimental/webchat/webchat-dev.js.map +0 -1
- package/lib/experimental/webchat/webchat.js +0 -1051
- package/lib/experimental/webchat/webchat.js.map +0 -1
- package/lib/experimental/webchat-app.js +0 -642
- package/lib/experimental/webchat-app.js.map +0 -1
package/src/webchat-app.jsx
CHANGED
|
@@ -141,7 +141,7 @@ export class WebchatApp {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
onServiceEvent(event) {
|
|
144
|
-
if (event.action === '
|
|
144
|
+
if (event.action === 'connection_change') {
|
|
145
145
|
this.onConnectionChange && this.onConnectionChange(this, event.online)
|
|
146
146
|
this.webchatRef.current.setOnline(event.online)
|
|
147
147
|
} else if (event.action === 'update_message_info')
|
|
@@ -243,7 +243,7 @@ export class WebchatApp {
|
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
// eslint-disable-next-line complexity
|
|
246
|
-
getComponent(optionsAtRuntime = {}) {
|
|
246
|
+
getComponent(host, optionsAtRuntime = {}) {
|
|
247
247
|
let {
|
|
248
248
|
theme = {},
|
|
249
249
|
persistentMenu,
|
|
@@ -265,6 +265,7 @@ export class WebchatApp {
|
|
|
265
265
|
appId,
|
|
266
266
|
visibility,
|
|
267
267
|
server,
|
|
268
|
+
hostId,
|
|
268
269
|
...webchatOptions
|
|
269
270
|
} = optionsAtRuntime
|
|
270
271
|
theme = merge(this.theme, theme)
|
|
@@ -287,6 +288,8 @@ export class WebchatApp {
|
|
|
287
288
|
this.onConnectionChange = onConnectionChange || this.onConnectionChange
|
|
288
289
|
this.visibility = visibility || this.visibility
|
|
289
290
|
this.appId = appId || this.appId
|
|
291
|
+
this.hostId = hostId || this.hostId
|
|
292
|
+
this.createRootElement(host)
|
|
290
293
|
return (
|
|
291
294
|
<Webchat
|
|
292
295
|
{...webchatOptions}
|
|
@@ -342,11 +345,10 @@ export class WebchatApp {
|
|
|
342
345
|
|
|
343
346
|
async render(dest, optionsAtRuntime = {}) {
|
|
344
347
|
onDOMLoaded(async () => {
|
|
345
|
-
this.createRootElement(dest)
|
|
346
348
|
const isVisible = await this.resolveWebchatVisibility(optionsAtRuntime)
|
|
347
349
|
if (isVisible)
|
|
348
350
|
render(
|
|
349
|
-
this.getComponent(optionsAtRuntime),
|
|
351
|
+
this.getComponent(dest, optionsAtRuntime),
|
|
350
352
|
this.getReactMountNode(dest)
|
|
351
353
|
)
|
|
352
354
|
})
|
|
@@ -1,46 +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.Audio = 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 _constants = require("../../constants");
|
|
17
|
-
|
|
18
|
-
var _message = require("./message");
|
|
19
|
-
|
|
20
|
-
var serialize = function serialize(audioProps) {
|
|
21
|
-
return {
|
|
22
|
-
src: audioProps.src
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var Audio = function Audio(props) {
|
|
27
|
-
return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
|
|
28
|
-
role: _constants.ROLES.AUDIO_MESSAGE,
|
|
29
|
-
json: serialize(props)
|
|
30
|
-
}, props, {
|
|
31
|
-
type: _core.INPUT.AUDIO
|
|
32
|
-
}), (0, _core.isBrowser)() && /*#__PURE__*/_react["default"].createElement("audio", {
|
|
33
|
-
style: {
|
|
34
|
-
maxWidth: '100%'
|
|
35
|
-
},
|
|
36
|
-
id: "myAudio",
|
|
37
|
-
controls: true
|
|
38
|
-
}, /*#__PURE__*/_react["default"].createElement("source", {
|
|
39
|
-
src: props.src,
|
|
40
|
-
type: "audio/mpeg"
|
|
41
|
-
}), "Your browser does not support this audio format."), props.children);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
exports.Audio = Audio;
|
|
45
|
-
Audio.serialize = serialize;
|
|
46
|
-
//# sourceMappingURL=audio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/experimental/components/audio.jsx"],"names":["serialize","audioProps","src","Audio","props","ROLES","AUDIO_MESSAGE","INPUT","AUDIO","maxWidth","children"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,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;AAAO,IAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAAd;AAAoC,IAAA,EAAE,EAAC,SAAvC;AAAiD,IAAA,QAAQ;AAAzD,kBACE;AAAQ,IAAA,GAAG,EAAEL,KAAK,CAACF,GAAnB;AAAwB,IAAA,IAAI,EAAC;AAA7B,IADF,qDAPJ,EAYGE,KAAK,CAACM,QAZT,CADwB;AAAA,CAAnB;;;AAiBPP,KAAK,CAACH,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React from 'react'\n\nimport { ROLES } from '../../constants'\nimport { Message } from './message'\n\nconst serialize = audioProps => {\n return { src: audioProps.src }\n}\n\nexport const Audio = props => (\n <Message\n role={ROLES.AUDIO_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.AUDIO}\n >\n {isBrowser() && (\n <audio style={{ maxWidth: '100%' }} id='myAudio' controls>\n <source src={props.src} type='audio/mpeg' />\n Your browser does not support this audio format.\n </audio>\n )}\n {props.children}\n </Message>\n)\n\nAudio.serialize = serialize\n"],"file":"audio.js"}
|
|
@@ -1,194 +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.Carousel = void 0;
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
|
|
18
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
19
|
-
|
|
20
|
-
var _core = require("@botonic/core");
|
|
21
|
-
|
|
22
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
23
|
-
|
|
24
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
25
|
-
|
|
26
|
-
var _leftArrow = _interopRequireDefault(require("../../assets/leftArrow.svg"));
|
|
27
|
-
|
|
28
|
-
var _rightArrow = _interopRequireDefault(require("../../assets/rightArrow.svg"));
|
|
29
|
-
|
|
30
|
-
var _buttonsDisabler = require("../../components/buttons-disabler");
|
|
31
|
-
|
|
32
|
-
var _constants = require("../../constants");
|
|
33
|
-
|
|
34
|
-
var _contexts = require("../../contexts");
|
|
35
|
-
|
|
36
|
-
var _environment = require("../../util/environment");
|
|
37
|
-
|
|
38
|
-
var _styledScrollbar = require("../../webchat/components/styled-scrollbar");
|
|
39
|
-
|
|
40
|
-
var _message = require("./message");
|
|
41
|
-
|
|
42
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
43
|
-
|
|
44
|
-
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); }
|
|
45
|
-
|
|
46
|
-
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; }
|
|
47
|
-
|
|
48
|
-
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; }
|
|
49
|
-
|
|
50
|
-
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; }
|
|
51
|
-
|
|
52
|
-
var StyledCarousel = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 10px 0px;\n display: flex;\n flex-direction: row;\n max-width: 100%;\n ", "\n"])), function (props) {
|
|
53
|
-
return props.carouselArrowsEnabled && 'overflow-x: auto;';
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
var StyledItems = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
|
|
57
|
-
|
|
58
|
-
var StyledArrowContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: calc(50% - 20px);\n height: 40px;\n width: 25px;\n background: ", ";\n display: flex;\n align-items: center;\n cursor: pointer;\n justify-content: ", ";\n left: ", "px;\n right: ", "px;\n border-top-", "-radius: 30px;\n border-bottom-", "-radius: 30px;\n"])), _constants.COLORS.SILVER, function (props) {
|
|
59
|
-
return props.justifyContent;
|
|
60
|
-
}, function (props) {
|
|
61
|
-
return props.left;
|
|
62
|
-
}, function (props) {
|
|
63
|
-
return props.right;
|
|
64
|
-
}, function (props) {
|
|
65
|
-
return props.arrow;
|
|
66
|
-
}, function (props) {
|
|
67
|
-
return props.arrow;
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
var StyledArrow = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 20px;\n height: 20px;\n"])));
|
|
71
|
-
|
|
72
|
-
var serialize = function serialize(carouselProps) {
|
|
73
|
-
var carouselChildren = carouselProps.children;
|
|
74
|
-
if (!Array.isArray(carouselChildren)) carouselChildren = [carouselChildren];
|
|
75
|
-
return {
|
|
76
|
-
type: _core.INPUT.CAROUSEL,
|
|
77
|
-
elements: carouselChildren.map(function (e) {
|
|
78
|
-
return e && e.type && e.type.serialize && e.type.serialize(e.props);
|
|
79
|
-
})
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
*
|
|
84
|
-
* @param {MessageProps} props
|
|
85
|
-
* @returns {JSX.Element}
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
var Carousel = function Carousel(props) {
|
|
90
|
-
var _useContext = (0, _react.useContext)(_contexts.WebchatContext),
|
|
91
|
-
getThemeProperty = _useContext.getThemeProperty;
|
|
92
|
-
|
|
93
|
-
var content = props.children;
|
|
94
|
-
|
|
95
|
-
var scrollbarOptions = _objectSpread(_objectSpread({}, {
|
|
96
|
-
enable: true,
|
|
97
|
-
autoHide: true
|
|
98
|
-
}), getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.scrollbar));
|
|
99
|
-
|
|
100
|
-
var _useState = (0, _react.useState)(false),
|
|
101
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
102
|
-
hasLeftArrow = _useState2[0],
|
|
103
|
-
setLeftArrow = _useState2[1];
|
|
104
|
-
|
|
105
|
-
var _useState3 = (0, _react.useState)(true),
|
|
106
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
107
|
-
hasRightArrow = _useState4[0],
|
|
108
|
-
setRightArrow = _useState4[1];
|
|
109
|
-
|
|
110
|
-
var carouselRef = (0, _react.useRef)(null);
|
|
111
|
-
var CustomCarouselLeftArrow = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.customCarouselLeftArrow, undefined);
|
|
112
|
-
var CustomCarouselRightArrow = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.customCarouselRightArrow, undefined);
|
|
113
|
-
var carouselArrowsEnabled = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.enableCarouselArrows, true);
|
|
114
|
-
|
|
115
|
-
var scrollCarouselBy = function scrollCarouselBy(value) {
|
|
116
|
-
carouselRef.current.scrollBy({
|
|
117
|
-
left: value,
|
|
118
|
-
behavior: 'smooth'
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
var setArrowsVisibility = function setArrowsVisibility(event) {
|
|
123
|
-
var carousel = event.currentTarget;
|
|
124
|
-
var maxRightScroll = carousel.scrollWidth - carousel.offsetWidth - _constants.WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT;
|
|
125
|
-
setLeftArrow(carousel.scrollLeft !== 0);
|
|
126
|
-
setRightArrow(carousel.scrollLeft < maxRightScroll);
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
var getArrows = function getArrows() {
|
|
130
|
-
var scrollBy = _constants.WEBCHAT.DEFAULTS.ELEMENT_WIDTH + _constants.WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT;
|
|
131
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, hasLeftArrow && (CustomCarouselLeftArrow ? /*#__PURE__*/_react["default"].createElement(CustomCarouselLeftArrow, {
|
|
132
|
-
scrollCarouselBy: scrollCarouselBy
|
|
133
|
-
}) : /*#__PURE__*/_react["default"].createElement(StyledArrowContainer, {
|
|
134
|
-
left: 0,
|
|
135
|
-
arrow: 'right',
|
|
136
|
-
justifyContent: 'flex-start',
|
|
137
|
-
onClick: function onClick() {
|
|
138
|
-
return scrollCarouselBy(-scrollBy);
|
|
139
|
-
}
|
|
140
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledArrow, {
|
|
141
|
-
src: (0, _environment.resolveImage)(_leftArrow["default"])
|
|
142
|
-
}))), hasRightArrow && (CustomCarouselRightArrow ? /*#__PURE__*/_react["default"].createElement(CustomCarouselRightArrow, {
|
|
143
|
-
scrollCarouselBy: scrollCarouselBy
|
|
144
|
-
}) : /*#__PURE__*/_react["default"].createElement(StyledArrowContainer, {
|
|
145
|
-
right: 0,
|
|
146
|
-
arrow: 'left',
|
|
147
|
-
justifyContent: 'flex-end',
|
|
148
|
-
onClick: function onClick() {
|
|
149
|
-
return scrollCarouselBy(scrollBy);
|
|
150
|
-
}
|
|
151
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledArrow, {
|
|
152
|
-
src: (0, _environment.resolveImage)(_rightArrow["default"])
|
|
153
|
-
}))));
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
(0, _react.useEffect)(function () {
|
|
157
|
-
var carousel = carouselRef.current;
|
|
158
|
-
|
|
159
|
-
if (carousel && carousel.addEventListener) {
|
|
160
|
-
carousel.addEventListener('scroll', setArrowsVisibility, false);
|
|
161
|
-
} else if (carousel && carousel.attachEvent) {
|
|
162
|
-
carousel.attachEvent('scroll', setArrowsVisibility);
|
|
163
|
-
}
|
|
164
|
-
}, [carouselRef.current]);
|
|
165
|
-
|
|
166
|
-
var carouselProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
167
|
-
children: _buttonsDisabler.ButtonsDisabler.updateChildrenButtons(props.children)
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
if ((0, _core.isBrowser)()) {
|
|
171
|
-
content = /*#__PURE__*/_react["default"].createElement(_styledScrollbar.StyledScrollbar, {
|
|
172
|
-
scrollbar: scrollbarOptions,
|
|
173
|
-
autoHide: scrollbarOptions.autoHide
|
|
174
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledCarousel, {
|
|
175
|
-
ref: carouselRef,
|
|
176
|
-
carouselArrowsEnabled: carouselArrowsEnabled
|
|
177
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledItems, null, carouselProps.children), carouselArrowsEnabled && getArrows()));
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
|
|
181
|
-
style: {
|
|
182
|
-
width: '85%',
|
|
183
|
-
padding: 0,
|
|
184
|
-
backgroundColor: _constants.COLORS.TRANSPARENT
|
|
185
|
-
},
|
|
186
|
-
blob: false,
|
|
187
|
-
json: serialize(carouselProps),
|
|
188
|
-
type: _core.INPUT.CAROUSEL
|
|
189
|
-
}, carouselProps), content);
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
exports.Carousel = Carousel;
|
|
193
|
-
Carousel.serialize = serialize;
|
|
194
|
-
//# sourceMappingURL=carousel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/experimental/components/carousel.jsx"],"names":["StyledCarousel","styled","div","props","carouselArrowsEnabled","StyledItems","StyledArrowContainer","COLORS","SILVER","justifyContent","left","right","arrow","StyledArrow","img","serialize","carouselProps","carouselChildren","children","Array","isArray","type","INPUT","CAROUSEL","elements","map","e","Carousel","WebchatContext","getThemeProperty","content","scrollbarOptions","enable","autoHide","WEBCHAT","CUSTOM_PROPERTIES","scrollbar","hasLeftArrow","setLeftArrow","hasRightArrow","setRightArrow","carouselRef","CustomCarouselLeftArrow","customCarouselLeftArrow","undefined","CustomCarouselRightArrow","customCarouselRightArrow","enableCarouselArrows","scrollCarouselBy","value","current","scrollBy","behavior","setArrowsVisibility","event","carousel","currentTarget","maxRightScroll","scrollWidth","offsetWidth","DEFAULTS","ELEMENT_MARGIN_RIGHT","scrollLeft","getArrows","ELEMENT_WIDTH","LeftArrow","RightArrow","addEventListener","attachEvent","ButtonsDisabler","updateChildrenButtons","width","padding","backgroundColor","TRANSPARENT"],"mappings":"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","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\n\nimport LeftArrow from '../../assets/leftArrow.svg'\nimport RightArrow from '../../assets/rightArrow.svg'\nimport { ButtonsDisabler } from '../../components/buttons-disabler'\nimport { COLORS, WEBCHAT } from '../../constants'\nimport { WebchatContext } from '../../contexts'\nimport { resolveImage } from '../../util/environment'\nimport { StyledScrollbar } from '../../webchat/components/styled-scrollbar'\nimport { Message } from './message'\n\nconst StyledCarousel = styled.div`\n padding: 10px 0px;\n display: flex;\n flex-direction: row;\n max-width: 100%;\n ${props => props.carouselArrowsEnabled && 'overflow-x: auto;'}\n`\n\nconst StyledItems = styled.div`\n display: flex;\n`\n\nconst StyledArrowContainer = styled.div`\n position: absolute;\n top: calc(50% - 20px);\n height: 40px;\n width: 25px;\n background: ${COLORS.SILVER};\n display: flex;\n align-items: center;\n cursor: pointer;\n justify-content: ${props => props.justifyContent};\n left: ${props => props.left}px;\n right: ${props => props.right}px;\n border-top-${props => props.arrow}-radius: 30px;\n border-bottom-${props => props.arrow}-radius: 30px;\n`\nconst StyledArrow = styled.img`\n width: 20px;\n height: 20px;\n`\n\nconst serialize = carouselProps => {\n let carouselChildren = carouselProps.children\n if (!Array.isArray(carouselChildren)) carouselChildren = [carouselChildren]\n return {\n type: INPUT.CAROUSEL,\n elements: carouselChildren.map(\n e => e && e.type && e.type.serialize && e.type.serialize(e.props)\n ),\n }\n}\n\n/**\n *\n * @param {MessageProps} props\n * @returns {JSX.Element}\n */\nexport const Carousel = props => {\n const { getThemeProperty } = useContext(WebchatContext)\n let content = props.children\n const scrollbarOptions = {\n ...{ enable: true, autoHide: true },\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.scrollbar),\n }\n const [hasLeftArrow, setLeftArrow] = useState(false)\n const [hasRightArrow, setRightArrow] = useState(true)\n const carouselRef = useRef(null)\n const CustomCarouselLeftArrow = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customCarouselLeftArrow,\n undefined\n )\n const CustomCarouselRightArrow = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customCarouselRightArrow,\n undefined\n )\n const carouselArrowsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableCarouselArrows,\n true\n )\n\n const scrollCarouselBy = value => {\n carouselRef.current.scrollBy({\n left: value,\n behavior: 'smooth',\n })\n }\n\n const setArrowsVisibility = event => {\n const carousel = event.currentTarget\n const maxRightScroll =\n carousel.scrollWidth -\n carousel.offsetWidth -\n WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT\n setLeftArrow(carousel.scrollLeft !== 0)\n setRightArrow(carousel.scrollLeft < maxRightScroll)\n }\n\n const getArrows = () => {\n const scrollBy =\n WEBCHAT.DEFAULTS.ELEMENT_WIDTH + WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT\n return (\n <>\n {hasLeftArrow &&\n (CustomCarouselLeftArrow ? (\n <CustomCarouselLeftArrow scrollCarouselBy={scrollCarouselBy} />\n ) : (\n <StyledArrowContainer\n left={0}\n arrow={'right'}\n justifyContent={'flex-start'}\n onClick={() => scrollCarouselBy(-scrollBy)}\n >\n <StyledArrow src={resolveImage(LeftArrow)} />\n </StyledArrowContainer>\n ))}\n {hasRightArrow &&\n (CustomCarouselRightArrow ? (\n <CustomCarouselRightArrow scrollCarouselBy={scrollCarouselBy} />\n ) : (\n <StyledArrowContainer\n right={0}\n arrow={'left'}\n justifyContent={'flex-end'}\n onClick={() => scrollCarouselBy(scrollBy)}\n >\n <StyledArrow src={resolveImage(RightArrow)} />\n </StyledArrowContainer>\n ))}\n </>\n )\n }\n\n useEffect(() => {\n const carousel = carouselRef.current\n if (carousel && carousel.addEventListener) {\n carousel.addEventListener('scroll', setArrowsVisibility, false)\n } else if (carousel && carousel.attachEvent) {\n carousel.attachEvent('scroll', setArrowsVisibility)\n }\n }, [carouselRef.current])\n\n const carouselProps = {\n ...props,\n children: ButtonsDisabler.updateChildrenButtons(props.children),\n }\n\n if (isBrowser()) {\n content = (\n <StyledScrollbar\n scrollbar={scrollbarOptions}\n autoHide={scrollbarOptions.autoHide}\n >\n <StyledCarousel\n ref={carouselRef}\n carouselArrowsEnabled={carouselArrowsEnabled}\n >\n <StyledItems>{carouselProps.children}</StyledItems>\n {carouselArrowsEnabled && getArrows()}\n </StyledCarousel>\n </StyledScrollbar>\n )\n }\n\n return (\n <Message\n style={{ width: '85%', padding: 0, backgroundColor: COLORS.TRANSPARENT }}\n blob={false}\n json={serialize(carouselProps)}\n type={INPUT.CAROUSEL}\n {...carouselProps}\n >\n {content}\n </Message>\n )\n}\n\nCarousel.serialize = serialize\n"],"file":"carousel.js"}
|
|
@@ -1,132 +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.customMessage = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
-
|
|
14
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
-
|
|
16
|
-
var _core = require("@botonic/core");
|
|
17
|
-
|
|
18
|
-
var _lodash = _interopRequireDefault(require("lodash.merge"));
|
|
19
|
-
|
|
20
|
-
var _react = _interopRequireDefault(require("react"));
|
|
21
|
-
|
|
22
|
-
var _reply = require("../../components/reply");
|
|
23
|
-
|
|
24
|
-
var _constants = require("../../constants");
|
|
25
|
-
|
|
26
|
-
var _errorBoundary = require("../../util/error-boundary");
|
|
27
|
-
|
|
28
|
-
var _logs = require("../../util/logs");
|
|
29
|
-
|
|
30
|
-
var _react2 = require("../../util/react");
|
|
31
|
-
|
|
32
|
-
var _message = require("./message");
|
|
33
|
-
|
|
34
|
-
var _excluded = ["id", "children"];
|
|
35
|
-
|
|
36
|
-
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; }
|
|
37
|
-
|
|
38
|
-
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; }
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @param name as it appears at ThemeProps' message.customTypes key
|
|
43
|
-
* @param CustomMessageComponent
|
|
44
|
-
* @param defaultProps Props for the wrapper Message
|
|
45
|
-
* @param ErrorBoundary to recover in case it fails
|
|
46
|
-
*/
|
|
47
|
-
var customMessage = function customMessage(_ref) {
|
|
48
|
-
var name = _ref.name,
|
|
49
|
-
CustomMessageComponent = _ref.component,
|
|
50
|
-
_ref$defaultProps = _ref.defaultProps,
|
|
51
|
-
defaultProps = _ref$defaultProps === void 0 ? {} : _ref$defaultProps,
|
|
52
|
-
_ref$errorBoundary = _ref.errorBoundary,
|
|
53
|
-
ErrorBoundary = _ref$errorBoundary === void 0 ? (0, _errorBoundary.createErrorBoundary)() : _ref$errorBoundary;
|
|
54
|
-
|
|
55
|
-
var CustomMessage = function CustomMessage(props) {
|
|
56
|
-
(0, _logs.warnDeprecatedProps)(defaultProps, 'customMessage:');
|
|
57
|
-
if (defaultProps.from === _constants.SENDERS.user) defaultProps.ack = 1;
|
|
58
|
-
return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({}, (0, _lodash["default"])((0, _react2.mapObjectNonBooleanValues)(defaultProps), props), {
|
|
59
|
-
type: _core.INPUT.CUSTOM
|
|
60
|
-
}));
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
var splitChildren = function splitChildren(props) {
|
|
64
|
-
var children = props.children;
|
|
65
|
-
|
|
66
|
-
var isReply = function isReply(e) {
|
|
67
|
-
return e.type === _reply.Reply;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
try {
|
|
71
|
-
if (!Array.isArray(children) && !isReply(children)) {
|
|
72
|
-
return {
|
|
73
|
-
replies: null,
|
|
74
|
-
childrenWithoutReplies: children
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var childrenArray = _react["default"].Children.toArray(children);
|
|
79
|
-
|
|
80
|
-
var replies = childrenArray.filter(isReply);
|
|
81
|
-
var childrenWithoutReplies = childrenArray.filter(function (e) {
|
|
82
|
-
return !isReply(e);
|
|
83
|
-
});
|
|
84
|
-
return {
|
|
85
|
-
replies: replies,
|
|
86
|
-
childrenWithoutReplies: childrenWithoutReplies
|
|
87
|
-
};
|
|
88
|
-
} catch (e) {
|
|
89
|
-
return {
|
|
90
|
-
replies: null,
|
|
91
|
-
childrenWithoutReplies: children
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
var WrappedComponent = function WrappedComponent(props) {
|
|
97
|
-
var id = props.id,
|
|
98
|
-
children = props.children,
|
|
99
|
-
customMessageProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
100
|
-
|
|
101
|
-
var _splitChildren = splitChildren(props),
|
|
102
|
-
replies = _splitChildren.replies,
|
|
103
|
-
childrenWithoutReplies = _splitChildren.childrenWithoutReplies;
|
|
104
|
-
|
|
105
|
-
return /*#__PURE__*/_react["default"].createElement(CustomMessage, {
|
|
106
|
-
id: id,
|
|
107
|
-
json: _objectSpread(_objectSpread({}, customMessageProps), {}, {
|
|
108
|
-
id: id,
|
|
109
|
-
children: childrenWithoutReplies,
|
|
110
|
-
customTypeName: name
|
|
111
|
-
})
|
|
112
|
-
}, /*#__PURE__*/_react["default"].createElement(ErrorBoundary, (0, _extends2["default"])({
|
|
113
|
-
key: 'errorBoundary'
|
|
114
|
-
}, customMessageProps), /*#__PURE__*/_react["default"].createElement(CustomMessageComponent, customMessageProps, childrenWithoutReplies)), replies);
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
WrappedComponent.customTypeName = name; // eslint-disable-next-line react/display-name
|
|
118
|
-
|
|
119
|
-
WrappedComponent.deserialize = function (msg) {
|
|
120
|
-
return /*#__PURE__*/_react["default"].createElement(WrappedComponent, msg, msg.replies.length > 0 && msg.replies.map(function (r, i) {
|
|
121
|
-
return /*#__PURE__*/_react["default"].createElement(_reply.Reply, {
|
|
122
|
-
key: i,
|
|
123
|
-
payload: r.payload
|
|
124
|
-
}, r.title);
|
|
125
|
-
}));
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
return WrappedComponent;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
exports.customMessage = customMessage;
|
|
132
|
-
//# sourceMappingURL=custom-message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/experimental/components/custom-message.jsx"],"names":["customMessage","name","CustomMessageComponent","component","defaultProps","errorBoundary","ErrorBoundary","CustomMessage","props","from","SENDERS","user","ack","INPUT","CUSTOM","splitChildren","children","isReply","e","type","Reply","Array","isArray","replies","childrenWithoutReplies","childrenArray","React","Children","toArray","filter","WrappedComponent","id","customMessageProps","customTypeName","deserialize","msg","length","map","r","i","payload","title"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAKvB;AAAA,MAJJC,IAII,QAJJA,IAII;AAAA,MAHOC,sBAGP,QAHJC,SAGI;AAAA,+BAFJC,YAEI;AAAA,MAFJA,YAEI,kCAFW,EAEX;AAAA,gCADJC,aACI;AAAA,MADWC,aACX,mCAD2B,yCAC3B;;AACJ,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,KAAK,EAAI;AAC7B,mCAAoBJ,YAApB,EAAkC,gBAAlC;AACA,QAAIA,YAAY,CAACK,IAAb,KAAsBC,mBAAQC,IAAlC,EAAwCP,YAAY,CAACQ,GAAb,GAAmB,CAAnB;AACxC,wBACE,gCAAC,gBAAD,gCACM,wBAAM,uCAA0BR,YAA1B,CAAN,EAA+CI,KAA/C,CADN;AAEE,MAAA,IAAI,EAAEK,YAAMC;AAFd,OADF;AAMD,GATD;;AAWA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAP,KAAK,EAAI;AAC7B,QAAQQ,QAAR,GAAqBR,KAArB,CAAQQ,QAAR;;AACA,QAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,IAAF,KAAWC,YAAf;AAAA,KAAjB;;AACA,QAAI;AACF,UAAI,CAACC,KAAK,CAACC,OAAN,CAAcN,QAAd,CAAD,IAA4B,CAACC,OAAO,CAACD,QAAD,CAAxC,EAAoD;AAClD,eAAO;AAAEO,UAAAA,OAAO,EAAE,IAAX;AAAiBC,UAAAA,sBAAsB,EAAER;AAAzC,SAAP;AACD;;AACD,UAAMS,aAAa,GAAGC,kBAAMC,QAAN,CAAeC,OAAf,CAAuBZ,QAAvB,CAAtB;;AACA,UAAMO,OAAO,GAAGE,aAAa,CAACI,MAAd,CAAqBZ,OAArB,CAAhB;AACA,UAAMO,sBAAsB,GAAGC,aAAa,CAACI,MAAd,CAAqB,UAAAX,CAAC;AAAA,eAAI,CAACD,OAAO,CAACC,CAAD,CAAZ;AAAA,OAAtB,CAA/B;AACA,aAAO;AACLK,QAAAA,OAAO,EAAEA,OADJ;AAELC,QAAAA,sBAAsB,EAAtBA;AAFK,OAAP;AAID,KAXD,CAWE,OAAON,CAAP,EAAU;AACV,aAAO;AAAEK,QAAAA,OAAO,EAAE,IAAX;AAAiBC,QAAAA,sBAAsB,EAAER;AAAzC,OAAP;AACD;AACF,GAjBD;;AAmBA,MAAMc,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAtB,KAAK,EAAI;AAChC,QAAQuB,EAAR,GAAgDvB,KAAhD,CAAQuB,EAAR;AAAA,QAAYf,QAAZ,GAAgDR,KAAhD,CAAYQ,QAAZ;AAAA,QAAyBgB,kBAAzB,6CAAgDxB,KAAhD;;AACA,yBAA4CO,aAAa,CAACP,KAAD,CAAzD;AAAA,QAAQe,OAAR,kBAAQA,OAAR;AAAA,QAAiBC,sBAAjB,kBAAiBA,sBAAjB;;AACA,wBACE,gCAAC,aAAD;AACE,MAAA,EAAE,EAAEO,EADN;AAEE,MAAA,IAAI,kCACCC,kBADD;AAEFD,QAAAA,EAAE,EAAFA,EAFE;AAGFf,QAAAA,QAAQ,EAAEQ,sBAHR;AAIFS,QAAAA,cAAc,EAAEhC;AAJd;AAFN,oBASE,gCAAC,aAAD;AAAe,MAAA,GAAG,EAAE;AAApB,OAAyC+B,kBAAzC,gBACE,gCAAC,sBAAD,EAA4BA,kBAA5B,EACGR,sBADH,CADF,CATF,EAcGD,OAdH,CADF;AAkBD,GArBD;;AAsBAO,EAAAA,gBAAgB,CAACG,cAAjB,GAAkChC,IAAlC,CArDI,CAsDJ;;AACA6B,EAAAA,gBAAgB,CAACI,WAAjB,GAA+B,UAAAC,GAAG,EAAI;AACpC,wBACE,gCAAC,gBAAD,EAAsBA,GAAtB,EACGA,GAAG,CAACZ,OAAJ,CAAYa,MAAZ,GAAqB,CAArB,IACCD,GAAG,CAACZ,OAAJ,CAAYc,GAAZ,CAAgB,UAACC,CAAD,EAAIC,CAAJ;AAAA,0BACd,gCAAC,YAAD;AAAO,QAAA,GAAG,EAAEA,CAAZ;AAAe,QAAA,OAAO,EAAED,CAAC,CAACE;AAA1B,SACGF,CAAC,CAACG,KADL,CADc;AAAA,KAAhB,CAFJ,CADF;AAUD,GAXD;;AAYA,SAAOX,gBAAP;AACD,CAzEM","sourcesContent":["import { INPUT } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport React from 'react'\n\nimport { Reply } from '../../components/reply'\nimport { SENDERS } from '../../constants'\nimport { createErrorBoundary } from '../../util/error-boundary'\nimport { warnDeprecatedProps } from '../../util/logs'\nimport { mapObjectNonBooleanValues } from '../../util/react'\nimport { Message } from './message'\n\n/**\n *\n * @param name as it appears at ThemeProps' message.customTypes key\n * @param CustomMessageComponent\n * @param defaultProps Props for the wrapper Message\n * @param ErrorBoundary to recover in case it fails\n */\nexport const customMessage = ({\n name,\n component: CustomMessageComponent,\n defaultProps = {},\n errorBoundary: ErrorBoundary = createErrorBoundary(),\n}) => {\n const CustomMessage = props => {\n warnDeprecatedProps(defaultProps, 'customMessage:')\n if (defaultProps.from === SENDERS.user) defaultProps.ack = 1\n return (\n <Message\n {...merge(mapObjectNonBooleanValues(defaultProps), props)}\n type={INPUT.CUSTOM}\n />\n )\n }\n\n const splitChildren = props => {\n const { children } = props\n const isReply = e => e.type === Reply\n try {\n if (!Array.isArray(children) && !isReply(children)) {\n return { replies: null, childrenWithoutReplies: children }\n }\n const childrenArray = React.Children.toArray(children)\n const replies = childrenArray.filter(isReply)\n const childrenWithoutReplies = childrenArray.filter(e => !isReply(e))\n return {\n replies: replies,\n childrenWithoutReplies,\n }\n } catch (e) {\n return { replies: null, childrenWithoutReplies: children }\n }\n }\n\n const WrappedComponent = props => {\n const { id, children, ...customMessageProps } = props\n const { replies, childrenWithoutReplies } = splitChildren(props)\n return (\n <CustomMessage\n id={id}\n json={{\n ...customMessageProps,\n id,\n children: childrenWithoutReplies,\n customTypeName: name,\n }}\n >\n <ErrorBoundary key={'errorBoundary'} {...customMessageProps}>\n <CustomMessageComponent {...customMessageProps}>\n {childrenWithoutReplies}\n </CustomMessageComponent>\n </ErrorBoundary>\n {replies}\n </CustomMessage>\n )\n }\n WrappedComponent.customTypeName = name\n // eslint-disable-next-line react/display-name\n WrappedComponent.deserialize = msg => {\n return (\n <WrappedComponent {...msg}>\n {msg.replies.length > 0 &&\n msg.replies.map((r, i) => (\n <Reply key={i} payload={r.payload}>\n {r.title}\n </Reply>\n ))}\n </WrappedComponent>\n )\n }\n return WrappedComponent\n}\n"],"file":"custom-message.js"}
|
|
@@ -1,69 +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.Document = 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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
|
-
|
|
18
|
-
var _core = require("@botonic/core");
|
|
19
|
-
|
|
20
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
23
|
-
|
|
24
|
-
var _constants = require("../../constants");
|
|
25
|
-
|
|
26
|
-
var _contexts = require("../../contexts");
|
|
27
|
-
|
|
28
|
-
var _message = require("./message");
|
|
29
|
-
|
|
30
|
-
var _templateObject;
|
|
31
|
-
|
|
32
|
-
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); }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
35
|
-
|
|
36
|
-
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; }
|
|
37
|
-
|
|
38
|
-
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; }
|
|
39
|
-
|
|
40
|
-
var StyledButton = _styledComponents["default"].a(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n height: 25px;\n background-color: #f0f0f0;\n padding: 10px;\n text-align: center;\n border-radius: 5px;\n color: black;\n font-weight: bold;\n line-height: 25px;\n text-decoration: none;\n border: 1px solid black;\n opacity: 0.9;\n &:hover {\n opacity: 1;\n }\n"])));
|
|
41
|
-
|
|
42
|
-
var serialize = function serialize(documentProps) {
|
|
43
|
-
return {
|
|
44
|
-
src: documentProps.src
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
var Document = function Document(props) {
|
|
49
|
-
var _useContext = (0, _react.useContext)(_contexts.WebchatContext),
|
|
50
|
-
getThemeProperty = _useContext.getThemeProperty;
|
|
51
|
-
|
|
52
|
-
var documentDownload = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.documentDownload, {});
|
|
53
|
-
if (typeof documentDownload === 'function') documentDownload = documentDownload(props.from);
|
|
54
|
-
return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
|
|
55
|
-
role: _constants.ROLES.DOCUMENT_MESSAGE,
|
|
56
|
-
json: serialize(props)
|
|
57
|
-
}, props, {
|
|
58
|
-
type: _core.INPUT.DOCUMENT
|
|
59
|
-
}), (0, _core.isBrowser)() && /*#__PURE__*/_react["default"].createElement(StyledButton, {
|
|
60
|
-
href: props.src,
|
|
61
|
-
target: "_blank",
|
|
62
|
-
rel: "noreferrer",
|
|
63
|
-
style: _objectSpread({}, documentDownload.style)
|
|
64
|
-
}, documentDownload.text || 'Download'), props.children);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
exports.Document = Document;
|
|
68
|
-
Document.serialize = serialize;
|
|
69
|
-
//# sourceMappingURL=document.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/experimental/components/document.jsx"],"names":["StyledButton","styled","a","serialize","documentProps","src","Document","props","WebchatContext","getThemeProperty","documentDownload","WEBCHAT","CUSTOM_PROPERTIES","from","ROLES","DOCUMENT_MESSAGE","INPUT","DOCUMENT","style","text","children"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,YAAY,GAAGC,6BAAOC,CAAV,iYAAlB;;AAkBA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,aAAa,EAAI;AACjC,SAAO;AAAEC,IAAAA,GAAG,EAAED,aAAa,CAACC;AAArB,GAAP;AACD,CAFD;;AAIO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAAC,KAAK,EAAI;AAC/B,oBAA6B,uBAAWC,wBAAX,CAA7B;AAAA,MAAQC,gBAAR,eAAQA,gBAAR;;AACA,MAAIC,gBAAgB,GAAGD,gBAAgB,CACrCE,mBAAQC,iBAAR,CAA0BF,gBADW,EAErC,EAFqC,CAAvC;AAIA,MAAI,OAAOA,gBAAP,KAA4B,UAAhC,EACEA,gBAAgB,GAAGA,gBAAgB,CAACH,KAAK,CAACM,IAAP,CAAnC;AAEF,sBACE,gCAAC,gBAAD;AACE,IAAA,IAAI,EAAEC,iBAAMC,gBADd;AAEE,IAAA,IAAI,EAAEZ,SAAS,CAACI,KAAD;AAFjB,KAGMA,KAHN;AAIE,IAAA,IAAI,EAAES,YAAMC;AAJd,MAMG,uCACC,gCAAC,YAAD;AACE,IAAA,IAAI,EAAEV,KAAK,CAACF,GADd;AAEE,IAAA,MAAM,EAAC,QAFT;AAGE,IAAA,GAAG,EAAC,YAHN;AAIE,IAAA,KAAK,oBACAK,gBAAgB,CAACQ,KADjB;AAJP,KAQGR,gBAAgB,CAACS,IAAjB,IAAyB,UAR5B,CAPJ,EAkBGZ,KAAK,CAACa,QAlBT,CADF;AAsBD,CA/BM;;;AAiCPd,QAAQ,CAACH,SAAT,GAAqBA,SAArB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext } from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES, WEBCHAT } from '../../constants'\nimport { WebchatContext } from '../../contexts'\nimport { Message } from './message'\n\nconst StyledButton = styled.a`\n display: block;\n height: 25px;\n background-color: #f0f0f0;\n padding: 10px;\n text-align: center;\n border-radius: 5px;\n color: black;\n font-weight: bold;\n line-height: 25px;\n text-decoration: none;\n border: 1px solid black;\n opacity: 0.9;\n &:hover {\n opacity: 1;\n }\n`\n\nconst serialize = documentProps => {\n return { src: documentProps.src }\n}\n\nexport const Document = props => {\n const { getThemeProperty } = useContext(WebchatContext)\n let documentDownload = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.documentDownload,\n {}\n )\n if (typeof documentDownload === 'function')\n documentDownload = documentDownload(props.from)\n\n return (\n <Message\n role={ROLES.DOCUMENT_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.DOCUMENT}\n >\n {isBrowser() && (\n <StyledButton\n href={props.src}\n target='_blank'\n rel='noreferrer'\n style={{\n ...documentDownload.style,\n }}\n >\n {documentDownload.text || 'Download'}\n </StyledButton>\n )}\n {props.children}\n </Message>\n )\n}\n\nDocument.serialize = serialize\n"],"file":"document.js"}
|
|
@@ -1,47 +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.Image = 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 StyledImage = _styledComponents["default"].img(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: 10px;\n"])));
|
|
27
|
-
|
|
28
|
-
var serialize = function serialize(imageProps) {
|
|
29
|
-
return {
|
|
30
|
-
src: imageProps.src
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
var Image = function Image(props) {
|
|
35
|
-
return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
|
|
36
|
-
role: _constants.ROLES.IMAGE_MESSAGE,
|
|
37
|
-
json: serialize(props)
|
|
38
|
-
}, props, {
|
|
39
|
-
type: _core.INPUT.IMAGE
|
|
40
|
-
}), (0, _core.isBrowser)() && /*#__PURE__*/_react["default"].createElement(StyledImage, {
|
|
41
|
-
src: props.src
|
|
42
|
-
}), props.children);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
exports.Image = Image;
|
|
46
|
-
Image.serialize = serialize;
|
|
47
|
-
//# sourceMappingURL=image.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/experimental/components/image.jsx"],"names":["StyledImage","styled","img","serialize","imageProps","src","Image","props","ROLES","IMAGE_MESSAGE","INPUT","IMAGE","children"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;AAEA,IAAMA,WAAW,GAAGC,6BAAOC,GAAV,2KAAjB;;AAOA,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,uCAAe,gCAAC,WAAD;AAAa,IAAA,GAAG,EAAEJ,KAAK,CAACF;AAAxB,IANlB,EAOGE,KAAK,CAACK,QAPT,CADwB;AAAA,CAAnB;;;AAYPN,KAAK,CAACH,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES } from '../../constants'\nimport { Message } from './message'\n\nconst StyledImage = styled.img`\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: 10px;\n`\n\nconst serialize = imageProps => {\n return { src: imageProps.src }\n}\n\nexport const Image = props => (\n <Message\n role={ROLES.IMAGE_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.IMAGE}\n >\n {isBrowser() && <StyledImage src={props.src}></StyledImage>}\n {props.children}\n </Message>\n)\n\nImage.serialize = serialize\n"],"file":"image.js"}
|