@botonic/react 1.0.0-beta.0 → 1.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/lib/components/button.js +2 -0
  2. package/lib/components/button.js.map +1 -1
  3. package/lib/components/components.js +1 -1
  4. package/lib/components/image.js +47 -5
  5. package/lib/components/image.js.map +1 -1
  6. package/lib/components/index.js +6 -6
  7. package/lib/components/markdown.js +1 -1
  8. package/lib/components/multichannel/multichannel-utils.js +8 -6
  9. package/lib/components/multichannel/multichannel-utils.js.map +1 -1
  10. package/lib/components/timestamps.js +1 -1
  11. package/lib/constants.js +2 -1
  12. package/lib/constants.js.map +1 -1
  13. package/lib/dev-app.js +7 -6
  14. package/lib/dev-app.js.map +1 -1
  15. package/lib/index.d.ts +3 -0
  16. package/lib/index.js +20 -20
  17. package/lib/message-utils.js +1 -1
  18. package/lib/util/dom.js +8 -2
  19. package/lib/util/dom.js.map +1 -1
  20. package/lib/util/environment.js +1 -1
  21. package/lib/util/objects.js +1 -1
  22. package/lib/util/react.js +1 -1
  23. package/lib/util/webchat.js +1 -1
  24. package/lib/webchat/actions.js +5 -1
  25. package/lib/webchat/actions.js.map +1 -1
  26. package/lib/webchat/devices/device-adapter.js +14 -4
  27. package/lib/webchat/devices/device-adapter.js.map +1 -1
  28. package/lib/webchat/devices/scrollbar-controller.js +5 -3
  29. package/lib/webchat/devices/scrollbar-controller.js.map +1 -1
  30. package/lib/webchat/header.js +1 -1
  31. package/lib/webchat/hooks.js +25 -6
  32. package/lib/webchat/hooks.js.map +1 -1
  33. package/lib/webchat/index.js +1 -1
  34. package/lib/webchat/webchat-reducer.js +11 -0
  35. package/lib/webchat/webchat-reducer.js.map +1 -1
  36. package/lib/webchat/webchat.js +21 -4
  37. package/lib/webchat/webchat.js.map +1 -1
  38. package/lib/webchat/webview.js +1 -1
  39. package/lib/webchat-app.js +20 -9
  40. package/lib/webchat-app.js.map +1 -1
  41. package/package.json +6 -6
  42. package/src/components/button.jsx +2 -0
  43. package/src/dev-app.jsx +8 -3
  44. package/src/experimental/components/message.jsx +8 -2
  45. package/src/experimental/constants.js +189 -0
  46. package/src/experimental/contexts.jsx +36 -0
  47. package/src/experimental/dev-app.jsx +14 -7
  48. package/src/experimental/index.js +94 -25
  49. package/src/experimental/msg-to-botonic.jsx +8 -8
  50. package/src/experimental/react-bot.jsx +1 -1
  51. package/src/experimental/util/dom.js +55 -0
  52. package/src/experimental/util/objects.js +39 -0
  53. package/src/experimental/util/webchat.js +61 -0
  54. package/src/experimental/webchat/actions.jsx +24 -0
  55. package/src/experimental/webchat/hooks.js +296 -0
  56. package/src/experimental/webchat/messages-reducer.js +86 -0
  57. package/src/experimental/webchat/session-view.jsx +166 -0
  58. package/src/experimental/webchat/webchat-dev.jsx +23 -19
  59. package/src/experimental/webchat/webchat-reducer.js +68 -0
  60. package/src/experimental/webchat/webchat.jsx +109 -82
  61. package/src/experimental/webchat-app.jsx +39 -15
  62. package/src/index.d.ts +1 -0
  63. package/src/util/dom.js +5 -3
  64. package/src/webchat/actions.jsx +1 -0
  65. package/src/webchat/devices/device-adapter.js +16 -4
  66. package/src/webchat/devices/scrollbar-controller.js +9 -4
  67. package/src/webchat/hooks.js +10 -0
  68. package/src/webchat/webchat-reducer.js +3 -0
  69. package/src/webchat/webchat.jsx +2 -1
  70. package/src/webchat-app.jsx +6 -4
  71. package/lib/experimental/components/audio.js +0 -46
  72. package/lib/experimental/components/audio.js.map +0 -1
  73. package/lib/experimental/components/carousel.js +0 -194
  74. package/lib/experimental/components/carousel.js.map +0 -1
  75. package/lib/experimental/components/custom-message.js +0 -132
  76. package/lib/experimental/components/custom-message.js.map +0 -1
  77. package/lib/experimental/components/document.js +0 -69
  78. package/lib/experimental/components/document.js.map +0 -1
  79. package/lib/experimental/components/image.js +0 -47
  80. package/lib/experimental/components/image.js.map +0 -1
  81. package/lib/experimental/components/index.js +0 -184
  82. package/lib/experimental/components/index.js.map +0 -1
  83. package/lib/experimental/components/location.js +0 -54
  84. package/lib/experimental/components/location.js.map +0 -1
  85. package/lib/experimental/components/markdown.js +0 -103
  86. package/lib/experimental/components/markdown.js.map +0 -1
  87. package/lib/experimental/components/message.js +0 -353
  88. package/lib/experimental/components/message.js.map +0 -1
  89. package/lib/experimental/components/text.js +0 -80
  90. package/lib/experimental/components/text.js.map +0 -1
  91. package/lib/experimental/components/video.js +0 -49
  92. package/lib/experimental/components/video.js.map +0 -1
  93. package/lib/experimental/components/whatsapp-template.js +0 -53
  94. package/lib/experimental/components/whatsapp-template.js.map +0 -1
  95. package/lib/experimental/dev-app.js +0 -240
  96. package/lib/experimental/dev-app.js.map +0 -1
  97. package/lib/experimental/index.js +0 -748
  98. package/lib/experimental/index.js.map +0 -1
  99. package/lib/experimental/msg-to-botonic.js +0 -162
  100. package/lib/experimental/msg-to-botonic.js.map +0 -1
  101. package/lib/experimental/node-app.js +0 -97
  102. package/lib/experimental/node-app.js.map +0 -1
  103. package/lib/experimental/react-bot.js +0 -167
  104. package/lib/experimental/react-bot.js.map +0 -1
  105. package/lib/experimental/webchat/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  106. package/lib/experimental/webchat/assets/botonic-logo-white.svg +0 -16
  107. package/lib/experimental/webchat/assets/messenger.svg +0 -10
  108. package/lib/experimental/webchat/assets/open-new-window.svg +0 -3
  109. package/lib/experimental/webchat/assets/open.svg +0 -3
  110. package/lib/experimental/webchat/assets/telegram.svg +0 -10
  111. package/lib/experimental/webchat/assets/webchat.svg +0 -21
  112. package/lib/experimental/webchat/assets/whatsapp.svg +0 -4
  113. package/lib/experimental/webchat/webchat-dev.js +0 -300
  114. package/lib/experimental/webchat/webchat-dev.js.map +0 -1
  115. package/lib/experimental/webchat/webchat.js +0 -1044
  116. package/lib/experimental/webchat/webchat.js.map +0 -1
  117. package/lib/experimental/webchat-app.js +0 -635
  118. package/lib/experimental/webchat-app.js.map +0 -1
@@ -78,12 +78,14 @@ var Button = function Button(props) {
78
78
  type == _core.INPUT.POSTBACK ? sendPayload("__PATH_PAYLOAD__".concat(props.path)) : sendInput({
79
79
  type: _core.INPUT.TEXT,
80
80
  data: String(props.children),
81
+ text: String(props.children),
81
82
  payload: "__PATH_PAYLOAD__".concat(props.path)
82
83
  });
83
84
  } else if (props.payload) {
84
85
  type == _core.INPUT.POSTBACK ? sendPayload(props.payload) : sendInput({
85
86
  type: _core.INPUT.TEXT,
86
87
  data: String(props.children),
88
+ text: String(props.children),
87
89
  payload: props.payload
88
90
  });
89
91
  } else if (props.url) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/button.jsx"],"names":["StyledButton","styled","button","COLORS","SEASHELL_WHITE","props","top","bottom","Button","WebchatContext","webchatState","openWebview","sendPayload","sendInput","getThemeProperty","updateMessage","hover","setHover","theme","ButtonsDisabler","resolveDisabling","autoDisable","disabledStyle","handleClick","event","preventDefault","type","WEBCHAT","CUSTOM_PROPERTIES","buttonMessageType","INPUT","TEXT","webview","params","path","POSTBACK","data","String","children","payload","url","window","open","target","onClick","setDisabled","messageToUpdate","messagesJSON","filter","m","id","parentId","updatedMsg","getUpdatedMessage","renderBrowser","buttonStyle","CustomButton","customButton","e","buttonBgColor","buttonHoverBackground","CONCRETE_WHITE","buttonStyleBackground","SOLID_WHITE","buttonTextColor","buttonHoverTextColor","SOLID_BLACK","buttonStyleColor","color","backgroundColor","disabled","bottomRadius","renderNode","disabledProps","constructNodeProps","Webview","name","Error","serialize","buttonProps","title","withDisabledProps"],"mappings":"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","sourcesContent":["import { INPUT, params2queryString } from '@botonic/core'\nimport React, { useContext, useState } from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { WebchatContext } from '../contexts'\nimport { renderComponent } from '../util/react'\nimport { ButtonsDisabler } from './buttons-disabler'\n\nconst StyledButton = styled.button`\n display: flex;\n width: 100%;\n max-height: 80px;\n font-size: 14px;\n text-align: center;\n align-content: center;\n justify-content: center;\n padding: 12px 32px;\n font-family: inherit;\n border: none;\n border: 1px solid ${COLORS.SEASHELL_WHITE};\n cursor: pointer;\n outline: 0;\n border-top-right-radius: ${props => props.top || '0px'};\n border-top-left-radius: ${props => props.top || '0px'};\n border-bottom-right-radius: ${props => props.bottom || '0px'};\n border-bottom-left-radius: ${props => props.bottom || '0px'};\n overflow: hidden;\n`\n\nexport const Button = props => {\n const {\n webchatState,\n openWebview,\n sendPayload,\n sendInput,\n getThemeProperty,\n updateMessage,\n } = useContext(WebchatContext)\n const [hover, setHover] = useState(false)\n const { theme } = webchatState\n const { autoDisable, disabledStyle } = ButtonsDisabler.resolveDisabling(\n webchatState.theme,\n props\n )\n const handleClick = event => {\n event.preventDefault()\n const type = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonMessageType,\n INPUT.TEXT\n )\n if (props.webview) openWebview(props.webview, props.params)\n else if (props.path) {\n type == INPUT.POSTBACK\n ? sendPayload(`__PATH_PAYLOAD__${props.path}`)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n payload: `__PATH_PAYLOAD__${props.path}`,\n })\n } else if (props.payload) {\n type == INPUT.POSTBACK\n ? sendPayload(props.payload)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n payload: props.payload,\n })\n } else if (props.url) {\n window.open(props.url, props.target || '_blank')\n }\n if (props.onClick) props.onClick()\n if (props.setDisabled) {\n props.setDisabled(true)\n const messageToUpdate = webchatState.messagesJSON.filter(\n m => m.id == props.parentId\n )[0]\n const updatedMsg = ButtonsDisabler.getUpdatedMessage(messageToUpdate, {\n autoDisable,\n disabledStyle,\n })\n updateMessage(updatedMsg)\n }\n }\n\n const renderBrowser = () => {\n const buttonStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.buttonStyle)\n const CustomButton = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customButton\n )\n if (CustomButton) {\n return (\n <div onClick={e => handleClick(e)}>\n <CustomButton>{props.children}</CustomButton>\n </div>\n )\n }\n\n const buttonBgColor = hover\n ? getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonHoverBackground,\n COLORS.CONCRETE_WHITE\n )\n : getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonStyleBackground,\n COLORS.SOLID_WHITE\n )\n const buttonTextColor = hover\n ? getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonHoverTextColor,\n COLORS.SOLID_BLACK\n )\n : getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonStyleColor,\n COLORS.SOLID_BLACK\n )\n\n return (\n <StyledButton\n theme={theme}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n onClick={e => handleClick(e)}\n style={{\n ...buttonStyle,\n color: buttonTextColor,\n backgroundColor: buttonBgColor,\n ...(props.disabled && autoDisable && disabledStyle),\n }}\n bottom={props.bottomRadius}\n >\n {props.children}\n </StyledButton>\n )\n }\n\n const renderNode = () => {\n const disabledProps = ButtonsDisabler.constructNodeProps(props)\n if (props.webview) {\n const Webview = props.webview\n let params = ''\n if (props.params) params = params2queryString(props.params)\n return (\n <button url={`/webviews/${Webview.name}?${params}`} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.path) {\n const payload = `__PATH_PAYLOAD__${props.path}`\n return (\n <button payload={payload} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.payload) {\n return (\n <button payload={props.payload} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.url) {\n return (\n <button url={props.url} target={props.target} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.onClick) {\n return null\n }\n throw new Error('Button missing payload, path, webviews, url or onClick')\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nButton.serialize = buttonProps => {\n let payload = buttonProps.payload\n if (buttonProps.path) payload = `__PATH_PAYLOAD__${buttonProps.path}`\n return {\n button: {\n payload,\n url: buttonProps.url,\n target: buttonProps.target,\n webview: buttonProps.webview && String(buttonProps.webview),\n title: buttonProps.children && String(buttonProps.children),\n ...ButtonsDisabler.withDisabledProps(buttonProps),\n },\n }\n}\n"],"file":"button.js"}
1
+ {"version":3,"sources":["../../src/components/button.jsx"],"names":["StyledButton","styled","button","COLORS","SEASHELL_WHITE","props","top","bottom","Button","WebchatContext","webchatState","openWebview","sendPayload","sendInput","getThemeProperty","updateMessage","hover","setHover","theme","ButtonsDisabler","resolveDisabling","autoDisable","disabledStyle","handleClick","event","preventDefault","type","WEBCHAT","CUSTOM_PROPERTIES","buttonMessageType","INPUT","TEXT","webview","params","path","POSTBACK","data","String","children","text","payload","url","window","open","target","onClick","setDisabled","messageToUpdate","messagesJSON","filter","m","id","parentId","updatedMsg","getUpdatedMessage","renderBrowser","buttonStyle","CustomButton","customButton","e","buttonBgColor","buttonHoverBackground","CONCRETE_WHITE","buttonStyleBackground","SOLID_WHITE","buttonTextColor","buttonHoverTextColor","SOLID_BLACK","buttonStyleColor","color","backgroundColor","disabled","bottomRadius","renderNode","disabledProps","constructNodeProps","Webview","name","Error","serialize","buttonProps","title","withDisabledProps"],"mappings":"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","sourcesContent":["import { INPUT, params2queryString } from '@botonic/core'\nimport React, { useContext, useState } from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { WebchatContext } from '../contexts'\nimport { renderComponent } from '../util/react'\nimport { ButtonsDisabler } from './buttons-disabler'\n\nconst StyledButton = styled.button`\n display: flex;\n width: 100%;\n max-height: 80px;\n font-size: 14px;\n text-align: center;\n align-content: center;\n justify-content: center;\n padding: 12px 32px;\n font-family: inherit;\n border: none;\n border: 1px solid ${COLORS.SEASHELL_WHITE};\n cursor: pointer;\n outline: 0;\n border-top-right-radius: ${props => props.top || '0px'};\n border-top-left-radius: ${props => props.top || '0px'};\n border-bottom-right-radius: ${props => props.bottom || '0px'};\n border-bottom-left-radius: ${props => props.bottom || '0px'};\n overflow: hidden;\n`\n\nexport const Button = props => {\n const {\n webchatState,\n openWebview,\n sendPayload,\n sendInput,\n getThemeProperty,\n updateMessage,\n } = useContext(WebchatContext)\n const [hover, setHover] = useState(false)\n const { theme } = webchatState\n const { autoDisable, disabledStyle } = ButtonsDisabler.resolveDisabling(\n webchatState.theme,\n props\n )\n const handleClick = event => {\n event.preventDefault()\n const type = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonMessageType,\n INPUT.TEXT\n )\n if (props.webview) openWebview(props.webview, props.params)\n else if (props.path) {\n type == INPUT.POSTBACK\n ? sendPayload(`__PATH_PAYLOAD__${props.path}`)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n text: String(props.children),\n payload: `__PATH_PAYLOAD__${props.path}`,\n })\n } else if (props.payload) {\n type == INPUT.POSTBACK\n ? sendPayload(props.payload)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n text: String(props.children),\n payload: props.payload,\n })\n } else if (props.url) {\n window.open(props.url, props.target || '_blank')\n }\n if (props.onClick) props.onClick()\n if (props.setDisabled) {\n props.setDisabled(true)\n const messageToUpdate = webchatState.messagesJSON.filter(\n m => m.id == props.parentId\n )[0]\n const updatedMsg = ButtonsDisabler.getUpdatedMessage(messageToUpdate, {\n autoDisable,\n disabledStyle,\n })\n updateMessage(updatedMsg)\n }\n }\n\n const renderBrowser = () => {\n const buttonStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.buttonStyle)\n const CustomButton = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customButton\n )\n if (CustomButton) {\n return (\n <div onClick={e => handleClick(e)}>\n <CustomButton>{props.children}</CustomButton>\n </div>\n )\n }\n\n const buttonBgColor = hover\n ? getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonHoverBackground,\n COLORS.CONCRETE_WHITE\n )\n : getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonStyleBackground,\n COLORS.SOLID_WHITE\n )\n const buttonTextColor = hover\n ? getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonHoverTextColor,\n COLORS.SOLID_BLACK\n )\n : getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.buttonStyleColor,\n COLORS.SOLID_BLACK\n )\n\n return (\n <StyledButton\n theme={theme}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n onClick={e => handleClick(e)}\n style={{\n ...buttonStyle,\n color: buttonTextColor,\n backgroundColor: buttonBgColor,\n ...(props.disabled && autoDisable && disabledStyle),\n }}\n bottom={props.bottomRadius}\n >\n {props.children}\n </StyledButton>\n )\n }\n\n const renderNode = () => {\n const disabledProps = ButtonsDisabler.constructNodeProps(props)\n if (props.webview) {\n const Webview = props.webview\n let params = ''\n if (props.params) params = params2queryString(props.params)\n return (\n <button url={`/webviews/${Webview.name}?${params}`} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.path) {\n const payload = `__PATH_PAYLOAD__${props.path}`\n return (\n <button payload={payload} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.payload) {\n return (\n <button payload={props.payload} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.url) {\n return (\n <button url={props.url} target={props.target} {...disabledProps}>\n {props.children}\n </button>\n )\n } else if (props.onClick) {\n return null\n }\n throw new Error('Button missing payload, path, webviews, url or onClick')\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nButton.serialize = buttonProps => {\n let payload = buttonProps.payload\n if (buttonProps.path) payload = `__PATH_PAYLOAD__${buttonProps.path}`\n return {\n button: {\n payload,\n url: buttonProps.url,\n target: buttonProps.target,\n webview: buttonProps.webview && String(buttonProps.webview),\n title: buttonProps.children && String(buttonProps.children),\n ...ButtonsDisabler.withDisabledProps(buttonProps),\n },\n }\n}\n"],"file":"button.js"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getElementName = getElementName;
7
6
  exports.getComponentTypeName = getComponentTypeName;
7
+ exports.getElementName = getElementName;
8
8
 
9
9
  /**
10
10
  * Get the name of an element (instantiated component)
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,21 +11,32 @@ exports.Image = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
12
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
17
 
14
18
  var _core = require("@botonic/core");
15
19
 
16
- var _react = _interopRequireDefault(require("react"));
20
+ var _react = _interopRequireWildcard(require("react"));
17
21
 
18
22
  var _styledComponents = _interopRequireDefault(require("styled-components"));
19
23
 
20
24
  var _constants = require("../constants");
21
25
 
26
+ var _contexts = require("../contexts");
27
+
22
28
  var _message = require("./message");
23
29
 
24
30
  var _templateObject;
25
31
 
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"])));
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 (_ref) {
37
+ var hasPreviewer = _ref.hasPreviewer;
38
+ return hasPreviewer ? 'pointer' : 'auto';
39
+ });
27
40
 
28
41
  var serialize = function serialize(imageProps) {
29
42
  return {
@@ -33,9 +46,38 @@ var serialize = function serialize(imageProps) {
33
46
 
34
47
  var Image = function Image(props) {
35
48
  var content = props.children;
36
- if ((0, _core.isBrowser)()) content = /*#__PURE__*/_react["default"].createElement(StyledImage, {
37
- src: props.src
38
- });
49
+
50
+ var _useState = (0, _react.useState)(false),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ isPreviewerOpened = _useState2[0],
53
+ setIsPreviewerOpened = _useState2[1];
54
+
55
+ var openPreviewer = function openPreviewer() {
56
+ return setIsPreviewerOpened(true);
57
+ };
58
+
59
+ var closePreviewer = function closePreviewer() {
60
+ return setIsPreviewerOpened(false);
61
+ };
62
+
63
+ var _useContext = (0, _react.useContext)(_contexts.WebchatContext),
64
+ getThemeProperty = _useContext.getThemeProperty;
65
+
66
+ var imagePreviewer = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.imagePreviewer, null);
67
+
68
+ if ((0, _core.isBrowser)()) {
69
+ content = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledImage, {
70
+ src: props.src,
71
+ onClick: openPreviewer,
72
+ hasPreviewer: Boolean(imagePreviewer)
73
+ }), imagePreviewer && imagePreviewer({
74
+ src: props.src,
75
+ isPreviewerOpened: isPreviewerOpened,
76
+ openPreviewer: openPreviewer,
77
+ closePreviewer: closePreviewer
78
+ }));
79
+ }
80
+
39
81
  return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
40
82
  role: _constants.ROLES.IMAGE_MESSAGE,
41
83
  json: serialize(props)
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["../../src/components/image.jsx"],"names":["StyledImage","styled","img","hasPreviewer","serialize","imageProps","image","src","Image","props","content","children","isPreviewerOpened","setIsPreviewerOpened","openPreviewer","closePreviewer","WebchatContext","getThemeProperty","imagePreviewer","WEBCHAT","CUSTOM_PROPERTIES","Boolean","ROLES","IMAGE_MESSAGE","INPUT","IMAGE"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,6BAAOC,GAAV,kMAKL;AAAA,MAAGC,YAAH,QAAGA,YAAH;AAAA,SAAuBA,YAAY,GAAG,SAAH,GAAe,MAAlD;AAAA,CALK,CAAjB;;AAQA,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;;AAEA,kBAAkD,qBAAS,KAAT,CAAlD;AAAA;AAAA,MAAOC,iBAAP;AAAA,MAA0BC,oBAA1B;;AACA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WAAMD,oBAAoB,CAAC,IAAD,CAA1B;AAAA,GAAtB;;AACA,MAAME,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WAAMF,oBAAoB,CAAC,KAAD,CAA1B;AAAA,GAAvB;;AAEA,oBAA6B,uBAAWG,wBAAX,CAA7B;AAAA,MAAQC,gBAAR,eAAQA,gBAAR;;AACA,MAAMC,cAAc,GAAGD,gBAAgB,CACrCE,mBAAQC,iBAAR,CAA0BF,cADW,EAErC,IAFqC,CAAvC;;AAIA,MAAI,sBAAJ,EAAiB;AACfR,IAAAA,OAAO,gBACL,+EACE,gCAAC,WAAD;AACE,MAAA,GAAG,EAAED,KAAK,CAACF,GADb;AAEE,MAAA,OAAO,EAAEO,aAFX;AAGE,MAAA,YAAY,EAAEO,OAAO,CAACH,cAAD;AAHvB,MADF,EAMGA,cAAc,IACbA,cAAc,CAAC;AACbX,MAAAA,GAAG,EAAEE,KAAK,CAACF,GADE;AAEbK,MAAAA,iBAAiB,EAAjBA,iBAFa;AAGbE,MAAAA,aAAa,EAAbA,aAHa;AAIbC,MAAAA,cAAc,EAAdA;AAJa,KAAD,CAPlB,CADF;AAgBD;;AACD,sBACE,gCAAC,gBAAD;AACE,IAAA,IAAI,EAAEO,iBAAMC,aADd;AAEE,IAAA,IAAI,EAAEnB,SAAS,CAACK,KAAD;AAFjB,KAGMA,KAHN;AAIE,IAAA,IAAI,EAAEe,YAAMC;AAJd,MAMGf,OANH,CADF;AAUD,CAxCM;;;AA0CPF,KAAK,CAACJ,SAAN,GAAkBA,SAAlB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useState } from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES, WEBCHAT } from '../constants'\nimport { WebchatContext } from '../contexts'\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: ${({ hasPreviewer }) => (hasPreviewer ? 'pointer' : 'auto')};\n`\n\nconst serialize = imageProps => {\n return { image: imageProps.src }\n}\n\nexport const Image = props => {\n let content = props.children\n\n const [isPreviewerOpened, setIsPreviewerOpened] = useState(false)\n const openPreviewer = () => setIsPreviewerOpened(true)\n const closePreviewer = () => setIsPreviewerOpened(false)\n\n const { getThemeProperty } = useContext(WebchatContext)\n const imagePreviewer = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.imagePreviewer,\n null\n )\n if (isBrowser()) {\n content = (\n <>\n <StyledImage\n src={props.src}\n onClick={openPreviewer}\n hasPreviewer={Boolean(imagePreviewer)}\n />\n {imagePreviewer &&\n imagePreviewer({\n src: props.src,\n isPreviewerOpened,\n openPreviewer,\n closePreviewer,\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"}
@@ -42,12 +42,6 @@ Object.defineProperty(exports, "Carousel", {
42
42
  return _carousel.Carousel;
43
43
  }
44
44
  });
45
- Object.defineProperty(exports, "customMessage", {
46
- enumerable: true,
47
- get: function get() {
48
- return _customMessage.customMessage;
49
- }
50
- });
51
45
  Object.defineProperty(exports, "Document", {
52
46
  enumerable: true,
53
47
  get: function get() {
@@ -138,6 +132,12 @@ Object.defineProperty(exports, "WhatsappTemplate", {
138
132
  return _whatsappTemplate.WhatsappTemplate;
139
133
  }
140
134
  });
135
+ Object.defineProperty(exports, "customMessage", {
136
+ enumerable: true,
137
+ get: function get() {
138
+ return _customMessage.customMessage;
139
+ }
140
+ });
141
141
 
142
142
  var _audio = require("./audio");
143
143
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getDefaultMarkdownStyle = exports.getMarkdownStyle = exports.toMarkdownChildren = exports.serializeMarkdown = exports.renderLinks = exports.renderMarkdown = exports.ESCAPED_LINE_BREAK = void 0;
8
+ exports.toMarkdownChildren = exports.serializeMarkdown = exports.renderMarkdown = exports.renderLinks = exports.getMarkdownStyle = exports.getDefaultMarkdownStyle = exports.ESCAPED_LINE_BREAK = void 0;
9
9
 
10
10
  var _markdownIt = _interopRequireDefault(require("markdown-it"));
11
11
 
@@ -3,18 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isMultichannelButton = isMultichannelButton;
7
- exports.isMultichannelReply = isMultichannelReply;
8
- exports.isButton = isButton;
9
- exports.isNodeKind = isNodeKind;
10
- exports.elementHasUrl = elementHasUrl;
6
+ exports.buttonTypes = exports.WHATSAPP_MAX_BUTTON_CHARS = exports.WHATSAPP_MAX_BUTTONS = exports.MULTICHANNEL_WHATSAPP_PROPS = exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = void 0;
11
7
  exports.elementHasPostback = elementHasPostback;
8
+ exports.elementHasUrl = elementHasUrl;
12
9
  exports.elementHasWebview = elementHasWebview;
13
10
  exports.getButtonType = getButtonType;
14
11
  exports.getFilteredElements = getFilteredElements;
15
12
  exports.getMultichannelButtons = getMultichannelButtons;
16
13
  exports.getMultichannelReplies = getMultichannelReplies;
17
- exports.isFacebook = exports.isWhatsapp = exports.buttonTypes = exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = exports.WHATSAPP_MAX_BUTTON_CHARS = exports.WHATSAPP_MAX_BUTTONS = exports.MULTICHANNEL_WHATSAPP_PROPS = void 0;
14
+ exports.isButton = isButton;
15
+ exports.isFacebook = void 0;
16
+ exports.isMultichannelButton = isMultichannelButton;
17
+ exports.isMultichannelReply = isMultichannelReply;
18
+ exports.isNodeKind = isNodeKind;
19
+ exports.isWhatsapp = void 0;
18
20
 
19
21
  var _core = require("@botonic/core");
20
22
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/multichannel/multichannel-utils.js"],"names":["MULTICHANNEL_WHATSAPP_PROPS","markdown","WHATSAPP_MAX_BUTTONS","WHATSAPP_MAX_BUTTON_CHARS","DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR","isMultichannelButton","node","isNodeKind","isMultichannelReply","isButton","kind","type","name","elementHasUrl","element","props","url","elementHasPostback","payload","path","elementHasWebview","webview","buttonTypes","POSTBACK","URL","WEBVIEW","getButtonType","multichannelButton","undefined","getFilteredElements","filter","elements","n","push","getMultichannelButtons","getMultichannelReplies","isWhatsapp","context","session","user","provider","Providers","Messaging","WHATSAPP","isFacebook","FACEBOOK"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,2BAA2B,GAAG;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAApC;;AAEA,IAAMC,oBAAoB,GAAG,CAA7B;;AACA,IAAMC,yBAAyB,GAAG,EAAlC;;AACA,IAAMC,qCAAqC,GAAG,eAA9C;;;AAEA,SAASC,oBAAT,CAA8BC,IAA9B,EAAoC;AACzC,SAAOC,UAAU,CAACD,IAAD,EAAO,oBAAP,CAAjB;AACD;;AAEM,SAASE,mBAAT,CAA6BF,IAA7B,EAAmC;AACxC,SAAOC,UAAU,CAACD,IAAD,EAAO,mBAAP,CAAjB;AACD;;AAEM,SAASG,QAAT,CAAkBH,IAAlB,EAAwB;AAC7B,SAAOC,UAAU,CAACD,IAAD,EAAO,QAAP,CAAjB;AACD;;AAEM,SAASC,UAAT,CAAoBD,IAApB,EAA0BI,IAA1B,EAAgC;AACrC,SAAOJ,IAAI,CAACK,IAAL,IAAaL,IAAI,CAACK,IAAL,CAAUC,IAAV,IAAkBF,IAAtC;AACD;;AACM,SAASG,aAAT,CAAuBC,OAAvB,EAAgC;AACrC,SAAOA,OAAO,CAACC,KAAR,IAAiBD,OAAO,CAACC,KAAR,CAAcC,GAAtC;AACD;;AACM,SAASC,kBAAT,CAA4BH,OAA5B,EAAqC;AAC1C,SACGA,OAAO,CAACC,KAAR,IAAiBD,OAAO,CAACC,KAAR,CAAcG,OAAhC,IACCJ,OAAO,CAACC,KAAR,IAAiBD,OAAO,CAACC,KAAR,CAAcI,IAFlC;AAID;;AACM,SAASC,iBAAT,CAA2BN,OAA3B,EAAoC;AACzC,SAAOA,OAAO,CAACC,KAAR,IAAiBD,OAAO,CAACC,KAAR,CAAcM,OAAtC;AACD;;AAEM,IAAMC,WAAW,GAAG;AACzBC,EAAAA,QAAQ,EAAE,UADe;AAEzBC,EAAAA,GAAG,EAAE,KAFoB;AAGzBC,EAAAA,OAAO,EAAE;AAHgB,CAApB;;;AAMA,SAASC,aAAT,CAAuBC,kBAAvB,EAA2C;AAChD,MAAId,aAAa,CAACc,kBAAD,CAAjB,EAAuC,OAAOL,WAAW,CAACE,GAAnB;AACvC,MAAIP,kBAAkB,CAACU,kBAAD,CAAtB,EAA4C,OAAOL,WAAW,CAACC,QAAnB;AAC5C,MAAIH,iBAAiB,CAACO,kBAAD,CAArB,EAA2C,OAAOL,WAAW,CAACG,OAAnB;AAE3C,SAAOG,SAAP;AACD;;AAEM,SAASC,mBAAT,CAA6BvB,IAA7B,EAAmCwB,MAAnC,EAA2C;AAChD,MAAMC,QAAQ,GAAG,EAAjB;;AADgD,6CAEhCzB,IAFgC;AAAA;;AAAA;AAEhD,wDAAsB;AAAA,UAAX0B,CAAW;AACpB,UAAIF,MAAM,CAACE,CAAD,CAAV,EAAeD,QAAQ,CAACE,IAAT,CAAcD,CAAd;AAChB;AAJ+C;AAAA;AAAA;AAAA;AAAA;;AAKhD,SAAOD,QAAP;AACD;;AAEM,SAASG,sBAAT,CAAgC5B,IAAhC,EAAsC;AAC3C,SAAOuB,mBAAmB,CAACvB,IAAD,EAAOD,oBAAP,CAA1B;AACD;;AAEM,SAAS8B,sBAAT,CAAgC7B,IAAhC,EAAsC;AAC3C,SAAOuB,mBAAmB,CAACvB,IAAD,EAAOE,mBAAP,CAA1B;AACD;;AAEM,IAAM4B,UAAU,GAAG,SAAbA,UAAa,CAAAC,OAAO;AAAA,SAC/BA,OAAO,CAACC,OAAR,IACAD,OAAO,CAACC,OAAR,CAAgBC,IADhB,IAEAF,OAAO,CAACC,OAAR,CAAgBC,IAAhB,CAAqBC,QAArB,IAAiCC,gBAAUC,SAAV,CAAoBC,QAHtB;AAAA,CAA1B;;;;AAKA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAP,OAAO;AAAA,SAC/BA,OAAO,CAACC,OAAR,IACAD,OAAO,CAACC,OAAR,CAAgBC,IADhB,IAEAF,OAAO,CAACC,OAAR,CAAgBC,IAAhB,CAAqBC,QAArB,IAAiCC,gBAAUC,SAAV,CAAoBG,QAHtB;AAAA,CAA1B","sourcesContent":["import { Providers } from '@botonic/core'\n\n/**\n *\n * Whatsapp does not support Markdown\n * (its markup syntax is different)\n */\nexport const MULTICHANNEL_WHATSAPP_PROPS = { markdown: false }\n\nexport const WHATSAPP_MAX_BUTTONS = 3\nexport const WHATSAPP_MAX_BUTTON_CHARS = 20\nexport const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:'\n\nexport function isMultichannelButton(node) {\n return isNodeKind(node, 'MultichannelButton')\n}\n\nexport function isMultichannelReply(node) {\n return isNodeKind(node, 'MultichannelReply')\n}\n\nexport function isButton(node) {\n return isNodeKind(node, 'Button')\n}\n\nexport function isNodeKind(node, kind) {\n return node.type && node.type.name == kind\n}\nexport function elementHasUrl(element) {\n return element.props && element.props.url\n}\nexport function elementHasPostback(element) {\n return (\n (element.props && element.props.payload) ||\n (element.props && element.props.path)\n )\n}\nexport function elementHasWebview(element) {\n return element.props && element.props.webview\n}\n\nexport const buttonTypes = {\n POSTBACK: 'postback',\n URL: 'url',\n WEBVIEW: 'webview',\n}\n\nexport function getButtonType(multichannelButton) {\n if (elementHasUrl(multichannelButton)) return buttonTypes.URL\n if (elementHasPostback(multichannelButton)) return buttonTypes.POSTBACK\n if (elementHasWebview(multichannelButton)) return buttonTypes.WEBVIEW\n\n return undefined\n}\n\nexport function getFilteredElements(node, filter) {\n const elements = []\n for (const n of node) {\n if (filter(n)) elements.push(n)\n }\n return elements\n}\n\nexport function getMultichannelButtons(node) {\n return getFilteredElements(node, isMultichannelButton)\n}\n\nexport function getMultichannelReplies(node) {\n return getFilteredElements(node, isMultichannelReply)\n}\n\nexport const isWhatsapp = context =>\n context.session &&\n context.session.user &&\n context.session.user.provider == Providers.Messaging.WHATSAPP\n\nexport const isFacebook = context =>\n context.session &&\n context.session.user &&\n context.session.user.provider == Providers.Messaging.FACEBOOK\n"],"file":"multichannel-utils.js"}
1
+ {"version":3,"sources":["../../../src/components/multichannel/multichannel-utils.js"],"names":["MULTICHANNEL_WHATSAPP_PROPS","markdown","WHATSAPP_MAX_BUTTONS","WHATSAPP_MAX_BUTTON_CHARS","DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR","isMultichannelButton","node","isNodeKind","isMultichannelReply","isButton","kind","type","name","elementHasUrl","element","props","url","elementHasPostback","payload","path","elementHasWebview","webview","buttonTypes","POSTBACK","URL","WEBVIEW","getButtonType","multichannelButton","undefined","getFilteredElements","filter","elements","n","push","getMultichannelButtons","getMultichannelReplies","isWhatsapp","context","session","user","provider","Providers","Messaging","WHATSAPP","isFacebook","FACEBOOK"],"mappings":"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","sourcesContent":["import { Providers } from '@botonic/core'\n\n/**\n *\n * Whatsapp does not support Markdown\n * (its markup syntax is different)\n */\nexport const MULTICHANNEL_WHATSAPP_PROPS = { markdown: false }\n\nexport const WHATSAPP_MAX_BUTTONS = 3\nexport const WHATSAPP_MAX_BUTTON_CHARS = 20\nexport const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:'\n\nexport function isMultichannelButton(node) {\n return isNodeKind(node, 'MultichannelButton')\n}\n\nexport function isMultichannelReply(node) {\n return isNodeKind(node, 'MultichannelReply')\n}\n\nexport function isButton(node) {\n return isNodeKind(node, 'Button')\n}\n\nexport function isNodeKind(node, kind) {\n return node.type && node.type.name == kind\n}\nexport function elementHasUrl(element) {\n return element.props && element.props.url\n}\nexport function elementHasPostback(element) {\n return (\n (element.props && element.props.payload) ||\n (element.props && element.props.path)\n )\n}\nexport function elementHasWebview(element) {\n return element.props && element.props.webview\n}\n\nexport const buttonTypes = {\n POSTBACK: 'postback',\n URL: 'url',\n WEBVIEW: 'webview',\n}\n\nexport function getButtonType(multichannelButton) {\n if (elementHasUrl(multichannelButton)) return buttonTypes.URL\n if (elementHasPostback(multichannelButton)) return buttonTypes.POSTBACK\n if (elementHasWebview(multichannelButton)) return buttonTypes.WEBVIEW\n\n return undefined\n}\n\nexport function getFilteredElements(node, filter) {\n const elements = []\n for (const n of node) {\n if (filter(n)) elements.push(n)\n }\n return elements\n}\n\nexport function getMultichannelButtons(node) {\n return getFilteredElements(node, isMultichannelButton)\n}\n\nexport function getMultichannelReplies(node) {\n return getFilteredElements(node, isMultichannelReply)\n}\n\nexport const isWhatsapp = context =>\n context.session &&\n context.session.user &&\n context.session.user.provider == Providers.Messaging.WHATSAPP\n\nexport const isFacebook = context =>\n context.session &&\n context.session.user &&\n context.session.user.provider == Providers.Messaging.FACEBOOK\n"],"file":"multichannel-utils.js"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.MessageTimestamp = exports.resolveMessageTimestamps = void 0;
8
+ exports.resolveMessageTimestamps = exports.MessageTimestamp = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
package/lib/constants.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.COMPONENT_TYPE = exports.ROLES = exports.MAX_ALLOWED_SIZE_MB = exports.MIME_WHITELIST = exports.WEBCHAT = exports.COLORS = exports.SENDERS = void 0;
8
+ exports.WEBCHAT = exports.SENDERS = exports.ROLES = exports.MIME_WHITELIST = exports.MAX_ALLOWED_SIZE_MB = exports.COMPONENT_TYPE = exports.COLORS = void 0;
9
9
 
10
10
  var _botonic_react_logo100x = _interopRequireDefault(require("./assets/botonic_react_logo100x100.png"));
11
11
 
@@ -74,6 +74,7 @@ var WEBCHAT = {
74
74
  enableAnimations: 'animations.enable',
75
75
  markdownStyle: 'markdownStyle',
76
76
  scrollbar: 'scrollbar',
77
+ imagePreviewer: 'imagePreviewer',
77
78
  // Mobile
78
79
  mobileBreakpoint: 'mobileBreakpoint',
79
80
  mobileStyle: 'mobileStyle',
@@ -1 +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"}
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","imagePreviewer","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 imagePreviewer: 'imagePreviewer',\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"}
package/lib/dev-app.js CHANGED
@@ -44,7 +44,7 @@ var _webchatDev = require("./webchat/webchat-dev");
44
44
  var _webchatApp = require("./webchat-app");
45
45
 
46
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"];
47
+ _excluded2 = ["theme", "persistentMenu", "coverComponent", "blockInputs", "enableEmojiPicker", "enableAttachments", "enableUserInput", "enableAnimations", "storage", "storageKey", "onInit", "onOpen", "onClose", "onMessage", "hostId"];
48
48
 
49
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
50
 
@@ -105,10 +105,10 @@ var DevApp = /*#__PURE__*/function (_WebchatApp) {
105
105
 
106
106
  (0, _createClass2["default"])(DevApp, [{
107
107
  key: "getComponent",
108
- value: function getComponent() {
108
+ value: function getComponent(host) {
109
109
  var _this2 = this;
110
110
 
111
- var optionsAtRuntime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
111
+ var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
112
112
  var _optionsAtRuntime$the = optionsAtRuntime.theme,
113
113
  theme = _optionsAtRuntime$the === void 0 ? {} : _optionsAtRuntime$the,
114
114
  persistentMenu = optionsAtRuntime.persistentMenu,
@@ -124,6 +124,7 @@ var DevApp = /*#__PURE__*/function (_WebchatApp) {
124
124
  onOpen = optionsAtRuntime.onOpen,
125
125
  onClose = optionsAtRuntime.onClose,
126
126
  onMessage = optionsAtRuntime.onMessage,
127
+ hostId = optionsAtRuntime.hostId,
127
128
  webchatOptions = (0, _objectWithoutProperties2["default"])(optionsAtRuntime, _excluded2);
128
129
  theme = (0, _lodash["default"])(this.theme, theme);
129
130
  persistentMenu = persistentMenu || this.persistentMenu;
@@ -139,6 +140,8 @@ var DevApp = /*#__PURE__*/function (_WebchatApp) {
139
140
  this.onOpen = onOpen || this.onOpen;
140
141
  this.onClose = onClose || this.onClose;
141
142
  this.onMessage = onMessage || this.onMessage;
143
+ this.hostId = hostId || this.hostId;
144
+ this.createRootElement(host);
142
145
  return /*#__PURE__*/_react["default"].createElement(_webchatDev.WebchatDev, (0, _extends2["default"])({}, webchatOptions, {
143
146
  ref: this.webchatRef,
144
147
  host: this.host,
@@ -180,9 +183,7 @@ var DevApp = /*#__PURE__*/function (_WebchatApp) {
180
183
 
181
184
  var optionsAtRuntime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
182
185
  (0, _dom.onDOMLoaded)(function () {
183
- _this3.createRootElement(dest);
184
-
185
- (0, _reactDom.render)(_this3.getComponent(optionsAtRuntime), _this3.getReactMountNode(dest));
186
+ (0, _reactDom.render)(_this3.getComponent(dest, optionsAtRuntime), _this3.getReactMountNode(dest));
186
187
  });
187
188
  }
188
189
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev-app.jsx"],"names":["DevApp","theme","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","shadowDOM","hostId","storage","storageKey","onInit","onOpen","onClose","onMessage","botOptions","bot","ReactBot","optionsAtRuntime","webchatOptions","webchatRef","host","stringId","session","getString","locale","setLocale","onInitWebchat","onOpenWebchat","onCloseWebchat","onUserInput","dest","createRootElement","getComponent","getReactMountNode","input","lastRoutePath","from","SENDERS","user","message","resp","response","map","r","current","addBotResponse","WebchatApp"],"mappings":"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","sourcesContent":["import merge from 'lodash.merge'\nimport React from 'react'\nimport { render } from 'react-dom'\n\nimport { SENDERS } from './constants'\nimport { ReactBot } from './react-bot'\nimport { onDOMLoaded } from './util/dom'\nimport { WebchatDev } from './webchat/webchat-dev'\nimport { WebchatApp } from './webchat-app'\n\nexport class DevApp extends WebchatApp {\n constructor({\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n ...botOptions\n }) {\n super({\n theme,\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n })\n this.bot = new ReactBot({\n ...botOptions,\n })\n }\n\n getComponent(optionsAtRuntime = {}) {\n let {\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n ...webchatOptions\n } = optionsAtRuntime\n theme = merge(this.theme, theme)\n persistentMenu = persistentMenu || this.persistentMenu\n coverComponent = coverComponent || this.coverComponent\n blockInputs = blockInputs || this.blockInputs\n enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker\n enableAttachments = enableAttachments || this.enableAttachments\n enableUserInput = enableUserInput || this.enableUserInput\n enableAnimations = enableAnimations || this.enableAnimations\n storage = storage || this.storage\n storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n return (\n <WebchatDev\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme}\n persistentMenu={persistentMenu}\n coverComponent={coverComponent}\n blockInputs={blockInputs}\n enableEmojiPicker={enableEmojiPicker}\n enableAttachments={enableAttachments}\n enableUserInput={enableUserInput}\n enableAnimations={enableAnimations}\n storage={storage}\n storageKey={storageKey}\n getString={(stringId, session) => this.bot.getString(stringId, session)}\n setLocale={(locale, session) => this.bot.setLocale(locale, session)}\n onInit={(...args) => this.onInitWebchat(...args)}\n onOpen={(...args) => this.onOpenWebchat(...args)}\n onClose={(...args) => this.onCloseWebchat(...args)}\n onUserInput={(...args) => this.onUserInput(...args)}\n />\n )\n }\n\n render(dest, optionsAtRuntime = {}) {\n onDOMLoaded(() => {\n this.createRootElement(dest)\n render(this.getComponent(optionsAtRuntime), this.getReactMountNode(dest))\n })\n }\n\n async onUserInput({ input, session, lastRoutePath }) {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.user, message: input })\n const resp = await this.bot.input({ input, session, lastRoutePath })\n this.onMessage &&\n resp.response.map(r =>\n this.onMessage(this, { from: SENDERS.bot, message: r })\n )\n this.webchatRef.current.addBotResponse(resp)\n }\n}\n"],"file":"dev-app.js"}
1
+ {"version":3,"sources":["../src/dev-app.jsx"],"names":["DevApp","theme","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","shadowDOM","hostId","storage","storageKey","onInit","onOpen","onClose","onMessage","botOptions","bot","ReactBot","host","optionsAtRuntime","webchatOptions","createRootElement","webchatRef","stringId","session","getString","locale","setLocale","onInitWebchat","onOpenWebchat","onCloseWebchat","onUserInput","dest","getComponent","getReactMountNode","input","lastRoutePath","from","SENDERS","user","message","resp","response","map","r","current","addBotResponse","WebchatApp"],"mappings":"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","sourcesContent":["import merge from 'lodash.merge'\nimport React from 'react'\nimport { render } from 'react-dom'\n\nimport { SENDERS } from './constants'\nimport { ReactBot } from './react-bot'\nimport { onDOMLoaded } from './util/dom'\nimport { WebchatDev } from './webchat/webchat-dev'\nimport { WebchatApp } from './webchat-app'\n\nexport class DevApp extends WebchatApp {\n constructor({\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n ...botOptions\n }) {\n super({\n theme,\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n shadowDOM,\n hostId,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n })\n this.bot = new ReactBot({\n ...botOptions,\n })\n }\n\n getComponent(host, optionsAtRuntime = {}) {\n let {\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n hostId,\n ...webchatOptions\n } = optionsAtRuntime\n theme = merge(this.theme, theme)\n persistentMenu = persistentMenu || this.persistentMenu\n coverComponent = coverComponent || this.coverComponent\n blockInputs = blockInputs || this.blockInputs\n enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker\n enableAttachments = enableAttachments || this.enableAttachments\n enableUserInput = enableUserInput || this.enableUserInput\n enableAnimations = enableAnimations || this.enableAnimations\n storage = storage || this.storage\n storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.hostId = hostId || this.hostId\n this.createRootElement(host)\n return (\n <WebchatDev\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme}\n persistentMenu={persistentMenu}\n coverComponent={coverComponent}\n blockInputs={blockInputs}\n enableEmojiPicker={enableEmojiPicker}\n enableAttachments={enableAttachments}\n enableUserInput={enableUserInput}\n enableAnimations={enableAnimations}\n storage={storage}\n storageKey={storageKey}\n getString={(stringId, session) => this.bot.getString(stringId, session)}\n setLocale={(locale, session) => this.bot.setLocale(locale, session)}\n onInit={(...args) => this.onInitWebchat(...args)}\n onOpen={(...args) => this.onOpenWebchat(...args)}\n onClose={(...args) => this.onCloseWebchat(...args)}\n onUserInput={(...args) => this.onUserInput(...args)}\n />\n )\n }\n\n render(dest, optionsAtRuntime = {}) {\n onDOMLoaded(() => {\n render(\n this.getComponent(dest, optionsAtRuntime),\n this.getReactMountNode(dest)\n )\n })\n }\n\n async onUserInput({ input, session, lastRoutePath }) {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.user, message: input })\n const resp = await this.bot.input({ input, session, lastRoutePath })\n this.onMessage &&\n resp.response.map(r =>\n this.onMessage(this, { from: SENDERS.bot, message: r })\n )\n this.webchatRef.current.addBotResponse(resp)\n }\n}\n"],"file":"dev-app.js"}
package/lib/index.d.ts CHANGED
@@ -176,6 +176,7 @@ export class WebchatApp {
176
176
  close(): void
177
177
  closeCoverComponent(): void
178
178
  getComponent(
179
+ host: HTMLElement,
179
180
  optionsAtRuntime?: WebchatAppArgs
180
181
  ): React.ForwardRefExoticComponent<any>
181
182
  getLastMessageUpdate(): string
@@ -203,6 +204,8 @@ export class WebchatApp {
203
204
  updateLastMessageDate(date: string): void
204
205
  updateUser(user: core.SessionUser): void
205
206
  updateWebchatSettings(settings: WebchatSettingsProps): void
207
+ renderCustomComponent(customComponent: React.ReactNode): void
208
+ unmountCustomComponent(): void
206
209
  }
207
210
 
208
211
  export interface WebchatContextProps {
package/lib/index.js CHANGED
@@ -30,46 +30,46 @@ Object.defineProperty(exports, "BotonicOutputTester", {
30
30
  return _botonicTester.BotonicOutputTester;
31
31
  }
32
32
  });
33
- Object.defineProperty(exports, "RequestContext", {
33
+ Object.defineProperty(exports, "DevApp", {
34
34
  enumerable: true,
35
35
  get: function get() {
36
- return _contexts.RequestContext;
36
+ return _devApp.DevApp;
37
37
  }
38
38
  });
39
- Object.defineProperty(exports, "WebchatContext", {
39
+ Object.defineProperty(exports, "NodeApp", {
40
40
  enumerable: true,
41
41
  get: function get() {
42
- return _contexts.WebchatContext;
42
+ return _nodeApp.NodeApp;
43
43
  }
44
44
  });
45
- Object.defineProperty(exports, "DevApp", {
45
+ Object.defineProperty(exports, "RequestContext", {
46
46
  enumerable: true,
47
47
  get: function get() {
48
- return _devApp.DevApp;
48
+ return _contexts.RequestContext;
49
49
  }
50
50
  });
51
- Object.defineProperty(exports, "msgsToBotonic", {
51
+ Object.defineProperty(exports, "Webchat", {
52
52
  enumerable: true,
53
53
  get: function get() {
54
- return _msgToBotonic.msgsToBotonic;
54
+ return _index.Webchat;
55
55
  }
56
56
  });
57
- Object.defineProperty(exports, "msgToBotonic", {
57
+ Object.defineProperty(exports, "WebchatApp", {
58
58
  enumerable: true,
59
59
  get: function get() {
60
- return _msgToBotonic.msgToBotonic;
60
+ return _webchatApp.WebchatApp;
61
61
  }
62
62
  });
63
- Object.defineProperty(exports, "NodeApp", {
63
+ Object.defineProperty(exports, "WebchatContext", {
64
64
  enumerable: true,
65
65
  get: function get() {
66
- return _nodeApp.NodeApp;
66
+ return _contexts.WebchatContext;
67
67
  }
68
68
  });
69
- Object.defineProperty(exports, "staticAsset", {
69
+ Object.defineProperty(exports, "WebviewApp", {
70
70
  enumerable: true,
71
71
  get: function get() {
72
- return _environment.staticAsset;
72
+ return _webview.WebviewApp;
73
73
  }
74
74
  });
75
75
  Object.defineProperty(exports, "getBotonicApp", {
@@ -78,22 +78,22 @@ Object.defineProperty(exports, "getBotonicApp", {
78
78
  return _index.getBotonicApp;
79
79
  }
80
80
  });
81
- Object.defineProperty(exports, "Webchat", {
81
+ Object.defineProperty(exports, "msgToBotonic", {
82
82
  enumerable: true,
83
83
  get: function get() {
84
- return _index.Webchat;
84
+ return _msgToBotonic.msgToBotonic;
85
85
  }
86
86
  });
87
- Object.defineProperty(exports, "WebchatApp", {
87
+ Object.defineProperty(exports, "msgsToBotonic", {
88
88
  enumerable: true,
89
89
  get: function get() {
90
- return _webchatApp.WebchatApp;
90
+ return _msgToBotonic.msgsToBotonic;
91
91
  }
92
92
  });
93
- Object.defineProperty(exports, "WebviewApp", {
93
+ Object.defineProperty(exports, "staticAsset", {
94
94
  enumerable: true,
95
95
  get: function get() {
96
- return _webview.WebviewApp;
96
+ return _environment.staticAsset;
97
97
  }
98
98
  });
99
99
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getFullMimeWhitelist = exports.getMediaType = exports.isAllowedSize = exports.readDataURL = exports.isMedia = exports.INPUT_MEDIA_TYPES = exports.isButtonMessage = exports.isCustom = exports.isCarousel = exports.isContact = exports.isLocation = exports.isDocument = exports.isVideo = exports.isImage = exports.isAudio = exports.isPostback = exports.isText = exports.isOfType = void 0;
8
+ exports.readDataURL = exports.isVideo = exports.isText = exports.isPostback = exports.isOfType = exports.isMedia = exports.isLocation = exports.isImage = exports.isDocument = exports.isCustom = exports.isContact = exports.isCarousel = exports.isButtonMessage = exports.isAudio = exports.isAllowedSize = exports.getMediaType = exports.getFullMimeWhitelist = exports.INPUT_MEDIA_TYPES = void 0;
9
9
 
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11