@botonic/react 0.20.1 → 0.20.4
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/app.js +4 -3
- package/lib/app.js.map +1 -1
- package/lib/components/button.js +30 -2
- package/lib/components/button.js.map +1 -1
- package/lib/components/buttons-disabler.js +2 -2
- package/lib/components/carousel.js +2 -2
- package/lib/components/custom-message.js +2 -2
- package/lib/components/document.js +2 -2
- package/lib/components/image.js +47 -5
- package/lib/components/image.js.map +1 -1
- package/lib/components/index.d.ts +7 -3
- package/lib/components/message.js +2 -2
- package/lib/components/multichannel/facebook/facebook.js +2 -2
- package/lib/components/reply.js +2 -2
- package/lib/components/subtitle.js +2 -2
- package/lib/components/text.js +2 -2
- package/lib/components/timestamps.js +2 -2
- package/lib/components/title.js +2 -2
- package/lib/constants.js +1 -0
- package/lib/constants.js.map +1 -1
- package/lib/dev-app.js +2 -2
- package/lib/index.d.ts +9 -10
- package/lib/node-app.js +2 -2
- package/lib/react-bot.js +2 -2
- package/lib/util/error-boundary.js +2 -2
- package/lib/webchat/actions.js +3 -1
- package/lib/webchat/actions.js.map +1 -1
- package/lib/webchat/header.js +2 -2
- package/lib/webchat/hooks.js +11 -2
- package/lib/webchat/hooks.js.map +1 -1
- package/lib/webchat/message-list.js +2 -2
- package/lib/webchat/messages-reducer.js +2 -2
- package/lib/webchat/replies.js +2 -2
- package/lib/webchat/session-view.js +2 -2
- package/lib/webchat/webchat-reducer.js +8 -2
- package/lib/webchat/webchat-reducer.js.map +1 -1
- package/lib/webchat/webchat.js +25 -6
- package/lib/webchat/webchat.js.map +1 -1
- package/lib/webchat/webview.js +2 -2
- package/lib/webchat-app.js +21 -4
- package/lib/webchat-app.js.map +1 -1
- package/package.json +2 -2
- package/src/components/button.jsx +21 -1
- package/src/components/image.jsx +33 -4
- package/src/components/index.d.ts +7 -3
- package/src/constants.js +1 -0
- package/src/index.d.ts +9 -10
- package/src/webchat/actions.jsx +1 -0
- package/src/webchat/hooks.js +8 -0
- package/src/webchat/webchat-reducer.js +4 -0
- package/src/webchat/webchat.jsx +24 -6
- package/src/webchat-app.jsx +19 -5
package/lib/index.d.ts
CHANGED
|
@@ -25,10 +25,6 @@ export interface Route extends core.Route {
|
|
|
25
25
|
}
|
|
26
26
|
type Routes = core.Routes<Route>
|
|
27
27
|
|
|
28
|
-
export interface BotOptions extends core.BotOptions {
|
|
29
|
-
routes: Routes
|
|
30
|
-
}
|
|
31
|
-
|
|
32
28
|
export class ReactBot extends core.CoreBot {
|
|
33
29
|
renderReactActions({
|
|
34
30
|
actions,
|
|
@@ -37,7 +33,7 @@ export class ReactBot extends core.CoreBot {
|
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
export class NodeApp {
|
|
40
|
-
constructor(options: Omit<
|
|
36
|
+
constructor(options: Omit<core.CoreBotConfig, 'renderer'>)
|
|
41
37
|
bot: ReactBot
|
|
42
38
|
input(request: core.BotRequest): Promise<BotResponse>
|
|
43
39
|
renderNode(args): string
|
|
@@ -116,7 +112,7 @@ export interface WebchatArgs {
|
|
|
116
112
|
onOpen?: (app: WebchatApp, args: any) => void
|
|
117
113
|
onConnectionChange?: (app: WebchatApp, isOnline: boolean) => void
|
|
118
114
|
persistentMenu?: PersistentMenuTheme
|
|
119
|
-
storage?: Storage
|
|
115
|
+
storage?: Storage | null
|
|
120
116
|
storageKey?: any
|
|
121
117
|
theme?: ThemeProps
|
|
122
118
|
}
|
|
@@ -175,6 +171,7 @@ export class WebchatApp {
|
|
|
175
171
|
clearMessages(): void
|
|
176
172
|
close(): void
|
|
177
173
|
closeCoverComponent(): void
|
|
174
|
+
destroy(): void
|
|
178
175
|
getComponent(
|
|
179
176
|
host: HTMLElement,
|
|
180
177
|
optionsAtRuntime?: WebchatAppArgs
|
|
@@ -191,7 +188,7 @@ export class WebchatApp {
|
|
|
191
188
|
onUserInput(args: OnUserInputArgs): Promise<void>
|
|
192
189
|
open(): void
|
|
193
190
|
openCoverComponent(): void
|
|
194
|
-
render(dest
|
|
191
|
+
render(dest?: HTMLElement, optionsAtRuntime?: WebchatAppArgs): void
|
|
195
192
|
resendUnsentInputs(): Promise<void>
|
|
196
193
|
resolveWebchatVisibility(optionsAtRuntime: {
|
|
197
194
|
appId: string
|
|
@@ -202,12 +199,14 @@ export class WebchatApp {
|
|
|
202
199
|
toggleCoverComponent(): void
|
|
203
200
|
updateMessageInfo(msgId: string, messageInfo: MessageInfo): void
|
|
204
201
|
updateLastMessageDate(date: string): void
|
|
205
|
-
updateUser(user: core.SessionUser): void
|
|
202
|
+
updateUser(user: Partial<core.SessionUser>): void
|
|
206
203
|
updateWebchatSettings(settings: WebchatSettingsProps): void
|
|
204
|
+
renderCustomComponent(customComponent: React.ReactNode): void
|
|
205
|
+
unmountCustomComponent(): void
|
|
207
206
|
}
|
|
208
207
|
|
|
209
208
|
export interface WebchatContextProps {
|
|
210
|
-
sendText: (text: string) => void
|
|
209
|
+
sendText: (text: string, payload?: string) => void
|
|
211
210
|
sendAttachment: (attachment: File) => void
|
|
212
211
|
sendPayload: (payload: string) => void
|
|
213
212
|
sendInput: (input: core.Input) => void
|
|
@@ -223,7 +222,7 @@ export interface WebchatContextProps {
|
|
|
223
222
|
theme: ThemeProps
|
|
224
223
|
webchatState: WebchatState
|
|
225
224
|
updateWebchatDevSettings: (settings: WebchatSettingsProps) => void
|
|
226
|
-
updateUser: (user: core.SessionUser) => void
|
|
225
|
+
updateUser: (user: Partial<core.SessionUser>) => void
|
|
227
226
|
}
|
|
228
227
|
export const WebchatContext: React.Context<WebchatContextProps>
|
|
229
228
|
export type WebchatContext = React.Context<WebchatContextProps>
|
package/lib/node-app.js
CHANGED
|
@@ -23,9 +23,9 @@ var _server = require("react-dom/server");
|
|
|
23
23
|
|
|
24
24
|
var _reactBot = require("./react-bot");
|
|
25
25
|
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
27
|
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
29
|
|
|
30
30
|
var NodeApp = /*#__PURE__*/function () {
|
|
31
31
|
function NodeApp(options) {
|
package/lib/react-bot.js
CHANGED
|
@@ -37,9 +37,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
37
37
|
|
|
38
38
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
39
39
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
41
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
42
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
43
|
|
|
44
44
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
45
|
|
|
@@ -25,9 +25,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
25
25
|
|
|
26
26
|
var _text = require("../components/text");
|
|
27
27
|
|
|
28
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
29
|
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
31
|
|
|
32
32
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
33
33
|
|
package/lib/webchat/actions.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
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.CLEAR_MESSAGES = exports.ADD_MESSAGE_COMPONENT = exports.ADD_MESSAGE = void 0;
|
|
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';
|
|
@@ -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","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,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 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"}
|
|
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"}
|
package/lib/webchat/header.js
CHANGED
|
@@ -33,9 +33,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
33
|
|
|
34
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
35
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
37
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
|
|
40
40
|
var Header = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n background: linear-gradient(\n 90deg,\n ", " 0%,\n ", " 100%\n );\n height: 55px;\n border-radius: ", ";\n z-index: 2;\n"])), _constants.COLORS.BLEACHED_CEDAR_PURPLE, function (props) {
|
|
41
41
|
return props.color;
|
package/lib/webchat/hooks.js
CHANGED
|
@@ -26,9 +26,9 @@ var _actions = require("./actions");
|
|
|
26
26
|
|
|
27
27
|
var _webchatReducer = require("./webchat-reducer");
|
|
28
28
|
|
|
29
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
29
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
30
30
|
|
|
31
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
31
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
32
32
|
|
|
33
33
|
var webchatInitialState = {
|
|
34
34
|
width: _constants.WEBCHAT.DEFAULTS.WIDTH,
|
|
@@ -65,6 +65,7 @@ var webchatInitialState = {
|
|
|
65
65
|
isEmojiPickerOpen: false,
|
|
66
66
|
isPersistentMenuOpen: false,
|
|
67
67
|
isCoverComponentOpen: false,
|
|
68
|
+
isCustomComponentRendered: false,
|
|
68
69
|
lastMessageUpdate: undefined,
|
|
69
70
|
currentAttachment: undefined,
|
|
70
71
|
jwt: null
|
|
@@ -199,6 +200,13 @@ function useWebchat() {
|
|
|
199
200
|
});
|
|
200
201
|
};
|
|
201
202
|
|
|
203
|
+
var doRenderCustomComponent = function doRenderCustomComponent(toggle) {
|
|
204
|
+
return webchatDispatch({
|
|
205
|
+
type: _actions.DO_RENDER_CUSTOM_COMPONENT,
|
|
206
|
+
payload: toggle
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
|
|
202
210
|
var setError = function setError(error) {
|
|
203
211
|
return webchatDispatch({
|
|
204
212
|
type: _actions.SET_ERROR,
|
|
@@ -259,6 +267,7 @@ function useWebchat() {
|
|
|
259
267
|
toggleEmojiPicker: toggleEmojiPicker,
|
|
260
268
|
togglePersistentMenu: togglePersistentMenu,
|
|
261
269
|
toggleCoverComponent: toggleCoverComponent,
|
|
270
|
+
doRenderCustomComponent: doRenderCustomComponent,
|
|
262
271
|
setError: setError,
|
|
263
272
|
setOnline: setOnline,
|
|
264
273
|
clearMessages: clearMessages,
|
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","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","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 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 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 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 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"}
|
|
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"}
|
|
@@ -35,9 +35,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
35
35
|
|
|
36
36
|
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; }
|
|
37
37
|
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
39
|
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
41
|
|
|
42
42
|
var StyledMessages = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n overflow-x: hidden;\n flex-direction: column;\n flex: none;\n white-space: pre;\n word-wrap: break-word;\n"])));
|
|
43
43
|
|
|
@@ -13,9 +13,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
13
13
|
|
|
14
14
|
var _actions = require("./actions");
|
|
15
15
|
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
17
|
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
19
|
|
|
20
20
|
var messagesReducer = function messagesReducer(state, action) {
|
|
21
21
|
switch (action.type) {
|
package/lib/webchat/replies.js
CHANGED
|
@@ -29,9 +29,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
29
|
|
|
30
30
|
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; }
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
36
|
var RepliesContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n text-align: center;\n justify-content: ", ";\n flex-wrap: ", ";\n padding-bottom: 10px;\n margin-left: 5px;\n margin-right: 5px;\n"])), function (props) {
|
|
37
37
|
return props.justify;
|
|
@@ -23,9 +23,9 @@ var _hooks = require("./hooks");
|
|
|
23
23
|
|
|
24
24
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
25
25
|
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
27
|
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
29
|
|
|
30
30
|
var AttributeContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex: none;\n padding: 12px;\n padding-bottom: 0px;\n font-size: 12px;\n font-weight: 600;\n color: ", ";\n align-items: center;\n"])), _constants.COLORS.SOLID_WHITE);
|
|
31
31
|
|
|
@@ -13,10 +13,11 @@ var _actions = require("./actions");
|
|
|
13
13
|
|
|
14
14
|
var _messagesReducer = require("./messages-reducer");
|
|
15
15
|
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
17
|
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
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 || {}
|
|
@@ -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","UPDATE_JWT","jwt"],"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
|
@@ -91,9 +91,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
91
91
|
|
|
92
92
|
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; }
|
|
93
93
|
|
|
94
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
94
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
95
95
|
|
|
96
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
96
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
97
97
|
|
|
98
98
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
99
99
|
|
|
@@ -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,10 +175,16 @@ 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);
|
|
177
|
-
|
|
178
|
+
|
|
179
|
+
var _useState = (0, _react.useState)(null),
|
|
180
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
181
|
+
customComponent = _useState2[0],
|
|
182
|
+
setCustomComponent = _useState2[1];
|
|
183
|
+
|
|
184
|
+
var storage = props.storage;
|
|
178
185
|
var storageKey = typeof props.storageKey === 'function' ? props.storageKey() : props.storageKey;
|
|
179
186
|
|
|
180
|
-
var _useStorageState = (0, _useStorageStateHook.useStorageState)(storage, storageKey
|
|
187
|
+
var _useStorageState = (0, _useStorageStateHook.useStorageState)(storage, storageKey),
|
|
181
188
|
_useStorageState2 = (0, _slicedToArray2["default"])(_useStorageState, 2),
|
|
182
189
|
botonicState = _useStorageState2[0],
|
|
183
190
|
saveState = _useStorageState2[1];
|
|
@@ -403,9 +410,10 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
403
410
|
var darkBackgroundMenu = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu, false);
|
|
404
411
|
|
|
405
412
|
var getBlockInputs = function getBlockInputs(rule, inputData) {
|
|
413
|
+
var processedInput = rule.preprocess ? rule.preprocess(inputData) : inputData;
|
|
406
414
|
return rule.match.some(function (regex) {
|
|
407
415
|
if (typeof regex === 'string') regex = (0, _regexs.deserializeRegex)(regex);
|
|
408
|
-
return regex.test(
|
|
416
|
+
return regex.test(processedInput);
|
|
409
417
|
});
|
|
410
418
|
};
|
|
411
419
|
|
|
@@ -625,6 +633,13 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
625
633
|
closeCoverComponent: function closeCoverComponent() {
|
|
626
634
|
return _toggleCoverComponent(false);
|
|
627
635
|
},
|
|
636
|
+
renderCustomComponent: function renderCustomComponent(_customComponent) {
|
|
637
|
+
setCustomComponent(_customComponent);
|
|
638
|
+
doRenderCustomComponent(true);
|
|
639
|
+
},
|
|
640
|
+
unmountCustomComponent: function unmountCustomComponent() {
|
|
641
|
+
return doRenderCustomComponent(false);
|
|
642
|
+
},
|
|
628
643
|
toggleCoverComponent: function toggleCoverComponent() {
|
|
629
644
|
return _toggleCoverComponent(!webchatState.isCoverComponentOpen);
|
|
630
645
|
},
|
|
@@ -994,6 +1009,10 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
994
1009
|
}), component);
|
|
995
1010
|
};
|
|
996
1011
|
|
|
1012
|
+
var _renderCustomComponent = function _renderCustomComponent() {
|
|
1013
|
+
if (!customComponent) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);else return customComponent;
|
|
1014
|
+
};
|
|
1015
|
+
|
|
997
1016
|
var WebchatComponent = /*#__PURE__*/_react["default"].createElement(_contexts.WebchatContext.Provider, {
|
|
998
1017
|
value: {
|
|
999
1018
|
sendText: sendText,
|
|
@@ -1031,7 +1050,7 @@ var Webchat = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
1031
1050
|
}
|
|
1032
1051
|
}), 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, {
|
|
1033
1052
|
component: persistentMenu()
|
|
1034
|
-
}), !webchatState.handoff && userInputArea(), webchatState.webview && webchatWebview(), webchatState.isCoverComponentOpen && coverComponent()));
|
|
1053
|
+
}), !webchatState.handoff && userInputArea(), webchatState.webview && webchatWebview(), webchatState.isCoverComponentOpen && coverComponent(), webchatState.isCustomComponentRendered && customComponent && _renderCustomComponent()));
|
|
1035
1054
|
|
|
1036
1055
|
return props.shadowDOM ? /*#__PURE__*/_react["default"].createElement(_styledComponents.StyleSheetManager, {
|
|
1037
1056
|
target: host
|