@botonic/react 0.57.0-rslib-esm.0 → 0.57.0-rslib-esm.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app.js.map +1 -0
- package/lib/botonic-tester.js.map +1 -0
- package/lib/components/audio.d.ts +9 -0
- package/lib/components/audio.js.map +1 -0
- package/lib/components/button/index.js.map +1 -0
- package/lib/components/button/styles.js.map +1 -0
- package/lib/components/buttons-disabler.js.map +1 -0
- package/lib/components/carousel.d.ts +10 -0
- package/lib/components/carousel.js.map +1 -0
- package/lib/components/components.js.map +1 -0
- package/lib/components/constants.js.map +1 -0
- package/lib/components/custom-message.js.map +1 -0
- package/lib/components/document.d.ts +9 -0
- package/lib/components/document.js.map +1 -0
- package/lib/components/element.js.map +1 -0
- package/lib/components/handoff.d.ts +1 -0
- package/lib/components/handoff.js.map +1 -0
- package/lib/components/image.d.ts +9 -0
- package/lib/components/image.js.map +1 -0
- package/lib/components/index-types.js.map +1 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/location.js.map +1 -0
- package/lib/components/markdown.js.map +1 -0
- package/lib/components/message/index.js.map +1 -0
- package/lib/components/message/message-footer.d.ts +8 -0
- package/lib/components/message/message-footer.js.map +1 -0
- package/lib/components/message/message-image.js.map +1 -0
- package/lib/components/message/styles.js.map +1 -0
- package/lib/components/message/timestamps.d.ts +13 -0
- package/lib/components/message/timestamps.js.map +1 -0
- package/lib/components/message-template.js.map +1 -0
- package/lib/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/components/multichannel/index-types.js.map +1 -0
- package/lib/components/multichannel/index.d.ts +7 -0
- package/lib/components/multichannel/index.js +21 -0
- package/lib/components/multichannel/index.js.map +1 -0
- package/lib/components/multichannel/multichannel-button.d.ts +4 -0
- package/lib/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/components/multichannel/multichannel-reply.d.ts +4 -0
- package/lib/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/components/multichannel/multichannel-text.d.ts +2 -0
- package/lib/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/components/multichannel/multichannel.js.map +1 -0
- package/lib/components/multichannel/whatsapp/constants.js.map +1 -0
- package/lib/components/multichannel/whatsapp/markdown-meta.js.map +1 -0
- package/lib/components/pic.js.map +1 -0
- package/lib/components/raw.d.ts +9 -0
- package/lib/components/raw.js.map +1 -0
- package/lib/components/reply.js.map +1 -0
- package/lib/components/share-button.js.map +1 -0
- package/lib/components/subtitle.js.map +1 -0
- package/lib/components/system-debug-trace/debug-message.d.ts +8 -0
- package/lib/components/system-debug-trace/debug-message.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +4 -0
- package/lib/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +7 -0
- package/lib/components/system-debug-trace/events/ai-agent/executed-tools.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/parse-tools.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/types.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +4 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/types.js.map +1 -0
- package/lib/components/system-debug-trace/events/bot-action.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/guardrail-item.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/sources-section.d.ts +11 -0
- package/lib/components/system-debug-trace/events/components/sources-section.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-channel.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-country.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-custom.d.ts +10 -0
- package/lib/components/system-debug-trace/events/conditional-custom.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-queue-status.d.ts +11 -0
- package/lib/components/system-debug-trace/events/conditional-queue-status.js.map +1 -0
- package/lib/components/system-debug-trace/events/constants.js.map +1 -0
- package/lib/components/system-debug-trace/events/fallback.js.map +1 -0
- package/lib/components/system-debug-trace/events/handoff-success.d.ts +11 -0
- package/lib/components/system-debug-trace/events/handoff-success.js.map +1 -0
- package/lib/components/system-debug-trace/events/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/keyword.js.map +1 -0
- package/lib/components/system-debug-trace/events/knowledge-bases-types.js.map +1 -0
- package/lib/components/system-debug-trace/events/redirect-flow.js.map +1 -0
- package/lib/components/system-debug-trace/events/smart-intent.js.map +1 -0
- package/lib/components/system-debug-trace/events/webview-action-triggered.d.ts +10 -0
- package/lib/components/system-debug-trace/events/webview-action-triggered.js.map +1 -0
- package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +16 -0
- package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -0
- package/lib/components/system-debug-trace/hooks/use-last-label-position.js.map +1 -0
- package/lib/components/system-debug-trace/icons/ai-router.d.ts +1 -0
- package/lib/components/system-debug-trace/icons/ai-router.js.map +1 -0
- package/lib/components/system-debug-trace/icons/ai-specialist.d.ts +1 -0
- package/lib/components/system-debug-trace/icons/ai-specialist.js.map +1 -0
- package/lib/components/system-debug-trace/icons/arrow-progress.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/arrow-progress.js.map +1 -0
- package/lib/components/system-debug-trace/icons/brain.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/brain.js.map +1 -0
- package/lib/components/system-debug-trace/icons/caret-down.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/caret-down.js.map +1 -0
- package/lib/components/system-debug-trace/icons/caret-up.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/caret-up.js.map +1 -0
- package/lib/components/system-debug-trace/icons/circle-check.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/circle-check.js.map +1 -0
- package/lib/components/system-debug-trace/icons/code.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/code.js.map +1 -0
- package/lib/components/system-debug-trace/icons/file-pdf.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/file-pdf.js.map +1 -0
- package/lib/components/system-debug-trace/icons/file-word.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/file-word.js.map +1 -0
- package/lib/components/system-debug-trace/icons/hand.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/hand.js.map +1 -0
- package/lib/components/system-debug-trace/icons/head-set.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/head-set.js.map +1 -0
- package/lib/components/system-debug-trace/icons/index.js.map +1 -0
- package/lib/components/system-debug-trace/icons/life-ring.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/life-ring.js.map +1 -0
- package/lib/components/system-debug-trace/icons/link.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/link.js.map +1 -0
- package/lib/components/system-debug-trace/icons/quote-right.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/quote-right.js.map +1 -0
- package/lib/components/system-debug-trace/icons/screwdriver-wrench.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/screwdriver-wrench.js.map +1 -0
- package/lib/components/system-debug-trace/icons/split.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/split.js.map +1 -0
- package/lib/components/system-debug-trace/icons/wand.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/wand.js.map +1 -0
- package/lib/components/system-debug-trace/icons/window-restore.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/window-restore.js.map +1 -0
- package/lib/components/system-debug-trace/index.d.ts +10 -0
- package/lib/components/system-debug-trace/index.js.map +1 -0
- package/lib/components/system-debug-trace/styles.js.map +1 -0
- package/lib/components/system-debug-trace/types.js.map +1 -0
- package/lib/components/text.d.ts +8 -0
- package/lib/components/text.js.map +1 -0
- package/lib/components/title.js.map +1 -0
- package/lib/components/video.d.ts +9 -0
- package/lib/components/video.js.map +1 -0
- package/lib/components/webchat-settings.js.map +1 -0
- package/lib/components/whatsapp-button-list.js.map +1 -0
- package/lib/components/whatsapp-catalog.js.map +1 -0
- package/lib/components/whatsapp-cta-url-button.js.map +1 -0
- package/lib/components/whatsapp-interactive-media-carousel.d.ts +31 -0
- package/lib/components/whatsapp-interactive-media-carousel.js.map +1 -0
- package/lib/components/whatsapp-media-carousel.js.map +1 -0
- package/lib/components/whatsapp-product-carousel.js.map +1 -0
- package/lib/components/whatsapp-product-list.js.map +1 -0
- package/lib/components/whatsapp-product.js.map +1 -0
- package/lib/components/whatsapp-request-contact-info.js.map +1 -0
- package/lib/components/whatsapp-template/index.js.map +1 -0
- package/lib/components/whatsapp-template/types.js.map +1 -0
- package/lib/constants.js.map +1 -0
- package/lib/contexts.js.map +1 -0
- package/lib/debug-system-messages.js.map +1 -0
- package/lib/dev-app.d.ts +213 -0
- package/lib/dev-app.js.map +1 -0
- package/lib/index-types.js.map +1 -0
- package/lib/index.js.map +1 -0
- package/lib/message-utils.js.map +1 -0
- package/lib/msg-to-botonic.js.map +1 -0
- package/lib/node-app.js.map +1 -0
- package/lib/react-bot.js.map +1 -0
- package/lib/shared/styles.js.map +1 -0
- package/lib/util/dom.js.map +1 -0
- package/lib/util/environment.js.map +1 -0
- package/lib/util/error-boundary.d.ts +7 -0
- package/lib/util/error-boundary.js.map +1 -0
- package/lib/util/functional.js.map +1 -0
- package/lib/util/i18n.js.map +1 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/logs.js.map +1 -0
- package/lib/util/objects.js.map +1 -0
- package/lib/util/react.js.map +1 -0
- package/lib/util/regexs.js.map +1 -0
- package/lib/util/strings.js.map +1 -0
- package/lib/util/webchat.js.map +1 -0
- package/lib/util/webviews.js.map +1 -0
- package/lib/webchat/chat-area/index.d.ts +1 -0
- package/lib/webchat/chat-area/index.js.map +1 -0
- package/lib/webchat/chat-area/styles.js.map +1 -0
- package/lib/webchat/components/common.d.ts +1 -0
- package/lib/webchat/components/common.js.map +1 -0
- package/lib/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/webchat/components/conditional-animation.js.map +1 -0
- package/lib/webchat/components/opened-persistent-menu.d.ts +6 -0
- package/lib/webchat/components/opened-persistent-menu.js.map +1 -0
- package/lib/webchat/constants.js.map +1 -0
- package/lib/webchat/context/actions.js.map +1 -0
- package/lib/webchat/context/index.js.map +1 -0
- package/lib/webchat/context/messages-reducer.js.map +1 -0
- package/lib/webchat/context/types.js.map +1 -0
- package/lib/webchat/context/use-webchat.js.map +1 -0
- package/lib/webchat/context/webchat-reducer.js.map +1 -0
- package/lib/webchat/cover-component/index.d.ts +6 -0
- package/lib/webchat/cover-component/index.js.map +1 -0
- package/lib/webchat/custom-messages/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-angry.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-angry.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-frown.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-frown.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-grin-beam.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-meh.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-meh.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-smile.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-smile.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/star.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/star.js.map +1 -0
- package/lib/webchat/custom-messages/rating/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/rating-selector.d.ts +11 -0
- package/lib/webchat/custom-messages/rating/rating-selector.js.map +1 -0
- package/lib/webchat/custom-messages/rating/smileys.d.ts +2 -0
- package/lib/webchat/custom-messages/rating/smileys.js.map +1 -0
- package/lib/webchat/custom-messages/rating/stars.d.ts +2 -0
- package/lib/webchat/custom-messages/rating/stars.js.map +1 -0
- package/lib/webchat/custom-messages/rating/styles.js.map +1 -0
- package/lib/webchat/custom-messages/rating/types.js.map +1 -0
- package/lib/webchat/devices/index.js.map +1 -0
- package/lib/webchat/header/default-header.d.ts +1 -0
- package/lib/webchat/header/default-header.js.map +1 -0
- package/lib/webchat/header/index.js.map +1 -0
- package/lib/webchat/header/styles.js.map +1 -0
- package/lib/webchat/hooks/index.js.map +1 -0
- package/lib/webchat/hooks/use-component-visible.js.map +1 -0
- package/lib/webchat/hooks/use-component-will-mount.js.map +1 -0
- package/lib/webchat/hooks/use-device-adapter.js.map +1 -0
- package/lib/webchat/hooks/use-previous.js.map +1 -0
- package/lib/webchat/hooks/use-scroll-to-bottom.js.map +1 -0
- package/lib/webchat/hooks/use-scrollbar-controller.js.map +1 -0
- package/lib/webchat/hooks/use-typing.js.map +1 -0
- package/lib/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -0
- package/lib/webchat/hooks/use-webchat-dimensions.js.map +1 -0
- package/lib/webchat/hooks/use-webchat-resizer.js.map +1 -0
- package/lib/webchat/index-types.js.map +1 -0
- package/lib/webchat/index.js.map +1 -0
- package/lib/webchat/input-panel/attachment.d.ts +6 -0
- package/lib/webchat/input-panel/attachment.js.map +1 -0
- package/lib/webchat/input-panel/emoji-picker.d.ts +5 -0
- package/lib/webchat/input-panel/emoji-picker.js.map +1 -0
- package/lib/webchat/input-panel/index.d.ts +9 -0
- package/lib/webchat/input-panel/index.js.map +1 -0
- package/lib/webchat/input-panel/opened-emoji-picker.d.ts +6 -0
- package/lib/webchat/input-panel/opened-emoji-picker.js.map +1 -0
- package/lib/webchat/input-panel/persistent-menu.d.ts +5 -0
- package/lib/webchat/input-panel/persistent-menu.js.map +1 -0
- package/lib/webchat/input-panel/send-button.d.ts +5 -0
- package/lib/webchat/input-panel/send-button.js.map +1 -0
- package/lib/webchat/input-panel/styles.js.map +1 -0
- package/lib/webchat/input-panel/textarea.d.ts +10 -0
- package/lib/webchat/input-panel/textarea.js.map +1 -0
- package/lib/webchat/input-panel/typing-network-sender.js.map +1 -0
- package/lib/webchat/input-panel/use-typing-chat-event-sender.js.map +1 -0
- package/lib/webchat/input-panel/use-typing-session.js.map +1 -0
- package/lib/webchat/message-list/index.d.ts +2 -0
- package/lib/webchat/message-list/index.js +177 -0
- package/lib/webchat/message-list/index.js.map +1 -0
- package/lib/webchat/message-list/intro-message.d.ts +1 -0
- package/lib/webchat/message-list/intro-message.js.map +1 -0
- package/lib/webchat/message-list/scroll-button.js.map +1 -0
- package/lib/webchat/message-list/styles.js.map +1 -0
- package/lib/webchat/message-list/unread-messages-banner.js.map +1 -0
- package/lib/webchat/message-list/use-debounce.js.map +1 -0
- package/lib/webchat/message-list/use-notifications.js.map +1 -0
- package/lib/webchat/replies/index.d.ts +1 -0
- package/lib/webchat/replies/index.js.map +1 -0
- package/lib/webchat/replies/styles.js.map +1 -0
- package/lib/webchat/session-view.d.ts +1 -0
- package/lib/webchat/session-view.js.map +1 -0
- package/lib/webchat/styles.js.map +1 -0
- package/lib/webchat/theme/default-theme.js.map +1 -0
- package/lib/webchat/theme/types.js.map +1 -0
- package/lib/webchat/tracking.js.map +1 -0
- package/lib/webchat/trigger-button/index.js.map +1 -0
- package/lib/webchat/trigger-button/styles.js.map +1 -0
- package/lib/webchat/typing-indicator/index.js.map +1 -0
- package/lib/webchat/typing-indicator/styles.js.map +1 -0
- package/lib/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/webchat/utils.js.map +1 -0
- package/lib/webchat/webchat-dev.js.map +1 -0
- package/lib/webchat/webchat.js.map +1 -0
- package/lib/webchat/webview/header.d.ts +1 -0
- package/lib/webchat/webview/header.js.map +1 -0
- package/lib/webchat/webview/index.d.ts +6 -0
- package/lib/webchat/webview/index.js.map +1 -0
- package/lib/webchat/webview/styles.js.map +1 -0
- package/lib/webchat-app.d.ts +114 -0
- package/lib/webchat-app.js.map +1 -0
- package/lib/webview-app.js.map +1 -0
- package/package.json +11 -14
- package/src/components/multichannel/index.ts +7 -6
- package/src/webchat/message-list/index.tsx +1 -0
- package/src/webchat/webchat.tsx +1 -0
- package/lib/esm/app.js.map +0 -1
- package/lib/esm/botonic-tester.js.map +0 -1
- package/lib/esm/components/audio.d.ts +0 -9
- package/lib/esm/components/audio.js.map +0 -1
- package/lib/esm/components/button/index.js.map +0 -1
- package/lib/esm/components/button/styles.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/components/components.js.map +0 -1
- package/lib/esm/components/constants.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/components/element.js.map +0 -1
- package/lib/esm/components/handoff.d.ts +0 -1
- package/lib/esm/components/handoff.js.map +0 -1
- package/lib/esm/components/image.d.ts +0 -9
- package/lib/esm/components/image.js.map +0 -1
- package/lib/esm/components/index-types.js.map +0 -1
- package/lib/esm/components/index.js.map +0 -1
- package/lib/esm/components/location.js.map +0 -1
- package/lib/esm/components/markdown.js.map +0 -1
- package/lib/esm/components/message/index.js.map +0 -1
- package/lib/esm/components/message/message-footer.d.ts +0 -8
- package/lib/esm/components/message/message-footer.js.map +0 -1
- package/lib/esm/components/message/message-image.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/components/message-template.js.map +0 -1
- package/lib/esm/components/multichannel/facebook/facebook.js.map +0 -1
- 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 -25
- package/lib/esm/components/multichannel/index.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-button.d.ts +0 -4
- 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.map +0 -1
- package/lib/esm/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +0 -4
- 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.map +0 -1
- package/lib/esm/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/constants.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +0 -1
- package/lib/esm/components/pic.js.map +0 -1
- package/lib/esm/components/raw.d.ts +0 -9
- package/lib/esm/components/raw.js.map +0 -1
- package/lib/esm/components/reply.js.map +0 -1
- package/lib/esm/components/share-button.js.map +0 -1
- package/lib/esm/components/subtitle.js.map +0 -1
- package/lib/esm/components/system-debug-trace/debug-message.d.ts +0 -7
- package/lib/esm/components/system-debug-trace/debug-message.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +0 -4
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +0 -7
- package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +0 -4
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/bot-action.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/guardrail-item.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/sources-section.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/components/sources-section.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-channel.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-country.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-custom.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/events/conditional-custom.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/constants.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/fallback.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/handoff-success.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/handoff-success.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/keyword.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/knowledge-bases-types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/redirect-flow.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/smart-intent.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.js.map +0 -1
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +0 -16
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +0 -1
- package/lib/esm/components/system-debug-trace/hooks/use-last-label-position.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-router.d.ts +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-router.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-specialist.d.ts +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-specialist.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/brain.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/brain.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/caret-down.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/caret-down.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/caret-up.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/caret-up.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/circle-check.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/circle-check.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/code.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/code.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/file-pdf.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/file-pdf.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/file-word.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/file-word.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/hand.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/hand.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/head-set.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/head-set.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/life-ring.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/life-ring.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/link.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/link.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/quote-right.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/quote-right.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/split.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/split.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/wand.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/wand.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/window-restore.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/window-restore.js.map +0 -1
- package/lib/esm/components/system-debug-trace/index.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/styles.js.map +0 -1
- package/lib/esm/components/system-debug-trace/types.js.map +0 -1
- package/lib/esm/components/text.d.ts +0 -8
- package/lib/esm/components/text.js.map +0 -1
- package/lib/esm/components/title.js.map +0 -1
- package/lib/esm/components/video.d.ts +0 -9
- package/lib/esm/components/video.js.map +0 -1
- package/lib/esm/components/webchat-settings.js.map +0 -1
- package/lib/esm/components/whatsapp-button-list.js.map +0 -1
- package/lib/esm/components/whatsapp-catalog.js.map +0 -1
- package/lib/esm/components/whatsapp-cta-url-button.js.map +0 -1
- package/lib/esm/components/whatsapp-interactive-media-carousel.d.ts +0 -31
- package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-media-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-list.js.map +0 -1
- package/lib/esm/components/whatsapp-product.js.map +0 -1
- package/lib/esm/components/whatsapp-request-contact-info.js.map +0 -1
- package/lib/esm/components/whatsapp-template/index.js.map +0 -1
- package/lib/esm/components/whatsapp-template/types.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/contexts.js.map +0 -1
- package/lib/esm/debug-system-messages.js.map +0 -1
- package/lib/esm/dev-app.d.ts +0 -213
- package/lib/esm/dev-app.js.map +0 -1
- package/lib/esm/index-types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/message-utils.js.map +0 -1
- package/lib/esm/msg-to-botonic.js.map +0 -1
- package/lib/esm/node-app.js.map +0 -1
- package/lib/esm/package.json +0 -3
- package/lib/esm/react-bot.js.map +0 -1
- package/lib/esm/shared/styles.js.map +0 -1
- package/lib/esm/util/dom.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/util/functional.js.map +0 -1
- package/lib/esm/util/i18n.js.map +0 -1
- package/lib/esm/util/index.js.map +0 -1
- package/lib/esm/util/logs.js.map +0 -1
- package/lib/esm/util/objects.js.map +0 -1
- package/lib/esm/util/react.js.map +0 -1
- package/lib/esm/util/regexs.js.map +0 -1
- package/lib/esm/util/strings.js.map +0 -1
- package/lib/esm/util/webchat.js.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/lib/esm/webchat/components/conditional-animation.d.ts +0 -1
- 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.map +0 -1
- package/lib/esm/webchat/constants.js.map +0 -1
- package/lib/esm/webchat/context/actions.js.map +0 -1
- package/lib/esm/webchat/context/index.js.map +0 -1
- package/lib/esm/webchat/context/messages-reducer.js.map +0 -1
- package/lib/esm/webchat/context/types.js.map +0 -1
- package/lib/esm/webchat/context/use-webchat.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/webchat/custom-messages/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/star.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/star.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/rating-selector.d.ts +0 -11
- package/lib/esm/webchat/custom-messages/rating/rating-selector.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/smileys.d.ts +0 -2
- package/lib/esm/webchat/custom-messages/rating/smileys.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/stars.d.ts +0 -2
- package/lib/esm/webchat/custom-messages/rating/stars.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/styles.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/types.js.map +0 -1
- 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.map +0 -1
- package/lib/esm/webchat/header/index.js.map +0 -1
- package/lib/esm/webchat/header/styles.js.map +0 -1
- package/lib/esm/webchat/hooks/index.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-visible.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.js.map +0 -1
- package/lib/esm/webchat/hooks/use-device-adapter.js.map +0 -1
- package/lib/esm/webchat/hooks/use-previous.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +0 -1
- package/lib/esm/webchat/hooks/use-typing.js.map +0 -1
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +0 -1
- package/lib/esm/webchat/index-types.js.map +0 -1
- package/lib/esm/webchat/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/attachment.d.ts +0 -6
- package/lib/esm/webchat/input-panel/attachment.js.map +0 -1
- package/lib/esm/webchat/input-panel/emoji-picker.d.ts +0 -5
- package/lib/esm/webchat/input-panel/emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/index.d.ts +0 -9
- 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.map +0 -1
- package/lib/esm/webchat/input-panel/persistent-menu.d.ts +0 -5
- 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.map +0 -1
- package/lib/esm/webchat/input-panel/styles.js.map +0 -1
- package/lib/esm/webchat/input-panel/textarea.d.ts +0 -10
- package/lib/esm/webchat/input-panel/textarea.js.map +0 -1
- package/lib/esm/webchat/input-panel/typing-network-sender.js.map +0 -1
- package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.js.map +0 -1
- package/lib/esm/webchat/input-panel/use-typing-session.js.map +0 -1
- package/lib/esm/webchat/message-list/index.d.ts +0 -1
- package/lib/esm/webchat/message-list/index.js +0 -176
- 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.map +0 -1
- package/lib/esm/webchat/message-list/scroll-button.js.map +0 -1
- package/lib/esm/webchat/message-list/styles.js.map +0 -1
- package/lib/esm/webchat/message-list/unread-messages-banner.js.map +0 -1
- package/lib/esm/webchat/message-list/use-debounce.js.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/lib/esm/webchat/styles.js.map +0 -1
- package/lib/esm/webchat/theme/default-theme.js.map +0 -1
- package/lib/esm/webchat/theme/types.js.map +0 -1
- package/lib/esm/webchat/tracking.js.map +0 -1
- package/lib/esm/webchat/trigger-button/index.js.map +0 -1
- package/lib/esm/webchat/trigger-button/styles.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/index.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/styles.js.map +0 -1
- package/lib/esm/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/esm/webchat/utils.js.map +0 -1
- package/lib/esm/webchat/webchat-dev.js.map +0 -1
- package/lib/esm/webchat/webchat.js.map +0 -1
- package/lib/esm/webchat/webview/header.d.ts +0 -1
- package/lib/esm/webchat/webview/header.js.map +0 -1
- package/lib/esm/webchat/webview/index.d.ts +0 -6
- package/lib/esm/webchat/webview/index.js.map +0 -1
- package/lib/esm/webchat/webview/styles.js.map +0 -1
- package/lib/esm/webchat-app.d.ts +0 -114
- package/lib/esm/webchat-app.js.map +0 -1
- package/lib/esm/webview-app.js.map +0 -1
- /package/lib/{esm/app.d.ts → app.d.ts} +0 -0
- /package/lib/{esm/app.js → app.js} +0 -0
- /package/lib/{esm/assets → assets}/arrow-down.svg +0 -0
- /package/lib/{esm/assets → assets}/arrow-scroll-down.svg +0 -0
- /package/lib/{esm/assets → assets}/attachment-icon.svg +0 -0
- /package/lib/{esm/assets → assets}/audio.svg +0 -0
- /package/lib/{esm/assets → assets}/botonic_react_logo100x100.png +0 -0
- /package/lib/{esm/assets → assets}/document.svg +0 -0
- /package/lib/{esm/assets → assets}/emojiButton.svg +0 -0
- /package/lib/{esm/assets → assets}/image.svg +0 -0
- /package/lib/{esm/assets → assets}/leftArrow.svg +0 -0
- /package/lib/{esm/assets → assets}/menuButton.svg +0 -0
- /package/lib/{esm/assets → assets}/rightArrow.svg +0 -0
- /package/lib/{esm/assets → assets}/send-button.svg +0 -0
- /package/lib/{esm/assets → assets}/thumbs-down.svg +0 -0
- /package/lib/{esm/assets → assets}/thumbs-up.svg +0 -0
- /package/lib/{esm/assets → assets}/types.d.ts +0 -0
- /package/lib/{esm/assets → assets}/url-icon.png +0 -0
- /package/lib/{esm/assets → assets}/video.svg +0 -0
- /package/lib/{esm/botonic-tester.d.ts → botonic-tester.d.ts} +0 -0
- /package/lib/{esm/botonic-tester.js → botonic-tester.js} +0 -0
- /package/lib/{esm/components → components}/audio.js +0 -0
- /package/lib/{esm/components → components}/button/index.d.ts +0 -0
- /package/lib/{esm/components → components}/button/index.js +0 -0
- /package/lib/{esm/components → components}/button/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/button/styles.js +0 -0
- /package/lib/{esm/components → components}/buttons-disabler.d.ts +0 -0
- /package/lib/{esm/components → components}/buttons-disabler.js +0 -0
- /package/lib/{esm/components → components}/carousel.js +0 -0
- /package/lib/{esm/components → components}/components.d.ts +0 -0
- /package/lib/{esm/components → components}/components.js +0 -0
- /package/lib/{esm/components → components}/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/constants.js +0 -0
- /package/lib/{esm/components → components}/custom-message.d.ts +0 -0
- /package/lib/{esm/components → components}/custom-message.js +0 -0
- /package/lib/{esm/components → components}/document.js +0 -0
- /package/lib/{esm/components → components}/element.d.ts +0 -0
- /package/lib/{esm/components → components}/element.js +0 -0
- /package/lib/{esm/components → components}/handoff.js +0 -0
- /package/lib/{esm/components → components}/image.js +0 -0
- /package/lib/{esm/components → components}/index-types.d.ts +0 -0
- /package/lib/{esm/components → components}/index-types.js +0 -0
- /package/lib/{esm/components → components}/index.d.ts +0 -0
- /package/lib/{esm/components → components}/index.js +0 -0
- /package/lib/{esm/components → components}/location.d.ts +0 -0
- /package/lib/{esm/components → components}/location.js +0 -0
- /package/lib/{esm/components → components}/markdown.d.ts +0 -0
- /package/lib/{esm/components → components}/markdown.js +0 -0
- /package/lib/{esm/components → components}/message/index.d.ts +0 -0
- /package/lib/{esm/components → components}/message/index.js +0 -0
- /package/lib/{esm/components → components}/message/message-footer.js +0 -0
- /package/lib/{esm/components → components}/message/message-image.d.ts +0 -0
- /package/lib/{esm/components → components}/message/message-image.js +0 -0
- /package/lib/{esm/components → components}/message/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/message/styles.js +0 -0
- /package/lib/{esm/components → components}/message/timestamps.js +0 -0
- /package/lib/{esm/components → components}/message-template.d.ts +0 -0
- /package/lib/{esm/components → components}/message-template.js +0 -0
- /package/lib/{esm/components → components}/multichannel/facebook/facebook.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/facebook/facebook.js +0 -0
- /package/lib/{esm/components → components}/multichannel/index-types.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/index-types.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-button.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-carousel.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-context.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-context.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-reply.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-text.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-utils.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-utils.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel.js +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/constants.js +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.js +0 -0
- /package/lib/{esm/components → components}/pic.d.ts +0 -0
- /package/lib/{esm/components → components}/pic.js +0 -0
- /package/lib/{esm/components → components}/raw.js +0 -0
- /package/lib/{esm/components → components}/reply.d.ts +0 -0
- /package/lib/{esm/components → components}/reply.js +0 -0
- /package/lib/{esm/components → components}/share-button.d.ts +0 -0
- /package/lib/{esm/components → components}/share-button.js +0 -0
- /package/lib/{esm/components → components}/subtitle.d.ts +0 -0
- /package/lib/{esm/components → components}/subtitle.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/debug-message.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/ai-agent.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/executed-tools.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/ai-agent-router.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/sources-section.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-custom.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-queue-status.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/constants.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/fallback.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/fallback.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/handoff-success.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/keyword.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/keyword.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/webview-action-triggered.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-knowledge-base-info.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/ai-router.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/ai-specialist.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/arrow-progress.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/brain.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/caret-down.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/caret-up.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/circle-check.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/code.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/file-pdf.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/file-word.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/hand.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/head-set.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/life-ring.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/link.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/quote-right.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/screwdriver-wrench.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/split.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/wand.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/window-restore.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/styles.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/types.js +0 -0
- /package/lib/{esm/components → components}/text.js +0 -0
- /package/lib/{esm/components → components}/title.d.ts +0 -0
- /package/lib/{esm/components → components}/title.js +0 -0
- /package/lib/{esm/components → components}/video.js +0 -0
- /package/lib/{esm/components → components}/webchat-settings.d.ts +0 -0
- /package/lib/{esm/components → components}/webchat-settings.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-button-list.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-button-list.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-catalog.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-catalog.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-cta-url-button.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-cta-url-button.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-interactive-media-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-media-carousel.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-media-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-carousel.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-list.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-list.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-request-contact-info.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-request-contact-info.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/index.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/index.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/types.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/types.js +0 -0
- /package/lib/{esm/constants.d.ts → constants.d.ts} +0 -0
- /package/lib/{esm/constants.js → constants.js} +0 -0
- /package/lib/{esm/contexts.d.ts → contexts.d.ts} +0 -0
- /package/lib/{esm/contexts.js → contexts.js} +0 -0
- /package/lib/{esm/debug-system-messages.d.ts → debug-system-messages.d.ts} +0 -0
- /package/lib/{esm/debug-system-messages.js → debug-system-messages.js} +0 -0
- /package/lib/{esm/dev-app.js → dev-app.js} +0 -0
- /package/lib/{esm/index-types.d.ts → index-types.d.ts} +0 -0
- /package/lib/{esm/index-types.js → index-types.js} +0 -0
- /package/lib/{esm/index.d.ts → index.d.ts} +0 -0
- /package/lib/{esm/index.js → index.js} +0 -0
- /package/lib/{esm/message-utils.d.ts → message-utils.d.ts} +0 -0
- /package/lib/{esm/message-utils.js → message-utils.js} +0 -0
- /package/lib/{esm/msg-to-botonic.d.ts → msg-to-botonic.d.ts} +0 -0
- /package/lib/{esm/msg-to-botonic.js → msg-to-botonic.js} +0 -0
- /package/lib/{esm/node-app.d.ts → node-app.d.ts} +0 -0
- /package/lib/{esm/node-app.js → node-app.js} +0 -0
- /package/lib/{esm/react-bot.d.ts → react-bot.d.ts} +0 -0
- /package/lib/{esm/react-bot.js → react-bot.js} +0 -0
- /package/lib/{esm/shared → shared}/styles.d.ts +0 -0
- /package/lib/{esm/shared → shared}/styles.js +0 -0
- /package/lib/{esm/util → util}/dom.d.ts +0 -0
- /package/lib/{esm/util → util}/dom.js +0 -0
- /package/lib/{esm/util → util}/environment.d.ts +0 -0
- /package/lib/{esm/util → util}/environment.js +0 -0
- /package/lib/{esm/util → util}/error-boundary.js +0 -0
- /package/lib/{esm/util → util}/functional.d.ts +0 -0
- /package/lib/{esm/util → util}/functional.js +0 -0
- /package/lib/{esm/util → util}/i18n.d.ts +0 -0
- /package/lib/{esm/util → util}/i18n.js +0 -0
- /package/lib/{esm/util → util}/index.d.ts +0 -0
- /package/lib/{esm/util → util}/index.js +0 -0
- /package/lib/{esm/util → util}/logs.d.ts +0 -0
- /package/lib/{esm/util → util}/logs.js +0 -0
- /package/lib/{esm/util → util}/objects.d.ts +0 -0
- /package/lib/{esm/util → util}/objects.js +0 -0
- /package/lib/{esm/util → util}/react.d.ts +0 -0
- /package/lib/{esm/util → util}/react.js +0 -0
- /package/lib/{esm/util → util}/regexs.d.ts +0 -0
- /package/lib/{esm/util → util}/regexs.js +0 -0
- /package/lib/{esm/util → util}/strings.d.ts +0 -0
- /package/lib/{esm/util → util}/strings.js +0 -0
- /package/lib/{esm/util → util}/webchat.d.ts +0 -0
- /package/lib/{esm/util → util}/webchat.js +0 -0
- /package/lib/{esm/util → util}/webviews.d.ts +0 -0
- /package/lib/{esm/util → util}/webviews.js +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/common.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/conditional-animation.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/opened-persistent-menu.js +0 -0
- /package/lib/{esm/webchat → webchat}/constants.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/constants.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/actions.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/actions.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/messages-reducer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/messages-reducer.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/use-webchat.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/use-webchat.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/webchat-reducer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/webchat-reducer.js +0 -0
- /package/lib/{esm/webchat → webchat}/cover-component/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-angry.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-frown.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-grin-beam.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-meh.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-smile.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/star.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/rating-selector.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/smileys.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/stars.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/devices/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/devices/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/global.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/default-header.js +0 -0
- /package/lib/{esm/webchat → webchat}/header/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/header/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-previous.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-previous.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-typing.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-typing.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.js +0 -0
- /package/lib/{esm/webchat → webchat}/index-types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/index-types.js +0 -0
- /package/lib/{esm/webchat → webchat}/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/attachment.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/emoji-picker.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/opened-emoji-picker.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/persistent-menu.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/send-button.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/textarea.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/intro-message.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/scroll-button.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/scroll-button.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-debounce.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-debounce.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-notifications.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-notifications.js +0 -0
- /package/lib/{esm/webchat → webchat}/replies/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/replies/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/replies/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/session-view.js +0 -0
- /package/lib/{esm/webchat → webchat}/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/theme/default-theme.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/default-theme.js +0 -0
- /package/lib/{esm/webchat → webchat}/theme/theme.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/tracking.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/tracking.js +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/use-storage-state-hook.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/use-storage-state-hook.js +0 -0
- /package/lib/{esm/webchat → webchat}/utils.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/utils.js +0 -0
- /package/lib/{esm/webchat → webchat}/webchat-dev.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webchat-dev.js +0 -0
- /package/lib/{esm/webchat → webchat}/webchat.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webchat.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/header.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webview/styles.js +0 -0
- /package/lib/{esm/webchat-app.js → webchat-app.js} +0 -0
- /package/lib/{esm/webchat.template.html → webchat.template.html} +0 -0
- /package/lib/{esm/webview-app.d.ts → webview-app.d.ts} +0 -0
- /package/lib/{esm/webview-app.js → webview-app.js} +0 -0
- /package/lib/{esm/webview.template.html → webview.template.html} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat/webchat-dev.js","sources":["../../../src/webchat/webchat-dev.jsx"],"sourcesContent":["import { PROVIDER } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport { forwardRef, useEffect } from 'react'\nimport { createPortal } from 'react-dom'\nimport styled from 'styled-components'\n\nimport { useWebchat } from './context/use-webchat'\nimport { SessionView } from './session-view'\nimport { Webchat } from './webchat'\n\nexport const DebugTab = styled.div`\n position: fixed;\n left: 0;\n top: 0;\n width: ${props => (props.show ? '350px' : '32px')};\n height: ${props => (props.show ? '100%' : '42px')};\n`\n\n// We want the debug tab to be rendered in the <body> even if the\n// webchat is being rendered in a shadowDOM, that's why we need a portal\nexport const DebugTabPortal = ({ webchatHooks, ...props }) =>\n createPortal(\n <DebugTab {...props}>\n <SessionView webchatHooks={webchatHooks} />\n </DebugTab>,\n document.body\n )\n\nconst initialSession = {\n is_first_interaction: true,\n last_session: {},\n user: {\n id: '000001',\n username: 'johndoe',\n name: 'John Doe',\n provider: PROVIDER.DEV,\n provider_id: '0000000',\n extra_data: {},\n },\n organization: '',\n bot: {\n id: '0000000',\n name: 'botName',\n },\n}\n\nexport const WebchatDev = forwardRef((props, ref) => {\n const webchatHooks = useWebchat()\n const { webchatState, updateTheme } = webchatHooks\n\n /* TODO: webchatState.theme should be included in the dependencies array\n together with props.theme. The problem is that this effect modifies webchatState\n so we enter an infinite rerender loop. */\n useEffect(() => {\n updateTheme(merge(webchatState.theme, props.theme))\n }, [props.theme])\n\n return (\n <>\n <Webchat\n style={{ flex: 1, position: 'relative' }}\n {...props}\n ref={ref}\n webchatHooks={webchatHooks}\n initialSession={initialSession}\n initialDevSettings={{\n keepSessionOnReload: webchatState.devSettings.keepSessionOnReload,\n showSessionView: webchatState.devSettings.showSessionView,\n }}\n localWebviews={props.webviews}\n />\n <DebugTabPortal\n show={webchatState.devSettings.showSessionView}\n webchatHooks={webchatHooks}\n />\n </>\n )\n})\n"],"names":["PROVIDER","merge","forwardRef","useEffect","createPortal","styled","useWebchat","SessionView","Webchat","DebugTab","props","DebugTabPortal","webchatHooks","document","initialSession","WebchatDev","ref","webchatState","updateTheme"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAwC;AACR;AACa;AACL;AACF;AAEY;AACN;AACT;AAE5B,MAAMS,QAAQA,GAAGJ,qBAAU,CAAC;;;;SAI1B,EAAEK,CAAAA,QAAUA,MAAM,IAAI,GAAG,UAAU,OAAQ;UAC1C,EAAEA,CAAAA,QAAUA,MAAM,IAAI,GAAG,SAAS,OAAQ;AACpD,CAAC;AAED,iEAAiE;AACjE,wEAAwE;AACjE,MAAMC,cAAcA,GAAG,CAAC,EAAEC,YAAY,EAAE,GAAGF,OAAO,iBACvDN,YAAYA,eACV,IAACK,QAAQA;QAAE,GAAGC,KAAK;kBACjB,kBAACH,WAAWA;YAAC,cAAcK;;QAE7BC,SAAS,IAAI,EACd;AAEH,MAAMC,cAAcA,GAAG;IACrB,sBAAsB;IACtB,cAAc,CAAC;IACf,MAAM;QACJ,IAAI;QACJ,UAAU;QACV,MAAM;QACN,UAAUd,YAAY;QACtB,aAAa;QACb,YAAY,CAAC;IACf;IACA,cAAc;IACd,KAAK;QACH,IAAI;QACJ,MAAM;IACR;AACF;AAEO,MAAMe,UAAUA,iBAAGb,UAAUA,CAAC,CAACQ,OAAOM;IAC3C,MAAMJ,eAAeN,UAAUA;IAC/B,MAAM,EAAEW,YAAY,EAAEC,WAAW,EAAE,GAAGN;IAEtC;;yCAEuC,GACvCT,SAASA,CAAC;QACRe,YAAYjB,YAAKA,CAACgB,aAAa,KAAK,EAAEP,MAAM,KAAK;IACnD,GAAG;QAACA,MAAM,KAAK;KAAC;IAEhB,qBACE;;0BACE,IAACF,OAAOA;gBACN,OAAO;oBAAE,MAAM;oBAAG,UAAU;gBAAW;gBACtC,GAAGE,KAAK;gBACT,KAAKM;gBACL,cAAcJ;gBACd,gBAAgBE,cAAcA;gBAC9B,oBAAoB;oBAClB,qBAAqBG,aAAa,WAAW,CAAC,mBAAmB;oBACjE,iBAAiBA,aAAa,WAAW,CAAC,eAAe;gBAC3D;gBACA,eAAeP,MAAM,QAAQ;;0BAE/B,IAACC,cAAcA;gBACb,MAAMM,aAAa,WAAW,CAAC,eAAe;gBAC9C,cAAcL;;;;AAItB,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat/webchat.js","sources":["../../../src/webchat/webchat.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { BotonicAction, INPUT, params2queryString } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheetManager, ThemeProvider } from 'styled-components'\nimport { v7 as uuidv7 } from 'uuid'\n\nimport {\n Audio,\n Document,\n Handoff,\n Image,\n normalizeWebchatSettings,\n Text,\n Video,\n type WebchatSettingsProps,\n type Webview,\n} from '../components'\nimport {\n COLORS,\n MAX_ALLOWED_SIZE_MB,\n ROLES,\n WEBCHAT,\n WEBCHAT_DEFAULT_CONTENTS,\n} from '../constants'\nimport type { CloseWebviewOptions } from '../contexts'\nimport { SENDERS, type WebchatProps, type WebchatRef } from '../index-types'\nimport {\n getMediaType,\n isAllowedSize,\n isAudio,\n isDocument,\n isImage,\n isMedia,\n isText,\n isVideo,\n readDataURL,\n} from '../message-utils'\nimport { msgToBotonic } from '../msg-to-botonic'\nimport { isDev } from '../util/environment'\nimport { deserializeRegex, stringifyWithRegexs } from '../util/regexs'\nimport {\n _getThemeProperty,\n getServerErrorMessage,\n initSession,\n shouldKeepSessionOnReload,\n updateUserLocaleAndCountry,\n} from '../util/webchat'\nimport { ChatArea } from './chat-area'\nimport { OpenedPersistentMenu } from './components/opened-persistent-menu'\nimport { BotonicContainerId } from './constants'\nimport { useWebchat, WebchatContext, type WebchatState } from './context'\nimport { CoverComponent } from './cover-component'\nimport { WebchatHeader } from './header'\nimport {\n useComponentWillMount,\n usePrevious,\n useScrollToBottom,\n useTyping,\n} from './hooks'\nimport { InputPanel } from './input-panel'\nimport {\n DarkBackgroundMenu,\n ErrorMessage,\n ErrorMessageContainer,\n StyledWebchat,\n} from './styles'\nimport type { WebchatTheme } from './theme/types'\nimport { TriggerButton } from './trigger-button'\nimport { useStorageState } from './use-storage-state-hook'\nimport { getParsedAction } from './utils'\nimport { WebviewContainer } from './webview/index'\n\nconst Webchat = forwardRef<WebchatRef | null, WebchatProps>((props, ref) => {\n const {\n addMessage,\n addMessageComponent,\n clearMessages,\n doRenderCustomComponent,\n resetUnreadMessages,\n setCurrentAttachment,\n setError,\n setIsInputFocused,\n setLastMessageVisible,\n setOnline,\n toggleCoverComponent,\n toggleEmojiPicker,\n togglePersistentMenu,\n toggleWebchat,\n updateCustomMessageProps,\n updateDevSettings,\n updateHandoff,\n updateLastMessageDate,\n updateLastRoutePath,\n updateLatestInput,\n updateMessage,\n updateReplies,\n updateSession,\n updateTheme,\n updateTyping,\n updateWebview,\n removeWebview,\n removeReplies,\n webchatState,\n webchatContainerRef,\n chatAreaRef,\n inputPanelRef,\n headerRef,\n repliesRef,\n scrollableMessagesListRef,\n } = props.webchatHooks || useWebchat(props.theme)\n\n const contentsByLocale = props.contentsByLocale\n const firstUpdate = useRef(true)\n const isOnline = () => webchatState.online\n const currentDateString = () => new Date().toISOString()\n const theme = merge(webchatState.theme, props.theme)\n const { initialSession, initialDevSettings, onStateChange } = props\n const getThemeProperty = _getThemeProperty(theme)\n\n const [customComponent, setCustomComponent] = useState(null)\n const storage = props.storage\n const storageKey =\n typeof props.storageKey === 'function'\n ? props.storageKey()\n : props.storageKey\n\n const [botonicState, saveState] = useStorageState(storage, storageKey)\n\n const host = props.host || document.body\n\n const { scrollToBottom } = useScrollToBottom({ host })\n\n const saveWebchatState = (webchatState: WebchatState) => {\n storage &&\n saveState(\n JSON.parse(\n stringifyWithRegexs({\n messages: webchatState.messagesJSON,\n session: webchatState.session,\n lastRoutePath: webchatState.lastRoutePath,\n devSettings: webchatState.devSettings,\n lastMessageUpdate: webchatState.lastMessageUpdate,\n themeUpdates: webchatState.themeUpdates,\n })\n )\n )\n }\n\n const handleAttachment = (event: any) => {\n if (!isAllowedSize(event.target.files[0].size)) {\n throw new Error(\n `The file is too large. A maximum of ${MAX_ALLOWED_SIZE_MB}MB is allowed.`\n )\n }\n\n // TODO: Attach more files?\n setCurrentAttachment(event.target.files[0])\n }\n\n useEffect(() => {\n if (webchatState.currentAttachment) {\n sendAttachment(webchatState.currentAttachment)\n }\n }, [webchatState.currentAttachment])\n\n const sendUserInput = async (input: any) => {\n if (props.onUserInput) {\n resetUnreadMessages()\n scrollToBottom()\n props.onUserInput({\n user: webchatState.session.user,\n // TODO: Review if this input.sentBy exists in the frontend\n input: input,\n //@ts-expect-error\n session: webchatState.session,\n // TODO: Review why we were passing lastRoutePath, is only for devMode?\n lastRoutePath: webchatState.lastRoutePath,\n })\n }\n }\n\n // Load styles stored in window._botonicInsertStyles by Webpack\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: this is a complex useEffect that needs to be refactored, but it's not a problem for now\n useComponentWillMount(() => {\n if (window._botonicInsertStyles?.length) {\n for (const botonicStyle of window._botonicInsertStyles) {\n // Injecting styles at head is needed even if we use shadowDOM\n // as some dependencies like simplebar rely on creating ephemeral elements\n // on document.body and assume styles will be available globally\n document.head.appendChild(botonicStyle)\n\n // injecting styles in host node too so that shadowDOM works\n if (props.shadowDOM) {\n host.appendChild(botonicStyle.cloneNode(true))\n }\n }\n delete window._botonicInsertStyles\n }\n\n if (props.shadowDOM) {\n // emoji-picker-react injects styles in head, so we need to\n // re-inject them in our host node to make it work with shadowDOM\n for (const style of document.querySelectorAll('style')) {\n if (style.textContent?.includes('emoji-picker-react')) {\n host.appendChild(style.cloneNode(true))\n }\n }\n }\n })\n\n // Load initial state from storage\n useEffect(() => {\n let {\n messages,\n session,\n lastRoutePath,\n devSettings,\n lastMessageUpdate,\n themeUpdates,\n } = botonicState || {}\n session = initSession(session)\n updateSession(session)\n if (shouldKeepSessionOnReload({ initialDevSettings, devSettings })) {\n if (messages) {\n messages.forEach(message => {\n addMessage(message)\n const newMessageComponent = msgToBotonic(\n { ...message, delay: 0, typing: 0 },\n props.theme?.message?.customTypes\n )\n if (newMessageComponent) {\n addMessageComponent(newMessageComponent as any)\n }\n })\n }\n if (initialSession) {\n updateSession(merge(initialSession, session))\n }\n if (lastRoutePath) {\n updateLastRoutePath(lastRoutePath)\n }\n } else {\n updateSession(merge(initialSession, session))\n }\n if (devSettings) {\n updateDevSettings(devSettings)\n } else if (initialDevSettings) {\n updateDevSettings(initialDevSettings)\n }\n\n if (lastMessageUpdate) {\n updateLastMessageDate(lastMessageUpdate)\n }\n\n if (themeUpdates !== undefined) {\n updateTheme(merge(props.theme, themeUpdates), themeUpdates)\n }\n\n if (props.onInit) {\n setTimeout(() => {\n if (typeof props.onInit === 'function') {\n props.onInit()\n session.user = updateUserLocaleAndCountry(session.user)\n }\n }, 100)\n }\n }, [])\n\n useEffect(() => {\n if (!webchatState.isWebchatOpen) {\n if (webchatState.isLastMessageVisible) {\n resetUnreadMessages()\n }\n return\n }\n }, [webchatState.isWebchatOpen])\n\n useEffect(() => {\n const { messagesJSON, session } = webchatState\n if (onStateChange && typeof onStateChange === 'function' && session.user) {\n onStateChange({ messagesJSON, user: session.user })\n }\n saveWebchatState(webchatState)\n }, [\n webchatState.messagesJSON,\n webchatState.session,\n webchatState.lastRoutePath,\n webchatState.devSettings,\n webchatState.lastMessageUpdate,\n ])\n\n useEffect(() => {\n if (!webchatState.online) {\n setError({\n message: getServerErrorMessage(props.server),\n })\n } else {\n if (!firstUpdate.current) {\n setError(undefined)\n }\n }\n }, [webchatState.online])\n\n useTyping({ webchatState, updateTyping, updateMessage, host })\n\n useEffect(() => {\n updateTheme(merge(props.theme, theme, webchatState.themeUpdates))\n }, [props.theme, webchatState.themeUpdates])\n\n const openWebview = (\n webviewComponent: Webview,\n params?: Record<string, string>\n ) => {\n updateWebview(webviewComponent, params)\n }\n\n const textareaRef = useRef<HTMLTextAreaElement | undefined>()\n\n const closeWebview = async (options?: CloseWebviewOptions) => {\n removeWebview()\n if (userInputEnabled) {\n textareaRef.current?.focus()\n }\n if (options?.payload) {\n await sendPayload(options.payload)\n } else if (options?.path) {\n const params = options.params ? params2queryString(options.params) : ''\n await sendPayload(`__PATH_PAYLOAD__${options.path}?${params}`)\n }\n }\n\n const persistentMenuOptions = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.persistentMenu\n )\n\n const darkBackgroundMenu = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.darkBackgroundMenu\n )\n\n const getBlockInputs = (rule, inputData) => {\n const processedInput = rule.preprocess\n ? rule.preprocess(inputData)\n : inputData\n\n return rule.match.some(regex => {\n if (typeof regex === 'string') {\n regex = deserializeRegex(regex)\n }\n return regex.test(processedInput)\n })\n }\n\n const checkBlockInput = input => {\n // if is a text we check if it is a serialized RE\n const blockInputs = webchatState.theme.userInput?.blockInputs\n if (!Array.isArray(blockInputs)) {\n return false\n }\n for (const rule of blockInputs) {\n if (getBlockInputs(rule, input.data)) {\n addMessageComponent(\n <Text\n // Is necessary to add the id of the input\n // to keep the input.id generated in the frontend as id of the message\n // @ts-expect-error input.id is not typed\n id={input.id}\n sentBy={SENDERS.user}\n blob={false}\n style={{\n backgroundColor: COLORS.SCORPION_GRAY,\n borderColor: COLORS.SCORPION_GRAY,\n padding: '8px 12px',\n }}\n >\n {rule.message}\n </Text>\n )\n removeReplies()\n return true\n }\n }\n return false\n }\n\n const closeMenu = () => {\n togglePersistentMenu(false)\n }\n\n const persistentMenu = () => {\n return (\n <OpenedPersistentMenu\n onClick={closeMenu}\n options={persistentMenuOptions}\n borderRadius={webchatState.theme.style.borderRadius || '10px'}\n />\n )\n }\n\n const coverComponent = webchatState.theme.coverComponent\n const coverComponentProps = webchatState.theme.coverComponent?.props\n\n useEffect(() => {\n if (!coverComponent) {\n return\n }\n if (\n !botonicState ||\n (botonicState.messages && botonicState.messages.length === 0)\n ) {\n toggleCoverComponent(true)\n }\n }, [])\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: messageComponentFromInput is a complex\n const messageComponentFromInput = input => {\n let messageComponent: any = null\n if (isText(input)) {\n messageComponent = (\n <Text\n // Is necessary to add the id of the input\n // to keep the input.id generated in the frontend as id of the message\n // @ts-expect-error input.id is not typed\n id={input.id}\n // Is necessary to add the payload of the input when user clicks a button\n payload={input.payload}\n sentBy={SENDERS.user}\n >\n {input.data}\n </Text>\n )\n } else if (isMedia(input)) {\n const temporaryDisplayUrl = URL.createObjectURL(input.data)\n // TODO: We should use URL.revokeObjectURL(temporaryDisplayUrl) when the component is unmounted\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL_static#memory_management\n const mediaProps: {\n id: string\n sentBy: SENDERS\n src: string\n input?: any\n } = {\n id: input.id,\n sentBy: SENDERS.user,\n src: temporaryDisplayUrl,\n }\n if (isImage(input)) {\n mediaProps.input = input\n messageComponent = <Image {...mediaProps} />\n } else if (isAudio(input)) {\n messageComponent = <Audio {...mediaProps} />\n } else if (isVideo(input)) {\n messageComponent = <Video {...mediaProps} />\n } else if (isDocument(input)) {\n messageComponent = <Document {...mediaProps} />\n }\n }\n return messageComponent\n }\n\n const sendInput = async (input: any) => {\n if (!input || Object.keys(input).length === 0) {\n return\n }\n if (isText(input) && (!input.data || !input.data.trim())) {\n return // in case trim() doesn't work in a browser we can use !/\\S/.test(input.data)\n }\n if (isText(input) && checkBlockInput(input)) {\n return\n }\n if (!input.id) {\n input.id = uuidv7()\n }\n const messageComponent = messageComponentFromInput(input)\n if (messageComponent) {\n addMessageComponent(messageComponent)\n }\n if (isMedia(input)) {\n input.data = await readDataURL(input.data)\n }\n sendUserInput(input)\n updateLatestInput(input)\n isOnline() && updateLastMessageDate(currentDateString())\n removeReplies()\n togglePersistentMenu(false)\n toggleEmojiPicker(false)\n }\n\n /* This is the public API this component exposes to its parents\n https://stackoverflow.com/questions/37949981/call-child-method-from-parent\n */\n\n const updateSessionWithUser = (userToUpdate: any) => {\n if (contentsByLocale && userToUpdate.system_locale) {\n const placeholder =\n contentsByLocale[userToUpdate.system_locale]?.inputPlaceholder ??\n WEBCHAT_DEFAULT_CONTENTS.INPUT_PLACEHOLDER\n const themeUpdates = { userInput: { box: { placeholder } } }\n updateTheme(\n merge(props.theme, themeUpdates),\n themeUpdates as WebchatTheme\n )\n }\n updateSession(merge(webchatState.session, { user: userToUpdate }))\n }\n\n useImperativeHandle(ref, () => ({\n addBotResponse: ({ response, session, lastRoutePath }) => {\n updateTyping(false)\n\n const isUnread =\n !webchatState.isLastMessageVisible || webchatState.numUnreadMessages > 0\n\n if (Array.isArray(response)) {\n response.forEach(r => {\n addMessageComponent({ ...r, props: { ...r.props, isUnread } })\n })\n } else if (response) {\n addMessageComponent({\n ...response,\n props: { ...response.props, isUnread },\n })\n }\n\n if (session) {\n updateSession(merge(session, { user: webchatState.session.user }))\n const action = session._botonic_action || ''\n const handoff = action.startsWith(BotonicAction.CreateCase)\n if (handoff && isDev) {\n addMessageComponent(<Handoff />)\n }\n updateHandoff(handoff)\n }\n\n if (lastRoutePath) {\n updateLastRoutePath(lastRoutePath)\n }\n\n updateLastMessageDate(currentDateString())\n },\n addSystemResponse: ({ response }) => {\n if (Array.isArray(response)) {\n response.forEach(r => {\n addMessageComponent({ ...r, props: { ...r.props, isUnread: false } })\n })\n } else if (response) {\n addMessageComponent({\n ...response,\n props: { ...response.props, isUnread: false },\n })\n }\n updateLastMessageDate(currentDateString())\n },\n setTyping: (typing: boolean) => updateTyping(typing),\n addUserMessage: message => sendInput(message),\n updateUser: updateSessionWithUser,\n openWebchat: () => toggleWebchat(true),\n closeWebchat: () => toggleWebchat(false),\n toggleWebchat: () => toggleWebchat(!webchatState.isWebchatOpen),\n openCoverComponent: () => toggleCoverComponent(true),\n closeCoverComponent: () => toggleCoverComponent(false),\n renderCustomComponent: _customComponent => {\n setCustomComponent(_customComponent)\n doRenderCustomComponent(true)\n },\n unmountCustomComponent: () => doRenderCustomComponent(false),\n toggleCoverComponent: () =>\n toggleCoverComponent(!webchatState.isCoverComponentOpen),\n setOnline,\n getMessages: () => webchatState.messagesJSON,\n isOnline,\n clearMessages: () => {\n clearMessages()\n removeReplies()\n },\n getLastMessageUpdate: () => webchatState.lastMessageUpdate,\n updateMessageInfo: (msgId: string, messageInfo: any) => {\n const messageToUpdate = webchatState.messagesJSON.filter(\n m => m.id === msgId\n )[0]\n const updatedMsg = merge(messageToUpdate, messageInfo)\n if (updatedMsg.ack === 1) {\n delete updatedMsg.unsentInput\n }\n updateMessage(updatedMsg)\n },\n updateWebchatSettings: (settings: WebchatSettingsProps) => {\n if (settings.user) {\n updateSessionWithUser(settings.user)\n }\n const themeUpdates = normalizeWebchatSettings(settings)\n updateTheme(\n merge(webchatState.theme, themeUpdates),\n themeUpdates as WebchatTheme\n )\n updateTyping(false)\n },\n closeWebview: async (options?: CloseWebviewOptions) =>\n closeWebview(options),\n }))\n\n const resolveCase = () => {\n updateHandoff(false)\n updateSession({ ...webchatState.session, _botonic_action: undefined })\n }\n\n const prevSession = usePrevious(webchatState.session)\n useEffect(() => {\n // Resume conversation after handoff\n if (prevSession?._botonic_action && !webchatState.session._botonic_action) {\n const action = getParsedAction(prevSession._botonic_action)\n if (action?.on_finish) {\n sendPayload(action.on_finish)\n }\n }\n }, [webchatState.session._botonic_action])\n\n const sendText = async (text: string, payload?: string) => {\n if (!text) {\n return\n }\n const input = { type: INPUT.TEXT, data: text, payload }\n await sendInput(input)\n }\n\n const sendPayload = async (payload: string) => {\n if (!payload) {\n return\n }\n const input = { type: INPUT.POSTBACK, payload }\n await sendInput(input)\n }\n\n const sendAttachment = async (attachment: File) => {\n if (attachment) {\n const attachmentType = getMediaType(attachment.type)\n if (!attachmentType) {\n return\n }\n const input = {\n type: attachmentType,\n data: attachment,\n }\n await sendInput(input)\n setCurrentAttachment()\n }\n }\n\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false\n return\n }\n\n if (webchatState.isWebchatOpen && props.onOpen) {\n props.onOpen()\n }\n\n if (!webchatState.isWebchatOpen && props.onClose && !firstUpdate.current) {\n props.onClose()\n toggleEmojiPicker(false)\n togglePersistentMenu(false)\n }\n }, [webchatState.isWebchatOpen])\n\n const isUserInputEnabled = () => {\n const isUserInputEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableUserInput\n )\n return isUserInputEnabled && !webchatState.isCoverComponentOpen\n }\n\n const userInputEnabled = isUserInputEnabled()\n\n useEffect(() => {\n // Prod mode\n saveWebchatState(webchatState)\n }, [webchatState.themeUpdates])\n\n // Only needed for dev/serve mode\n const updateWebchatDevSettings = settings => {\n useEffect(() => {\n const themeUpdates = normalizeWebchatSettings(settings)\n updateTheme(\n merge(webchatState.theme, themeUpdates),\n themeUpdates as WebchatTheme\n )\n }, [webchatState.messagesJSON])\n }\n\n const DarkenBackground = ({ component }) => {\n return (\n <div>\n {darkBackgroundMenu && (\n <DarkBackgroundMenu\n style={{\n borderRadius: webchatState.theme.style.borderRadius,\n }}\n />\n )}\n {component}\n </div>\n )\n }\n\n const _renderCustomComponent = () => {\n if (!customComponent) {\n return <></>\n } else {\n return customComponent\n }\n }\n\n const WebchatComponent = (\n <WebchatContext.Provider\n value={{\n addMessage,\n getThemeProperty,\n closeWebview,\n openWebview,\n resolveCase,\n resetUnreadMessages,\n setIsInputFocused,\n setLastMessageVisible,\n sendAttachment,\n sendInput,\n sendPayload,\n sendText,\n toggleWebchat,\n toggleEmojiPicker,\n togglePersistentMenu,\n toggleCoverComponent,\n updateCustomMessageProps,\n updateLatestInput,\n updateMessage,\n updateReplies,\n updateUser: updateSessionWithUser,\n updateWebchatDevSettings: updateWebchatDevSettings,\n trackEvent: props.onTrackEvent,\n previewUtils: props.previewUtils,\n webchatState,\n webchatContainerRef,\n chatAreaRef,\n inputPanelRef,\n headerRef,\n repliesRef,\n scrollableMessagesListRef,\n }}\n >\n <ThemeProvider theme={webchatState.theme}>\n {!webchatState.isWebchatOpen && <TriggerButton />}\n\n {webchatState.isWebchatOpen && (\n <StyledWebchat\n id={BotonicContainerId.Webchat}\n ref={webchatContainerRef}\n // TODO: Distinguish between multiple instances of webchat, e.g. `${uniqueId}-botonic-webchat`\n role={ROLES.WEBCHAT}\n >\n <WebchatHeader ref={headerRef} />\n\n {webchatState.isCoverComponentOpen ? (\n <CoverComponent\n component={coverComponent}\n componentProps={coverComponentProps}\n />\n ) : (\n <>\n {webchatState.error.message && (\n <ErrorMessageContainer>\n <ErrorMessage>{webchatState.error.message}</ErrorMessage>\n </ErrorMessageContainer>\n )}\n\n <ChatArea />\n\n {webchatState.isPersistentMenuOpen && (\n <DarkenBackground component={persistentMenu()} />\n )}\n\n {!webchatState.handoff && userInputEnabled && (\n <InputPanel\n handleAttachment={handleAttachment}\n textareaRef={textareaRef}\n host={host}\n onUserInput={props.onUserInput}\n />\n )}\n\n {webchatState.webview && (\n <WebviewContainer localWebviews={props.localWebviews} />\n )}\n\n {webchatState.isCustomComponentRendered &&\n customComponent &&\n _renderCustomComponent()}\n </>\n )}\n </StyledWebchat>\n )}\n </ThemeProvider>\n </WebchatContext.Provider>\n )\n\n return props.shadowDOM ? (\n <StyleSheetManager target={host}>{WebchatComponent}</StyleSheetManager>\n ) : (\n WebchatComponent\n )\n})\n\nWebchat.displayName = 'Webchat'\nexport { Webchat }\n"],"names":["BotonicAction","INPUT","params2queryString","merge","forwardRef","useEffect","useImperativeHandle","useRef","useState","StyleSheetManager","ThemeProvider","v7","uuidv7","Audio","Document","Handoff","Image","normalizeWebchatSettings","Text","Video","COLORS","MAX_ALLOWED_SIZE_MB","ROLES","WEBCHAT","WEBCHAT_DEFAULT_CONTENTS","SENDERS","getMediaType","isAllowedSize","isAudio","isDocument","isImage","isMedia","isText","isVideo","readDataURL","msgToBotonic","isDev","deserializeRegex","stringifyWithRegexs","_getThemeProperty","getServerErrorMessage","initSession","shouldKeepSessionOnReload","updateUserLocaleAndCountry","ChatArea","OpenedPersistentMenu","BotonicContainerId","useWebchat","WebchatContext","CoverComponent","WebchatHeader","useComponentWillMount","usePrevious","useScrollToBottom","useTyping","InputPanel","DarkBackgroundMenu","ErrorMessage","ErrorMessageContainer","StyledWebchat","TriggerButton","useStorageState","getParsedAction","WebviewContainer","Webchat","props","ref","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","contentsByLocale","firstUpdate","isOnline","currentDateString","Date","theme","initialSession","initialDevSettings","onStateChange","getThemeProperty","customComponent","setCustomComponent","storage","storageKey","botonicState","saveState","host","document","scrollToBottom","saveWebchatState","JSON","handleAttachment","event","Error","sendAttachment","sendUserInput","input","window","botonicStyle","style","messages","session","lastRoutePath","devSettings","lastMessageUpdate","themeUpdates","message","newMessageComponent","undefined","setTimeout","messagesJSON","openWebview","webviewComponent","params","textareaRef","closeWebview","options","userInputEnabled","sendPayload","persistentMenuOptions","darkBackgroundMenu","getBlockInputs","rule","inputData","processedInput","regex","checkBlockInput","blockInputs","Array","closeMenu","persistentMenu","coverComponent","coverComponentProps","messageComponentFromInput","messageComponent","temporaryDisplayUrl","URL","mediaProps","sendInput","Object","updateSessionWithUser","userToUpdate","placeholder","response","isUnread","r","action","handoff","typing","_customComponent","msgId","messageInfo","messageToUpdate","m","updatedMsg","settings","resolveCase","prevSession","sendText","text","payload","attachment","attachmentType","isUserInputEnabled","updateWebchatDevSettings","DarkenBackground","component","_renderCustomComponent","WebchatComponent"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const WebviewHeader: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat/webview/header.js","sources":["../../../../src/webchat/webview/header.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { ROLES, WEBCHAT } from '../../constants'\nimport { WebviewRequestContext } from '../../contexts'\nimport { WebchatContext } from '../context'\nimport { StyledCloseHeader, StyledWebviewHeader } from './styles'\n\nexport const WebviewHeader = () => {\n const { closeWebview } = useContext(WebviewRequestContext)\n const { getThemeProperty } = useContext(WebchatContext)\n\n return (\n <StyledWebviewHeader\n role={ROLES.WEBVIEW_HEADER}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewHeaderStyle),\n }}\n >\n <StyledCloseHeader onClick={() => closeWebview()}>✕</StyledCloseHeader>\n </StyledWebviewHeader>\n )\n}\n"],"names":["useContext","ROLES","WEBCHAT","WebviewRequestContext","WebchatContext","StyledCloseHeader","StyledWebviewHeader","WebviewHeader","closeWebview","getThemeProperty"],"mappings":";;;;;;;;;;;;;;AAAkC;AAEc;AACM;AACX;AACsB;AAE1D,MAAMO,aAAaA,GAAG;IAC3B,MAAM,EAAEC,YAAY,EAAE,GAAGR,UAAUA,CAACG,qBAAqBA;IACzD,MAAM,EAAEM,gBAAgB,EAAE,GAAGT,UAAUA,CAACI,cAAcA;IAEtD,qBACE,IAACE,mBAAmBA;QAClB,MAAML,oBAAoB;QAC1B,OAAO;YACL,GAAGQ,iBAAiBP,4CAA4C,CAAC;QACnE;kBAEA,kBAACG,iBAAiBA;YAAC,SAAS,IAAMG;sBAAgB;;;AAGxD,EAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type React from 'react';
|
|
2
|
-
import { type WebchatState } from '../context/index.js';
|
|
3
|
-
export declare const WebviewContainer: ({ localWebviews, }: {
|
|
4
|
-
localWebviews?: React.ComponentType[];
|
|
5
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export declare function getWebviewInDevMode(localWebviews: React.ComponentType[] | undefined, webchatState: WebchatState): React.ComponentType;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat/webview/index.js","sources":["../../../../src/webchat/webview/index.tsx"],"sourcesContent":["import { type Session as CoreSession, isDev } from '@botonic/core'\nimport type React from 'react'\nimport { useContext, useEffect } from 'react'\n\nimport type { Webview } from '../../components/index-types'\nimport { ROLES, WEBCHAT } from '../../constants'\nimport {\n type CloseWebviewOptions,\n WebviewRequestContext,\n type WebviewRequestContextType,\n} from '../../contexts'\nimport { WebchatContext, type WebchatState } from '../context'\nimport { WebviewHeader } from './header'\nimport {\n StyledFrame,\n StyledFrameAsDiv,\n StyledWebview,\n StyledWebviewContent,\n} from './styles'\n\nexport const WebviewContainer = ({\n localWebviews,\n}: {\n localWebviews?: React.ComponentType[]\n}) => {\n const { closeWebview, getThemeProperty, webchatState } =\n useContext(WebchatContext)\n\n const webviewRequestContext: WebviewRequestContextType = {\n params: webchatState.webviewParams,\n session: webchatState.session || ({} as Partial<CoreSession>),\n getUserCountry: () => webchatState.session?.user?.country || '',\n getUserLocale: () => webchatState.session?.user?.locale || '',\n getSystemLocale: () => webchatState.session?.user?.system_locale || '',\n closeWebview: async (options?: CloseWebviewOptions) =>\n await closeWebview(options),\n }\n\n const close = async (e: any) => {\n if (e.data === 'botonicCloseWebview') {\n console.log('Received close message from webview')\n await closeWebview()\n }\n }\n\n useEffect(() => {\n window.addEventListener('message', close, false)\n\n return () => window.removeEventListener('message', close, false)\n }, [])\n\n if (isDev(webchatState.session as CoreSession)) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const Webview = getWebviewInDevMode(localWebviews, webchatState)\n\n return (\n <WebviewRequestContext.Provider value={webviewRequestContext}>\n <StyledWebview\n role={ROLES.WEBVIEW}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewStyle),\n }}\n >\n <WebviewHeader />\n <StyledWebviewContent>\n <StyledFrameAsDiv>\n <Webview />\n </StyledFrameAsDiv>\n </StyledWebviewContent>\n </StyledWebview>\n </WebviewRequestContext.Provider>\n )\n }\n\n const webviewUrl =\n webchatState.webview && typeof webchatState.webview === 'string'\n ? webchatState.webview\n : ''\n\n return (\n <WebviewRequestContext.Provider value={webviewRequestContext}>\n <StyledWebview\n role={ROLES.WEBVIEW}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.webviewStyle),\n }}\n >\n <WebviewHeader />\n <StyledWebviewContent>\n <StyledFrame src={webviewUrl as string} />\n </StyledWebviewContent>\n </StyledWebview>\n </WebviewRequestContext.Provider>\n )\n}\n\nfunction isReactComponent(value: unknown): value is React.ComponentType {\n return typeof value === 'function'\n}\n\nfunction isWebviewDescriptor(value: unknown): value is Webview {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n typeof (value as Webview).name === 'string' &&\n !isReactComponent(value)\n )\n}\n\nexport function getWebviewInDevMode(\n localWebviews: React.ComponentType[] | undefined,\n webchatState: WebchatState\n): React.ComponentType {\n const { webview } = webchatState\n\n if (webview == null) {\n throw new Error('No webview specified')\n }\n\n if (typeof webview === 'string') {\n return webview as unknown as React.ComponentType\n }\n\n if (isReactComponent(webview)) {\n return webview\n }\n\n if (isWebviewDescriptor(webview)) {\n const localWebview = localWebviews?.find(\n local => local.name === webview.name\n )\n\n if (!localWebview) {\n const registeredNames =\n localWebviews\n ?.map(w => w.name)\n .filter(Boolean)\n .join(', ') || 'none'\n throw new Error(\n `Local webview \"${webview.name}\" not found. Registered webviews: ${registeredNames}`\n )\n }\n\n return localWebview\n }\n\n throw new Error(\n 'Invalid webview type: expected a React component, a webview descriptor { name }, or a string URL'\n )\n}\n"],"names":["isDev","useContext","useEffect","ROLES","WEBCHAT","WebviewRequestContext","WebchatContext","WebviewHeader","StyledFrame","StyledFrameAsDiv","StyledWebview","StyledWebviewContent","WebviewContainer","localWebviews","closeWebview","getThemeProperty","webchatState","webviewRequestContext","options","close","e","console","window","Webview","getWebviewInDevMode","webviewUrl","isReactComponent","value","isWebviewDescriptor","webview","Error","localWebview","local","registeredNames","w","Boolean"],"mappings":";;;;;;;;;;;;;;;;;;AAAkE;AAErB;AAGG;AAKzB;AACuC;AACtB;AAMvB;AAEV,MAAMY,gBAAgBA,GAAG,CAAC,EAC/BC,aAAa,EAGd;IACC,MAAM,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,YAAY,EAAE,GACpDf,UAAUA,CAACK,cAAcA;IAE3B,MAAMW,wBAAmD;QACvD,QAAQD,aAAa,aAAa;QAClC,SAASA,aAAa,OAAO,IAAK,CAAC;QACnC,gBAAgB,IAAMA,aAAa,OAAO,EAAE,MAAM,WAAW;QAC7D,eAAe,IAAMA,aAAa,OAAO,EAAE,MAAM,UAAU;QAC3D,iBAAiB,IAAMA,aAAa,OAAO,EAAE,MAAM,iBAAiB;QACpE,cAAc,OAAOE,UACnB,MAAMJ,aAAaI;IACvB;IAEA,MAAMC,QAAQ,OAAOC;QACnB,IAAIA,EAAE,IAAI,KAAK,uBAAuB;YACpCC,QAAQ,GAAG,CAAC;YACZ,MAAMP;QACR;IACF;IAEAZ,SAASA,CAAC;QACRoB,OAAO,gBAAgB,CAAC,WAAWH,OAAO;QAE1C,OAAO,IAAMG,OAAO,mBAAmB,CAAC,WAAWH,OAAO;IAC5D,GAAG,EAAE;IAEL,IAAInB,KAAKA,CAACgB,aAAa,OAAO,GAAkB;QAC9C,gEAAgE;QAChE,MAAMO,UAAUC,mBAAmBA,CAACX,eAAeG;QAEnD,qBACE,IAACX,8BAA8B;YAAC,OAAOY;sBACrC,mBAACP,aAAaA;gBACZ,MAAMP,aAAa;gBACnB,OAAO;oBACL,GAAGY,iBAAiBX,sCAAsC,CAAC;gBAC7D;;kCAEA,IAACG,aAAaA;kCACd,IAACI,oBAAoBA;kCACnB,kBAACF,gBAAgBA;sCACf,kBAACc;;;;;;IAMb;IAEA,MAAME,aACJT,aAAa,OAAO,IAAI,OAAOA,aAAa,OAAO,KAAK,WACpDA,aAAa,OAAO,GACpB;IAEN,qBACE,IAACX,8BAA8B;QAAC,OAAOY;kBACrC,mBAACP,aAAaA;YACZ,MAAMP,aAAa;YACnB,OAAO;gBACL,GAAGY,iBAAiBX,sCAAsC,CAAC;YAC7D;;8BAEA,IAACG,aAAaA;8BACd,IAACI,oBAAoBA;8BACnB,kBAACH,WAAWA;wBAAC,KAAKiB;;;;;;AAK5B,EAAC;AAED,SAASC,gBAAgBA,CAACC,KAAc;IACtC,OAAO,OAAOA,UAAU;AAC1B;AAEA,SAASC,mBAAmBA,CAACD,KAAc;IACzC,OACE,OAAOA,UAAU,YACjBA,UAAU,QACV,UAAUA,SACV,OAAQA,MAAkB,IAAI,KAAK,YACnC,CAACD,gBAAgBA,CAACC;AAEtB;AAEO,SAASH,mBAAmBA,CACjCX,aAAgD,EAChDG,YAA0B;IAE1B,MAAM,EAAEa,OAAO,EAAE,GAAGb;IAEpB,IAAIa,WAAW,MAAM;QACnB,MAAM,IAAIC,MAAM;IAClB;IAEA,IAAI,OAAOD,YAAY,UAAU;QAC/B,OAAOA;IACT;IAEA,IAAIH,gBAAgBA,CAACG,UAAU;QAC7B,OAAOA;IACT;IAEA,IAAID,mBAAmBA,CAACC,UAAU;QAChC,MAAME,eAAelB,eAAe,KAClCmB,CAAAA,QAASA,MAAM,IAAI,KAAKH,QAAQ,IAAI;QAGtC,IAAI,CAACE,cAAc;YACjB,MAAME,kBACJpB,eACI,IAAIqB,CAAAA,IAAKA,EAAE,IAAI,EAChB,OAAOC,SACP,KAAK,SAAS;YACnB,MAAM,IAAIL,MACR,CAAC,eAAe,EAAED,QAAQ,IAAI,CAAC,kCAAkC,EAAEI,iBAAiB;QAExF;QAEA,OAAOF;IACT;IAEA,MAAM,IAAID,MACR;AAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat/webview/styles.js","sources":["../../../../src/webchat/webview/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS } from '../../constants'\n\nexport const StyledWebview = styled.div`\n position: absolute;\n display: flex;\n flex-direction: column;\n bottom: 0;\n width: 100%;\n height: 100%;\n background-color: ${COLORS.SOLID_WHITE};\n z-index: 2;\n border-radius: ${props => props.theme.style.borderRadius};\n\n @media (max-width: ${props => props.theme.mobileBreakpoint}px) {\n position: ${props => props.theme.mobileStyle.position};\n right: ${props => props.theme.mobileStyle.right};\n bottom: ${props => props.theme.mobileStyle.bottom};\n width: ${props => props.theme.mobileStyle.width};\n height: ${props => props.theme.mobileStyle.height};\n border-radius: ${props => props.theme.mobileStyle.borderRadius};\n font-size: ${props => props.theme.mobileStyle.fontSize};\n }\n`\n\nexport const StyledWebviewHeader = styled.div`\n flex: none;\n text-align: right;\n background-color: ${COLORS.WILD_SAND_WHITE};\n border-top: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};\n border-bottom: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_2};\n border-radius: ${props => props.theme.header?.style?.borderRadius};\n\n @media (max-width: ${props => props.theme.mobileBreakpoint}px) {\n border-radius: 0px;\n }\n`\nexport const StyledCloseHeader = styled.div`\n display: inline-block;\n padding: 8px 12px;\n cursor: pointer;\n`\n\nexport const StyledWebviewContent = styled.div`\n flex: 1;\n overflow: auto;\n`\n\nexport const FrameStyles = `\n border-style: none;\n width: 100%;\n height: 100%;\n`\n\nexport const StyledFrame = styled.iframe`\n ${FrameStyles}\n`\n\nexport const StyledFrameAsDiv = styled.div`\n ${FrameStyles}\n`\n"],"names":["styled","COLORS","StyledWebview","props","StyledWebviewHeader","StyledCloseHeader","StyledWebviewContent","FrameStyles","StyledFrame","StyledFrameAsDiv"],"mappings":";;;;;AAAsC;AAEE;AAEjC,MAAME,aAAaA,GAAGF,qBAAU,CAAC;;;;;;;oBAOpB,EAAEC,kBAAkB,CAAC;;iBAExB,EAAEE,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;;qBAEtC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,gBAAgB,CAAC;cAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;WAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;WAC3C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;mBACnC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC;eACpD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;;AAE3D,CAAC;AAEM,MAAMC,mBAAmBA,GAAGJ,qBAAU,CAAC;;;oBAG1B,EAAEC,sBAAsB,CAAC;wBACrB,EAAEA,4BAA4B,CAAC;2BAC5B,EAAEA,4BAA4B,CAAC;iBACzC,EAAEE,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa;;qBAE/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,gBAAgB,CAAC;;;AAG7D,CAAC;AACM,MAAME,iBAAiBA,GAAGL,qBAAU,CAAC;;;;AAI5C,CAAC;AAEM,MAAMM,oBAAoBA,GAAGN,qBAAU,CAAC;;;AAG/C,CAAC;AAEM,MAAMO,WAAWA,GAAG,CAAC;;;;AAI5B,CAAC;AAEM,MAAMC,WAAWA,GAAGR,wBAAa,CAAC;EACvC,EAAEO,WAAWA,CAAC;AAChB,CAAC;AAEM,MAAME,gBAAgBA,GAAGT,qBAAU,CAAC;EACzC,EAAEO,WAAWA,CAAC;AAChB,CAAC"}
|
package/lib/esm/webchat-app.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { type ServerConfig } from '@botonic/core';
|
|
2
|
-
import type React from 'react';
|
|
3
|
-
import type { BlockInputOption, WebchatSettingsProps } from './components/index.js';
|
|
4
|
-
import type { CloseWebviewOptions } from './contexts.js';
|
|
5
|
-
import { type ActionRequest, type Event, type EventArgs, type OnStateChangeArgs, type OnUserInputArgs, type PreviewUtils, type WebchatArgs, type WebchatLocaleContents, type WebchatMessage, type WebchatRef } from './index-types.js';
|
|
6
|
-
import type { CoverComponentOptions, PersistentMenuOptionsTheme, WebchatTheme } from './webchat/theme/types.js';
|
|
7
|
-
export declare class WebchatApp {
|
|
8
|
-
theme?: Partial<WebchatTheme>;
|
|
9
|
-
persistentMenu?: PersistentMenuOptionsTheme;
|
|
10
|
-
coverComponent?: CoverComponentOptions;
|
|
11
|
-
blockInputs?: BlockInputOption[];
|
|
12
|
-
enableEmojiPicker?: boolean;
|
|
13
|
-
enableAttachments?: boolean;
|
|
14
|
-
enableUserInput?: boolean;
|
|
15
|
-
enableAnimations?: boolean;
|
|
16
|
-
hostId?: string;
|
|
17
|
-
shadowDOM?: boolean | (() => boolean);
|
|
18
|
-
defaultDelay?: number;
|
|
19
|
-
defaultTyping?: number;
|
|
20
|
-
storage?: Storage | null;
|
|
21
|
-
storageKey: string;
|
|
22
|
-
onInit?: (app: WebchatApp, args: any) => void;
|
|
23
|
-
onOpen?: (app: WebchatApp, args: any) => void;
|
|
24
|
-
onClose?: (app: WebchatApp, args: any) => void;
|
|
25
|
-
onMessage?: (app: WebchatApp, message: WebchatMessage) => void;
|
|
26
|
-
onTrackEvent?: (request: ActionRequest, eventName: string, args?: EventArgs) => Promise<void>;
|
|
27
|
-
onConnectionChange?: (app: WebchatApp, isOnline: boolean) => void;
|
|
28
|
-
contentsByLocale?: Record<string, WebchatLocaleContents>;
|
|
29
|
-
appId?: string;
|
|
30
|
-
visibility?: boolean | (() => boolean) | 'dynamic';
|
|
31
|
-
server?: ServerConfig;
|
|
32
|
-
previewUtils?: PreviewUtils;
|
|
33
|
-
webchatRef: React.RefObject<WebchatRef | null>;
|
|
34
|
-
private reactRoot;
|
|
35
|
-
private host;
|
|
36
|
-
private hubtypeService;
|
|
37
|
-
constructor({ theme, persistentMenu, coverComponent, blockInputs, enableEmojiPicker, enableAttachments, enableUserInput, enableAnimations, hostId, shadowDOM, defaultDelay, defaultTyping, storage, storageKey, onInit, onOpen, onClose, onMessage, onTrackEvent, onConnectionChange, contentsByLocale, appId, visibility, server, previewUtils, }: WebchatArgs);
|
|
38
|
-
createRootElement(host: HTMLElement | null): void;
|
|
39
|
-
getReactMountNode(node?: (HTMLElement | null) | ShadowRoot): Element | DocumentFragment;
|
|
40
|
-
onInitWebchat(...args: [any]): void;
|
|
41
|
-
onOpenWebchat(...args: [any]): void;
|
|
42
|
-
onCloseWebchat(...args: [any]): void;
|
|
43
|
-
onUserInput({ user, input }: OnUserInputArgs): Promise<void>;
|
|
44
|
-
onTrackEventWebchat(request: ActionRequest, eventName: string, args?: EventArgs): Promise<void>;
|
|
45
|
-
onConnectionRegained(): Promise<void>;
|
|
46
|
-
onStateChange(args: OnStateChangeArgs): void;
|
|
47
|
-
onServiceEvent(event: Event): void;
|
|
48
|
-
updateUser(user: any): void;
|
|
49
|
-
setSystemLocale(locale: string): void;
|
|
50
|
-
setUserLocale(locale: string): void;
|
|
51
|
-
setUserCountry(country: string): void;
|
|
52
|
-
addBotMessage(message: any): void;
|
|
53
|
-
addSystemMessage(message: any): void;
|
|
54
|
-
addBotText(text: string): void;
|
|
55
|
-
addUserMessage(message: any): void;
|
|
56
|
-
addUserText(text: string): void;
|
|
57
|
-
addUserPayload(payload: string): void;
|
|
58
|
-
setTyping(typing: boolean): void;
|
|
59
|
-
open(): void;
|
|
60
|
-
close(): void;
|
|
61
|
-
closeWebview(options?: CloseWebviewOptions): Promise<void>;
|
|
62
|
-
toggle(): void;
|
|
63
|
-
openCoverComponent(): void;
|
|
64
|
-
closeCoverComponent(): void;
|
|
65
|
-
renderCustomComponent(_customComponent: any): void;
|
|
66
|
-
unmountCustomComponent(): void;
|
|
67
|
-
toggleCoverComponent(): void;
|
|
68
|
-
getMessages(): {
|
|
69
|
-
id: string;
|
|
70
|
-
ack: number;
|
|
71
|
-
unsentInput: import("@botonic/core").Input;
|
|
72
|
-
}[] | undefined;
|
|
73
|
-
clearMessages(): void;
|
|
74
|
-
getVisibility(): Promise<boolean>;
|
|
75
|
-
getLastMessageUpdate(): string | undefined;
|
|
76
|
-
updateMessageInfo(msgId: string, messageInfo: any): void | undefined;
|
|
77
|
-
updateWebchatSettings(settings: WebchatSettingsProps): void | undefined;
|
|
78
|
-
createInitialTheme(optionsAtRuntime?: WebchatArgs): WebchatTheme & Partial<WebchatTheme>;
|
|
79
|
-
createInitialThemeUserInput(theme: WebchatTheme, optionsAtRuntime?: WebchatArgs): {
|
|
80
|
-
attachments?: {
|
|
81
|
-
enable?: boolean;
|
|
82
|
-
custom?: React.ComponentType;
|
|
83
|
-
};
|
|
84
|
-
blockInputs?: BlockInputOption[];
|
|
85
|
-
box?: {
|
|
86
|
-
placeholder: string;
|
|
87
|
-
style?: any;
|
|
88
|
-
};
|
|
89
|
-
emojiPicker?: {
|
|
90
|
-
enable?: boolean;
|
|
91
|
-
custom?: React.ComponentType;
|
|
92
|
-
};
|
|
93
|
-
menu?: {
|
|
94
|
-
darkBackground?: boolean;
|
|
95
|
-
custom?: React.ComponentType<import("./webchat/theme/types.js").PersistentMenuOptionsProps>;
|
|
96
|
-
};
|
|
97
|
-
menuButton?: {
|
|
98
|
-
custom?: React.ComponentType;
|
|
99
|
-
};
|
|
100
|
-
persistentMenu?: PersistentMenuOptionsTheme;
|
|
101
|
-
sendButton?: {
|
|
102
|
-
enable?: boolean;
|
|
103
|
-
custom?: React.ComponentType;
|
|
104
|
-
};
|
|
105
|
-
enable?: boolean;
|
|
106
|
-
style?: any;
|
|
107
|
-
};
|
|
108
|
-
getComponent(host: HTMLDivElement, optionsAtRuntime?: WebchatArgs): import("react/jsx-runtime").JSX.Element;
|
|
109
|
-
isWebchatVisible(appId: string): Promise<boolean>;
|
|
110
|
-
isOnline(): boolean | undefined;
|
|
111
|
-
resolveWebchatVisibility(optionsAtRuntime?: WebchatArgs): Promise<boolean>;
|
|
112
|
-
destroy(): void;
|
|
113
|
-
render(dest: HTMLDivElement, optionsAtRuntime?: WebchatArgs): Promise<void>;
|
|
114
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webchat-app.js","sources":["../../src/webchat-app.tsx"],"sourcesContent":["import { HubtypeService, INPUT, type ServerConfig } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport type React from 'react'\nimport { createRef } from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\n\nimport type { BlockInputOption, WebchatSettingsProps } from './components'\nimport { WEBCHAT } from './constants'\nimport type { CloseWebviewOptions } from './contexts'\nimport {\n type ActionRequest,\n type Event,\n type EventArgs,\n type OnStateChangeArgs,\n type OnUserInputArgs,\n type PreviewUtils,\n SENDERS,\n Typing,\n type WebchatArgs,\n type WebchatLocaleContents,\n type WebchatMessage,\n type WebchatRef,\n} from './index-types'\nimport { msgToBotonic } from './msg-to-botonic'\nimport { isShadowDOMSupported, onDOMLoaded } from './util/dom'\nimport { defaultTheme } from './webchat/theme/default-theme'\nimport type {\n CoverComponentOptions,\n PersistentMenuOptionsTheme,\n WebchatTheme,\n} from './webchat/theme/types'\nimport { Webchat } from './webchat/webchat'\n\nexport class WebchatApp {\n public theme?: Partial<WebchatTheme>\n public persistentMenu?: PersistentMenuOptionsTheme\n public coverComponent?: CoverComponentOptions\n public blockInputs?: BlockInputOption[]\n public enableEmojiPicker?: boolean\n public enableAttachments?: boolean\n public enableUserInput?: boolean\n public enableAnimations?: boolean\n public hostId?: string\n public shadowDOM?: boolean | (() => boolean)\n public defaultDelay?: number\n public defaultTyping?: number\n public storage?: Storage | null\n public storageKey: string\n public onInit?: (app: WebchatApp, args: any) => void\n public onOpen?: (app: WebchatApp, args: any) => void\n public onClose?: (app: WebchatApp, args: any) => void\n public onMessage?: (app: WebchatApp, message: WebchatMessage) => void\n public onTrackEvent?: (\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ) => Promise<void>\n public onConnectionChange?: (app: WebchatApp, isOnline: boolean) => void\n public contentsByLocale?: Record<string, WebchatLocaleContents>\n public appId?: string\n public visibility?: boolean | (() => boolean) | 'dynamic'\n public server?: ServerConfig\n public previewUtils?: PreviewUtils\n public webchatRef: React.RefObject<WebchatRef | null>\n\n private reactRoot: Root | null = null\n private host: (HTMLElement | null) | ShadowRoot = null\n private hubtypeService: HubtypeService\n\n constructor({\n theme,\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n hostId = WEBCHAT.DEFAULTS.HOST_ID,\n shadowDOM = false,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onTrackEvent,\n onConnectionChange,\n contentsByLocale,\n appId,\n visibility,\n server,\n previewUtils,\n }: WebchatArgs) {\n this.theme = theme\n this.persistentMenu = persistentMenu\n this.coverComponent = coverComponent\n this.blockInputs = blockInputs\n this.enableEmojiPicker = enableEmojiPicker\n this.enableAttachments = enableAttachments\n this.enableUserInput = enableUserInput\n this.enableAnimations = enableAnimations\n\n this.shadowDOM = Boolean(\n typeof shadowDOM === 'function' ? shadowDOM() : shadowDOM\n )\n if (this.shadowDOM && !isShadowDOMSupported()) {\n console.warn('[botonic] ShadowDOM not supported on this browser')\n this.shadowDOM = false\n }\n\n this.hostId = hostId || WEBCHAT.DEFAULTS.HOST_ID\n this.defaultDelay = defaultDelay\n this.defaultTyping = defaultTyping\n this.storage = storage === undefined ? localStorage : storage\n this.storageKey = storageKey || WEBCHAT.DEFAULTS.STORAGE_KEY\n this.onInit = onInit\n this.onOpen = onOpen\n this.onClose = onClose\n this.onMessage = onMessage\n this.onTrackEvent = onTrackEvent\n this.onConnectionChange = onConnectionChange\n this.contentsByLocale = contentsByLocale\n this.visibility = visibility\n this.server = server\n this.previewUtils = previewUtils\n this.webchatRef = createRef<WebchatRef>()\n this.appId = appId\n\n this.host = null\n this.reactRoot = null\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: createRootElement is a complex function that creates a root element for the webchat\n createRootElement(host: HTMLElement | null) {\n // Create root element <div id='root'> if not exists\n // Create shadowDOM to root element if needed\n if (host) {\n if (host.id && this.hostId) {\n if (host.id !== this.hostId) {\n console.warn(\n `[botonic] Host ID \"${host.id}\" don't match 'hostId' option: ${this.hostId}. Using value: ${host.id}.`\n )\n this.hostId = host.id\n }\n } else if (host.id) {\n this.hostId = host.id\n } else if (this.hostId) {\n host.id = this.hostId\n }\n } else {\n host = this.hostId ? document.getElementById(this.hostId) : null\n }\n\n if (!host) {\n host = document.createElement('div')\n host.id = this.hostId!\n if (document.body.firstChild) {\n document.body.insertBefore(host, document.body.firstChild)\n } else {\n document.body.appendChild(host)\n }\n }\n this.host = this.shadowDOM ? host.attachShadow({ mode: 'open' }) : host\n }\n\n getReactMountNode(\n node?: (HTMLElement | null) | ShadowRoot\n ): Element | DocumentFragment {\n if (!node) {\n node = this.host\n }\n\n if (node === null) {\n throw new Error('Host element not found')\n }\n\n // TODO: Review logic of ShadowRoot\n if ('shadowRoot' in node && node.shadowRoot !== null) {\n return node.shadowRoot\n }\n\n return node\n }\n\n onInitWebchat(...args: [any]) {\n this.onInit?.(this, ...args)\n }\n\n onOpenWebchat(...args: [any]) {\n this.onOpen?.(this, ...args)\n }\n\n onCloseWebchat(...args: [any]) {\n this.onClose?.(this, ...args)\n }\n\n async onUserInput({ user, input }: OnUserInputArgs): Promise<void> {\n if (!user) {\n return\n }\n\n this.onMessage?.(this, {\n ...input,\n sentBy: SENDERS.user,\n isUnread: false,\n } as unknown as WebchatMessage)\n this.hubtypeService.postMessage(user, {\n ...input,\n // TODO: Review if this is correct add sent_by or this is added in backend\n // sent_by: 'message_sent_by_user',\n })\n return\n }\n\n async onTrackEventWebchat(\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ): Promise<void> {\n if (this.onTrackEvent) {\n await this.onTrackEvent(request, eventName, args)\n }\n }\n\n async onConnectionRegained() {\n return this.hubtypeService.onConnectionRegained()\n }\n\n onStateChange(args: OnStateChangeArgs) {\n const { user, messagesJSON } = args\n const lastMessage = messagesJSON[messagesJSON.length - 1]\n const lastMessageId = lastMessage?.id\n const lastMessageUpdateDate = this.getLastMessageUpdate()\n\n if (this.hubtypeService) {\n this.hubtypeService.lastMessageId = lastMessageId\n this.hubtypeService.lastMessageUpdateDate = lastMessageUpdateDate\n }\n\n if (!this.hubtypeService) {\n this.hubtypeService = new HubtypeService({\n appId: this.appId!,\n user,\n lastMessageId,\n lastMessageUpdateDate,\n onEvent: (event: any) => this.onServiceEvent(event),\n unsentInputs: () =>\n this.webchatRef.current\n ?.getMessages()\n .filter(msg => msg.ack === 0 && msg.unsentInput) || [],\n server: this.server,\n })\n }\n }\n\n onServiceEvent(event: Event) {\n if (event.action === 'connectionChange') {\n this.onConnectionChange?.(this, event.online)\n this.webchatRef.current?.setOnline(event.online)\n } else if (event.action === 'update_message_info' && event.message?.id) {\n this.updateMessageInfo(event.message.id, event.message)\n } else if (event.message?.type === 'update_webchat_settings') {\n this.updateWebchatSettings(event.message.data)\n } else if (event.message?.type === 'sender_action') {\n this.setTyping(event.message.data === Typing.On)\n } else {\n const isSystemMessage = (event.message as any)?.sent_by === SENDERS.system\n this.onMessage?.(this, {\n sentBy: isSystemMessage ? SENDERS.system : SENDERS.bot,\n ...event.message,\n } as unknown as WebchatMessage)\n\n if (isSystemMessage) {\n this.addSystemMessage(event.message)\n } else {\n this.addBotMessage(event.message)\n }\n }\n }\n\n updateUser(user: any) {\n this.webchatRef.current?.updateUser(user)\n }\n\n setSystemLocale(locale: string) {\n this.webchatRef.current?.updateUser({ system_locale: locale })\n }\n\n setUserLocale(locale: string) {\n this.webchatRef.current?.updateUser({ locale })\n }\n\n setUserCountry(country: string) {\n this.webchatRef.current?.updateUser({ country })\n }\n\n addBotMessage(message: any) {\n message.ack = 0\n message.isUnread = true\n message.sentBy = message.sent_by?.split('message_sent_by_')[1]\n delete message.sent_by\n const response = msgToBotonic(message, this.theme?.message?.customTypes)\n\n this.webchatRef.current?.addBotResponse({\n response,\n })\n }\n\n addSystemMessage(message: any) {\n message.ack = 0\n message.isUnread = true\n message.sentBy = SENDERS.system\n delete message.sent_by\n const response = msgToBotonic(message, this.theme?.message?.customTypes)\n\n this.webchatRef.current?.addSystemResponse({\n response,\n })\n }\n\n addBotText(text: string) {\n this.addBotMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserMessage(message: any) {\n this.webchatRef.current?.addUserMessage(message)\n }\n\n addUserText(text: string) {\n this.addUserMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserPayload(payload: string) {\n this.addUserMessage({ type: INPUT.POSTBACK, payload })\n }\n\n setTyping(typing: boolean) {\n this.webchatRef.current?.setTyping(typing)\n }\n\n open() {\n this.webchatRef.current?.openWebchat()\n }\n\n close() {\n this.webchatRef.current?.closeWebchat()\n }\n\n async closeWebview(options?: CloseWebviewOptions) {\n await this.webchatRef.current?.closeWebview(options)\n }\n\n // TODO: Remove this function because we have open and close functions\n toggle() {\n this.webchatRef.current?.toggleWebchat()\n }\n\n openCoverComponent() {\n this.webchatRef.current?.openCoverComponent()\n }\n\n closeCoverComponent() {\n this.webchatRef.current?.closeCoverComponent()\n }\n\n renderCustomComponent(_customComponent: any) {\n this.webchatRef.current?.renderCustomComponent(_customComponent)\n }\n\n unmountCustomComponent() {\n this.webchatRef.current?.unmountCustomComponent()\n }\n\n // TODO: Remove this function because we have openCoverComponent and closeCoverComponent functions\n toggleCoverComponent() {\n this.webchatRef.current?.toggleCoverComponent()\n }\n\n getMessages() {\n return this.webchatRef.current?.getMessages()\n }\n\n clearMessages() {\n this.webchatRef.current?.clearMessages()\n }\n\n async getVisibility() {\n return this.resolveWebchatVisibility({\n appId: this.appId,\n visibility: this.visibility,\n })\n }\n\n getLastMessageUpdate() {\n return this.webchatRef.current?.getLastMessageUpdate()\n }\n\n updateMessageInfo(msgId: string, messageInfo: any) {\n return this.webchatRef.current?.updateMessageInfo(msgId, messageInfo)\n }\n\n updateWebchatSettings(settings: WebchatSettingsProps) {\n return this.webchatRef.current?.updateWebchatSettings(settings)\n }\n\n createInitialTheme(optionsAtRuntime: WebchatArgs = {}) {\n const theme = merge(defaultTheme, this.theme, optionsAtRuntime.theme)\n\n if (theme.animations === undefined) {\n theme.animations = {}\n }\n\n theme.animations.enable =\n theme.animations.enable ??\n optionsAtRuntime.enableAnimations ??\n this.enableAnimations\n\n theme.coverComponent =\n theme.coverComponent ??\n optionsAtRuntime.coverComponent ??\n this.coverComponent\n\n theme.userInput = this.createInitialThemeUserInput(theme, optionsAtRuntime)\n\n return theme\n }\n\n createInitialThemeUserInput(\n theme: WebchatTheme,\n optionsAtRuntime: WebchatArgs = {}\n ) {\n if (!theme.userInput) {\n theme.userInput = {}\n }\n\n // Set main userInput properties\n theme.userInput = {\n ...theme.userInput,\n enable:\n theme.userInput.enable ??\n optionsAtRuntime.enableUserInput ??\n this.enableUserInput,\n persistentMenu:\n theme.userInput.persistentMenu ??\n optionsAtRuntime.persistentMenu ??\n this.persistentMenu,\n blockInputs:\n theme.userInput.blockInputs ??\n optionsAtRuntime.blockInputs ??\n this.blockInputs,\n }\n\n // Set emoji picker properties\n theme.userInput.emojiPicker = {\n ...(theme.userInput.emojiPicker || {}),\n enable:\n theme.userInput.emojiPicker?.enable ??\n optionsAtRuntime.enableEmojiPicker ??\n this.enableEmojiPicker,\n }\n\n // Set attachments properties\n theme.userInput.attachments = {\n ...(theme.userInput.attachments || {}),\n enable:\n theme.userInput.attachments?.enable ??\n optionsAtRuntime.enableAttachments ??\n this.enableAttachments,\n }\n\n return theme.userInput\n }\n\n getComponent(host: HTMLDivElement, optionsAtRuntime: WebchatArgs = {}) {\n let {\n theme = {},\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n contentsByLocale,\n onTrackEvent,\n appId,\n visibility,\n server,\n hostId,\n previewUtils,\n ...webchatOptions\n } = optionsAtRuntime\n theme = this.createInitialTheme(optionsAtRuntime)\n defaultDelay = defaultDelay || this.defaultDelay\n defaultTyping = defaultTyping || this.defaultTyping\n server = server || this.server\n this.storage = storage || this.storage\n this.storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.onTrackEvent = onTrackEvent || this.onTrackEvent\n this.onConnectionChange = onConnectionChange || this.onConnectionChange\n this.contentsByLocale = contentsByLocale || this.contentsByLocale\n this.visibility = visibility || this.visibility\n this.appId = appId || this.appId\n this.hostId = hostId || this.hostId\n this.previewUtils = previewUtils || this.previewUtils\n this.createRootElement(host)\n\n return (\n <Webchat\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme as WebchatTheme}\n storage={this.storage}\n storageKey={this.storageKey}\n defaultDelay={defaultDelay}\n defaultTyping={defaultTyping}\n previewUtils={this.previewUtils}\n onInit={(...args: [any]) => this.onInitWebchat(...args)}\n onOpen={(...args: [any]) => this.onOpenWebchat(...args)}\n onClose={(...args: [any]) => this.onCloseWebchat(...args)}\n onUserInput={(...args: [any]) => this.onUserInput(...args)}\n onStateChange={(args: OnStateChangeArgs) => {\n this.onStateChange(args)\n }}\n onTrackEvent={(\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ) => this.onTrackEventWebchat(request, eventName, args)}\n server={server}\n contentsByLocale={this.contentsByLocale}\n />\n )\n }\n\n async isWebchatVisible(appId: string): Promise<boolean> {\n try {\n const { status } = await HubtypeService.getWebchatVisibility(appId)\n return status === 200\n } catch (_e) {\n return false\n }\n }\n\n isOnline() {\n return this.webchatRef.current?.isOnline()\n }\n\n async resolveWebchatVisibility(\n optionsAtRuntime?: WebchatArgs\n ): Promise<boolean> {\n if (!optionsAtRuntime) {\n // If optionsAtRuntime is not provided, always render the webchat\n return true\n }\n\n let { appId, visibility } = optionsAtRuntime\n visibility = visibility || this.visibility\n\n if (visibility === undefined || visibility === true) {\n return true\n }\n\n if (typeof visibility === 'function' && visibility()) {\n return true\n }\n\n if (\n appId &&\n visibility === 'dynamic' &&\n (await this.isWebchatVisible(appId))\n ) {\n return true\n }\n\n return false\n }\n\n destroy() {\n if (this.hubtypeService) {\n this.hubtypeService.destroyPusher()\n }\n this.reactRoot?.unmount()\n if (this.storage) {\n this.storage.removeItem(this.storageKey)\n }\n }\n\n async render(dest: HTMLDivElement, optionsAtRuntime?: WebchatArgs) {\n onDOMLoaded(async () => {\n const isVisible = await this.resolveWebchatVisibility(optionsAtRuntime)\n if (isVisible) {\n const webchatComponent = this.getComponent(dest, optionsAtRuntime)\n const container = this.getReactMountNode(dest)\n this.reactRoot = createRoot(container)\n this.reactRoot.render(webchatComponent)\n }\n })\n }\n}\n"],"names":["HubtypeService","INPUT","merge","createRef","createRoot","WEBCHAT","SENDERS","Typing","msgToBotonic","isShadowDOMSupported","onDOMLoaded","defaultTheme","Webchat","WebchatApp","host","console","document","node","Error","args","user","input","request","eventName","messagesJSON","lastMessage","lastMessageId","lastMessageUpdateDate","event","msg","isSystemMessage","locale","country","message","response","text","payload","typing","options","_customComponent","msgId","messageInfo","settings","optionsAtRuntime","theme","undefined","defaultDelay","defaultTyping","storage","storageKey","onInit","onOpen","onClose","onMessage","onConnectionChange","contentsByLocale","onTrackEvent","appId","visibility","server","hostId","previewUtils","webchatOptions","status","_e","dest","isVisible","webchatComponent","container","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","shadowDOM","Boolean","localStorage"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webview-app.js","sources":["../../src/webview-app.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n// @ts-nocheck\nimport { PROVIDER, params2queryString, type Session } from '@botonic/core'\nimport axios from 'axios'\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { BrowserRouter, Route } from 'react-router-dom'\n\nimport {\n type CloseWebviewOptions,\n WebviewRequestContext,\n type WebviewRequestContextType,\n} from './contexts'\n\nenum WebviewUrlParams {\n Context = 'context',\n BotId = 'bot_id',\n UserId = 'user_id',\n HubtypeApiUrl = 'hubtype_api_url',\n}\n\nconst DEFAULT_HUBTYPE_API_URL = 'https://api.hubtype.com'\n\nclass App extends React.Component {\n private url: URL\n private hubtypeApiUrl: string = DEFAULT_HUBTYPE_API_URL\n\n constructor(props) {\n super(props)\n this.url = new URL(window.location.href)\n this.state = {\n session: null,\n params: {},\n }\n }\n\n async componentDidMount() {\n await this.initializeApp()\n }\n\n private async initializeApp() {\n try {\n const botId = this.url.searchParams.get(WebviewUrlParams.BotId)\n const chatId = this.url.searchParams.get(WebviewUrlParams.UserId)\n const hubtypeApiUrl = this.url.searchParams.get(\n WebviewUrlParams.HubtypeApiUrl\n )\n\n if (botId && chatId && hubtypeApiUrl) {\n const session = await this.getBotSessionContextFromExternalApi(\n hubtypeApiUrl,\n botId,\n chatId\n )\n this.hubtypeApiUrl = hubtypeApiUrl\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n } else {\n const session = this.getBotSessionContextFromUrl()\n this.hubtypeApiUrl = session._hubtype_api || DEFAULT_HUBTYPE_API_URL\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n }\n } catch (error) {\n console.error('Failed to initialize app:', error)\n const session = this.getBotSessionContextFromUrl()\n this.hubtypeApiUrl = session._hubtype_api || DEFAULT_HUBTYPE_API_URL\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n }\n }\n\n private async getBotSessionContextFromExternalApi(\n hubtypeApiUrl: string,\n botId: string,\n userId: string\n ) {\n const url = `${hubtypeApiUrl}/external/v2/conversational_apps/${botId}/users/${userId}/context/`\n const response = await axios.get(url)\n return response.data\n }\n\n private getBotSessionContextFromUrl() {\n const urlContext = this.url.searchParams.get(WebviewUrlParams.Context)\n try {\n return JSON.parse(urlContext || '{}')\n } catch (error) {\n console.error('Failed to parse session context from URL:', error)\n return {}\n }\n }\n\n private getParamsFromUrl() {\n const keysToExclude = [\n WebviewUrlParams.Context,\n WebviewUrlParams.BotId,\n WebviewUrlParams.UserId,\n WebviewUrlParams.HubtypeApiUrl,\n ]\n return Array.from(this.url.searchParams.entries())\n .filter(([key]) => !keysToExclude.includes(key))\n .reduce((params, [key, value]) => {\n params[key] = value\n return params\n }, {})\n }\n\n private async closeWebviewForProvider(\n provider: string,\n session: Session,\n _payload?: string\n ) {\n const { user } = session\n\n switch (provider) {\n case PROVIDER.WHATSAPP:\n location.href = `https://wa.me/${user.unformatted_phone_number}`\n break\n case PROVIDER.TELEGRAM:\n location.href = `https://t.me/${user.imp_id}`\n break\n case PROVIDER.APPLE:\n location.href = `https://bcrw.apple.com/urn:biz:${user.imp_id}`\n break\n case PROVIDER.TWITTER:\n location.href = `https://twitter.com/messages/compose?recipient_id=${user.imp_id}`\n break\n case PROVIDER.INSTAGRAM:\n window.close()\n break\n case PROVIDER.FACEBOOK:\n try {\n window.MessengerExtensions.requestCloseBrowser(\n // biome-ignore lint/suspicious/noEmptyBlockStatements: success callback is empty\n () => {}, // success callback\n () => window.close() // error callback\n )\n } catch (_error) {\n window.close()\n }\n break\n case PROVIDER.WEBCHAT:\n try {\n await parent.postMessage('botonicCloseWebview', '*')\n } catch (error) {\n console.error('Failed to send close message to parent:', error)\n }\n break\n default:\n console.warn(`Unknown provider: ${provider}`)\n }\n }\n\n async close(options?: CloseWebviewOptions) {\n if (!this.state.session) {\n console.error('No session available for closing webview')\n return\n }\n\n let payload = options?.payload || null\n\n if (options?.path) {\n payload = `__PATH_PAYLOAD__${options.path}`\n }\n\n if (payload) {\n if (options?.params) {\n payload = `${payload}?${params2queryString(options.params)}`\n }\n\n try {\n const url = `${this.hubtypeApiUrl}/v1/bots/${this.state.session.bot.id}/send_postback/`\n const data = {\n payload,\n chat_id: this.state.session.user.id,\n }\n await axios.post(url, data)\n } catch (error) {\n console.error('Failed to send postback:', error)\n }\n }\n\n await this.closeWebviewForProvider(\n this.state.session.user.provider,\n this.state.session,\n payload\n )\n }\n\n render() {\n if (!this.state.session) {\n return null\n }\n\n const webviewRequestContext: WebviewRequestContextType = {\n params: this.state.params,\n session: this.state.session,\n getUserCountry: () => this.state.session.user.country,\n getUserLocale: () => this.state.session.user.locale,\n getSystemLocale: () => this.state.session.user.system_locale,\n closeWebview: this.close.bind(this),\n }\n\n return (\n <WebviewRequestContext.Provider value={webviewRequestContext}>\n {this.props.webviews.map((Webview, i) => (\n <Route\n key={`route-${i}-${Webview.name}`}\n path={`/${Webview.name}`}\n component={Webview}\n />\n ))}\n </WebviewRequestContext.Provider>\n )\n }\n}\n\nexport class WebviewApp {\n constructor({ webviews, locales }) {\n this.webviews = webviews\n this.locales = locales\n }\n\n render(dest) {\n const component = (\n <BrowserRouter>\n <App webviews={this.webviews} locales={this.locales} />\n </BrowserRouter>\n )\n const reactRoot = createRoot(dest)\n reactRoot.render(component)\n }\n}\n"],"names":["PROVIDER","params2queryString","axios","React","createRoot","BrowserRouter","Route","WebviewRequestContext","WebviewUrlParams","DEFAULT_HUBTYPE_API_URL","App","botId","chatId","hubtypeApiUrl","session","error","console","userId","url","response","urlContext","JSON","keysToExclude","Array","key","params","value","provider","_payload","user","location","window","_error","parent","options","payload","data","webviewRequestContext","Webview","i","props","URL","WebviewApp","dest","component","reactRoot","webviews","locales"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|