@botonic/react 0.43.1 → 0.44.0-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/lib/cjs/botonic-tester.js +20 -26
- package/lib/cjs/botonic-tester.js.map +1 -1
- package/lib/cjs/components/audio.js +3 -3
- package/lib/cjs/components/audio.js.map +1 -1
- package/lib/cjs/components/button/index.d.ts +3 -3
- package/lib/cjs/components/button/index.js +20 -16
- package/lib/cjs/components/button/index.js.map +1 -1
- package/lib/cjs/components/button/styles.js +18 -18
- package/lib/cjs/components/button/styles.js.map +1 -1
- package/lib/cjs/components/buttons-disabler.js +25 -10
- package/lib/cjs/components/buttons-disabler.js.map +1 -1
- package/lib/cjs/components/carousel.js +11 -9
- package/lib/cjs/components/carousel.js.map +1 -1
- package/lib/cjs/components/components.js +2 -3
- package/lib/cjs/components/components.js.map +1 -1
- package/lib/cjs/components/custom-message.js +9 -4
- package/lib/cjs/components/custom-message.js.map +1 -1
- package/lib/cjs/components/document.js +5 -3
- package/lib/cjs/components/document.js.map +1 -1
- package/lib/cjs/components/element.js +5 -7
- package/lib/cjs/components/element.js.map +1 -1
- package/lib/cjs/components/handoff.js +2 -2
- package/lib/cjs/components/handoff.js.map +1 -1
- package/lib/cjs/components/image.js +4 -4
- package/lib/cjs/components/image.js.map +1 -1
- package/lib/cjs/components/location.js +2 -2
- package/lib/cjs/components/location.js.map +1 -1
- package/lib/cjs/components/message/index.js +26 -9
- package/lib/cjs/components/message/index.js.map +1 -1
- package/lib/cjs/components/message/message-feedback.js +8 -5
- package/lib/cjs/components/message/message-feedback.js.map +1 -1
- package/lib/cjs/components/message/message-footer.js +1 -1
- package/lib/cjs/components/message/message-footer.js.map +1 -1
- package/lib/cjs/components/message/message-image.js +4 -1
- package/lib/cjs/components/message/message-image.js.map +1 -1
- package/lib/cjs/components/message/timestamps.js +1 -1
- package/lib/cjs/components/message/timestamps.js.map +1 -1
- package/lib/cjs/components/message-template.js +1 -1
- package/lib/cjs/components/message-template.js.map +1 -1
- package/lib/cjs/components/multichannel/facebook/facebook.js +2 -2
- package/lib/cjs/components/multichannel/facebook/facebook.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-button.js +5 -7
- package/lib/cjs/components/multichannel/multichannel-button.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-carousel.js +3 -3
- package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-context.d.ts +1 -1
- package/lib/cjs/components/multichannel/multichannel-reply.js +1 -1
- package/lib/cjs/components/multichannel/multichannel-reply.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-text.js +11 -12
- package/lib/cjs/components/multichannel/multichannel-text.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-utils.d.ts +3 -3
- package/lib/cjs/components/multichannel/multichannel-utils.js +21 -25
- package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel.js +9 -9
- package/lib/cjs/components/multichannel/multichannel.js.map +1 -1
- package/lib/cjs/components/multichannel/whatsapp/markdown-meta.js +1 -2
- package/lib/cjs/components/multichannel/whatsapp/markdown-meta.js.map +1 -1
- package/lib/cjs/components/pic.js +1 -1
- package/lib/cjs/components/pic.js.map +1 -1
- package/lib/cjs/components/raw.js +2 -2
- package/lib/cjs/components/raw.js.map +1 -1
- package/lib/cjs/components/reply.js +8 -6
- package/lib/cjs/components/reply.js.map +1 -1
- package/lib/cjs/components/share-button.js +1 -1
- package/lib/cjs/components/share-button.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/debug-message.js +3 -5
- package/lib/cjs/components/system-debug-trace/debug-message.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/ai-agent.js +2 -3
- package/lib/cjs/components/system-debug-trace/events/ai-agent.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/components/guardrail-item.js +1 -1
- package/lib/cjs/components/system-debug-trace/events/components/guardrail-item.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/components/sources-section.js +4 -5
- package/lib/cjs/components/system-debug-trace/events/components/sources-section.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/handoff-success.js +3 -4
- package/lib/cjs/components/system-debug-trace/events/handoff-success.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/events/knowledge-base.js +2 -2
- package/lib/cjs/components/system-debug-trace/events/knowledge-base.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/hooks/use-knowledge-base-info.js +16 -12
- package/lib/cjs/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/hooks/use-last-label-position.js +3 -5
- package/lib/cjs/components/system-debug-trace/hooks/use-last-label-position.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/arrow-progress.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/arrow-progress.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/brain.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/brain.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/caret-down.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/caret-down.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/caret-up.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/caret-up.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/circle-check.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/circle-check.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/code.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/code.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/file-pdf.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/file-pdf.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/file-word.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/file-word.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/hand.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/hand.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/head-set.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/head-set.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/life-ring.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/life-ring.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/link.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/link.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/quote-right.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/quote-right.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/screwdriver-wrench.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/screwdriver-wrench.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/split.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/split.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/wand.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/wand.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/icons/window-restore.js +1 -1
- package/lib/cjs/components/system-debug-trace/icons/window-restore.js.map +1 -1
- package/lib/cjs/components/system-debug-trace/index.js +5 -6
- package/lib/cjs/components/system-debug-trace/index.js.map +1 -1
- package/lib/cjs/components/text.js +7 -3
- package/lib/cjs/components/text.js.map +1 -1
- package/lib/cjs/components/video.js +3 -3
- package/lib/cjs/components/video.js.map +1 -1
- package/lib/cjs/components/webchat-settings.js.map +1 -1
- package/lib/cjs/components/whatsapp-button-list.js +3 -3
- package/lib/cjs/components/whatsapp-button-list.js.map +1 -1
- package/lib/cjs/components/whatsapp-catalog.js +2 -2
- package/lib/cjs/components/whatsapp-catalog.js.map +1 -1
- package/lib/cjs/components/whatsapp-cta-url-button.js +21 -10
- package/lib/cjs/components/whatsapp-cta-url-button.js.map +1 -1
- package/lib/cjs/components/whatsapp-interactive-media-carousel.js +3 -3
- package/lib/cjs/components/whatsapp-interactive-media-carousel.js.map +1 -1
- package/lib/cjs/components/whatsapp-media-carousel.js +3 -4
- package/lib/cjs/components/whatsapp-media-carousel.js.map +1 -1
- package/lib/cjs/components/whatsapp-product-carousel.js +2 -2
- package/lib/cjs/components/whatsapp-product-carousel.js.map +1 -1
- package/lib/cjs/components/whatsapp-product-list.js +2 -2
- package/lib/cjs/components/whatsapp-product-list.js.map +1 -1
- package/lib/cjs/components/whatsapp-product.js +2 -2
- package/lib/cjs/components/whatsapp-product.js.map +1 -1
- package/lib/cjs/components/whatsapp-template/index.js +2 -2
- package/lib/cjs/components/whatsapp-template/index.js.map +1 -1
- package/lib/cjs/components/whatsapp-template/types.js +3 -3
- package/lib/cjs/components/whatsapp-template/types.js.map +1 -1
- package/lib/cjs/constants.d.ts +145 -145
- package/lib/cjs/contexts.d.ts +0 -1
- package/lib/cjs/contexts.js +1 -2
- package/lib/cjs/contexts.js.map +1 -1
- package/lib/cjs/dev-app.d.ts +2 -8
- package/lib/cjs/dev-app.js +19 -20
- package/lib/cjs/dev-app.js.map +1 -1
- package/lib/cjs/index-types.js +2 -2
- package/lib/cjs/index-types.js.map +1 -1
- package/lib/cjs/message-utils.d.ts +1 -1
- package/lib/cjs/msg-to-botonic.d.ts +3 -3
- package/lib/cjs/msg-to-botonic.js +17 -19
- package/lib/cjs/msg-to-botonic.js.map +1 -1
- package/lib/cjs/node-app.d.ts +1 -1
- package/lib/cjs/node-app.js +8 -8
- package/lib/cjs/node-app.js.map +1 -1
- package/lib/cjs/react-bot.js +17 -16
- package/lib/cjs/react-bot.js.map +1 -1
- package/lib/cjs/util/dom.js.map +1 -1
- package/lib/cjs/util/environment.js +3 -3
- package/lib/cjs/util/environment.js.map +1 -1
- package/lib/cjs/util/error-boundary.js.map +1 -1
- package/lib/cjs/util/functional.js +1 -2
- package/lib/cjs/util/functional.js.map +1 -1
- package/lib/cjs/util/logs.js +2 -3
- package/lib/cjs/util/logs.js.map +1 -1
- package/lib/cjs/util/objects.js +2 -2
- package/lib/cjs/util/objects.js.map +1 -1
- package/lib/cjs/util/react.js +2 -2
- package/lib/cjs/util/react.js.map +1 -1
- package/lib/cjs/util/strings.js.map +1 -1
- package/lib/cjs/util/webchat.js +7 -10
- package/lib/cjs/util/webchat.js.map +1 -1
- package/lib/cjs/util/webviews.js +1 -2
- package/lib/cjs/util/webviews.js.map +1 -1
- package/lib/cjs/webchat/chat-area/index.js +1 -1
- package/lib/cjs/webchat/chat-area/index.js.map +1 -1
- package/lib/cjs/webchat/components/conditional-animation.js +1 -1
- package/lib/cjs/webchat/components/conditional-animation.js.map +1 -1
- package/lib/cjs/webchat/components/opened-persistent-menu.js +3 -3
- package/lib/cjs/webchat/components/opened-persistent-menu.js.map +1 -1
- package/lib/cjs/webchat/context/actions.js +1 -1
- package/lib/cjs/webchat/context/actions.js.map +1 -1
- package/lib/cjs/webchat/context/index.d.ts +0 -1
- package/lib/cjs/webchat/context/index.js +17 -18
- package/lib/cjs/webchat/context/index.js.map +1 -1
- package/lib/cjs/webchat/context/messages-reducer.js +69 -29
- package/lib/cjs/webchat/context/messages-reducer.js.map +1 -1
- package/lib/cjs/webchat/context/types.d.ts +0 -1
- package/lib/cjs/webchat/context/use-webchat.d.ts +0 -1
- package/lib/cjs/webchat/context/use-webchat.js +1 -2
- package/lib/cjs/webchat/context/use-webchat.js.map +1 -1
- package/lib/cjs/webchat/context/webchat-reducer.js +25 -20
- package/lib/cjs/webchat/context/webchat-reducer.js.map +1 -1
- package/lib/cjs/webchat/cover-component/index.js +1 -1
- package/lib/cjs/webchat/cover-component/index.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/index.js +2 -4
- package/lib/cjs/webchat/custom-messages/index.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-angry.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-angry.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-frown.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-frown.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-grin-beam.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-grin-beam.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-meh.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-meh.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-smile.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/face-smile.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/star.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/icons/star.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/index.js +2 -3
- package/lib/cjs/webchat/custom-messages/rating/index.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/rating-selector.js +3 -3
- package/lib/cjs/webchat/custom-messages/rating/rating-selector.js.map +1 -1
- package/lib/cjs/webchat/custom-messages/rating/types.js +1 -1
- package/lib/cjs/webchat/custom-messages/rating/types.js.map +1 -1
- package/lib/cjs/webchat/header/default-header.js +1 -1
- package/lib/cjs/webchat/header/default-header.js.map +1 -1
- package/lib/cjs/webchat/header/index.js +2 -2
- package/lib/cjs/webchat/header/index.js.map +1 -1
- package/lib/cjs/webchat/header/styles.js +2 -2
- package/lib/cjs/webchat/header/styles.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-component-visible.d.ts +0 -1
- package/lib/cjs/webchat/hooks/use-component-visible.js +1 -2
- package/lib/cjs/webchat/hooks/use-component-visible.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-device-adapter.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-previous.js +1 -2
- package/lib/cjs/webchat/hooks/use-previous.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-scrollbar-controller.js +5 -6
- package/lib/cjs/webchat/hooks/use-scrollbar-controller.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-typing.js +2 -3
- package/lib/cjs/webchat/hooks/use-typing.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -1
- package/lib/cjs/webchat/hooks/use-webchat-resizer.js.map +1 -1
- package/lib/cjs/webchat/index.js +2 -2
- package/lib/cjs/webchat/index.js.map +1 -1
- package/lib/cjs/webchat/input-panel/attachment.js +3 -5
- package/lib/cjs/webchat/input-panel/attachment.js.map +1 -1
- package/lib/cjs/webchat/input-panel/emoji-picker.js +3 -5
- package/lib/cjs/webchat/input-panel/emoji-picker.js.map +1 -1
- package/lib/cjs/webchat/input-panel/index.js +8 -8
- package/lib/cjs/webchat/input-panel/index.js.map +1 -1
- package/lib/cjs/webchat/input-panel/opened-emoji-picker.js +1 -1
- package/lib/cjs/webchat/input-panel/opened-emoji-picker.js.map +1 -1
- package/lib/cjs/webchat/input-panel/persistent-menu.js +3 -4
- package/lib/cjs/webchat/input-panel/persistent-menu.js.map +1 -1
- package/lib/cjs/webchat/input-panel/send-button.js +3 -5
- package/lib/cjs/webchat/input-panel/send-button.js.map +1 -1
- package/lib/cjs/webchat/input-panel/textarea.js +17 -5
- package/lib/cjs/webchat/input-panel/textarea.js.map +1 -1
- package/lib/cjs/webchat/message-list/index.js +9 -14
- package/lib/cjs/webchat/message-list/index.js.map +1 -1
- package/lib/cjs/webchat/message-list/intro-message.js +4 -2
- package/lib/cjs/webchat/message-list/intro-message.js.map +1 -1
- package/lib/cjs/webchat/message-list/scroll-button.d.ts +0 -1
- package/lib/cjs/webchat/message-list/scroll-button.js +1 -1
- package/lib/cjs/webchat/message-list/scroll-button.js.map +1 -1
- package/lib/cjs/webchat/message-list/unread-messages-banner.js +1 -1
- package/lib/cjs/webchat/message-list/unread-messages-banner.js.map +1 -1
- package/lib/cjs/webchat/message-list/use-debounce.js +1 -2
- package/lib/cjs/webchat/message-list/use-debounce.js.map +1 -1
- package/lib/cjs/webchat/message-list/use-notifications.js +1 -2
- package/lib/cjs/webchat/message-list/use-notifications.js.map +1 -1
- package/lib/cjs/webchat/replies/index.js +2 -3
- package/lib/cjs/webchat/replies/index.js.map +1 -1
- package/lib/cjs/webchat/session-view.js +10 -4
- package/lib/cjs/webchat/session-view.js.map +1 -1
- package/lib/cjs/webchat/theme/types.d.ts +0 -1
- package/lib/cjs/webchat/tracking.js +21 -21
- package/lib/cjs/webchat/tracking.js.map +1 -1
- package/lib/cjs/webchat/trigger-button/index.d.ts +0 -1
- package/lib/cjs/webchat/trigger-button/index.js +1 -1
- package/lib/cjs/webchat/trigger-button/index.js.map +1 -1
- package/lib/cjs/webchat/typing-indicator/index.js +1 -1
- package/lib/cjs/webchat/typing-indicator/index.js.map +1 -1
- package/lib/cjs/webchat/use-storage-state-hook.js +5 -7
- package/lib/cjs/webchat/use-storage-state-hook.js.map +1 -1
- package/lib/cjs/webchat/webchat-dev.d.ts +1 -1
- package/lib/cjs/webchat/webchat-dev.js +3 -6
- package/lib/cjs/webchat/webchat-dev.js.map +1 -1
- package/lib/cjs/webchat/webchat.js +51 -49
- package/lib/cjs/webchat/webchat.js.map +1 -1
- package/lib/cjs/webchat/webview/header.js +3 -1
- package/lib/cjs/webchat/webview/header.js.map +1 -1
- package/lib/cjs/webchat/webview/index.d.ts +1 -1
- package/lib/cjs/webchat/webview/index.js +16 -15
- package/lib/cjs/webchat/webview/index.js.map +1 -1
- package/lib/cjs/webchat/webview/styles.js +1 -1
- package/lib/cjs/webchat/webview/styles.js.map +1 -1
- package/lib/cjs/webchat-app.d.ts +18 -18
- package/lib/cjs/webchat-app.js +133 -141
- package/lib/cjs/webchat-app.js.map +1 -1
- package/lib/cjs/webview-app.js +89 -99
- package/lib/cjs/webview-app.js.map +1 -1
- package/lib/esm/app.js +5 -1
- package/lib/esm/app.js.map +1 -1
- package/lib/esm/botonic-tester.js +35 -36
- package/lib/esm/botonic-tester.js.map +1 -1
- package/lib/esm/components/audio.js +18 -13
- package/lib/esm/components/audio.js.map +1 -1
- package/lib/esm/components/button/index.d.ts +3 -3
- package/lib/esm/components/button/index.js +44 -36
- package/lib/esm/components/button/index.js.map +1 -1
- package/lib/esm/components/button/styles.js +25 -21
- package/lib/esm/components/button/styles.js.map +1 -1
- package/lib/esm/components/buttons-disabler.js +38 -19
- package/lib/esm/components/buttons-disabler.js.map +1 -1
- package/lib/esm/components/carousel.js +49 -42
- package/lib/esm/components/carousel.js.map +1 -1
- package/lib/esm/components/components.js +6 -2
- package/lib/esm/components/components.js.map +1 -1
- package/lib/esm/components/custom-message.js +29 -20
- package/lib/esm/components/custom-message.js.map +1 -1
- package/lib/esm/components/document.js +24 -17
- package/lib/esm/components/document.js.map +1 -1
- package/lib/esm/components/element.js +24 -21
- package/lib/esm/components/element.js.map +1 -1
- package/lib/esm/components/handoff.js +24 -19
- package/lib/esm/components/handoff.js.map +1 -1
- package/lib/esm/components/image.js +25 -20
- package/lib/esm/components/image.js.map +1 -1
- package/lib/esm/components/index-types.js +2 -1
- package/lib/esm/components/index.js +68 -32
- package/lib/esm/components/index.js.map +1 -1
- package/lib/esm/components/location.js +17 -12
- package/lib/esm/components/location.js.map +1 -1
- package/lib/esm/components/markdown.js +26 -16
- package/lib/esm/components/markdown.js.map +1 -1
- package/lib/esm/components/message/index.js +83 -62
- package/lib/esm/components/message/index.js.map +1 -1
- package/lib/esm/components/message/message-feedback.js +28 -21
- package/lib/esm/components/message/message-feedback.js.map +1 -1
- package/lib/esm/components/message/message-footer.js +16 -12
- package/lib/esm/components/message/message-footer.js.map +1 -1
- package/lib/esm/components/message/message-image.js +22 -15
- package/lib/esm/components/message/message-image.js.map +1 -1
- package/lib/esm/components/message/styles.js +19 -15
- package/lib/esm/components/message/styles.js.map +1 -1
- package/lib/esm/components/message/timestamps.js +24 -19
- package/lib/esm/components/message/timestamps.js.map +1 -1
- package/lib/esm/components/message-template.js +11 -6
- package/lib/esm/components/message-template.js.map +1 -1
- package/lib/esm/components/multichannel/facebook/facebook.js +10 -6
- package/lib/esm/components/multichannel/facebook/facebook.js.map +1 -1
- package/lib/esm/components/multichannel/index-types.js +2 -1
- package/lib/esm/components/multichannel/index.js +15 -11
- package/lib/esm/components/multichannel/index.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-button.js +22 -19
- package/lib/esm/components/multichannel/multichannel-button.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js +35 -30
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-context.d.ts +1 -1
- package/lib/esm/components/multichannel/multichannel-context.js +6 -2
- package/lib/esm/components/multichannel/multichannel-context.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-reply.js +14 -9
- package/lib/esm/components/multichannel/multichannel-reply.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-text.js +57 -53
- package/lib/esm/components/multichannel/multichannel-text.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +3 -3
- package/lib/esm/components/multichannel/multichannel-utils.js +61 -46
- package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel.js +42 -37
- package/lib/esm/components/multichannel/multichannel.js.map +1 -1
- package/lib/esm/components/multichannel/whatsapp/constants.js +13 -10
- package/lib/esm/components/multichannel/whatsapp/constants.js.map +1 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js +4 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +1 -1
- package/lib/esm/components/pic.js +20 -15
- package/lib/esm/components/pic.js.map +1 -1
- package/lib/esm/components/raw.js +22 -17
- package/lib/esm/components/raw.js.map +1 -1
- package/lib/esm/components/reply.js +26 -19
- package/lib/esm/components/reply.js.map +1 -1
- package/lib/esm/components/share-button.js +11 -6
- package/lib/esm/components/share-button.js.map +1 -1
- package/lib/esm/components/subtitle.js +16 -11
- package/lib/esm/components/subtitle.js.map +1 -1
- package/lib/esm/components/system-debug-trace/debug-message.js +47 -45
- package/lib/esm/components/system-debug-trace/debug-message.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent.js +26 -22
- package/lib/esm/components/system-debug-trace/events/ai-agent.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/bot-action.js +11 -7
- package/lib/esm/components/system-debug-trace/events/bot-action.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/components/guardrail-item.js +11 -6
- package/lib/esm/components/system-debug-trace/events/components/guardrail-item.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/components/index.js +5 -2
- package/lib/esm/components/system-debug-trace/events/components/index.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/components/sources-section.js +13 -10
- package/lib/esm/components/system-debug-trace/events/components/sources-section.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/conditional-channel.js +11 -7
- package/lib/esm/components/system-debug-trace/events/conditional-channel.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/conditional-country.js +11 -7
- package/lib/esm/components/system-debug-trace/events/conditional-country.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/conditional-custom.js +11 -7
- package/lib/esm/components/system-debug-trace/events/conditional-custom.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js +19 -14
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/constants.js +4 -1
- package/lib/esm/components/system-debug-trace/events/constants.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/fallback.js +11 -7
- package/lib/esm/components/system-debug-trace/events/fallback.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/handoff-success.js +27 -23
- package/lib/esm/components/system-debug-trace/events/handoff-success.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/index.js +17 -14
- package/lib/esm/components/system-debug-trace/events/index.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/keyword.js +11 -7
- package/lib/esm/components/system-debug-trace/events/keyword.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/knowledge-base.js +24 -19
- package/lib/esm/components/system-debug-trace/events/knowledge-base.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/knowledge-bases-types.js +2 -1
- package/lib/esm/components/system-debug-trace/events/redirect-flow.js +11 -7
- package/lib/esm/components/system-debug-trace/events/redirect-flow.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/smart-intent.js +11 -7
- package/lib/esm/components/system-debug-trace/events/smart-intent.js.map +1 -1
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.js +11 -7
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.js.map +1 -1
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js +38 -30
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -1
- package/lib/esm/components/system-debug-trace/hooks/use-last-label-position.js +8 -6
- package/lib/esm/components/system-debug-trace/hooks/use-last-label-position.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/brain.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/brain.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/caret-down.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/caret-down.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/caret-up.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/caret-up.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/circle-check.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/circle-check.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/code.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/code.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/file-pdf.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/file-pdf.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/file-word.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/file-word.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/hand.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/hand.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/head-set.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/head-set.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/index.js +16 -13
- package/lib/esm/components/system-debug-trace/icons/index.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/life-ring.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/life-ring.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/link.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/link.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/quote-right.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/quote-right.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/split.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/split.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/wand.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/wand.js.map +1 -1
- package/lib/esm/components/system-debug-trace/icons/window-restore.js +8 -4
- package/lib/esm/components/system-debug-trace/icons/window-restore.js.map +1 -1
- package/lib/esm/components/system-debug-trace/index.js +17 -14
- package/lib/esm/components/system-debug-trace/index.js.map +1 -1
- package/lib/esm/components/system-debug-trace/styles.js +44 -40
- package/lib/esm/components/system-debug-trace/styles.js.map +1 -1
- package/lib/esm/components/system-debug-trace/types.js +2 -1
- package/lib/esm/components/text.js +20 -12
- package/lib/esm/components/text.js.map +1 -1
- package/lib/esm/components/title.js +14 -9
- package/lib/esm/components/title.js.map +1 -1
- package/lib/esm/components/video.js +19 -14
- package/lib/esm/components/video.js.map +1 -1
- package/lib/esm/components/webchat-settings.js +17 -12
- package/lib/esm/components/webchat-settings.js.map +1 -1
- package/lib/esm/components/whatsapp-button-list.js +24 -20
- package/lib/esm/components/whatsapp-button-list.js.map +1 -1
- package/lib/esm/components/whatsapp-catalog.js +12 -8
- package/lib/esm/components/whatsapp-catalog.js.map +1 -1
- package/lib/esm/components/whatsapp-cta-url-button.js +39 -24
- package/lib/esm/components/whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/components/whatsapp-interactive-media-carousel.js +17 -13
- package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +1 -1
- package/lib/esm/components/whatsapp-media-carousel.js +15 -12
- package/lib/esm/components/whatsapp-media-carousel.js.map +1 -1
- package/lib/esm/components/whatsapp-product-carousel.js +14 -10
- package/lib/esm/components/whatsapp-product-carousel.js.map +1 -1
- package/lib/esm/components/whatsapp-product-list.js +13 -9
- package/lib/esm/components/whatsapp-product-list.js.map +1 -1
- package/lib/esm/components/whatsapp-product.js +12 -8
- package/lib/esm/components/whatsapp-product.js.map +1 -1
- package/lib/esm/components/whatsapp-template/index.js +12 -8
- package/lib/esm/components/whatsapp-template/index.js.map +1 -1
- package/lib/esm/components/whatsapp-template/types.js +9 -6
- package/lib/esm/components/whatsapp-template/types.js.map +1 -1
- package/lib/esm/constants.d.ts +145 -145
- package/lib/esm/constants.js +13 -9
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/contexts.d.ts +0 -1
- package/lib/esm/contexts.js +7 -5
- package/lib/esm/contexts.js.map +1 -1
- package/lib/esm/dev-app.d.ts +2 -8
- package/lib/esm/dev-app.js +35 -32
- package/lib/esm/dev-app.js.map +1 -1
- package/lib/esm/index-types.js +7 -4
- package/lib/esm/index-types.js.map +1 -1
- package/lib/esm/index.js +23 -11
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/message-utils.d.ts +1 -1
- package/lib/esm/message-utils.js +48 -27
- package/lib/esm/message-utils.js.map +1 -1
- package/lib/esm/msg-to-botonic.d.ts +3 -3
- package/lib/esm/msg-to-botonic.js +54 -50
- package/lib/esm/msg-to-botonic.js.map +1 -1
- package/lib/esm/node-app.d.ts +1 -1
- package/lib/esm/node-app.js +15 -11
- package/lib/esm/node-app.js.map +1 -1
- package/lib/esm/react-bot.js +27 -22
- package/lib/esm/react-bot.js.map +1 -1
- package/lib/esm/shared/styles.js +10 -6
- package/lib/esm/shared/styles.js.map +1 -1
- package/lib/esm/time-zone-to-country-code.js +4 -1
- package/lib/esm/time-zone-to-country-code.js.map +1 -1
- package/lib/esm/util/dom.js +12 -5
- package/lib/esm/util/dom.js.map +1 -1
- package/lib/esm/util/environment.js +18 -10
- package/lib/esm/util/environment.js.map +1 -1
- package/lib/esm/util/error-boundary.js +12 -7
- package/lib/esm/util/error-boundary.js.map +1 -1
- package/lib/esm/util/functional.js +4 -1
- package/lib/esm/util/functional.js.map +1 -1
- package/lib/esm/util/index.js +12 -9
- package/lib/esm/util/index.js.map +1 -1
- package/lib/esm/util/logs.js +8 -4
- package/lib/esm/util/logs.js.map +1 -1
- package/lib/esm/util/objects.js +9 -3
- package/lib/esm/util/objects.js.map +1 -1
- package/lib/esm/util/react.js +25 -17
- package/lib/esm/util/react.js.map +1 -1
- package/lib/esm/util/regexs.js +7 -2
- package/lib/esm/util/regexs.js.map +1 -1
- package/lib/esm/util/strings.js +5 -1
- package/lib/esm/util/strings.js.map +1 -1
- package/lib/esm/util/webchat.js +34 -27
- package/lib/esm/util/webchat.js.map +1 -1
- package/lib/esm/util/webviews.js +6 -3
- package/lib/esm/util/webviews.js.map +1 -1
- package/lib/esm/webchat/chat-area/index.js +18 -14
- package/lib/esm/webchat/chat-area/index.js.map +1 -1
- package/lib/esm/webchat/chat-area/styles.js +6 -2
- package/lib/esm/webchat/chat-area/styles.js.map +1 -1
- package/lib/esm/webchat/components/common.js +11 -6
- package/lib/esm/webchat/components/common.js.map +1 -1
- package/lib/esm/webchat/components/conditional-animation.js +15 -10
- package/lib/esm/webchat/components/conditional-animation.js.map +1 -1
- package/lib/esm/webchat/components/opened-persistent-menu.js +21 -16
- package/lib/esm/webchat/components/opened-persistent-menu.js.map +1 -1
- package/lib/esm/webchat/constants.js +4 -1
- package/lib/esm/webchat/constants.js.map +1 -1
- package/lib/esm/webchat/context/actions.js +5 -2
- package/lib/esm/webchat/context/actions.js.map +1 -1
- package/lib/esm/webchat/context/index.d.ts +0 -1
- package/lib/esm/webchat/context/index.js +24 -21
- package/lib/esm/webchat/context/index.js.map +1 -1
- package/lib/esm/webchat/context/messages-reducer.js +86 -42
- package/lib/esm/webchat/context/messages-reducer.js.map +1 -1
- package/lib/esm/webchat/context/types.d.ts +0 -1
- package/lib/esm/webchat/context/types.js +2 -1
- package/lib/esm/webchat/context/use-webchat.d.ts +0 -1
- package/lib/esm/webchat/context/use-webchat.js +44 -41
- package/lib/esm/webchat/context/use-webchat.js.map +1 -1
- package/lib/esm/webchat/context/webchat-reducer.js +49 -40
- package/lib/esm/webchat/context/webchat-reducer.js.map +1 -1
- package/lib/esm/webchat/cover-component/index.js +12 -8
- package/lib/esm/webchat/cover-component/index.js.map +1 -1
- package/lib/esm/webchat/custom-messages/index.js +6 -1
- package/lib/esm/webchat/custom-messages/index.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/index.js +9 -6
- package/lib/esm/webchat/custom-messages/rating/icons/index.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/icons/star.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/icons/star.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/index.js +18 -17
- package/lib/esm/webchat/custom-messages/rating/index.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/rating-selector.js +15 -11
- package/lib/esm/webchat/custom-messages/rating/rating-selector.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/smileys.js +13 -9
- package/lib/esm/webchat/custom-messages/rating/smileys.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/stars.js +8 -4
- package/lib/esm/webchat/custom-messages/rating/stars.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/styles.js +7 -3
- package/lib/esm/webchat/custom-messages/rating/styles.js.map +1 -1
- package/lib/esm/webchat/custom-messages/rating/types.js +5 -2
- package/lib/esm/webchat/custom-messages/rating/types.js.map +1 -1
- package/lib/esm/webchat/devices/index.js +9 -4
- package/lib/esm/webchat/devices/index.js.map +1 -1
- package/lib/esm/webchat/header/default-header.js +20 -16
- package/lib/esm/webchat/header/default-header.js.map +1 -1
- package/lib/esm/webchat/header/index.js +16 -13
- package/lib/esm/webchat/header/index.js.map +1 -1
- package/lib/esm/webchat/header/styles.js +20 -16
- package/lib/esm/webchat/header/styles.js.map +1 -1
- package/lib/esm/webchat/hooks/index.js +23 -10
- package/lib/esm/webchat/hooks/index.js.map +1 -1
- package/lib/esm/webchat/hooks/use-component-visible.d.ts +0 -1
- package/lib/esm/webchat/hooks/use-component-visible.js +8 -5
- package/lib/esm/webchat/hooks/use-component-visible.js.map +1 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.js +7 -3
- package/lib/esm/webchat/hooks/use-component-will-mount.js.map +1 -1
- package/lib/esm/webchat/hooks/use-device-adapter.js +19 -15
- package/lib/esm/webchat/hooks/use-device-adapter.js.map +1 -1
- package/lib/esm/webchat/hooks/use-previous.js +7 -4
- package/lib/esm/webchat/hooks/use-previous.js.map +1 -1
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js +8 -4
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +1 -1
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js +18 -15
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +1 -1
- package/lib/esm/webchat/hooks/use-typing.js +7 -4
- package/lib/esm/webchat/hooks/use-typing.js.map +1 -1
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js +8 -4
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -1
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js +10 -6
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +1 -1
- package/lib/esm/webchat/hooks/use-webchat-resizer.js +10 -6
- package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +1 -1
- package/lib/esm/webchat/index-types.js +2 -1
- package/lib/esm/webchat/index.js +14 -6
- package/lib/esm/webchat/index.js.map +1 -1
- package/lib/esm/webchat/input-panel/attachment.js +18 -15
- package/lib/esm/webchat/input-panel/attachment.js.map +1 -1
- package/lib/esm/webchat/input-panel/emoji-picker.js +17 -14
- package/lib/esm/webchat/input-panel/emoji-picker.js.map +1 -1
- package/lib/esm/webchat/input-panel/index.js +31 -27
- package/lib/esm/webchat/input-panel/index.js.map +1 -1
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js +13 -8
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +1 -1
- package/lib/esm/webchat/input-panel/persistent-menu.js +17 -13
- package/lib/esm/webchat/input-panel/persistent-menu.js.map +1 -1
- package/lib/esm/webchat/input-panel/send-button.js +17 -14
- package/lib/esm/webchat/input-panel/send-button.js.map +1 -1
- package/lib/esm/webchat/input-panel/styles.js +10 -6
- package/lib/esm/webchat/input-panel/styles.js.map +1 -1
- package/lib/esm/webchat/input-panel/textarea.js +34 -17
- package/lib/esm/webchat/input-panel/textarea.js.map +1 -1
- package/lib/esm/webchat/message-list/index.js +37 -37
- package/lib/esm/webchat/message-list/index.js.map +1 -1
- package/lib/esm/webchat/message-list/intro-message.js +22 -16
- package/lib/esm/webchat/message-list/intro-message.js.map +1 -1
- package/lib/esm/webchat/message-list/scroll-button.d.ts +0 -1
- package/lib/esm/webchat/message-list/scroll-button.js +15 -10
- package/lib/esm/webchat/message-list/scroll-button.js.map +1 -1
- package/lib/esm/webchat/message-list/styles.js +10 -6
- package/lib/esm/webchat/message-list/styles.js.map +1 -1
- package/lib/esm/webchat/message-list/unread-messages-banner.js +16 -11
- package/lib/esm/webchat/message-list/unread-messages-banner.js.map +1 -1
- package/lib/esm/webchat/message-list/use-debounce.js +7 -4
- package/lib/esm/webchat/message-list/use-debounce.js.map +1 -1
- package/lib/esm/webchat/message-list/use-notifications.js +14 -11
- package/lib/esm/webchat/message-list/use-notifications.js.map +1 -1
- package/lib/esm/webchat/replies/index.js +17 -14
- package/lib/esm/webchat/replies/index.js.map +1 -1
- package/lib/esm/webchat/replies/styles.js +8 -4
- package/lib/esm/webchat/replies/styles.js.map +1 -1
- package/lib/esm/webchat/session-view.js +41 -30
- package/lib/esm/webchat/session-view.js.map +1 -1
- package/lib/esm/webchat/styles.js +13 -9
- package/lib/esm/webchat/styles.js.map +1 -1
- package/lib/esm/webchat/theme/default-theme.js +17 -14
- package/lib/esm/webchat/theme/default-theme.js.map +1 -1
- package/lib/esm/webchat/theme/types.d.ts +0 -1
- package/lib/esm/webchat/theme/types.js +2 -1
- package/lib/esm/webchat/tracking.js +30 -26
- package/lib/esm/webchat/tracking.js.map +1 -1
- package/lib/esm/webchat/trigger-button/index.d.ts +0 -1
- package/lib/esm/webchat/trigger-button/index.js +19 -15
- package/lib/esm/webchat/trigger-button/index.js.map +1 -1
- package/lib/esm/webchat/trigger-button/styles.js +11 -7
- package/lib/esm/webchat/trigger-button/styles.js.map +1 -1
- package/lib/esm/webchat/typing-indicator/index.js +8 -6
- package/lib/esm/webchat/typing-indicator/index.js.map +1 -1
- package/lib/esm/webchat/typing-indicator/styles.js +10 -6
- package/lib/esm/webchat/typing-indicator/styles.js.map +1 -1
- package/lib/esm/webchat/use-storage-state-hook.js +12 -10
- package/lib/esm/webchat/use-storage-state-hook.js.map +1 -1
- package/lib/esm/webchat/utils.js +7 -3
- package/lib/esm/webchat/utils.js.map +1 -1
- package/lib/esm/webchat/webchat-dev.d.ts +1 -1
- package/lib/esm/webchat/webchat-dev.js +23 -22
- package/lib/esm/webchat/webchat-dev.js.map +1 -1
- package/lib/esm/webchat/webchat.js +156 -151
- package/lib/esm/webchat/webchat.js.map +1 -1
- package/lib/esm/webchat/webview/header.js +16 -10
- package/lib/esm/webchat/webview/header.js.map +1 -1
- package/lib/esm/webchat/webview/index.d.ts +1 -1
- package/lib/esm/webchat/webview/index.js +32 -27
- package/lib/esm/webchat/webview/index.js.map +1 -1
- package/lib/esm/webchat/webview/styles.js +20 -16
- package/lib/esm/webchat/webview/styles.js.map +1 -1
- package/lib/esm/webchat-app.d.ts +18 -18
- package/lib/esm/webchat-app.js +162 -166
- package/lib/esm/webchat-app.js.map +1 -1
- package/lib/esm/webview-app.js +105 -111
- package/lib/esm/webview-app.js.map +1 -1
- package/package.json +3 -4
|
@@ -1,54 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Webchat = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const core_1 = require("@botonic/core");
|
|
7
|
+
const lodash_merge_1 = tslib_1.__importDefault(require("lodash.merge"));
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const styled_components_1 = require("styled-components");
|
|
10
|
+
const uuid_1 = require("uuid");
|
|
11
|
+
const components_1 = require("../components");
|
|
12
|
+
const constants_1 = require("../constants");
|
|
13
|
+
const index_types_1 = require("../index-types");
|
|
14
|
+
const message_utils_1 = require("../message-utils");
|
|
15
|
+
const msg_to_botonic_1 = require("../msg-to-botonic");
|
|
16
|
+
const environment_1 = require("../util/environment");
|
|
17
|
+
const regexs_1 = require("../util/regexs");
|
|
18
|
+
const webchat_1 = require("../util/webchat");
|
|
19
|
+
const chat_area_1 = require("./chat-area");
|
|
20
|
+
const opened_persistent_menu_1 = require("./components/opened-persistent-menu");
|
|
21
|
+
const constants_2 = require("./constants");
|
|
22
|
+
const context_1 = require("./context");
|
|
23
|
+
const cover_component_1 = require("./cover-component");
|
|
24
|
+
const header_1 = require("./header");
|
|
25
|
+
const hooks_1 = require("./hooks");
|
|
26
|
+
const input_panel_1 = require("./input-panel");
|
|
27
|
+
const styles_1 = require("./styles");
|
|
28
|
+
const trigger_button_1 = require("./trigger-button");
|
|
29
|
+
const use_storage_state_hook_1 = require("./use-storage-state-hook");
|
|
30
|
+
const utils_1 = require("./utils");
|
|
31
|
+
const index_1 = require("./webview/index");
|
|
29
32
|
// eslint-disable-next-line complexity, react/display-name
|
|
30
|
-
const Webchat = forwardRef((props, ref) => {
|
|
31
|
-
var _a;
|
|
33
|
+
const Webchat = (0, react_1.forwardRef)((props, ref) => {
|
|
32
34
|
const { addMessage, addMessageComponent, clearMessages, doRenderCustomComponent, resetUnreadMessages, setCurrentAttachment, setError, setIsInputFocused, setLastMessageVisible, setOnline, toggleCoverComponent, toggleEmojiPicker, togglePersistentMenu, toggleWebchat, updateCustomMessageProps, updateDevSettings, updateHandoff, updateLastMessageDate, updateLastRoutePath, updateLatestInput, updateMessage, updateReplies, updateSession, updateTheme, updateTyping, updateWebview, removeWebview, removeReplies, webchatState, webchatContainerRef, chatAreaRef, inputPanelRef, headerRef, repliesRef, scrollableMessagesListRef,
|
|
33
35
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
34
|
-
} = props.webchatHooks || useWebchat(props.theme);
|
|
35
|
-
const firstUpdate = useRef(true);
|
|
36
|
+
} = props.webchatHooks || (0, context_1.useWebchat)(props.theme);
|
|
37
|
+
const firstUpdate = (0, react_1.useRef)(true);
|
|
36
38
|
const isOnline = () => webchatState.online;
|
|
37
39
|
const currentDateString = () => new Date().toISOString();
|
|
38
|
-
const theme =
|
|
40
|
+
const theme = (0, lodash_merge_1.default)(webchatState.theme, props.theme);
|
|
39
41
|
const { initialSession, initialDevSettings, onStateChange } = props;
|
|
40
|
-
const getThemeProperty = _getThemeProperty(theme);
|
|
41
|
-
const [customComponent, setCustomComponent] = useState(null);
|
|
42
|
+
const getThemeProperty = (0, webchat_1._getThemeProperty)(theme);
|
|
43
|
+
const [customComponent, setCustomComponent] = (0, react_1.useState)(null);
|
|
42
44
|
const storage = props.storage;
|
|
43
45
|
const storageKey = typeof props.storageKey === 'function'
|
|
44
46
|
? props.storageKey()
|
|
45
47
|
: props.storageKey;
|
|
46
|
-
const [botonicState, saveState] = useStorageState(storage, storageKey);
|
|
48
|
+
const [botonicState, saveState] = (0, use_storage_state_hook_1.useStorageState)(storage, storageKey);
|
|
47
49
|
const host = props.host || document.body;
|
|
48
|
-
const { scrollToBottom } = useScrollToBottom({ host });
|
|
50
|
+
const { scrollToBottom } = (0, hooks_1.useScrollToBottom)({ host });
|
|
49
51
|
const saveWebchatState = (webchatState) => {
|
|
50
52
|
storage &&
|
|
51
|
-
saveState(JSON.parse(stringifyWithRegexs({
|
|
53
|
+
saveState(JSON.parse((0, regexs_1.stringifyWithRegexs)({
|
|
52
54
|
messages: webchatState.messagesJSON,
|
|
53
55
|
session: webchatState.session,
|
|
54
56
|
lastRoutePath: webchatState.lastRoutePath,
|
|
@@ -58,18 +60,18 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
58
60
|
})));
|
|
59
61
|
};
|
|
60
62
|
const handleAttachment = (event) => {
|
|
61
|
-
if (!isAllowedSize(event.target.files[0].size)) {
|
|
62
|
-
throw new Error(`The file is too large. A maximum of ${MAX_ALLOWED_SIZE_MB}MB is allowed.`);
|
|
63
|
+
if (!(0, message_utils_1.isAllowedSize)(event.target.files[0].size)) {
|
|
64
|
+
throw new Error(`The file is too large. A maximum of ${constants_1.MAX_ALLOWED_SIZE_MB}MB is allowed.`);
|
|
63
65
|
}
|
|
64
66
|
// TODO: Attach more files?
|
|
65
67
|
setCurrentAttachment(event.target.files[0]);
|
|
66
68
|
};
|
|
67
|
-
useEffect(() => {
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
68
70
|
if (webchatState.currentAttachment) {
|
|
69
71
|
sendAttachment(webchatState.currentAttachment);
|
|
70
72
|
}
|
|
71
73
|
}, [webchatState.currentAttachment]);
|
|
72
|
-
const sendUserInput = (input) =>
|
|
74
|
+
const sendUserInput = async (input) => {
|
|
73
75
|
if (props.onUserInput) {
|
|
74
76
|
resetUnreadMessages();
|
|
75
77
|
scrollToBottom();
|
|
@@ -83,9 +85,9 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
83
85
|
lastRoutePath: webchatState.lastRoutePath,
|
|
84
86
|
});
|
|
85
87
|
}
|
|
86
|
-
}
|
|
88
|
+
};
|
|
87
89
|
// Load styles stored in window._botonicInsertStyles by Webpack
|
|
88
|
-
useComponentWillMount(() => {
|
|
90
|
+
(0, hooks_1.useComponentWillMount)(() => {
|
|
89
91
|
if (window._botonicInsertStyles && window._botonicInsertStyles.length) {
|
|
90
92
|
for (const botonicStyle of window._botonicInsertStyles) {
|
|
91
93
|
// Injecting styles at head is needed even if we use shadowDOM
|
|
@@ -109,28 +111,27 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
109
111
|
}
|
|
110
112
|
});
|
|
111
113
|
// Load initial state from storage
|
|
112
|
-
useEffect(() => {
|
|
114
|
+
(0, react_1.useEffect)(() => {
|
|
113
115
|
let { messages, session, lastRoutePath, devSettings, lastMessageUpdate, themeUpdates, } = botonicState || {};
|
|
114
|
-
session = initSession(session);
|
|
116
|
+
session = (0, webchat_1.initSession)(session);
|
|
115
117
|
updateSession(session);
|
|
116
|
-
if (shouldKeepSessionOnReload({ initialDevSettings, devSettings })) {
|
|
118
|
+
if ((0, webchat_1.shouldKeepSessionOnReload)({ initialDevSettings, devSettings })) {
|
|
117
119
|
if (messages) {
|
|
118
120
|
messages.forEach(message => {
|
|
119
|
-
var _a, _b;
|
|
120
121
|
addMessage(message);
|
|
121
|
-
const newMessageComponent =
|
|
122
|
+
const newMessageComponent = (0, msg_to_botonic_1.msgToBotonic)({ ...message, delay: 0, typing: 0 }, props.theme?.message?.customTypes);
|
|
122
123
|
//@ts-ignore
|
|
123
124
|
if (newMessageComponent)
|
|
124
125
|
addMessageComponent(newMessageComponent);
|
|
125
126
|
});
|
|
126
127
|
}
|
|
127
128
|
if (initialSession)
|
|
128
|
-
updateSession(
|
|
129
|
+
updateSession((0, lodash_merge_1.default)(initialSession, session));
|
|
129
130
|
if (lastRoutePath)
|
|
130
131
|
updateLastRoutePath(lastRoutePath);
|
|
131
132
|
}
|
|
132
133
|
else
|
|
133
|
-
updateSession(
|
|
134
|
+
updateSession((0, lodash_merge_1.default)(initialSession, session));
|
|
134
135
|
if (devSettings)
|
|
135
136
|
updateDevSettings(devSettings);
|
|
136
137
|
else if (initialDevSettings)
|
|
@@ -139,18 +140,18 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
139
140
|
updateLastMessageDate(lastMessageUpdate);
|
|
140
141
|
}
|
|
141
142
|
if (themeUpdates !== undefined) {
|
|
142
|
-
updateTheme(
|
|
143
|
+
updateTheme((0, lodash_merge_1.default)(props.theme, themeUpdates), themeUpdates);
|
|
143
144
|
}
|
|
144
145
|
if (props.onInit) {
|
|
145
146
|
setTimeout(() => {
|
|
146
147
|
if (typeof props.onInit === 'function') {
|
|
147
148
|
props.onInit();
|
|
148
|
-
session.user = updateUserLocaleAndCountry(session.user);
|
|
149
|
+
session.user = (0, webchat_1.updateUserLocaleAndCountry)(session.user);
|
|
149
150
|
}
|
|
150
151
|
}, 100);
|
|
151
152
|
}
|
|
152
153
|
}, []);
|
|
153
|
-
useEffect(() => {
|
|
154
|
+
(0, react_1.useEffect)(() => {
|
|
154
155
|
if (!webchatState.isWebchatOpen) {
|
|
155
156
|
if (webchatState.isLastMessageVisible) {
|
|
156
157
|
resetUnreadMessages();
|
|
@@ -158,7 +159,7 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
158
159
|
return;
|
|
159
160
|
}
|
|
160
161
|
}, [webchatState.isWebchatOpen]);
|
|
161
|
-
useEffect(() => {
|
|
162
|
+
(0, react_1.useEffect)(() => {
|
|
162
163
|
const { messagesJSON, session } = webchatState;
|
|
163
164
|
if (onStateChange && typeof onStateChange === 'function' && session.user) {
|
|
164
165
|
onStateChange({ messagesJSON, user: session.user });
|
|
@@ -171,10 +172,10 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
171
172
|
webchatState.devSettings,
|
|
172
173
|
webchatState.lastMessageUpdate,
|
|
173
174
|
]);
|
|
174
|
-
useEffect(() => {
|
|
175
|
+
(0, react_1.useEffect)(() => {
|
|
175
176
|
if (!webchatState.online) {
|
|
176
177
|
setError({
|
|
177
|
-
message: getServerErrorMessage(props.server),
|
|
178
|
+
message: (0, webchat_1.getServerErrorMessage)(props.server),
|
|
178
179
|
});
|
|
179
180
|
}
|
|
180
181
|
else {
|
|
@@ -183,61 +184,59 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
186
|
}, [webchatState.online]);
|
|
186
|
-
useTyping({ webchatState, updateTyping, updateMessage, host });
|
|
187
|
-
useEffect(() => {
|
|
188
|
-
updateTheme(
|
|
187
|
+
(0, hooks_1.useTyping)({ webchatState, updateTyping, updateMessage, host });
|
|
188
|
+
(0, react_1.useEffect)(() => {
|
|
189
|
+
updateTheme((0, lodash_merge_1.default)(props.theme, theme, webchatState.themeUpdates));
|
|
189
190
|
}, [props.theme, webchatState.themeUpdates]);
|
|
190
191
|
const openWebview = (webviewComponent, params) => {
|
|
191
192
|
updateWebview(webviewComponent, params);
|
|
192
193
|
};
|
|
193
|
-
const textareaRef = useRef();
|
|
194
|
-
const closeWebview = (options) =>
|
|
195
|
-
var _b;
|
|
194
|
+
const textareaRef = (0, react_1.useRef)();
|
|
195
|
+
const closeWebview = async (options) => {
|
|
196
196
|
removeWebview();
|
|
197
197
|
if (userInputEnabled) {
|
|
198
|
-
|
|
198
|
+
textareaRef.current?.focus();
|
|
199
199
|
}
|
|
200
|
-
if (options
|
|
201
|
-
|
|
200
|
+
if (options?.payload) {
|
|
201
|
+
await sendPayload(options.payload);
|
|
202
202
|
}
|
|
203
|
-
else if (options
|
|
204
|
-
const params = options.params ? params2queryString(options.params) : '';
|
|
205
|
-
|
|
203
|
+
else if (options?.path) {
|
|
204
|
+
const params = options.params ? (0, core_1.params2queryString)(options.params) : '';
|
|
205
|
+
await sendPayload(`__PATH_PAYLOAD__${options.path}?${params}`);
|
|
206
206
|
}
|
|
207
|
-
}
|
|
208
|
-
const persistentMenuOptions = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.persistentMenu);
|
|
209
|
-
const darkBackgroundMenu = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu);
|
|
207
|
+
};
|
|
208
|
+
const persistentMenuOptions = getThemeProperty(constants_1.WEBCHAT.CUSTOM_PROPERTIES.persistentMenu);
|
|
209
|
+
const darkBackgroundMenu = getThemeProperty(constants_1.WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu);
|
|
210
210
|
const getBlockInputs = (rule, inputData) => {
|
|
211
211
|
const processedInput = rule.preprocess
|
|
212
212
|
? rule.preprocess(inputData)
|
|
213
213
|
: inputData;
|
|
214
214
|
return rule.match.some(regex => {
|
|
215
215
|
if (typeof regex === 'string')
|
|
216
|
-
regex = deserializeRegex(regex);
|
|
216
|
+
regex = (0, regexs_1.deserializeRegex)(regex);
|
|
217
217
|
return regex.test(processedInput);
|
|
218
218
|
});
|
|
219
219
|
};
|
|
220
220
|
const checkBlockInput = input => {
|
|
221
|
-
var _a;
|
|
222
221
|
// if is a text we check if it is a serialized RE
|
|
223
|
-
const blockInputs =
|
|
222
|
+
const blockInputs = webchatState.theme.userInput?.blockInputs;
|
|
224
223
|
if (!Array.isArray(blockInputs))
|
|
225
224
|
return false;
|
|
226
225
|
for (const rule of blockInputs) {
|
|
227
226
|
if (getBlockInputs(rule, input.data)) {
|
|
228
|
-
addMessageComponent(
|
|
227
|
+
addMessageComponent((0, jsx_runtime_1.jsx)(components_1.Text
|
|
229
228
|
// Is necessary to add the id of the input
|
|
230
229
|
// to keep the input.id generated in the frontend as id of the message
|
|
231
230
|
// @ts-ignore
|
|
232
|
-
,
|
|
231
|
+
, {
|
|
233
232
|
// Is necessary to add the id of the input
|
|
234
233
|
// to keep the input.id generated in the frontend as id of the message
|
|
235
234
|
// @ts-ignore
|
|
236
|
-
id: input.id, sentBy: SENDERS.user, blob: false, style: {
|
|
237
|
-
backgroundColor: COLORS.SCORPION_GRAY,
|
|
238
|
-
borderColor: COLORS.SCORPION_GRAY,
|
|
235
|
+
id: input.id, sentBy: index_types_1.SENDERS.user, blob: false, style: {
|
|
236
|
+
backgroundColor: constants_1.COLORS.SCORPION_GRAY,
|
|
237
|
+
borderColor: constants_1.COLORS.SCORPION_GRAY,
|
|
239
238
|
padding: '8px 12px',
|
|
240
|
-
}
|
|
239
|
+
}, children: rule.message }));
|
|
241
240
|
removeReplies();
|
|
242
241
|
return true;
|
|
243
242
|
}
|
|
@@ -248,11 +247,11 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
248
247
|
togglePersistentMenu(false);
|
|
249
248
|
};
|
|
250
249
|
const persistentMenu = () => {
|
|
251
|
-
return (
|
|
250
|
+
return ((0, jsx_runtime_1.jsx)(opened_persistent_menu_1.OpenedPersistentMenu, { onClick: closeMenu, options: persistentMenuOptions, borderRadius: webchatState.theme.style.borderRadius || '10px' }));
|
|
252
251
|
};
|
|
253
252
|
const coverComponent = webchatState.theme.coverComponent;
|
|
254
|
-
const coverComponentProps =
|
|
255
|
-
useEffect(() => {
|
|
253
|
+
const coverComponentProps = webchatState.theme.coverComponent?.props;
|
|
254
|
+
(0, react_1.useEffect)(() => {
|
|
256
255
|
if (!coverComponent)
|
|
257
256
|
return;
|
|
258
257
|
if (!botonicState ||
|
|
@@ -261,87 +260,90 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
261
260
|
}, []);
|
|
262
261
|
const messageComponentFromInput = input => {
|
|
263
262
|
let messageComponent = null;
|
|
264
|
-
if (isText(input)) {
|
|
265
|
-
messageComponent = (
|
|
263
|
+
if ((0, message_utils_1.isText)(input)) {
|
|
264
|
+
messageComponent = ((0, jsx_runtime_1.jsx)(components_1.Text
|
|
266
265
|
// Is necessary to add the id of the input
|
|
267
266
|
// to keep the input.id generated in the frontend as id of the message
|
|
268
267
|
// @ts-ignore
|
|
269
|
-
,
|
|
268
|
+
, {
|
|
270
269
|
// Is necessary to add the id of the input
|
|
271
270
|
// to keep the input.id generated in the frontend as id of the message
|
|
272
271
|
// @ts-ignore
|
|
273
272
|
id: input.id,
|
|
274
273
|
// Is necessary to add the payload of the input when user clicks a button
|
|
275
274
|
// @ts-ignore
|
|
276
|
-
payload: input.payload, sentBy: SENDERS.user
|
|
275
|
+
payload: input.payload, sentBy: index_types_1.SENDERS.user, children: input.data }));
|
|
277
276
|
}
|
|
278
|
-
else if (isMedia(input)) {
|
|
277
|
+
else if ((0, message_utils_1.isMedia)(input)) {
|
|
279
278
|
const temporaryDisplayUrl = URL.createObjectURL(input.data);
|
|
280
279
|
// TODO: We should use URL.revokeObjectURL(temporaryDisplayUrl) when the component is unmounted
|
|
281
280
|
// https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL_static#memory_management
|
|
282
281
|
const mediaProps = {
|
|
283
282
|
id: input.id,
|
|
284
|
-
sentBy: SENDERS.user,
|
|
283
|
+
sentBy: index_types_1.SENDERS.user,
|
|
285
284
|
src: temporaryDisplayUrl,
|
|
286
285
|
};
|
|
287
|
-
if (isImage(input)) {
|
|
286
|
+
if ((0, message_utils_1.isImage)(input)) {
|
|
288
287
|
mediaProps.input = input;
|
|
289
|
-
messageComponent =
|
|
288
|
+
messageComponent = (0, jsx_runtime_1.jsx)(components_1.Image, { ...mediaProps });
|
|
290
289
|
}
|
|
291
|
-
else if (isAudio(input))
|
|
292
|
-
messageComponent =
|
|
293
|
-
else if (isVideo(input))
|
|
294
|
-
messageComponent =
|
|
295
|
-
else if (isDocument(input))
|
|
296
|
-
messageComponent =
|
|
290
|
+
else if ((0, message_utils_1.isAudio)(input))
|
|
291
|
+
messageComponent = (0, jsx_runtime_1.jsx)(components_1.Audio, { ...mediaProps });
|
|
292
|
+
else if ((0, message_utils_1.isVideo)(input))
|
|
293
|
+
messageComponent = (0, jsx_runtime_1.jsx)(components_1.Video, { ...mediaProps });
|
|
294
|
+
else if ((0, message_utils_1.isDocument)(input))
|
|
295
|
+
messageComponent = (0, jsx_runtime_1.jsx)(components_1.Document, { ...mediaProps });
|
|
297
296
|
}
|
|
298
297
|
return messageComponent;
|
|
299
298
|
};
|
|
300
|
-
const sendInput = (input) =>
|
|
299
|
+
const sendInput = async (input) => {
|
|
301
300
|
if (!input || Object.keys(input).length == 0)
|
|
302
301
|
return;
|
|
303
|
-
if (isText(input) && (!input.data || !input.data.trim()))
|
|
302
|
+
if ((0, message_utils_1.isText)(input) && (!input.data || !input.data.trim()))
|
|
304
303
|
return; // in case trim() doesn't work in a browser we can use !/\S/.test(input.data)
|
|
305
|
-
if (isText(input) && checkBlockInput(input))
|
|
304
|
+
if ((0, message_utils_1.isText)(input) && checkBlockInput(input))
|
|
306
305
|
return;
|
|
307
306
|
if (!input.id)
|
|
308
|
-
input.id =
|
|
307
|
+
input.id = (0, uuid_1.v7)();
|
|
309
308
|
const messageComponent = messageComponentFromInput(input);
|
|
310
309
|
if (messageComponent)
|
|
311
310
|
addMessageComponent(messageComponent);
|
|
312
|
-
if (isMedia(input))
|
|
313
|
-
input.data =
|
|
311
|
+
if ((0, message_utils_1.isMedia)(input))
|
|
312
|
+
input.data = await (0, message_utils_1.readDataURL)(input.data);
|
|
314
313
|
sendUserInput(input);
|
|
315
314
|
updateLatestInput(input);
|
|
316
315
|
isOnline() && updateLastMessageDate(currentDateString());
|
|
317
316
|
removeReplies();
|
|
318
317
|
togglePersistentMenu(false);
|
|
319
318
|
toggleEmojiPicker(false);
|
|
320
|
-
}
|
|
319
|
+
};
|
|
321
320
|
/* This is the public API this component exposes to its parents
|
|
322
321
|
https://stackoverflow.com/questions/37949981/call-child-method-from-parent
|
|
323
322
|
*/
|
|
324
323
|
const updateSessionWithUser = (userToUpdate) => {
|
|
325
|
-
updateSession(
|
|
324
|
+
updateSession((0, lodash_merge_1.default)(webchatState.session, { user: userToUpdate }));
|
|
326
325
|
};
|
|
327
|
-
useImperativeHandle(ref, () => ({
|
|
326
|
+
(0, react_1.useImperativeHandle)(ref, () => ({
|
|
328
327
|
addBotResponse: ({ response, session, lastRoutePath }) => {
|
|
329
328
|
updateTyping(false);
|
|
330
329
|
const isUnread = !webchatState.isLastMessageVisible || webchatState.numUnreadMessages > 0;
|
|
331
330
|
if (Array.isArray(response)) {
|
|
332
331
|
response.forEach(r => {
|
|
333
|
-
addMessageComponent(
|
|
332
|
+
addMessageComponent({ ...r, props: { ...r.props, isUnread } });
|
|
334
333
|
});
|
|
335
334
|
}
|
|
336
335
|
else if (response) {
|
|
337
|
-
addMessageComponent(
|
|
336
|
+
addMessageComponent({
|
|
337
|
+
...response,
|
|
338
|
+
props: { ...response.props, isUnread },
|
|
339
|
+
});
|
|
338
340
|
}
|
|
339
341
|
if (session) {
|
|
340
|
-
updateSession(
|
|
342
|
+
updateSession((0, lodash_merge_1.default)(session, { user: webchatState.session.user }));
|
|
341
343
|
const action = session._botonic_action || '';
|
|
342
|
-
const handoff = action.startsWith(BotonicAction.CreateCase);
|
|
343
|
-
if (handoff && isDev)
|
|
344
|
-
addMessageComponent(
|
|
344
|
+
const handoff = action.startsWith(core_1.BotonicAction.CreateCase);
|
|
345
|
+
if (handoff && environment_1.isDev)
|
|
346
|
+
addMessageComponent((0, jsx_runtime_1.jsx)(components_1.Handoff, {}));
|
|
345
347
|
updateHandoff(handoff);
|
|
346
348
|
}
|
|
347
349
|
if (lastRoutePath)
|
|
@@ -351,11 +353,14 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
351
353
|
addSystemResponse: ({ response }) => {
|
|
352
354
|
if (Array.isArray(response)) {
|
|
353
355
|
response.forEach(r => {
|
|
354
|
-
addMessageComponent(
|
|
356
|
+
addMessageComponent({ ...r, props: { ...r.props, isUnread: false } });
|
|
355
357
|
});
|
|
356
358
|
}
|
|
357
359
|
else if (response) {
|
|
358
|
-
addMessageComponent(
|
|
360
|
+
addMessageComponent({
|
|
361
|
+
...response,
|
|
362
|
+
props: { ...response.props, isUnread: false },
|
|
363
|
+
});
|
|
359
364
|
}
|
|
360
365
|
updateLastMessageDate(currentDateString());
|
|
361
366
|
},
|
|
@@ -383,7 +388,7 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
383
388
|
getLastMessageUpdate: () => webchatState.lastMessageUpdate,
|
|
384
389
|
updateMessageInfo: (msgId, messageInfo) => {
|
|
385
390
|
const messageToUpdate = webchatState.messagesJSON.filter(m => m.id === msgId)[0];
|
|
386
|
-
const updatedMsg =
|
|
391
|
+
const updatedMsg = (0, lodash_merge_1.default)(messageToUpdate, messageInfo);
|
|
387
392
|
if (updatedMsg.ack === 1)
|
|
388
393
|
delete updatedMsg.unsentInput;
|
|
389
394
|
updateMessage(updatedMsg);
|
|
@@ -392,51 +397,51 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
392
397
|
if (settings.user) {
|
|
393
398
|
updateSessionWithUser(settings.user);
|
|
394
399
|
}
|
|
395
|
-
const themeUpdates = normalizeWebchatSettings(settings);
|
|
396
|
-
updateTheme(
|
|
400
|
+
const themeUpdates = (0, components_1.normalizeWebchatSettings)(settings);
|
|
401
|
+
updateTheme((0, lodash_merge_1.default)(webchatState.theme, themeUpdates), themeUpdates);
|
|
397
402
|
updateTyping(false);
|
|
398
403
|
},
|
|
399
|
-
closeWebview: (options) =>
|
|
404
|
+
closeWebview: async (options) => closeWebview(options),
|
|
400
405
|
}));
|
|
401
406
|
const resolveCase = () => {
|
|
402
407
|
updateHandoff(false);
|
|
403
|
-
updateSession(
|
|
408
|
+
updateSession({ ...webchatState.session, _botonic_action: undefined });
|
|
404
409
|
};
|
|
405
|
-
const prevSession = usePrevious(webchatState.session);
|
|
406
|
-
useEffect(() => {
|
|
410
|
+
const prevSession = (0, hooks_1.usePrevious)(webchatState.session);
|
|
411
|
+
(0, react_1.useEffect)(() => {
|
|
407
412
|
// Resume conversation after handoff
|
|
408
|
-
if (
|
|
409
|
-
const action = getParsedAction(prevSession._botonic_action);
|
|
410
|
-
if (action
|
|
413
|
+
if (prevSession?._botonic_action && !webchatState.session._botonic_action) {
|
|
414
|
+
const action = (0, utils_1.getParsedAction)(prevSession._botonic_action);
|
|
415
|
+
if (action?.on_finish)
|
|
411
416
|
sendPayload(action.on_finish);
|
|
412
417
|
}
|
|
413
418
|
}, [webchatState.session._botonic_action]);
|
|
414
|
-
const sendText = (text, payload) =>
|
|
419
|
+
const sendText = async (text, payload) => {
|
|
415
420
|
if (!text)
|
|
416
421
|
return;
|
|
417
|
-
const input = { type: INPUT.TEXT, data: text, payload };
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
const sendPayload = (payload) =>
|
|
422
|
+
const input = { type: core_1.INPUT.TEXT, data: text, payload };
|
|
423
|
+
await sendInput(input);
|
|
424
|
+
};
|
|
425
|
+
const sendPayload = async (payload) => {
|
|
421
426
|
if (!payload)
|
|
422
427
|
return;
|
|
423
|
-
const input = { type: INPUT.POSTBACK, payload };
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
const sendAttachment = (attachment) =>
|
|
428
|
+
const input = { type: core_1.INPUT.POSTBACK, payload };
|
|
429
|
+
await sendInput(input);
|
|
430
|
+
};
|
|
431
|
+
const sendAttachment = async (attachment) => {
|
|
427
432
|
if (attachment) {
|
|
428
|
-
const attachmentType = getMediaType(attachment.type);
|
|
433
|
+
const attachmentType = (0, message_utils_1.getMediaType)(attachment.type);
|
|
429
434
|
if (!attachmentType)
|
|
430
435
|
return;
|
|
431
436
|
const input = {
|
|
432
437
|
type: attachmentType,
|
|
433
438
|
data: attachment,
|
|
434
439
|
};
|
|
435
|
-
|
|
440
|
+
await sendInput(input);
|
|
436
441
|
setCurrentAttachment();
|
|
437
442
|
}
|
|
438
|
-
}
|
|
439
|
-
useEffect(() => {
|
|
443
|
+
};
|
|
444
|
+
(0, react_1.useEffect)(() => {
|
|
440
445
|
if (firstUpdate.current) {
|
|
441
446
|
firstUpdate.current = false;
|
|
442
447
|
return;
|
|
@@ -450,34 +455,34 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
450
455
|
}
|
|
451
456
|
}, [webchatState.isWebchatOpen]);
|
|
452
457
|
const isUserInputEnabled = () => {
|
|
453
|
-
const isUserInputEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.enableUserInput);
|
|
458
|
+
const isUserInputEnabled = getThemeProperty(constants_1.WEBCHAT.CUSTOM_PROPERTIES.enableUserInput);
|
|
454
459
|
return isUserInputEnabled && !webchatState.isCoverComponentOpen;
|
|
455
460
|
};
|
|
456
461
|
const userInputEnabled = isUserInputEnabled();
|
|
457
|
-
useEffect(() => {
|
|
462
|
+
(0, react_1.useEffect)(() => {
|
|
458
463
|
// Prod mode
|
|
459
464
|
saveWebchatState(webchatState);
|
|
460
465
|
}, [webchatState.themeUpdates]);
|
|
461
466
|
// Only needed for dev/serve mode
|
|
462
467
|
const updateWebchatDevSettings = settings => {
|
|
463
468
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
464
|
-
useEffect(() => {
|
|
465
|
-
const themeUpdates = normalizeWebchatSettings(settings);
|
|
466
|
-
updateTheme(
|
|
469
|
+
(0, react_1.useEffect)(() => {
|
|
470
|
+
const themeUpdates = (0, components_1.normalizeWebchatSettings)(settings);
|
|
471
|
+
updateTheme((0, lodash_merge_1.default)(webchatState.theme, themeUpdates), themeUpdates);
|
|
467
472
|
}, [webchatState.messagesJSON]);
|
|
468
473
|
};
|
|
469
474
|
const DarkenBackground = ({ component }) => {
|
|
470
|
-
return (
|
|
475
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [darkBackgroundMenu && ((0, jsx_runtime_1.jsx)(styles_1.DarkBackgroundMenu, { style: {
|
|
471
476
|
borderRadius: webchatState.theme.style.borderRadius,
|
|
472
477
|
} })), component] }));
|
|
473
478
|
};
|
|
474
479
|
const _renderCustomComponent = () => {
|
|
475
480
|
if (!customComponent)
|
|
476
|
-
return
|
|
481
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
477
482
|
else
|
|
478
483
|
return customComponent;
|
|
479
484
|
};
|
|
480
|
-
const WebchatComponent = (
|
|
485
|
+
const WebchatComponent = ((0, jsx_runtime_1.jsx)(context_1.WebchatContext.Provider, { value: {
|
|
481
486
|
addMessage,
|
|
482
487
|
getThemeProperty,
|
|
483
488
|
closeWebview,
|
|
@@ -509,13 +514,13 @@ const Webchat = forwardRef((props, ref) => {
|
|
|
509
514
|
headerRef,
|
|
510
515
|
repliesRef,
|
|
511
516
|
scrollableMessagesListRef,
|
|
512
|
-
}
|
|
517
|
+
}, children: (0, jsx_runtime_1.jsxs)(styled_components_1.ThemeProvider, { theme: webchatState.theme, children: [!webchatState.isWebchatOpen && (0, jsx_runtime_1.jsx)(trigger_button_1.TriggerButton, {}), webchatState.isWebchatOpen && ((0, jsx_runtime_1.jsxs)(styles_1.StyledWebchat, { id: constants_2.BotonicContainerId.Webchat, ref: webchatContainerRef,
|
|
513
518
|
// TODO: Distinguish between multiple instances of webchat, e.g. `${uniqueId}-botonic-webchat`
|
|
514
|
-
role: ROLES.WEBCHAT
|
|
519
|
+
role: constants_1.ROLES.WEBCHAT, children: [(0, jsx_runtime_1.jsx)(header_1.WebchatHeader, { ref: headerRef }), webchatState.isCoverComponentOpen ? ((0, jsx_runtime_1.jsx)(cover_component_1.CoverComponent, { component: coverComponent, componentProps: coverComponentProps })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [webchatState.error.message && ((0, jsx_runtime_1.jsx)(styles_1.ErrorMessageContainer, { children: (0, jsx_runtime_1.jsx)(styles_1.ErrorMessage, { children: webchatState.error.message }) })), (0, jsx_runtime_1.jsx)(chat_area_1.ChatArea, {}), webchatState.isPersistentMenuOpen && ((0, jsx_runtime_1.jsx)(DarkenBackground, { component: persistentMenu() })), !webchatState.handoff && userInputEnabled && ((0, jsx_runtime_1.jsx)(input_panel_1.InputPanel, { handleAttachment: handleAttachment, textareaRef: textareaRef, host: host, onUserInput: props.onUserInput })), webchatState.webview && ((0, jsx_runtime_1.jsx)(index_1.WebviewContainer, { localWebviews: props.localWebviews })), webchatState.isCustomComponentRendered &&
|
|
515
520
|
customComponent &&
|
|
516
|
-
_renderCustomComponent()] }))] }))
|
|
517
|
-
return props.shadowDOM ? (
|
|
521
|
+
_renderCustomComponent()] }))] }))] }) }));
|
|
522
|
+
return props.shadowDOM ? ((0, jsx_runtime_1.jsx)(styled_components_1.StyleSheetManager, { target: host, children: WebchatComponent })) : (WebchatComponent);
|
|
518
523
|
});
|
|
524
|
+
exports.Webchat = Webchat;
|
|
519
525
|
Webchat.displayName = 'Webchat';
|
|
520
|
-
export { Webchat };
|
|
521
526
|
//# sourceMappingURL=webchat.js.map
|