@patternfly/chatbot 2.2.1 → 6.3.0-prerelease.10
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/dist/cjs/AttachmentEdit/AttachmentEdit.d.ts +2 -0
- package/dist/cjs/AttachmentEdit/AttachmentEdit.js +2 -2
- package/dist/cjs/Chatbot/Chatbot.d.ts +2 -0
- package/dist/cjs/Chatbot/Chatbot.js +2 -2
- package/dist/cjs/Chatbot/Chatbot.test.js +4 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
- package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.d.ts +1 -0
- package/dist/cjs/ChatbotFooter/ChatbotFooter.js +2 -2
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeader.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.js +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.d.ts +3 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.js +2 -2
- package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/cjs/ChatbotModal/ChatbotModal.test.js +28 -0
- package/dist/cjs/ChatbotPopover/ChatbotPopover.js +1 -1
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
- package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
- package/dist/cjs/CodeModal/CodeModal.d.ts +2 -0
- package/dist/cjs/CodeModal/CodeModal.js +3 -3
- package/dist/cjs/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/cjs/CodeModal/CodeModal.test.js +15 -0
- package/dist/cjs/FileDetails/FileDetails.js +1 -1
- package/dist/cjs/Message/Message.d.ts +19 -1
- package/dist/cjs/Message/Message.js +58 -39
- package/dist/cjs/Message/Message.test.js +64 -0
- package/dist/cjs/Message/MessageInput.d.ts +18 -0
- package/dist/cjs/Message/MessageInput.js +34 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.d.ts +2 -0
- package/dist/cjs/Message/QuickResponse/QuickResponse.js +2 -2
- package/dist/cjs/Message/QuickStarts/QuickStartTile.d.ts +2 -0
- package/dist/cjs/Message/QuickStarts/QuickStartTile.js +2 -2
- package/dist/cjs/Message/UserFeedback/UserFeedback.js +4 -4
- package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +4 -0
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.js +4 -4
- package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
- package/dist/cjs/MessageBar/AttachButton.d.ts +1 -0
- package/dist/cjs/MessageBar/AttachButton.js +3 -3
- package/dist/cjs/MessageBar/AttachButton.test.js +4 -0
- package/dist/cjs/MessageBar/MessageBar.d.ts +5 -0
- package/dist/cjs/MessageBar/MessageBar.js +14 -13
- package/dist/cjs/MessageBar/MessageBar.test.js +13 -0
- package/dist/cjs/MessageBar/MicrophoneButton.d.ts +1 -0
- package/dist/cjs/MessageBar/MicrophoneButton.js +4 -4
- package/dist/cjs/MessageBar/SendButton.d.ts +1 -0
- package/dist/cjs/MessageBar/SendButton.js +3 -3
- package/dist/cjs/MessageBar/SendButton.test.js +4 -0
- package/dist/cjs/MessageBar/StopButton.d.ts +1 -0
- package/dist/cjs/MessageBar/StopButton.js +3 -3
- package/dist/cjs/MessageBar/StopButton.test.js +4 -0
- package/dist/cjs/MessageBox/MessageBox.d.ts +4 -0
- package/dist/cjs/MessageBox/MessageBox.js +21 -7
- package/dist/cjs/MessageBox/MessageBox.test.js +43 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.d.ts +2 -0
- package/dist/cjs/PreviewAttachment/PreviewAttachment.js +2 -2
- package/dist/cjs/Settings/SettingsForm.d.ts +2 -0
- package/dist/cjs/Settings/SettingsForm.js +2 -2
- package/dist/cjs/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/cjs/Settings/SettingsForm.test.js +12 -0
- package/dist/cjs/SourcesCard/SourcesCard.d.ts +7 -1
- package/dist/cjs/SourcesCard/SourcesCard.js +17 -11
- package/dist/cjs/SourcesCard/SourcesCard.test.js +25 -15
- package/dist/cjs/TermsOfUse/TermsOfUse.d.ts +2 -0
- package/dist/cjs/TermsOfUse/TermsOfUse.js +5 -5
- package/dist/cjs/tracking/console_tracking_provider.d.ts +4 -5
- package/dist/cjs/tracking/console_tracking_provider.js +22 -15
- package/dist/cjs/tracking/posthog_tracking_provider.d.ts +2 -2
- package/dist/cjs/tracking/posthog_tracking_provider.js +21 -12
- package/dist/cjs/tracking/segment_tracking_provider.d.ts +2 -2
- package/dist/cjs/tracking/segment_tracking_provider.js +21 -12
- package/dist/cjs/tracking/trackingProviderProxy.d.ts +1 -1
- package/dist/cjs/tracking/trackingProviderProxy.js +2 -2
- package/dist/cjs/tracking/tracking_api.d.ts +1 -1
- package/dist/cjs/tracking/tracking_registry.js +46 -12
- package/dist/cjs/tracking/tracking_spi.d.ts +15 -5
- package/dist/cjs/tracking/tracking_spi.js +9 -0
- package/dist/cjs/tracking/umami_tracking_provider.d.ts +6 -2
- package/dist/cjs/tracking/umami_tracking_provider.js +66 -22
- package/dist/css/main.css +225 -22
- package/dist/css/main.css.map +1 -1
- package/dist/esm/AttachmentEdit/AttachmentEdit.d.ts +2 -0
- package/dist/esm/AttachmentEdit/AttachmentEdit.js +2 -2
- package/dist/esm/Chatbot/Chatbot.d.ts +2 -0
- package/dist/esm/Chatbot/Chatbot.js +2 -2
- package/dist/esm/Chatbot/Chatbot.test.js +4 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +6 -0
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +9 -3
- package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +27 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.d.ts +1 -0
- package/dist/esm/ChatbotFooter/ChatbotFooter.js +2 -2
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +1 -1
- package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeader.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.d.ts +4 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.js +20 -6
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderMain.js +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.d.ts +3 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.js +20 -6
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.js +3 -3
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +5 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.d.ts +1 -0
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.js +2 -2
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +1 -1
- package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +5 -0
- package/dist/esm/ChatbotModal/ChatbotModal.d.ts +3 -0
- package/dist/esm/ChatbotModal/ChatbotModal.js +2 -2
- package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +1 -0
- package/dist/esm/ChatbotModal/ChatbotModal.test.js +23 -0
- package/dist/esm/ChatbotPopover/ChatbotPopover.js +1 -1
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.d.ts +1 -0
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.js +3 -3
- package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +4 -0
- package/dist/esm/CodeModal/CodeModal.d.ts +2 -0
- package/dist/esm/CodeModal/CodeModal.js +3 -3
- package/dist/esm/CodeModal/CodeModal.test.d.ts +1 -0
- package/dist/esm/CodeModal/CodeModal.test.js +10 -0
- package/dist/esm/FileDetails/FileDetails.js +1 -1
- package/dist/esm/Message/Message.d.ts +19 -1
- package/dist/esm/Message/Message.js +58 -39
- package/dist/esm/Message/Message.test.js +64 -0
- package/dist/esm/Message/MessageInput.d.ts +18 -0
- package/dist/esm/Message/MessageInput.js +29 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.d.ts +2 -0
- package/dist/esm/Message/QuickResponse/QuickResponse.js +2 -2
- package/dist/esm/Message/QuickStarts/QuickStartTile.d.ts +2 -0
- package/dist/esm/Message/QuickStarts/QuickStartTile.js +2 -2
- package/dist/esm/Message/UserFeedback/UserFeedback.js +4 -4
- package/dist/esm/Message/UserFeedback/UserFeedback.test.js +4 -0
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.js +4 -4
- package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +4 -0
- package/dist/esm/MessageBar/AttachButton.d.ts +1 -0
- package/dist/esm/MessageBar/AttachButton.js +3 -3
- package/dist/esm/MessageBar/AttachButton.test.js +4 -0
- package/dist/esm/MessageBar/MessageBar.d.ts +5 -0
- package/dist/esm/MessageBar/MessageBar.js +14 -13
- package/dist/esm/MessageBar/MessageBar.test.js +13 -0
- package/dist/esm/MessageBar/MicrophoneButton.d.ts +1 -0
- package/dist/esm/MessageBar/MicrophoneButton.js +4 -4
- package/dist/esm/MessageBar/SendButton.d.ts +1 -0
- package/dist/esm/MessageBar/SendButton.js +3 -3
- package/dist/esm/MessageBar/SendButton.test.js +4 -0
- package/dist/esm/MessageBar/StopButton.d.ts +1 -0
- package/dist/esm/MessageBar/StopButton.js +3 -3
- package/dist/esm/MessageBar/StopButton.test.js +4 -0
- package/dist/esm/MessageBox/MessageBox.d.ts +4 -0
- package/dist/esm/MessageBox/MessageBox.js +21 -7
- package/dist/esm/MessageBox/MessageBox.test.js +44 -1
- package/dist/esm/PreviewAttachment/PreviewAttachment.d.ts +2 -0
- package/dist/esm/PreviewAttachment/PreviewAttachment.js +2 -2
- package/dist/esm/Settings/SettingsForm.d.ts +2 -0
- package/dist/esm/Settings/SettingsForm.js +2 -2
- package/dist/esm/Settings/SettingsForm.test.d.ts +1 -1
- package/dist/esm/Settings/SettingsForm.test.js +12 -0
- package/dist/esm/SourcesCard/SourcesCard.d.ts +7 -1
- package/dist/esm/SourcesCard/SourcesCard.js +18 -12
- package/dist/esm/SourcesCard/SourcesCard.test.js +25 -15
- package/dist/esm/TermsOfUse/TermsOfUse.d.ts +2 -0
- package/dist/esm/TermsOfUse/TermsOfUse.js +5 -5
- package/dist/esm/tracking/console_tracking_provider.d.ts +4 -5
- package/dist/esm/tracking/console_tracking_provider.js +22 -15
- package/dist/esm/tracking/posthog_tracking_provider.d.ts +2 -2
- package/dist/esm/tracking/posthog_tracking_provider.js +21 -12
- package/dist/esm/tracking/segment_tracking_provider.d.ts +2 -2
- package/dist/esm/tracking/segment_tracking_provider.js +21 -12
- package/dist/esm/tracking/trackingProviderProxy.d.ts +1 -1
- package/dist/esm/tracking/trackingProviderProxy.js +2 -2
- package/dist/esm/tracking/tracking_api.d.ts +1 -1
- package/dist/esm/tracking/tracking_registry.js +46 -12
- package/dist/esm/tracking/tracking_spi.d.ts +15 -5
- package/dist/esm/tracking/tracking_spi.js +8 -1
- package/dist/esm/tracking/umami_tracking_provider.d.ts +6 -2
- package/dist/esm/tracking/umami_tracking_provider.js +66 -22
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Analytics/Analytics.md +18 -14
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/AttachmentEdit.tsx +10 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +74 -104
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/FileDetailsLabel.tsx +48 -37
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithFeedback.tsx +33 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickResponses.tsx +34 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +11 -0
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithSources.tsx +71 -13
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +3 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/PreviewAttachment.tsx +10 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +80 -104
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawer.tsx +44 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerResizable.tsx +13 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithActions.tsx +9 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithSelection.tsx +11 -2
- package/patternfly-docs/content/extensions/chatbot/examples/UI/CompactSettings.tsx +289 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/TermsOfUseCompact.tsx +136 -0
- package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +15 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.md +8 -1
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Chatbot.tsx +6 -3
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachment.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotAttachmentMenu.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotCompact.tsx +481 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/ChatbotInDrawer.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedChatbot.tsx +2 -0
- package/patternfly-docs/content/extensions/chatbot/examples/demos/EmbeddedComparisonChatbot.tsx +62 -57
- package/patternfly-docs/content/extensions/chatbot/examples/demos/Feedback.tsx +2 -0
- package/src/AttachmentEdit/AttachmentEdit.tsx +5 -1
- package/src/Chatbot/Chatbot.scss +7 -0
- package/src/Chatbot/Chatbot.test.tsx +9 -0
- package/src/Chatbot/Chatbot.tsx +4 -1
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +38 -3
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +71 -0
- package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +23 -2
- package/src/ChatbotFooter/ChatbotFooter.scss +5 -0
- package/src/ChatbotFooter/ChatbotFooter.test.tsx +10 -0
- package/src/ChatbotFooter/ChatbotFooter.tsx +3 -1
- package/src/ChatbotHeader/ChatbotHeader.scss +25 -0
- package/src/ChatbotHeader/ChatbotHeader.tsx +1 -1
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx +6 -0
- package/src/ChatbotHeader/ChatbotHeaderCloseButton.tsx +12 -6
- package/src/ChatbotHeader/ChatbotHeaderMain.tsx +3 -1
- package/src/ChatbotHeader/ChatbotHeaderMenu.test.tsx +8 -0
- package/src/ChatbotHeader/ChatbotHeaderMenu.tsx +10 -5
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx +6 -0
- package/src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx +5 -2
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx +10 -0
- package/src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx +4 -0
- package/src/ChatbotModal/ChatbotModal.scss +15 -4
- package/src/ChatbotModal/ChatbotModal.test.tsx +59 -0
- package/src/ChatbotModal/ChatbotModal.tsx +5 -1
- package/src/ChatbotPopover/ChatbotPopover.scss +9 -5
- package/src/ChatbotPopover/ChatbotPopover.tsx +1 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss +9 -1
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx +13 -0
- package/src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx +13 -2
- package/src/ChatbotWelcomePrompt/__snapshots__/ChatbotWelcomePrompt.test.tsx.snap +1 -1
- package/src/CodeModal/CodeModal.scss +11 -3
- package/src/CodeModal/CodeModal.test.tsx +24 -0
- package/src/CodeModal/CodeModal.tsx +6 -2
- package/src/FileDetails/FileDetails.tsx +1 -1
- package/src/FileDetails/__snapshots__/FileDetails.test.tsx.snap +1 -1
- package/src/FileDetailsLabel/__snapshots__/FileDetailsLabel.test.tsx.snap +1 -1
- package/src/Message/Message.scss +31 -0
- package/src/Message/Message.test.tsx +83 -0
- package/src/Message/Message.tsx +121 -56
- package/src/Message/MessageInput.tsx +59 -0
- package/src/Message/QuickResponse/QuickResponse.tsx +5 -1
- package/src/Message/QuickStarts/QuickStartTile.tsx +5 -1
- package/src/Message/TextMessage/TextMessage.scss +25 -0
- package/src/Message/UserFeedback/UserFeedback.scss +24 -3
- package/src/Message/UserFeedback/UserFeedback.test.tsx +13 -0
- package/src/Message/UserFeedback/UserFeedback.tsx +4 -2
- package/src/Message/UserFeedback/UserFeedbackComplete.test.tsx +4 -0
- package/src/Message/UserFeedback/UserFeedbackComplete.tsx +10 -2
- package/src/MessageBar/AttachButton.scss +10 -0
- package/src/MessageBar/AttachButton.test.tsx +4 -0
- package/src/MessageBar/AttachButton.tsx +5 -2
- package/src/MessageBar/MessageBar.scss +17 -0
- package/src/MessageBar/MessageBar.test.tsx +13 -0
- package/src/MessageBar/MessageBar.tsx +23 -8
- package/src/MessageBar/MicrophoneButton.scss +10 -0
- package/src/MessageBar/MicrophoneButton.tsx +6 -3
- package/src/MessageBar/SendButton.scss +10 -0
- package/src/MessageBar/SendButton.test.tsx +5 -1
- package/src/MessageBar/SendButton.tsx +5 -2
- package/src/MessageBar/StopButton.scss +10 -0
- package/src/MessageBar/StopButton.test.tsx +5 -1
- package/src/MessageBar/StopButton.tsx +5 -2
- package/src/MessageBox/MessageBox.scss +6 -0
- package/src/MessageBox/MessageBox.test.tsx +45 -1
- package/src/MessageBox/MessageBox.tsx +16 -6
- package/src/PreviewAttachment/PreviewAttachment.tsx +5 -1
- package/src/Settings/Settings.scss +11 -0
- package/src/Settings/SettingsForm.test.tsx +17 -0
- package/src/Settings/SettingsForm.tsx +12 -2
- package/src/SourcesCard/SourcesCard.scss +11 -7
- package/src/SourcesCard/SourcesCard.test.tsx +30 -22
- package/src/SourcesCard/SourcesCard.tsx +56 -13
- package/src/TermsOfUse/TermsOfUse.scss +20 -0
- package/src/TermsOfUse/TermsOfUse.tsx +9 -4
- package/src/tracking/console_tracking_provider.ts +21 -17
- package/src/tracking/posthog_tracking_provider.ts +20 -13
- package/src/tracking/segment_tracking_provider.ts +20 -13
- package/src/tracking/trackingProviderProxy.ts +2 -2
- package/src/tracking/tracking_api.ts +1 -1
- package/src/tracking/tracking_registry.ts +46 -13
- package/src/tracking/tracking_spi.ts +18 -7
- package/src/tracking/umami_tracking_provider.ts +76 -20
- package/src/SourcesCard/__snapshots__/SourcesCard.test.tsx.snap +0 -34
@@ -1,11 +1,14 @@
|
|
1
1
|
import { posthog } from 'posthog-js';
|
2
2
|
export class PosthogTrackingProvider {
|
3
|
-
|
4
|
-
|
3
|
+
constructor() {
|
4
|
+
this.verbose = false;
|
5
5
|
}
|
6
6
|
initialize(props) {
|
7
|
-
|
8
|
-
|
7
|
+
this.verbose = props.verbose;
|
8
|
+
if (this.verbose) {
|
9
|
+
// eslint-disable-next-line no-console
|
10
|
+
console.log('PosthogProvider initialize');
|
11
|
+
}
|
9
12
|
const posthogKey = props.posthogKey;
|
10
13
|
posthog.init(posthogKey, {
|
11
14
|
// eslint-disable-next-line camelcase
|
@@ -14,20 +17,26 @@ export class PosthogTrackingProvider {
|
|
14
17
|
person_profiles: 'identified_only' // or 'always' to create profiles for anonymous users as well
|
15
18
|
});
|
16
19
|
}
|
17
|
-
identify(userID) {
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
identify(userID, userProperties = {}) {
|
21
|
+
if (this.verbose) {
|
22
|
+
// eslint-disable-next-line no-console
|
23
|
+
console.log('PosthogProvider userID: ' + userID);
|
24
|
+
}
|
25
|
+
posthog.identify(userID, userProperties);
|
21
26
|
}
|
22
27
|
trackPageView(url) {
|
23
|
-
|
24
|
-
|
28
|
+
if (this.verbose) {
|
29
|
+
// eslint-disable-next-line no-console
|
30
|
+
console.log('PostHogProvider url ', url);
|
31
|
+
}
|
25
32
|
// TODO posthog seems to record that automatically.
|
26
33
|
// How to not clash with this here? Just leave as no-op?
|
27
34
|
}
|
28
35
|
trackSingleItem(item, properties) {
|
29
|
-
|
30
|
-
|
36
|
+
if (this.verbose) {
|
37
|
+
// eslint-disable-next-line no-console
|
38
|
+
console.log('PosthogProvider: trackSingleItem ' + item, properties);
|
39
|
+
}
|
31
40
|
posthog.capture(item, { properties });
|
32
41
|
}
|
33
42
|
}
|
@@ -2,9 +2,9 @@ import { TrackingApi, TrackingEventProperties } from './tracking_api';
|
|
2
2
|
import { InitProps, TrackingSpi } from './tracking_spi';
|
3
3
|
export declare class SegmentTrackingProvider implements TrackingSpi, TrackingApi {
|
4
4
|
private analytics;
|
5
|
-
|
5
|
+
private verbose;
|
6
6
|
initialize(props: InitProps): void;
|
7
|
-
identify(userID: string): void;
|
7
|
+
identify(userID: string, userProperties?: TrackingEventProperties): void;
|
8
8
|
trackPageView(url: string | undefined): void;
|
9
9
|
trackSingleItem(item: string, properties?: TrackingEventProperties): void;
|
10
10
|
}
|
@@ -1,11 +1,14 @@
|
|
1
1
|
import { AnalyticsBrowser } from '@segment/analytics-next';
|
2
2
|
export class SegmentTrackingProvider {
|
3
|
-
|
4
|
-
|
3
|
+
constructor() {
|
4
|
+
this.verbose = false;
|
5
5
|
}
|
6
6
|
initialize(props) {
|
7
|
-
|
8
|
-
|
7
|
+
this.verbose = props.verbose;
|
8
|
+
if (this.verbose) {
|
9
|
+
// eslint-disable-next-line no-console
|
10
|
+
console.log('SegmentProvider initialize');
|
11
|
+
}
|
9
12
|
const segmentKey = props.segmentKey;
|
10
13
|
// We need to create an object here, as ts lint is unhappy otherwise
|
11
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
@@ -17,16 +20,20 @@ export class SegmentTrackingProvider {
|
|
17
20
|
integrations: Object.assign({}, integrations)
|
18
21
|
});
|
19
22
|
}
|
20
|
-
identify(userID) {
|
21
|
-
|
22
|
-
|
23
|
+
identify(userID, userProperties = {}) {
|
24
|
+
if (this.verbose) {
|
25
|
+
// eslint-disable-next-line no-console
|
26
|
+
console.log('SegmentProvider userID: ' + userID);
|
27
|
+
}
|
23
28
|
if (this.analytics) {
|
24
|
-
this.analytics.identify(userID);
|
29
|
+
this.analytics.identify(userID, userProperties);
|
25
30
|
}
|
26
31
|
}
|
27
32
|
trackPageView(url) {
|
28
|
-
|
29
|
-
|
33
|
+
if (this.verbose) {
|
34
|
+
// eslint-disable-next-line no-console
|
35
|
+
console.log('SegmentProvider url ', url);
|
36
|
+
}
|
30
37
|
if (this.analytics) {
|
31
38
|
if (url) {
|
32
39
|
this.analytics.page(url);
|
@@ -37,8 +44,10 @@ export class SegmentTrackingProvider {
|
|
37
44
|
}
|
38
45
|
}
|
39
46
|
trackSingleItem(item, properties) {
|
40
|
-
|
41
|
-
|
47
|
+
if (this.verbose) {
|
48
|
+
// eslint-disable-next-line no-console
|
49
|
+
console.log('SegmentProvider: trackSingleItem ' + item, properties);
|
50
|
+
}
|
42
51
|
if (this.analytics) {
|
43
52
|
this.analytics.track(item, { properties });
|
44
53
|
}
|
@@ -2,7 +2,7 @@ import { TrackingApi, TrackingEventProperties } from './tracking_api';
|
|
2
2
|
declare class TrackingProviderProxy implements TrackingApi {
|
3
3
|
providers: TrackingApi[];
|
4
4
|
constructor(providers: TrackingApi[]);
|
5
|
-
identify(userID: string): void;
|
5
|
+
identify(userID: string, userProperties?: TrackingEventProperties): void;
|
6
6
|
trackSingleItem(eventName: string, properties?: TrackingEventProperties): void;
|
7
7
|
trackPageView(url: string | undefined): void;
|
8
8
|
}
|
@@ -3,9 +3,9 @@ class TrackingProviderProxy {
|
|
3
3
|
this.providers = [];
|
4
4
|
this.providers = providers;
|
5
5
|
}
|
6
|
-
identify(userID) {
|
6
|
+
identify(userID, userProperties = {}) {
|
7
7
|
for (const provider of this.providers) {
|
8
|
-
provider.identify(userID);
|
8
|
+
provider.identify(userID, userProperties);
|
9
9
|
}
|
10
10
|
}
|
11
11
|
trackSingleItem(eventName, properties) {
|
@@ -2,7 +2,7 @@ export interface TrackingEventProperties {
|
|
2
2
|
[key: string]: string | number | boolean | undefined;
|
3
3
|
}
|
4
4
|
export interface TrackingApi {
|
5
|
-
identify: (userID: string) => void;
|
5
|
+
identify: (userID: string, userProperties: TrackingEventProperties) => void;
|
6
6
|
trackPageView: (url: string | undefined) => void;
|
7
7
|
trackSingleItem: (eventName: string, properties: TrackingEventProperties | undefined) => void;
|
8
8
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Providers } from './tracking_spi';
|
1
2
|
import TrackingProviderProxy from './trackingProviderProxy';
|
2
3
|
import { ConsoleTrackingProvider } from './console_tracking_provider';
|
3
4
|
import { SegmentTrackingProvider } from './segment_tracking_provider';
|
@@ -5,22 +6,55 @@ import { PosthogTrackingProvider } from './posthog_tracking_provider';
|
|
5
6
|
import { UmamiTrackingProvider } from './umami_tracking_provider';
|
6
7
|
export const getTrackingProviders = (initProps) => {
|
7
8
|
const providers = [];
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
if (initProps.activeProviders) {
|
10
|
+
let tmpProps = initProps.activeProviders;
|
11
|
+
// Theoretically we get an array of provider names, but it could also be a CSV string...
|
12
|
+
if (!Array.isArray(initProps.activeProviders)) {
|
13
|
+
const tmpString = initProps.activeProviders;
|
14
|
+
if (tmpString && tmpString.indexOf(',') !== -1) {
|
15
|
+
tmpProps = tmpString.split(',');
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
tmpProps = [tmpString];
|
19
|
+
}
|
20
|
+
}
|
21
|
+
tmpProps.forEach((provider) => {
|
22
|
+
switch (Providers[provider]) {
|
23
|
+
case Providers.Segment:
|
24
|
+
providers.push(new SegmentTrackingProvider());
|
25
|
+
break;
|
26
|
+
case Providers.Umami:
|
27
|
+
providers.push(new UmamiTrackingProvider());
|
28
|
+
break;
|
29
|
+
case Providers.Posthog:
|
30
|
+
providers.push(new PosthogTrackingProvider());
|
31
|
+
break;
|
32
|
+
case Providers.Console:
|
33
|
+
providers.push(new ConsoleTrackingProvider());
|
34
|
+
break;
|
35
|
+
case Providers.None: // Do nothing, just a placeholder
|
36
|
+
break;
|
37
|
+
default:
|
38
|
+
if (providers.length > 1) {
|
39
|
+
if (initProps.verbose) {
|
40
|
+
// eslint-disable-next-line no-console
|
41
|
+
console.error("Unknown provider '" + provider);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
break;
|
45
|
+
}
|
46
|
+
});
|
47
|
+
}
|
12
48
|
// Initialize them
|
13
|
-
const enabledProviders = [];
|
14
49
|
for (const provider of providers) {
|
15
|
-
|
16
|
-
if (Object.keys(initProps).indexOf(key) > -1) {
|
50
|
+
try {
|
17
51
|
provider.initialize(initProps);
|
18
|
-
|
52
|
+
}
|
53
|
+
catch (e) {
|
54
|
+
// eslint-disable-next-line no-console
|
55
|
+
console.error(e);
|
19
56
|
}
|
20
57
|
}
|
21
|
-
|
22
|
-
const consoleTrackingProvider = new ConsoleTrackingProvider();
|
23
|
-
enabledProviders.push(consoleTrackingProvider); // TODO noop- provider?
|
24
|
-
return new TrackingProviderProxy(enabledProviders);
|
58
|
+
return new TrackingProviderProxy(providers);
|
25
59
|
};
|
26
60
|
export default getTrackingProviders;
|
@@ -1,9 +1,19 @@
|
|
1
|
-
import { TrackingApi
|
2
|
-
export
|
3
|
-
|
1
|
+
import { TrackingApi } from './tracking_api';
|
2
|
+
export declare enum Providers {
|
3
|
+
None = 0,
|
4
|
+
Segment = 1,
|
5
|
+
Umami = 2,
|
6
|
+
Posthog = 3,
|
7
|
+
Console = 4
|
8
|
+
}
|
9
|
+
export type ProviderAsString = keyof typeof Providers;
|
10
|
+
export interface BaseProps {
|
11
|
+
verbose: boolean;
|
12
|
+
activeProviders: [ProviderAsString];
|
4
13
|
}
|
14
|
+
export type InitProps = {
|
15
|
+
[key: string]: string | number | boolean;
|
16
|
+
} & BaseProps;
|
5
17
|
export interface TrackingSpi extends TrackingApi {
|
6
|
-
getKey: () => string;
|
7
18
|
initialize: (props: InitProps) => void;
|
8
|
-
trackSingleItem: (item: string, properties?: TrackingEventProperties) => void;
|
9
19
|
}
|
@@ -1 +1,8 @@
|
|
1
|
-
export
|
1
|
+
export var Providers;
|
2
|
+
(function (Providers) {
|
3
|
+
Providers[Providers["None"] = 0] = "None";
|
4
|
+
Providers[Providers["Segment"] = 1] = "Segment";
|
5
|
+
Providers[Providers["Umami"] = 2] = "Umami";
|
6
|
+
Providers[Providers["Posthog"] = 3] = "Posthog";
|
7
|
+
Providers[Providers["Console"] = 4] = "Console";
|
8
|
+
})(Providers || (Providers = {}));
|
@@ -6,9 +6,13 @@ declare global {
|
|
6
6
|
}
|
7
7
|
}
|
8
8
|
export declare class UmamiTrackingProvider implements TrackingSpi, TrackingApi {
|
9
|
-
|
9
|
+
private verbose;
|
10
|
+
private websiteId;
|
11
|
+
private queue;
|
10
12
|
initialize(props: InitProps): void;
|
11
|
-
identify(userID: string): void;
|
13
|
+
identify(userID: string, userProperties?: TrackingEventProperties): void;
|
12
14
|
trackPageView(url: string | undefined): void;
|
13
15
|
trackSingleItem(item: string, properties?: TrackingEventProperties): void;
|
16
|
+
flushQueue(): void;
|
17
|
+
log(msg: string): void;
|
14
18
|
}
|
@@ -1,40 +1,84 @@
|
|
1
1
|
export class UmamiTrackingProvider {
|
2
|
-
|
3
|
-
|
2
|
+
constructor() {
|
3
|
+
this.verbose = false;
|
4
|
+
this.queue = [];
|
4
5
|
}
|
5
6
|
initialize(props) {
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
this.verbose = props.verbose;
|
8
|
+
this.log('UmamiProvider initialize');
|
9
|
+
this.websiteId = props.umamiKey;
|
9
10
|
const hostUrl = props.umamiHostUrl;
|
10
11
|
const script = document.createElement('script');
|
11
12
|
script.src = hostUrl + '/script.js';
|
12
13
|
script.async = true;
|
13
14
|
script.defer = true;
|
14
15
|
// Configure Umami properties
|
15
|
-
script.setAttribute('data-website-id',
|
16
|
-
script.setAttribute('data-
|
16
|
+
script.setAttribute('data-website-id', this.websiteId);
|
17
|
+
script.setAttribute('data-host-url', hostUrl);
|
17
18
|
script.setAttribute('data-auto-track', 'false');
|
18
|
-
script.setAttribute('data-
|
19
|
-
|
19
|
+
script.setAttribute('data-exclude-search', 'false');
|
20
|
+
// Now get from config, which may override some of the above.
|
21
|
+
const UMAMI_PREFIX = 'umami-';
|
22
|
+
for (const prop in props) {
|
23
|
+
if (prop.startsWith(UMAMI_PREFIX)) {
|
24
|
+
const att = 'data-' + prop.substring(UMAMI_PREFIX.length);
|
25
|
+
const val = props[prop];
|
26
|
+
script.setAttribute(att, String(val));
|
27
|
+
}
|
28
|
+
}
|
29
|
+
script.onload = () => {
|
30
|
+
this.log('UmamiProvider script loaded');
|
31
|
+
this.flushQueue();
|
32
|
+
};
|
20
33
|
document.body.appendChild(script);
|
21
34
|
}
|
22
|
-
identify(userID) {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
35
|
+
identify(userID, userProperties = {}) {
|
36
|
+
this.log('UmamiProvider userID: ' + userID + ' => ' + JSON.stringify(userProperties));
|
37
|
+
if (window.umami) {
|
38
|
+
window.umami.identify({ userID, userProperties });
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
this.queue.push({ what: 'i', name: userID, payload: userProperties });
|
42
|
+
}
|
27
43
|
}
|
28
44
|
trackPageView(url) {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
45
|
+
this.log('UmamiProvider url ' + url);
|
46
|
+
if (window.umami) {
|
47
|
+
window.umami.track({ url, website: this.websiteId });
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
this.queue.push({ what: 'p', name: String(url) });
|
51
|
+
}
|
33
52
|
}
|
34
53
|
trackSingleItem(item, properties) {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
54
|
+
this.log('UmamiProvider: trackSingleItem ' + item + JSON.stringify(properties));
|
55
|
+
if (window.umami) {
|
56
|
+
window.umami.track(item, properties);
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
this.queue.push({ what: 't', name: item, payload: properties });
|
60
|
+
}
|
61
|
+
}
|
62
|
+
flushQueue() {
|
63
|
+
for (const item of this.queue) {
|
64
|
+
this.log('Queue flush ' + JSON.stringify(item));
|
65
|
+
switch (item.what) {
|
66
|
+
case 'i':
|
67
|
+
this.identify(item.name, item.payload);
|
68
|
+
break;
|
69
|
+
case 't':
|
70
|
+
this.trackSingleItem(item.name, item.payload);
|
71
|
+
break;
|
72
|
+
case 'p':
|
73
|
+
this.trackPageView(item.name);
|
74
|
+
break;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
log(msg) {
|
79
|
+
if (this.verbose) {
|
80
|
+
// eslint-disable-next-line no-console
|
81
|
+
console.debug('UmamiProvider: ', msg);
|
82
|
+
}
|
39
83
|
}
|
40
84
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.test.tsx","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.test.tsx","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.test.tsx","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.test.tsx","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/EmptyState.tsx","../src/ChatbotConversationHistoryNav/LoadingState.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.test.tsx","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFooternote.test.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.test.tsx","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.test.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.tsx","../src/ChatbotHeader/ChatbotHeaderMain.test.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.test.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.test.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/Compare/Compare.test.tsx","../src/Compare/Compare.tsx","../src/Compare/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ErrorMessage/ErrorMessage.tsx","../src/Message/ImageMessage/ImageMessage.tsx","../src/Message/LinkMessage/LinkMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/QuickResponse/QuickResponse.tsx","../src/Message/QuickStarts/FallbackImg.tsx","../src/Message/QuickStarts/QuickStartTile.tsx","../src/Message/QuickStarts/QuickStartTileDescription.test.tsx","../src/Message/QuickStarts/QuickStartTileDescription.tsx","../src/Message/QuickStarts/QuickStartTileHeader.tsx","../src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts","../src/Message/QuickStarts/monitor-sampleapp-quickstart.ts","../src/Message/QuickStarts/types.ts","../src/Message/TableMessage/TableMessage.tsx","../src/Message/TableMessage/TbodyMessage.tsx","../src/Message/TableMessage/TdMessage.tsx","../src/Message/TableMessage/ThMessage.tsx","../src/Message/TableMessage/TheadMessage.tsx","../src/Message/TableMessage/TrMessage.tsx","../src/Message/TextMessage/TextMessage.tsx","../src/Message/UserFeedback/CloseButton.tsx","../src/Message/UserFeedback/UserFeedback.test.tsx","../src/Message/UserFeedback/UserFeedback.tsx","../src/Message/UserFeedback/UserFeedbackComplete.test.tsx","../src/Message/UserFeedback/UserFeedbackComplete.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.test.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.test.tsx","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.test.tsx","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/Settings/SettingsForm.test.tsx","../src/Settings/SettingsForm.tsx","../src/Settings/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts","../src/__mocks__/rehype-external-links.ts","../src/__mocks__/rehype-sanitize.ts","../src/__mocks__/rehype-unwrap-images.tsx","../src/tracking/console_tracking_provider.ts","../src/tracking/index.ts","../src/tracking/posthog_tracking_provider.ts","../src/tracking/segment_tracking_provider.ts","../src/tracking/trackingProviderProxy.ts","../src/tracking/tracking_api.ts","../src/tracking/tracking_registry.ts","../src/tracking/tracking_spi.ts","../src/tracking/umami_tracking_provider.ts"],"version":"5.6.3"}
|
1
|
+
{"root":["../src/index.ts","../src/AttachMenu/AttachMenu.tsx","../src/AttachMenu/index.ts","../src/AttachmentEdit/AttachmentEdit.test.tsx","../src/AttachmentEdit/AttachmentEdit.tsx","../src/AttachmentEdit/index.ts","../src/Chatbot/Chatbot.test.tsx","../src/Chatbot/Chatbot.tsx","../src/Chatbot/index.ts","../src/ChatbotAlert/ChatbotAlert.test.tsx","../src/ChatbotAlert/ChatbotAlert.tsx","../src/ChatbotAlert/index.ts","../src/ChatbotContent/ChatbotContent.test.tsx","../src/ChatbotContent/ChatbotContent.tsx","../src/ChatbotContent/index.ts","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx","../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx","../src/ChatbotConversationHistoryNav/EmptyState.tsx","../src/ChatbotConversationHistoryNav/LoadingState.tsx","../src/ChatbotConversationHistoryNav/index.ts","../src/ChatbotFooter/ChatbotFooter.test.tsx","../src/ChatbotFooter/ChatbotFooter.tsx","../src/ChatbotFooter/ChatbotFooternote.test.tsx","../src/ChatbotFooter/ChatbotFootnote.tsx","../src/ChatbotFooter/index.ts","../src/ChatbotHeader/ChatbotHeader.test.tsx","../src/ChatbotHeader/ChatbotHeader.tsx","../src/ChatbotHeader/ChatbotHeaderActions.test.tsx","../src/ChatbotHeader/ChatbotHeaderActions.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.test.tsx","../src/ChatbotHeader/ChatbotHeaderCloseButton.tsx","../src/ChatbotHeader/ChatbotHeaderMain.test.tsx","../src/ChatbotHeader/ChatbotHeaderMain.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.test.tsx","../src/ChatbotHeader/ChatbotHeaderMenu.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderOptionsDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.tsx","../src/ChatbotHeader/ChatbotHeaderSelectorDropdown.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.test.tsx","../src/ChatbotHeader/ChatbotHeaderTitle.tsx","../src/ChatbotHeader/index.ts","../src/ChatbotModal/ChatbotModal.test.tsx","../src/ChatbotModal/ChatbotModal.tsx","../src/ChatbotModal/index.ts","../src/ChatbotPopover/ChatbotPopover.tsx","../src/ChatbotPopover/index.ts","../src/ChatbotToggle/ChatbotToggle.test.tsx","../src/ChatbotToggle/ChatbotToggle.tsx","../src/ChatbotToggle/index.ts","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.tsx","../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.tsx","../src/ChatbotWelcomePrompt/index.ts","../src/CodeModal/CodeModal.test.tsx","../src/CodeModal/CodeModal.tsx","../src/CodeModal/index.ts","../src/Compare/Compare.test.tsx","../src/Compare/Compare.tsx","../src/Compare/index.ts","../src/FileDetails/FileDetails.test.tsx","../src/FileDetails/FileDetails.tsx","../src/FileDetails/index.ts","../src/FileDetailsLabel/FileDetailsLabel.test.tsx","../src/FileDetailsLabel/FileDetailsLabel.tsx","../src/FileDetailsLabel/index.ts","../src/FileDropZone/FileDropZone.test.tsx","../src/FileDropZone/FileDropZone.tsx","../src/FileDropZone/index.ts","../src/LoadingMessage/LoadingMessage.test.tsx","../src/LoadingMessage/LoadingMessage.tsx","../src/LoadingMessage/index.ts","../src/Message/Message.test.tsx","../src/Message/Message.tsx","../src/Message/MessageInput.tsx","../src/Message/MessageLoading.tsx","../src/Message/index.ts","../src/Message/CodeBlockMessage/CodeBlockMessage.tsx","../src/Message/ErrorMessage/ErrorMessage.tsx","../src/Message/ImageMessage/ImageMessage.tsx","../src/Message/LinkMessage/LinkMessage.tsx","../src/Message/ListMessage/ListItemMessage.tsx","../src/Message/ListMessage/OrderedListMessage.tsx","../src/Message/ListMessage/UnorderedListMessage.tsx","../src/Message/QuickResponse/QuickResponse.tsx","../src/Message/QuickStarts/FallbackImg.tsx","../src/Message/QuickStarts/QuickStartTile.tsx","../src/Message/QuickStarts/QuickStartTileDescription.test.tsx","../src/Message/QuickStarts/QuickStartTileDescription.tsx","../src/Message/QuickStarts/QuickStartTileHeader.tsx","../src/Message/QuickStarts/monitor-sampleapp-quickstart-with-image.ts","../src/Message/QuickStarts/monitor-sampleapp-quickstart.ts","../src/Message/QuickStarts/types.ts","../src/Message/TableMessage/TableMessage.tsx","../src/Message/TableMessage/TbodyMessage.tsx","../src/Message/TableMessage/TdMessage.tsx","../src/Message/TableMessage/ThMessage.tsx","../src/Message/TableMessage/TheadMessage.tsx","../src/Message/TableMessage/TrMessage.tsx","../src/Message/TextMessage/TextMessage.tsx","../src/Message/UserFeedback/CloseButton.tsx","../src/Message/UserFeedback/UserFeedback.test.tsx","../src/Message/UserFeedback/UserFeedback.tsx","../src/Message/UserFeedback/UserFeedbackComplete.test.tsx","../src/Message/UserFeedback/UserFeedbackComplete.tsx","../src/MessageBar/AttachButton.test.tsx","../src/MessageBar/AttachButton.tsx","../src/MessageBar/MessageBar.test.tsx","../src/MessageBar/MessageBar.tsx","../src/MessageBar/MicrophoneButton.tsx","../src/MessageBar/SendButton.test.tsx","../src/MessageBar/SendButton.tsx","../src/MessageBar/StopButton.test.tsx","../src/MessageBar/StopButton.tsx","../src/MessageBar/index.ts","../src/MessageBox/JumpButton.test.tsx","../src/MessageBox/JumpButton.tsx","../src/MessageBox/MessageBox.test.tsx","../src/MessageBox/MessageBox.tsx","../src/MessageBox/index.ts","../src/PreviewAttachment/PreviewAttachment.test.tsx","../src/PreviewAttachment/PreviewAttachment.tsx","../src/PreviewAttachment/index.ts","../src/ResponseActions/ResponseActionButton.test.tsx","../src/ResponseActions/ResponseActionButton.tsx","../src/ResponseActions/ResponseActions.test.tsx","../src/ResponseActions/ResponseActions.tsx","../src/ResponseActions/index.ts","../src/Settings/SettingsForm.test.tsx","../src/Settings/SettingsForm.tsx","../src/Settings/index.ts","../src/SourceDetailsMenuItem/SourceDetailsMenuItem.tsx","../src/SourceDetailsMenuItem/index.ts","../src/SourcesCard/SourcesCard.test.tsx","../src/SourcesCard/SourcesCard.tsx","../src/SourcesCard/index.ts","../src/TermsOfUse/TermsOfUse.test.tsx","../src/TermsOfUse/TermsOfUse.tsx","../src/TermsOfUse/index.ts","../src/__mocks__/rehype-external-links.ts","../src/__mocks__/rehype-sanitize.ts","../src/__mocks__/rehype-unwrap-images.tsx","../src/tracking/console_tracking_provider.ts","../src/tracking/index.ts","../src/tracking/posthog_tracking_provider.ts","../src/tracking/segment_tracking_provider.ts","../src/tracking/trackingProviderProxy.ts","../src/tracking/tracking_api.ts","../src/tracking/tracking_registry.ts","../src/tracking/tracking_spi.ts","../src/tracking/umami_tracking_provider.ts"],"version":"5.6.3"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@patternfly/chatbot",
|
3
|
-
"version": "
|
3
|
+
"version": "6.3.0-prerelease.10",
|
4
4
|
"description": "This library provides React components based on PatternFly 6 that can be used to build chatbots.",
|
5
5
|
"main": "dist/cjs/index.js",
|
6
6
|
"module": "dist/esm/index.js",
|
@@ -36,10 +36,12 @@ Note that user code only interacts with:
|
|
36
36
|
|
37
37
|
### Setup
|
38
38
|
|
39
|
-
1. Before you can use the `trackingAPI`, you must first supply the API keys of the respective providers.
|
39
|
+
1. Before you can use the `trackingAPI`, you must first supply the API keys of the respective providers. To enable a provider, it must be added to the `activeProviders` property:
|
40
40
|
|
41
41
|
```nolive
|
42
42
|
const initProps: InitProps = {
|
43
|
+
verbose: false,
|
44
|
+
activeProviders: ['Segment', 'Umami', 'Posthog', 'Console' ],
|
43
45
|
segmentKey: 'TODO-key', // TODO add your key here
|
44
46
|
// segmentCdn: 'https://my.org/cdn', // Set up segment cdn (optional)
|
45
47
|
// segmentIntegrations: { // Provide Segment integrations (optional)
|
@@ -50,13 +52,15 @@ const initProps: InitProps = {
|
|
50
52
|
},
|
51
53
|
|
52
54
|
posthogKey: 'TODO-key',
|
53
|
-
umamiKey: 'TODO-key',
|
55
|
+
umamiKey: 'TODO-umami-key',
|
54
56
|
umamiHostUrl: 'http://localhost:3000', // TODO where is your JS provider?
|
57
|
+
'umami-data-domains': 'TODO umami data domain',
|
55
58
|
something: 'test',
|
56
|
-
console: 'true' // Console provider
|
57
59
|
};
|
58
60
|
```
|
59
61
|
|
62
|
+
- **Note:** To enable output debugging via the web-browser console, set the `verbose` key to `true`. By default, this is set to `false`.
|
63
|
+
|
60
64
|
1. Once this is done, you can create an instance of the `trackingAPI` and start sending events.
|
61
65
|
|
62
66
|
```nolive
|
@@ -76,22 +80,20 @@ trackingAPI.trackSingleItem("MyEvent", { response: 'Good response' })
|
|
76
80
|
|
77
81
|
#### Tracking providers
|
78
82
|
|
79
|
-
Only providers with a matching
|
83
|
+
Only providers with a matching entry in the `InitProps.activeProviders` array will be started and used.
|
84
|
+
|
85
|
+
Possible values are:
|
86
|
+
* Umami
|
87
|
+
* Posthog
|
88
|
+
* Segment
|
89
|
+
* Console
|
80
90
|
|
81
|
-
```nolive
|
82
|
-
const initProps: InitProps = {
|
83
|
-
segmentKey: 'TODO-key', // TODO add your key here
|
84
|
-
posthogKey: 'TODO-key',
|
85
|
-
umamiKey: 'TODO-key',
|
86
|
-
umamiHostUrl: 'http://localhost:3000', // TODO where is your JS provider?
|
87
|
-
console: true
|
88
|
-
```
|
89
91
|
|
90
92
|
##### Modifying providers
|
91
93
|
|
92
94
|
If you know upfront that you only want to use 1 of the supported providers, you can modify `getTrackingProviders()` and remove all other providers in the providers array.
|
93
95
|
|
94
|
-
When using the providers you need to add additional dependencies to your package.json file:
|
96
|
+
When using the providers, you might need to add additional dependencies to your package.json file:
|
95
97
|
|
96
98
|
```nolive
|
97
99
|
"dependencies": {
|
@@ -99,12 +101,14 @@ When using the providers you need to add additional dependencies to your package
|
|
99
101
|
"posthog-js": "^1.194.4"
|
100
102
|
```
|
101
103
|
|
104
|
+
Depending on your local setup, this might not be necessary. For example, if you pull the ChatBot codebase as a dependency into your project, you don't need to add it as an additional dependency in your package.json.
|
105
|
+
|
102
106
|
##### Adding providers
|
103
107
|
|
104
108
|
To add another analytics provider, you need to implement 2 interfaces, `TrackingSpi` and `trackingApi`.
|
105
109
|
|
106
110
|
1. It is easiest to start by copying the `ConsoleTrackingProvider`
|
107
|
-
1.
|
111
|
+
1. Add an entry for your new provider to the `Providers` enum in `tracking_spi.ts`
|
108
112
|
1. Once you are happy enough with the implementation, add it to the array of providers in `getTrackingProviders()`
|
109
113
|
|
110
114
|
### Page flow tracking
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { Button } from '@patternfly/react-core';
|
2
|
+
import { Button, Checkbox } from '@patternfly/react-core';
|
3
3
|
import { AttachmentEdit } from '@patternfly/chatbot/dist/dynamic/AttachmentEdit';
|
4
4
|
|
5
5
|
export const AttachmentEditModalExample: React.FunctionComponent = () => {
|
6
6
|
const [isModalOpen, setIsModalOpen] = React.useState(false);
|
7
|
+
const [isCompact, setIsCompact] = React.useState(false);
|
7
8
|
|
8
9
|
const handleModalToggle = (_event: React.MouseEvent | MouseEvent | KeyboardEvent) => {
|
9
10
|
setIsModalOpen(!isModalOpen);
|
@@ -11,6 +12,13 @@ export const AttachmentEditModalExample: React.FunctionComponent = () => {
|
|
11
12
|
|
12
13
|
return (
|
13
14
|
<>
|
15
|
+
<Checkbox
|
16
|
+
label="Show compact version"
|
17
|
+
isChecked={isCompact}
|
18
|
+
onChange={() => setIsCompact(!isCompact)}
|
19
|
+
id="modal-compact-edit"
|
20
|
+
name="modal-compact-edit"
|
21
|
+
></Checkbox>
|
14
22
|
<Button onClick={handleModalToggle}>Launch modal</Button>
|
15
23
|
<AttachmentEdit
|
16
24
|
code="I am a code snippet"
|
@@ -20,6 +28,7 @@ export const AttachmentEditModalExample: React.FunctionComponent = () => {
|
|
20
28
|
onCancel={() => null}
|
21
29
|
// eslint-disable-next-line no-console
|
22
30
|
onSave={(_event, code) => console.log(`The new code is "${code}"`)}
|
31
|
+
isCompact={isCompact}
|
23
32
|
/>
|
24
33
|
</>
|
25
34
|
);
|