@botonic/react 0.31.0-alpha.7 → 0.31.1-alpha.0
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/package.json +2 -2
- package/lib/esm/app.d.ts +0 -2
- package/lib/esm/app.js +0 -6
- package/lib/esm/app.js.map +0 -1
- package/lib/esm/botonic-tester.d.ts +0 -30
- package/lib/esm/botonic-tester.js +0 -78
- package/lib/esm/botonic-tester.js.map +0 -1
- package/lib/esm/components/audio.d.ts +0 -9
- package/lib/esm/components/audio.js +0 -21
- package/lib/esm/components/audio.js.map +0 -1
- package/lib/esm/components/button.d.ts +0 -17
- package/lib/esm/components/button.js +0 -159
- package/lib/esm/components/button.js.map +0 -1
- package/lib/esm/components/buttons-disabler.d.ts +0 -24
- package/lib/esm/components/buttons-disabler.js +0 -84
- package/lib/esm/components/buttons-disabler.js.map +0 -1
- package/lib/esm/components/carousel.d.ts +0 -10
- package/lib/esm/components/carousel.js +0 -105
- package/lib/esm/components/carousel.js.map +0 -1
- package/lib/esm/components/components.d.ts +0 -12
- package/lib/esm/components/components.js +0 -17
- package/lib/esm/components/components.js.map +0 -1
- package/lib/esm/components/custom-message.d.ts +0 -16
- package/lib/esm/components/custom-message.js +0 -50
- package/lib/esm/components/custom-message.js.map +0 -1
- package/lib/esm/components/document.d.ts +0 -9
- package/lib/esm/components/document.js +0 -42
- package/lib/esm/components/document.js.map +0 -1
- package/lib/esm/components/element.d.ts +0 -4
- package/lib/esm/components/element.js +0 -51
- package/lib/esm/components/element.js.map +0 -1
- package/lib/esm/components/handoff.d.ts +0 -1
- package/lib/esm/components/handoff.js +0 -49
- package/lib/esm/components/handoff.js.map +0 -1
- package/lib/esm/components/image.d.ts +0 -9
- package/lib/esm/components/image.js +0 -35
- package/lib/esm/components/image.js.map +0 -1
- package/lib/esm/components/index-types.d.ts +0 -89
- package/lib/esm/components/index-types.js +0 -2
- package/lib/esm/components/index-types.js.map +0 -1
- package/lib/esm/components/index.d.ts +0 -30
- package/lib/esm/components/index.js +0 -31
- package/lib/esm/components/index.js.map +0 -1
- package/lib/esm/components/location.d.ts +0 -11
- package/lib/esm/components/location.js +0 -27
- package/lib/esm/components/location.js.map +0 -1
- package/lib/esm/components/markdown.d.ts +0 -7
- package/lib/esm/components/markdown.js +0 -152
- package/lib/esm/components/markdown.js.map +0 -1
- package/lib/esm/components/message/index.d.ts +0 -1
- package/lib/esm/components/message/index.js +0 -147
- package/lib/esm/components/message/index.js.map +0 -1
- package/lib/esm/components/message/message-feedback.d.ts +0 -7
- package/lib/esm/components/message/message-feedback.js +0 -59
- package/lib/esm/components/message/message-feedback.js.map +0 -1
- package/lib/esm/components/message/message-footer.d.ts +0 -11
- package/lib/esm/components/message/message-footer.js +0 -17
- package/lib/esm/components/message/message-footer.js.map +0 -1
- package/lib/esm/components/message/message-image.d.ts +0 -7
- package/lib/esm/components/message/message-image.js +0 -19
- package/lib/esm/components/message/message-image.js.map +0 -1
- package/lib/esm/components/message/styles.d.ts +0 -33
- package/lib/esm/components/message/styles.js +0 -118
- package/lib/esm/components/message/styles.js.map +0 -1
- package/lib/esm/components/message/timestamps.d.ts +0 -13
- package/lib/esm/components/message/timestamps.js +0 -40
- package/lib/esm/components/message/timestamps.js.map +0 -1
- package/lib/esm/components/message-template.d.ts +0 -1
- package/lib/esm/components/message-template.js +0 -9
- package/lib/esm/components/message-template.js.map +0 -1
- package/lib/esm/components/multichannel/facebook/facebook.d.ts +0 -17
- package/lib/esm/components/multichannel/facebook/facebook.js +0 -43
- package/lib/esm/components/multichannel/facebook/facebook.js.map +0 -1
- package/lib/esm/components/multichannel/index-types.d.ts +0 -46
- package/lib/esm/components/multichannel/index-types.js +0 -2
- package/lib/esm/components/multichannel/index-types.js.map +0 -1
- package/lib/esm/components/multichannel/index.d.ts +0 -11
- package/lib/esm/components/multichannel/index.js +0 -12
- package/lib/esm/components/multichannel/index.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-button.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-button.js +0 -67
- package/lib/esm/components/multichannel/multichannel-button.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js +0 -74
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-context.d.ts +0 -11
- package/lib/esm/components/multichannel/multichannel-context.js +0 -12
- package/lib/esm/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.js +0 -20
- package/lib/esm/components/multichannel/multichannel-reply.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-text.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-text.js +0 -160
- package/lib/esm/components/multichannel/multichannel-text.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +0 -21
- package/lib/esm/components/multichannel/multichannel-utils.js +0 -81
- package/lib/esm/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel.js +0 -57
- package/lib/esm/components/multichannel/multichannel.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/constants.d.ts +0 -11
- package/lib/esm/components/multichannel/whatsapp/constants.js +0 -10
- package/lib/esm/components/multichannel/whatsapp/constants.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.d.ts +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js +0 -38
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +0 -1
- package/lib/esm/components/pic.d.ts +0 -6
- package/lib/esm/components/pic.js +0 -25
- package/lib/esm/components/pic.js.map +0 -1
- package/lib/esm/components/raw.d.ts +0 -9
- package/lib/esm/components/raw.js +0 -39
- package/lib/esm/components/raw.js.map +0 -1
- package/lib/esm/components/reply.d.ts +0 -10
- package/lib/esm/components/reply.js +0 -53
- package/lib/esm/components/reply.js.map +0 -1
- package/lib/esm/components/share-button.d.ts +0 -1
- package/lib/esm/components/share-button.js +0 -9
- package/lib/esm/components/share-button.js.map +0 -1
- package/lib/esm/components/subtitle.d.ts +0 -6
- package/lib/esm/components/subtitle.js +0 -19
- package/lib/esm/components/subtitle.js.map +0 -1
- package/lib/esm/components/text.d.ts +0 -7
- package/lib/esm/components/text.js +0 -40
- package/lib/esm/components/text.js.map +0 -1
- package/lib/esm/components/title.d.ts +0 -6
- package/lib/esm/components/title.js +0 -17
- package/lib/esm/components/title.js.map +0 -1
- package/lib/esm/components/video.d.ts +0 -9
- package/lib/esm/components/video.js +0 -25
- package/lib/esm/components/video.js.map +0 -1
- package/lib/esm/components/webchat-settings.d.ts +0 -16
- package/lib/esm/components/webchat-settings.js +0 -69
- package/lib/esm/components/webchat-settings.js.map +0 -1
- package/lib/esm/components/whatsapp-button-list.d.ts +0 -20
- package/lib/esm/components/whatsapp-button-list.js +0 -47
- package/lib/esm/components/whatsapp-button-list.js.map +0 -1
- package/lib/esm/components/whatsapp-catalog.d.ts +0 -6
- package/lib/esm/components/whatsapp-catalog.js +0 -21
- package/lib/esm/components/whatsapp-catalog.js.map +0 -1
- package/lib/esm/components/whatsapp-cta-url-button.d.ts +0 -15
- package/lib/esm/components/whatsapp-cta-url-button.js +0 -33
- package/lib/esm/components/whatsapp-cta-url-button.js.map +0 -1
- package/lib/esm/components/whatsapp-media-carousel.d.ts +0 -46
- package/lib/esm/components/whatsapp-media-carousel.js +0 -36
- package/lib/esm/components/whatsapp-media-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-carousel.d.ts +0 -32
- package/lib/esm/components/whatsapp-product-carousel.js +0 -30
- package/lib/esm/components/whatsapp-product-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-list.d.ts +0 -15
- package/lib/esm/components/whatsapp-product-list.js +0 -22
- package/lib/esm/components/whatsapp-product-list.js.map +0 -1
- package/lib/esm/components/whatsapp-product.d.ts +0 -7
- package/lib/esm/components/whatsapp-product.js +0 -21
- package/lib/esm/components/whatsapp-product.js.map +0 -1
- package/lib/esm/components/whatsapp-template.d.ts +0 -1
- package/lib/esm/components/whatsapp-template.js +0 -20
- package/lib/esm/components/whatsapp-template.js.map +0 -1
- package/lib/esm/constants.d.ts +0 -165
- package/lib/esm/constants.js +0 -187
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/contexts.d.ts +0 -18
- package/lib/esm/contexts.js +0 -18
- package/lib/esm/contexts.js.map +0 -1
- package/lib/esm/dev-app.d.ts +0 -38
- package/lib/esm/dev-app.js +0 -81
- package/lib/esm/dev-app.js.map +0 -1
- package/lib/esm/index-types.d.ts +0 -178
- package/lib/esm/index-types.js +0 -12
- package/lib/esm/index-types.js.map +0 -1
- package/lib/esm/index.d.ts +0 -11
- package/lib/esm/index.js +0 -12
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/message-utils.d.ts +0 -19
- package/lib/esm/message-utils.js +0 -41
- package/lib/esm/message-utils.js.map +0 -1
- package/lib/esm/msg-to-botonic.d.ts +0 -18
- package/lib/esm/msg-to-botonic.js +0 -132
- package/lib/esm/msg-to-botonic.js.map +0 -1
- package/lib/esm/node-app.d.ts +0 -7
- package/lib/esm/node-app.js +0 -19
- package/lib/esm/node-app.js.map +0 -1
- package/lib/esm/react-bot.d.ts +0 -8
- package/lib/esm/react-bot.js +0 -32
- package/lib/esm/react-bot.js.map +0 -1
- package/lib/esm/shared/styles.d.ts +0 -2
- package/lib/esm/shared/styles.js +0 -28
- package/lib/esm/shared/styles.js.map +0 -1
- package/lib/esm/util/dom.d.ts +0 -4
- package/lib/esm/util/dom.js +0 -24
- package/lib/esm/util/dom.js.map +0 -1
- package/lib/esm/util/environment.d.ts +0 -6
- package/lib/esm/util/environment.js +0 -61
- package/lib/esm/util/environment.js.map +0 -1
- package/lib/esm/util/error-boundary.d.ts +0 -7
- package/lib/esm/util/error-boundary.js +0 -28
- package/lib/esm/util/error-boundary.js.map +0 -1
- package/lib/esm/util/functional.d.ts +0 -3
- package/lib/esm/util/functional.js +0 -26
- package/lib/esm/util/functional.js.map +0 -1
- package/lib/esm/util/index.d.ts +0 -9
- package/lib/esm/util/index.js +0 -10
- package/lib/esm/util/index.js.map +0 -1
- package/lib/esm/util/logs.d.ts +0 -2
- package/lib/esm/util/logs.js +0 -15
- package/lib/esm/util/logs.js.map +0 -1
- package/lib/esm/util/objects.d.ts +0 -3
- package/lib/esm/util/objects.js +0 -38
- package/lib/esm/util/objects.js.map +0 -1
- package/lib/esm/util/react.d.ts +0 -12
- package/lib/esm/util/react.js +0 -34
- package/lib/esm/util/react.js.map +0 -1
- package/lib/esm/util/regexs.d.ts +0 -2
- package/lib/esm/util/regexs.js +0 -18
- package/lib/esm/util/regexs.js.map +0 -1
- package/lib/esm/util/strings.d.ts +0 -1
- package/lib/esm/util/strings.js +0 -7
- package/lib/esm/util/strings.js.map +0 -1
- package/lib/esm/util/webchat.d.ts +0 -22
- package/lib/esm/util/webchat.js +0 -55
- package/lib/esm/util/webchat.js.map +0 -1
- package/lib/esm/util/webviews.d.ts +0 -1
- package/lib/esm/util/webviews.js +0 -6
- package/lib/esm/util/webviews.js.map +0 -1
- package/lib/esm/webchat/chat-area/index.d.ts +0 -1
- package/lib/esm/webchat/chat-area/index.js +0 -18
- package/lib/esm/webchat/chat-area/index.js.map +0 -1
- package/lib/esm/webchat/chat-area/styles.d.ts +0 -3
- package/lib/esm/webchat/chat-area/styles.js +0 -9
- package/lib/esm/webchat/chat-area/styles.js.map +0 -1
- package/lib/esm/webchat/components/common.d.ts +0 -1
- package/lib/esm/webchat/components/common.js +0 -9
- package/lib/esm/webchat/components/common.js.map +0 -1
- package/lib/esm/webchat/components/conditional-animation.d.ts +0 -1
- package/lib/esm/webchat/components/conditional-animation.js +0 -12
- package/lib/esm/webchat/components/conditional-animation.js.map +0 -1
- package/lib/esm/webchat/components/opened-persistent-menu.d.ts +0 -6
- package/lib/esm/webchat/components/opened-persistent-menu.js +0 -30
- package/lib/esm/webchat/components/opened-persistent-menu.js.map +0 -1
- package/lib/esm/webchat/constants.d.ts +0 -8
- package/lib/esm/webchat/constants.js +0 -10
- package/lib/esm/webchat/constants.js.map +0 -1
- package/lib/esm/webchat/context/actions.d.ts +0 -29
- package/lib/esm/webchat/context/actions.js +0 -32
- package/lib/esm/webchat/context/actions.js.map +0 -1
- package/lib/esm/webchat/context/index.d.ts +0 -5
- package/lib/esm/webchat/context/index.js +0 -78
- package/lib/esm/webchat/context/index.js.map +0 -1
- package/lib/esm/webchat/context/messages-reducer.d.ts +0 -6
- package/lib/esm/webchat/context/messages-reducer.js +0 -85
- package/lib/esm/webchat/context/messages-reducer.js.map +0 -1
- package/lib/esm/webchat/context/types.d.ts +0 -74
- package/lib/esm/webchat/context/types.js +0 -2
- package/lib/esm/webchat/context/types.js.map +0 -1
- package/lib/esm/webchat/context/use-webchat.d.ts +0 -47
- package/lib/esm/webchat/context/use-webchat.js +0 -195
- package/lib/esm/webchat/context/use-webchat.js.map +0 -1
- package/lib/esm/webchat/context/webchat-reducer.d.ts +0 -6
- package/lib/esm/webchat/context/webchat-reducer.js +0 -48
- package/lib/esm/webchat/context/webchat-reducer.js.map +0 -1
- package/lib/esm/webchat/cover-component/index.d.ts +0 -6
- package/lib/esm/webchat/cover-component/index.js +0 -17
- package/lib/esm/webchat/cover-component/index.js.map +0 -1
- package/lib/esm/webchat/devices/index.d.ts +0 -11
- package/lib/esm/webchat/devices/index.js +0 -18
- package/lib/esm/webchat/devices/index.js.map +0 -1
- package/lib/esm/webchat/header/default-header.d.ts +0 -1
- package/lib/esm/webchat/header/default-header.js +0 -21
- package/lib/esm/webchat/header/default-header.js.map +0 -1
- package/lib/esm/webchat/header/index.d.ts +0 -2
- package/lib/esm/webchat/header/index.js +0 -20
- package/lib/esm/webchat/header/index.js.map +0 -1
- package/lib/esm/webchat/header/styles.d.ts +0 -7
- package/lib/esm/webchat/header/styles.js +0 -55
- package/lib/esm/webchat/header/styles.js.map +0 -1
- package/lib/esm/webchat/hooks/index.d.ts +0 -10
- package/lib/esm/webchat/hooks/index.js +0 -11
- package/lib/esm/webchat/hooks/index.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-visible.d.ts +0 -8
- package/lib/esm/webchat/hooks/use-component-visible.js +0 -20
- package/lib/esm/webchat/hooks/use-component-visible.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.d.ts +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.js +0 -5
- package/lib/esm/webchat/hooks/use-component-will-mount.js.map +0 -1
- package/lib/esm/webchat/hooks/use-device-adapter.d.ts +0 -3
- package/lib/esm/webchat/hooks/use-device-adapter.js +0 -42
- package/lib/esm/webchat/hooks/use-device-adapter.js.map +0 -1
- package/lib/esm/webchat/hooks/use-previous.d.ts +0 -1
- package/lib/esm/webchat/hooks/use-previous.js +0 -9
- package/lib/esm/webchat/hooks/use-previous.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.d.ts +0 -9
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js +0 -19
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scrollbar-controller.d.ts +0 -6
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js +0 -136
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +0 -1
- package/lib/esm/webchat/hooks/use-typing.d.ts +0 -10
- package/lib/esm/webchat/hooks/use-typing.js +0 -28
- package/lib/esm/webchat/hooks/use-typing.js.map +0 -1
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.d.ts +0 -3
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js +0 -24
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-dimensions.d.ts +0 -4
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js +0 -36
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-resizer.d.ts +0 -4
- package/lib/esm/webchat/hooks/use-webchat-resizer.js +0 -30
- package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +0 -1
- package/lib/esm/webchat/index-types.d.ts +0 -18
- package/lib/esm/webchat/index-types.js +0 -2
- package/lib/esm/webchat/index-types.js.map +0 -1
- package/lib/esm/webchat/index.d.ts +0 -5
- package/lib/esm/webchat/index.js +0 -11
- package/lib/esm/webchat/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/attachment.d.ts +0 -7
- package/lib/esm/webchat/input-panel/attachment.js +0 -26
- package/lib/esm/webchat/input-panel/attachment.js.map +0 -1
- package/lib/esm/webchat/input-panel/emoji-picker.d.ts +0 -6
- package/lib/esm/webchat/input-panel/emoji-picker.js +0 -23
- package/lib/esm/webchat/input-panel/emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/index.d.ts +0 -12
- package/lib/esm/webchat/input-panel/index.js +0 -55
- package/lib/esm/webchat/input-panel/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/opened-emoji-picker.d.ts +0 -6
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js +0 -10
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/persistent-menu.d.ts +0 -6
- package/lib/esm/webchat/input-panel/persistent-menu.js +0 -14
- package/lib/esm/webchat/input-panel/persistent-menu.js.map +0 -1
- package/lib/esm/webchat/input-panel/send-button.d.ts +0 -5
- package/lib/esm/webchat/input-panel/send-button.js +0 -14
- package/lib/esm/webchat/input-panel/send-button.js.map +0 -1
- package/lib/esm/webchat/input-panel/styles.d.ts +0 -3
- package/lib/esm/webchat/input-panel/styles.js +0 -27
- package/lib/esm/webchat/input-panel/styles.js.map +0 -1
- package/lib/esm/webchat/input-panel/textarea.d.ts +0 -11
- package/lib/esm/webchat/input-panel/textarea.js +0 -58
- package/lib/esm/webchat/input-panel/textarea.js.map +0 -1
- package/lib/esm/webchat/message-list/index.d.ts +0 -1
- package/lib/esm/webchat/message-list/index.js +0 -107
- package/lib/esm/webchat/message-list/index.js.map +0 -1
- package/lib/esm/webchat/message-list/intro-message.d.ts +0 -1
- package/lib/esm/webchat/message-list/intro-message.js +0 -18
- package/lib/esm/webchat/message-list/intro-message.js.map +0 -1
- package/lib/esm/webchat/message-list/scroll-button.d.ts +0 -6
- package/lib/esm/webchat/message-list/scroll-button.js +0 -12
- package/lib/esm/webchat/message-list/scroll-button.js.map +0 -1
- package/lib/esm/webchat/message-list/styles.d.ts +0 -5
- package/lib/esm/webchat/message-list/styles.js +0 -56
- package/lib/esm/webchat/message-list/styles.js.map +0 -1
- package/lib/esm/webchat/message-list/unread-messages-banner.d.ts +0 -6
- package/lib/esm/webchat/message-list/unread-messages-banner.js +0 -13
- package/lib/esm/webchat/message-list/unread-messages-banner.js.map +0 -1
- package/lib/esm/webchat/message-list/use-debounce.d.ts +0 -1
- package/lib/esm/webchat/message-list/use-debounce.js +0 -14
- package/lib/esm/webchat/message-list/use-debounce.js.map +0 -1
- package/lib/esm/webchat/message-list/use-notifications.d.ts +0 -7
- package/lib/esm/webchat/message-list/use-notifications.js +0 -20
- package/lib/esm/webchat/message-list/use-notifications.js.map +0 -1
- package/lib/esm/webchat/replies/index.d.ts +0 -1
- package/lib/esm/webchat/replies/index.js +0 -28
- package/lib/esm/webchat/replies/index.js.map +0 -1
- package/lib/esm/webchat/replies/styles.d.ts +0 -8
- package/lib/esm/webchat/replies/styles.js +0 -21
- package/lib/esm/webchat/replies/styles.js.map +0 -1
- package/lib/esm/webchat/session-view.d.ts +0 -1
- package/lib/esm/webchat/session-view.js +0 -96
- package/lib/esm/webchat/session-view.js.map +0 -1
- package/lib/esm/webchat/styles.d.ts +0 -9
- package/lib/esm/webchat/styles.js +0 -50
- package/lib/esm/webchat/styles.js.map +0 -1
- package/lib/esm/webchat/theme/types.d.ts +0 -167
- package/lib/esm/webchat/theme/types.js +0 -2
- package/lib/esm/webchat/theme/types.js.map +0 -1
- package/lib/esm/webchat/tracking.d.ts +0 -7
- package/lib/esm/webchat/tracking.js +0 -10
- package/lib/esm/webchat/tracking.js.map +0 -1
- package/lib/esm/webchat/trigger-button/index.d.ts +0 -2
- package/lib/esm/webchat/trigger-button/index.js +0 -28
- package/lib/esm/webchat/trigger-button/index.js.map +0 -1
- package/lib/esm/webchat/trigger-button/styles.d.ts +0 -3
- package/lib/esm/webchat/trigger-button/styles.js +0 -36
- package/lib/esm/webchat/trigger-button/styles.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/index.d.ts +0 -3
- package/lib/esm/webchat/typing-indicator/index.js +0 -8
- package/lib/esm/webchat/typing-indicator/index.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/styles.d.ts +0 -7
- package/lib/esm/webchat/typing-indicator/styles.js +0 -46
- package/lib/esm/webchat/typing-indicator/styles.js.map +0 -1
- package/lib/esm/webchat/use-storage-state-hook.d.ts +0 -1
- package/lib/esm/webchat/use-storage-state-hook.js +0 -38
- package/lib/esm/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/esm/webchat/utils.d.ts +0 -2
- package/lib/esm/webchat/utils.js +0 -8
- package/lib/esm/webchat/utils.js.map +0 -1
- package/lib/esm/webchat/webchat-dev.d.ts +0 -7
- package/lib/esm/webchat/webchat-dev.js +0 -56
- package/lib/esm/webchat/webchat-dev.js.map +0 -1
- package/lib/esm/webchat/webchat.d.ts +0 -4
- package/lib/esm/webchat/webchat.js +0 -522
- package/lib/esm/webchat/webchat.js.map +0 -1
- package/lib/esm/webchat/webview.d.ts +0 -2
- package/lib/esm/webchat/webview.js +0 -71
- package/lib/esm/webchat/webview.js.map +0 -1
- package/lib/esm/webchat-app.d.ts +0 -78
- package/lib/esm/webchat-app.js +0 -363
- package/lib/esm/webchat-app.js.map +0 -1
- package/lib/esm/webview-app.d.ts +0 -7
- package/lib/esm/webview-app.js +0 -105
- package/lib/esm/webview-app.js.map +0 -1
|
@@ -1,522 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { BotonicAction, INPUT, isMobile, params2queryString, } from '@botonic/core';
|
|
4
|
-
import merge from 'lodash.merge';
|
|
5
|
-
import { forwardRef, useEffect, useImperativeHandle, useRef, useState, } from 'react';
|
|
6
|
-
import { StyleSheetManager } from 'styled-components';
|
|
7
|
-
import { v7 as uuidv7 } from 'uuid';
|
|
8
|
-
import { Audio, Document, Handoff, Image, normalizeWebchatSettings, Text, Video, } from '../components';
|
|
9
|
-
import { COLORS, MAX_ALLOWED_SIZE_MB, ROLES, WEBCHAT } from '../constants';
|
|
10
|
-
import { WebviewRequestContext } from '../contexts';
|
|
11
|
-
import { SENDERS } from '../index-types';
|
|
12
|
-
import { getMediaType, isAllowedSize, isAudio, isDocument, isImage, isMedia, isText, isVideo, readDataURL, } from '../message-utils';
|
|
13
|
-
import { msgToBotonic } from '../msg-to-botonic';
|
|
14
|
-
import { isDev } from '../util/environment';
|
|
15
|
-
import { deserializeRegex, stringifyWithRegexs } from '../util/regexs';
|
|
16
|
-
import { _getThemeProperty, getServerErrorMessage, initSession, shouldKeepSessionOnReload, } from '../util/webchat';
|
|
17
|
-
import { ChatArea } from './chat-area';
|
|
18
|
-
import { OpenedPersistentMenu } from './components/opened-persistent-menu';
|
|
19
|
-
import { BotonicContainerId } from './constants';
|
|
20
|
-
import { useWebchat, WebchatContext } from './context';
|
|
21
|
-
import { CoverComponent } from './cover-component';
|
|
22
|
-
import { WebchatHeader } from './header';
|
|
23
|
-
import { useComponentWillMount, usePrevious, useScrollToBottom, useTyping, } from './hooks';
|
|
24
|
-
import { InputPanel } from './input-panel';
|
|
25
|
-
import { DarkBackgroundMenu, ErrorMessage, ErrorMessageContainer, StyledWebchat, } from './styles';
|
|
26
|
-
import { TriggerButton } from './trigger-button';
|
|
27
|
-
import { useStorageState } from './use-storage-state-hook';
|
|
28
|
-
import { getParsedAction } from './utils';
|
|
29
|
-
import { WebviewContainer } from './webview';
|
|
30
|
-
// eslint-disable-next-line complexity, react/display-name
|
|
31
|
-
const Webchat = forwardRef((props, ref) => {
|
|
32
|
-
var _a;
|
|
33
|
-
const { addMessage, addMessageComponent, clearMessages, doRenderCustomComponent, resetUnreadMessages, setCurrentAttachment, setError, setIsInputFocused, setLastMessageVisible, setOnline, toggleCoverComponent, toggleEmojiPicker, togglePersistentMenu, toggleWebchat, updateDevSettings, updateHandoff, updateLastMessageDate, updateLastRoutePath, updateLatestInput, updateMessage, updateReplies, updateSession, updateTheme, updateTyping, updateWebview, removeWebview, removeReplies, webchatState, webchatRef, chatAreaRef, inputPanelRef, headerRef, repliesRef, scrollableMessagesListRef,
|
|
34
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
35
|
-
} = props.webchatHooks || useWebchat();
|
|
36
|
-
const firstUpdate = useRef(true);
|
|
37
|
-
const isOnline = () => webchatState.online;
|
|
38
|
-
const currentDateString = () => new Date().toISOString();
|
|
39
|
-
const theme = merge(webchatState.theme, props.theme);
|
|
40
|
-
const { initialSession, initialDevSettings, onStateChange } = props;
|
|
41
|
-
const getThemeProperty = _getThemeProperty(theme);
|
|
42
|
-
const [customComponent, setCustomComponent] = useState(null);
|
|
43
|
-
const storage = props.storage;
|
|
44
|
-
const storageKey = typeof props.storageKey === 'function'
|
|
45
|
-
? props.storageKey()
|
|
46
|
-
: props.storageKey;
|
|
47
|
-
const [botonicState, saveState] = useStorageState(storage, storageKey);
|
|
48
|
-
const host = props.host || document.body;
|
|
49
|
-
const { scrollToBottom } = useScrollToBottom({ host });
|
|
50
|
-
const saveWebchatState = (webchatState) => {
|
|
51
|
-
storage &&
|
|
52
|
-
saveState(JSON.parse(stringifyWithRegexs({
|
|
53
|
-
messages: webchatState.messagesJSON,
|
|
54
|
-
session: webchatState.session,
|
|
55
|
-
lastRoutePath: webchatState.lastRoutePath,
|
|
56
|
-
devSettings: webchatState.devSettings,
|
|
57
|
-
lastMessageUpdate: webchatState.lastMessageUpdate,
|
|
58
|
-
themeUpdates: webchatState.themeUpdates,
|
|
59
|
-
})));
|
|
60
|
-
};
|
|
61
|
-
const handleAttachment = (event) => {
|
|
62
|
-
if (!isAllowedSize(event.target.files[0].size)) {
|
|
63
|
-
throw new Error(`The file is too large. A maximum of ${MAX_ALLOWED_SIZE_MB}MB is allowed.`);
|
|
64
|
-
}
|
|
65
|
-
// TODO: Attach more files?
|
|
66
|
-
setCurrentAttachment(event.target.files[0]);
|
|
67
|
-
};
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
if (webchatState.currentAttachment) {
|
|
70
|
-
sendAttachment(webchatState.currentAttachment);
|
|
71
|
-
}
|
|
72
|
-
}, [webchatState.currentAttachment]);
|
|
73
|
-
const sendUserInput = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
-
if (props.onUserInput) {
|
|
75
|
-
resetUnreadMessages();
|
|
76
|
-
scrollToBottom();
|
|
77
|
-
props.onUserInput({
|
|
78
|
-
user: webchatState.session.user,
|
|
79
|
-
// TODO: Review if this input.sentBy exists in the frontend
|
|
80
|
-
input: input,
|
|
81
|
-
//@ts-ignore
|
|
82
|
-
session: webchatState.session,
|
|
83
|
-
// TODO: Review why we were passing lastRoutePath, is only for devMode?
|
|
84
|
-
lastRoutePath: webchatState.lastRoutePath,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
// Load styles stored in window._botonicInsertStyles by Webpack
|
|
89
|
-
useComponentWillMount(() => {
|
|
90
|
-
if (window._botonicInsertStyles && window._botonicInsertStyles.length) {
|
|
91
|
-
for (const botonicStyle of window._botonicInsertStyles) {
|
|
92
|
-
// Injecting styles at head is needed even if we use shadowDOM
|
|
93
|
-
// as some dependencies like simplebar rely on creating ephemeral elements
|
|
94
|
-
// on document.body and assume styles will be available globally
|
|
95
|
-
document.head.appendChild(botonicStyle);
|
|
96
|
-
// injecting styles in host node too so that shadowDOM works
|
|
97
|
-
if (props.shadowDOM)
|
|
98
|
-
host.appendChild(botonicStyle.cloneNode(true));
|
|
99
|
-
}
|
|
100
|
-
delete window._botonicInsertStyles;
|
|
101
|
-
}
|
|
102
|
-
if (props.shadowDOM) {
|
|
103
|
-
// emoji-picker-react injects styles in head, so we need to
|
|
104
|
-
// re-inject them in our host node to make it work with shadowDOM
|
|
105
|
-
for (const style of document.querySelectorAll('style')) {
|
|
106
|
-
if (style.textContent &&
|
|
107
|
-
style.textContent.includes('emoji-picker-react'))
|
|
108
|
-
host.appendChild(style.cloneNode(true));
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
// Load initial state from storage
|
|
113
|
-
useEffect(() => {
|
|
114
|
-
let { messages, session, lastRoutePath, devSettings, lastMessageUpdate, themeUpdates, } = botonicState || {};
|
|
115
|
-
session = initSession(session);
|
|
116
|
-
updateSession(session);
|
|
117
|
-
if (shouldKeepSessionOnReload({ initialDevSettings, devSettings })) {
|
|
118
|
-
if (messages) {
|
|
119
|
-
messages.forEach(message => {
|
|
120
|
-
var _a, _b, _c;
|
|
121
|
-
addMessage(message);
|
|
122
|
-
const newMessageComponent = msgToBotonic(Object.assign(Object.assign({}, message), { delay: 0, typing: 0 }), ((_b = (_a = props.theme) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.customTypes) || ((_c = props.theme) === null || _c === void 0 ? void 0 : _c.customMessageTypes));
|
|
123
|
-
//@ts-ignore
|
|
124
|
-
if (newMessageComponent)
|
|
125
|
-
addMessageComponent(newMessageComponent);
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
if (initialSession)
|
|
129
|
-
updateSession(merge(initialSession, session));
|
|
130
|
-
if (lastRoutePath)
|
|
131
|
-
updateLastRoutePath(lastRoutePath);
|
|
132
|
-
}
|
|
133
|
-
else
|
|
134
|
-
updateSession(merge(initialSession, session));
|
|
135
|
-
if (devSettings)
|
|
136
|
-
updateDevSettings(devSettings);
|
|
137
|
-
else if (initialDevSettings)
|
|
138
|
-
updateDevSettings(initialDevSettings);
|
|
139
|
-
if (lastMessageUpdate) {
|
|
140
|
-
updateLastMessageDate(lastMessageUpdate);
|
|
141
|
-
}
|
|
142
|
-
if (themeUpdates !== undefined) {
|
|
143
|
-
updateTheme(merge(props.theme, themeUpdates), themeUpdates);
|
|
144
|
-
}
|
|
145
|
-
if (props.onInit) {
|
|
146
|
-
setTimeout(() => props.onInit && props.onInit(), 100);
|
|
147
|
-
}
|
|
148
|
-
}, []);
|
|
149
|
-
useEffect(() => {
|
|
150
|
-
if (!webchatState.isWebchatOpen) {
|
|
151
|
-
if (webchatState.isLastMessageVisible) {
|
|
152
|
-
resetUnreadMessages();
|
|
153
|
-
}
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
}, [webchatState.isWebchatOpen]);
|
|
157
|
-
useEffect(() => {
|
|
158
|
-
const { messagesJSON, session } = webchatState;
|
|
159
|
-
if (onStateChange && typeof onStateChange === 'function' && session.user) {
|
|
160
|
-
onStateChange({ messagesJSON, user: session.user });
|
|
161
|
-
}
|
|
162
|
-
saveWebchatState(webchatState);
|
|
163
|
-
}, [
|
|
164
|
-
webchatState.messagesJSON,
|
|
165
|
-
webchatState.session,
|
|
166
|
-
webchatState.lastRoutePath,
|
|
167
|
-
webchatState.devSettings,
|
|
168
|
-
webchatState.lastMessageUpdate,
|
|
169
|
-
]);
|
|
170
|
-
useEffect(() => {
|
|
171
|
-
if (!webchatState.online) {
|
|
172
|
-
setError({
|
|
173
|
-
message: getServerErrorMessage(props.server),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
if (!firstUpdate.current) {
|
|
178
|
-
setError(undefined);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}, [webchatState.online]);
|
|
182
|
-
useTyping({ webchatState, updateTyping, updateMessage, host });
|
|
183
|
-
useEffect(() => {
|
|
184
|
-
updateTheme(merge(props.theme, theme, webchatState.themeUpdates));
|
|
185
|
-
}, [props.theme, webchatState.themeUpdates]);
|
|
186
|
-
const openWebview = (webviewComponent, params) => {
|
|
187
|
-
updateWebview(webviewComponent, params);
|
|
188
|
-
};
|
|
189
|
-
const textareaRef = useRef();
|
|
190
|
-
const closeWebview = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
191
|
-
var _b;
|
|
192
|
-
removeWebview();
|
|
193
|
-
if (userInputEnabled) {
|
|
194
|
-
(_b = textareaRef.current) === null || _b === void 0 ? void 0 : _b.focus();
|
|
195
|
-
}
|
|
196
|
-
if (options === null || options === void 0 ? void 0 : options.payload) {
|
|
197
|
-
yield sendPayload(options.payload);
|
|
198
|
-
}
|
|
199
|
-
else if (options === null || options === void 0 ? void 0 : options.path) {
|
|
200
|
-
const params = options.params ? params2queryString(options.params) : '';
|
|
201
|
-
yield sendPayload(`__PATH_PAYLOAD__${options.path}?${params}`);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
const persistentMenuOptions = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.persistentMenu, props.persistentMenu);
|
|
205
|
-
const darkBackgroundMenu = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu, false);
|
|
206
|
-
const getBlockInputs = (rule, inputData) => {
|
|
207
|
-
const processedInput = rule.preprocess
|
|
208
|
-
? rule.preprocess(inputData)
|
|
209
|
-
: inputData;
|
|
210
|
-
return rule.match.some(regex => {
|
|
211
|
-
if (typeof regex === 'string')
|
|
212
|
-
regex = deserializeRegex(regex);
|
|
213
|
-
return regex.test(processedInput);
|
|
214
|
-
});
|
|
215
|
-
};
|
|
216
|
-
const checkBlockInput = input => {
|
|
217
|
-
// if is a text we check if it is a serialized RE
|
|
218
|
-
const blockInputs = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.blockInputs, props.blockInputs);
|
|
219
|
-
if (!Array.isArray(blockInputs))
|
|
220
|
-
return false;
|
|
221
|
-
for (const rule of blockInputs) {
|
|
222
|
-
if (getBlockInputs(rule, input.data)) {
|
|
223
|
-
addMessageComponent(_jsx(Text
|
|
224
|
-
// Is necessary to add the id of the input
|
|
225
|
-
// to keep the input.id generated in the frontend as id of the message
|
|
226
|
-
// @ts-ignore
|
|
227
|
-
, Object.assign({
|
|
228
|
-
// Is necessary to add the id of the input
|
|
229
|
-
// to keep the input.id generated in the frontend as id of the message
|
|
230
|
-
// @ts-ignore
|
|
231
|
-
id: input.id, sentBy: SENDERS.user, blob: false, style: {
|
|
232
|
-
backgroundColor: COLORS.SCORPION_GRAY,
|
|
233
|
-
borderColor: COLORS.SCORPION_GRAY,
|
|
234
|
-
padding: '8px 12px',
|
|
235
|
-
} }, { children: rule.message })));
|
|
236
|
-
removeReplies();
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
return false;
|
|
241
|
-
};
|
|
242
|
-
const closeMenu = () => {
|
|
243
|
-
togglePersistentMenu(false);
|
|
244
|
-
};
|
|
245
|
-
const persistentMenu = () => {
|
|
246
|
-
return (_jsx(OpenedPersistentMenu, { onClick: closeMenu, options: persistentMenuOptions, borderRadius: webchatState.theme.style.borderRadius || '10px' }));
|
|
247
|
-
};
|
|
248
|
-
const getCoverComponent = () => {
|
|
249
|
-
return getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.coverComponent, props.coverComponent &&
|
|
250
|
-
(props.coverComponent.component || props.coverComponent));
|
|
251
|
-
};
|
|
252
|
-
const coverComponent = getCoverComponent();
|
|
253
|
-
const coverComponentProps = (_a = props.coverComponent) === null || _a === void 0 ? void 0 : _a.props;
|
|
254
|
-
useEffect(() => {
|
|
255
|
-
if (!coverComponent)
|
|
256
|
-
return;
|
|
257
|
-
if (!botonicState ||
|
|
258
|
-
(botonicState.messages && botonicState.messages.length === 0))
|
|
259
|
-
toggleCoverComponent(true);
|
|
260
|
-
}, []);
|
|
261
|
-
const messageComponentFromInput = input => {
|
|
262
|
-
let messageComponent = null;
|
|
263
|
-
if (isText(input)) {
|
|
264
|
-
messageComponent = (_jsx(Text
|
|
265
|
-
// Is necessary to add the id of the input
|
|
266
|
-
// to keep the input.id generated in the frontend as id of the message
|
|
267
|
-
// @ts-ignore
|
|
268
|
-
, Object.assign({
|
|
269
|
-
// Is necessary to add the id of the input
|
|
270
|
-
// to keep the input.id generated in the frontend as id of the message
|
|
271
|
-
// @ts-ignore
|
|
272
|
-
id: input.id,
|
|
273
|
-
// Is necessary to add the payload of the input when user clicks a button
|
|
274
|
-
// @ts-ignore
|
|
275
|
-
payload: input.payload, sentBy: SENDERS.user }, { children: input.data })));
|
|
276
|
-
}
|
|
277
|
-
else if (isMedia(input)) {
|
|
278
|
-
const temporaryDisplayUrl = URL.createObjectURL(input.data);
|
|
279
|
-
// TODO: We sould use URL.revokeObjectURL(temporaryDisplayUrl) when the component is unmounted
|
|
280
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL_static#memory_management
|
|
281
|
-
const mediaProps = {
|
|
282
|
-
id: input.id,
|
|
283
|
-
sentBy: SENDERS.user,
|
|
284
|
-
src: temporaryDisplayUrl,
|
|
285
|
-
};
|
|
286
|
-
if (isImage(input)) {
|
|
287
|
-
mediaProps.input = input;
|
|
288
|
-
messageComponent = _jsx(Image, Object.assign({}, mediaProps));
|
|
289
|
-
}
|
|
290
|
-
else if (isAudio(input))
|
|
291
|
-
messageComponent = _jsx(Audio, Object.assign({}, mediaProps));
|
|
292
|
-
else if (isVideo(input))
|
|
293
|
-
messageComponent = _jsx(Video, Object.assign({}, mediaProps));
|
|
294
|
-
else if (isDocument(input))
|
|
295
|
-
messageComponent = _jsx(Document, Object.assign({}, mediaProps));
|
|
296
|
-
}
|
|
297
|
-
return messageComponent;
|
|
298
|
-
};
|
|
299
|
-
const sendInput = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
300
|
-
if (!input || Object.keys(input).length == 0)
|
|
301
|
-
return;
|
|
302
|
-
if (isText(input) && (!input.data || !input.data.trim()))
|
|
303
|
-
return; // in case trim() doesn't work in a browser we can use !/\S/.test(input.data)
|
|
304
|
-
if (isText(input) && checkBlockInput(input))
|
|
305
|
-
return;
|
|
306
|
-
if (!input.id)
|
|
307
|
-
input.id = uuidv7();
|
|
308
|
-
const messageComponent = messageComponentFromInput(input);
|
|
309
|
-
if (messageComponent)
|
|
310
|
-
addMessageComponent(messageComponent);
|
|
311
|
-
if (isMedia(input))
|
|
312
|
-
input.data = yield readDataURL(input.data);
|
|
313
|
-
sendUserInput(input);
|
|
314
|
-
updateLatestInput(input);
|
|
315
|
-
isOnline() && updateLastMessageDate(currentDateString());
|
|
316
|
-
removeReplies();
|
|
317
|
-
togglePersistentMenu(false);
|
|
318
|
-
toggleEmojiPicker(false);
|
|
319
|
-
});
|
|
320
|
-
/* This is the public API this component exposes to its parents
|
|
321
|
-
https://stackoverflow.com/questions/37949981/call-child-method-from-parent
|
|
322
|
-
*/
|
|
323
|
-
const updateSessionWithUser = (userToUpdate) => updateSession(merge(webchatState.session, { user: userToUpdate }));
|
|
324
|
-
useImperativeHandle(ref, () => ({
|
|
325
|
-
addBotResponse: ({ response, session, lastRoutePath }) => {
|
|
326
|
-
updateTyping(false);
|
|
327
|
-
const isUnread = !webchatState.isLastMessageVisible || webchatState.numUnreadMessages > 0;
|
|
328
|
-
if (Array.isArray(response)) {
|
|
329
|
-
response.forEach(r => {
|
|
330
|
-
addMessageComponent(Object.assign(Object.assign({}, r), { props: Object.assign(Object.assign({}, r.props), { isUnread }) }));
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
else if (response) {
|
|
334
|
-
addMessageComponent(Object.assign(Object.assign({}, response), { props: Object.assign(Object.assign({}, response.props), { isUnread }) }));
|
|
335
|
-
}
|
|
336
|
-
if (session) {
|
|
337
|
-
updateSession(merge(session, { user: webchatState.session.user }));
|
|
338
|
-
const action = session._botonic_action || '';
|
|
339
|
-
const handoff = action.startsWith(BotonicAction.CreateCase);
|
|
340
|
-
if (handoff && isDev)
|
|
341
|
-
addMessageComponent(_jsx(Handoff, {}));
|
|
342
|
-
updateHandoff(handoff);
|
|
343
|
-
}
|
|
344
|
-
if (lastRoutePath)
|
|
345
|
-
updateLastRoutePath(lastRoutePath);
|
|
346
|
-
updateLastMessageDate(currentDateString());
|
|
347
|
-
},
|
|
348
|
-
setTyping: (typing) => updateTyping(typing),
|
|
349
|
-
addUserMessage: message => sendInput(message),
|
|
350
|
-
updateUser: updateSessionWithUser,
|
|
351
|
-
openWebchat: () => toggleWebchat(true),
|
|
352
|
-
closeWebchat: () => toggleWebchat(false),
|
|
353
|
-
toggleWebchat: () => toggleWebchat(!webchatState.isWebchatOpen),
|
|
354
|
-
openCoverComponent: () => toggleCoverComponent(true),
|
|
355
|
-
closeCoverComponent: () => toggleCoverComponent(false),
|
|
356
|
-
renderCustomComponent: _customComponent => {
|
|
357
|
-
setCustomComponent(_customComponent);
|
|
358
|
-
doRenderCustomComponent(true);
|
|
359
|
-
},
|
|
360
|
-
unmountCustomComponent: () => doRenderCustomComponent(false),
|
|
361
|
-
toggleCoverComponent: () => toggleCoverComponent(!webchatState.isCoverComponentOpen),
|
|
362
|
-
setOnline,
|
|
363
|
-
getMessages: () => webchatState.messagesJSON,
|
|
364
|
-
isOnline,
|
|
365
|
-
clearMessages: () => {
|
|
366
|
-
clearMessages();
|
|
367
|
-
removeReplies();
|
|
368
|
-
},
|
|
369
|
-
getLastMessageUpdate: () => webchatState.lastMessageUpdate,
|
|
370
|
-
updateMessageInfo: (msgId, messageInfo) => {
|
|
371
|
-
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id === msgId)[0];
|
|
372
|
-
const updatedMsg = merge(messageToUpdate, messageInfo);
|
|
373
|
-
if (updatedMsg.ack === 1)
|
|
374
|
-
delete updatedMsg.unsentInput;
|
|
375
|
-
updateMessage(updatedMsg);
|
|
376
|
-
},
|
|
377
|
-
updateWebchatSettings: (settings) => {
|
|
378
|
-
if (settings.user) {
|
|
379
|
-
updateSessionWithUser(settings.user);
|
|
380
|
-
}
|
|
381
|
-
const themeUpdates = normalizeWebchatSettings(settings);
|
|
382
|
-
updateTheme(merge(webchatState.theme, themeUpdates), themeUpdates);
|
|
383
|
-
updateTyping(false);
|
|
384
|
-
},
|
|
385
|
-
closeWebview: (options) => __awaiter(void 0, void 0, void 0, function* () { return closeWebview(options); }),
|
|
386
|
-
}));
|
|
387
|
-
const resolveCase = () => {
|
|
388
|
-
updateHandoff(false);
|
|
389
|
-
updateSession(Object.assign(Object.assign({}, webchatState.session), { _botonic_action: undefined }));
|
|
390
|
-
};
|
|
391
|
-
const prevSession = usePrevious(webchatState.session);
|
|
392
|
-
useEffect(() => {
|
|
393
|
-
// Resume conversation after handoff
|
|
394
|
-
if ((prevSession === null || prevSession === void 0 ? void 0 : prevSession._botonic_action) && !webchatState.session._botonic_action) {
|
|
395
|
-
const action = getParsedAction(prevSession._botonic_action);
|
|
396
|
-
if (action === null || action === void 0 ? void 0 : action.on_finish)
|
|
397
|
-
sendPayload(action.on_finish);
|
|
398
|
-
}
|
|
399
|
-
}, [webchatState.session._botonic_action]);
|
|
400
|
-
const sendText = (text, payload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
401
|
-
if (!text)
|
|
402
|
-
return;
|
|
403
|
-
const input = { type: INPUT.TEXT, data: text, payload };
|
|
404
|
-
yield sendInput(input);
|
|
405
|
-
});
|
|
406
|
-
const sendPayload = (payload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
407
|
-
if (!payload)
|
|
408
|
-
return;
|
|
409
|
-
const input = { type: INPUT.POSTBACK, payload };
|
|
410
|
-
yield sendInput(input);
|
|
411
|
-
});
|
|
412
|
-
const sendAttachment = (attachment) => __awaiter(void 0, void 0, void 0, function* () {
|
|
413
|
-
if (attachment) {
|
|
414
|
-
const attachmentType = getMediaType(attachment.type);
|
|
415
|
-
if (!attachmentType)
|
|
416
|
-
return;
|
|
417
|
-
const input = {
|
|
418
|
-
type: attachmentType,
|
|
419
|
-
data: attachment,
|
|
420
|
-
};
|
|
421
|
-
yield sendInput(input);
|
|
422
|
-
setCurrentAttachment();
|
|
423
|
-
}
|
|
424
|
-
});
|
|
425
|
-
const webviewRequestContext = {
|
|
426
|
-
closeWebview: (options) => __awaiter(void 0, void 0, void 0, function* () { return yield closeWebview(options); }),
|
|
427
|
-
params: webchatState.webviewParams || {},
|
|
428
|
-
session: webchatState.session || {},
|
|
429
|
-
};
|
|
430
|
-
useEffect(() => {
|
|
431
|
-
if (firstUpdate.current) {
|
|
432
|
-
firstUpdate.current = false;
|
|
433
|
-
return;
|
|
434
|
-
}
|
|
435
|
-
if (webchatState.isWebchatOpen && props.onOpen)
|
|
436
|
-
props.onOpen();
|
|
437
|
-
if (!webchatState.isWebchatOpen && props.onClose && !firstUpdate.current) {
|
|
438
|
-
props.onClose();
|
|
439
|
-
toggleEmojiPicker(false);
|
|
440
|
-
togglePersistentMenu(false);
|
|
441
|
-
}
|
|
442
|
-
}, [webchatState.isWebchatOpen]);
|
|
443
|
-
const isUserInputEnabled = () => {
|
|
444
|
-
const isUserInputEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.enableUserInput, props.enableUserInput !== undefined ? props.enableUserInput : true);
|
|
445
|
-
return isUserInputEnabled && !webchatState.isCoverComponentOpen;
|
|
446
|
-
};
|
|
447
|
-
const userInputEnabled = isUserInputEnabled();
|
|
448
|
-
const webchatWebview = () => (_jsx(WebviewRequestContext.Provider, Object.assign({ value: webviewRequestContext }, { children: _jsx(WebviewContainer, { style: Object.assign(Object.assign({}, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewStyle)), mobileStyle), webview: webchatState.webview }) })));
|
|
449
|
-
let mobileStyle = {};
|
|
450
|
-
if (isMobile(getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.mobileBreakpoint))) {
|
|
451
|
-
mobileStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.mobileStyle) || {
|
|
452
|
-
width: '100%',
|
|
453
|
-
height: '100%',
|
|
454
|
-
right: 0,
|
|
455
|
-
bottom: 0,
|
|
456
|
-
borderRadius: 0,
|
|
457
|
-
};
|
|
458
|
-
}
|
|
459
|
-
useEffect(() => {
|
|
460
|
-
// Prod mode
|
|
461
|
-
saveWebchatState(webchatState);
|
|
462
|
-
}, [webchatState.themeUpdates]);
|
|
463
|
-
// Only needed for dev/serve mode
|
|
464
|
-
const updateWebchatDevSettings = settings => {
|
|
465
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
466
|
-
useEffect(() => {
|
|
467
|
-
const themeUpdates = normalizeWebchatSettings(settings);
|
|
468
|
-
updateTheme(merge(webchatState.theme, themeUpdates), themeUpdates);
|
|
469
|
-
}, [webchatState.messagesJSON]);
|
|
470
|
-
};
|
|
471
|
-
const DarkenBackground = ({ component }) => {
|
|
472
|
-
return (_jsxs("div", { children: [darkBackgroundMenu && (_jsx(DarkBackgroundMenu, { style: {
|
|
473
|
-
borderRadius: webchatState.theme.style.borderRadius,
|
|
474
|
-
} })), component] }));
|
|
475
|
-
};
|
|
476
|
-
const _renderCustomComponent = () => {
|
|
477
|
-
if (!customComponent)
|
|
478
|
-
return _jsx(_Fragment, {});
|
|
479
|
-
else
|
|
480
|
-
return customComponent;
|
|
481
|
-
};
|
|
482
|
-
const WebchatComponent = (_jsxs(WebchatContext.Provider, Object.assign({ value: {
|
|
483
|
-
addMessage,
|
|
484
|
-
getThemeProperty,
|
|
485
|
-
openWebview,
|
|
486
|
-
resolveCase,
|
|
487
|
-
resetUnreadMessages,
|
|
488
|
-
setIsInputFocused,
|
|
489
|
-
setLastMessageVisible,
|
|
490
|
-
sendAttachment,
|
|
491
|
-
sendInput,
|
|
492
|
-
sendPayload,
|
|
493
|
-
sendText,
|
|
494
|
-
toggleWebchat,
|
|
495
|
-
toggleEmojiPicker,
|
|
496
|
-
togglePersistentMenu,
|
|
497
|
-
toggleCoverComponent,
|
|
498
|
-
updateLatestInput,
|
|
499
|
-
updateMessage,
|
|
500
|
-
updateReplies,
|
|
501
|
-
updateUser: updateSessionWithUser,
|
|
502
|
-
updateWebchatDevSettings: updateWebchatDevSettings,
|
|
503
|
-
trackEvent: props.onTrackEvent,
|
|
504
|
-
webchatState,
|
|
505
|
-
// TODO: Review if need theme inside Context, already exist innside webchatState
|
|
506
|
-
theme,
|
|
507
|
-
webchatRef,
|
|
508
|
-
chatAreaRef,
|
|
509
|
-
inputPanelRef,
|
|
510
|
-
headerRef,
|
|
511
|
-
repliesRef,
|
|
512
|
-
scrollableMessagesListRef,
|
|
513
|
-
} }, { children: [!webchatState.isWebchatOpen && _jsx(TriggerButton, {}), webchatState.isWebchatOpen && (_jsxs(StyledWebchat, Object.assign({ id: BotonicContainerId.Webchat, ref: webchatRef,
|
|
514
|
-
// TODO: Distinguish between multiple instances of webchat, e.g. `${uniqueId}-botonic-webchat`
|
|
515
|
-
role: ROLES.WEBCHAT, width: webchatState.width, height: webchatState.height, style: Object.assign(Object.assign({}, webchatState.theme.style), mobileStyle) }, { children: [_jsx(WebchatHeader, { ref: headerRef }), webchatState.isCoverComponentOpen ? (_jsx(CoverComponent, { component: coverComponent, componentProps: coverComponentProps })) : (_jsxs(_Fragment, { children: [webchatState.error.message && (_jsx(ErrorMessageContainer, { children: _jsx(ErrorMessage, { children: webchatState.error.message }) })), _jsx(ChatArea, {}), webchatState.isPersistentMenuOpen && (_jsx(DarkenBackground, { component: persistentMenu() })), !webchatState.handoff && userInputEnabled && (_jsx(InputPanel, { persistentMenu: props.persistentMenu, enableEmojiPicker: props.enableEmojiPicker, enableAttachments: props.enableAttachments, handleAttachment: handleAttachment, textareaRef: textareaRef, host: host, onUserInput: props.onUserInput })), webchatState.webview && webchatWebview(), webchatState.isCustomComponentRendered &&
|
|
516
|
-
customComponent &&
|
|
517
|
-
_renderCustomComponent()] }))] })))] })));
|
|
518
|
-
return props.shadowDOM ? (_jsx(StyleSheetManager, Object.assign({ target: host }, { children: WebchatComponent }))) : (WebchatComponent);
|
|
519
|
-
});
|
|
520
|
-
Webchat.displayName = 'Webchat';
|
|
521
|
-
export { Webchat };
|
|
522
|
-
//# sourceMappingURL=webchat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat.js","sourceRoot":"","sources":["../../../src/webchat/webchat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import React, { useContext, useEffect } from 'react';
|
|
4
|
-
import styled from 'styled-components';
|
|
5
|
-
import { COLORS, ROLES, WEBCHAT } from '../constants';
|
|
6
|
-
import { WebviewRequestContext } from '../contexts';
|
|
7
|
-
import { WebchatContext } from '../webchat/context';
|
|
8
|
-
const StyledWebview = styled.div `
|
|
9
|
-
position: absolute;
|
|
10
|
-
display: flex;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
bottom: 0;
|
|
13
|
-
width: 100%;
|
|
14
|
-
height: 100%;
|
|
15
|
-
background-color: ${COLORS.SOLID_WHITE};
|
|
16
|
-
z-index: 2;
|
|
17
|
-
border-radius: ${WEBCHAT.DEFAULTS.BORDER_RADIUS_TOP_CORNERS};
|
|
18
|
-
`;
|
|
19
|
-
const StyledWebviewHeader = styled.div `
|
|
20
|
-
text-align: right;
|
|
21
|
-
background-color: ${COLORS.WILD_SAND_WHITE};
|
|
22
|
-
border-top: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};
|
|
23
|
-
border-bottom: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};
|
|
24
|
-
border-radius: ${WEBCHAT.DEFAULTS.BORDER_RADIUS_TOP_CORNERS};
|
|
25
|
-
`;
|
|
26
|
-
const StyledCloseHeader = styled.div `
|
|
27
|
-
display: inline-block;
|
|
28
|
-
padding: 8px 12px;
|
|
29
|
-
cursor: pointer;
|
|
30
|
-
`;
|
|
31
|
-
const StyledWebviewContent = styled.div `
|
|
32
|
-
flex: 1;
|
|
33
|
-
overflow: auto;
|
|
34
|
-
`;
|
|
35
|
-
const FrameStyles = `
|
|
36
|
-
border-style: none;
|
|
37
|
-
width: 100%;
|
|
38
|
-
height: 100%;
|
|
39
|
-
`;
|
|
40
|
-
const StyledFrame = styled.iframe `
|
|
41
|
-
${FrameStyles}
|
|
42
|
-
`;
|
|
43
|
-
const StyledFrameAsDiv = styled.div `
|
|
44
|
-
${FrameStyles}
|
|
45
|
-
`;
|
|
46
|
-
export const WebviewHeader = () => {
|
|
47
|
-
const { closeWebview } = useContext(WebviewRequestContext);
|
|
48
|
-
const { getThemeProperty } = useContext(WebchatContext);
|
|
49
|
-
return (_jsx(StyledWebviewHeader, Object.assign({ role: ROLES.WEBVIEW_HEADER, style: Object.assign({}, getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewHeaderStyle)) }, { children: _jsx(StyledCloseHeader, Object.assign({ onClick: closeWebview }, { children: "\u2715" })) })));
|
|
50
|
-
};
|
|
51
|
-
export const WebviewContainer = props => {
|
|
52
|
-
const { webchatState } = useContext(WebchatContext);
|
|
53
|
-
const { closeWebview } = useContext(WebviewRequestContext);
|
|
54
|
-
const Webview = webchatState.webview;
|
|
55
|
-
const close = (e) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
-
if (e.data === 'botonicCloseWebview') {
|
|
57
|
-
yield closeWebview();
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
if (window.addEventListener) {
|
|
62
|
-
window.addEventListener('message', close, false);
|
|
63
|
-
}
|
|
64
|
-
else if (window.attachEvent) {
|
|
65
|
-
// ie8
|
|
66
|
-
window.attachEvent('onmessage', close);
|
|
67
|
-
}
|
|
68
|
-
}, []);
|
|
69
|
-
return (_jsxs(StyledWebview, Object.assign({ role: ROLES.WEBVIEW, style: Object.assign({}, props.style) }, { children: [_jsx(WebviewHeader, { style: { flex: 'none' } }), _jsx(StyledWebviewContent, { children: typeof Webview === 'string' ? (_jsx(StyledFrame, { src: Webview })) : (_jsx(StyledFrameAsDiv, { children: _jsx(Webview, {}) })) })] })));
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=webview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webview.js","sourceRoot":"","sources":["../../../src/webchat/webview.jsx"],"names":[],"mappings":"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"}
|