@memberjunction/ng-conversations 6.1.4 → 6.2.0-edge.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -3
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +19 -3
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js +39 -7
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts +74 -6
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.js +111 -21
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.d.ts +31 -5
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js +71 -15
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +65 -9
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +169 -57
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.d.ts +77 -11
- package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.js +181 -47
- package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +129 -19
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +350 -116
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts +60 -8
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js +130 -46
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts +63 -3
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js +113 -19
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts +54 -8
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +130 -46
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts +70 -10
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +175 -53
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts +89 -9
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +220 -70
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts +89 -11
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +154 -40
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +390 -38
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +951 -367
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.d.ts +213 -18
- package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.js +388 -44
- package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +12 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.js +26 -4
- package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +1090 -123
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +2407 -731
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +139 -19
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +296 -59
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.d.ts +579 -78
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +2322 -823
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts +40 -4
- package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.js +72 -14
- package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.d.ts +57 -11
- package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.js +128 -16
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts +68 -10
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/rating-dialog.component.js +151 -27
- package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -1
- package/dist/lib/components/export/export-modal.component.d.ts +84 -10
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
- package/dist/lib/components/export/export-modal.component.js +173 -49
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +29 -3
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js +58 -12
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts +57 -8
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +119 -35
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts +76 -10
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +164 -50
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.d.ts +37 -5
- package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.js +82 -16
- package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts +46 -10
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +120 -36
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +549 -74
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +1250 -421
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +411 -29
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +896 -222
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +288 -29
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +561 -123
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts +64 -5
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.js +101 -11
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.d.ts +6 -2
- package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.js +13 -3
- package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.d.ts +15 -3
- package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.js +36 -8
- package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +4 -4
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.d.ts +93 -11
- package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.js +348 -87
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts +78 -8
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-selector.component.js +177 -46
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +1 -1
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.js +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +1 -1
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +3 -0
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
- package/dist/lib/components/realtime/media/media-channel.d.ts +2 -1
- package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/media/media-channel.js +1 -1
- package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +3 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.js +26 -8
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +4 -4
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +19 -19
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.d.ts +2 -3
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.js +3 -2
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +17 -1
- package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-thread.component.js +122 -45
- package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -31
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +138 -124
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +4 -4
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +4 -2
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +7 -3
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts +133 -22
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +312 -83
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts +69 -9
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +139 -31
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +110 -30
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
- package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.js +25 -5
- package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
- package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
- package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
- package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +223 -75
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
- package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.js +100 -16
- package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.js +146 -36
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
- package/dist/lib/components/toast/toast.component.d.ts +11 -1
- package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
- package/dist/lib/components/toast/toast.component.js +25 -5
- package/dist/lib/components/toast/toast.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +887 -291
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
- package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
- package/dist/lib/directives/chat-slot.directive.js.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
- package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.js +14 -4
- package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
- package/dist/lib/events/chat-events.d.ts +34 -7
- package/dist/lib/events/chat-events.d.ts.map +1 -1
- package/dist/lib/events/chat-events.js +37 -7
- package/dist/lib/events/chat-events.js.map +1 -1
- package/dist/lib/models/agent-turn.model.d.ts +103 -0
- package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
- package/dist/lib/models/agent-turn.model.js +12 -0
- package/dist/lib/models/agent-turn.model.js.map +1 -0
- package/dist/lib/models/collection-view.model.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +8 -0
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
- package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
- package/dist/lib/models/lazy-artifact-info.js +98 -34
- package/dist/lib/models/lazy-artifact-info.js.map +1 -1
- package/dist/lib/services/active-tasks.service.d.ts +30 -4
- package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
- package/dist/lib/services/active-tasks.service.js +71 -19
- package/dist/lib/services/active-tasks.service.js.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts +17 -1
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +48 -16
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-permission.service.d.ts +39 -0
- package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-permission.service.js +152 -17
- package/dist/lib/services/artifact-permission.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts +58 -5
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +135 -35
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/browser-realtime-media-host.d.ts +24 -0
- package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -0
- package/dist/lib/services/browser-realtime-media-host.js +95 -0
- package/dist/lib/services/browser-realtime-media-host.js.map +1 -0
- package/dist/lib/services/collection-permission.service.d.ts +28 -0
- package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
- package/dist/lib/services/collection-permission.service.js +88 -32
- package/dist/lib/services/collection-permission.service.js.map +1 -1
- package/dist/lib/services/collection-state.service.d.ts +11 -1
- package/dist/lib/services/collection-state.service.d.ts.map +1 -1
- package/dist/lib/services/collection-state.service.js +25 -5
- package/dist/lib/services/collection-state.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +26 -4
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +57 -18
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts +41 -2
- package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js +80 -13
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
- package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-streaming.service.js +50 -10
- package/dist/lib/services/conversation-streaming.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts +31 -0
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +71 -15
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/dialog.service.d.ts +13 -0
- package/dist/lib/services/dialog.service.d.ts.map +1 -1
- package/dist/lib/services/dialog.service.js +25 -5
- package/dist/lib/services/dialog.service.js.map +1 -1
- package/dist/lib/services/export.service.d.ts +2 -0
- package/dist/lib/services/export.service.d.ts.map +1 -1
- package/dist/lib/services/export.service.js +5 -1
- package/dist/lib/services/export.service.js.map +1 -1
- package/dist/lib/services/graphql-attachment-blob-store.d.ts +44 -0
- package/dist/lib/services/graphql-attachment-blob-store.d.ts.map +1 -0
- package/dist/lib/services/graphql-attachment-blob-store.js +113 -0
- package/dist/lib/services/graphql-attachment-blob-store.js.map +1 -0
- package/dist/lib/services/mention-autocomplete.service.d.ts +17 -141
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +15 -460
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts +10 -0
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +25 -5
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/notification.service.d.ts +54 -6
- package/dist/lib/services/notification.service.d.ts.map +1 -1
- package/dist/lib/services/notification.service.js +123 -27
- package/dist/lib/services/notification.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
- package/dist/lib/services/realtime-audio-recorder.js +12 -12
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
- package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
- package/dist/lib/services/realtime-pcm-wav.js +10 -2
- package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
- package/dist/lib/services/realtime-session-review.service.d.ts +1 -1
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session-review.service.js +1 -1
- package/dist/lib/services/realtime-session-review.service.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +16 -1150
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +28 -2430
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/dist/lib/services/search.service.d.ts +42 -9
- package/dist/lib/services/search.service.d.ts.map +1 -1
- package/dist/lib/services/search.service.js +103 -23
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/lib/services/toast.service.d.ts +19 -1
- package/dist/lib/services/toast.service.d.ts.map +1 -1
- package/dist/lib/services/toast.service.js +45 -9
- package/dist/lib/services/toast.service.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +16 -2
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js +36 -8
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
- package/dist/lib/utils/agent-artifact-summary.js +3 -3
- package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
- package/dist/lib/utils/agent-turn-routing.d.ts +69 -0
- package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
- package/dist/lib/utils/agent-turn-routing.js +96 -0
- package/dist/lib/utils/agent-turn-routing.js.map +1 -0
- package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
- package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
- package/dist/lib/utils/artifact-panel-action.js +10 -2
- package/dist/lib/utils/artifact-panel-action.js.map +1 -1
- package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
- package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
- package/dist/lib/utils/distinct-artifacts.js +5 -1
- package/dist/lib/utils/distinct-artifacts.js.map +1 -1
- package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
- package/dist/lib/utils/plan-mode-preference.js +6 -6
- package/dist/lib/utils/plan-mode-preference.js.map +1 -1
- package/dist/lib/utils/realtime-session-timeline.d.ts +8 -79
- package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -1
- package/dist/lib/utils/realtime-session-timeline.js +8 -89
- package/dist/lib/utils/realtime-session-timeline.js.map +1 -1
- package/dist/public-api.d.ts +5 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +9 -2
- package/dist/public-api.js.map +1 -1
- package/package.json +33 -32
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +0 -384
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +0 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +0 -231
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +0 -1
- package/dist/lib/services/delegation-result-parser.d.ts +0 -50
- package/dist/lib/services/delegation-result-parser.d.ts.map +0 -1
- package/dist/lib/services/delegation-result-parser.js +0 -60
- package/dist/lib/services/delegation-result-parser.js.map +0 -1
- package/dist/lib/services/narration-template.d.ts +0 -42
- package/dist/lib/services/narration-template.d.ts.map +0 -1
- package/dist/lib/services/narration-template.js +0 -73
- package/dist/lib/services/narration-template.js.map +0 -1
- package/dist/lib/services/skill-picker-narrowing.d.ts +0 -13
- package/dist/lib/services/skill-picker-narrowing.d.ts.map +0 -1
- package/dist/lib/services/skill-picker-narrowing.js +0 -13
- package/dist/lib/services/skill-picker-narrowing.js.map +0 -1
|
@@ -3,19 +3,78 @@ import { NavigationTab } from '../../models/conversation-state.model';
|
|
|
3
3
|
import { UserInfo } from '@memberjunction/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class ConversationNavigationComponent {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
ActiveTab: NavigationTab;
|
|
7
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
8
|
+
set activeTab(value: NavigationTab);
|
|
9
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
10
|
+
get activeTab(): NavigationTab;
|
|
11
|
+
EnvironmentId: string;
|
|
12
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
13
|
+
set environmentId(value: string);
|
|
14
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
15
|
+
get environmentId(): string;
|
|
16
|
+
CurrentUser: UserInfo;
|
|
17
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
18
|
+
set currentUser(value: UserInfo);
|
|
19
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
20
|
+
get currentUser(): UserInfo;
|
|
21
|
+
ConversationId: string | null;
|
|
22
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
23
|
+
set conversationId(value: string | null);
|
|
24
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
25
|
+
get conversationId(): string | null;
|
|
26
|
+
TabChanged: EventEmitter<NavigationTab>;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use {@link TabChanged}.
|
|
29
|
+
*
|
|
30
|
+
* The same emitter under the old binding name, so a template still binding
|
|
31
|
+
* (tabChanged) keeps working. Must stay AFTER TabChanged: class fields
|
|
32
|
+
* initialise in order, and the other way round this captures undefined.
|
|
33
|
+
*/
|
|
10
34
|
tabChanged: EventEmitter<NavigationTab>;
|
|
35
|
+
SidebarToggled: EventEmitter<void>;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Use {@link SidebarToggled}.
|
|
38
|
+
*
|
|
39
|
+
* The same emitter under the old binding name, so a template still binding
|
|
40
|
+
* (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields
|
|
41
|
+
* initialise in order, and the other way round this captures undefined.
|
|
42
|
+
*/
|
|
11
43
|
sidebarToggled: EventEmitter<void>;
|
|
44
|
+
SearchTriggered: EventEmitter<void>;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use {@link SearchTriggered}.
|
|
47
|
+
*
|
|
48
|
+
* The same emitter under the old binding name, so a template still binding
|
|
49
|
+
* (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields
|
|
50
|
+
* initialise in order, and the other way round this captures undefined.
|
|
51
|
+
*/
|
|
12
52
|
searchTriggered: EventEmitter<void>;
|
|
53
|
+
RefreshTriggered: EventEmitter<void>;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use {@link RefreshTriggered}.
|
|
56
|
+
*
|
|
57
|
+
* The same emitter under the old binding name, so a template still binding
|
|
58
|
+
* (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields
|
|
59
|
+
* initialise in order, and the other way round this captures undefined.
|
|
60
|
+
*/
|
|
13
61
|
refreshTriggered: EventEmitter<void>;
|
|
62
|
+
NavigateToConversation: EventEmitter<{
|
|
63
|
+
conversationId: string;
|
|
64
|
+
taskId: string;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use {@link NavigateToConversation}.
|
|
68
|
+
*
|
|
69
|
+
* The same emitter under the old binding name, so a template still binding
|
|
70
|
+
* (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields
|
|
71
|
+
* initialise in order, and the other way round this captures undefined.
|
|
72
|
+
*/
|
|
14
73
|
navigateToConversation: EventEmitter<{
|
|
15
74
|
conversationId: string;
|
|
16
75
|
taskId: string;
|
|
17
76
|
}>;
|
|
18
77
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationNavigationComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationNavigationComponent, "mj-conversation-navigation", never, { "activeTab": { "alias": "activeTab"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; }, { "tabChanged": "tabChanged"; "sidebarToggled": "sidebarToggled"; "searchTriggered": "searchTriggered"; "refreshTriggered": "refreshTriggered"; "navigateToConversation": "navigateToConversation"; }, never, never, false, never>;
|
|
78
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationNavigationComponent, "mj-conversation-navigation", never, { "ActiveTab": { "alias": "ActiveTab"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; }, { "TabChanged": "TabChanged"; "tabChanged": "tabChanged"; "SidebarToggled": "SidebarToggled"; "sidebarToggled": "sidebarToggled"; "SearchTriggered": "SearchTriggered"; "searchTriggered": "searchTriggered"; "RefreshTriggered": "RefreshTriggered"; "refreshTriggered": "refreshTriggered"; "NavigateToConversation": "NavigateToConversation"; "navigateToConversation": "navigateToConversation"; }, never, never, false, never>;
|
|
20
79
|
}
|
|
21
80
|
//# sourceMappingURL=conversation-navigation.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-navigation.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD,qBAmKa,+BAA+B;IACjC,SAAS,EAAE,aAAa,CAAmB;
|
|
1
|
+
{"version":3,"file":"conversation-navigation.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD,qBAmKa,+BAA+B;IACjC,SAAS,EAAE,aAAa,CAAmB;IAEpD,yCAAyC;IACzC,IAAa,SAAS,CAAC,KAAK,EAAE,aAAa,EAE1C;IACD,yCAAyC;IACzC,IAAI,SAAS,IAAI,aAAa,CAE7B;IACQ,aAAa,EAAG,MAAM,CAAC;IAEhC,6CAA6C;IAC7C,IAAa,aAAa,CAAC,KAAK,EAAE,MAAM,EAEvC;IACD,6CAA6C;IAC7C,IAAI,aAAa,IAAI,MAAM,CAE1B;IACQ,WAAW,EAAG,QAAQ,CAAC;IAEhC,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,QAAQ,EAEvC;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,QAAQ,CAE1B;IACQ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE9C,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE/C;IACD,8CAA8C;IAC9C,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IACS,UAAU,8BAAqC;IAEzD;;;;;;OAMG;IACO,UAAU,8BAAmB;IAC7B,cAAc,qBAA4B;IAEpD;;;;;;OAMG;IACO,cAAc,qBAAuB;IACrC,eAAe,qBAA4B;IAErD;;;;;;OAMG;IACO,eAAe,qBAAwB;IACvC,gBAAgB,qBAA4B;IAEtD;;;;;;OAMG;IACO,gBAAgB,qBAAyB;IACzC,sBAAsB;wBAAqC,MAAM;gBAAU,MAAM;OAAK;IAEhG;;;;;;OAMG;IACO,sBAAsB;wBATqC,MAAM;gBAAU,MAAM;OAS5B;yCA1FpD,+BAA+B;2CAA/B,+BAA+B;CA2F3C"}
|
|
@@ -2,17 +2,89 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../tasks/tasks-dropdown.component";
|
|
4
4
|
export class ConversationNavigationComponent {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
ActiveTab = 'conversations';
|
|
6
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
7
|
+
set activeTab(value) {
|
|
8
|
+
this.ActiveTab = value;
|
|
9
|
+
}
|
|
10
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
11
|
+
get activeTab() {
|
|
12
|
+
return this.ActiveTab;
|
|
13
|
+
}
|
|
14
|
+
EnvironmentId;
|
|
15
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
16
|
+
set environmentId(value) {
|
|
17
|
+
this.EnvironmentId = value;
|
|
18
|
+
}
|
|
19
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
20
|
+
get environmentId() {
|
|
21
|
+
return this.EnvironmentId;
|
|
22
|
+
}
|
|
23
|
+
CurrentUser;
|
|
24
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
25
|
+
set currentUser(value) {
|
|
26
|
+
this.CurrentUser = value;
|
|
27
|
+
}
|
|
28
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
29
|
+
get currentUser() {
|
|
30
|
+
return this.CurrentUser;
|
|
31
|
+
}
|
|
32
|
+
ConversationId = null;
|
|
33
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
34
|
+
set conversationId(value) {
|
|
35
|
+
this.ConversationId = value;
|
|
36
|
+
}
|
|
37
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
38
|
+
get conversationId() {
|
|
39
|
+
return this.ConversationId;
|
|
40
|
+
}
|
|
41
|
+
TabChanged = new EventEmitter();
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated Use {@link TabChanged}.
|
|
44
|
+
*
|
|
45
|
+
* The same emitter under the old binding name, so a template still binding
|
|
46
|
+
* (tabChanged) keeps working. Must stay AFTER TabChanged: class fields
|
|
47
|
+
* initialise in order, and the other way round this captures undefined.
|
|
48
|
+
*/
|
|
49
|
+
tabChanged = this.TabChanged;
|
|
50
|
+
SidebarToggled = new EventEmitter();
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use {@link SidebarToggled}.
|
|
53
|
+
*
|
|
54
|
+
* The same emitter under the old binding name, so a template still binding
|
|
55
|
+
* (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields
|
|
56
|
+
* initialise in order, and the other way round this captures undefined.
|
|
57
|
+
*/
|
|
58
|
+
sidebarToggled = this.SidebarToggled;
|
|
59
|
+
SearchTriggered = new EventEmitter();
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Use {@link SearchTriggered}.
|
|
62
|
+
*
|
|
63
|
+
* The same emitter under the old binding name, so a template still binding
|
|
64
|
+
* (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields
|
|
65
|
+
* initialise in order, and the other way round this captures undefined.
|
|
66
|
+
*/
|
|
67
|
+
searchTriggered = this.SearchTriggered;
|
|
68
|
+
RefreshTriggered = new EventEmitter();
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated Use {@link RefreshTriggered}.
|
|
71
|
+
*
|
|
72
|
+
* The same emitter under the old binding name, so a template still binding
|
|
73
|
+
* (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields
|
|
74
|
+
* initialise in order, and the other way round this captures undefined.
|
|
75
|
+
*/
|
|
76
|
+
refreshTriggered = this.RefreshTriggered;
|
|
77
|
+
NavigateToConversation = new EventEmitter();
|
|
78
|
+
/**
|
|
79
|
+
* @deprecated Use {@link NavigateToConversation}.
|
|
80
|
+
*
|
|
81
|
+
* The same emitter under the old binding name, so a template still binding
|
|
82
|
+
* (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields
|
|
83
|
+
* initialise in order, and the other way round this captures undefined.
|
|
84
|
+
*/
|
|
85
|
+
navigateToConversation = this.NavigateToConversation;
|
|
14
86
|
static ɵfac = function ConversationNavigationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConversationNavigationComponent)(); };
|
|
15
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationNavigationComponent, selectors: [["mj-conversation-navigation"]], inputs: { activeTab: "activeTab", environmentId: "environmentId", currentUser: "currentUser", conversationId: "conversationId" }, outputs: { tabChanged: "tabChanged", sidebarToggled: "sidebarToggled", searchTriggered: "searchTriggered", refreshTriggered: "refreshTriggered", navigateToConversation: "navigateToConversation" }, standalone: false, decls: 23, vars: 8, consts: [[1, "conversation-navigation"], [1, "nav-left"], [1, "nav-btn", "sidebar-toggle", 3, "click"], [1, "fas", "fa-bars"], [1, "nav-tabs"], [1, "nav-tab", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-folder"], [1, "fas", "fa-tasks"], [1, "nav-right"], [3, "navigateToConversation", "currentUser", "conversationId"], ["title", "Search (Ctrl+K)", 1, "nav-btn", "search-btn", 3, "click"], [1, "fas", "fa-search"], ["title", "Refresh agent cache", 1, "nav-btn", "refresh-btn", 3, "click"], [1, "fas", "fa-sync-alt"]], template: function ConversationNavigationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationNavigationComponent, selectors: [["mj-conversation-navigation"]], inputs: { ActiveTab: "ActiveTab", activeTab: "activeTab", EnvironmentId: "EnvironmentId", environmentId: "environmentId", CurrentUser: "CurrentUser", currentUser: "currentUser", ConversationId: "ConversationId", conversationId: "conversationId" }, outputs: { TabChanged: "TabChanged", tabChanged: "tabChanged", SidebarToggled: "SidebarToggled", sidebarToggled: "sidebarToggled", SearchTriggered: "SearchTriggered", searchTriggered: "searchTriggered", RefreshTriggered: "RefreshTriggered", refreshTriggered: "refreshTriggered", NavigateToConversation: "NavigateToConversation", navigateToConversation: "navigateToConversation" }, standalone: false, decls: 23, vars: 8, consts: [[1, "conversation-navigation"], [1, "nav-left"], [1, "nav-btn", "sidebar-toggle", 3, "click"], [1, "fas", "fa-bars"], [1, "nav-tabs"], [1, "nav-tab", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-folder"], [1, "fas", "fa-tasks"], [1, "nav-right"], [3, "navigateToConversation", "currentUser", "conversationId"], ["title", "Search (Ctrl+K)", 1, "nav-btn", "search-btn", 3, "click"], [1, "fas", "fa-search"], ["title", "Refresh agent cache", 1, "nav-btn", "refresh-btn", 3, "click"], [1, "fas", "fa-sync-alt"]], template: function ConversationNavigationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
16
88
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "button", 2);
|
|
17
89
|
i0.ɵɵlistener("click", function ConversationNavigationComponent_Template_button_click_2_listener() { return ctx.sidebarToggled.emit(); });
|
|
18
90
|
i0.ɵɵelement(3, "i", 3);
|
|
@@ -104,22 +176,40 @@ export class ConversationNavigationComponent {
|
|
|
104
176
|
</div>
|
|
105
177
|
</div>
|
|
106
178
|
`, styles: ["\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n "] }]
|
|
107
|
-
}], null, {
|
|
179
|
+
}], null, { ActiveTab: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], activeTab: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], EnvironmentId: [{
|
|
108
184
|
type: Input
|
|
109
185
|
}], environmentId: [{
|
|
110
186
|
type: Input
|
|
187
|
+
}], CurrentUser: [{
|
|
188
|
+
type: Input
|
|
111
189
|
}], currentUser: [{
|
|
112
190
|
type: Input
|
|
191
|
+
}], ConversationId: [{
|
|
192
|
+
type: Input
|
|
113
193
|
}], conversationId: [{
|
|
114
194
|
type: Input
|
|
195
|
+
}], TabChanged: [{
|
|
196
|
+
type: Output
|
|
115
197
|
}], tabChanged: [{
|
|
116
198
|
type: Output
|
|
199
|
+
}], SidebarToggled: [{
|
|
200
|
+
type: Output
|
|
117
201
|
}], sidebarToggled: [{
|
|
118
202
|
type: Output
|
|
203
|
+
}], SearchTriggered: [{
|
|
204
|
+
type: Output
|
|
119
205
|
}], searchTriggered: [{
|
|
120
206
|
type: Output
|
|
207
|
+
}], RefreshTriggered: [{
|
|
208
|
+
type: Output
|
|
121
209
|
}], refreshTriggered: [{
|
|
122
210
|
type: Output
|
|
211
|
+
}], NavigateToConversation: [{
|
|
212
|
+
type: Output
|
|
123
213
|
}], navigateToConversation: [{
|
|
124
214
|
type: Output
|
|
125
215
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;AAuKvE,MAAM,OAAO,+BAA+B;IACjC,SAAS,GAAkB,eAAe,CAAC;IAC3C,aAAa,CAAU;IACvB,WAAW,CAAY;IACvB,cAAc,GAAkB,IAAI,CAAC;IACpC,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;IAC/C,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,sBAAsB,GAAG,IAAI,YAAY,EAA4C,CAAC;yHATrF,+BAA+B;6DAA/B,+BAA+B;YA7JpC,AADF,AADF,8BAAqC,aACb,gBACmD;YAAhC,4GAAS,yBAAqB,IAAC;YACpE,uBAA2B;YAE/B,AADE,iBAAS,EACL;YAEJ,AADF,8BAAsB,gBAIyB;YAA3C,4GAAS,oBAAgB,eAAe,CAAC,IAAC;YAC1C,uBAA+B;YAC/B,4BAAM;YAAA,qBAAK;YACb,AADa,iBAAO,EACX;YACT,iCAG2C;YAAzC,4GAAS,oBAAgB,aAAa,CAAC,IAAC;YACxC,wBAA6B;YAC7B,6BAAM;YAAA,4BAAW;YACnB,AADmB,iBAAO,EACjB;YACT,kCAGqC;YAAnC,6GAAS,oBAAgB,OAAO,CAAC,IAAC;YAClC,wBAA4B;YAC5B,6BAAM;YAAA,sBAAK;YAEf,AADE,AADa,iBAAO,EACX,EACL;YAEJ,AADF,+BAAuB,6BAI4C;YAA/D,gKAA0B,uCAAmC,IAAC;YAChE,iBAAoB;YACpB,mCAA4F;YAAzD,6GAAS,0BAAsB,IAAC;YACjE,yBAA6B;YAC/B,iBAAS;YACT,mCAAkG;YAA9D,6GAAS,2BAAuB,IAAC;YACnE,yBAA+B;YAGrC,AADE,AADE,iBAAS,EACL,EACF;;YAjCA,eAA8C;YAA9C,2DAA8C;YAO9C,eAA4C;YAA5C,yDAA4C;YAO5C,eAAsC;YAAtC,mDAAsC;YAQtC,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFA+H9B,+BAA+B;cAnK3C,SAAS;6BACI,KAAK,YACP,4BAA4B,YAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CT;;kBAqHA,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kFATI,+BAA+B","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NavigationTab } from '../../models/conversation-state.model';\nimport { UserInfo } from '@memberjunction/core';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-navigation',\n template: `\n <div class=\"conversation-navigation\">\n <div class=\"nav-left\">\n <button class=\"nav-btn sidebar-toggle\" (click)=\"sidebarToggled.emit()\">\n <i class=\"fas fa-bars\"></i>\n </button>\n </div>\n <div class=\"nav-tabs\">\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'conversations'\"\n (click)=\"tabChanged.emit('conversations')\">\n <i class=\"fas fa-comments\"></i>\n <span>Chats</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'collections'\"\n (click)=\"tabChanged.emit('collections')\">\n <i class=\"fas fa-folder\"></i>\n <span>Collections</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'tasks'\"\n (click)=\"tabChanged.emit('tasks')\">\n <i class=\"fas fa-tasks\"></i>\n <span>Tasks</span>\n </button>\n </div>\n <div class=\"nav-right\">\n <mj-tasks-dropdown\n [currentUser]=\"currentUser\"\n [conversationId]=\"conversationId\"\n (navigateToConversation)=\"navigateToConversation.emit($event)\">\n </mj-tasks-dropdown>\n <button class=\"nav-btn search-btn\" (click)=\"searchTriggered.emit()\" title=\"Search (Ctrl+K)\">\n <i class=\"fas fa-search\"></i>\n </button>\n <button class=\"nav-btn refresh-btn\" (click)=\"refreshTriggered.emit()\" title=\"Refresh agent cache\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n `,\n styles: [`\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n `]\n})\nexport class ConversationNavigationComponent {\n @Input() activeTab: NavigationTab = 'conversations';\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n @Input() conversationId: string | null = null;\n @Output() tabChanged = new EventEmitter<NavigationTab>();\n @Output() sidebarToggled = new EventEmitter<void>();\n @Output() searchTriggered = new EventEmitter<void>();\n @Output() refreshTriggered = new EventEmitter<void>();\n @Output() navigateToConversation = new EventEmitter<{conversationId: string; taskId: string}>();\n}"]}
|
|
1
|
+
{"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NavigationTab } from '../../models/conversation-state.model';\nimport { UserInfo } from '@memberjunction/core';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-navigation',\n template: `\n <div class=\"conversation-navigation\">\n <div class=\"nav-left\">\n <button class=\"nav-btn sidebar-toggle\" (click)=\"sidebarToggled.emit()\">\n <i class=\"fas fa-bars\"></i>\n </button>\n </div>\n <div class=\"nav-tabs\">\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'conversations'\"\n (click)=\"tabChanged.emit('conversations')\">\n <i class=\"fas fa-comments\"></i>\n <span>Chats</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'collections'\"\n (click)=\"tabChanged.emit('collections')\">\n <i class=\"fas fa-folder\"></i>\n <span>Collections</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'tasks'\"\n (click)=\"tabChanged.emit('tasks')\">\n <i class=\"fas fa-tasks\"></i>\n <span>Tasks</span>\n </button>\n </div>\n <div class=\"nav-right\">\n <mj-tasks-dropdown\n [currentUser]=\"currentUser\"\n [conversationId]=\"conversationId\"\n (navigateToConversation)=\"navigateToConversation.emit($event)\">\n </mj-tasks-dropdown>\n <button class=\"nav-btn search-btn\" (click)=\"searchTriggered.emit()\" title=\"Search (Ctrl+K)\">\n <i class=\"fas fa-search\"></i>\n </button>\n <button class=\"nav-btn refresh-btn\" (click)=\"refreshTriggered.emit()\" title=\"Refresh agent cache\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n `,\n styles: [`\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n `]\n})\nexport class ConversationNavigationComponent {\n @Input() ActiveTab: NavigationTab = 'conversations';\n\n /** @deprecated Use {@link ActiveTab}. */\n @Input() set activeTab(value: NavigationTab) {\n this.ActiveTab = value;\n }\n /** @deprecated Use {@link ActiveTab}. */\n get activeTab(): NavigationTab {\n return this.ActiveTab;\n }\n @Input() EnvironmentId!: string;\n\n /** @deprecated Use {@link EnvironmentId}. */\n @Input() set environmentId(value: string) {\n this.EnvironmentId = value;\n }\n /** @deprecated Use {@link EnvironmentId}. */\n get environmentId(): string {\n return this.EnvironmentId;\n }\n @Input() CurrentUser!: UserInfo;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo {\n return this.CurrentUser;\n }\n @Input() ConversationId: string | null = null;\n\n /** @deprecated Use {@link ConversationId}. */\n @Input() set conversationId(value: string | null) {\n this.ConversationId = value;\n }\n /** @deprecated Use {@link ConversationId}. */\n get conversationId(): string | null {\n return this.ConversationId;\n }\n @Output() TabChanged = new EventEmitter<NavigationTab>();\n\n /**\n * @deprecated Use {@link TabChanged}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (tabChanged) keeps working. Must stay AFTER TabChanged: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() tabChanged = this.TabChanged;\n @Output() SidebarToggled = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link SidebarToggled}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() sidebarToggled = this.SidebarToggled;\n @Output() SearchTriggered = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link SearchTriggered}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() searchTriggered = this.SearchTriggered;\n @Output() RefreshTriggered = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link RefreshTriggered}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() refreshTriggered = this.RefreshTriggered;\n @Output() NavigateToConversation = new EventEmitter<{conversationId: string; taskId: string}>();\n\n /**\n * @deprecated Use {@link NavigateToConversation}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() navigateToConversation = this.NavigateToConversation;\n}"]}
|
|
@@ -4,8 +4,12 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* Displays activity indicators for agent processes, typing, etc.
|
|
5
5
|
*/
|
|
6
6
|
export declare class ActivityIndicatorComponent {
|
|
7
|
-
|
|
7
|
+
Config?: ActivityIndicatorConfig;
|
|
8
|
+
/** @deprecated Use {@link Config}. */
|
|
9
|
+
set config(value: ActivityIndicatorConfig | undefined);
|
|
10
|
+
/** @deprecated Use {@link Config}. */
|
|
11
|
+
get config(): ActivityIndicatorConfig | undefined;
|
|
8
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActivityIndicatorComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ActivityIndicatorComponent, "mj-activity-indicator", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ActivityIndicatorComponent, "mj-activity-indicator", never, { "Config": { "alias": "Config"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=activity-indicator.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-indicator.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;;AAE1E;;GAEG;AACH,qBA2Fa,0BAA0B;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-indicator.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;;AAE1E;;GAEG;AACH,qBA2Fa,0BAA0B;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAE1C,sCAAsC;IACtC,IAAa,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAE7D;IACD,sCAAsC;IACtC,IAAI,MAAM,IAAI,uBAAuB,GAAG,SAAS,CAEhD;yCAVU,0BAA0B;2CAA1B,0BAA0B;CAWtC"}
|
|
@@ -25,9 +25,17 @@ function ActivityIndicatorComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
|
|
|
25
25
|
* Displays activity indicators for agent processes, typing, etc.
|
|
26
26
|
*/
|
|
27
27
|
export class ActivityIndicatorComponent {
|
|
28
|
-
|
|
28
|
+
Config;
|
|
29
|
+
/** @deprecated Use {@link Config}. */
|
|
30
|
+
set config(value) {
|
|
31
|
+
this.Config = value;
|
|
32
|
+
}
|
|
33
|
+
/** @deprecated Use {@link Config}. */
|
|
34
|
+
get config() {
|
|
35
|
+
return this.Config;
|
|
36
|
+
}
|
|
29
37
|
static ɵfac = function ActivityIndicatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActivityIndicatorComponent)(); };
|
|
30
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIndicatorComponent, selectors: [["mj-activity-indicator"]], inputs: { config: "config" }, standalone: false, decls: 1, vars: 1, consts: [[1, "activity-indicator", 3, "activity-agent", "activity-processing", "activity-typing"], [1, "activity-indicator"], [1, "activity-dots"], [1, "dot"], [1, "activity-text"]], template: function ActivityIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIndicatorComponent, selectors: [["mj-activity-indicator"]], inputs: { Config: "Config", config: "config" }, standalone: false, decls: 1, vars: 1, consts: [[1, "activity-indicator", 3, "activity-agent", "activity-processing", "activity-typing"], [1, "activity-indicator"], [1, "activity-dots"], [1, "dot"], [1, "activity-text"]], template: function ActivityIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
31
39
|
i0.ɵɵconditionalCreate(0, ActivityIndicatorComponent_Conditional_0_Template, 6, 7, "div", 0);
|
|
32
40
|
} if (rf & 2) {
|
|
33
41
|
i0.ɵɵconditional((ctx.config == null ? null : ctx.config.show) ? 0 : -1);
|
|
@@ -49,7 +57,9 @@ export class ActivityIndicatorComponent {
|
|
|
49
57
|
</div>
|
|
50
58
|
}
|
|
51
59
|
`, styles: ["\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n "] }]
|
|
52
|
-
}], null, {
|
|
60
|
+
}], null, { Config: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], config: [{
|
|
53
63
|
type: Input
|
|
54
64
|
}] }); })();
|
|
55
65
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIndicatorComponent, { className: "ActivityIndicatorComponent", filePath: "src/lib/components/notification/activity-indicator.component.ts", lineNumber: 98 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;
|
|
1
|
+
{"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;IAE1C,sCAAsC;IACtC,IAAa,MAAM,CAAC,KAA0C;QAC5D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,sCAAsC;IACtC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;oHAVU,0BAA0B;6DAA1B,0BAA0B;YAvFnC,4FAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA3FtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;;kBA4EA,KAAK;;kBAGL,KAAK;;kFAJK,0BAA0B","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { ActivityIndicatorConfig } from '../../models/notification.model';\n\n/**\n * Displays activity indicators for agent processes, typing, etc.\n */\n@Component({\n standalone: false,\n selector: 'mj-activity-indicator',\n template: `\n @if (config?.show) {\n <div class=\"activity-indicator\" [class.activity-agent]=\"config?.type === 'agent'\" [class.activity-processing]=\"config?.type === 'processing'\" [class.activity-typing]=\"config?.type === 'typing'\">\n <div class=\"activity-dots\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n @if (config?.text) {\n <span class=\"activity-text\">{{ config?.text }}</span>\n }\n </div>\n }\n `,\n styles: [`\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n `]\n})\nexport class ActivityIndicatorComponent {\n @Input() Config?: ActivityIndicatorConfig;\n\n /** @deprecated Use {@link Config}. */\n @Input() set config(value: ActivityIndicatorConfig | undefined) {\n this.Config = value;\n }\n /** @deprecated Use {@link Config}. */\n get config(): ActivityIndicatorConfig | undefined {\n return this.Config;\n }\n}\n"]}
|
|
@@ -8,20 +8,32 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class NotificationBadgeComponent implements OnInit, OnDestroy {
|
|
10
10
|
private notificationService;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
ConversationId?: string;
|
|
12
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
13
|
+
set conversationId(value: string | undefined);
|
|
14
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
15
|
+
get conversationId(): string | undefined;
|
|
16
|
+
BadgeConfig?: BadgeConfig;
|
|
17
|
+
/** @deprecated Use {@link BadgeConfig}. */
|
|
18
|
+
set badgeConfig(value: BadgeConfig | undefined);
|
|
19
|
+
/** @deprecated Use {@link BadgeConfig}. */
|
|
20
|
+
get badgeConfig(): BadgeConfig | undefined;
|
|
13
21
|
private destroy$;
|
|
14
22
|
private _loadedBadgeConfig;
|
|
15
23
|
constructor(notificationService: NotificationService);
|
|
16
24
|
ngOnInit(): void;
|
|
17
25
|
ngOnDestroy(): void;
|
|
26
|
+
get DisplayConfig(): BadgeConfig | null;
|
|
27
|
+
/** @deprecated Use {@link DisplayConfig}. */
|
|
18
28
|
get displayConfig(): BadgeConfig | null;
|
|
19
29
|
/**
|
|
20
30
|
* Formats count for display
|
|
21
31
|
* Shows 99+ for counts over 99
|
|
22
32
|
*/
|
|
33
|
+
FormatCount(count: number): string;
|
|
34
|
+
/** @deprecated Use {@link FormatCount}. */
|
|
23
35
|
formatCount(count: number): string;
|
|
24
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBadgeComponent, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBadgeComponent, "mj-notification-badge", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; }, {}, never, never, false, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBadgeComponent, "mj-notification-badge", never, { "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "BadgeConfig": { "alias": "BadgeConfig"; "required": false; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; }, {}, never, never, false, never>;
|
|
26
38
|
}
|
|
27
39
|
//# sourceMappingURL=notification-badge.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-badge.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;GAGG;AACH,qBA8Na,0BAA2B,YAAW,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"notification-badge.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;GAGG;AACH,qBA8Na,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAyBtD,OAAO,CAAC,mBAAmB;IAxB9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEpD;IACD,8CAA8C;IAC9C,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IACQ,WAAW,CAAC,EAAE,WAAW,CAAC;IAEnC,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAEtD;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,kBAAkB,CAA4B;gBAElC,mBAAmB,EAAE,mBAAmB;IAE5D,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED,6CAA6C;IAC7C,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIlC,2CAA2C;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCA9DvB,0BAA0B;2CAA1B,0BAA0B;CAiEtC"}
|
|
@@ -71,8 +71,24 @@ function NotificationBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
|
|
|
71
71
|
*/
|
|
72
72
|
export class NotificationBadgeComponent {
|
|
73
73
|
notificationService;
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
ConversationId;
|
|
75
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
76
|
+
set conversationId(value) {
|
|
77
|
+
this.ConversationId = value;
|
|
78
|
+
}
|
|
79
|
+
/** @deprecated Use {@link ConversationId}. */
|
|
80
|
+
get conversationId() {
|
|
81
|
+
return this.ConversationId;
|
|
82
|
+
}
|
|
83
|
+
BadgeConfig;
|
|
84
|
+
/** @deprecated Use {@link BadgeConfig}. */
|
|
85
|
+
set badgeConfig(value) {
|
|
86
|
+
this.BadgeConfig = value;
|
|
87
|
+
}
|
|
88
|
+
/** @deprecated Use {@link BadgeConfig}. */
|
|
89
|
+
get badgeConfig() {
|
|
90
|
+
return this.BadgeConfig;
|
|
91
|
+
}
|
|
76
92
|
destroy$ = new Subject();
|
|
77
93
|
_loadedBadgeConfig = null;
|
|
78
94
|
constructor(notificationService) {
|
|
@@ -80,9 +96,9 @@ export class NotificationBadgeComponent {
|
|
|
80
96
|
}
|
|
81
97
|
ngOnInit() {
|
|
82
98
|
// If badgeConfig not provided but conversationId is, load from service
|
|
83
|
-
if (!this.
|
|
99
|
+
if (!this.BadgeConfig && this.ConversationId) {
|
|
84
100
|
this.notificationService
|
|
85
|
-
.getBadgeConfig$(this.
|
|
101
|
+
.getBadgeConfig$(this.ConversationId)
|
|
86
102
|
.pipe(takeUntil(this.destroy$))
|
|
87
103
|
.subscribe(config => {
|
|
88
104
|
this._loadedBadgeConfig = config;
|
|
@@ -93,18 +109,26 @@ export class NotificationBadgeComponent {
|
|
|
93
109
|
this.destroy$.next();
|
|
94
110
|
this.destroy$.complete();
|
|
95
111
|
}
|
|
112
|
+
get DisplayConfig() {
|
|
113
|
+
return this.BadgeConfig || this._loadedBadgeConfig;
|
|
114
|
+
}
|
|
115
|
+
/** @deprecated Use {@link DisplayConfig}. */
|
|
96
116
|
get displayConfig() {
|
|
97
|
-
return this.
|
|
117
|
+
return this.DisplayConfig;
|
|
98
118
|
}
|
|
99
119
|
/**
|
|
100
120
|
* Formats count for display
|
|
101
121
|
* Shows 99+ for counts over 99
|
|
102
122
|
*/
|
|
103
|
-
|
|
123
|
+
FormatCount(count) {
|
|
104
124
|
return count > 99 ? '99+' : count.toString();
|
|
105
125
|
}
|
|
126
|
+
/** @deprecated Use {@link FormatCount}. */
|
|
127
|
+
formatCount(count) {
|
|
128
|
+
return this.FormatCount(count);
|
|
129
|
+
}
|
|
106
130
|
static ɵfac = function NotificationBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NotificationBadgeComponent)(i0.ɵɵdirectiveInject(i1.NotificationService)); };
|
|
107
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationBadgeComponent, selectors: [["mj-notification-badge"]], inputs: { conversationId: "conversationId", badgeConfig: "badgeConfig" }, standalone: false, decls: 1, vars: 1, consts: [[1, "notification-badge-container"], [1, "notification-badge", "badge-count", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-dot", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-pulse", 3, "badge-high", "badge-urgent"], [1, "notification-badge", "badge-new", 3, "badge-animate"], [1, "notification-badge", "badge-count"], [1, "notification-badge", "badge-dot"], [1, "notification-badge", "badge-pulse"], [1, "pulse-ring"], [1, "pulse-ring-delay"], [1, "pulse-count"], [1, "notification-badge", "badge-new"]], template: function NotificationBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationBadgeComponent, selectors: [["mj-notification-badge"]], inputs: { ConversationId: "ConversationId", conversationId: "conversationId", BadgeConfig: "BadgeConfig", badgeConfig: "badgeConfig" }, standalone: false, decls: 1, vars: 1, consts: [[1, "notification-badge-container"], [1, "notification-badge", "badge-count", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-dot", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-pulse", 3, "badge-high", "badge-urgent"], [1, "notification-badge", "badge-new", 3, "badge-animate"], [1, "notification-badge", "badge-count"], [1, "notification-badge", "badge-dot"], [1, "notification-badge", "badge-pulse"], [1, "pulse-ring"], [1, "pulse-ring-delay"], [1, "pulse-count"], [1, "notification-badge", "badge-new"]], template: function NotificationBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
108
132
|
i0.ɵɵconditionalCreate(0, NotificationBadgeComponent_Conditional_0_Template, 5, 4, "div", 0);
|
|
109
133
|
} if (rf & 2) {
|
|
110
134
|
i0.ɵɵconditional((ctx.badgeConfig == null ? null : ctx.badgeConfig.show) ? 0 : -1);
|
|
@@ -154,7 +178,11 @@ export class NotificationBadgeComponent {
|
|
|
154
178
|
</div>
|
|
155
179
|
}
|
|
156
180
|
`, styles: ["\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n "] }]
|
|
157
|
-
}], () => [{ type: i1.NotificationService }], {
|
|
181
|
+
}], () => [{ type: i1.NotificationService }], { ConversationId: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], conversationId: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], BadgeConfig: [{
|
|
158
186
|
type: Input
|
|
159
187
|
}], badgeConfig: [{
|
|
160
188
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;IAejC,8BAI+C;IAC7C,YACF;IAAA,iBAAM;;;IAFJ,AADA,AADA,0GAAqD,gGACI,iFACb;IAC5C,cACF;IADE,iHACF;;;IAGA,yBAKM;;;IADJ,AADA,AADA,0GAAqD,gGACI,iFACb;;;IAW1C,gCAA0B;IAAA,YAAsC;IAAA,iBAAO;;;IAA7C,cAAsC;IAAtC,sGAAsC;;;IAPpE,8BAG4D;IAE1D,AADA,0BAAgC,cACM;IACtC,0HAA6D;IAG/D,iBAAM;;;IANJ,AADA,0GAAqD,gGACI;IAGzD,eAEC;IAFD,uKAEC;;;IAIH,+BAE+C;IAC7C,qBACF;IAAA,iBAAM;;;IAFJ,+FAA4C;;;IAjClD,8BAA0C;IACxC,0GAA8F;IAS9F,0GAAmC;IAQnC,0GAAqC;IAYrC,0GAAmC;IAOrC,iBAAM;;;IApCJ,cAQC;IARD,oPAQC;IACD,cAOC;IAPD,kGAOC;IACD,cAWC;IAXD,oGAWC;IACD,cAMC;IAND,kGAMC;;AA7CT;;;GAGG;AA+NH,MAAM,OAAO,0BAA0B;IAOjB;IANX,cAAc,CAAU;IACxB,WAAW,CAAe;IAE3B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhE,QAAQ;QACN,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB;iBACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;oHApCU,0BAA0B;6DAA1B,0BAA0B;YA1NnC,4FAAyB;;YAAzB,kFAuCC;;;iFAmLQ,0BAA0B;cA9NtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;;kBAmLA,KAAK;;kBACL,KAAK;;kFAFK,0BAA0B","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BadgeConfig } from '../../models/notification.model';\nimport { NotificationService } from '../../services/notification.service';\n\n/**\n * Displays notification badges with various styles and animations\n * Supports count, dot, pulse, and new badge types\n */\n@Component({\n standalone: false,\n selector: 'mj-notification-badge',\n template: `\n @if (badgeConfig?.show) {\n <div class=\"notification-badge-container\">\n @if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <div\n class=\"notification-badge badge-count\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n {{ formatCount(badgeConfig?.count!) }}\n </div>\n }\n @if (badgeConfig?.type === 'dot') {\n <div\n class=\"notification-badge badge-dot\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n </div>\n }\n @if (badgeConfig?.type === 'pulse') {\n <div\n class=\"notification-badge badge-pulse\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\">\n <span class=\"pulse-ring\"></span>\n <span class=\"pulse-ring-delay\"></span>\n @if (badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <span class=\"pulse-count\">{{ formatCount(badgeConfig?.count!) }}</span>\n }\n </div>\n }\n @if (badgeConfig?.type === 'new') {\n <div\n class=\"notification-badge badge-new\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n NEW\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n `]\n})\nexport class NotificationBadgeComponent implements OnInit, OnDestroy {\n @Input() conversationId?: string;\n @Input() badgeConfig?: BadgeConfig;\n\n private destroy$ = new Subject<void>();\n private _loadedBadgeConfig: BadgeConfig | null = null;\n\n constructor(private notificationService: NotificationService) {}\n\n ngOnInit(): void {\n // If badgeConfig not provided but conversationId is, load from service\n if (!this.badgeConfig && this.conversationId) {\n this.notificationService\n .getBadgeConfig$(this.conversationId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n this._loadedBadgeConfig = config;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n get displayConfig(): BadgeConfig | null {\n return this.badgeConfig || this._loadedBadgeConfig;\n }\n\n /**\n * Formats count for display\n * Shows 99+ for counts over 99\n */\n formatCount(count: number): string {\n return count > 99 ? '99+' : count.toString();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BadgeConfig } from '../../models/notification.model';\nimport { NotificationService } from '../../services/notification.service';\n\n/**\n * Displays notification badges with various styles and animations\n * Supports count, dot, pulse, and new badge types\n */\n@Component({\n standalone: false,\n selector: 'mj-notification-badge',\n template: `\n @if (badgeConfig?.show) {\n <div class=\"notification-badge-container\">\n @if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <div\n class=\"notification-badge badge-count\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n {{ formatCount(badgeConfig?.count!) }}\n </div>\n }\n @if (badgeConfig?.type === 'dot') {\n <div\n class=\"notification-badge badge-dot\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n </div>\n }\n @if (badgeConfig?.type === 'pulse') {\n <div\n class=\"notification-badge badge-pulse\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\">\n <span class=\"pulse-ring\"></span>\n <span class=\"pulse-ring-delay\"></span>\n @if (badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <span class=\"pulse-count\">{{ formatCount(badgeConfig?.count!) }}</span>\n }\n </div>\n }\n @if (badgeConfig?.type === 'new') {\n <div\n class=\"notification-badge badge-new\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n NEW\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n `]\n})\nexport class NotificationBadgeComponent implements OnInit, OnDestroy {\n @Input() ConversationId?: string;\n\n /** @deprecated Use {@link ConversationId}. */\n @Input() set conversationId(value: string | undefined) {\n this.ConversationId = value;\n }\n /** @deprecated Use {@link ConversationId}. */\n get conversationId(): string | undefined {\n return this.ConversationId;\n }\n @Input() BadgeConfig?: BadgeConfig;\n\n /** @deprecated Use {@link BadgeConfig}. */\n @Input() set badgeConfig(value: BadgeConfig | undefined) {\n this.BadgeConfig = value;\n }\n /** @deprecated Use {@link BadgeConfig}. */\n get badgeConfig(): BadgeConfig | undefined {\n return this.BadgeConfig;\n }\n\n private destroy$ = new Subject<void>();\n private _loadedBadgeConfig: BadgeConfig | null = null;\n\n constructor(private notificationService: NotificationService) {}\n\n ngOnInit(): void {\n // If badgeConfig not provided but conversationId is, load from service\n if (!this.BadgeConfig && this.ConversationId) {\n this.notificationService\n .getBadgeConfig$(this.ConversationId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n this._loadedBadgeConfig = config;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n get DisplayConfig(): BadgeConfig | null {\n return this.BadgeConfig || this._loadedBadgeConfig;\n }\n\n /** @deprecated Use {@link DisplayConfig}. */\n get displayConfig(): BadgeConfig | null {\n return this.DisplayConfig;\n }\n\n /**\n * Formats count for display\n * Shows 99+ for counts over 99\n */\n FormatCount(count: number): string {\n return count > 99 ? '99+' : count.toString();\n }\n\n /** @deprecated Use {@link FormatCount}. */\n formatCount(count: number): string {\n return this.FormatCount(count);\n }\n}\n"]}
|
|
@@ -49,7 +49,7 @@ export declare class ChatAgentsOverlayComponent extends BaseAngularComponent imp
|
|
|
49
49
|
/** Mousedown-to-mousemove distance that promotes a click into a drag. */
|
|
50
50
|
private static readonly BUBBLE_DRAG_THRESHOLD_PX;
|
|
51
51
|
/** Controls external visibility (e.g., parent hides overlay on chat route) */
|
|
52
|
-
private
|
|
52
|
+
private _isVisible;
|
|
53
53
|
set IsVisible(value: boolean);
|
|
54
54
|
get IsVisible(): boolean;
|
|
55
55
|
/** Current user info, passed through to conversation-chat-area. Auto-resolved from Metadata if not provided. */
|
|
@@ -165,17 +165,17 @@ export class ChatAgentsOverlayComponent extends BaseAngularComponent {
|
|
|
165
165
|
static BUBBLE_DRAG_THRESHOLD_PX = 5;
|
|
166
166
|
// --- Inputs ---
|
|
167
167
|
/** Controls external visibility (e.g., parent hides overlay on chat route) */
|
|
168
|
-
|
|
168
|
+
_isVisible = true;
|
|
169
169
|
set IsVisible(value) {
|
|
170
|
-
const prev = this.
|
|
171
|
-
this.
|
|
170
|
+
const prev = this._isVisible;
|
|
171
|
+
this._isVisible = value;
|
|
172
172
|
if (!value && prev && this.State !== 'collapsed') {
|
|
173
173
|
this.Collapse();
|
|
174
174
|
}
|
|
175
175
|
this.cdr.detectChanges();
|
|
176
176
|
}
|
|
177
177
|
get IsVisible() {
|
|
178
|
-
return this.
|
|
178
|
+
return this._isVisible;
|
|
179
179
|
}
|
|
180
180
|
/** Current user info, passed through to conversation-chat-area. Auto-resolved from Metadata if not provided. */
|
|
181
181
|
CurrentUser;
|