@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.
- 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 +5 -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 +25 -6
- package/lib/webchat/hooks.js.map +1 -1
- package/lib/webchat/index.js +1 -1
- package/lib/webchat/webchat-reducer.js +11 -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/message.jsx +8 -2
- 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 +94 -25
- package/src/experimental/msg-to-botonic.jsx +8 -8
- 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 +109 -82
- package/src/experimental/webchat-app.jsx +39 -15
- package/src/index.d.ts +1 -0
- package/src/util/dom.js +5 -3
- package/src/webchat/actions.jsx +1 -0
- package/src/webchat/devices/device-adapter.js +16 -4
- package/src/webchat/devices/scrollbar-controller.js +9 -4
- package/src/webchat/hooks.js +10 -0
- package/src/webchat/webchat-reducer.js +3 -0
- 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 -748
- 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 -1044
- package/lib/experimental/webchat/webchat.js.map +0 -1
- package/lib/experimental/webchat-app.js +0 -635
- package/lib/experimental/webchat-app.js.map +0 -1
package/lib/util/dom.js
CHANGED
|
@@ -3,13 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.scrollToBottom = exports.onDOMLoaded = exports.isShadowDOMSupported = exports.getWebchatElement = exports.getScrollableContent = exports.getScrollableArea = void 0;
|
|
7
7
|
|
|
8
8
|
var _constants = require("../constants");
|
|
9
9
|
|
|
10
|
+
var getScrollableContent = function getScrollableContent(webchatElement) {
|
|
11
|
+
return webchatElement.querySelector(_constants.WEBCHAT.SELECTORS.SCROLLABLE_CONTENT);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.getScrollableContent = getScrollableContent;
|
|
15
|
+
|
|
10
16
|
var getScrollableArea = function getScrollableArea(webchatElement) {
|
|
11
17
|
var getArea = function getArea(area) {
|
|
12
|
-
var botonicScrollableContent = webchatElement
|
|
18
|
+
var botonicScrollableContent = getScrollableContent(webchatElement);
|
|
13
19
|
var scrollableArea = botonicScrollableContent && botonicScrollableContent.querySelector(area);
|
|
14
20
|
return scrollableArea;
|
|
15
21
|
};
|
package/lib/util/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/dom.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/util/dom.js"],"names":["getScrollableContent","webchatElement","querySelector","WEBCHAT","SELECTORS","SCROLLABLE_CONTENT","getScrollableArea","getArea","area","botonicScrollableContent","scrollableArea","full","SIMPLEBAR_CONTENT","visible","SIMPLEBAR_WRAPPER","scrollToBottom","timeout","behavior","host","getWebchatElement","frame","setTimeout","scrollTo","top","scrollHeight","DEFAULTS","ID","onDOMLoaded","callback","test","document","readyState","addEventListener","isShadowDOMSupported","head","createShadowRoot","attachShadow","e"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAC,cAAc,EAAI;AACpD,SAAOA,cAAc,CAACC,aAAf,CAA6BC,mBAAQC,SAAR,CAAkBC,kBAA/C,CAAP;AACD,CAFM;;;;AAIA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAL,cAAc,EAAI;AACjD,MAAMM,OAAO,GAAG,SAAVA,OAAU,CAAAC,IAAI,EAAI;AACtB,QAAMC,wBAAwB,GAAGT,oBAAoB,CAACC,cAAD,CAArD;AACA,QAAMS,cAAc,GAClBD,wBAAwB,IAAIA,wBAAwB,CAACP,aAAzB,CAAuCM,IAAvC,CAD9B;AAEA,WAAOE,cAAP;AACD,GALD;;AAMA,SAAO;AACLC,IAAAA,IAAI,EAAEJ,OAAO,CAACJ,mBAAQC,SAAR,CAAkBQ,iBAAnB,CADR;AAELC,IAAAA,OAAO,EAAEN,OAAO,CAACJ,mBAAQC,SAAR,CAAkBU,iBAAnB;AAFX,GAAP;AAID,CAXM;;;;AAaA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAInB;AAAA,iFAAP,EAAO;AAAA,0BAHTC,OAGS;AAAA,MAHTA,OAGS,6BAHC,GAGD;AAAA,2BAFTC,QAES;AAAA,MAFTA,QAES,8BAFE,QAEF;AAAA,MADTC,IACS,QADTA,IACS;;AACT,MAAMjB,cAAc,GAAGkB,iBAAiB,CAACD,IAAD,CAAxC;AACA,MAAI,CAACjB,cAAL,EAAqB;AACrB,MAAMmB,KAAK,GAAGd,iBAAiB,CAACL,cAAD,CAAjB,CAAkCY,OAAhD;;AACA,MAAIO,KAAJ,EAAW;AACTC,IAAAA,UAAU,CACR;AAAA,aAAMD,KAAK,CAACE,QAAN,CAAe;AAAEC,QAAAA,GAAG,EAAEH,KAAK,CAACI,YAAb;AAA2BP,QAAAA,QAAQ,EAAEA;AAArC,OAAf,CAAN;AAAA,KADQ,EAERD,OAFQ,CAAV;AAID;AACF,CAdM;;;;AAgBA,IAAMG,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAD,IAAI;AAAA,SACnCA,IAAI,IAAIA,IAAI,CAAChB,aAAL,YAAuBC,mBAAQsB,QAAR,CAAiBC,EAAxC,EAD2B;AAAA,CAA9B,C,CAGP;;;;;AACO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,QAAQ,EAAI;AACrC,MAAI,8BAA8BC,IAA9B,CAAmCC,QAAQ,CAACC,UAA5C,CAAJ,EAA6D;AAC3D;AACA;AACAH,IAAAA,QAAQ;AACT,GAJD,MAIO;AACL;AACAE,IAAAA,QAAQ,CAACE,gBAAT,CAA0B,kBAA1B,EAA8CJ,QAA9C,EAAwD,KAAxD;AACD;AACF,CATM;;;;AAWA,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACxC,MAAI;AACF,WAAOH,QAAQ,CAACI,IAAT,CAAcC,gBAAd,IAAkCL,QAAQ,CAACI,IAAT,CAAcE,YAAvD;AACD,GAFD,CAEE,OAAOC,CAAP,EAAU;AACV,WAAO,KAAP;AACD;AACF,CANM","sourcesContent":["import { WEBCHAT } from '../constants'\n\nexport const getScrollableContent = webchatElement => {\n return webchatElement.querySelector(WEBCHAT.SELECTORS.SCROLLABLE_CONTENT)\n}\n\nexport const getScrollableArea = webchatElement => {\n const getArea = area => {\n const botonicScrollableContent = getScrollableContent(webchatElement)\n const scrollableArea =\n botonicScrollableContent && botonicScrollableContent.querySelector(area)\n return scrollableArea\n }\n return {\n full: getArea(WEBCHAT.SELECTORS.SIMPLEBAR_CONTENT),\n visible: getArea(WEBCHAT.SELECTORS.SIMPLEBAR_WRAPPER),\n }\n}\n\nexport const scrollToBottom = ({\n timeout = 200,\n behavior = 'smooth',\n host,\n} = {}) => {\n const webchatElement = getWebchatElement(host)\n if (!webchatElement) return\n const frame = getScrollableArea(webchatElement).visible\n if (frame) {\n setTimeout(\n () => frame.scrollTo({ top: frame.scrollHeight, behavior: behavior }),\n timeout\n )\n }\n}\n\nexport const getWebchatElement = host =>\n host && host.querySelector(`#${WEBCHAT.DEFAULTS.ID}`)\n\n// https://stackoverflow.com/questions/9457891/how-to-detect-if-domcontentloaded-was-fired\nexport const onDOMLoaded = callback => {\n if (/complete|interactive|loaded/.test(document.readyState)) {\n // In case the document has finished parsing, document's readyState will\n // be one of \"complete\", \"interactive\" or (non-standard) \"loaded\".\n callback()\n } else {\n // The document is not ready yet, so wait for the DOMContentLoaded event\n document.addEventListener('DOMContentLoaded', callback, false)\n }\n}\n\nexport const isShadowDOMSupported = () => {\n try {\n return document.head.createShadowRoot || document.head.attachShadow\n } catch (e) {\n return false\n }\n}\n"],"file":"dom.js"}
|
package/lib/util/environment.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.staticAsset = exports.resolveImage = exports.isURL = exports.isProd = exports.isDev = void 0;
|
|
7
7
|
var isDev = process.env.NODE_ENV === 'development';
|
|
8
8
|
exports.isDev = isDev;
|
|
9
9
|
var isProd = process.env.NODE_ENV === 'production';
|
package/lib/util/objects.js
CHANGED
|
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.strToBool = strToBool;
|
|
9
8
|
exports.mapObject = exports.getProperty = void 0;
|
|
9
|
+
exports.strToBool = strToBool;
|
|
10
10
|
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
12
|
|
package/lib/util/react.js
CHANGED
|
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.mapObjectNonBooleanValues = exports.hasComplexChildren = exports.deepMapWithIndex = exports.ConditionalWrapper = void 0;
|
|
8
9
|
exports.renderComponent = renderComponent;
|
|
9
|
-
exports.deepMapWithIndex = exports.hasComplexChildren = exports.mapObjectNonBooleanValues = exports.ConditionalWrapper = void 0;
|
|
10
10
|
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
12
|
|
package/lib/util/webchat.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.shouldKeepSessionOnReload = exports.initSession = exports.getServerErrorMessage = exports.createUser = exports._getThemeProperty = void 0;
|
|
9
9
|
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
|
package/lib/webchat/actions.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.UPDATE_WEBVIEW = exports.UPDATE_TYPING = exports.UPDATE_THEME = exports.UPDATE_SESSION = exports.UPDATE_REPLIES = exports.UPDATE_MESSAGE = exports.UPDATE_LATEST_INPUT = exports.UPDATE_LAST_ROUTE_PATH = exports.UPDATE_LAST_MESSAGE_DATE = exports.UPDATE_JWT = exports.UPDATE_HANDOFF = exports.UPDATE_DEV_SETTINGS = exports.TOGGLE_WEBCHAT = exports.TOGGLE_PERSISTENT_MENU = exports.TOGGLE_EMOJI_PICKER = exports.TOGGLE_COVER_COMPONENT = exports.SET_ONLINE = exports.SET_ERROR = exports.SET_CURRENT_ATTACHMENT = exports.DO_RENDER_CUSTOM_COMPONENT = exports.CLEAR_MESSAGES = exports.ADD_MESSAGE_COMPONENT = exports.ADD_MESSAGE = void 0;
|
|
7
7
|
var ADD_MESSAGE = 'addMessage';
|
|
8
8
|
exports.ADD_MESSAGE = ADD_MESSAGE;
|
|
9
9
|
var ADD_MESSAGE_COMPONENT = 'addMessageComponent';
|
|
@@ -36,6 +36,8 @@ var TOGGLE_PERSISTENT_MENU = 'togglePersistentMenu';
|
|
|
36
36
|
exports.TOGGLE_PERSISTENT_MENU = TOGGLE_PERSISTENT_MENU;
|
|
37
37
|
var TOGGLE_COVER_COMPONENT = 'toggleCoverComponent';
|
|
38
38
|
exports.TOGGLE_COVER_COMPONENT = TOGGLE_COVER_COMPONENT;
|
|
39
|
+
var DO_RENDER_CUSTOM_COMPONENT = 'doRenderCustomComponent';
|
|
40
|
+
exports.DO_RENDER_CUSTOM_COMPONENT = DO_RENDER_CUSTOM_COMPONENT;
|
|
39
41
|
var SET_ERROR = 'setError';
|
|
40
42
|
exports.SET_ERROR = SET_ERROR;
|
|
41
43
|
var CLEAR_MESSAGES = 'clearMessages';
|
|
@@ -46,4 +48,6 @@ var SET_CURRENT_ATTACHMENT = 'setCurrentAttachment';
|
|
|
46
48
|
exports.SET_CURRENT_ATTACHMENT = SET_CURRENT_ATTACHMENT;
|
|
47
49
|
var SET_ONLINE = 'setOnline';
|
|
48
50
|
exports.SET_ONLINE = SET_ONLINE;
|
|
51
|
+
var UPDATE_JWT = 'updateJwt';
|
|
52
|
+
exports.UPDATE_JWT = UPDATE_JWT;
|
|
49
53
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/webchat/actions.jsx"],"names":["ADD_MESSAGE","ADD_MESSAGE_COMPONENT","UPDATE_MESSAGE","UPDATE_REPLIES","UPDATE_LATEST_INPUT","UPDATE_TYPING","UPDATE_WEBVIEW","UPDATE_SESSION","UPDATE_LAST_ROUTE_PATH","UPDATE_HANDOFF","UPDATE_THEME","UPDATE_DEV_SETTINGS","TOGGLE_WEBCHAT","TOGGLE_EMOJI_PICKER","TOGGLE_PERSISTENT_MENU","TOGGLE_COVER_COMPONENT","SET_ERROR","CLEAR_MESSAGES","UPDATE_LAST_MESSAGE_DATE","SET_CURRENT_ATTACHMENT","SET_ONLINE"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG,YAApB;;AACA,IAAMC,qBAAqB,GAAG,qBAA9B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,aAAa,GAAG,cAAtB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,sBAAsB,GAAG,qBAA/B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,YAAY,GAAG,aAArB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,SAAS,GAAG,UAAlB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,wBAAwB,GAAG,uBAAjC;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,UAAU,GAAG,WAAnB","sourcesContent":["export const ADD_MESSAGE = 'addMessage'\nexport const ADD_MESSAGE_COMPONENT = 'addMessageComponent'\nexport const UPDATE_MESSAGE = 'updateMessage'\nexport const UPDATE_REPLIES = 'updateReplies'\nexport const UPDATE_LATEST_INPUT = 'updateLatestInput'\nexport const UPDATE_TYPING = 'updateTyping'\nexport const UPDATE_WEBVIEW = 'updateWebview'\nexport const UPDATE_SESSION = 'updateSession'\nexport const UPDATE_LAST_ROUTE_PATH = 'updateLastRoutePath'\nexport const UPDATE_HANDOFF = 'updateHandoff'\nexport const UPDATE_THEME = 'updateTheme'\nexport const UPDATE_DEV_SETTINGS = 'updateDevSettings'\nexport const TOGGLE_WEBCHAT = 'toggleWebchat'\nexport const TOGGLE_EMOJI_PICKER = 'toggleEmojiPicker'\nexport const TOGGLE_PERSISTENT_MENU = 'togglePersistentMenu'\nexport const TOGGLE_COVER_COMPONENT = 'toggleCoverComponent'\nexport const SET_ERROR = 'setError'\nexport const CLEAR_MESSAGES = 'clearMessages'\nexport const UPDATE_LAST_MESSAGE_DATE = 'updateLastMessageDate'\nexport const SET_CURRENT_ATTACHMENT = 'setCurrentAttachment'\nexport const SET_ONLINE = 'setOnline'\n"],"file":"actions.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/webchat/actions.jsx"],"names":["ADD_MESSAGE","ADD_MESSAGE_COMPONENT","UPDATE_MESSAGE","UPDATE_REPLIES","UPDATE_LATEST_INPUT","UPDATE_TYPING","UPDATE_WEBVIEW","UPDATE_SESSION","UPDATE_LAST_ROUTE_PATH","UPDATE_HANDOFF","UPDATE_THEME","UPDATE_DEV_SETTINGS","TOGGLE_WEBCHAT","TOGGLE_EMOJI_PICKER","TOGGLE_PERSISTENT_MENU","TOGGLE_COVER_COMPONENT","DO_RENDER_CUSTOM_COMPONENT","SET_ERROR","CLEAR_MESSAGES","UPDATE_LAST_MESSAGE_DATE","SET_CURRENT_ATTACHMENT","SET_ONLINE","UPDATE_JWT"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG,YAApB;;AACA,IAAMC,qBAAqB,GAAG,qBAA9B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,aAAa,GAAG,cAAtB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,sBAAsB,GAAG,qBAA/B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,YAAY,GAAG,aAArB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,mBAAmB,GAAG,mBAA5B;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,0BAA0B,GAAG,yBAAnC;;AACA,IAAMC,SAAS,GAAG,UAAlB;;AACA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,wBAAwB,GAAG,uBAAjC;;AACA,IAAMC,sBAAsB,GAAG,sBAA/B;;AACA,IAAMC,UAAU,GAAG,WAAnB;;AACA,IAAMC,UAAU,GAAG,WAAnB","sourcesContent":["export const ADD_MESSAGE = 'addMessage'\nexport const ADD_MESSAGE_COMPONENT = 'addMessageComponent'\nexport const UPDATE_MESSAGE = 'updateMessage'\nexport const UPDATE_REPLIES = 'updateReplies'\nexport const UPDATE_LATEST_INPUT = 'updateLatestInput'\nexport const UPDATE_TYPING = 'updateTyping'\nexport const UPDATE_WEBVIEW = 'updateWebview'\nexport const UPDATE_SESSION = 'updateSession'\nexport const UPDATE_LAST_ROUTE_PATH = 'updateLastRoutePath'\nexport const UPDATE_HANDOFF = 'updateHandoff'\nexport const UPDATE_THEME = 'updateTheme'\nexport const UPDATE_DEV_SETTINGS = 'updateDevSettings'\nexport const TOGGLE_WEBCHAT = 'toggleWebchat'\nexport const TOGGLE_EMOJI_PICKER = 'toggleEmojiPicker'\nexport const TOGGLE_PERSISTENT_MENU = 'togglePersistentMenu'\nexport const TOGGLE_COVER_COMPONENT = 'toggleCoverComponent'\nexport const DO_RENDER_CUSTOM_COMPONENT = 'doRenderCustomComponent'\nexport const SET_ERROR = 'setError'\nexport const CLEAR_MESSAGES = 'clearMessages'\nexport const UPDATE_LAST_MESSAGE_DATE = 'updateLastMessageDate'\nexport const SET_CURRENT_ATTACHMENT = 'setCurrentAttachment'\nexport const SET_ONLINE = 'setOnline'\nexport const UPDATE_JWT = 'updateJwt'\n"],"file":"actions.js"}
|
|
@@ -22,16 +22,23 @@ var _webchatResizer = require("./webchat-resizer");
|
|
|
22
22
|
var DeviceAdapter = /*#__PURE__*/function () {
|
|
23
23
|
function DeviceAdapter() {
|
|
24
24
|
(0, _classCallCheck2["default"])(this, DeviceAdapter);
|
|
25
|
+
this.currentDevice = this.getCurrentDevice();
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
(0, _createClass2["default"])(DeviceAdapter, [{
|
|
28
29
|
key: "init",
|
|
29
30
|
value: function init(host) {
|
|
30
|
-
this.currentDevice = navigator.platform;
|
|
31
31
|
this.webchatResizer = new _webchatResizer.WebchatResizer(this.currentDevice, host);
|
|
32
32
|
this.scrollbarController = new _scrollbarController.ScrollbarController(this.currentDevice, host);
|
|
33
33
|
this.scrollbarController.handleScrollEvents();
|
|
34
34
|
}
|
|
35
|
+
}, {
|
|
36
|
+
key: "getCurrentDevice",
|
|
37
|
+
value: function getCurrentDevice() {
|
|
38
|
+
// navigator.platform deprecated. Ref: (https://erikmartinjordan.com/navigator-platform-deprecated-alternative)
|
|
39
|
+
if (navigator.userAgentData) return navigator.userAgentData.platform;
|
|
40
|
+
return navigator.platform;
|
|
41
|
+
}
|
|
35
42
|
}, {
|
|
36
43
|
key: "onFocus",
|
|
37
44
|
value: function onFocus(host) {
|
|
@@ -45,9 +52,12 @@ var DeviceAdapter = /*#__PURE__*/function () {
|
|
|
45
52
|
return;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
setTimeout(function () {
|
|
56
|
+
// Place onFocus logic to be run the last on the queue of asynchronous events to give enough time to init method to be called. Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop#zero_delays
|
|
57
|
+
_this.webchatResizer.onFocus(function () {
|
|
58
|
+
return _this.scrollbarController.handleOnTouchMoveEvents();
|
|
59
|
+
});
|
|
60
|
+
}, 0);
|
|
51
61
|
}
|
|
52
62
|
}, {
|
|
53
63
|
key: "onBlur",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/webchat/devices/device-adapter.js"],"names":["DeviceAdapter","
|
|
1
|
+
{"version":3,"sources":["../../../src/webchat/devices/device-adapter.js"],"names":["DeviceAdapter","currentDevice","getCurrentDevice","host","webchatResizer","WebchatResizer","scrollbarController","ScrollbarController","handleScrollEvents","navigator","userAgentData","platform","DEVICES","MOBILE","IPHONE","timeout","setTimeout","onFocus","handleOnTouchMoveEvents","onBlur","defaultFontSize"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;IAEaA,a;AACX,2BAAc;AAAA;AACZ,SAAKC,aAAL,GAAqB,KAAKC,gBAAL,EAArB;AACD;;;;WAED,cAAKC,IAAL,EAAW;AACT,WAAKC,cAAL,GAAsB,IAAIC,8BAAJ,CAAmB,KAAKJ,aAAxB,EAAuCE,IAAvC,CAAtB;AACA,WAAKG,mBAAL,GAA2B,IAAIC,wCAAJ,CAAwB,KAAKN,aAA7B,EAA4CE,IAA5C,CAA3B;AACA,WAAKG,mBAAL,CAAyBE,kBAAzB;AACD;;;WAED,4BAAmB;AACjB;AACA,UAAIC,SAAS,CAACC,aAAd,EAA6B,OAAOD,SAAS,CAACC,aAAV,CAAwBC,QAA/B;AAC7B,aAAOF,SAAS,CAACE,QAAjB;AACD;;;WAED,iBAAQR,IAAR,EAAc;AAAA;;AACZ,UAAI,KAAKF,aAAL,KAAuBW,UAAQC,MAAR,CAAeC,MAA1C,EAAkD;AAChD,iCAAe;AAAEX,UAAAA,IAAI,EAAJA,IAAF;AAAQY,UAAAA,OAAO,EAAE;AAAjB,SAAf;AACA;AACD;;AACDC,MAAAA,UAAU,CAAC,YAAM;AACf;AACA,QAAA,KAAI,CAACZ,cAAL,CAAoBa,OAApB,CAA4B;AAAA,iBAC1B,KAAI,CAACX,mBAAL,CAAyBY,uBAAzB,EAD0B;AAAA,SAA5B;AAGD,OALS,EAKP,CALO,CAAV;AAMD;;;WAED,kBAAS;AACP,UAAI,KAAKjB,aAAL,KAAuBW,UAAQC,MAAR,CAAeC,MAA1C,EAAkD;AAClD,WAAKV,cAAL,CAAoBe,MAApB;AACA,WAAKb,mBAAL,CAAyBY,uBAAzB;AACD;;;WAED,oBAA+B;AAAA,UAAtBE,eAAsB,uEAAJ,EAAI;AAC7B,UAAI,KAAKnB,aAAL,KAAuBW,UAAQC,MAAR,CAAeC,MAA1C,EAAkD,OAAOM,eAAP,CADrB,CAE7B;;AACA,aAAO,SAAP;AACD","sourcesContent":["import { scrollToBottom } from '../../util/dom'\nimport { DEVICES } from '.'\nimport { ScrollbarController } from './scrollbar-controller'\nimport { WebchatResizer } from './webchat-resizer'\n\nexport class DeviceAdapter {\n constructor() {\n this.currentDevice = this.getCurrentDevice()\n }\n\n init(host) {\n this.webchatResizer = new WebchatResizer(this.currentDevice, host)\n this.scrollbarController = new ScrollbarController(this.currentDevice, host)\n this.scrollbarController.handleScrollEvents()\n }\n\n getCurrentDevice() {\n // navigator.platform deprecated. Ref: (https://erikmartinjordan.com/navigator-platform-deprecated-alternative)\n if (navigator.userAgentData) return navigator.userAgentData.platform\n return navigator.platform\n }\n\n onFocus(host) {\n if (this.currentDevice !== DEVICES.MOBILE.IPHONE) {\n scrollToBottom({ host, timeout: 800 })\n return\n }\n setTimeout(() => {\n // Place onFocus logic to be run the last on the queue of asynchronous events to give enough time to init method to be called. Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop#zero_delays\n this.webchatResizer.onFocus(() =>\n this.scrollbarController.handleOnTouchMoveEvents()\n )\n }, 0)\n }\n\n onBlur() {\n if (this.currentDevice !== DEVICES.MOBILE.IPHONE) return\n this.webchatResizer.onBlur()\n this.scrollbarController.handleOnTouchMoveEvents()\n }\n\n fontSize(defaultFontSize = 14) {\n if (this.currentDevice !== DEVICES.MOBILE.IPHONE) return defaultFontSize\n // Disabling auto-zoom on input (iPhone devices): https://stackoverflow.com/a/25614477, https://stackoverflow.com/a/6394497\n return 'initial'\n }\n}\n"],"file":"device-adapter.js"}
|
|
@@ -51,7 +51,7 @@ var ScrollbarController = /*#__PURE__*/function () {
|
|
|
51
51
|
var _this = this;
|
|
52
52
|
|
|
53
53
|
/*
|
|
54
|
-
It handles scroll events for Mobile/Desktop.
|
|
54
|
+
It handles scroll events for Mobile/Desktop.
|
|
55
55
|
"ontouchmove" is the phone equivalent for "onmouseover"
|
|
56
56
|
*/
|
|
57
57
|
if ((0, _.isMobileDevice)()) {
|
|
@@ -91,12 +91,14 @@ var ScrollbarController = /*#__PURE__*/function () {
|
|
|
91
91
|
}, {
|
|
92
92
|
key: "toggleOnMouseWheelEvents",
|
|
93
93
|
value: function toggleOnMouseWheelEvents() {
|
|
94
|
+
var scrollableContent = (0, _dom.getScrollableContent)(this.webchat);
|
|
95
|
+
|
|
94
96
|
if (this.hasScrollbar()) {
|
|
95
|
-
|
|
97
|
+
scrollableContent.onmousewheel = {};
|
|
96
98
|
return;
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
scrollableContent.onmousewheel = function (e) {
|
|
100
102
|
return e.preventDefault();
|
|
101
103
|
};
|
|
102
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/webchat/devices/scrollbar-controller.js"],"names":["debounced","delay","fn","timerId","args","clearTimeout","setTimeout","stopAtScrollLimit","element","scrollTop","scrollHeight","clientHeight","ScrollbarController","currentDevice","host","webchat","DEVICES","MOBILE","IPHONE","limitScrollBoundaries","ontouchstart","e","handleOnTouchMoveEvents","ontouchmove","onmouseover","handleOnMouseOverEvents","scrollableArea","isScrollable","visible","full","target","currentTarget","toggleOnMouseWheelEvents","parentNode","hasScrollbar","onmousewheel","preventDefault","toggleOnTouchMoveEvents","frame","dStopAtScrollLimit","window","addEventListener","attachEvent"],"mappings":";;;;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/webchat/devices/scrollbar-controller.js"],"names":["debounced","delay","fn","timerId","args","clearTimeout","setTimeout","stopAtScrollLimit","element","scrollTop","scrollHeight","clientHeight","ScrollbarController","currentDevice","host","webchat","DEVICES","MOBILE","IPHONE","limitScrollBoundaries","ontouchstart","e","handleOnTouchMoveEvents","ontouchmove","onmouseover","handleOnMouseOverEvents","scrollableArea","isScrollable","visible","full","target","currentTarget","toggleOnMouseWheelEvents","parentNode","scrollableContent","hasScrollbar","onmousewheel","preventDefault","toggleOnTouchMoveEvents","frame","dStopAtScrollLimit","window","addEventListener","attachEvent"],"mappings":"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","sourcesContent":["import {\n getScrollableArea,\n getScrollableContent,\n getWebchatElement,\n} from '../../util/dom'\nimport { DEVICES, isMobileDevice } from '.'\n\nconst debounced = (delay, fn) => {\n let timerId\n return function (...args) {\n if (timerId) {\n clearTimeout(timerId)\n }\n timerId = setTimeout(() => {\n fn(...args)\n timerId = null\n }, delay)\n }\n}\n\nconst stopAtScrollLimit = element => {\n if (element.scrollTop === 0) element.scrollTop = 1\n if (element.scrollHeight - element.scrollTop === element.clientHeight)\n element.scrollTop -= 1\n}\n\nexport class ScrollbarController {\n constructor(currentDevice, host) {\n this.currentDevice = currentDevice\n this.webchat = getWebchatElement(host)\n }\n\n handleScrollEvents() {\n /*\n It handles scroll events for Mobile/Desktop.\n \"ontouchmove\" is the phone equivalent for \"onmouseover\"\n */\n if (isMobileDevice()) {\n if (this.currentDevice !== DEVICES.MOBILE.IPHONE) return\n this.limitScrollBoundaries()\n this.webchat.ontouchstart = e => {\n this.handleOnTouchMoveEvents(e)\n }\n this.webchat.ontouchmove = e => {\n this.handleOnTouchMoveEvents(e)\n }\n } else {\n this.webchat.onmouseover = e => this.handleOnMouseOverEvents(e)\n }\n }\n\n hasScrollbar() {\n const scrollableArea = getScrollableArea(this.webchat)\n const isScrollable =\n scrollableArea.visible.clientHeight - scrollableArea.full.clientHeight < 0\n return isScrollable\n }\n\n handleOnMouseOverEvents(e) {\n let target = e.currentTarget\n while (target) {\n this.toggleOnMouseWheelEvents()\n target = target.parentNode\n }\n }\n\n toggleOnMouseWheelEvents() {\n const scrollableContent = getScrollableContent(this.webchat)\n if (this.hasScrollbar()) {\n scrollableContent.onmousewheel = {}\n return\n }\n scrollableContent.onmousewheel = e => e.preventDefault()\n }\n\n handleOnTouchMoveEvents(e) {\n this.toggleOnTouchMoveEvents()\n }\n\n toggleOnTouchMoveEvents() {\n if (this.hasScrollbar()) {\n this.webchat.ontouchmove = {}\n this.webchat.ontouchstart = {}\n return\n }\n this.webchat.ontouchmove = e => e.preventDefault()\n }\n\n limitScrollBoundaries() {\n if (this.currentDevice !== DEVICES.MOBILE.IPHONE) return\n /*\n It adds a bounce effect when top or bottom limits of the scrollbar are reached for iOS,\n as an alternative of overscroll-behavior (https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior)\n */\n const frame = getScrollableArea(this.webchat).visible\n const dStopAtScrollLimit = debounced(100, stopAtScrollLimit)\n if (frame) {\n if (window.addEventListener) {\n frame.addEventListener('scroll', () => dStopAtScrollLimit(frame), true)\n } else if (window.attachEvent) {\n frame.attachEvent('scroll', () => dStopAtScrollLimit(frame))\n }\n }\n }\n}\n"],"file":"scrollbar-controller.js"}
|
package/lib/webchat/header.js
CHANGED
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.WebchatHeader = exports.StyledWebchatHeader = exports.DefaultHeader = void 0;
|
|
11
11
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
package/lib/webchat/hooks.js
CHANGED
|
@@ -5,11 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.useWebchat = useWebchat;
|
|
9
|
-
exports.useTyping = useTyping;
|
|
10
|
-
exports.usePrevious = usePrevious;
|
|
11
8
|
exports.useComponentVisible = useComponentVisible;
|
|
12
|
-
exports.useComponentWillMount =
|
|
9
|
+
exports.useComponentWillMount = void 0;
|
|
10
|
+
exports.usePrevious = usePrevious;
|
|
11
|
+
exports.useTyping = useTyping;
|
|
12
|
+
exports.useWebchat = useWebchat;
|
|
13
|
+
exports.webchatInitialState = void 0;
|
|
13
14
|
|
|
14
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
16
|
|
|
@@ -64,8 +65,10 @@ var webchatInitialState = {
|
|
|
64
65
|
isEmojiPickerOpen: false,
|
|
65
66
|
isPersistentMenuOpen: false,
|
|
66
67
|
isCoverComponentOpen: false,
|
|
68
|
+
isCustomComponentRendered: false,
|
|
67
69
|
lastMessageUpdate: undefined,
|
|
68
|
-
currentAttachment: undefined
|
|
70
|
+
currentAttachment: undefined,
|
|
71
|
+
jwt: null
|
|
69
72
|
};
|
|
70
73
|
exports.webchatInitialState = webchatInitialState;
|
|
71
74
|
|
|
@@ -197,6 +200,13 @@ function useWebchat() {
|
|
|
197
200
|
});
|
|
198
201
|
};
|
|
199
202
|
|
|
203
|
+
var doRenderCustomComponent = function doRenderCustomComponent(toggle) {
|
|
204
|
+
return webchatDispatch({
|
|
205
|
+
type: _actions.DO_RENDER_CUSTOM_COMPONENT,
|
|
206
|
+
payload: toggle
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
|
|
200
210
|
var setError = function setError(error) {
|
|
201
211
|
return webchatDispatch({
|
|
202
212
|
type: _actions.SET_ERROR,
|
|
@@ -231,6 +241,13 @@ function useWebchat() {
|
|
|
231
241
|
});
|
|
232
242
|
};
|
|
233
243
|
|
|
244
|
+
var updateJwt = function updateJwt(jwt) {
|
|
245
|
+
webchatDispatch({
|
|
246
|
+
type: _actions.UPDATE_JWT,
|
|
247
|
+
payload: jwt
|
|
248
|
+
});
|
|
249
|
+
};
|
|
250
|
+
|
|
234
251
|
return {
|
|
235
252
|
webchatState: webchatState,
|
|
236
253
|
webchatDispatch: webchatDispatch,
|
|
@@ -250,11 +267,13 @@ function useWebchat() {
|
|
|
250
267
|
toggleEmojiPicker: toggleEmojiPicker,
|
|
251
268
|
togglePersistentMenu: togglePersistentMenu,
|
|
252
269
|
toggleCoverComponent: toggleCoverComponent,
|
|
270
|
+
doRenderCustomComponent: doRenderCustomComponent,
|
|
253
271
|
setError: setError,
|
|
254
272
|
setOnline: setOnline,
|
|
255
273
|
clearMessages: clearMessages,
|
|
256
274
|
updateLastMessageDate: updateLastMessageDate,
|
|
257
|
-
setCurrentAttachment: setCurrentAttachment
|
|
275
|
+
setCurrentAttachment: setCurrentAttachment,
|
|
276
|
+
updateJwt: updateJwt
|
|
258
277
|
};
|
|
259
278
|
}
|
|
260
279
|
|
package/lib/webchat/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/webchat/hooks.js"],"names":["webchatInitialState","width","WEBCHAT","DEFAULTS","WIDTH","height","HEIGHT","messagesJSON","messagesComponents","replies","latestInput","typing","webview","webviewParams","session","user","lastRoutePath","handoff","theme","headerTitle","TITLE","brandColor","COLORS","BOTONIC_BLUE","brandImage","LOGO","triggerButtonImage","undefined","textPlaceholder","PLACEHOLDER","style","fontFamily","FONT_FAMILY","themeUpdates","error","online","devSettings","keepSessionOnReload","isWebchatOpen","isEmojiPickerOpen","isPersistentMenuOpen","isCoverComponentOpen","lastMessageUpdate","currentAttachment","useWebchat","webchatReducer","webchatState","webchatDispatch","addMessage","message","type","ADD_MESSAGE","payload","addMessageComponent","ADD_MESSAGE_COMPONENT","updateMessage","UPDATE_MESSAGE","updateReplies","UPDATE_REPLIES","updateLatestInput","input","UPDATE_LATEST_INPUT","updateTyping","UPDATE_TYPING","updateWebview","params","UPDATE_WEBVIEW","updateSession","UPDATE_SESSION","updateLastRoutePath","path","UPDATE_LAST_ROUTE_PATH","updateHandoff","UPDATE_HANDOFF","updateTheme","UPDATE_THEME","updateDevSettings","settings","UPDATE_DEV_SETTINGS","toggleWebchat","toggle","TOGGLE_WEBCHAT","toggleEmojiPicker","TOGGLE_EMOJI_PICKER","togglePersistentMenu","TOGGLE_PERSISTENT_MENU","toggleCoverComponent","TOGGLE_COVER_COMPONENT","setError","SET_ERROR","setOnline","SET_ONLINE","clearMessages","CLEAR_MESSAGES","updateLastMessageDate","date","UPDATE_LAST_MESSAGE_DATE","setCurrentAttachment","attachment","SET_CURRENT_ATTACHMENT","useTyping","host","delayTimeout","typingTimeout","nextMsg","filter","m","display","delay","setTimeout","totalDelay","e","clearTimeout","usePrevious","value","ref","current","useComponentVisible","initialIsVisible","onClickOutside","isComponentVisible","setIsComponentVisible","handleClickOutside","event","contains","target","document","addEventListener","removeEventListener","useComponentWillMount","func"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAuBA;;;;;;AAEO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,KAAK,EAAEC,mBAAQC,QAAR,CAAiBC,KADS;AAEjCC,EAAAA,MAAM,EAAEH,mBAAQC,QAAR,CAAiBG,MAFQ;AAGjCC,EAAAA,YAAY,EAAE,EAHmB;AAIjCC,EAAAA,kBAAkB,EAAE,EAJa;AAKjCC,EAAAA,OAAO,EAAE,EALwB;AAMjCC,EAAAA,WAAW,EAAE,EANoB;AAOjCC,EAAAA,MAAM,EAAE,KAPyB;AAQjCC,EAAAA,OAAO,EAAE,IARwB;AASjCC,EAAAA,aAAa,EAAE,IATkB;AAUjCC,EAAAA,OAAO,EAAE;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAVwB;AAWjCC,EAAAA,aAAa,EAAE,IAXkB;AAYjCC,EAAAA,OAAO,EAAE,KAZwB;AAajCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAEjB,mBAAQC,QAAR,CAAiBiB,KADzB;AAELC,IAAAA,UAAU,EAAEC,kBAAOC,YAFd;AAGLC,IAAAA,UAAU,EAAEtB,mBAAQC,QAAR,CAAiBsB,IAHxB;AAILC,IAAAA,kBAAkB,EAAEC,SAJf;AAKLC,IAAAA,eAAe,EAAE1B,mBAAQC,QAAR,CAAiB0B,WAL7B;AAMLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE7B,mBAAQC,QAAR,CAAiB6B;AADxB;AANF,GAb0B;AAuBjCC,EAAAA,YAAY,EAAE,EAvBmB;AAwBjCC,EAAAA,KAAK,EAAE,EAxB0B;AAyBjCC,EAAAA,MAAM,EAAE,IAzByB;AA0BjCC,EAAAA,WAAW,EAAE;AAAEC,IAAAA,mBAAmB,EAAE;AAAvB,GA1BoB;AA2BjCC,EAAAA,aAAa,EAAE,KA3BkB;AA4BjCC,EAAAA,iBAAiB,EAAE,KA5Bc;AA6BjCC,EAAAA,oBAAoB,EAAE,KA7BW;AA8BjCC,EAAAA,oBAAoB,EAAE,KA9BW;AA+BjCC,EAAAA,iBAAiB,EAAEf,SA/Bc;AAgCjCgB,EAAAA,iBAAiB,EAAEhB;AAhCc,CAA5B;;;AAmCA,SAASiB,UAAT,GAAsB;AAC3B,oBAAwC,uBACtCC,8BADsC,EAEtC7C,mBAFsC,CAAxC;AAAA;AAAA,MAAO8C,YAAP;AAAA,MAAqBC,eAArB;;AAKA,MAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,OAAO;AAAA,WACxBF,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEC,oBAAR;AAAqBC,MAAAA,OAAO,EAAEH;AAA9B,KAAD,CADS;AAAA,GAA1B;;AAEA,MAAMI,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAJ,OAAO;AAAA,WACjCF,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEI,8BAAR;AAA+BF,MAAAA,OAAO,EAAEH;AAAxC,KAAD,CADkB;AAAA,GAAnC;;AAEA,MAAMM,aAAa,GAAG,SAAhBA,aAAgB,CAAAN,OAAO;AAAA,WAC3BF,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEM,uBAAR;AAAwBJ,MAAAA,OAAO,EAAEH;AAAjC,KAAD,CADY;AAAA,GAA7B;;AAEA,MAAMQ,aAAa,GAAG,SAAhBA,aAAgB,CAAAhD,OAAO;AAAA,WAC3BsC,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEQ,uBAAR;AAAwBN,MAAAA,OAAO,EAAE3C;AAAjC,KAAD,CADY;AAAA,GAA7B;;AAEA,MAAMkD,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,KAAK;AAAA,WAC7Bb,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEW,4BAAR;AAA6BT,MAAAA,OAAO,EAAEQ;AAAtC,KAAD,CADc;AAAA,GAA/B;;AAEA,MAAME,YAAY,GAAG,SAAfA,YAAe,CAAAnD,MAAM;AAAA,WACzBoC,eAAe,CAAC;AAAEG,MAAAA,IAAI,EAAEa,sBAAR;AAAuBX,MAAAA,OAAO,EAAEzC;AAAhC,KAAD,CADU;AAAA,GAA3B;;AAEA,MAAMqD,aAAa,GAAG,SAAhBA,aAAgB,CAACpD,OAAD,EAAUqD,MAAV;AAAA,WACpBlB,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEgB,uBADQ;AAEdd,MAAAA,OAAO,EAAE;AAAExC,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,aAAa,EAAEoD;AAA1B;AAFK,KAAD,CADK;AAAA,GAAtB;;AAKA,MAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAArD,OAAO,EAAI;AAC/BiC,IAAAA,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEkB,uBADQ;AAEdhB,MAAAA,OAAO,EAAEtC;AAFK,KAAD,CAAf;AAID,GALD;;AAOA,MAAMuD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,IAAI;AAAA,WAC9BvB,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEqB,+BADQ;AAEdnB,MAAAA,OAAO,EAAEkB;AAFK,KAAD,CADe;AAAA,GAAhC;;AAKA,MAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAAvD,OAAO;AAAA,WAC3B8B,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEuB,uBADQ;AAEdrB,MAAAA,OAAO,EAAEnC;AAFK,KAAD,CADY;AAAA,GAA7B;;AAKA,MAAMyD,WAAW,GAAG,SAAdA,WAAc,CAACxD,KAAD,EAAqC;AAAA,QAA7Be,YAA6B,uEAAdN,SAAc;AACvD,QAAMyB,OAAO,GACXnB,YAAY,KAAKN,SAAjB,GAA6B;AAAET,MAAAA,KAAK,EAALA,KAAF;AAASe,MAAAA,YAAY,EAAZA;AAAT,KAA7B,GAAuD;AAAEf,MAAAA,KAAK,EAALA;AAAF,KADzD;AAEA6B,IAAAA,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEyB,qBADQ;AAEdvB,MAAAA,OAAO,EAAPA;AAFc,KAAD,CAAf;AAID,GAPD;;AAQA,MAAMwB,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,QAAQ;AAAA,WAChC9B,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAE4B,4BADQ;AAEd1B,MAAAA,OAAO,EAAEyB;AAFK,KAAD,CADiB;AAAA,GAAlC;;AAKA,MAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,MAAM;AAAA,WAC1BjC,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAE+B,uBADQ;AAEd7B,MAAAA,OAAO,EAAE4B;AAFK,KAAD,CADW;AAAA,GAA5B;;AAKA,MAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAF,MAAM;AAAA,WAC9BjC,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEiC,4BADQ;AAEd/B,MAAAA,OAAO,EAAE4B;AAFK,KAAD,CADe;AAAA,GAAhC;;AAKA,MAAMI,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAJ,MAAM;AAAA,WACjCjC,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEmC,+BADQ;AAEdjC,MAAAA,OAAO,EAAE4B;AAFK,KAAD,CADkB;AAAA,GAAnC;;AAKA,MAAMM,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAN,MAAM;AAAA,WACjCjC,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEqC,+BADQ;AAEdnC,MAAAA,OAAO,EAAE4B;AAFK,KAAD,CADkB;AAAA,GAAnC;;AAKA,MAAMQ,QAAQ,GAAG,SAAXA,QAAW,CAAAtD,KAAK;AAAA,WACpBa,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEuC,kBADQ;AAEdrC,MAAAA,OAAO,EAAElB;AAFK,KAAD,CADK;AAAA,GAAtB;;AAKA,MAAMwD,SAAS,GAAG,SAAZA,SAAY,CAAAvD,MAAM;AAAA,WACtBY,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEyC,mBADQ;AAEdvC,MAAAA,OAAO,EAAEjB;AAFK,KAAD,CADO;AAAA,GAAxB;;AAMA,MAAMyD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B7C,IAAAA,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAE2C;AADQ,KAAD,CAAf;AAGD,GAJD;;AAKA,MAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,IAAI,EAAI;AACpChD,IAAAA,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAE8C,iCADQ;AAEd5C,MAAAA,OAAO,EAAE2C;AAFK,KAAD,CAAf;AAID,GALD;;AAMA,MAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAC,UAAU,EAAI;AACzCnD,IAAAA,eAAe,CAAC;AACdG,MAAAA,IAAI,EAAEiD,+BADQ;AAEd/C,MAAAA,OAAO,EAAE8C;AAFK,KAAD,CAAf;AAID,GALD;;AAOA,SAAO;AACLpD,IAAAA,YAAY,EAAZA,YADK;AAELC,IAAAA,eAAe,EAAfA,eAFK;AAGLC,IAAAA,UAAU,EAAVA,UAHK;AAILK,IAAAA,mBAAmB,EAAnBA,mBAJK;AAKLE,IAAAA,aAAa,EAAbA,aALK;AAMLE,IAAAA,aAAa,EAAbA,aANK;AAOLE,IAAAA,iBAAiB,EAAjBA,iBAPK;AAQLG,IAAAA,YAAY,EAAZA,YARK;AASLE,IAAAA,aAAa,EAAbA,aATK;AAULG,IAAAA,aAAa,EAAbA,aAVK;AAWLE,IAAAA,mBAAmB,EAAnBA,mBAXK;AAYLG,IAAAA,aAAa,EAAbA,aAZK;AAaLE,IAAAA,WAAW,EAAXA,WAbK;AAcLE,IAAAA,iBAAiB,EAAjBA,iBAdK;AAeLG,IAAAA,aAAa,EAAbA,aAfK;AAgBLG,IAAAA,iBAAiB,EAAjBA,iBAhBK;AAiBLE,IAAAA,oBAAoB,EAApBA,oBAjBK;AAkBLE,IAAAA,oBAAoB,EAApBA,oBAlBK;AAmBLE,IAAAA,QAAQ,EAARA,QAnBK;AAoBLE,IAAAA,SAAS,EAATA,SApBK;AAqBLE,IAAAA,aAAa,EAAbA,aArBK;AAsBLE,IAAAA,qBAAqB,EAArBA,qBAtBK;AAuBLG,IAAAA,oBAAoB,EAApBA;AAvBK,GAAP;AAyBD;;AAEM,SAASG,SAAT,OAAwE;AAAA,MAAnDtD,YAAmD,QAAnDA,YAAmD;AAAA,MAArCgB,YAAqC,QAArCA,YAAqC;AAAA,MAAvBP,aAAuB,QAAvBA,aAAuB;AAAA,MAAR8C,IAAQ,QAARA,IAAQ;AAC7E,wBAAU,YAAM;AACd,QAAIC,YAAJ,EAAkBC,aAAlB;AACA,6BAAe;AAAEF,MAAAA,IAAI,EAAJA;AAAF,KAAf;;AACA,QAAI;AACF,UAAMG,OAAO,GAAG1D,YAAY,CAACvC,YAAb,CAA0BkG,MAA1B,CAAiC,UAAAC,CAAC;AAAA,eAAI,CAACA,CAAC,CAACC,OAAP;AAAA,OAAlC,EAAkD,CAAlD,CAAhB;;AACA,UAAIH,OAAO,CAACI,KAAR,IAAiBJ,OAAO,CAAC7F,MAA7B,EAAqC;AACnC2F,QAAAA,YAAY,GAAGO,UAAU,CACvB;AAAA,iBAAM/C,YAAY,CAAC,IAAD,CAAlB;AAAA,SADuB,EAEvB0C,OAAO,CAACI,KAAR,GAAgB,IAFO,CAAzB;AAID,OALD,MAKO,IAAIJ,OAAO,CAAC7F,MAAZ,EAAoBmD,YAAY,CAAC,IAAD,CAAZ;;AAC3B,UAAMgD,UAAU,GAAGN,OAAO,CAACI,KAAR,GAAgBJ,OAAO,CAAC7F,MAA3C;AACA,UAAImG,UAAJ,EACEP,aAAa,GAAGM,UAAU,CAAC,YAAM;AAC/BtD,QAAAA,aAAa,iCAAMiD,OAAN;AAAeG,UAAAA,OAAO,EAAE;AAAxB,WAAb;AACA7C,QAAAA,YAAY,CAAC,KAAD,CAAZ;AACD,OAHyB,EAGvBgD,UAAU,GAAG,IAHU,CAA1B;AAIH,KAdD,CAcE,OAAOC,CAAP,EAAU,CAAE;;AACd,WAAO,YAAM;AACXC,MAAAA,YAAY,CAACV,YAAD,CAAZ;AACAU,MAAAA,YAAY,CAACT,aAAD,CAAZ;AACD,KAHD;AAID,GAtBD,EAsBG,CAACzD,YAAY,CAACvC,YAAd,EAA4BuC,YAAY,CAACnC,MAAzC,CAtBH;AAuBD;;AAEM,SAASsG,WAAT,CAAqBC,KAArB,EAA4B;AACjC,MAAMC,GAAG,GAAG,oBAAZ;AACA,wBAAU,YAAM;AACdA,IAAAA,GAAG,CAACC,OAAJ,GAAcF,KAAd;AACD,GAFD;AAGA,SAAOC,GAAG,CAACC,OAAX;AACD;;AAEM,SAASC,mBAAT,CAA6BC,gBAA7B,EAA+CC,cAA/C,EAA+D;AACpE,kBAAoD,qBAASD,gBAAT,CAApD;AAAA;AAAA,MAAOE,kBAAP;AAAA,MAA2BC,qBAA3B;;AACA,MAAMN,GAAG,GAAG,mBAAO,IAAP,CAAZ;;AACA,MAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,KAAK,EAAI;AAClC,QAAIR,GAAG,CAACC,OAAJ,IAAe,CAACD,GAAG,CAACC,OAAJ,CAAYQ,QAAZ,CAAqBD,KAAK,CAACE,MAA3B,CAApB,EAAwD;AACtDJ,MAAAA,qBAAqB,CAAC,KAAD,CAArB;AACAF,MAAAA,cAAc;AACf;AACF,GALD;;AAMA,wBAAU,YAAM;AACdO,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCL,kBAAnC,EAAuD,KAAvD;AACA,WAAO,YAAM;AACXI,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCN,kBAAtC,EAA0D,KAA1D;AACD,KAFD;AAGD,GALD;AAMA,SAAO;AAAEP,IAAAA,GAAG,EAAHA,GAAF;AAAOK,IAAAA,kBAAkB,EAAlBA,kBAAP;AAA2BC,IAAAA,qBAAqB,EAArBA;AAA3B,GAAP;AACD;;AAEM,IAAMQ,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,IAAI,EAAI;AAC3C,sBAAQA,IAAR,EAAc,EAAd;AACD,CAFM","sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { scrollToBottom } from '../util/dom'\nimport {\n ADD_MESSAGE,\n ADD_MESSAGE_COMPONENT,\n CLEAR_MESSAGES,\n SET_CURRENT_ATTACHMENT,\n SET_ERROR,\n SET_ONLINE,\n TOGGLE_COVER_COMPONENT,\n TOGGLE_EMOJI_PICKER,\n TOGGLE_PERSISTENT_MENU,\n TOGGLE_WEBCHAT,\n UPDATE_DEV_SETTINGS,\n UPDATE_HANDOFF,\n UPDATE_LAST_MESSAGE_DATE,\n UPDATE_LAST_ROUTE_PATH,\n UPDATE_LATEST_INPUT,\n UPDATE_MESSAGE,\n UPDATE_REPLIES,\n UPDATE_SESSION,\n UPDATE_THEME,\n UPDATE_TYPING,\n UPDATE_WEBVIEW,\n} from './actions'\nimport { webchatReducer } from './webchat-reducer'\n\nexport const webchatInitialState = {\n width: WEBCHAT.DEFAULTS.WIDTH,\n height: WEBCHAT.DEFAULTS.HEIGHT,\n messagesJSON: [],\n messagesComponents: [],\n replies: [],\n latestInput: {},\n typing: false,\n webview: null,\n webviewParams: null,\n session: { user: null },\n lastRoutePath: null,\n handoff: false,\n theme: {\n headerTitle: WEBCHAT.DEFAULTS.TITLE,\n brandColor: COLORS.BOTONIC_BLUE,\n brandImage: WEBCHAT.DEFAULTS.LOGO,\n triggerButtonImage: undefined,\n textPlaceholder: WEBCHAT.DEFAULTS.PLACEHOLDER,\n style: {\n fontFamily: WEBCHAT.DEFAULTS.FONT_FAMILY,\n },\n },\n themeUpdates: {},\n error: {},\n online: true,\n devSettings: { keepSessionOnReload: false },\n isWebchatOpen: false,\n isEmojiPickerOpen: false,\n isPersistentMenuOpen: false,\n isCoverComponentOpen: false,\n lastMessageUpdate: undefined,\n currentAttachment: undefined,\n}\n\nexport function useWebchat() {\n const [webchatState, webchatDispatch] = useReducer(\n webchatReducer,\n webchatInitialState\n )\n\n const addMessage = message =>\n webchatDispatch({ type: ADD_MESSAGE, payload: message })\n const addMessageComponent = message =>\n webchatDispatch({ type: ADD_MESSAGE_COMPONENT, payload: message })\n const updateMessage = message =>\n webchatDispatch({ type: UPDATE_MESSAGE, payload: message })\n const updateReplies = replies =>\n webchatDispatch({ type: UPDATE_REPLIES, payload: replies })\n const updateLatestInput = input =>\n webchatDispatch({ type: UPDATE_LATEST_INPUT, payload: input })\n const updateTyping = typing =>\n webchatDispatch({ type: UPDATE_TYPING, payload: typing })\n const updateWebview = (webview, params) =>\n webchatDispatch({\n type: UPDATE_WEBVIEW,\n payload: { webview, webviewParams: params },\n })\n const updateSession = session => {\n webchatDispatch({\n type: UPDATE_SESSION,\n payload: session,\n })\n }\n\n const updateLastRoutePath = path =>\n webchatDispatch({\n type: UPDATE_LAST_ROUTE_PATH,\n payload: path,\n })\n const updateHandoff = handoff =>\n webchatDispatch({\n type: UPDATE_HANDOFF,\n payload: handoff,\n })\n const updateTheme = (theme, themeUpdates = undefined) => {\n const payload =\n themeUpdates !== undefined ? { theme, themeUpdates } : { theme }\n webchatDispatch({\n type: UPDATE_THEME,\n payload,\n })\n }\n const updateDevSettings = settings =>\n webchatDispatch({\n type: UPDATE_DEV_SETTINGS,\n payload: settings,\n })\n const toggleWebchat = toggle =>\n webchatDispatch({\n type: TOGGLE_WEBCHAT,\n payload: toggle,\n })\n const toggleEmojiPicker = toggle =>\n webchatDispatch({\n type: TOGGLE_EMOJI_PICKER,\n payload: toggle,\n })\n const togglePersistentMenu = toggle =>\n webchatDispatch({\n type: TOGGLE_PERSISTENT_MENU,\n payload: toggle,\n })\n const toggleCoverComponent = toggle =>\n webchatDispatch({\n type: TOGGLE_COVER_COMPONENT,\n payload: toggle,\n })\n const setError = error =>\n webchatDispatch({\n type: SET_ERROR,\n payload: error,\n })\n const setOnline = online =>\n webchatDispatch({\n type: SET_ONLINE,\n payload: online,\n })\n\n const clearMessages = () => {\n webchatDispatch({\n type: CLEAR_MESSAGES,\n })\n }\n const updateLastMessageDate = date => {\n webchatDispatch({\n type: UPDATE_LAST_MESSAGE_DATE,\n payload: date,\n })\n }\n const setCurrentAttachment = attachment => {\n webchatDispatch({\n type: SET_CURRENT_ATTACHMENT,\n payload: attachment,\n })\n }\n\n return {\n webchatState,\n webchatDispatch,\n addMessage,\n addMessageComponent,\n updateMessage,\n updateReplies,\n updateLatestInput,\n updateTyping,\n updateWebview,\n updateSession,\n updateLastRoutePath,\n updateHandoff,\n updateTheme,\n updateDevSettings,\n toggleWebchat,\n toggleEmojiPicker,\n togglePersistentMenu,\n toggleCoverComponent,\n setError,\n setOnline,\n clearMessages,\n updateLastMessageDate,\n setCurrentAttachment,\n }\n}\n\nexport function useTyping({ webchatState, updateTyping, updateMessage, host }) {\n useEffect(() => {\n let delayTimeout, typingTimeout\n scrollToBottom({ host })\n try {\n const nextMsg = webchatState.messagesJSON.filter(m => !m.display)[0]\n if (nextMsg.delay && nextMsg.typing) {\n delayTimeout = setTimeout(\n () => updateTyping(true),\n nextMsg.delay * 1000\n )\n } else if (nextMsg.typing) updateTyping(true)\n const totalDelay = nextMsg.delay + nextMsg.typing\n if (totalDelay)\n typingTimeout = setTimeout(() => {\n updateMessage({ ...nextMsg, display: true })\n updateTyping(false)\n }, totalDelay * 1000)\n } catch (e) {}\n return () => {\n clearTimeout(delayTimeout)\n clearTimeout(typingTimeout)\n }\n }, [webchatState.messagesJSON, webchatState.typing])\n}\n\nexport function usePrevious(value) {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n\nexport function useComponentVisible(initialIsVisible, onClickOutside) {\n const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible)\n const ref = useRef(null)\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsComponentVisible(false)\n onClickOutside()\n }\n }\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false)\n return () => {\n document.removeEventListener('click', handleClickOutside, false)\n }\n })\n return { ref, isComponentVisible, setIsComponentVisible }\n}\n\nexport const useComponentWillMount = func => {\n useMemo(func, [])\n}\n"],"file":"hooks.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/webchat/hooks.js"],"names":["webchatInitialState","width","WEBCHAT","DEFAULTS","WIDTH","height","HEIGHT","messagesJSON","messagesComponents","replies","latestInput","typing","webview","webviewParams","session","user","lastRoutePath","handoff","theme","headerTitle","TITLE","brandColor","COLORS","BOTONIC_BLUE","brandImage","LOGO","triggerButtonImage","undefined","textPlaceholder","PLACEHOLDER","style","fontFamily","FONT_FAMILY","themeUpdates","error","online","devSettings","keepSessionOnReload","isWebchatOpen","isEmojiPickerOpen","isPersistentMenuOpen","isCoverComponentOpen","isCustomComponentRendered","lastMessageUpdate","currentAttachment","jwt","useWebchat","webchatReducer","webchatState","webchatDispatch","addMessage","message","type","ADD_MESSAGE","payload","addMessageComponent","ADD_MESSAGE_COMPONENT","updateMessage","UPDATE_MESSAGE","updateReplies","UPDATE_REPLIES","updateLatestInput","input","UPDATE_LATEST_INPUT","updateTyping","UPDATE_TYPING","updateWebview","params","UPDATE_WEBVIEW","updateSession","UPDATE_SESSION","updateLastRoutePath","path","UPDATE_LAST_ROUTE_PATH","updateHandoff","UPDATE_HANDOFF","updateTheme","UPDATE_THEME","updateDevSettings","settings","UPDATE_DEV_SETTINGS","toggleWebchat","toggle","TOGGLE_WEBCHAT","toggleEmojiPicker","TOGGLE_EMOJI_PICKER","togglePersistentMenu","TOGGLE_PERSISTENT_MENU","toggleCoverComponent","TOGGLE_COVER_COMPONENT","doRenderCustomComponent","DO_RENDER_CUSTOM_COMPONENT","setError","SET_ERROR","setOnline","SET_ONLINE","clearMessages","CLEAR_MESSAGES","updateLastMessageDate","date","UPDATE_LAST_MESSAGE_DATE","setCurrentAttachment","attachment","SET_CURRENT_ATTACHMENT","updateJwt","UPDATE_JWT","useTyping","host","delayTimeout","typingTimeout","nextMsg","filter","m","display","delay","setTimeout","totalDelay","e","clearTimeout","usePrevious","value","ref","current","useComponentVisible","initialIsVisible","onClickOutside","isComponentVisible","setIsComponentVisible","handleClickOutside","event","contains","target","document","addEventListener","removeEventListener","useComponentWillMount","func"],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { scrollToBottom } from '../util/dom'\nimport {\n ADD_MESSAGE,\n ADD_MESSAGE_COMPONENT,\n CLEAR_MESSAGES,\n DO_RENDER_CUSTOM_COMPONENT,\n SET_CURRENT_ATTACHMENT,\n SET_ERROR,\n SET_ONLINE,\n TOGGLE_COVER_COMPONENT,\n TOGGLE_EMOJI_PICKER,\n TOGGLE_PERSISTENT_MENU,\n TOGGLE_WEBCHAT,\n UPDATE_DEV_SETTINGS,\n UPDATE_HANDOFF,\n UPDATE_JWT,\n UPDATE_LAST_MESSAGE_DATE,\n UPDATE_LAST_ROUTE_PATH,\n UPDATE_LATEST_INPUT,\n UPDATE_MESSAGE,\n UPDATE_REPLIES,\n UPDATE_SESSION,\n UPDATE_THEME,\n UPDATE_TYPING,\n UPDATE_WEBVIEW,\n} from './actions'\nimport { webchatReducer } from './webchat-reducer'\n\nexport const webchatInitialState = {\n width: WEBCHAT.DEFAULTS.WIDTH,\n height: WEBCHAT.DEFAULTS.HEIGHT,\n messagesJSON: [],\n messagesComponents: [],\n replies: [],\n latestInput: {},\n typing: false,\n webview: null,\n webviewParams: null,\n session: { user: null },\n lastRoutePath: null,\n handoff: false,\n theme: {\n headerTitle: WEBCHAT.DEFAULTS.TITLE,\n brandColor: COLORS.BOTONIC_BLUE,\n brandImage: WEBCHAT.DEFAULTS.LOGO,\n triggerButtonImage: undefined,\n textPlaceholder: WEBCHAT.DEFAULTS.PLACEHOLDER,\n style: {\n fontFamily: WEBCHAT.DEFAULTS.FONT_FAMILY,\n },\n },\n themeUpdates: {},\n error: {},\n online: true,\n devSettings: { keepSessionOnReload: false },\n isWebchatOpen: false,\n isEmojiPickerOpen: false,\n isPersistentMenuOpen: false,\n isCoverComponentOpen: false,\n isCustomComponentRendered: false,\n lastMessageUpdate: undefined,\n currentAttachment: undefined,\n jwt: null,\n}\n\nexport function useWebchat() {\n const [webchatState, webchatDispatch] = useReducer(\n webchatReducer,\n webchatInitialState\n )\n\n const addMessage = message =>\n webchatDispatch({ type: ADD_MESSAGE, payload: message })\n const addMessageComponent = message =>\n webchatDispatch({ type: ADD_MESSAGE_COMPONENT, payload: message })\n const updateMessage = message =>\n webchatDispatch({ type: UPDATE_MESSAGE, payload: message })\n const updateReplies = replies =>\n webchatDispatch({ type: UPDATE_REPLIES, payload: replies })\n const updateLatestInput = input =>\n webchatDispatch({ type: UPDATE_LATEST_INPUT, payload: input })\n const updateTyping = typing =>\n webchatDispatch({ type: UPDATE_TYPING, payload: typing })\n const updateWebview = (webview, params) =>\n webchatDispatch({\n type: UPDATE_WEBVIEW,\n payload: { webview, webviewParams: params },\n })\n const updateSession = session => {\n webchatDispatch({\n type: UPDATE_SESSION,\n payload: session,\n })\n }\n\n const updateLastRoutePath = path =>\n webchatDispatch({\n type: UPDATE_LAST_ROUTE_PATH,\n payload: path,\n })\n const updateHandoff = handoff =>\n webchatDispatch({\n type: UPDATE_HANDOFF,\n payload: handoff,\n })\n const updateTheme = (theme, themeUpdates = undefined) => {\n const payload =\n themeUpdates !== undefined ? { theme, themeUpdates } : { theme }\n webchatDispatch({\n type: UPDATE_THEME,\n payload,\n })\n }\n const updateDevSettings = settings =>\n webchatDispatch({\n type: UPDATE_DEV_SETTINGS,\n payload: settings,\n })\n const toggleWebchat = toggle =>\n webchatDispatch({\n type: TOGGLE_WEBCHAT,\n payload: toggle,\n })\n const toggleEmojiPicker = toggle =>\n webchatDispatch({\n type: TOGGLE_EMOJI_PICKER,\n payload: toggle,\n })\n const togglePersistentMenu = toggle =>\n webchatDispatch({\n type: TOGGLE_PERSISTENT_MENU,\n payload: toggle,\n })\n const toggleCoverComponent = toggle =>\n webchatDispatch({\n type: TOGGLE_COVER_COMPONENT,\n payload: toggle,\n })\n const doRenderCustomComponent = toggle =>\n webchatDispatch({\n type: DO_RENDER_CUSTOM_COMPONENT,\n payload: toggle,\n })\n const setError = error =>\n webchatDispatch({\n type: SET_ERROR,\n payload: error,\n })\n const setOnline = online =>\n webchatDispatch({\n type: SET_ONLINE,\n payload: online,\n })\n\n const clearMessages = () => {\n webchatDispatch({\n type: CLEAR_MESSAGES,\n })\n }\n const updateLastMessageDate = date => {\n webchatDispatch({\n type: UPDATE_LAST_MESSAGE_DATE,\n payload: date,\n })\n }\n const setCurrentAttachment = attachment => {\n webchatDispatch({\n type: SET_CURRENT_ATTACHMENT,\n payload: attachment,\n })\n }\n\n const updateJwt = jwt => {\n webchatDispatch({\n type: UPDATE_JWT,\n payload: jwt,\n })\n }\n\n return {\n webchatState,\n webchatDispatch,\n addMessage,\n addMessageComponent,\n updateMessage,\n updateReplies,\n updateLatestInput,\n updateTyping,\n updateWebview,\n updateSession,\n updateLastRoutePath,\n updateHandoff,\n updateTheme,\n updateDevSettings,\n toggleWebchat,\n toggleEmojiPicker,\n togglePersistentMenu,\n toggleCoverComponent,\n doRenderCustomComponent,\n setError,\n setOnline,\n clearMessages,\n updateLastMessageDate,\n setCurrentAttachment,\n updateJwt,\n }\n}\n\nexport function useTyping({ webchatState, updateTyping, updateMessage, host }) {\n useEffect(() => {\n let delayTimeout, typingTimeout\n scrollToBottom({ host })\n try {\n const nextMsg = webchatState.messagesJSON.filter(m => !m.display)[0]\n if (nextMsg.delay && nextMsg.typing) {\n delayTimeout = setTimeout(\n () => updateTyping(true),\n nextMsg.delay * 1000\n )\n } else if (nextMsg.typing) updateTyping(true)\n const totalDelay = nextMsg.delay + nextMsg.typing\n if (totalDelay)\n typingTimeout = setTimeout(() => {\n updateMessage({ ...nextMsg, display: true })\n updateTyping(false)\n }, totalDelay * 1000)\n } catch (e) {}\n return () => {\n clearTimeout(delayTimeout)\n clearTimeout(typingTimeout)\n }\n }, [webchatState.messagesJSON, webchatState.typing])\n}\n\nexport function usePrevious(value) {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n\nexport function useComponentVisible(initialIsVisible, onClickOutside) {\n const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible)\n const ref = useRef(null)\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsComponentVisible(false)\n onClickOutside()\n }\n }\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false)\n return () => {\n document.removeEventListener('click', handleClickOutside, false)\n }\n })\n return { ref, isComponentVisible, setIsComponentVisible }\n}\n\nexport const useComponentWillMount = func => {\n useMemo(func, [])\n}\n"],"file":"hooks.js"}
|
package/lib/webchat/index.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getBotonicApp = getBotonicApp;
|
|
7
6
|
Object.defineProperty(exports, "Webchat", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
get: function get() {
|
|
@@ -16,6 +15,7 @@ Object.defineProperty(exports, "WebchatDev", {
|
|
|
16
15
|
return _webchatDev.WebchatDev;
|
|
17
16
|
}
|
|
18
17
|
});
|
|
18
|
+
exports.getBotonicApp = getBotonicApp;
|
|
19
19
|
|
|
20
20
|
var _webchat = require("./webchat");
|
|
21
21
|
|
|
@@ -17,6 +17,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
17
17
|
|
|
18
18
|
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; }
|
|
19
19
|
|
|
20
|
+
// eslint-disable-next-line complexity
|
|
20
21
|
function webchatReducer(state, action) {
|
|
21
22
|
switch (action.type) {
|
|
22
23
|
case _actions.UPDATE_WEBVIEW:
|
|
@@ -60,6 +61,11 @@ function webchatReducer(state, action) {
|
|
|
60
61
|
isCoverComponentOpen: action.payload
|
|
61
62
|
});
|
|
62
63
|
|
|
64
|
+
case _actions.DO_RENDER_CUSTOM_COMPONENT:
|
|
65
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
66
|
+
isCustomComponentRendered: action.payload
|
|
67
|
+
});
|
|
68
|
+
|
|
63
69
|
case _actions.SET_ERROR:
|
|
64
70
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
65
71
|
error: action.payload || {}
|
|
@@ -90,6 +96,11 @@ function webchatReducer(state, action) {
|
|
|
90
96
|
currentAttachment: action.payload
|
|
91
97
|
});
|
|
92
98
|
|
|
99
|
+
case _actions.UPDATE_JWT:
|
|
100
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
101
|
+
jwt: action.payload
|
|
102
|
+
});
|
|
103
|
+
|
|
93
104
|
default:
|
|
94
105
|
return (0, _messagesReducer.messagesReducer)(state, action);
|
|
95
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/webchat/webchat-reducer.js"],"names":["webchatReducer","state","action","type","UPDATE_WEBVIEW","payload","UPDATE_SESSION","session","UPDATE_TYPING","typing","UPDATE_THEME","UPDATE_HANDOFF","handoff","TOGGLE_WEBCHAT","isWebchatOpen","TOGGLE_EMOJI_PICKER","isEmojiPickerOpen","TOGGLE_PERSISTENT_MENU","isPersistentMenuOpen","TOGGLE_COVER_COMPONENT","isCoverComponentOpen","SET_ERROR","error","SET_ONLINE","online","UPDATE_DEV_SETTINGS","devSettings","UPDATE_LATEST_INPUT","latestInput","UPDATE_LAST_ROUTE_PATH","lastRoutePath","SET_CURRENT_ATTACHMENT","currentAttachment"],"mappings":";;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["../../src/webchat/webchat-reducer.js"],"names":["webchatReducer","state","action","type","UPDATE_WEBVIEW","payload","UPDATE_SESSION","session","UPDATE_TYPING","typing","UPDATE_THEME","UPDATE_HANDOFF","handoff","TOGGLE_WEBCHAT","isWebchatOpen","TOGGLE_EMOJI_PICKER","isEmojiPickerOpen","TOGGLE_PERSISTENT_MENU","isPersistentMenuOpen","TOGGLE_COVER_COMPONENT","isCoverComponentOpen","DO_RENDER_CUSTOM_COMPONENT","isCustomComponentRendered","SET_ERROR","error","SET_ONLINE","online","UPDATE_DEV_SETTINGS","devSettings","UPDATE_LATEST_INPUT","latestInput","UPDATE_LAST_ROUTE_PATH","lastRoutePath","SET_CURRENT_ATTACHMENT","currentAttachment","UPDATE_JWT","jwt"],"mappings":";;;;;;;;;;;AAAA;;AAmBA;;;;;;AAEA;AACO,SAASA,cAAT,CAAwBC,KAAxB,EAA+BC,MAA/B,EAAuC;AAC5C,UAAQA,MAAM,CAACC,IAAf;AACE,SAAKC,uBAAL;AACE,6CAAYH,KAAZ,GAAsBC,MAAM,CAACG,OAA7B;;AACF,SAAKC,uBAAL;AACE,6CAAYL,KAAZ;AAAmBM,QAAAA,OAAO,oBAAOL,MAAM,CAACG,OAAd;AAA1B;;AACF,SAAKG,sBAAL;AACE,6CAAYP,KAAZ;AAAmBQ,QAAAA,MAAM,EAAEP,MAAM,CAACG;AAAlC;;AACF,SAAKK,qBAAL;AACE,6CACKT,KADL,GAEKC,MAAM,CAACG,OAFZ;;AAIF,SAAKM,uBAAL;AACE,6CAAYV,KAAZ;AAAmBW,QAAAA,OAAO,EAAEV,MAAM,CAACG;AAAnC;;AACF,SAAKQ,uBAAL;AACE,6CAAYZ,KAAZ;AAAmBa,QAAAA,aAAa,EAAEZ,MAAM,CAACG;AAAzC;;AACF,SAAKU,4BAAL;AACE,6CAAYd,KAAZ;AAAmBe,QAAAA,iBAAiB,EAAEd,MAAM,CAACG;AAA7C;;AACF,SAAKY,+BAAL;AACE,6CAAYhB,KAAZ;AAAmBiB,QAAAA,oBAAoB,EAAEhB,MAAM,CAACG;AAAhD;;AACF,SAAKc,+BAAL;AACE,6CAAYlB,KAAZ;AAAmBmB,QAAAA,oBAAoB,EAAElB,MAAM,CAACG;AAAhD;;AACF,SAAKgB,mCAAL;AACE,6CAAYpB,KAAZ;AAAmBqB,QAAAA,yBAAyB,EAAEpB,MAAM,CAACG;AAArD;;AACF,SAAKkB,kBAAL;AACE,6CAAYtB,KAAZ;AAAmBuB,QAAAA,KAAK,EAAEtB,MAAM,CAACG,OAAP,IAAkB;AAA5C;;AACF,SAAKoB,mBAAL;AACE,6CAAYxB,KAAZ;AAAmByB,QAAAA,MAAM,EAAExB,MAAM,CAACG;AAAlC;;AACF,SAAKsB,4BAAL;AACE,6CAAY1B,KAAZ;AAAmB2B,QAAAA,WAAW,oBAAO1B,MAAM,CAACG,OAAd;AAA9B;;AACF,SAAKwB,4BAAL;AACE,6CAAY5B,KAAZ;AAAmB6B,QAAAA,WAAW,EAAE5B,MAAM,CAACG;AAAvC;;AACF,SAAK0B,+BAAL;AACE,6CAAY9B,KAAZ;AAAmB+B,QAAAA,aAAa,EAAE9B,MAAM,CAACG;AAAzC;;AACF,SAAK4B,+BAAL;AACE,6CAAYhC,KAAZ;AAAmBiC,QAAAA,iBAAiB,EAAEhC,MAAM,CAACG;AAA7C;;AACF,SAAK8B,mBAAL;AACE,6CAAYlC,KAAZ;AAAmBmC,QAAAA,GAAG,EAAElC,MAAM,CAACG;AAA/B;;AACF;AACE,aAAO,sCAAgBJ,KAAhB,EAAuBC,MAAvB,CAAP;AAvCJ;AAyCD","sourcesContent":["import {\n DO_RENDER_CUSTOM_COMPONENT,\n SET_CURRENT_ATTACHMENT,\n SET_ERROR,\n SET_ONLINE,\n TOGGLE_COVER_COMPONENT,\n TOGGLE_EMOJI_PICKER,\n TOGGLE_PERSISTENT_MENU,\n TOGGLE_WEBCHAT,\n UPDATE_DEV_SETTINGS,\n UPDATE_HANDOFF,\n UPDATE_JWT,\n UPDATE_LAST_ROUTE_PATH,\n UPDATE_LATEST_INPUT,\n UPDATE_SESSION,\n UPDATE_THEME,\n UPDATE_TYPING,\n UPDATE_WEBVIEW,\n} from './actions'\nimport { messagesReducer } from './messages-reducer'\n\n// eslint-disable-next-line complexity\nexport function webchatReducer(state, action) {\n switch (action.type) {\n case UPDATE_WEBVIEW:\n return { ...state, ...action.payload }\n case UPDATE_SESSION:\n return { ...state, session: { ...action.payload } }\n case UPDATE_TYPING:\n return { ...state, typing: action.payload }\n case UPDATE_THEME:\n return {\n ...state,\n ...action.payload,\n }\n case UPDATE_HANDOFF:\n return { ...state, handoff: action.payload }\n case TOGGLE_WEBCHAT:\n return { ...state, isWebchatOpen: action.payload }\n case TOGGLE_EMOJI_PICKER:\n return { ...state, isEmojiPickerOpen: action.payload }\n case TOGGLE_PERSISTENT_MENU:\n return { ...state, isPersistentMenuOpen: action.payload }\n case TOGGLE_COVER_COMPONENT:\n return { ...state, isCoverComponentOpen: action.payload }\n case DO_RENDER_CUSTOM_COMPONENT:\n return { ...state, isCustomComponentRendered: action.payload }\n case SET_ERROR:\n return { ...state, error: action.payload || {} }\n case SET_ONLINE:\n return { ...state, online: action.payload }\n case UPDATE_DEV_SETTINGS:\n return { ...state, devSettings: { ...action.payload } }\n case UPDATE_LATEST_INPUT:\n return { ...state, latestInput: action.payload }\n case UPDATE_LAST_ROUTE_PATH:\n return { ...state, lastRoutePath: action.payload }\n case SET_CURRENT_ATTACHMENT:\n return { ...state, currentAttachment: action.payload }\n case UPDATE_JWT:\n return { ...state, jwt: action.payload }\n default:\n return messagesReducer(state, action)\n }\n}\n"],"file":"webchat-reducer.js"}
|
package/lib/webchat/webchat.js
CHANGED
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.getParsedAction = exports.Webchat = void 0;
|
|
11
11
|
|
|
12
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
13
|
|
|
@@ -151,6 +151,7 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
151
151
|
toggleEmojiPicker = _ref.toggleEmojiPicker,
|
|
152
152
|
togglePersistentMenu = _ref.togglePersistentMenu,
|
|
153
153
|
_toggleCoverComponent = _ref.toggleCoverComponent,
|
|
154
|
+
doRenderCustomComponent = _ref.doRenderCustomComponent,
|
|
154
155
|
setError = _ref.setError,
|
|
155
156
|
setOnline = _ref.setOnline,
|
|
156
157
|
_clearMessages = _ref.clearMessages,
|
|
@@ -174,6 +175,12 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
174
175
|
initialDevSettings = props.initialDevSettings,
|
|
175
176
|
onStateChange = props.onStateChange;
|
|
176
177
|
var getThemeProperty = (0, _webchat._getThemeProperty)(theme);
|
|
178
|
+
|
|
179
|
+
var _useState = (0, _react.useState)(null),
|
|
180
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
181
|
+
customComponent = _useState2[0],
|
|
182
|
+
setCustomComponent = _useState2[1];
|
|
183
|
+
|
|
177
184
|
var storage = props.storage === undefined ? localStorage : props.storage;
|
|
178
185
|
var storageKey = typeof props.storageKey === 'function' ? props.storageKey() : props.storageKey;
|
|
179
186
|
|
|
@@ -183,6 +190,7 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
183
190
|
saveState = _useStorageState2[1];
|
|
184
191
|
|
|
185
192
|
var host = props.host || document.body;
|
|
193
|
+
var deviceAdapter = new _deviceAdapter.DeviceAdapter();
|
|
186
194
|
|
|
187
195
|
var saveWebchatState = function saveWebchatState(webchatState) {
|
|
188
196
|
storage && saveState(JSON.parse((0, _regexs.stringifyWithRegexs)({
|
|
@@ -195,8 +203,6 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
195
203
|
})));
|
|
196
204
|
};
|
|
197
205
|
|
|
198
|
-
var deviceAdapter = new _deviceAdapter.DeviceAdapter();
|
|
199
|
-
|
|
200
206
|
var handleAttachment = function handleAttachment(event) {
|
|
201
207
|
if (!(0, _messageUtils.isAllowedSize)(event.target.files[0].size)) {
|
|
202
208
|
throw new Error("The file is too large. A maximum of ".concat(_constants.MAX_ALLOWED_SIZE_MB, "MB is allowed."));
|
|
@@ -626,6 +632,13 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
626
632
|
closeCoverComponent: function closeCoverComponent() {
|
|
627
633
|
return _toggleCoverComponent(false);
|
|
628
634
|
},
|
|
635
|
+
renderCustomComponent: function renderCustomComponent(_customComponent) {
|
|
636
|
+
setCustomComponent(_customComponent);
|
|
637
|
+
doRenderCustomComponent(true);
|
|
638
|
+
},
|
|
639
|
+
unmountCustomComponent: function unmountCustomComponent() {
|
|
640
|
+
return doRenderCustomComponent(false);
|
|
641
|
+
},
|
|
629
642
|
toggleCoverComponent: function toggleCoverComponent() {
|
|
630
643
|
return _toggleCoverComponent(!webchatState.isCoverComponentOpen);
|
|
631
644
|
},
|
|
@@ -995,6 +1008,10 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
995
1008
|
}), component);
|
|
996
1009
|
};
|
|
997
1010
|
|
|
1011
|
+
var _renderCustomComponent = function _renderCustomComponent() {
|
|
1012
|
+
if (!customComponent) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);else return customComponent;
|
|
1013
|
+
};
|
|
1014
|
+
|
|
998
1015
|
var WebchatComponent = /*#__PURE__*/_react["default"].createElement(_contexts.WebchatContext.Provider, {
|
|
999
1016
|
value: {
|
|
1000
1017
|
sendText: sendText,
|
|
@@ -1032,7 +1049,7 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
1032
1049
|
}
|
|
1033
1050
|
}), webchatState.error.message && /*#__PURE__*/_react["default"].createElement(ErrorMessageContainer, null, /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, webchatState.error.message)), webchatMessageList(), webchatState.replies && Object.keys(webchatState.replies).length > 0 && webchatReplies(), webchatState.isPersistentMenuOpen && /*#__PURE__*/_react["default"].createElement(DarkenBackground, {
|
|
1034
1051
|
component: persistentMenu()
|
|
1035
|
-
}), !webchatState.handoff && userInputArea(), webchatState.webview && webchatWebview(), webchatState.isCoverComponentOpen && coverComponent()));
|
|
1052
|
+
}), !webchatState.handoff && userInputArea(), webchatState.webview && webchatWebview(), webchatState.isCoverComponentOpen && coverComponent(), webchatState.isCustomComponentRendered && customComponent && _renderCustomComponent()));
|
|
1036
1053
|
|
|
1037
1054
|
return props.shadowDOM ? /*#__PURE__*/_react["default"].createElement(_styledComponents.StyleSheetManager, {
|
|
1038
1055
|
target: host
|