@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
|
@@ -48,18 +48,82 @@ function UserPickerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
48
48
|
} }
|
|
49
49
|
export class UserPickerComponent extends BaseAngularComponent {
|
|
50
50
|
cdr;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
CurrentUser;
|
|
52
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
53
|
+
set currentUser(value) {
|
|
54
|
+
this.CurrentUser = value;
|
|
55
|
+
}
|
|
56
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
57
|
+
get currentUser() {
|
|
58
|
+
return this.CurrentUser;
|
|
59
|
+
}
|
|
60
|
+
ExcludeUserIds = [];
|
|
61
|
+
/** @deprecated Use {@link ExcludeUserIds}. */
|
|
62
|
+
set excludeUserIds(value) {
|
|
63
|
+
this.ExcludeUserIds = value;
|
|
64
|
+
}
|
|
65
|
+
/** @deprecated Use {@link ExcludeUserIds}. */
|
|
66
|
+
get excludeUserIds() {
|
|
67
|
+
return this.ExcludeUserIds;
|
|
68
|
+
}
|
|
69
|
+
Placeholder = 'Search for a user (press Enter)...';
|
|
70
|
+
/** @deprecated Use {@link Placeholder}. */
|
|
71
|
+
set placeholder(value) {
|
|
72
|
+
this.Placeholder = value;
|
|
73
|
+
}
|
|
74
|
+
/** @deprecated Use {@link Placeholder}. */
|
|
75
|
+
get placeholder() {
|
|
76
|
+
return this.Placeholder;
|
|
77
|
+
}
|
|
54
78
|
constructor(cdr) {
|
|
55
79
|
super();
|
|
56
80
|
this.cdr = cdr;
|
|
57
81
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
82
|
+
UserSelected = new EventEmitter();
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated Use {@link UserSelected}.
|
|
85
|
+
*
|
|
86
|
+
* The same emitter under the old binding name, so a template still binding
|
|
87
|
+
* (userSelected) keeps working. Must stay AFTER UserSelected: class fields
|
|
88
|
+
* initialise in order, and the other way round this captures undefined.
|
|
89
|
+
*/
|
|
90
|
+
userSelected = this.UserSelected;
|
|
91
|
+
SearchQuery = '';
|
|
92
|
+
/** @deprecated Use {@link SearchQuery}. */
|
|
93
|
+
get searchQuery() {
|
|
94
|
+
return this.SearchQuery;
|
|
95
|
+
}
|
|
96
|
+
/** @deprecated Use {@link SearchQuery}. */
|
|
97
|
+
set searchQuery(value) {
|
|
98
|
+
this.SearchQuery = value;
|
|
99
|
+
}
|
|
100
|
+
SearchResults = [];
|
|
101
|
+
/** @deprecated Use {@link SearchResults}. */
|
|
102
|
+
get searchResults() {
|
|
103
|
+
return this.SearchResults;
|
|
104
|
+
}
|
|
105
|
+
/** @deprecated Use {@link SearchResults}. */
|
|
106
|
+
set searchResults(value) {
|
|
107
|
+
this.SearchResults = value;
|
|
108
|
+
}
|
|
109
|
+
IsSearching = false;
|
|
110
|
+
/** @deprecated Use {@link IsSearching}. */
|
|
111
|
+
get isSearching() {
|
|
112
|
+
return this.IsSearching;
|
|
113
|
+
}
|
|
114
|
+
/** @deprecated Use {@link IsSearching}. */
|
|
115
|
+
set isSearching(value) {
|
|
116
|
+
this.IsSearching = value;
|
|
117
|
+
}
|
|
118
|
+
ShowResults = false;
|
|
119
|
+
/** @deprecated Use {@link ShowResults}. */
|
|
120
|
+
get showResults() {
|
|
121
|
+
return this.ShowResults;
|
|
122
|
+
}
|
|
123
|
+
/** @deprecated Use {@link ShowResults}. */
|
|
124
|
+
set showResults(value) {
|
|
125
|
+
this.ShowResults = value;
|
|
126
|
+
}
|
|
63
127
|
ngOnInit() {
|
|
64
128
|
// Add click outside listener to close dropdown
|
|
65
129
|
document.addEventListener('click', this.handleClickOutside.bind(this));
|
|
@@ -70,38 +134,46 @@ export class UserPickerComponent extends BaseAngularComponent {
|
|
|
70
134
|
handleClickOutside(event) {
|
|
71
135
|
const target = event.target;
|
|
72
136
|
if (!target.closest('.user-picker')) {
|
|
73
|
-
this.
|
|
137
|
+
this.ShowResults = false;
|
|
74
138
|
}
|
|
75
139
|
}
|
|
76
|
-
|
|
77
|
-
if (!this.
|
|
78
|
-
this.
|
|
140
|
+
OnSearch() {
|
|
141
|
+
if (!this.SearchQuery || this.SearchQuery.trim().length < 2) {
|
|
142
|
+
this.ShowResults = false;
|
|
79
143
|
return;
|
|
80
144
|
}
|
|
81
|
-
this.performSearch(this.
|
|
145
|
+
this.performSearch(this.SearchQuery.trim());
|
|
146
|
+
}
|
|
147
|
+
/** @deprecated Use {@link OnSearch}. */
|
|
148
|
+
onSearch() {
|
|
149
|
+
return this.OnSearch();
|
|
82
150
|
}
|
|
151
|
+
OnSelectUser(user) {
|
|
152
|
+
this.UserSelected.emit(user);
|
|
153
|
+
this.SearchQuery = '';
|
|
154
|
+
this.SearchResults = [];
|
|
155
|
+
this.ShowResults = false;
|
|
156
|
+
}
|
|
157
|
+
/** @deprecated Use {@link OnSelectUser}. */
|
|
83
158
|
onSelectUser(user) {
|
|
84
|
-
this.
|
|
85
|
-
this.searchQuery = '';
|
|
86
|
-
this.searchResults = [];
|
|
87
|
-
this.showResults = false;
|
|
159
|
+
return this.OnSelectUser(user);
|
|
88
160
|
}
|
|
89
161
|
async performSearch(query) {
|
|
90
162
|
if (!query || query.length < 2) {
|
|
91
|
-
this.
|
|
92
|
-
this.
|
|
163
|
+
this.SearchResults = [];
|
|
164
|
+
this.ShowResults = false;
|
|
93
165
|
return;
|
|
94
166
|
}
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
167
|
+
this.IsSearching = true;
|
|
168
|
+
this.ShowResults = true;
|
|
97
169
|
try {
|
|
98
170
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
99
171
|
// Escape single quotes in query to prevent SQL errors
|
|
100
172
|
const escapedQuery = query.replace(/'/g, "''");
|
|
101
173
|
// Build exclude filter
|
|
102
174
|
let excludeFilter = '';
|
|
103
|
-
if (this.
|
|
104
|
-
const ids = this.
|
|
175
|
+
if (this.ExcludeUserIds.length > 0) {
|
|
176
|
+
const ids = this.ExcludeUserIds.map(id => `'${id}'`).join(',');
|
|
105
177
|
excludeFilter = ` AND ID NOT IN (${ids})`;
|
|
106
178
|
}
|
|
107
179
|
// Search in Name, Email, FirstName, and LastName (case-insensitive)
|
|
@@ -117,7 +189,7 @@ export class UserPickerComponent extends BaseAngularComponent {
|
|
|
117
189
|
OrderBy: 'Name ASC',
|
|
118
190
|
MaxRows: 20,
|
|
119
191
|
ResultType: 'entity_object'
|
|
120
|
-
}, this.
|
|
192
|
+
}, this.CurrentUser);
|
|
121
193
|
console.log('User search result:', {
|
|
122
194
|
query,
|
|
123
195
|
success: result.Success,
|
|
@@ -125,7 +197,7 @@ export class UserPickerComponent extends BaseAngularComponent {
|
|
|
125
197
|
error: result.ErrorMessage
|
|
126
198
|
});
|
|
127
199
|
if (result.Success && result.Results) {
|
|
128
|
-
this.
|
|
200
|
+
this.SearchResults = result.Results.map(user => ({
|
|
129
201
|
id: user.ID,
|
|
130
202
|
name: user.Name,
|
|
131
203
|
email: user.Email,
|
|
@@ -135,20 +207,20 @@ export class UserPickerComponent extends BaseAngularComponent {
|
|
|
135
207
|
}
|
|
136
208
|
else {
|
|
137
209
|
console.warn('User search returned no results or failed:', result.ErrorMessage);
|
|
138
|
-
this.
|
|
210
|
+
this.SearchResults = [];
|
|
139
211
|
}
|
|
140
212
|
}
|
|
141
213
|
catch (error) {
|
|
142
214
|
console.error('Error searching users:', error);
|
|
143
|
-
this.
|
|
215
|
+
this.SearchResults = [];
|
|
144
216
|
}
|
|
145
217
|
finally {
|
|
146
|
-
this.
|
|
218
|
+
this.IsSearching = false;
|
|
147
219
|
this.cdr.detectChanges();
|
|
148
220
|
}
|
|
149
221
|
}
|
|
150
222
|
static ɵfac = function UserPickerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UserPickerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
151
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserPickerComponent, selectors: [["mj-user-picker"]], inputs: { currentUser: "currentUser", excludeUserIds: "excludeUserIds", placeholder: "placeholder" }, outputs: { userSelected: "userSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 7, consts: [[1, "user-picker"], [1, "search-input-wrapper"], ["type", "text", 1, "user-search-input", 3, "ngModelChange", "keydown.enter", "ngModel", "placeholder", "disabled"], [1, "search-button", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-search"], [1, "search-results-dropdown"], [1, "user-search-item"], [1, "user-search-item", 3, "click"], [1, "user-avatar"], [1, "fa-solid", "fa-user"], [1, "user-info"], [1, "user-name"], [1, "user-email"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-user-slash", "Title", "No users found"]], template: function UserPickerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
223
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserPickerComponent, selectors: [["mj-user-picker"]], inputs: { CurrentUser: "CurrentUser", currentUser: "currentUser", ExcludeUserIds: "ExcludeUserIds", excludeUserIds: "excludeUserIds", Placeholder: "Placeholder", placeholder: "placeholder" }, outputs: { UserSelected: "UserSelected", userSelected: "userSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 7, consts: [[1, "user-picker"], [1, "search-input-wrapper"], ["type", "text", 1, "user-search-input", 3, "ngModelChange", "keydown.enter", "ngModel", "placeholder", "disabled"], [1, "search-button", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-search"], [1, "search-results-dropdown"], [1, "user-search-item"], [1, "user-search-item", 3, "click"], [1, "user-avatar"], [1, "fa-solid", "fa-user"], [1, "user-info"], [1, "user-name"], [1, "user-email"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-user-slash", "Title", "No users found"]], template: function UserPickerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
152
224
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "input", 2);
|
|
153
225
|
i0.ɵɵtwoWayListener("ngModelChange", function UserPickerComponent_Template_input_ngModelChange_2_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return $event; });
|
|
154
226
|
i0.ɵɵlistener("keydown.enter", function UserPickerComponent_Template_input_keydown_enter_2_listener() { return ctx.onSearch(); });
|
|
@@ -220,12 +292,20 @@ export class UserPickerComponent extends BaseAngularComponent {
|
|
|
220
292
|
}
|
|
221
293
|
</div>
|
|
222
294
|
`, styles: ["\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n "] }]
|
|
223
|
-
}], () => [{ type: i0.ChangeDetectorRef }], {
|
|
295
|
+
}], () => [{ type: i0.ChangeDetectorRef }], { CurrentUser: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], currentUser: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], ExcludeUserIds: [{
|
|
224
300
|
type: Input
|
|
225
301
|
}], excludeUserIds: [{
|
|
226
302
|
type: Input
|
|
303
|
+
}], Placeholder: [{
|
|
304
|
+
type: Input
|
|
227
305
|
}], placeholder: [{
|
|
228
306
|
type: Input
|
|
307
|
+
}], UserSelected: [{
|
|
308
|
+
type: Output
|
|
229
309
|
}], userSelected: [{
|
|
230
310
|
type: Output
|
|
231
311
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-picker.component.js","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\nimport { FormsModule } from '@angular/forms';\nimport { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\nexport interface UserSearchResult {\n id: string;\n name: string;\n email: string;\n firstName: string;\n lastName: string;\n}\n\n@Component({\n selector: 'mj-user-picker',\n standalone: true,\n imports: [FormsModule, MJEmptyStateComponent],\n template: `\n <div class=\"user-picker\">\n <div class=\"search-input-wrapper\">\n <input\n type=\"text\"\n class=\"user-search-input\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onSearch()\"\n [disabled]=\"isSearching\"\n />\n <button class=\"search-button\" (click)=\"onSearch()\" [disabled]=\"isSearching\">\n @if (isSearching) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-search\"></i>\n }\n </button>\n </div>\n\n @if (showResults && searchResults.length > 0) {\n <div class=\"search-results-dropdown\">\n @for (user of searchResults; track user.id) {\n <div class=\"user-search-item\" (click)=\"onSelectUser(user)\">\n <div class=\"user-avatar\">\n <i class=\"fa-solid fa-user\"></i>\n </div>\n <div class=\"user-info\">\n <div class=\"user-name\">{{ user.name }}</div>\n <div class=\"user-email\">{{ user.email }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n @if (showResults && searchResults.length === 0 && searchQuery.length >= 2 && !isSearching) {\n <div class=\"search-results-dropdown\">\n <mj-empty-state Variant=\"no-results\" Size=\"compact\"\n Icon=\"fa-solid fa-user-slash\" Title=\"No users found\" />\n </div>\n }\n </div>\n `,\n styles: [`\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `]\n})\nexport class UserPickerComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Input() currentUser!: UserInfo;\n @Input() excludeUserIds: string[] = [];\n @Input() placeholder: string = 'Search for a user (press Enter)...';\n\n constructor(private cdr: ChangeDetectorRef) {\n super();}\n\n @Output() userSelected = new EventEmitter<UserSearchResult>();\n\n searchQuery: string = '';\n searchResults: UserSearchResult[] = [];\n isSearching: boolean = false;\n showResults: boolean = false;\n\n ngOnInit(): void {\n // Add click outside listener to close dropdown\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n private handleClickOutside(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest('.user-picker')) {\n this.showResults = false;\n }\n }\n\n onSearch(): void {\n if (!this.searchQuery || this.searchQuery.trim().length < 2) {\n this.showResults = false;\n return;\n }\n\n this.performSearch(this.searchQuery.trim());\n }\n\n onSelectUser(user: UserSearchResult): void {\n this.userSelected.emit(user);\n this.searchQuery = '';\n this.searchResults = [];\n this.showResults = false;\n }\n\n private async performSearch(query: string): Promise<void> {\n if (!query || query.length < 2) {\n this.searchResults = [];\n this.showResults = false;\n return;\n }\n\n this.isSearching = true;\n this.showResults = true;\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n\n // Escape single quotes in query to prevent SQL errors\n const escapedQuery = query.replace(/'/g, \"''\");\n\n // Build exclude filter\n let excludeFilter = '';\n if (this.excludeUserIds.length > 0) {\n const ids = this.excludeUserIds.map(id => `'${id}'`).join(',');\n excludeFilter = ` AND ID NOT IN (${ids})`;\n }\n\n // Search in Name, Email, FirstName, and LastName (case-insensitive)\n const searchFilter = `(\n Name LIKE '%${escapedQuery}%' OR\n Email LIKE '%${escapedQuery}%' OR\n FirstName LIKE '%${escapedQuery}%' OR\n LastName LIKE '%${escapedQuery}%'\n )${excludeFilter}`;\n\n const result = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: searchFilter,\n OrderBy: 'Name ASC',\n MaxRows: 20,\n ResultType: 'entity_object'\n }, this.currentUser);\n\n console.log('User search result:', {\n query,\n success: result.Success,\n count: result.Results?.length,\n error: result.ErrorMessage\n });\n\n if (result.Success && result.Results) {\n this.searchResults = result.Results.map(user => ({\n id: user.ID,\n name: user.Name,\n email: user.Email,\n firstName: user.FirstName || '',\n lastName: user.LastName || ''\n }));\n } else {\n console.warn('User search returned no results or failed:', result.ErrorMessage);\n this.searchResults = [];\n }\n } catch (error) {\n console.error('Error searching users:', error);\n this.searchResults = [];\n } finally {\n this.isSearching = false;\n this.cdr.detectChanges();\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"user-picker.component.js","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\nimport { FormsModule } from '@angular/forms';\nimport { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\nexport interface UserSearchResult {\n id: string;\n name: string;\n email: string;\n firstName: string;\n lastName: string;\n}\n\n@Component({\n selector: 'mj-user-picker',\n standalone: true,\n imports: [FormsModule, MJEmptyStateComponent],\n template: `\n <div class=\"user-picker\">\n <div class=\"search-input-wrapper\">\n <input\n type=\"text\"\n class=\"user-search-input\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onSearch()\"\n [disabled]=\"isSearching\"\n />\n <button class=\"search-button\" (click)=\"onSearch()\" [disabled]=\"isSearching\">\n @if (isSearching) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-search\"></i>\n }\n </button>\n </div>\n\n @if (showResults && searchResults.length > 0) {\n <div class=\"search-results-dropdown\">\n @for (user of searchResults; track user.id) {\n <div class=\"user-search-item\" (click)=\"onSelectUser(user)\">\n <div class=\"user-avatar\">\n <i class=\"fa-solid fa-user\"></i>\n </div>\n <div class=\"user-info\">\n <div class=\"user-name\">{{ user.name }}</div>\n <div class=\"user-email\">{{ user.email }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n @if (showResults && searchResults.length === 0 && searchQuery.length >= 2 && !isSearching) {\n <div class=\"search-results-dropdown\">\n <mj-empty-state Variant=\"no-results\" Size=\"compact\"\n Icon=\"fa-solid fa-user-slash\" Title=\"No users found\" />\n </div>\n }\n </div>\n `,\n styles: [`\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `]\n})\nexport class UserPickerComponent extends BaseAngularComponent implements OnInit, OnDestroy {\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() ExcludeUserIds: string[] = [];\n\n /** @deprecated Use {@link ExcludeUserIds}. */\n @Input() set excludeUserIds(value: string[]) {\n this.ExcludeUserIds = value;\n }\n /** @deprecated Use {@link ExcludeUserIds}. */\n get excludeUserIds(): string[] {\n return this.ExcludeUserIds;\n }\n @Input() Placeholder: string = 'Search for a user (press Enter)...';\n\n /** @deprecated Use {@link Placeholder}. */\n @Input() set placeholder(value: string) {\n this.Placeholder = value;\n }\n /** @deprecated Use {@link Placeholder}. */\n get placeholder(): string {\n return this.Placeholder;\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n super();}\n\n @Output() UserSelected = new EventEmitter<UserSearchResult>();\n\n /**\n * @deprecated Use {@link UserSelected}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (userSelected) keeps working. Must stay AFTER UserSelected: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() userSelected = this.UserSelected;\n\n SearchQuery: string = '';\n\n /** @deprecated Use {@link SearchQuery}. */\n get searchQuery(): string {\n return this.SearchQuery;\n }\n /** @deprecated Use {@link SearchQuery}. */\n set searchQuery(value: string) {\n this.SearchQuery = value;\n }\n SearchResults: UserSearchResult[] = [];\n\n /** @deprecated Use {@link SearchResults}. */\n get searchResults(): UserSearchResult[] {\n return this.SearchResults;\n }\n /** @deprecated Use {@link SearchResults}. */\n set searchResults(value: UserSearchResult[]) {\n this.SearchResults = value;\n }\n IsSearching: boolean = false;\n\n /** @deprecated Use {@link IsSearching}. */\n get isSearching(): boolean {\n return this.IsSearching;\n }\n /** @deprecated Use {@link IsSearching}. */\n set isSearching(value: boolean) {\n this.IsSearching = value;\n }\n ShowResults: boolean = false;\n\n /** @deprecated Use {@link ShowResults}. */\n get showResults(): boolean {\n return this.ShowResults;\n }\n /** @deprecated Use {@link ShowResults}. */\n set showResults(value: boolean) {\n this.ShowResults = value;\n }\n\n ngOnInit(): void {\n // Add click outside listener to close dropdown\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n private handleClickOutside(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest('.user-picker')) {\n this.ShowResults = false;\n }\n }\n\n OnSearch(): void {\n if (!this.SearchQuery || this.SearchQuery.trim().length < 2) {\n this.ShowResults = false;\n return;\n }\n\n this.performSearch(this.SearchQuery.trim());\n }\n\n /** @deprecated Use {@link OnSearch}. */\n onSearch(): void {\n return this.OnSearch();\n }\n\n OnSelectUser(user: UserSearchResult): void {\n this.UserSelected.emit(user);\n this.SearchQuery = '';\n this.SearchResults = [];\n this.ShowResults = false;\n }\n\n /** @deprecated Use {@link OnSelectUser}. */\n onSelectUser(user: UserSearchResult): void {\n return this.OnSelectUser(user);\n }\n\n private async performSearch(query: string): Promise<void> {\n if (!query || query.length < 2) {\n this.SearchResults = [];\n this.ShowResults = false;\n return;\n }\n\n this.IsSearching = true;\n this.ShowResults = true;\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n\n // Escape single quotes in query to prevent SQL errors\n const escapedQuery = query.replace(/'/g, \"''\");\n\n // Build exclude filter\n let excludeFilter = '';\n if (this.ExcludeUserIds.length > 0) {\n const ids = this.ExcludeUserIds.map(id => `'${id}'`).join(',');\n excludeFilter = ` AND ID NOT IN (${ids})`;\n }\n\n // Search in Name, Email, FirstName, and LastName (case-insensitive)\n const searchFilter = `(\n Name LIKE '%${escapedQuery}%' OR\n Email LIKE '%${escapedQuery}%' OR\n FirstName LIKE '%${escapedQuery}%' OR\n LastName LIKE '%${escapedQuery}%'\n )${excludeFilter}`;\n\n const result = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: searchFilter,\n OrderBy: 'Name ASC',\n MaxRows: 20,\n ResultType: 'entity_object'\n }, this.CurrentUser);\n\n console.log('User search result:', {\n query,\n success: result.Success,\n count: result.Results?.length,\n error: result.ErrorMessage\n });\n\n if (result.Success && result.Results) {\n this.SearchResults = result.Results.map(user => ({\n id: user.ID,\n name: user.Name,\n email: user.Email,\n firstName: user.FirstName || '',\n lastName: user.LastName || ''\n }));\n } else {\n console.warn('User search returned no results or failed:', result.ErrorMessage);\n this.SearchResults = [];\n }\n } catch (error) {\n console.error('Error searching users:', error);\n this.SearchResults = [];\n } finally {\n this.IsSearching = false;\n this.cdr.detectChanges();\n }\n }\n}\n"]}
|
|
@@ -4,40 +4,143 @@ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
|
4
4
|
import { NavigationTab } from '../../models/conversation-state.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class ConversationSidebarComponent extends BaseAngularComponent {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
ActiveTab: NavigationTab;
|
|
8
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
9
|
+
set activeTab(value: NavigationTab);
|
|
10
|
+
/** @deprecated Use {@link ActiveTab}. */
|
|
11
|
+
get activeTab(): NavigationTab;
|
|
12
|
+
EnvironmentId: string;
|
|
13
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
14
|
+
set environmentId(value: string);
|
|
15
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
16
|
+
get environmentId(): string;
|
|
17
|
+
CurrentUser: UserInfo;
|
|
18
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
19
|
+
set currentUser(value: UserInfo);
|
|
20
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
21
|
+
get currentUser(): UserInfo;
|
|
22
|
+
SelectedConversationId: string | null;
|
|
23
|
+
/** @deprecated Use {@link SelectedConversationId}. */
|
|
24
|
+
set selectedConversationId(value: string | null);
|
|
25
|
+
/** @deprecated Use {@link SelectedConversationId}. */
|
|
26
|
+
get selectedConversationId(): string | null;
|
|
27
|
+
RenamedConversationId: string | null;
|
|
28
|
+
/** @deprecated Use {@link RenamedConversationId}. */
|
|
29
|
+
set renamedConversationId(value: string | null);
|
|
30
|
+
/** @deprecated Use {@link RenamedConversationId}. */
|
|
31
|
+
get renamedConversationId(): string | null;
|
|
32
|
+
IsSidebarPinned: boolean;
|
|
33
|
+
/** @deprecated Use {@link IsSidebarPinned}. */
|
|
34
|
+
set isSidebarPinned(value: boolean);
|
|
35
|
+
/** @deprecated Use {@link IsSidebarPinned}. */
|
|
36
|
+
get isSidebarPinned(): boolean;
|
|
37
|
+
IsMobileView: boolean;
|
|
38
|
+
/** @deprecated Use {@link IsMobileView}. */
|
|
39
|
+
set isMobileView(value: boolean);
|
|
40
|
+
/** @deprecated Use {@link IsMobileView}. */
|
|
41
|
+
get isMobileView(): boolean;
|
|
14
42
|
/** Show the Routines section at the bottom of the sidebar (bubbled from the workspace; default true). */
|
|
15
43
|
ShowRoutines: boolean;
|
|
16
44
|
/** Show the list's search box. */
|
|
17
45
|
showSearch: boolean;
|
|
18
46
|
/** Show the list's "New Conversation" button. */
|
|
19
|
-
|
|
47
|
+
ShowNewConversationButton: boolean;
|
|
48
|
+
/** @deprecated Use {@link ShowNewConversationButton}. */
|
|
49
|
+
set showNewConversationButton(value: boolean);
|
|
50
|
+
/** @deprecated Use {@link ShowNewConversationButton}. */
|
|
51
|
+
get showNewConversationButton(): boolean;
|
|
20
52
|
/** Show the list's ⋯ header options menu. */
|
|
21
|
-
|
|
53
|
+
ShowHeaderMenu: boolean;
|
|
54
|
+
/** @deprecated Use {@link ShowHeaderMenu}. */
|
|
55
|
+
set showHeaderMenu(value: boolean);
|
|
56
|
+
/** @deprecated Use {@link ShowHeaderMenu}. */
|
|
57
|
+
get showHeaderMenu(): boolean;
|
|
22
58
|
/** Show the list's collapsible section headers. */
|
|
23
|
-
|
|
59
|
+
ShowSectionHeaders: boolean;
|
|
60
|
+
/** @deprecated Use {@link ShowSectionHeaders}. */
|
|
61
|
+
set showSectionHeaders(value: boolean);
|
|
62
|
+
/** @deprecated Use {@link ShowSectionHeaders}. */
|
|
63
|
+
get showSectionHeaders(): boolean;
|
|
64
|
+
ConversationSelected: EventEmitter<string>;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated Use {@link ConversationSelected}.
|
|
67
|
+
*
|
|
68
|
+
* The same emitter under the old binding name, so a template still binding
|
|
69
|
+
* (conversationSelected) keeps working. Must stay AFTER ConversationSelected: class fields
|
|
70
|
+
* initialise in order, and the other way round this captures undefined.
|
|
71
|
+
*/
|
|
24
72
|
conversationSelected: EventEmitter<string>;
|
|
25
73
|
/** Forwarded from the routines section — a run's linked execution record was clicked. */
|
|
74
|
+
OpenEntityRecord: EventEmitter<{
|
|
75
|
+
entityName: string;
|
|
76
|
+
compositeKey: CompositeKey;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* @deprecated Use {@link OpenEntityRecord}.
|
|
80
|
+
*
|
|
81
|
+
* The same emitter under the old binding name, so a template still binding
|
|
82
|
+
* (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields
|
|
83
|
+
* initialise in order, and the other way round this captures undefined.
|
|
84
|
+
*/
|
|
26
85
|
openEntityRecord: EventEmitter<{
|
|
27
86
|
entityName: string;
|
|
28
87
|
compositeKey: CompositeKey;
|
|
29
88
|
}>;
|
|
89
|
+
NewConversationRequested: EventEmitter<void>;
|
|
90
|
+
/**
|
|
91
|
+
* @deprecated Use {@link NewConversationRequested}.
|
|
92
|
+
*
|
|
93
|
+
* The same emitter under the old binding name, so a template still binding
|
|
94
|
+
* (newConversationRequested) keeps working. Must stay AFTER NewConversationRequested: class fields
|
|
95
|
+
* initialise in order, and the other way round this captures undefined.
|
|
96
|
+
*/
|
|
30
97
|
newConversationRequested: EventEmitter<void>;
|
|
98
|
+
PinSidebarRequested: EventEmitter<void>;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use {@link PinSidebarRequested}.
|
|
101
|
+
*
|
|
102
|
+
* The same emitter under the old binding name, so a template still binding
|
|
103
|
+
* (pinSidebarRequested) keeps working. Must stay AFTER PinSidebarRequested: class fields
|
|
104
|
+
* initialise in order, and the other way round this captures undefined.
|
|
105
|
+
*/
|
|
31
106
|
pinSidebarRequested: EventEmitter<void>;
|
|
107
|
+
UnpinSidebarRequested: EventEmitter<void>;
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Use {@link UnpinSidebarRequested}.
|
|
110
|
+
*
|
|
111
|
+
* The same emitter under the old binding name, so a template still binding
|
|
112
|
+
* (unpinSidebarRequested) keeps working. Must stay AFTER UnpinSidebarRequested: class fields
|
|
113
|
+
* initialise in order, and the other way round this captures undefined.
|
|
114
|
+
*/
|
|
32
115
|
unpinSidebarRequested: EventEmitter<void>;
|
|
33
116
|
/** Re-emitted from the conversation list — a conversation was deleted (payload = its ID).
|
|
34
117
|
* Hosts use this to recover when the ACTIVE conversation is deleted. */
|
|
118
|
+
ConversationDeleted: EventEmitter<string>;
|
|
119
|
+
/**
|
|
120
|
+
* @deprecated Use {@link ConversationDeleted}.
|
|
121
|
+
*
|
|
122
|
+
* The same emitter under the old binding name, so a template still binding
|
|
123
|
+
* (conversationDeleted) keeps working. Must stay AFTER ConversationDeleted: class fields
|
|
124
|
+
* initialise in order, and the other way round this captures undefined.
|
|
125
|
+
*/
|
|
35
126
|
conversationDeleted: EventEmitter<string>;
|
|
36
127
|
/** Re-emitted from the conversation list — the user refreshed the list. */
|
|
128
|
+
RefreshRequested: EventEmitter<void>;
|
|
129
|
+
/**
|
|
130
|
+
* @deprecated Use {@link RefreshRequested}.
|
|
131
|
+
*
|
|
132
|
+
* The same emitter under the old binding name, so a template still binding
|
|
133
|
+
* (refreshRequested) keeps working. Must stay AFTER RefreshRequested: class fields
|
|
134
|
+
* initialise in order, and the other way round this captures undefined.
|
|
135
|
+
*/
|
|
37
136
|
refreshRequested: EventEmitter<void>;
|
|
137
|
+
OnPinSidebarRequested(): void;
|
|
138
|
+
/** @deprecated Use {@link OnPinSidebarRequested}. */
|
|
38
139
|
onPinSidebarRequested(): void;
|
|
140
|
+
OnUnpinSidebarRequested(): void;
|
|
141
|
+
/** @deprecated Use {@link OnUnpinSidebarRequested}. */
|
|
39
142
|
onUnpinSidebarRequested(): void;
|
|
40
143
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationSidebarComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationSidebarComponent, "mj-conversation-sidebar", never, { "activeTab": { "alias": "activeTab"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "selectedConversationId": { "alias": "selectedConversationId"; "required": false; }; "renamedConversationId": { "alias": "renamedConversationId"; "required": false; }; "isSidebarPinned": { "alias": "isSidebarPinned"; "required": false; }; "isMobileView": { "alias": "isMobileView"; "required": false; }; "ShowRoutines": { "alias": "ShowRoutines"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showNewConversationButton": { "alias": "showNewConversationButton"; "required": false; }; "showHeaderMenu": { "alias": "showHeaderMenu"; "required": false; }; "showSectionHeaders": { "alias": "showSectionHeaders"; "required": false; }; }, { "conversationSelected": "conversationSelected"; "openEntityRecord": "openEntityRecord"; "newConversationRequested": "newConversationRequested"; "pinSidebarRequested": "pinSidebarRequested"; "unpinSidebarRequested": "unpinSidebarRequested"; "conversationDeleted": "conversationDeleted"; "refreshRequested": "refreshRequested"; }, never, never, false, never>;
|
|
144
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationSidebarComponent, "mj-conversation-sidebar", 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; }; "SelectedConversationId": { "alias": "SelectedConversationId"; "required": false; }; "selectedConversationId": { "alias": "selectedConversationId"; "required": false; }; "RenamedConversationId": { "alias": "RenamedConversationId"; "required": false; }; "renamedConversationId": { "alias": "renamedConversationId"; "required": false; }; "IsSidebarPinned": { "alias": "IsSidebarPinned"; "required": false; }; "isSidebarPinned": { "alias": "isSidebarPinned"; "required": false; }; "IsMobileView": { "alias": "IsMobileView"; "required": false; }; "isMobileView": { "alias": "isMobileView"; "required": false; }; "ShowRoutines": { "alias": "ShowRoutines"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "ShowNewConversationButton": { "alias": "ShowNewConversationButton"; "required": false; }; "showNewConversationButton": { "alias": "showNewConversationButton"; "required": false; }; "ShowHeaderMenu": { "alias": "ShowHeaderMenu"; "required": false; }; "showHeaderMenu": { "alias": "showHeaderMenu"; "required": false; }; "ShowSectionHeaders": { "alias": "ShowSectionHeaders"; "required": false; }; "showSectionHeaders": { "alias": "showSectionHeaders"; "required": false; }; }, { "ConversationSelected": "ConversationSelected"; "conversationSelected": "conversationSelected"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "NewConversationRequested": "NewConversationRequested"; "newConversationRequested": "newConversationRequested"; "PinSidebarRequested": "PinSidebarRequested"; "pinSidebarRequested": "pinSidebarRequested"; "UnpinSidebarRequested": "UnpinSidebarRequested"; "unpinSidebarRequested": "unpinSidebarRequested"; "ConversationDeleted": "ConversationDeleted"; "conversationDeleted": "conversationDeleted"; "RefreshRequested": "RefreshRequested"; "refreshRequested": "refreshRequested"; }, never, never, false, never>;
|
|
42
145
|
}
|
|
43
146
|
//# sourceMappingURL=conversation-sidebar.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-sidebar.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/conversation-sidebar.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;;AAEtE,qBAyEa,4BAA6B,SAAQ,oBAAoB;IAC3D,SAAS,EAAE,aAAa,CAAmB;
|
|
1
|
+
{"version":3,"file":"conversation-sidebar.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/conversation-sidebar.component.ts"],"names":[],"mappings":"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"}
|