@botonic/react 0.20.1-alpha.1 → 0.20.1

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 (110) hide show
  1. package/lib/components/image.js +6 -52
  2. package/lib/components/image.js.map +1 -1
  3. package/lib/constants.js +200 -0
  4. package/lib/constants.js.map +1 -0
  5. package/lib/contexts.js +57 -0
  6. package/lib/contexts.js.map +1 -0
  7. package/lib/dev-app.js +241 -0
  8. package/lib/dev-app.js.map +1 -0
  9. package/lib/index.d.ts +239 -0
  10. package/lib/index.js +131 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/message-utils.js +149 -0
  13. package/lib/message-utils.js.map +1 -0
  14. package/lib/msg-to-botonic.js +199 -0
  15. package/lib/msg-to-botonic.js.map +1 -0
  16. package/lib/node-app.js +97 -0
  17. package/lib/node-app.js.map +1 -0
  18. package/lib/react-bot.js +167 -0
  19. package/lib/react-bot.js.map +1 -0
  20. package/lib/util/dom.js +84 -0
  21. package/lib/util/dom.js.map +1 -0
  22. package/lib/util/environment.js +42 -0
  23. package/lib/util/environment.js.map +1 -0
  24. package/lib/util/error-boundary.js +105 -0
  25. package/lib/util/error-boundary.js.map +1 -0
  26. package/lib/util/index.d.ts +9 -0
  27. package/lib/util/index.js +2 -0
  28. package/lib/util/index.js.map +1 -0
  29. package/lib/util/logs.js +28 -0
  30. package/lib/util/logs.js.map +1 -0
  31. package/lib/util/objects.js +60 -0
  32. package/lib/util/objects.js.map +1 -0
  33. package/lib/util/react.js +75 -0
  34. package/lib/util/react.js.map +1 -0
  35. package/lib/util/regexs.js +31 -0
  36. package/lib/util/regexs.js.map +1 -0
  37. package/lib/util/webchat.js +92 -0
  38. package/lib/util/webchat.js.map +1 -0
  39. package/lib/webchat/actions.js +51 -0
  40. package/lib/webchat/actions.js.map +1 -0
  41. package/lib/webchat/components/attachment.js +43 -0
  42. package/lib/webchat/components/attachment.js.map +1 -0
  43. package/lib/webchat/components/common.js +33 -0
  44. package/lib/webchat/components/common.js.map +1 -0
  45. package/lib/webchat/components/emoji-picker.js +58 -0
  46. package/lib/webchat/components/emoji-picker.js.map +1 -0
  47. package/lib/webchat/components/persistent-menu.js +96 -0
  48. package/lib/webchat/components/persistent-menu.js.map +1 -0
  49. package/lib/webchat/components/send-button.js +27 -0
  50. package/lib/webchat/components/send-button.js.map +1 -0
  51. package/lib/webchat/components/styled-scrollbar.js +55 -0
  52. package/lib/webchat/components/styled-scrollbar.js.map +1 -0
  53. package/lib/webchat/components/styled-scrollbar.scss +12 -0
  54. package/lib/webchat/components/typing-indicator.js +27 -0
  55. package/lib/webchat/components/typing-indicator.js.map +1 -0
  56. package/lib/webchat/components/typing-indicator.scss +38 -0
  57. package/lib/webchat/devices/device-adapter.js +82 -0
  58. package/lib/webchat/devices/device-adapter.js.map +1 -0
  59. package/lib/webchat/devices/index.js +32 -0
  60. package/lib/webchat/devices/index.js.map +1 -0
  61. package/lib/webchat/devices/scrollbar-controller.js +152 -0
  62. package/lib/webchat/devices/scrollbar-controller.js.map +1 -0
  63. package/lib/webchat/devices/webchat-resizer.js +76 -0
  64. package/lib/webchat/devices/webchat-resizer.js.map +1 -0
  65. package/lib/webchat/header.js +116 -0
  66. package/lib/webchat/header.js.map +1 -0
  67. package/lib/webchat/hooks.js +350 -0
  68. package/lib/webchat/hooks.js.map +1 -0
  69. package/lib/webchat/index.d.ts +62 -0
  70. package/lib/webchat/index.js +32 -0
  71. package/lib/webchat/index.js.map +1 -0
  72. package/lib/webchat/message-list.js +88 -0
  73. package/lib/webchat/message-list.js.map +1 -0
  74. package/lib/webchat/messages-reducer.js +93 -0
  75. package/lib/webchat/messages-reducer.js.map +1 -0
  76. package/lib/webchat/replies.js +78 -0
  77. package/lib/webchat/replies.js.map +1 -0
  78. package/lib/webchat/session-view.js +106 -0
  79. package/lib/webchat/session-view.js.map +1 -0
  80. package/lib/webchat/use-storage-state-hook.js +29 -0
  81. package/lib/webchat/use-storage-state-hook.js.map +1 -0
  82. package/lib/webchat/webchat-dev.js +109 -0
  83. package/lib/webchat/webchat-dev.js.map +1 -0
  84. package/lib/webchat/webchat-reducer.js +102 -0
  85. package/lib/webchat/webchat-reducer.js.map +1 -0
  86. package/lib/webchat/webchat.js +1041 -0
  87. package/lib/webchat/webchat.js.map +1 -0
  88. package/lib/webchat/webview.js +122 -0
  89. package/lib/webchat/webview.js.map +1 -0
  90. package/lib/webchat-app.js +643 -0
  91. package/lib/webchat-app.js.map +1 -0
  92. package/lib/webchat.template.html +37 -0
  93. package/lib/webview.js +214 -0
  94. package/lib/webview.js.map +1 -0
  95. package/lib/webview.template.html +39 -0
  96. package/package.json +2 -2
  97. package/src/components/image.jsx +3 -37
  98. package/src/index.d.ts +0 -2
  99. package/src/index.js +0 -1
  100. package/src/webchat/actions.jsx +0 -1
  101. package/src/webchat/hooks.js +0 -8
  102. package/src/webchat/webchat-reducer.js +0 -4
  103. package/src/webchat/webchat.jsx +0 -18
  104. package/src/webchat-app.jsx +0 -8
  105. package/src/webchat/components/portal-modal/backdrop.jsx +0 -38
  106. package/src/webchat/components/portal-modal/constants.js +0 -7
  107. package/src/webchat/components/portal-modal/content.jsx +0 -10
  108. package/src/webchat/components/portal-modal/index.js +0 -5
  109. package/src/webchat/components/portal-modal/portal-modal-component.jsx +0 -72
  110. package/src/webchat/components/portal-modal/portal.jsx +0 -21
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -11,33 +9,21 @@ exports.Image = void 0;
11
9
 
12
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
11
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
13
 
18
14
  var _core = require("@botonic/core");
19
15
 
20
- var _react = _interopRequireWildcard(require("react"));
16
+ var _react = _interopRequireDefault(require("react"));
21
17
 
22
18
  var _styledComponents = _interopRequireDefault(require("styled-components"));
23
19
 
24
20
  var _constants = require("../constants");
25
21
 
26
- var _portalModal = require("../webchat/components/portal-modal");
27
-
28
22
  var _message = require("./message");
29
23
 
30
- var _templateObject, _templateObject2;
24
+ var _templateObject;
31
25
 
32
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
-
36
- var StyledImage = _styledComponents["default"].img(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: -3px -6px;\n cursor: ", ";\n"])), function (props) {
37
- return props.isHovered ? 'pointer' : 'none';
38
- });
39
-
40
- var StyledPreviewImage = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n max-width: 75vw;\n max-height: 75vh;\n object-fit: contain;\n"])));
26
+ var StyledImage = _styledComponents["default"].img(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: 10px;\n"])));
41
27
 
42
28
  var serialize = function serialize(imageProps) {
43
29
  return {
@@ -46,42 +32,10 @@ var serialize = function serialize(imageProps) {
46
32
  };
47
33
 
48
34
  var Image = function Image(props) {
49
- var _useState = (0, _react.useState)(false),
50
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
51
- isHovered = _useState2[0],
52
- setIsHovered = _useState2[1];
53
-
54
- var _useState3 = (0, _react.useState)(false),
55
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
56
- isModalOpen = _useState4[0],
57
- setIsModalOpen = _useState4[1];
58
-
59
35
  var content = props.children;
60
-
61
- if ((0, _core.isBrowser)()) {
62
- content = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledImage, {
63
- src: props.src,
64
- isHovered: isHovered,
65
- onMouseEnter: function onMouseEnter() {
66
- return setIsHovered(true);
67
- },
68
- onMouseLeave: function onMouseLeave() {
69
- return setIsHovered(false);
70
- },
71
- onClick: function onClick() {
72
- return setIsModalOpen(true);
73
- }
74
- }), isModalOpen && /*#__PURE__*/_react["default"].createElement(_portalModal.PortalModalComponent, {
75
- open: isModalOpen,
76
- onClose: function onClose() {
77
- return setIsModalOpen(false);
78
- },
79
- locked: false
80
- }, /*#__PURE__*/_react["default"].createElement(StyledPreviewImage, {
81
- src: props.src
82
- })));
83
- }
84
-
36
+ if ((0, _core.isBrowser)()) content = /*#__PURE__*/_react["default"].createElement(StyledImage, {
37
+ src: props.src
38
+ });
85
39
  return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
86
40
  role: _constants.ROLES.IMAGE_MESSAGE,
87
41
  json: serialize(props)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/image.jsx"],"names":["StyledImage","styled","img","props","isHovered","StyledPreviewImage","serialize","imageProps","image","src","Image","setIsHovered","isModalOpen","setIsModalOpen","content","children","ROLES","IMAGE_MESSAGE","INPUT","IMAGE"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,6BAAOC,GAAV,kMAKL,UAAAC,KAAK;AAAA,SAAKA,KAAK,CAACC,SAAN,GAAkB,SAAlB,GAA8B,MAAnC;AAAA,CALA,CAAjB;;AAQA,IAAMC,kBAAkB,GAAGJ,6BAAOC,GAAV,2KAAxB;;AAOA,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAAAC,UAAU,EAAI;AAC9B,SAAO;AAAEC,IAAAA,KAAK,EAAED,UAAU,CAACE;AAApB,GAAP;AACD,CAFD;;AAIO,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAAAP,KAAK,EAAI;AAC5B,kBAAkC,qBAAS,KAAT,CAAlC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBO,YAAlB;;AACA,mBAAsC,qBAAS,KAAT,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AAEA,MAAIC,OAAO,GAAGX,KAAK,CAACY,QAApB;;AAEA,MAAI,sBAAJ,EAAiB;AACfD,IAAAA,OAAO,gBACL,+EACE,gCAAC,WAAD;AACE,MAAA,GAAG,EAAEX,KAAK,CAACM,GADb;AAEE,MAAA,SAAS,EAAEL,SAFb;AAGE,MAAA,YAAY,EAAE;AAAA,eAAMO,YAAY,CAAC,IAAD,CAAlB;AAAA,OAHhB;AAIE,MAAA,YAAY,EAAE;AAAA,eAAMA,YAAY,CAAC,KAAD,CAAlB;AAAA,OAJhB;AAKE,MAAA,OAAO,EAAE;AAAA,eAAME,cAAc,CAAC,IAAD,CAApB;AAAA;AALX,MADF,EAQGD,WAAW,iBACV,gCAAC,iCAAD;AACE,MAAA,IAAI,EAAEA,WADR;AAEE,MAAA,OAAO,EAAE;AAAA,eAAMC,cAAc,CAAC,KAAD,CAApB;AAAA,OAFX;AAGE,MAAA,MAAM,EAAE;AAHV,oBAKE,gCAAC,kBAAD;AAAoB,MAAA,GAAG,EAAEV,KAAK,CAACM;AAA/B,MALF,CATJ,CADF;AAoBD;;AACD,sBACE,gCAAC,gBAAD;AACE,IAAA,IAAI,EAAEO,iBAAMC,aADd;AAEE,IAAA,IAAI,EAAEX,SAAS,CAACH,KAAD;AAFjB,KAGMA,KAHN;AAIE,IAAA,IAAI,EAAEe,YAAMC;AAJd,MAMGL,OANH,CADF;AAUD,CAtCM;;;AAwCPJ,KAAK,CAACJ,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useState } from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES } from '../constants'\nimport { PortalModalComponent } from '../webchat/components/portal-modal'\nimport { Message } from './message'\n\nconst StyledImage = styled.img`\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: -3px -6px;\n cursor: ${props => (props.isHovered ? 'pointer' : 'none')};\n`\n\nconst StyledPreviewImage = styled.img`\n width: 100%;\n max-width: 75vw;\n max-height: 75vh;\n object-fit: contain;\n`\n\nconst serialize = imageProps => {\n return { image: imageProps.src }\n}\n\nexport const Image = props => {\n const [isHovered, setIsHovered] = useState(false)\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n let content = props.children\n\n if (isBrowser()) {\n content = (\n <>\n <StyledImage\n src={props.src}\n isHovered={isHovered}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={() => setIsModalOpen(true)}\n />\n {isModalOpen && (\n <PortalModalComponent\n open={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n locked={false}\n >\n <StyledPreviewImage src={props.src} />\n </PortalModalComponent>\n )}\n </>\n )\n }\n return (\n <Message\n role={ROLES.IMAGE_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.IMAGE}\n >\n {content}\n </Message>\n )\n}\n\nImage.serialize = serialize\n"],"file":"image.js"}
1
+ {"version":3,"sources":["../../src/components/image.jsx"],"names":["StyledImage","styled","img","serialize","imageProps","image","src","Image","props","content","children","ROLES","IMAGE_MESSAGE","INPUT","IMAGE"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;AAEA,IAAMA,WAAW,GAAGC,6BAAOC,GAAV,2KAAjB;;AAOA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,UAAU,EAAI;AAC9B,SAAO;AAAEC,IAAAA,KAAK,EAAED,UAAU,CAACE;AAApB,GAAP;AACD,CAFD;;AAIO,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAAAC,KAAK,EAAI;AAC5B,MAAIC,OAAO,GAAGD,KAAK,CAACE,QAApB;AACA,MAAI,sBAAJ,EAAiBD,OAAO,gBAAG,gCAAC,WAAD;AAAa,IAAA,GAAG,EAAED,KAAK,CAACF;AAAxB,IAAV;AACjB,sBACE,gCAAC,gBAAD;AACE,IAAA,IAAI,EAAEK,iBAAMC,aADd;AAEE,IAAA,IAAI,EAAET,SAAS,CAACK,KAAD;AAFjB,KAGMA,KAHN;AAIE,IAAA,IAAI,EAAEK,YAAMC;AAJd,MAMGL,OANH,CADF;AAUD,CAbM;;;AAePF,KAAK,CAACJ,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES } from '../constants'\nimport { Message } from './message'\n\nconst StyledImage = styled.img`\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: 10px;\n`\n\nconst serialize = imageProps => {\n return { image: imageProps.src }\n}\n\nexport const Image = props => {\n let content = props.children\n if (isBrowser()) content = <StyledImage src={props.src} />\n return (\n <Message\n role={ROLES.IMAGE_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.IMAGE}\n >\n {content}\n </Message>\n )\n}\n\nImage.serialize = serialize\n"],"file":"image.js"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.WEBCHAT = exports.SENDERS = exports.ROLES = exports.MIME_WHITELIST = exports.MAX_ALLOWED_SIZE_MB = exports.COMPONENT_TYPE = exports.COLORS = void 0;
9
+
10
+ var _botonic_react_logo100x = _interopRequireDefault(require("./assets/botonic_react_logo100x100.png"));
11
+
12
+ var SENDERS = {
13
+ bot: 'bot',
14
+ user: 'user'
15
+ };
16
+ exports.SENDERS = SENDERS;
17
+ var COLORS = {
18
+ // http://chir.ag/projects/name-that-color
19
+ APPLE_GREEN: 'rgba(58, 156, 53, 1)',
20
+ BLEACHED_CEDAR_PURPLE: 'rgba(46, 32, 59, 1)',
21
+ BOTONIC_BLUE: 'rgba(0, 153, 255, 1)',
22
+ CACTUS_GREEN: 'rgba(96, 115, 94, 1)',
23
+ CONCRETE_WHITE: 'rgba(243, 243, 243, 1)',
24
+ CURIOUS_BLUE: 'rgba(38, 139, 210, 1)',
25
+ DAINTREE_BLUE: 'rgba(0, 43, 53, 1)',
26
+ ERROR_RED: 'rgba(255, 43, 94)',
27
+ FRINGY_FLOWER_GREEN: 'rgba(198, 231, 192, 1)',
28
+ GRAY: 'rgba(129, 129, 129, 1)',
29
+ LIGHT_GRAY: 'rgba(209, 209, 209, 1)',
30
+ MID_GRAY: 'rgba(105, 105, 115, 1)',
31
+ PIGEON_POST_BLUE_ALPHA_0_5: 'rgba(176, 196, 222, 0.5)',
32
+ SCORPION_GRAY: 'rgba(87, 87, 87, 1)',
33
+ SEASHELL_WHITE: 'rgba(241, 240, 240, 1)',
34
+ SILVER: 'rgba(200, 200, 200, 1)',
35
+ SOLID_BLACK_ALPHA_0_2: 'rgba(0, 0, 0, 0.2)',
36
+ SOLID_BLACK_ALPHA_0_5: 'rgba(0, 0, 0, 0.5)',
37
+ SOLID_BLACK: 'rgba(0, 0, 0, 1)',
38
+ SOLID_WHITE_ALPHA_0_2: 'rgba(255, 255, 255, 0.2)',
39
+ SOLID_WHITE_ALPHA_0_8: 'rgba(255, 255, 255, 0.8)',
40
+ SOLID_WHITE: 'rgba(255, 255, 255, 1)',
41
+ TASMAN_GRAY: 'rgba(209, 216, 207, 1)',
42
+ TRANSPARENT: 'rgba(0, 0, 0, 0)',
43
+ WILD_SAND_WHITE: 'rgba(244, 244, 244, 1)'
44
+ };
45
+ exports.COLORS = COLORS;
46
+ var WEBCHAT = {
47
+ DEFAULTS: {
48
+ WIDTH: 300,
49
+ HEIGHT: 450,
50
+ TITLE: 'Botonic',
51
+ LOGO: _botonic_react_logo100x["default"],
52
+ PLACEHOLDER: 'Ask me something...',
53
+ FONT_FAMILY: "'Noto Sans JP', sans-serif",
54
+ BORDER_RADIUS_TOP_CORNERS: '6px 6px 0px 0px',
55
+ ELEMENT_WIDTH: 222,
56
+ ELEMENT_MARGIN_RIGHT: 6,
57
+ STORAGE_KEY: 'botonicState',
58
+ HOST_ID: 'root',
59
+ ID: 'botonic-webchat',
60
+ BUTTON_AUTO_DISABLE: false,
61
+ BUTTON_DISABLED_STYLE: {
62
+ opacity: 0.5,
63
+ cursor: 'auto',
64
+ pointerEvents: 'none'
65
+ }
66
+ },
67
+ SELECTORS: {
68
+ SCROLLABLE_CONTENT: '#botonic-scrollable-content',
69
+ SIMPLEBAR_CONTENT: '.simplebar-content',
70
+ SIMPLEBAR_WRAPPER: '.simplebar-content-wrapper'
71
+ },
72
+ CUSTOM_PROPERTIES: {
73
+ // General
74
+ enableAnimations: 'animations.enable',
75
+ markdownStyle: 'markdownStyle',
76
+ scrollbar: 'scrollbar',
77
+ // Mobile
78
+ mobileBreakpoint: 'mobileBreakpoint',
79
+ mobileStyle: 'mobileStyle',
80
+ // Webviews
81
+ webviewHeaderStyle: 'webview.header.style',
82
+ webviewStyle: 'webview.style',
83
+ // Brand
84
+ brandColor: 'brand.color',
85
+ brandImage: 'brand.image',
86
+ // Header
87
+ customHeader: 'header.custom',
88
+ headerImage: 'header.image',
89
+ headerStyle: 'header.style',
90
+ headerSubtitle: 'header.subtitle',
91
+ headerTitle: 'header.title',
92
+ // Bot Message
93
+ botMessageBackground: 'message.bot.style.background',
94
+ botMessageBlobTick: 'message.bot.blobTick',
95
+ botMessageBlobTickStyle: 'message.bot.blobTickStyle',
96
+ botMessageBlobWidth: 'message.bot.blobWidth',
97
+ botMessageBorderColor: 'message.bot.style.borderColor',
98
+ botMessageImage: 'message.bot.image',
99
+ botMessageImageStyle: 'message.bot.imageStyle',
100
+ botMessageStyle: 'message.bot.style',
101
+ // User Message
102
+ customMessageTypes: 'message.customTypes',
103
+ messageStyle: 'message.style',
104
+ userMessageBackground: 'message.user.style.background',
105
+ userMessageBlobTick: 'message.user.blobTick',
106
+ userMessageBlobTickStyle: 'message.user.blobTickStyle',
107
+ userMessageBorderColor: 'message.user.style.borderColor',
108
+ userMessageStyle: 'message.user.style',
109
+ // Timestamps
110
+ enableMessageTimestamps: 'message.timestamps.enable',
111
+ messageTimestampsFormat: 'message.timestamps.format',
112
+ messageTimestampsStyle: 'message.timestamps.style',
113
+ // Intro
114
+ customIntro: 'intro.custom',
115
+ introImage: 'intro.image',
116
+ introStyle: 'intro.style',
117
+ // Buttons
118
+ buttonHoverBackground: 'button.hoverBackground',
119
+ buttonHoverTextColor: 'button.hoverTextColor',
120
+ buttonMessageType: 'button.messageType',
121
+ buttonStyle: 'button.style',
122
+ buttonDisabledStyle: 'button.disabledstyle',
123
+ buttonAutoDisable: 'button.autodisable',
124
+ buttonStyleBackground: 'button.style.background',
125
+ buttonStyleColor: 'button.style.color',
126
+ customButton: 'button.custom',
127
+ // Replies
128
+ alignReplies: 'replies.align',
129
+ customReply: 'reply.custom',
130
+ replyStyle: 'reply.style',
131
+ wrapReplies: 'replies.wrap',
132
+ // TriggerButton
133
+ customTrigger: 'triggerButton.custom',
134
+ triggerButtonImage: 'triggerButton.image',
135
+ triggerButtonStyle: 'triggerButton.style',
136
+ // User Input
137
+ blockInputs: 'userInput.blockInputs',
138
+ documentDownload: 'documentDownload',
139
+ customMenuButton: 'userInput.menuButton.custom',
140
+ customPersistentMenu: 'userInput.menu.custom',
141
+ customSendButton: 'userInput.sendButton.custom',
142
+ darkBackgroundMenu: 'userInput.menu.darkBackground',
143
+ enableAttachments: 'userInput.attachments.enable',
144
+ enableEmojiPicker: 'userInput.emojiPicker.enable',
145
+ enableSendButton: 'userInput.sendButton.enable',
146
+ enableUserInput: 'userInput.enable',
147
+ persistentMenu: 'userInput.persistentMenu',
148
+ textPlaceholder: 'userInput.box.placeholder',
149
+ userInputBoxStyle: 'userInput.box.style',
150
+ userInputStyle: 'userInput.style',
151
+ // Cover Component
152
+ coverComponent: 'coverComponent.component',
153
+ coverComponentProps: 'coverComponent.props',
154
+ // Carousel
155
+ customCarouselLeftArrow: 'carousel.arrow.left',
156
+ customCarouselRightArrow: 'carousel.arrow.right',
157
+ enableCarouselArrows: 'carousel.enableArrows'
158
+ }
159
+ };
160
+ exports.WEBCHAT = WEBCHAT;
161
+ var MIME_WHITELIST = {
162
+ audio: ['audio/mpeg', 'audio/mp3'],
163
+ document: ['application/pdf'],
164
+ image: ['image/jpeg', 'image/png'],
165
+ video: ['video/mp4', 'video/quicktime']
166
+ };
167
+ exports.MIME_WHITELIST = MIME_WHITELIST;
168
+ var MAX_ALLOWED_SIZE_MB = 10;
169
+ exports.MAX_ALLOWED_SIZE_MB = MAX_ALLOWED_SIZE_MB;
170
+ var ROLES = {
171
+ ATTACHMENT_ICON: 'attachment-icon',
172
+ EMOJI_PICKER_ICON: 'emoji-picker-icon',
173
+ EMOJI_PICKER: 'emoji-picker',
174
+ HEADER: 'header',
175
+ MESSAGE_LIST: 'message-list',
176
+ PERSISTENT_MENU_ICON: 'persistent-menu-icon',
177
+ PERSISTENT_MENU: 'persistent-menu',
178
+ SEND_BUTTON_ICON: 'send-button-icon',
179
+ WEBCHAT: 'webchat',
180
+ TRIGGER_BUTTON: 'trigger-button',
181
+ TYPING_INDICATOR: 'typing-indicator',
182
+ TEXT_BOX: 'textbox',
183
+ WEBVIEW: 'webview',
184
+ WEBVIEW_HEADER: 'webview-header',
185
+ MESSAGE: 'message',
186
+ IMAGE_MESSAGE: 'image-message',
187
+ AUDIO_MESSAGE: 'audio-message',
188
+ VIDEO_MESSAGE: 'video-message',
189
+ DOCUMENT_MESSAGE: 'document-message',
190
+ RAW_MESSAGE: 'raw-message'
191
+ };
192
+ exports.ROLES = ROLES;
193
+ var COMPONENT_TYPE = {
194
+ TEXT: 'Text',
195
+ BUTTON: 'Button',
196
+ REPLY: 'Reply',
197
+ CAROUSEL: 'Carousel'
198
+ };
199
+ exports.COMPONENT_TYPE = COMPONENT_TYPE;
200
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.js"],"names":["SENDERS","bot","user","COLORS","APPLE_GREEN","BLEACHED_CEDAR_PURPLE","BOTONIC_BLUE","CACTUS_GREEN","CONCRETE_WHITE","CURIOUS_BLUE","DAINTREE_BLUE","ERROR_RED","FRINGY_FLOWER_GREEN","GRAY","LIGHT_GRAY","MID_GRAY","PIGEON_POST_BLUE_ALPHA_0_5","SCORPION_GRAY","SEASHELL_WHITE","SILVER","SOLID_BLACK_ALPHA_0_2","SOLID_BLACK_ALPHA_0_5","SOLID_BLACK","SOLID_WHITE_ALPHA_0_2","SOLID_WHITE_ALPHA_0_8","SOLID_WHITE","TASMAN_GRAY","TRANSPARENT","WILD_SAND_WHITE","WEBCHAT","DEFAULTS","WIDTH","HEIGHT","TITLE","LOGO","BotonicLogo","PLACEHOLDER","FONT_FAMILY","BORDER_RADIUS_TOP_CORNERS","ELEMENT_WIDTH","ELEMENT_MARGIN_RIGHT","STORAGE_KEY","HOST_ID","ID","BUTTON_AUTO_DISABLE","BUTTON_DISABLED_STYLE","opacity","cursor","pointerEvents","SELECTORS","SCROLLABLE_CONTENT","SIMPLEBAR_CONTENT","SIMPLEBAR_WRAPPER","CUSTOM_PROPERTIES","enableAnimations","markdownStyle","scrollbar","mobileBreakpoint","mobileStyle","webviewHeaderStyle","webviewStyle","brandColor","brandImage","customHeader","headerImage","headerStyle","headerSubtitle","headerTitle","botMessageBackground","botMessageBlobTick","botMessageBlobTickStyle","botMessageBlobWidth","botMessageBorderColor","botMessageImage","botMessageImageStyle","botMessageStyle","customMessageTypes","messageStyle","userMessageBackground","userMessageBlobTick","userMessageBlobTickStyle","userMessageBorderColor","userMessageStyle","enableMessageTimestamps","messageTimestampsFormat","messageTimestampsStyle","customIntro","introImage","introStyle","buttonHoverBackground","buttonHoverTextColor","buttonMessageType","buttonStyle","buttonDisabledStyle","buttonAutoDisable","buttonStyleBackground","buttonStyleColor","customButton","alignReplies","customReply","replyStyle","wrapReplies","customTrigger","triggerButtonImage","triggerButtonStyle","blockInputs","documentDownload","customMenuButton","customPersistentMenu","customSendButton","darkBackgroundMenu","enableAttachments","enableEmojiPicker","enableSendButton","enableUserInput","persistentMenu","textPlaceholder","userInputBoxStyle","userInputStyle","coverComponent","coverComponentProps","customCarouselLeftArrow","customCarouselRightArrow","enableCarouselArrows","MIME_WHITELIST","audio","document","image","video","MAX_ALLOWED_SIZE_MB","ROLES","ATTACHMENT_ICON","EMOJI_PICKER_ICON","EMOJI_PICKER","HEADER","MESSAGE_LIST","PERSISTENT_MENU_ICON","PERSISTENT_MENU","SEND_BUTTON_ICON","TRIGGER_BUTTON","TYPING_INDICATOR","TEXT_BOX","WEBVIEW","WEBVIEW_HEADER","MESSAGE","IMAGE_MESSAGE","AUDIO_MESSAGE","VIDEO_MESSAGE","DOCUMENT_MESSAGE","RAW_MESSAGE","COMPONENT_TYPE","TEXT","BUTTON","REPLY","CAROUSEL"],"mappings":"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","sourcesContent":["import BotonicLogo from './assets/botonic_react_logo100x100.png'\n\nexport const SENDERS = {\n bot: 'bot',\n user: 'user',\n}\n\nexport const COLORS = {\n // http://chir.ag/projects/name-that-color\n APPLE_GREEN: 'rgba(58, 156, 53, 1)',\n BLEACHED_CEDAR_PURPLE: 'rgba(46, 32, 59, 1)',\n BOTONIC_BLUE: 'rgba(0, 153, 255, 1)',\n CACTUS_GREEN: 'rgba(96, 115, 94, 1)',\n CONCRETE_WHITE: 'rgba(243, 243, 243, 1)',\n CURIOUS_BLUE: 'rgba(38, 139, 210, 1)',\n DAINTREE_BLUE: 'rgba(0, 43, 53, 1)',\n ERROR_RED: 'rgba(255, 43, 94)',\n FRINGY_FLOWER_GREEN: 'rgba(198, 231, 192, 1)',\n GRAY: 'rgba(129, 129, 129, 1)',\n LIGHT_GRAY: 'rgba(209, 209, 209, 1)',\n MID_GRAY: 'rgba(105, 105, 115, 1)',\n PIGEON_POST_BLUE_ALPHA_0_5: 'rgba(176, 196, 222, 0.5)',\n SCORPION_GRAY: 'rgba(87, 87, 87, 1)',\n SEASHELL_WHITE: 'rgba(241, 240, 240, 1)',\n SILVER: 'rgba(200, 200, 200, 1)',\n SOLID_BLACK_ALPHA_0_2: 'rgba(0, 0, 0, 0.2)',\n SOLID_BLACK_ALPHA_0_5: 'rgba(0, 0, 0, 0.5)',\n SOLID_BLACK: 'rgba(0, 0, 0, 1)',\n SOLID_WHITE_ALPHA_0_2: 'rgba(255, 255, 255, 0.2)',\n SOLID_WHITE_ALPHA_0_8: 'rgba(255, 255, 255, 0.8)',\n SOLID_WHITE: 'rgba(255, 255, 255, 1)',\n TASMAN_GRAY: 'rgba(209, 216, 207, 1)',\n TRANSPARENT: 'rgba(0, 0, 0, 0)',\n WILD_SAND_WHITE: 'rgba(244, 244, 244, 1)',\n}\n\nexport const WEBCHAT = {\n DEFAULTS: {\n WIDTH: 300,\n HEIGHT: 450,\n TITLE: 'Botonic',\n LOGO: BotonicLogo,\n PLACEHOLDER: 'Ask me something...',\n FONT_FAMILY: \"'Noto Sans JP', sans-serif\",\n BORDER_RADIUS_TOP_CORNERS: '6px 6px 0px 0px',\n ELEMENT_WIDTH: 222,\n ELEMENT_MARGIN_RIGHT: 6,\n STORAGE_KEY: 'botonicState',\n HOST_ID: 'root',\n ID: 'botonic-webchat',\n BUTTON_AUTO_DISABLE: false,\n BUTTON_DISABLED_STYLE: {\n opacity: 0.5,\n cursor: 'auto',\n pointerEvents: 'none',\n },\n },\n SELECTORS: {\n SCROLLABLE_CONTENT: '#botonic-scrollable-content',\n SIMPLEBAR_CONTENT: '.simplebar-content',\n SIMPLEBAR_WRAPPER: '.simplebar-content-wrapper',\n },\n CUSTOM_PROPERTIES: {\n // General\n enableAnimations: 'animations.enable',\n markdownStyle: 'markdownStyle',\n scrollbar: 'scrollbar',\n // Mobile\n mobileBreakpoint: 'mobileBreakpoint',\n mobileStyle: 'mobileStyle',\n // Webviews\n webviewHeaderStyle: 'webview.header.style',\n webviewStyle: 'webview.style',\n // Brand\n brandColor: 'brand.color',\n brandImage: 'brand.image',\n // Header\n customHeader: 'header.custom',\n headerImage: 'header.image',\n headerStyle: 'header.style',\n headerSubtitle: 'header.subtitle',\n headerTitle: 'header.title',\n // Bot Message\n botMessageBackground: 'message.bot.style.background',\n botMessageBlobTick: 'message.bot.blobTick',\n botMessageBlobTickStyle: 'message.bot.blobTickStyle',\n botMessageBlobWidth: 'message.bot.blobWidth',\n botMessageBorderColor: 'message.bot.style.borderColor',\n botMessageImage: 'message.bot.image',\n botMessageImageStyle: 'message.bot.imageStyle',\n botMessageStyle: 'message.bot.style',\n // User Message\n customMessageTypes: 'message.customTypes',\n messageStyle: 'message.style',\n userMessageBackground: 'message.user.style.background',\n userMessageBlobTick: 'message.user.blobTick',\n userMessageBlobTickStyle: 'message.user.blobTickStyle',\n userMessageBorderColor: 'message.user.style.borderColor',\n userMessageStyle: 'message.user.style',\n // Timestamps\n enableMessageTimestamps: 'message.timestamps.enable',\n messageTimestampsFormat: 'message.timestamps.format',\n messageTimestampsStyle: 'message.timestamps.style',\n // Intro\n customIntro: 'intro.custom',\n introImage: 'intro.image',\n introStyle: 'intro.style',\n // Buttons\n buttonHoverBackground: 'button.hoverBackground',\n buttonHoverTextColor: 'button.hoverTextColor',\n buttonMessageType: 'button.messageType',\n buttonStyle: 'button.style',\n buttonDisabledStyle: 'button.disabledstyle',\n buttonAutoDisable: 'button.autodisable',\n buttonStyleBackground: 'button.style.background',\n buttonStyleColor: 'button.style.color',\n customButton: 'button.custom',\n // Replies\n alignReplies: 'replies.align',\n customReply: 'reply.custom',\n replyStyle: 'reply.style',\n wrapReplies: 'replies.wrap',\n // TriggerButton\n customTrigger: 'triggerButton.custom',\n triggerButtonImage: 'triggerButton.image',\n triggerButtonStyle: 'triggerButton.style',\n // User Input\n blockInputs: 'userInput.blockInputs',\n documentDownload: 'documentDownload',\n customMenuButton: 'userInput.menuButton.custom',\n customPersistentMenu: 'userInput.menu.custom',\n customSendButton: 'userInput.sendButton.custom',\n darkBackgroundMenu: 'userInput.menu.darkBackground',\n enableAttachments: 'userInput.attachments.enable',\n enableEmojiPicker: 'userInput.emojiPicker.enable',\n enableSendButton: 'userInput.sendButton.enable',\n enableUserInput: 'userInput.enable',\n persistentMenu: 'userInput.persistentMenu',\n textPlaceholder: 'userInput.box.placeholder',\n userInputBoxStyle: 'userInput.box.style',\n userInputStyle: 'userInput.style',\n // Cover Component\n coverComponent: 'coverComponent.component',\n coverComponentProps: 'coverComponent.props',\n // Carousel\n customCarouselLeftArrow: 'carousel.arrow.left',\n customCarouselRightArrow: 'carousel.arrow.right',\n enableCarouselArrows: 'carousel.enableArrows',\n },\n}\n\nexport const MIME_WHITELIST = {\n audio: ['audio/mpeg', 'audio/mp3'],\n document: ['application/pdf'],\n image: ['image/jpeg', 'image/png'],\n video: ['video/mp4', 'video/quicktime'],\n}\n\nexport const MAX_ALLOWED_SIZE_MB = 10\n\nexport const ROLES = {\n ATTACHMENT_ICON: 'attachment-icon',\n EMOJI_PICKER_ICON: 'emoji-picker-icon',\n EMOJI_PICKER: 'emoji-picker',\n HEADER: 'header',\n MESSAGE_LIST: 'message-list',\n PERSISTENT_MENU_ICON: 'persistent-menu-icon',\n PERSISTENT_MENU: 'persistent-menu',\n SEND_BUTTON_ICON: 'send-button-icon',\n WEBCHAT: 'webchat',\n TRIGGER_BUTTON: 'trigger-button',\n TYPING_INDICATOR: 'typing-indicator',\n TEXT_BOX: 'textbox',\n WEBVIEW: 'webview',\n WEBVIEW_HEADER: 'webview-header',\n MESSAGE: 'message',\n IMAGE_MESSAGE: 'image-message',\n AUDIO_MESSAGE: 'audio-message',\n VIDEO_MESSAGE: 'video-message',\n DOCUMENT_MESSAGE: 'document-message',\n RAW_MESSAGE: 'raw-message',\n}\n\nexport const COMPONENT_TYPE = {\n TEXT: 'Text',\n BUTTON: 'Button',\n REPLY: 'Reply',\n CAROUSEL: 'Carousel',\n}\n"],"file":"constants.js"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.WebchatContext = exports.RequestContext = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _hooks = require("./webchat/hooks");
13
+
14
+ var RequestContext = /*#__PURE__*/_react["default"].createContext({
15
+ getString: function getString() {
16
+ return '';
17
+ },
18
+ setLocale: function setLocale() {
19
+ return '';
20
+ },
21
+ session: {},
22
+ params: {},
23
+ input: {},
24
+ defaultDelay: 0,
25
+ defaultTyping: 0
26
+ });
27
+
28
+ exports.RequestContext = RequestContext;
29
+
30
+ var WebchatContext = /*#__PURE__*/_react["default"].createContext({
31
+ sendText: function sendText(text) {},
32
+ sendAttachment: function sendAttachment(attachment) {},
33
+ sendPayload: function sendPayload(payload) {},
34
+ sendInput: function sendInput(input) {},
35
+ setReplies: function setReplies(replies) {},
36
+ openWebview: function openWebview(webviewComponent) {},
37
+ addMessage: function addMessage(message) {},
38
+ updateMessage: function updateMessage(message) {},
39
+ updateReplies: function updateReplies(replies) {},
40
+ updateLatestInput: function updateLatestInput(input) {},
41
+ closeWebview: function closeWebview() {},
42
+ toggleWebchat: function toggleWebchat() {},
43
+ getThemeProperty: function getThemeProperty(property) {
44
+ return undefined;
45
+ },
46
+ // used to retrieve a specific property of the theme defined by the developer in his 'webchat/index.js'
47
+ resolveCase: function resolveCase() {},
48
+ theme: {},
49
+ webchatState: _hooks.webchatInitialState,
50
+ updateWebchatDevSettings: function updateWebchatDevSettings(settings) {
51
+ return {};
52
+ },
53
+ updateUser: function updateUser(user) {}
54
+ });
55
+
56
+ exports.WebchatContext = WebchatContext;
57
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/contexts.jsx"],"names":["RequestContext","React","createContext","getString","setLocale","session","params","input","defaultDelay","defaultTyping","WebchatContext","sendText","text","sendAttachment","attachment","sendPayload","payload","sendInput","setReplies","replies","openWebview","webviewComponent","addMessage","message","updateMessage","updateReplies","updateLatestInput","closeWebview","toggleWebchat","getThemeProperty","property","undefined","resolveCase","theme","webchatState","webchatInitialState","updateWebchatDevSettings","settings","updateUser","user"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,IAAMA,cAAc,gBAAGC,kBAAMC,aAAN,CAAoB;AAChDC,EAAAA,SAAS,EAAE;AAAA,WAAM,EAAN;AAAA,GADqC;AAEhDC,EAAAA,SAAS,EAAE;AAAA,WAAM,EAAN;AAAA,GAFqC;AAGhDC,EAAAA,OAAO,EAAE,EAHuC;AAIhDC,EAAAA,MAAM,EAAE,EAJwC;AAKhDC,EAAAA,KAAK,EAAE,EALyC;AAMhDC,EAAAA,YAAY,EAAE,CANkC;AAOhDC,EAAAA,aAAa,EAAE;AAPiC,CAApB,CAAvB;;;;AAUA,IAAMC,cAAc,gBAAGT,kBAAMC,aAAN,CAAoB;AAChDS,EAAAA,QAAQ,EAAE,kBAAAC,IAAI,EAAI,CAAE,CAD4B;AAEhDC,EAAAA,cAAc,EAAE,wBAAAC,UAAU,EAAI,CAAE,CAFgB;AAGhDC,EAAAA,WAAW,EAAE,qBAAAC,OAAO,EAAI,CAAE,CAHsB;AAIhDC,EAAAA,SAAS,EAAE,mBAAAV,KAAK,EAAI,CAAE,CAJ0B;AAKhDW,EAAAA,UAAU,EAAE,oBAAAC,OAAO,EAAI,CAAE,CALuB;AAMhDC,EAAAA,WAAW,EAAE,qBAAAC,gBAAgB,EAAI,CAAE,CANa;AAOhDC,EAAAA,UAAU,EAAE,oBAAAC,OAAO,EAAI,CAAE,CAPuB;AAQhDC,EAAAA,aAAa,EAAE,uBAAAD,OAAO,EAAI,CAAE,CARoB;AAShDE,EAAAA,aAAa,EAAE,uBAAAN,OAAO,EAAI,CAAE,CAToB;AAUhDO,EAAAA,iBAAiB,EAAE,2BAAAnB,KAAK,EAAI,CAAE,CAVkB;AAWhDoB,EAAAA,YAAY,EAAE,wBAAM,CAAE,CAX0B;AAYhDC,EAAAA,aAAa,EAAE,yBAAM,CAAE,CAZyB;AAahDC,EAAAA,gBAAgB,EAAE,0BAAAC,QAAQ;AAAA,WAAIC,SAAJ;AAAA,GAbsB;AAaP;AACzCC,EAAAA,WAAW,EAAE,uBAAM,CAAE,CAd2B;AAehDC,EAAAA,KAAK,EAAE,EAfyC;AAgBhDC,EAAAA,YAAY,EAAEC,0BAhBkC;AAiBhDC,EAAAA,wBAAwB,EAAE,kCAAAC,QAAQ,EAAI;AACpC,WAAO,EAAP;AACD,GAnB+C;AAoBhDC,EAAAA,UAAU,EAAE,oBAAAC,IAAI,EAAI,CAAE;AApB0B,CAApB,CAAvB","sourcesContent":["import React from 'react'\n\nimport { webchatInitialState } from './webchat/hooks'\n\nexport const RequestContext = React.createContext({\n getString: () => '',\n setLocale: () => '',\n session: {},\n params: {},\n input: {},\n defaultDelay: 0,\n defaultTyping: 0,\n})\n\nexport const WebchatContext = React.createContext({\n sendText: text => {},\n sendAttachment: attachment => {},\n sendPayload: payload => {},\n sendInput: input => {},\n setReplies: replies => {},\n openWebview: webviewComponent => {},\n addMessage: message => {},\n updateMessage: message => {},\n updateReplies: replies => {},\n updateLatestInput: input => {},\n closeWebview: () => {},\n toggleWebchat: () => {},\n getThemeProperty: property => undefined, // used to retrieve a specific property of the theme defined by the developer in his 'webchat/index.js'\n resolveCase: () => {},\n theme: {},\n webchatState: webchatInitialState,\n updateWebchatDevSettings: settings => {\n return {}\n },\n updateUser: user => {},\n})\n"],"file":"contexts.js"}
package/lib/dev-app.js ADDED
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DevApp = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
+
22
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
+
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
26
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
+
28
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
+
30
+ var _lodash = _interopRequireDefault(require("lodash.merge"));
31
+
32
+ var _react = _interopRequireDefault(require("react"));
33
+
34
+ var _reactDom = require("react-dom");
35
+
36
+ var _constants = require("./constants");
37
+
38
+ var _reactBot = require("./react-bot");
39
+
40
+ var _dom = require("./util/dom");
41
+
42
+ var _webchatDev = require("./webchat/webchat-dev");
43
+
44
+ var _webchatApp = require("./webchat-app");
45
+
46
+ var _excluded = ["theme", "persistentMenu", "coverComponent", "blockInputs", "enableEmojiPicker", "enableAttachments", "enableUserInput", "enableAnimations", "shadowDOM", "hostId", "storage", "storageKey", "onInit", "onOpen", "onClose", "onMessage"],
47
+ _excluded2 = ["theme", "persistentMenu", "coverComponent", "blockInputs", "enableEmojiPicker", "enableAttachments", "enableUserInput", "enableAnimations", "storage", "storageKey", "onInit", "onOpen", "onClose", "onMessage", "hostId"];
48
+
49
+ 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; }
50
+
51
+ 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; }
52
+
53
+ 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); }; }
54
+
55
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
56
+
57
+ var DevApp = /*#__PURE__*/function (_WebchatApp) {
58
+ (0, _inherits2["default"])(DevApp, _WebchatApp);
59
+
60
+ var _super = _createSuper(DevApp);
61
+
62
+ function DevApp(_ref) {
63
+ var _this;
64
+
65
+ var _ref$theme = _ref.theme,
66
+ theme = _ref$theme === void 0 ? {} : _ref$theme,
67
+ persistentMenu = _ref.persistentMenu,
68
+ coverComponent = _ref.coverComponent,
69
+ blockInputs = _ref.blockInputs,
70
+ enableEmojiPicker = _ref.enableEmojiPicker,
71
+ enableAttachments = _ref.enableAttachments,
72
+ enableUserInput = _ref.enableUserInput,
73
+ enableAnimations = _ref.enableAnimations,
74
+ shadowDOM = _ref.shadowDOM,
75
+ hostId = _ref.hostId,
76
+ storage = _ref.storage,
77
+ storageKey = _ref.storageKey,
78
+ onInit = _ref.onInit,
79
+ onOpen = _ref.onOpen,
80
+ onClose = _ref.onClose,
81
+ onMessage = _ref.onMessage,
82
+ botOptions = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
83
+ (0, _classCallCheck2["default"])(this, DevApp);
84
+ _this = _super.call(this, {
85
+ theme: theme,
86
+ persistentMenu: persistentMenu,
87
+ coverComponent: coverComponent,
88
+ blockInputs: blockInputs,
89
+ enableEmojiPicker: enableEmojiPicker,
90
+ enableAttachments: enableAttachments,
91
+ enableUserInput: enableUserInput,
92
+ enableAnimations: enableAnimations,
93
+ shadowDOM: shadowDOM,
94
+ hostId: hostId,
95
+ storage: storage,
96
+ storageKey: storageKey,
97
+ onInit: onInit,
98
+ onOpen: onOpen,
99
+ onClose: onClose,
100
+ onMessage: onMessage
101
+ });
102
+ _this.bot = new _reactBot.ReactBot(_objectSpread({}, botOptions));
103
+ return _this;
104
+ }
105
+
106
+ (0, _createClass2["default"])(DevApp, [{
107
+ key: "getComponent",
108
+ value: function getComponent(host) {
109
+ var _this2 = this;
110
+
111
+ var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
112
+ var _optionsAtRuntime$the = optionsAtRuntime.theme,
113
+ theme = _optionsAtRuntime$the === void 0 ? {} : _optionsAtRuntime$the,
114
+ persistentMenu = optionsAtRuntime.persistentMenu,
115
+ coverComponent = optionsAtRuntime.coverComponent,
116
+ blockInputs = optionsAtRuntime.blockInputs,
117
+ enableEmojiPicker = optionsAtRuntime.enableEmojiPicker,
118
+ enableAttachments = optionsAtRuntime.enableAttachments,
119
+ enableUserInput = optionsAtRuntime.enableUserInput,
120
+ enableAnimations = optionsAtRuntime.enableAnimations,
121
+ storage = optionsAtRuntime.storage,
122
+ storageKey = optionsAtRuntime.storageKey,
123
+ onInit = optionsAtRuntime.onInit,
124
+ onOpen = optionsAtRuntime.onOpen,
125
+ onClose = optionsAtRuntime.onClose,
126
+ onMessage = optionsAtRuntime.onMessage,
127
+ hostId = optionsAtRuntime.hostId,
128
+ webchatOptions = (0, _objectWithoutProperties2["default"])(optionsAtRuntime, _excluded2);
129
+ theme = (0, _lodash["default"])(this.theme, theme);
130
+ persistentMenu = persistentMenu || this.persistentMenu;
131
+ coverComponent = coverComponent || this.coverComponent;
132
+ blockInputs = blockInputs || this.blockInputs;
133
+ enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker;
134
+ enableAttachments = enableAttachments || this.enableAttachments;
135
+ enableUserInput = enableUserInput || this.enableUserInput;
136
+ enableAnimations = enableAnimations || this.enableAnimations;
137
+ storage = storage || this.storage;
138
+ storageKey = storageKey || this.storageKey;
139
+ this.onInit = onInit || this.onInit;
140
+ this.onOpen = onOpen || this.onOpen;
141
+ this.onClose = onClose || this.onClose;
142
+ this.onMessage = onMessage || this.onMessage;
143
+ this.hostId = hostId || this.hostId;
144
+ this.createRootElement(host);
145
+ return /*#__PURE__*/_react["default"].createElement(_webchatDev.WebchatDev, (0, _extends2["default"])({}, webchatOptions, {
146
+ ref: this.webchatRef,
147
+ host: this.host,
148
+ shadowDOM: this.shadowDOM,
149
+ theme: theme,
150
+ persistentMenu: persistentMenu,
151
+ coverComponent: coverComponent,
152
+ blockInputs: blockInputs,
153
+ enableEmojiPicker: enableEmojiPicker,
154
+ enableAttachments: enableAttachments,
155
+ enableUserInput: enableUserInput,
156
+ enableAnimations: enableAnimations,
157
+ storage: storage,
158
+ storageKey: storageKey,
159
+ getString: function getString(stringId, session) {
160
+ return _this2.bot.getString(stringId, session);
161
+ },
162
+ setLocale: function setLocale(locale, session) {
163
+ return _this2.bot.setLocale(locale, session);
164
+ },
165
+ onInit: function onInit() {
166
+ return _this2.onInitWebchat.apply(_this2, arguments);
167
+ },
168
+ onOpen: function onOpen() {
169
+ return _this2.onOpenWebchat.apply(_this2, arguments);
170
+ },
171
+ onClose: function onClose() {
172
+ return _this2.onCloseWebchat.apply(_this2, arguments);
173
+ },
174
+ onUserInput: function onUserInput() {
175
+ return _this2.onUserInput.apply(_this2, arguments);
176
+ }
177
+ }));
178
+ }
179
+ }, {
180
+ key: "render",
181
+ value: function render(dest) {
182
+ var _this3 = this;
183
+
184
+ var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
185
+ (0, _dom.onDOMLoaded)(function () {
186
+ (0, _reactDom.render)(_this3.getComponent(dest, optionsAtRuntime), _this3.getReactMountNode(dest));
187
+ });
188
+ }
189
+ }, {
190
+ key: "onUserInput",
191
+ value: function () {
192
+ var _onUserInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2) {
193
+ var _this4 = this;
194
+
195
+ var input, session, lastRoutePath, resp;
196
+ return _regenerator["default"].wrap(function _callee$(_context) {
197
+ while (1) {
198
+ switch (_context.prev = _context.next) {
199
+ case 0:
200
+ input = _ref2.input, session = _ref2.session, lastRoutePath = _ref2.lastRoutePath;
201
+ this.onMessage && this.onMessage(this, {
202
+ from: _constants.SENDERS.user,
203
+ message: input
204
+ });
205
+ _context.next = 4;
206
+ return this.bot.input({
207
+ input: input,
208
+ session: session,
209
+ lastRoutePath: lastRoutePath
210
+ });
211
+
212
+ case 4:
213
+ resp = _context.sent;
214
+ this.onMessage && resp.response.map(function (r) {
215
+ return _this4.onMessage(_this4, {
216
+ from: _constants.SENDERS.bot,
217
+ message: r
218
+ });
219
+ });
220
+ this.webchatRef.current.addBotResponse(resp);
221
+
222
+ case 7:
223
+ case "end":
224
+ return _context.stop();
225
+ }
226
+ }
227
+ }, _callee, this);
228
+ }));
229
+
230
+ function onUserInput(_x) {
231
+ return _onUserInput.apply(this, arguments);
232
+ }
233
+
234
+ return onUserInput;
235
+ }()
236
+ }]);
237
+ return DevApp;
238
+ }(_webchatApp.WebchatApp);
239
+
240
+ exports.DevApp = DevApp;
241
+ //# sourceMappingURL=dev-app.js.map