@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.
Files changed (52) hide show
  1. package/lib/app.js +4 -3
  2. package/lib/app.js.map +1 -1
  3. package/lib/components/button.js +30 -2
  4. package/lib/components/button.js.map +1 -1
  5. package/lib/components/buttons-disabler.js +2 -2
  6. package/lib/components/carousel.js +2 -2
  7. package/lib/components/custom-message.js +2 -2
  8. package/lib/components/document.js +2 -2
  9. package/lib/components/image.js +47 -5
  10. package/lib/components/image.js.map +1 -1
  11. package/lib/components/index.d.ts +7 -3
  12. package/lib/components/message.js +2 -2
  13. package/lib/components/multichannel/facebook/facebook.js +2 -2
  14. package/lib/components/reply.js +2 -2
  15. package/lib/components/subtitle.js +2 -2
  16. package/lib/components/text.js +2 -2
  17. package/lib/components/timestamps.js +2 -2
  18. package/lib/components/title.js +2 -2
  19. package/lib/constants.js +1 -0
  20. package/lib/constants.js.map +1 -1
  21. package/lib/dev-app.js +2 -2
  22. package/lib/index.d.ts +9 -10
  23. package/lib/node-app.js +2 -2
  24. package/lib/react-bot.js +2 -2
  25. package/lib/util/error-boundary.js +2 -2
  26. package/lib/webchat/actions.js +3 -1
  27. package/lib/webchat/actions.js.map +1 -1
  28. package/lib/webchat/header.js +2 -2
  29. package/lib/webchat/hooks.js +11 -2
  30. package/lib/webchat/hooks.js.map +1 -1
  31. package/lib/webchat/message-list.js +2 -2
  32. package/lib/webchat/messages-reducer.js +2 -2
  33. package/lib/webchat/replies.js +2 -2
  34. package/lib/webchat/session-view.js +2 -2
  35. package/lib/webchat/webchat-reducer.js +8 -2
  36. package/lib/webchat/webchat-reducer.js.map +1 -1
  37. package/lib/webchat/webchat.js +25 -6
  38. package/lib/webchat/webchat.js.map +1 -1
  39. package/lib/webchat/webview.js +2 -2
  40. package/lib/webchat-app.js +21 -4
  41. package/lib/webchat-app.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/components/button.jsx +21 -1
  44. package/src/components/image.jsx +33 -4
  45. package/src/components/index.d.ts +7 -3
  46. package/src/constants.js +1 -0
  47. package/src/index.d.ts +9 -10
  48. package/src/webchat/actions.jsx +1 -0
  49. package/src/webchat/hooks.js +8 -0
  50. package/src/webchat/webchat-reducer.js +4 -0
  51. package/src/webchat/webchat.jsx +24 -6
  52. 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<BotOptions, 'renderer'>)
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: HTMLElement, optionsAtRuntime: WebchatAppArgs): void
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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
 
@@ -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"}
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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;
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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,
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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) {
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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;;AAkBA;;;;;;AAEO,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,kBAAL;AACE,6CAAYpB,KAAZ;AAAmBqB,QAAAA,KAAK,EAAEpB,MAAM,CAACG,OAAP,IAAkB;AAA5C;;AACF,SAAKkB,mBAAL;AACE,6CAAYtB,KAAZ;AAAmBuB,QAAAA,MAAM,EAAEtB,MAAM,CAACG;AAAlC;;AACF,SAAKoB,4BAAL;AACE,6CAAYxB,KAAZ;AAAmByB,QAAAA,WAAW,oBAAOxB,MAAM,CAACG,OAAd;AAA9B;;AACF,SAAKsB,4BAAL;AACE,6CAAY1B,KAAZ;AAAmB2B,QAAAA,WAAW,EAAE1B,MAAM,CAACG;AAAvC;;AACF,SAAKwB,+BAAL;AACE,6CAAY5B,KAAZ;AAAmB6B,QAAAA,aAAa,EAAE5B,MAAM,CAACG;AAAzC;;AACF,SAAK0B,+BAAL;AACE,6CAAY9B,KAAZ;AAAmB+B,QAAAA,iBAAiB,EAAE9B,MAAM,CAACG;AAA7C;;AACF,SAAK4B,mBAAL;AACE,6CAAYhC,KAAZ;AAAmBiC,QAAAA,GAAG,EAAEhC,MAAM,CAACG;AAA/B;;AACF;AACE,aAAO,sCAAgBJ,KAAhB,EAAuBC,MAAvB,CAAP;AArCJ;AAuCD","sourcesContent":["import {\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\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 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"}
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"}
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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
- var storage = props.storage === undefined ? localStorage : props.storage;
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 || _constants.WEBCHAT.DEFAULTS.STORAGE_KEY),
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(inputData);
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