@botonic/react 0.22.0-alpha.0 → 0.22.0-alpha.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.
- package/lib/cjs/app.d.ts +2 -0
- package/lib/cjs/app.js +10 -0
- package/lib/cjs/app.js.map +1 -0
- package/lib/cjs/botonic-tester.d.ts +18 -0
- package/lib/cjs/botonic-tester.js +70 -0
- package/lib/cjs/botonic-tester.js.map +1 -0
- package/lib/cjs/components/audio.d.ts +8 -0
- package/lib/cjs/components/audio.js +27 -0
- package/lib/cjs/components/audio.js.map +1 -0
- package/lib/cjs/components/button.d.ts +15 -0
- package/lib/cjs/components/button.js +156 -0
- package/lib/cjs/components/button.js.map +1 -0
- package/lib/cjs/components/buttons-disabler.d.ts +24 -0
- package/lib/cjs/components/buttons-disabler.js +88 -0
- package/lib/cjs/components/buttons-disabler.js.map +1 -0
- package/lib/cjs/components/carousel.d.ts +10 -0
- package/lib/cjs/components/carousel.js +120 -0
- package/lib/cjs/components/carousel.js.map +1 -0
- package/lib/cjs/components/components.d.ts +12 -0
- package/lib/{components → cjs/components}/components.js +6 -11
- package/lib/cjs/components/components.js.map +1 -0
- package/lib/cjs/components/custom-message.d.ts +43 -0
- package/lib/cjs/components/custom-message.js +65 -0
- package/lib/cjs/components/custom-message.js.map +1 -0
- package/lib/cjs/components/document.d.ts +8 -0
- package/lib/cjs/components/document.js +50 -0
- package/lib/cjs/components/document.js.map +1 -0
- package/lib/cjs/components/element.d.ts +4 -0
- package/lib/cjs/components/element.js +55 -0
- package/lib/cjs/components/element.js.map +1 -0
- package/lib/cjs/components/handoff.d.ts +1 -0
- package/lib/cjs/components/handoff.js +58 -0
- package/lib/cjs/components/handoff.js.map +1 -0
- package/lib/cjs/components/image.d.ts +8 -0
- package/lib/cjs/components/image.js +42 -0
- package/lib/cjs/components/image.js.map +1 -0
- package/lib/cjs/components/index.d.ts +20 -0
- package/lib/cjs/components/index.js +44 -0
- package/lib/cjs/components/index.js.map +1 -0
- package/lib/cjs/components/location.d.ts +11 -0
- package/lib/cjs/components/location.js +38 -0
- package/lib/cjs/components/location.js.map +1 -0
- package/lib/cjs/components/markdown.d.ts +7 -0
- package/lib/cjs/components/markdown.js +162 -0
- package/lib/cjs/components/markdown.js.map +1 -0
- package/lib/cjs/components/message-template.d.ts +1 -0
- package/lib/cjs/components/message-template.js +15 -0
- package/lib/cjs/components/message-template.js.map +1 -0
- package/lib/cjs/components/message.d.ts +1 -0
- package/lib/cjs/components/message.js +206 -0
- package/lib/cjs/components/message.js.map +1 -0
- package/lib/cjs/components/multichannel/facebook/facebook.d.ts +17 -0
- package/lib/cjs/components/multichannel/facebook/facebook.js +47 -0
- package/lib/cjs/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/cjs/components/multichannel/index.d.ts +6 -0
- package/lib/cjs/components/multichannel/index.js +14 -0
- package/lib/cjs/components/multichannel/index.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-button.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-button.js +77 -0
- package/lib/cjs/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.js +95 -0
- package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-context.d.ts +11 -0
- package/lib/cjs/components/multichannel/multichannel-context.js +16 -0
- package/lib/cjs/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-reply.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-reply.js +24 -0
- package/lib/cjs/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-text.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel-text.js +147 -0
- package/lib/cjs/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel-utils.d.ts +24 -0
- package/lib/cjs/components/multichannel/multichannel-utils.js +83 -0
- package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/cjs/components/multichannel/multichannel.d.ts +1 -0
- package/lib/cjs/components/multichannel/multichannel.js +72 -0
- package/lib/cjs/components/multichannel/multichannel.js.map +1 -0
- package/lib/cjs/components/pic.d.ts +6 -0
- package/lib/cjs/components/pic.js +29 -0
- package/lib/cjs/components/pic.js.map +1 -0
- package/lib/cjs/components/raw.d.ts +9 -0
- package/lib/cjs/components/raw.js +53 -0
- package/lib/cjs/components/raw.js.map +1 -0
- package/lib/cjs/components/reply.d.ts +9 -0
- package/lib/cjs/components/reply.js +57 -0
- package/lib/cjs/components/reply.js.map +1 -0
- package/lib/cjs/components/share-button.d.ts +1 -0
- package/lib/cjs/components/share-button.js +15 -0
- package/lib/cjs/components/share-button.js.map +1 -0
- package/lib/cjs/components/subtitle.d.ts +6 -0
- package/lib/cjs/components/subtitle.js +25 -0
- package/lib/cjs/components/subtitle.js.map +1 -0
- package/lib/cjs/components/text.d.ts +8 -0
- package/lib/cjs/components/text.js +50 -0
- package/lib/cjs/components/text.js.map +1 -0
- package/lib/cjs/components/timestamps.d.ts +10 -0
- package/lib/cjs/components/timestamps.js +54 -0
- package/lib/cjs/components/timestamps.js.map +1 -0
- package/lib/cjs/components/title.d.ts +6 -0
- package/lib/cjs/components/title.js +21 -0
- package/lib/cjs/components/title.js.map +1 -0
- package/lib/cjs/components/video.d.ts +8 -0
- package/lib/cjs/components/video.js +34 -0
- package/lib/cjs/components/video.js.map +1 -0
- package/lib/cjs/components/webchat-settings.d.ts +10 -0
- package/lib/cjs/components/webchat-settings.js +78 -0
- package/lib/cjs/components/webchat-settings.js.map +1 -0
- package/lib/cjs/components/whatsapp-template.d.ts +1 -0
- package/lib/cjs/components/whatsapp-template.js +26 -0
- package/lib/cjs/components/whatsapp-template.js.map +1 -0
- package/lib/cjs/constants.d.ts +168 -0
- package/lib/cjs/constants.js +190 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/contexts.d.ts +69 -0
- package/lib/cjs/contexts.js +38 -0
- package/lib/cjs/contexts.js.map +1 -0
- package/lib/cjs/dev-app.d.ts +30 -0
- package/lib/cjs/dev-app.js +71 -0
- package/lib/cjs/dev-app.js.map +1 -0
- package/lib/cjs/index.d.ts +10 -0
- package/lib/cjs/index.js +28 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/message-utils.d.ts +19 -0
- package/lib/cjs/message-utils.js +61 -0
- package/lib/cjs/message-utils.js.map +1 -0
- package/lib/cjs/msg-to-botonic.d.ts +18 -0
- package/lib/cjs/msg-to-botonic.js +160 -0
- package/lib/cjs/msg-to-botonic.js.map +1 -0
- package/lib/cjs/node-app.d.ts +12 -0
- package/lib/cjs/node-app.js +25 -0
- package/lib/cjs/node-app.js.map +1 -0
- package/lib/cjs/react-bot.d.ts +8 -0
- package/lib/cjs/react-bot.js +35 -0
- package/lib/cjs/react-bot.js.map +1 -0
- package/lib/cjs/util/dom.d.ts +13 -0
- package/lib/cjs/util/dom.js +55 -0
- package/lib/cjs/util/dom.js.map +1 -0
- package/lib/cjs/util/environment.d.ts +6 -0
- package/lib/cjs/util/environment.js +68 -0
- package/lib/cjs/util/environment.js.map +1 -0
- package/lib/cjs/util/error-boundary.d.ts +40 -0
- package/lib/cjs/util/error-boundary.js +46 -0
- package/lib/cjs/util/error-boundary.js.map +1 -0
- package/lib/cjs/util/index.d.ts +0 -0
- package/lib/cjs/util/index.js +2 -0
- package/lib/cjs/util/index.js.map +1 -0
- package/lib/cjs/util/logs.d.ts +2 -0
- package/lib/cjs/util/logs.js +20 -0
- package/lib/cjs/util/logs.js.map +1 -0
- package/lib/cjs/util/objects.d.ts +3 -0
- package/lib/cjs/util/objects.js +44 -0
- package/lib/cjs/util/objects.js.map +1 -0
- package/lib/cjs/util/react.d.ts +12 -0
- package/lib/cjs/util/react.js +42 -0
- package/lib/cjs/util/react.js.map +1 -0
- package/lib/cjs/util/regexs.d.ts +2 -0
- package/lib/cjs/util/regexs.js +23 -0
- package/lib/cjs/util/regexs.js.map +1 -0
- package/lib/cjs/util/webchat.d.ts +11 -0
- package/lib/cjs/util/webchat.js +62 -0
- package/lib/cjs/util/webchat.js.map +1 -0
- package/lib/cjs/webchat/actions.d.ts +23 -0
- package/lib/cjs/webchat/actions.js +27 -0
- package/lib/cjs/webchat/actions.js.map +1 -0
- package/lib/cjs/webchat/components/attachment.d.ts +5 -0
- package/lib/cjs/webchat/components/attachment.js +32 -0
- package/lib/cjs/webchat/components/attachment.js.map +1 -0
- package/lib/cjs/webchat/components/common.d.ts +1 -0
- package/lib/cjs/webchat/components/common.js +13 -0
- package/lib/cjs/webchat/components/common.js.map +1 -0
- package/lib/cjs/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/cjs/webchat/components/conditional-animation.js +18 -0
- package/lib/cjs/webchat/components/conditional-animation.js.map +1 -0
- package/lib/cjs/webchat/components/emoji-picker.d.ts +5 -0
- package/lib/cjs/webchat/components/emoji-picker.js +52 -0
- package/lib/cjs/webchat/components/emoji-picker.js.map +1 -0
- package/lib/cjs/webchat/components/persistent-menu.d.ts +10 -0
- package/lib/cjs/webchat/components/persistent-menu.js +59 -0
- package/lib/cjs/webchat/components/persistent-menu.js.map +1 -0
- package/lib/cjs/webchat/components/send-button.d.ts +3 -0
- package/lib/cjs/webchat/components/send-button.js +24 -0
- package/lib/cjs/webchat/components/send-button.js.map +1 -0
- package/lib/cjs/webchat/components/styled-scrollbar.d.ts +1 -0
- package/lib/cjs/webchat/components/styled-scrollbar.js +54 -0
- package/lib/cjs/webchat/components/styled-scrollbar.js.map +1 -0
- package/lib/cjs/webchat/components/typing-indicator.d.ts +1 -0
- package/lib/cjs/webchat/components/typing-indicator.js +14 -0
- package/lib/cjs/webchat/components/typing-indicator.js.map +1 -0
- package/lib/cjs/webchat/devices/device-adapter.d.ts +12 -0
- package/lib/cjs/webchat/devices/device-adapter.js +47 -0
- package/lib/cjs/webchat/devices/device-adapter.js.map +1 -0
- package/lib/cjs/webchat/devices/index.d.ts +11 -0
- package/lib/cjs/webchat/devices/index.js +23 -0
- package/lib/cjs/webchat/devices/index.js.map +1 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.d.ts +12 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.js +103 -0
- package/lib/cjs/webchat/devices/scrollbar-controller.js.map +1 -0
- package/lib/cjs/webchat/devices/webchat-resizer.d.ts +9 -0
- package/lib/cjs/webchat/devices/webchat-resizer.js +47 -0
- package/lib/cjs/webchat/devices/webchat-resizer.js.map +1 -0
- package/lib/cjs/webchat/header.d.ts +3 -0
- package/lib/cjs/webchat/header.js +95 -0
- package/lib/cjs/webchat/header.js.map +1 -0
- package/lib/cjs/webchat/hooks.d.ts +80 -0
- package/lib/cjs/webchat/hooks.js +218 -0
- package/lib/cjs/webchat/hooks.js.map +1 -0
- package/lib/cjs/webchat/index.d.ts +6 -0
- package/lib/cjs/webchat/index.js +17 -0
- package/lib/cjs/webchat/index.js.map +1 -0
- package/lib/cjs/webchat/message-list.d.ts +1 -0
- package/lib/cjs/webchat/message-list.js +46 -0
- package/lib/cjs/webchat/message-list.js.map +1 -0
- package/lib/cjs/webchat/messages-reducer.d.ts +1 -0
- package/lib/cjs/webchat/messages-reducer.js +58 -0
- package/lib/cjs/webchat/messages-reducer.js.map +1 -0
- package/lib/cjs/webchat/replies.d.ts +1 -0
- package/lib/cjs/webchat/replies.js +46 -0
- package/lib/cjs/webchat/replies.js.map +1 -0
- package/lib/cjs/webchat/session-view.d.ts +1 -0
- package/lib/cjs/webchat/session-view.js +124 -0
- package/lib/cjs/webchat/session-view.js.map +1 -0
- package/lib/cjs/webchat/use-storage-state-hook.d.ts +1 -0
- package/lib/cjs/webchat/use-storage-state-hook.js +32 -0
- package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/cjs/webchat/webchat-dev.d.ts +7 -0
- package/lib/cjs/webchat/webchat-dev.js +64 -0
- package/lib/cjs/webchat/webchat-dev.js.map +1 -0
- package/lib/cjs/webchat/webchat-reducer.d.ts +1 -0
- package/lib/cjs/webchat/webchat-reducer.js +48 -0
- package/lib/cjs/webchat/webchat-reducer.js.map +1 -0
- package/lib/cjs/webchat/webchat.d.ts +3 -0
- package/lib/cjs/webchat/webchat.js +704 -0
- package/lib/cjs/webchat/webchat.js.map +1 -0
- package/lib/cjs/webchat/webview.d.ts +2 -0
- package/lib/cjs/webchat/webview.js +92 -0
- package/lib/cjs/webchat/webview.js.map +1 -0
- package/lib/cjs/webchat-app.d.ts +99 -0
- package/lib/cjs/webchat-app.js +269 -0
- package/lib/cjs/webchat-app.js.map +1 -0
- package/lib/cjs/webview-app.d.ts +7 -0
- package/lib/cjs/webview-app.js +103 -0
- package/lib/cjs/webview-app.js.map +1 -0
- package/lib/esm/app.d.ts +2 -0
- package/lib/esm/app.js +6 -0
- package/lib/esm/app.js.map +1 -0
- package/lib/esm/assets/attachment-icon.svg +7 -0
- package/lib/esm/assets/audio.svg +4 -0
- package/lib/esm/assets/botonic_react_logo100x100.png +0 -0
- package/lib/esm/assets/document.svg +3 -0
- package/lib/esm/assets/emojiButton.svg +6 -0
- package/lib/esm/assets/image.svg +4 -0
- package/lib/esm/assets/leftArrow.svg +3 -0
- package/lib/esm/assets/menuButton.svg +3 -0
- package/lib/esm/assets/rightArrow.svg +3 -0
- package/lib/esm/assets/send-button.svg +1 -0
- package/lib/esm/assets/video.svg +3 -0
- package/lib/esm/botonic-tester.d.ts +18 -0
- package/lib/esm/botonic-tester.js +64 -0
- package/lib/esm/botonic-tester.js.map +1 -0
- package/lib/esm/components/audio.d.ts +8 -0
- package/lib/esm/components/audio.js +22 -0
- package/lib/esm/components/audio.js.map +1 -0
- package/lib/esm/components/button.d.ts +15 -0
- package/lib/esm/components/button.js +151 -0
- package/lib/esm/components/button.js.map +1 -0
- package/lib/esm/components/buttons-disabler.d.ts +24 -0
- package/lib/esm/components/buttons-disabler.js +84 -0
- package/lib/esm/components/buttons-disabler.js.map +1 -0
- package/lib/esm/components/carousel.d.ts +9 -0
- package/lib/esm/components/carousel.js +115 -0
- package/lib/esm/components/carousel.js.map +1 -0
- package/lib/esm/components/components.d.ts +12 -0
- package/lib/esm/components/components.js +17 -0
- package/lib/esm/components/components.js.map +1 -0
- package/lib/esm/components/custom-message.d.ts +43 -0
- package/lib/esm/components/custom-message.js +61 -0
- package/lib/esm/components/custom-message.js.map +1 -0
- package/lib/esm/components/document.d.ts +8 -0
- package/lib/esm/components/document.js +45 -0
- package/lib/esm/components/document.js.map +1 -0
- package/lib/esm/components/element.d.ts +4 -0
- package/lib/esm/components/element.js +50 -0
- package/lib/esm/components/element.js.map +1 -0
- package/lib/esm/components/handoff.d.ts +1 -0
- package/lib/esm/components/handoff.js +53 -0
- package/lib/esm/components/handoff.js.map +1 -0
- package/lib/esm/components/image.d.ts +8 -0
- package/lib/esm/components/image.js +37 -0
- package/lib/esm/components/image.js.map +1 -0
- package/lib/esm/components/index.d.ts +19 -0
- package/lib/esm/components/index.js +21 -0
- package/lib/esm/components/index.js.map +1 -0
- package/lib/esm/components/location.d.ts +11 -0
- package/lib/esm/components/location.js +33 -0
- package/lib/esm/components/location.js.map +1 -0
- package/lib/esm/components/markdown.d.ts +7 -0
- package/lib/esm/components/markdown.js +152 -0
- package/lib/esm/components/markdown.js.map +1 -0
- package/lib/esm/components/message-template.d.ts +1 -0
- package/lib/esm/components/message-template.js +10 -0
- package/lib/esm/components/message-template.js.map +1 -0
- package/lib/esm/components/message.d.ts +1 -0
- package/lib/esm/components/message.js +202 -0
- package/lib/esm/components/message.js.map +1 -0
- package/lib/esm/components/multichannel/facebook/facebook.d.ts +17 -0
- package/lib/esm/components/multichannel/facebook/facebook.js +43 -0
- package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/esm/components/multichannel/index.d.ts +6 -0
- package/lib/esm/components/multichannel/index.js +11 -0
- package/lib/esm/components/multichannel/index.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-button.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-button.js +72 -0
- package/lib/esm/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-carousel.js +90 -0
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-context.d.ts +11 -0
- package/lib/esm/components/multichannel/multichannel-context.js +12 -0
- package/lib/esm/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-reply.js +19 -0
- package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-text.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel-text.js +142 -0
- package/lib/esm/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +24 -0
- package/lib/esm/components/multichannel/multichannel-utils.js +67 -0
- package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/esm/components/multichannel/multichannel.d.ts +1 -0
- package/lib/esm/components/multichannel/multichannel.js +67 -0
- package/lib/esm/components/multichannel/multichannel.js.map +1 -0
- package/lib/esm/components/pic.d.ts +6 -0
- package/lib/esm/components/pic.js +24 -0
- package/lib/esm/components/pic.js.map +1 -0
- package/lib/esm/components/raw.d.ts +9 -0
- package/lib/esm/components/raw.js +48 -0
- package/lib/esm/components/raw.js.map +1 -0
- package/lib/esm/components/reply.d.ts +9 -0
- package/lib/esm/components/reply.js +52 -0
- package/lib/esm/components/reply.js.map +1 -0
- package/lib/esm/components/share-button.d.ts +1 -0
- package/lib/esm/components/share-button.js +10 -0
- package/lib/esm/components/share-button.js.map +1 -0
- package/lib/esm/components/subtitle.d.ts +6 -0
- package/lib/esm/components/subtitle.js +20 -0
- package/lib/esm/components/subtitle.js.map +1 -0
- package/lib/esm/components/text.d.ts +8 -0
- package/lib/esm/components/text.js +45 -0
- package/lib/esm/components/text.js.map +1 -0
- package/lib/esm/components/timestamps.d.ts +10 -0
- package/lib/esm/components/timestamps.js +48 -0
- package/lib/esm/components/timestamps.js.map +1 -0
- package/lib/esm/components/title.d.ts +6 -0
- package/lib/esm/components/title.js +16 -0
- package/lib/esm/components/title.js.map +1 -0
- package/lib/esm/components/video.d.ts +8 -0
- package/lib/esm/components/video.js +29 -0
- package/lib/esm/components/video.js.map +1 -0
- package/lib/esm/components/webchat-settings.d.ts +10 -0
- package/lib/esm/components/webchat-settings.js +72 -0
- package/lib/esm/components/webchat-settings.js.map +1 -0
- package/lib/esm/components/whatsapp-template.d.ts +1 -0
- package/lib/esm/components/whatsapp-template.js +21 -0
- package/lib/esm/components/whatsapp-template.js.map +1 -0
- package/lib/esm/constants.d.ts +168 -0
- package/lib/esm/constants.js +186 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/contexts.d.ts +69 -0
- package/lib/esm/contexts.js +34 -0
- package/lib/esm/contexts.js.map +1 -0
- package/lib/esm/dev-app.d.ts +30 -0
- package/lib/esm/dev-app.js +67 -0
- package/lib/esm/dev-app.js.map +1 -0
- package/lib/esm/index.d.ts +9 -0
- package/lib/esm/index.js +11 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/message-utils.d.ts +18 -0
- package/lib/esm/message-utils.js +41 -0
- package/lib/esm/message-utils.js.map +1 -0
- package/lib/esm/msg-to-botonic.d.ts +18 -0
- package/lib/esm/msg-to-botonic.js +154 -0
- package/lib/esm/msg-to-botonic.js.map +1 -0
- package/lib/esm/node-app.d.ts +12 -0
- package/lib/esm/node-app.js +21 -0
- package/lib/esm/node-app.js.map +1 -0
- package/lib/esm/react-bot.d.ts +7 -0
- package/lib/esm/react-bot.js +30 -0
- package/lib/esm/react-bot.js.map +1 -0
- package/lib/esm/util/dom.d.ts +13 -0
- package/lib/esm/util/dom.js +46 -0
- package/lib/esm/util/dom.js.map +1 -0
- package/lib/esm/util/environment.d.ts +6 -0
- package/lib/esm/util/environment.js +61 -0
- package/lib/esm/util/environment.js.map +1 -0
- package/lib/esm/util/error-boundary.d.ts +40 -0
- package/lib/esm/util/error-boundary.js +41 -0
- package/lib/esm/util/error-boundary.js.map +1 -0
- package/lib/esm/util/index.d.ts +0 -0
- package/lib/esm/util/index.js +2 -0
- package/lib/esm/util/index.js.map +1 -0
- package/lib/esm/util/logs.d.ts +2 -0
- package/lib/esm/util/logs.js +15 -0
- package/lib/esm/util/logs.js.map +1 -0
- package/lib/esm/util/objects.d.ts +3 -0
- package/lib/esm/util/objects.js +38 -0
- package/lib/esm/util/objects.js.map +1 -0
- package/lib/esm/util/react.d.ts +12 -0
- package/lib/esm/util/react.js +34 -0
- package/lib/esm/util/react.js.map +1 -0
- package/lib/esm/util/regexs.d.ts +2 -0
- package/lib/esm/util/regexs.js +18 -0
- package/lib/esm/util/regexs.js.map +1 -0
- package/lib/esm/util/webchat.d.ts +11 -0
- package/lib/esm/util/webchat.js +53 -0
- package/lib/esm/util/webchat.js.map +1 -0
- package/lib/esm/webchat/actions.d.ts +23 -0
- package/lib/esm/webchat/actions.js +24 -0
- package/lib/esm/webchat/actions.js.map +1 -0
- package/lib/esm/webchat/components/attachment.d.ts +5 -0
- package/lib/esm/webchat/components/attachment.js +27 -0
- package/lib/esm/webchat/components/attachment.js.map +1 -0
- package/lib/esm/webchat/components/common.d.ts +1 -0
- package/lib/esm/webchat/components/common.js +8 -0
- package/lib/esm/webchat/components/common.js.map +1 -0
- package/lib/esm/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/esm/webchat/components/conditional-animation.js +13 -0
- package/lib/esm/webchat/components/conditional-animation.js.map +1 -0
- package/lib/esm/webchat/components/emoji-picker.d.ts +5 -0
- package/lib/esm/webchat/components/emoji-picker.js +46 -0
- package/lib/esm/webchat/components/emoji-picker.js.map +1 -0
- package/lib/esm/webchat/components/persistent-menu.d.ts +10 -0
- package/lib/esm/webchat/components/persistent-menu.js +53 -0
- package/lib/esm/webchat/components/persistent-menu.js.map +1 -0
- package/lib/esm/webchat/components/send-button.d.ts +3 -0
- package/lib/esm/webchat/components/send-button.js +19 -0
- package/lib/esm/webchat/components/send-button.js.map +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.d.ts +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.js +50 -0
- package/lib/esm/webchat/components/styled-scrollbar.js.map +1 -0
- package/lib/esm/webchat/components/styled-scrollbar.scss +12 -0
- package/lib/esm/webchat/components/typing-indicator.d.ts +1 -0
- package/lib/esm/webchat/components/typing-indicator.js +9 -0
- package/lib/esm/webchat/components/typing-indicator.js.map +1 -0
- package/lib/esm/webchat/components/typing-indicator.scss +38 -0
- package/lib/esm/webchat/devices/device-adapter.d.ts +12 -0
- package/lib/esm/webchat/devices/device-adapter.js +43 -0
- package/lib/esm/webchat/devices/device-adapter.js.map +1 -0
- package/lib/esm/webchat/devices/index.d.ts +11 -0
- package/lib/esm/webchat/devices/index.js +18 -0
- package/lib/esm/webchat/devices/index.js.map +1 -0
- package/lib/esm/webchat/devices/scrollbar-controller.d.ts +12 -0
- package/lib/esm/webchat/devices/scrollbar-controller.js +99 -0
- package/lib/esm/webchat/devices/scrollbar-controller.js.map +1 -0
- package/lib/esm/webchat/devices/webchat-resizer.d.ts +9 -0
- package/lib/esm/webchat/devices/webchat-resizer.js +43 -0
- package/lib/esm/webchat/devices/webchat-resizer.js.map +1 -0
- package/lib/esm/webchat/header.d.ts +3 -0
- package/lib/esm/webchat/header.js +89 -0
- package/lib/esm/webchat/header.js.map +1 -0
- package/lib/esm/webchat/hooks.d.ts +80 -0
- package/lib/esm/webchat/hooks.js +210 -0
- package/lib/esm/webchat/hooks.js.map +1 -0
- package/lib/esm/webchat/index.d.ts +6 -0
- package/lib/esm/webchat/index.js +11 -0
- package/lib/esm/webchat/index.js.map +1 -0
- package/lib/esm/webchat/message-list.d.ts +1 -0
- package/lib/esm/webchat/message-list.js +41 -0
- package/lib/esm/webchat/message-list.js.map +1 -0
- package/lib/esm/webchat/messages-reducer.d.ts +1 -0
- package/lib/esm/webchat/messages-reducer.js +54 -0
- package/lib/esm/webchat/messages-reducer.js.map +1 -0
- package/lib/esm/webchat/replies.d.ts +1 -0
- package/lib/esm/webchat/replies.js +41 -0
- package/lib/esm/webchat/replies.js.map +1 -0
- package/lib/esm/webchat/session-view.d.ts +1 -0
- package/lib/esm/webchat/session-view.js +119 -0
- package/lib/esm/webchat/session-view.js.map +1 -0
- package/lib/esm/webchat/use-storage-state-hook.d.ts +1 -0
- package/lib/esm/webchat/use-storage-state-hook.js +28 -0
- package/lib/esm/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/esm/webchat/webchat-dev.d.ts +7 -0
- package/lib/esm/webchat/webchat-dev.js +60 -0
- package/lib/esm/webchat/webchat-dev.js.map +1 -0
- package/lib/esm/webchat/webchat-reducer.d.ts +1 -0
- package/lib/esm/webchat/webchat-reducer.js +44 -0
- package/lib/esm/webchat/webchat-reducer.js.map +1 -0
- package/lib/esm/webchat/webchat.d.ts +3 -0
- package/lib/esm/webchat/webchat.js +699 -0
- package/lib/esm/webchat/webchat.js.map +1 -0
- package/lib/esm/webchat/webview.d.ts +2 -0
- package/lib/esm/webchat/webview.js +86 -0
- package/lib/esm/webchat/webview.js.map +1 -0
- package/lib/esm/webchat-app.d.ts +98 -0
- package/lib/esm/webchat-app.js +265 -0
- package/lib/esm/webchat-app.js.map +1 -0
- package/lib/esm/webchat.template.html +37 -0
- package/lib/esm/webview-app.d.ts +7 -0
- package/lib/esm/webview-app.js +98 -0
- package/lib/esm/webview-app.js.map +1 -0
- package/lib/esm/webview.template.html +39 -0
- package/package.json +27 -20
- package/src/components/audio.jsx +2 -0
- package/src/components/document.jsx +2 -0
- package/src/components/image.jsx +2 -0
- package/src/components/location.jsx +2 -2
- package/src/components/pic.jsx +3 -1
- package/src/components/video.jsx +2 -0
- package/src/index.js +1 -1
- package/src/msg-to-botonic.jsx +1 -1
- package/src/util/environment.js +31 -2
- package/src/{webview.jsx → webview-app.tsx} +7 -1
- package/lib/app.js +0 -19
- package/lib/app.js.map +0 -1
- package/lib/botonic-tester.js +0 -224
- package/lib/botonic-tester.js.map +0 -1
- package/lib/components/audio.js +0 -48
- package/lib/components/audio.js.map +0 -1
- package/lib/components/button.js +0 -224
- package/lib/components/button.js.map +0 -1
- package/lib/components/buttons-disabler.js +0 -133
- package/lib/components/buttons-disabler.js.map +0 -1
- package/lib/components/carousel.js +0 -194
- package/lib/components/carousel.js.map +0 -1
- package/lib/components/components.js.map +0 -1
- package/lib/components/custom-message.js +0 -131
- package/lib/components/custom-message.js.map +0 -1
- package/lib/components/document.js +0 -76
- package/lib/components/document.js.map +0 -1
- package/lib/components/element.js +0 -69
- package/lib/components/element.js.map +0 -1
- package/lib/components/handoff.js +0 -69
- package/lib/components/handoff.js.map +0 -1
- package/lib/components/image.js +0 -91
- package/lib/components/image.js.map +0 -1
- package/lib/components/index.d.ts +0 -228
- package/lib/components/index.js +0 -193
- package/lib/components/index.js.map +0 -1
- package/lib/components/location.js +0 -69
- package/lib/components/location.js.map +0 -1
- package/lib/components/markdown.js +0 -108
- package/lib/components/markdown.js.map +0 -1
- package/lib/components/message-template.js +0 -36
- package/lib/components/message-template.js.map +0 -1
- package/lib/components/message.js +0 -351
- package/lib/components/message.js.map +0 -1
- package/lib/components/multichannel/facebook/facebook.js +0 -96
- package/lib/components/multichannel/facebook/facebook.js.map +0 -1
- package/lib/components/multichannel/index.d.ts +0 -65
- package/lib/components/multichannel/index.js +0 -46
- package/lib/components/multichannel/index.js.map +0 -1
- package/lib/components/multichannel/multichannel-button.js +0 -119
- package/lib/components/multichannel/multichannel-button.js.map +0 -1
- package/lib/components/multichannel/multichannel-carousel.js +0 -143
- package/lib/components/multichannel/multichannel-carousel.js.map +0 -1
- package/lib/components/multichannel/multichannel-context.js +0 -24
- package/lib/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/components/multichannel/multichannel-reply.js +0 -46
- package/lib/components/multichannel/multichannel-reply.js.map +0 -1
- package/lib/components/multichannel/multichannel-text.js +0 -222
- package/lib/components/multichannel/multichannel-text.js.map +0 -1
- package/lib/components/multichannel/multichannel-utils.js +0 -126
- package/lib/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/components/multichannel/multichannel.js +0 -111
- package/lib/components/multichannel/multichannel.js.map +0 -1
- package/lib/components/pic.js +0 -50
- package/lib/components/pic.js.map +0 -1
- package/lib/components/raw.js +0 -70
- package/lib/components/raw.js.map +0 -1
- package/lib/components/reply.js +0 -107
- package/lib/components/reply.js.map +0 -1
- package/lib/components/share-button.js +0 -36
- package/lib/components/share-button.js.map +0 -1
- package/lib/components/subtitle.js +0 -54
- package/lib/components/subtitle.js.map +0 -1
- package/lib/components/text.js +0 -80
- package/lib/components/text.js.map +0 -1
- package/lib/components/timestamps.js +0 -69
- package/lib/components/timestamps.js.map +0 -1
- package/lib/components/title.js +0 -52
- package/lib/components/title.js.map +0 -1
- package/lib/components/video.js +0 -51
- package/lib/components/video.js.map +0 -1
- package/lib/components/webchat-settings.js +0 -118
- package/lib/components/webchat-settings.js.map +0 -1
- package/lib/components/whatsapp-template.js +0 -53
- package/lib/components/whatsapp-template.js.map +0 -1
- package/lib/constants.js +0 -203
- package/lib/constants.js.map +0 -1
- package/lib/contexts.js +0 -57
- package/lib/contexts.js.map +0 -1
- package/lib/dev-app.js +0 -241
- package/lib/dev-app.js.map +0 -1
- package/lib/index.d.ts +0 -238
- package/lib/index.js +0 -131
- package/lib/index.js.map +0 -1
- package/lib/message-utils.js +0 -149
- package/lib/message-utils.js.map +0 -1
- package/lib/msg-to-botonic.js +0 -199
- package/lib/msg-to-botonic.js.map +0 -1
- package/lib/node-app.js +0 -97
- package/lib/node-app.js.map +0 -1
- package/lib/react-bot.js +0 -167
- package/lib/react-bot.js.map +0 -1
- package/lib/util/dom.js +0 -84
- package/lib/util/dom.js.map +0 -1
- package/lib/util/environment.js +0 -42
- package/lib/util/environment.js.map +0 -1
- package/lib/util/error-boundary.js +0 -105
- package/lib/util/error-boundary.js.map +0 -1
- package/lib/util/index.d.ts +0 -9
- package/lib/util/index.js +0 -2
- package/lib/util/index.js.map +0 -1
- package/lib/util/logs.js +0 -28
- package/lib/util/logs.js.map +0 -1
- package/lib/util/objects.js +0 -60
- package/lib/util/objects.js.map +0 -1
- package/lib/util/react.js +0 -75
- package/lib/util/react.js.map +0 -1
- package/lib/util/regexs.js +0 -31
- package/lib/util/regexs.js.map +0 -1
- package/lib/util/webchat.js +0 -92
- package/lib/util/webchat.js.map +0 -1
- package/lib/webchat/actions.js +0 -53
- package/lib/webchat/actions.js.map +0 -1
- package/lib/webchat/components/attachment.js +0 -68
- package/lib/webchat/components/attachment.js.map +0 -1
- package/lib/webchat/components/common.js +0 -29
- package/lib/webchat/components/common.js.map +0 -1
- package/lib/webchat/components/conditional-animation.js +0 -42
- package/lib/webchat/components/conditional-animation.js.map +0 -1
- package/lib/webchat/components/emoji-picker.js +0 -89
- package/lib/webchat/components/emoji-picker.js.map +0 -1
- package/lib/webchat/components/persistent-menu.js +0 -104
- package/lib/webchat/components/persistent-menu.js.map +0 -1
- package/lib/webchat/components/send-button.js +0 -45
- package/lib/webchat/components/send-button.js.map +0 -1
- package/lib/webchat/components/styled-scrollbar.js +0 -55
- package/lib/webchat/components/styled-scrollbar.js.map +0 -1
- package/lib/webchat/components/typing-indicator.js +0 -27
- package/lib/webchat/components/typing-indicator.js.map +0 -1
- package/lib/webchat/devices/device-adapter.js +0 -82
- package/lib/webchat/devices/device-adapter.js.map +0 -1
- package/lib/webchat/devices/index.js +0 -32
- package/lib/webchat/devices/index.js.map +0 -1
- package/lib/webchat/devices/scrollbar-controller.js +0 -152
- package/lib/webchat/devices/scrollbar-controller.js.map +0 -1
- package/lib/webchat/devices/webchat-resizer.js +0 -76
- package/lib/webchat/devices/webchat-resizer.js.map +0 -1
- package/lib/webchat/header.js +0 -116
- package/lib/webchat/header.js.map +0 -1
- package/lib/webchat/hooks.js +0 -359
- package/lib/webchat/hooks.js.map +0 -1
- package/lib/webchat/index.d.ts +0 -62
- package/lib/webchat/index.js +0 -32
- package/lib/webchat/index.js.map +0 -1
- package/lib/webchat/message-list.js +0 -88
- package/lib/webchat/message-list.js.map +0 -1
- package/lib/webchat/messages-reducer.js +0 -93
- package/lib/webchat/messages-reducer.js.map +0 -1
- package/lib/webchat/replies.js +0 -78
- package/lib/webchat/replies.js.map +0 -1
- package/lib/webchat/session-view.js +0 -106
- package/lib/webchat/session-view.js.map +0 -1
- package/lib/webchat/use-storage-state-hook.js +0 -60
- package/lib/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/webchat/webchat-dev.js +0 -109
- package/lib/webchat/webchat-dev.js.map +0 -1
- package/lib/webchat/webchat-reducer.js +0 -108
- package/lib/webchat/webchat-reducer.js.map +0 -1
- package/lib/webchat/webchat.js +0 -1108
- package/lib/webchat/webchat.js.map +0 -1
- package/lib/webchat/webview.js +0 -122
- package/lib/webchat/webview.js.map +0 -1
- package/lib/webchat-app.js +0 -660
- package/lib/webchat-app.js.map +0 -1
- package/lib/webview.js +0 -231
- package/lib/webview.js.map +0 -1
- /package/lib/{assets → cjs/assets}/attachment-icon.svg +0 -0
- /package/lib/{assets → cjs/assets}/audio.svg +0 -0
- /package/lib/{assets → cjs/assets}/botonic_react_logo100x100.png +0 -0
- /package/lib/{assets → cjs/assets}/document.svg +0 -0
- /package/lib/{assets → cjs/assets}/emojiButton.svg +0 -0
- /package/lib/{assets → cjs/assets}/image.svg +0 -0
- /package/lib/{assets → cjs/assets}/leftArrow.svg +0 -0
- /package/lib/{assets → cjs/assets}/menuButton.svg +0 -0
- /package/lib/{assets → cjs/assets}/rightArrow.svg +0 -0
- /package/lib/{assets → cjs/assets}/send-button.svg +0 -0
- /package/lib/{assets → cjs/assets}/video.svg +0 -0
- /package/lib/{webchat → cjs/webchat}/components/styled-scrollbar.scss +0 -0
- /package/lib/{webchat → cjs/webchat}/components/typing-indicator.scss +0 -0
- /package/lib/{webchat.template.html → cjs/webchat.template.html} +0 -0
- /package/lib/{webview.template.html → cjs/webview.template.html} +0 -0
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.toMarkdownChildren = exports.serializeMarkdown = exports.renderMarkdown = exports.renderLinks = exports.getMarkdownStyle = exports.getDefaultMarkdownStyle = exports.ESCAPED_LINE_BREAK = void 0;
|
|
9
|
-
|
|
10
|
-
var _markdownIt = _interopRequireDefault(require("markdown-it"));
|
|
11
|
-
|
|
12
|
-
var BR_STRING_TAG = '<br/>';
|
|
13
|
-
var BR_STRING_TAG_REGEX = new RegExp('<br\\s*/?>', 'g');
|
|
14
|
-
var ESCAPED_LINE_BREAK = '<br>';
|
|
15
|
-
exports.ESCAPED_LINE_BREAK = ESCAPED_LINE_BREAK;
|
|
16
|
-
var ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g');
|
|
17
|
-
|
|
18
|
-
var isLineBreakElement = function isLineBreakElement(element) {
|
|
19
|
-
return element.type === 'br';
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
var withLinksTarget = function withLinksTarget(renderer) {
|
|
23
|
-
var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_blank';
|
|
24
|
-
|
|
25
|
-
// Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer
|
|
26
|
-
var newRenderer = renderer.renderer.rules.link_open || function (tokens, idx, options, env, self) {
|
|
27
|
-
return self.renderToken(tokens, idx, options);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
renderer.renderer.rules.link_open = function (tokens, idx, options, env, self) {
|
|
31
|
-
var aIndex = tokens[idx].attrIndex('target');
|
|
32
|
-
if (aIndex < 0) tokens[idx].attrPush(['target', target]);else tokens[idx].attrs[aIndex][1] = target;
|
|
33
|
-
return newRenderer(tokens, idx, options, env, self);
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
var configureLinksRenderer = function configureLinksRenderer() {
|
|
38
|
-
// zero preset comes with all options disabled, only enabling links
|
|
39
|
-
var linksRenderer = new _markdownIt["default"]('zero', {
|
|
40
|
-
linkify: true
|
|
41
|
-
}).enable(['linkify']);
|
|
42
|
-
withLinksTarget(linksRenderer);
|
|
43
|
-
return linksRenderer;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
var configureMarkdownRenderer = function configureMarkdownRenderer() {
|
|
47
|
-
var markdownRenderer = new _markdownIt["default"]({
|
|
48
|
-
html: true,
|
|
49
|
-
linkify: true,
|
|
50
|
-
typographer: true
|
|
51
|
-
});
|
|
52
|
-
withLinksTarget(markdownRenderer);
|
|
53
|
-
return markdownRenderer;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
var markdownRenderer = configureMarkdownRenderer();
|
|
57
|
-
|
|
58
|
-
var renderMarkdown = function renderMarkdown(text) {
|
|
59
|
-
// markdown-it renderer expects '<br/>' strings to render correctly line breaks
|
|
60
|
-
// Supporting multiline: https://stackoverflow.com/a/20543835
|
|
61
|
-
text = text.map(function (e) {
|
|
62
|
-
if (isLineBreakElement(e)) return BR_STRING_TAG;else if (typeof e === 'string') return e.replace(BR_STRING_TAG_REGEX, BR_STRING_TAG).replace(ESCAPED_LINE_BREAK_REGEX, BR_STRING_TAG);else return String(e);
|
|
63
|
-
}).join('');
|
|
64
|
-
return markdownRenderer.render(text);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
exports.renderMarkdown = renderMarkdown;
|
|
68
|
-
var linksRenderer = configureLinksRenderer();
|
|
69
|
-
|
|
70
|
-
var renderLinks = function renderLinks(text) {
|
|
71
|
-
return linksRenderer.render(text);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
exports.renderLinks = renderLinks;
|
|
75
|
-
|
|
76
|
-
var serializeMarkdown = function serializeMarkdown(children) {
|
|
77
|
-
children = Array.isArray(children) ? children : [children];
|
|
78
|
-
var text = children.filter(function (e) {
|
|
79
|
-
return isLineBreakElement(e) || !e.type;
|
|
80
|
-
}).map(function (e) {
|
|
81
|
-
if (Array.isArray(e)) return serializeMarkdown(e);
|
|
82
|
-
if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK;else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK);
|
|
83
|
-
}).join('');
|
|
84
|
-
return text;
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
exports.serializeMarkdown = serializeMarkdown;
|
|
88
|
-
|
|
89
|
-
var toMarkdownChildren = function toMarkdownChildren(children) {
|
|
90
|
-
return children.map(function (e) {
|
|
91
|
-
return isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e;
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
exports.toMarkdownChildren = toMarkdownChildren;
|
|
96
|
-
|
|
97
|
-
var getMarkdownStyle = function getMarkdownStyle(getThemeFn, defaultColor) {
|
|
98
|
-
return getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor));
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
exports.getMarkdownStyle = getMarkdownStyle;
|
|
102
|
-
|
|
103
|
-
var getDefaultMarkdownStyle = function getDefaultMarkdownStyle(color) {
|
|
104
|
-
return "\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:".concat(color, "; \n}\n\na:visited {\n color:").concat(color, ";\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n");
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
exports.getDefaultMarkdownStyle = getDefaultMarkdownStyle;
|
|
108
|
-
//# sourceMappingURL=markdown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/markdown.js"],"names":["BR_STRING_TAG","BR_STRING_TAG_REGEX","RegExp","ESCAPED_LINE_BREAK","ESCAPED_LINE_BREAK_REGEX","isLineBreakElement","element","type","withLinksTarget","renderer","target","newRenderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","configureLinksRenderer","linksRenderer","MarkdownIt","linkify","enable","configureMarkdownRenderer","markdownRenderer","html","typographer","renderMarkdown","text","map","e","replace","String","join","render","renderLinks","serializeMarkdown","children","Array","isArray","filter","toMarkdownChildren","getMarkdownStyle","getThemeFn","defaultColor","getDefaultMarkdownStyle","color"],"mappings":"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","sourcesContent":["import MarkdownIt from 'markdown-it'\n\nconst BR_STRING_TAG = '<br/>'\nconst BR_STRING_TAG_REGEX = new RegExp('<br\\\\s*/?>', 'g')\nexport const ESCAPED_LINE_BREAK = '<br>'\nconst ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g')\nconst isLineBreakElement = element => element.type === 'br'\n\nconst withLinksTarget = (renderer, target = '_blank') => {\n // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer\n const newRenderer =\n renderer.renderer.rules.link_open ||\n function (tokens, idx, options, env, self) {\n return self.renderToken(tokens, idx, options)\n }\n renderer.renderer.rules.link_open = function (\n tokens,\n idx,\n options,\n env,\n self\n ) {\n const aIndex = tokens[idx].attrIndex('target')\n if (aIndex < 0) tokens[idx].attrPush(['target', target])\n else tokens[idx].attrs[aIndex][1] = target\n return newRenderer(tokens, idx, options, env, self)\n }\n}\n\nconst configureLinksRenderer = () => {\n // zero preset comes with all options disabled, only enabling links\n const linksRenderer = new MarkdownIt('zero', { linkify: true }).enable([\n 'linkify',\n ])\n withLinksTarget(linksRenderer)\n return linksRenderer\n}\n\nconst configureMarkdownRenderer = () => {\n const markdownRenderer = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n })\n withLinksTarget(markdownRenderer)\n return markdownRenderer\n}\n\nconst markdownRenderer = configureMarkdownRenderer()\nexport const renderMarkdown = text => {\n // markdown-it renderer expects '<br/>' strings to render correctly line breaks\n // Supporting multiline: https://stackoverflow.com/a/20543835\n text = text\n .map(e => {\n if (isLineBreakElement(e)) return BR_STRING_TAG\n else if (typeof e === 'string')\n return e\n .replace(BR_STRING_TAG_REGEX, BR_STRING_TAG)\n .replace(ESCAPED_LINE_BREAK_REGEX, BR_STRING_TAG)\n else return String(e)\n })\n .join('')\n return markdownRenderer.render(text)\n}\n\nconst linksRenderer = configureLinksRenderer()\nexport const renderLinks = text => {\n return linksRenderer.render(text)\n}\n\nexport const serializeMarkdown = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => isLineBreakElement(e) || !e.type)\n .map(e => {\n if (Array.isArray(e)) return serializeMarkdown(e)\n if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK\n else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK)\n })\n .join('')\n return text\n}\n\nexport const toMarkdownChildren = children =>\n children.map(e => (isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e))\n\nexport const getMarkdownStyle = (getThemeFn, defaultColor) =>\n getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor))\n\nexport const getDefaultMarkdownStyle = color => `\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:${color}; \n}\n\na:visited {\n color:${color};\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n`\n"],"file":"markdown.js"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.MessageTemplate = void 0;
|
|
9
|
-
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var _react2 = require("../util/react");
|
|
13
|
-
|
|
14
|
-
var MessageTemplate = function MessageTemplate(props) {
|
|
15
|
-
var renderBrowser = function renderBrowser() {
|
|
16
|
-
return null;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
var renderNode = function renderNode() {
|
|
20
|
-
return /*#__PURE__*/_react["default"].createElement("message", {
|
|
21
|
-
type: "template"
|
|
22
|
-
}, /*#__PURE__*/_react["default"].createElement("pre", {
|
|
23
|
-
dangerouslySetInnerHTML: {
|
|
24
|
-
__html: JSON.stringify(props.payload)
|
|
25
|
-
}
|
|
26
|
-
}));
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return (0, _react2.renderComponent)({
|
|
30
|
-
renderBrowser: renderBrowser,
|
|
31
|
-
renderNode: renderNode
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
exports.MessageTemplate = MessageTemplate;
|
|
36
|
-
//# sourceMappingURL=message-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/message-template.jsx"],"names":["MessageTemplate","props","renderBrowser","renderNode","__html","JSON","stringify","payload"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AACtC,MAAMC,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WAAM,IAAN;AAAA,GAAtB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,wBACjB;AAAS,MAAA,IAAI,EAAC;AAAd,oBACE;AACE,MAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEC,IAAI,CAACC,SAAL,CAAeL,KAAK,CAACM,OAArB;AAAV;AAD3B,MADF,CADiB;AAAA,GAAnB;;AAOA,SAAO,6BAAgB;AAAEL,IAAAA,aAAa,EAAbA,aAAF;AAAiBC,IAAAA,UAAU,EAAVA;AAAjB,GAAhB,CAAP;AACD,CAVM","sourcesContent":["import React from 'react'\n\nimport { renderComponent } from '../util/react'\n\nexport const MessageTemplate = props => {\n const renderBrowser = () => null\n const renderNode = () => (\n <message type='template'>\n <pre\n dangerouslySetInnerHTML={{ __html: JSON.stringify(props.payload) }}\n />\n </message>\n )\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"message-template.js"}
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.Message = void 0;
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
|
-
|
|
20
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
21
|
-
|
|
22
|
-
var _core = require("@botonic/core");
|
|
23
|
-
|
|
24
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
25
|
-
|
|
26
|
-
var _Fade = _interopRequireDefault(require("react-reveal/Fade"));
|
|
27
|
-
|
|
28
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
29
|
-
|
|
30
|
-
var _uuid = require("uuid");
|
|
31
|
-
|
|
32
|
-
var _constants = require("../constants");
|
|
33
|
-
|
|
34
|
-
var _contexts = require("../contexts");
|
|
35
|
-
|
|
36
|
-
var _environment = require("../util/environment");
|
|
37
|
-
|
|
38
|
-
var _react2 = require("../util/react");
|
|
39
|
-
|
|
40
|
-
var _button = require("./button");
|
|
41
|
-
|
|
42
|
-
var _buttonsDisabler = require("./buttons-disabler");
|
|
43
|
-
|
|
44
|
-
var _markdown = require("./markdown");
|
|
45
|
-
|
|
46
|
-
var _reply = require("./reply");
|
|
47
|
-
|
|
48
|
-
var _timestamps = require("./timestamps");
|
|
49
|
-
|
|
50
|
-
var _excluded = ["type", "blob", "from", "delay", "typing", "children", "enabletimestamps", "json", "style", "imagestyle"],
|
|
51
|
-
_excluded2 = ["blob", "json"];
|
|
52
|
-
|
|
53
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
54
|
-
|
|
55
|
-
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); }
|
|
56
|
-
|
|
57
|
-
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; }
|
|
58
|
-
|
|
59
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
60
|
-
|
|
61
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
62
|
-
|
|
63
|
-
var MessageContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: ", ";\n position: relative;\n padding: 0px 6px;\n"])), function (props) {
|
|
64
|
-
return props.isfromuser ? 'flex-end' : 'flex-start';
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
var BotMessageImageContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
|
|
68
|
-
|
|
69
|
-
var Blob = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ", ";\n color: ", ";\n max-width: ", ";\n"])), function (props) {
|
|
70
|
-
return props.bgcolor;
|
|
71
|
-
}, function (props) {
|
|
72
|
-
return props.color;
|
|
73
|
-
}, function (props) {
|
|
74
|
-
return props.blob ? props.blobwidth ? props.blobwidth : '60%' : 'calc(100% - 16px)';
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
var BlobText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ", "\n"])), function (props) {
|
|
78
|
-
return props.blob ? '8px 12px' : '0px';
|
|
79
|
-
}, function (props) {
|
|
80
|
-
return props.markdownstyle;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
var BlobTickContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n"])));
|
|
84
|
-
|
|
85
|
-
var BlobTick = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: -", "px 0px;\n border: ", "px solid ", ";\n"])), function (props) {
|
|
86
|
-
return props.pointerSize;
|
|
87
|
-
}, function (props) {
|
|
88
|
-
return props.pointerSize;
|
|
89
|
-
}, _constants.COLORS.TRANSPARENT);
|
|
90
|
-
|
|
91
|
-
var Message = function Message(props) {
|
|
92
|
-
var _useContext = (0, _react.useContext)(_contexts.RequestContext),
|
|
93
|
-
defaultTyping = _useContext.defaultTyping,
|
|
94
|
-
defaultDelay = _useContext.defaultDelay;
|
|
95
|
-
|
|
96
|
-
var _props$type = props.type,
|
|
97
|
-
type = _props$type === void 0 ? '' : _props$type,
|
|
98
|
-
_props$blob = props.blob,
|
|
99
|
-
blob = _props$blob === void 0 ? true : _props$blob,
|
|
100
|
-
_props$from = props.from,
|
|
101
|
-
from = _props$from === void 0 ? _constants.SENDERS.bot : _props$from,
|
|
102
|
-
_props$delay = props.delay,
|
|
103
|
-
delay = _props$delay === void 0 ? defaultDelay : _props$delay,
|
|
104
|
-
_props$typing = props.typing,
|
|
105
|
-
typing = _props$typing === void 0 ? defaultTyping : _props$typing,
|
|
106
|
-
children = props.children,
|
|
107
|
-
_props$enabletimestam = props.enabletimestamps,
|
|
108
|
-
enabletimestamps = _props$enabletimestam === void 0 ? props.enabletimestamps || props.enableTimestamps : _props$enabletimestam,
|
|
109
|
-
json = props.json,
|
|
110
|
-
style = props.style,
|
|
111
|
-
_props$imagestyle = props.imagestyle,
|
|
112
|
-
imagestyle = _props$imagestyle === void 0 ? props.imagestyle || props.imageStyle : _props$imagestyle,
|
|
113
|
-
otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
114
|
-
var isFromUser = from === _constants.SENDERS.user;
|
|
115
|
-
var isFromBot = from === _constants.SENDERS.bot;
|
|
116
|
-
var markdown = props.markdown;
|
|
117
|
-
|
|
118
|
-
var _useContext2 = (0, _react.useContext)(_contexts.WebchatContext),
|
|
119
|
-
webchatState = _useContext2.webchatState,
|
|
120
|
-
addMessage = _useContext2.addMessage,
|
|
121
|
-
updateReplies = _useContext2.updateReplies,
|
|
122
|
-
getThemeProperty = _useContext2.getThemeProperty;
|
|
123
|
-
|
|
124
|
-
var _useState = (0, _react.useState)({
|
|
125
|
-
id: props.id || (0, _uuid.v4)()
|
|
126
|
-
}),
|
|
127
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
128
|
-
state = _useState2[0],
|
|
129
|
-
setState = _useState2[1];
|
|
130
|
-
|
|
131
|
-
var _useState3 = (0, _react.useState)(false),
|
|
132
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
133
|
-
disabled = _useState4[0],
|
|
134
|
-
setDisabled = _useState4[1];
|
|
135
|
-
|
|
136
|
-
children = _buttonsDisabler.ButtonsDisabler.updateChildrenButtons(children, {
|
|
137
|
-
parentId: state.id,
|
|
138
|
-
disabled: disabled,
|
|
139
|
-
setDisabled: setDisabled
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
var replies = _react["default"].Children.toArray(children).filter(function (e) {
|
|
143
|
-
return e.type === _reply.Reply;
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
var buttons = _react["default"].Children.toArray(children).filter(function (e) {
|
|
147
|
-
return e.type === _button.Button;
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
var textChildren = _react["default"].Children.toArray(children).filter(function (e) {
|
|
151
|
-
return ![_button.Button, _reply.Reply].includes(e.type);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (isFromUser) textChildren = textChildren.map(function (e) {
|
|
155
|
-
return typeof e === 'string' ? (0, _markdown.renderLinks)(e) : e;
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
var _resolveMessageTimest = (0, _timestamps.resolveMessageTimestamps)(getThemeProperty, enabletimestamps),
|
|
159
|
-
timestampsEnabled = _resolveMessageTimest.timestampsEnabled,
|
|
160
|
-
getFormattedTimestamp = _resolveMessageTimest.getFormattedTimestamp,
|
|
161
|
-
timestampStyle = _resolveMessageTimest.timestampStyle;
|
|
162
|
-
|
|
163
|
-
var getEnvAck = function getEnvAck() {
|
|
164
|
-
if (_environment.isDev) return 1;
|
|
165
|
-
if (!isFromUser) return 1;
|
|
166
|
-
if (props.ack !== undefined) return props.ack;
|
|
167
|
-
return 0;
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
var ack = getEnvAck();
|
|
171
|
-
|
|
172
|
-
if ((0, _core.isBrowser)()) {
|
|
173
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
174
|
-
(0, _react.useEffect)(function () {
|
|
175
|
-
var decomposedChildren = json;
|
|
176
|
-
var message = {
|
|
177
|
-
id: state.id,
|
|
178
|
-
type: type,
|
|
179
|
-
data: decomposedChildren ? decomposedChildren : textChildren,
|
|
180
|
-
timestamp: props.timestamp || getFormattedTimestamp,
|
|
181
|
-
markdown: markdown,
|
|
182
|
-
from: from,
|
|
183
|
-
buttons: buttons.map(function (b) {
|
|
184
|
-
return _objectSpread({
|
|
185
|
-
parentId: b.props.parentId,
|
|
186
|
-
payload: b.props.payload,
|
|
187
|
-
path: b.props.path,
|
|
188
|
-
url: b.props.url,
|
|
189
|
-
target: b.props.target,
|
|
190
|
-
webview: b.props.webview && String(b.props.webview),
|
|
191
|
-
title: b.props.children
|
|
192
|
-
}, _buttonsDisabler.ButtonsDisabler.withDisabledProps(b.props));
|
|
193
|
-
}),
|
|
194
|
-
delay: delay,
|
|
195
|
-
typing: typing,
|
|
196
|
-
replies: replies.map(function (r) {
|
|
197
|
-
return {
|
|
198
|
-
payload: r.props.payload,
|
|
199
|
-
path: r.props.path,
|
|
200
|
-
url: r.props.url,
|
|
201
|
-
text: r.props.children
|
|
202
|
-
};
|
|
203
|
-
}),
|
|
204
|
-
display: delay + typing == 0,
|
|
205
|
-
customTypeName: decomposedChildren.customTypeName,
|
|
206
|
-
ack: ack
|
|
207
|
-
};
|
|
208
|
-
addMessage(message);
|
|
209
|
-
}, []); // eslint-disable-next-line react-hooks/rules-of-hooks
|
|
210
|
-
|
|
211
|
-
(0, _react.useEffect)(function () {
|
|
212
|
-
var msg = webchatState.messagesJSON.find(function (m) {
|
|
213
|
-
return m.id === state.id;
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
if (msg && msg.display && webchatState.messagesJSON.filter(function (m) {
|
|
217
|
-
return !m.display;
|
|
218
|
-
}).length == 0) {
|
|
219
|
-
updateReplies(replies);
|
|
220
|
-
}
|
|
221
|
-
}, [webchatState.messagesJSON]);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
var brandColor = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandColor, _constants.COLORS.BOTONIC_BLUE);
|
|
225
|
-
|
|
226
|
-
var getBgColor = function getBgColor() {
|
|
227
|
-
if (!blob) return _constants.COLORS.TRANSPARENT;
|
|
228
|
-
|
|
229
|
-
if (isFromUser) {
|
|
230
|
-
return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground, brandColor);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
return getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground, _constants.COLORS.SEASHELL_WHITE);
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
var getMessageStyle = function getMessageStyle() {
|
|
237
|
-
return isFromBot ? getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle) : getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle);
|
|
238
|
-
};
|
|
239
|
-
|
|
240
|
-
var hasBlobTick = function hasBlobTick() {
|
|
241
|
-
return getThemeProperty("message.".concat(from, ".blobTick"), true);
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
var renderBrowser = function renderBrowser() {
|
|
245
|
-
var m = webchatState.messagesJSON.find(function (m) {
|
|
246
|
-
return m.id === state.id;
|
|
247
|
-
});
|
|
248
|
-
if (!m || !m.display) return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);
|
|
249
|
-
|
|
250
|
-
var getBlobTick = function getBlobTick(pointerSize) {
|
|
251
|
-
// to add a border to the blobTick we need to create two triangles and overlap them
|
|
252
|
-
// that is why the color depends on the pointerSize
|
|
253
|
-
// https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/
|
|
254
|
-
var color = pointerSize == 5 ? getBgColor() : getThemeProperty("message.".concat(from, ".style.borderColor"), _constants.COLORS.TRANSPARENT);
|
|
255
|
-
|
|
256
|
-
var containerStyle = _objectSpread({}, getThemeProperty("message.".concat(from, ".blobTickStyle")));
|
|
257
|
-
|
|
258
|
-
var blobTickStyle = {};
|
|
259
|
-
|
|
260
|
-
if (isFromUser) {
|
|
261
|
-
containerStyle.right = 0;
|
|
262
|
-
containerStyle.marginRight = -pointerSize;
|
|
263
|
-
blobTickStyle.borderRight = 0;
|
|
264
|
-
blobTickStyle.borderLeftColor = color;
|
|
265
|
-
} else {
|
|
266
|
-
containerStyle.left = 0;
|
|
267
|
-
containerStyle.marginLeft = -pointerSize;
|
|
268
|
-
blobTickStyle.borderLeft = 0;
|
|
269
|
-
blobTickStyle.borderRightColor = color;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
return /*#__PURE__*/_react["default"].createElement(BlobTickContainer, {
|
|
273
|
-
style: containerStyle
|
|
274
|
-
}, /*#__PURE__*/_react["default"].createElement(BlobTick, {
|
|
275
|
-
pointerSize: pointerSize,
|
|
276
|
-
style: blobTickStyle
|
|
277
|
-
}));
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
var BotMessageImage = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImage, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.brandImage, _constants.WEBCHAT.DEFAULTS.LOGO));
|
|
281
|
-
var animationsEnabled = getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.enableAnimations, true);
|
|
282
|
-
|
|
283
|
-
var resolveCustomTypeName = function resolveCustomTypeName() {
|
|
284
|
-
return isFromBot && type === _core.INPUT.CUSTOM ? " ".concat(m.customTypeName) : '';
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
var className = "".concat(type, "-").concat(from).concat(resolveCustomTypeName());
|
|
288
|
-
return /*#__PURE__*/_react["default"].createElement(_react2.ConditionalWrapper, {
|
|
289
|
-
condition: animationsEnabled,
|
|
290
|
-
wrapper: function wrapper(children) {
|
|
291
|
-
return /*#__PURE__*/_react["default"].createElement(_Fade["default"], null, children);
|
|
292
|
-
}
|
|
293
|
-
}, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(MessageContainer, {
|
|
294
|
-
isfromuser: isFromUser,
|
|
295
|
-
style: _objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.messageStyle))
|
|
296
|
-
}, isFromBot && BotMessageImage && /*#__PURE__*/_react["default"].createElement(BotMessageImageContainer, {
|
|
297
|
-
style: _objectSpread(_objectSpread({}, getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle)), imagestyle)
|
|
298
|
-
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
299
|
-
style: {
|
|
300
|
-
width: '100%'
|
|
301
|
-
},
|
|
302
|
-
src: (0, _environment.resolveImage)(BotMessageImage)
|
|
303
|
-
})), /*#__PURE__*/_react["default"].createElement(Blob, (0, _extends2["default"])({
|
|
304
|
-
className: className,
|
|
305
|
-
bgcolor: getBgColor(),
|
|
306
|
-
color: isFromUser ? _constants.COLORS.SOLID_WHITE : _constants.COLORS.SOLID_BLACK,
|
|
307
|
-
blobwidth: getThemeProperty(_constants.WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth),
|
|
308
|
-
blob: blob,
|
|
309
|
-
style: _objectSpread(_objectSpread(_objectSpread({}, getMessageStyle()), style), {
|
|
310
|
-
opacity: ack === 0 ? 0.6 : 1
|
|
311
|
-
})
|
|
312
|
-
}, otherProps), markdown ? /*#__PURE__*/_react["default"].createElement(BlobText, {
|
|
313
|
-
blob: blob,
|
|
314
|
-
dangerouslySetInnerHTML: {
|
|
315
|
-
__html: (0, _markdown.renderMarkdown)(textChildren)
|
|
316
|
-
},
|
|
317
|
-
markdownstyle: (0, _markdown.getMarkdownStyle)(getThemeProperty, isFromUser ? _constants.COLORS.SEASHELL_WHITE : brandColor)
|
|
318
|
-
}) : /*#__PURE__*/_react["default"].createElement(BlobText, {
|
|
319
|
-
blob: blob
|
|
320
|
-
}, textChildren), !!buttons.length && /*#__PURE__*/_react["default"].createElement("div", {
|
|
321
|
-
className: "message-buttons-container"
|
|
322
|
-
}, buttons), Boolean(blob) && hasBlobTick() && getBlobTick(6), Boolean(blob) && hasBlobTick() && getBlobTick(5))), timestampsEnabled && /*#__PURE__*/_react["default"].createElement(_timestamps.MessageTimestamp, {
|
|
323
|
-
timestamp: m.timestamp,
|
|
324
|
-
style: timestampStyle,
|
|
325
|
-
isfromuser: isFromUser
|
|
326
|
-
})));
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
var _blob = props.blob,
|
|
330
|
-
_json = props.json,
|
|
331
|
-
nodeProps = (0, _objectWithoutProperties2["default"])(props, _excluded2);
|
|
332
|
-
|
|
333
|
-
var renderNode = function renderNode() {
|
|
334
|
-
return type === _core.INPUT.CUSTOM ? /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
|
|
335
|
-
json: JSON.stringify(_json),
|
|
336
|
-
typing: typing,
|
|
337
|
-
delay: delay
|
|
338
|
-
}, nodeProps)) : /*#__PURE__*/_react["default"].createElement("message", (0, _extends2["default"])({
|
|
339
|
-
typing: typing,
|
|
340
|
-
delay: delay
|
|
341
|
-
}, nodeProps), children);
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
return (0, _react2.renderComponent)({
|
|
345
|
-
renderBrowser: renderBrowser,
|
|
346
|
-
renderNode: renderNode
|
|
347
|
-
});
|
|
348
|
-
};
|
|
349
|
-
|
|
350
|
-
exports.Message = Message;
|
|
351
|
-
//# sourceMappingURL=message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/message.jsx"],"names":["MessageContainer","styled","div","props","isfromuser","BotMessageImageContainer","Blob","bgcolor","color","blob","blobwidth","BlobText","markdownstyle","BlobTickContainer","BlobTick","pointerSize","COLORS","TRANSPARENT","Message","RequestContext","defaultTyping","defaultDelay","type","from","SENDERS","bot","delay","typing","children","enabletimestamps","enableTimestamps","json","style","imagestyle","imageStyle","otherProps","isFromUser","user","isFromBot","markdown","WebchatContext","webchatState","addMessage","updateReplies","getThemeProperty","id","state","setState","disabled","setDisabled","ButtonsDisabler","updateChildrenButtons","parentId","replies","React","Children","toArray","filter","e","Reply","buttons","Button","textChildren","includes","map","timestampsEnabled","getFormattedTimestamp","timestampStyle","getEnvAck","isDev","ack","undefined","decomposedChildren","message","data","timestamp","b","payload","path","url","target","webview","String","title","withDisabledProps","r","text","display","customTypeName","msg","messagesJSON","find","m","length","brandColor","WEBCHAT","CUSTOM_PROPERTIES","BOTONIC_BLUE","getBgColor","userMessageBackground","botMessageBackground","SEASHELL_WHITE","getMessageStyle","botMessageStyle","userMessageStyle","hasBlobTick","renderBrowser","getBlobTick","containerStyle","blobTickStyle","right","marginRight","borderRight","borderLeftColor","left","marginLeft","borderLeft","borderRightColor","BotMessageImage","botMessageImage","brandImage","DEFAULTS","LOGO","animationsEnabled","enableAnimations","resolveCustomTypeName","INPUT","CUSTOM","className","messageStyle","botMessageImageStyle","width","SOLID_WHITE","SOLID_BLACK","botMessageBlobWidth","opacity","__html","Boolean","_blob","_json","nodeProps","renderNode","JSON","stringify"],"mappings":"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","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useEffect, useState } from 'react'\nimport Fade from 'react-reveal/Fade'\nimport styled from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { COLORS, SENDERS, WEBCHAT } from '../constants'\nimport { RequestContext, WebchatContext } from '../contexts'\nimport { isDev, resolveImage } from '../util/environment'\nimport { ConditionalWrapper, renderComponent } from '../util/react'\nimport { Button } from './button'\nimport { ButtonsDisabler } from './buttons-disabler'\nimport { getMarkdownStyle, renderLinks, renderMarkdown } from './markdown'\nimport { Reply } from './reply'\nimport { MessageTimestamp, resolveMessageTimestamps } from './timestamps'\n\nconst MessageContainer = styled.div`\n display: flex;\n justify-content: ${props => (props.isfromuser ? 'flex-end' : 'flex-start')};\n position: relative;\n padding: 0px 6px;\n`\n\nconst BotMessageImageContainer = styled.div`\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Blob = styled.div`\n position: relative;\n margin: 8px;\n border-radius: 8px;\n background-color: ${props => props.bgcolor};\n color: ${props => props.color};\n max-width: ${props =>\n props.blob\n ? props.blobwidth\n ? props.blobwidth\n : '60%'\n : 'calc(100% - 16px)'};\n`\n\nconst BlobText = styled.div`\n padding: ${props => (props.blob ? '8px 12px' : '0px')};\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ${props => props.markdownstyle}\n`\n\nconst BlobTickContainer = styled.div`\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n`\nconst BlobTick = styled.div`\n position: relative;\n margin: -${props => props.pointerSize}px 0px;\n border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};\n`\n\nexport const Message = props => {\n const { defaultTyping, defaultDelay } = useContext(RequestContext)\n let {\n type = '',\n blob = true,\n from = SENDERS.bot,\n delay = defaultDelay,\n typing = defaultTyping,\n children,\n enabletimestamps = props.enabletimestamps || props.enableTimestamps,\n json,\n style,\n imagestyle = props.imagestyle || props.imageStyle,\n ...otherProps\n } = props\n const isFromUser = from === SENDERS.user\n const isFromBot = from === SENDERS.bot\n const markdown = props.markdown\n const {\n webchatState,\n addMessage,\n updateReplies,\n getThemeProperty,\n } = useContext(WebchatContext)\n const [state, setState] = useState({\n id: props.id || uuidv4(),\n })\n\n const [disabled, setDisabled] = useState(false)\n children = ButtonsDisabler.updateChildrenButtons(children, {\n parentId: state.id,\n disabled,\n setDisabled,\n })\n const replies = React.Children.toArray(children).filter(e => e.type === Reply)\n const buttons = React.Children.toArray(children).filter(\n e => e.type === Button\n )\n\n let textChildren = React.Children.toArray(children).filter(\n e => ![Button, Reply].includes(e.type)\n )\n if (isFromUser)\n textChildren = textChildren.map(e =>\n typeof e === 'string' ? renderLinks(e) : e\n )\n\n const {\n timestampsEnabled,\n getFormattedTimestamp,\n timestampStyle,\n } = resolveMessageTimestamps(getThemeProperty, enabletimestamps)\n\n const getEnvAck = () => {\n if (isDev) return 1\n if (!isFromUser) return 1\n if (props.ack !== undefined) return props.ack\n return 0\n }\n\n const ack = getEnvAck()\n\n if (isBrowser()) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const decomposedChildren = json\n const message = {\n id: state.id,\n type,\n data: decomposedChildren ? decomposedChildren : textChildren,\n timestamp: props.timestamp || getFormattedTimestamp,\n markdown,\n from,\n buttons: buttons.map(b => ({\n parentId: b.props.parentId,\n payload: b.props.payload,\n path: b.props.path,\n url: b.props.url,\n target: b.props.target,\n webview: b.props.webview && String(b.props.webview),\n title: b.props.children,\n ...ButtonsDisabler.withDisabledProps(b.props),\n })),\n delay,\n typing,\n replies: replies.map(r => ({\n payload: r.props.payload,\n path: r.props.path,\n url: r.props.url,\n text: r.props.children,\n })),\n display: delay + typing == 0,\n customTypeName: decomposedChildren.customTypeName,\n ack: ack,\n }\n addMessage(message)\n }, [])\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const msg = webchatState.messagesJSON.find(m => m.id === state.id)\n if (\n msg &&\n msg.display &&\n webchatState.messagesJSON.filter(m => !m.display).length == 0\n ) {\n updateReplies(replies)\n }\n }, [webchatState.messagesJSON])\n }\n\n const brandColor = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandColor,\n COLORS.BOTONIC_BLUE\n )\n\n const getBgColor = () => {\n if (!blob) return COLORS.TRANSPARENT\n if (isFromUser) {\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground,\n brandColor\n )\n }\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground,\n COLORS.SEASHELL_WHITE\n )\n }\n\n const getMessageStyle = () =>\n isFromBot\n ? getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle)\n : getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle)\n\n const hasBlobTick = () => getThemeProperty(`message.${from}.blobTick`, true)\n\n const renderBrowser = () => {\n const m = webchatState.messagesJSON.find(m => m.id === state.id)\n if (!m || !m.display) return <></>\n\n const getBlobTick = pointerSize => {\n // to add a border to the blobTick we need to create two triangles and overlap them\n // that is why the color depends on the pointerSize\n // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/\n const color =\n pointerSize == 5\n ? getBgColor()\n : getThemeProperty(\n `message.${from}.style.borderColor`,\n COLORS.TRANSPARENT\n )\n const containerStyle = {\n ...getThemeProperty(`message.${from}.blobTickStyle`),\n }\n const blobTickStyle = {}\n if (isFromUser) {\n containerStyle.right = 0\n containerStyle.marginRight = -pointerSize\n blobTickStyle.borderRight = 0\n blobTickStyle.borderLeftColor = color\n } else {\n containerStyle.left = 0\n containerStyle.marginLeft = -pointerSize\n blobTickStyle.borderLeft = 0\n blobTickStyle.borderRightColor = color\n }\n return (\n <BlobTickContainer style={containerStyle}>\n <BlobTick pointerSize={pointerSize} style={blobTickStyle} />\n </BlobTickContainer>\n )\n }\n\n const BotMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,\n getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.brandImage,\n WEBCHAT.DEFAULTS.LOGO\n )\n )\n const animationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableAnimations,\n true\n )\n\n const resolveCustomTypeName = () =>\n isFromBot && type === INPUT.CUSTOM ? ` ${m.customTypeName}` : ''\n\n const className = `${type}-${from}${resolveCustomTypeName()}`\n return (\n <ConditionalWrapper\n condition={animationsEnabled}\n wrapper={children => <Fade>{children}</Fade>}\n >\n <>\n <MessageContainer\n isfromuser={isFromUser}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.messageStyle),\n }}\n >\n {isFromBot && BotMessageImage && (\n <BotMessageImageContainer\n style={{\n ...getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle\n ),\n ...imagestyle,\n }}\n >\n <img\n style={{ width: '100%' }}\n src={resolveImage(BotMessageImage)}\n />\n </BotMessageImageContainer>\n )}\n <Blob\n className={className}\n bgcolor={getBgColor()}\n color={isFromUser ? COLORS.SOLID_WHITE : COLORS.SOLID_BLACK}\n blobwidth={getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth\n )}\n blob={blob}\n style={{\n ...getMessageStyle(),\n ...style,\n ...{ opacity: ack === 0 ? 0.6 : 1 },\n }}\n {...otherProps}\n >\n {markdown ? (\n <BlobText\n blob={blob}\n dangerouslySetInnerHTML={{\n __html: renderMarkdown(textChildren),\n }}\n markdownstyle={getMarkdownStyle(\n getThemeProperty,\n isFromUser ? COLORS.SEASHELL_WHITE : brandColor\n )}\n />\n ) : (\n <BlobText blob={blob}>{textChildren}</BlobText>\n )}\n {!!buttons.length && (\n <div className='message-buttons-container'>{buttons}</div>\n )}\n {Boolean(blob) && hasBlobTick() && getBlobTick(6)}\n {Boolean(blob) && hasBlobTick() && getBlobTick(5)}\n </Blob>\n </MessageContainer>\n {timestampsEnabled && (\n <MessageTimestamp\n timestamp={m.timestamp}\n style={timestampStyle}\n isfromuser={isFromUser}\n />\n )}\n </>\n </ConditionalWrapper>\n )\n }\n\n const { blob: _blob, json: _json, ...nodeProps } = props\n const renderNode = () =>\n type === INPUT.CUSTOM ? (\n <message\n json={JSON.stringify(_json)}\n typing={typing}\n delay={delay}\n {...nodeProps}\n />\n ) : (\n <message typing={typing} delay={delay} {...nodeProps}>\n {children}\n </message>\n )\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"file":"message.js"}
|