@memberjunction/ng-conversations 5.43.0 → 5.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +0 -1
- 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 +56 -52
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +3 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +52 -52
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +10 -14
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts +3 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +56 -56
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts +3 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +10 -7
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts +3 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +29 -41
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +134 -166
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.d.ts +103 -0
- package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -0
- package/dist/lib/components/composer/ai-composer.component.js +263 -0
- package/dist/lib/components/composer/ai-composer.component.js.map +1 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +76 -12
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +522 -158
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.js +6 -9
- package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +20 -24
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +10 -11
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +87 -23
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +245 -158
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +11 -3
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +73 -21
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.js +6 -9
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +4 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +9 -4
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +45 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +10 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts +46 -0
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js +174 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts +123 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +397 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts +103 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.js +143 -0
- package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts +24 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js +107 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts +89 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.js +253 -0
- package/dist/lib/components/realtime/media/media-channel.js.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +141 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js +574 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +59 -14
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +277 -74
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +28 -27
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.js +144 -143
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +105 -43
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +41 -7
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.js +216 -102
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +0 -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 +67 -71
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +364 -44
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +839 -153
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.d.ts +5 -5
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts +70 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js +115 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +55 -57
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +165 -143
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +80 -71
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +83 -113
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +270 -0
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-ui-config.js +212 -0
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -0
- package/dist/lib/components/search/search-panel.component.d.ts +2 -0
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +92 -101
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +10 -11
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +12 -15
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +11 -3
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +34 -10
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.d.ts +73 -0
- package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -0
- package/dist/lib/components/sidebar/routines-section.component.js +211 -0
- package/dist/lib/components/sidebar/routines-section.component.js.map +1 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +12 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +37 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +16 -5
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +51 -31
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/composer-plugins/agent-mention.provider.d.ts +16 -0
- package/dist/lib/composer-plugins/agent-mention.provider.d.ts.map +1 -0
- package/dist/lib/composer-plugins/agent-mention.provider.js +28 -0
- package/dist/lib/composer-plugins/agent-mention.provider.js.map +1 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +20 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js +32 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -0
- package/dist/lib/composer-plugins/load-composer-plugins.d.ts +9 -0
- package/dist/lib/composer-plugins/load-composer-plugins.d.ts.map +1 -0
- package/dist/lib/composer-plugins/load-composer-plugins.js +17 -0
- package/dist/lib/composer-plugins/load-composer-plugins.js.map +1 -0
- package/dist/lib/composer-plugins/record-mention.provider.d.ts +14 -0
- package/dist/lib/composer-plugins/record-mention.provider.d.ts.map +1 -0
- package/dist/lib/composer-plugins/record-mention.provider.js +26 -0
- package/dist/lib/composer-plugins/record-mention.provider.js.map +1 -0
- package/dist/lib/composer-plugins/skill-command.provider.d.ts +15 -0
- package/dist/lib/composer-plugins/skill-command.provider.d.ts.map +1 -0
- package/dist/lib/composer-plugins/skill-command.provider.js +27 -0
- package/dist/lib/composer-plugins/skill-command.provider.js.map +1 -0
- package/dist/lib/conversations.module.d.ts +68 -64
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +69 -18
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +6 -3
- 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/services/conversation-agent.service.d.ts +9 -2
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +26 -2
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +42 -19
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +113 -18
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +143 -0
- package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -0
- package/dist/lib/services/realtime-audio-recorder.js +379 -0
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts +75 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.js +205 -0
- package/dist/lib/services/realtime-pcm-wav.js.map +1 -0
- package/dist/lib/services/realtime-session-review.service.d.ts +28 -1
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session-review.service.js +12 -3
- package/dist/lib/services/realtime-session-review.service.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +210 -20
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +452 -21
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +7 -2
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js +6 -2
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/lib/utils/plan-mode-preference.d.ts +62 -0
- package/dist/lib/utils/plan-mode-preference.d.ts.map +1 -0
- package/dist/lib/utils/plan-mode-preference.js +130 -0
- package/dist/lib/utils/plan-mode-preference.js.map +1 -0
- package/dist/public-api.d.ts +29 -3
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +46 -3
- package/dist/public-api.js.map +1 -1
- package/package.json +30 -26
- package/dist/__tests__/attachment-badge.test.d.ts +0 -2
- package/dist/__tests__/attachment-badge.test.d.ts.map +0 -1
- package/dist/__tests__/attachment-badge.test.js +0 -66
- package/dist/__tests__/attachment-badge.test.js.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.d.ts +0 -2
- package/dist/__tests__/channel-optional-surface.test.d.ts.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.js +0 -53
- package/dist/__tests__/channel-optional-surface.test.js.map +0 -1
- package/dist/__tests__/chat-events.test.d.ts +0 -14
- package/dist/__tests__/chat-events.test.d.ts.map +0 -1
- package/dist/__tests__/chat-events.test.js +0 -109
- package/dist/__tests__/chat-events.test.js.map +0 -1
- package/dist/__tests__/collections-full-view.test.d.ts +0 -2
- package/dist/__tests__/collections-full-view.test.d.ts.map +0 -1
- package/dist/__tests__/collections-full-view.test.js +0 -225
- package/dist/__tests__/collections-full-view.test.js.map +0 -1
- package/dist/__tests__/conversation-cache.test.d.ts +0 -2
- package/dist/__tests__/conversation-cache.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-cache.test.js +0 -233
- package/dist/__tests__/conversation-cache.test.js.map +0 -1
- package/dist/__tests__/conversation-naming.test.d.ts +0 -2
- package/dist/__tests__/conversation-naming.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-naming.test.js +0 -110
- package/dist/__tests__/conversation-naming.test.js.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.d.ts +0 -2
- package/dist/__tests__/delegation-result-parser.test.d.ts.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.js +0 -107
- package/dist/__tests__/delegation-result-parser.test.js.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.d.ts +0 -2
- package/dist/__tests__/distinct-artifacts.test.d.ts.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.js +0 -56
- package/dist/__tests__/distinct-artifacts.test.js.map +0 -1
- package/dist/__tests__/event-wiring.test.d.ts +0 -15
- package/dist/__tests__/event-wiring.test.d.ts.map +0 -1
- package/dist/__tests__/event-wiring.test.js +0 -100
- package/dist/__tests__/event-wiring.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -7
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/__tests__/narration-template.test.d.ts +0 -2
- package/dist/__tests__/narration-template.test.d.ts.map +0 -1
- package/dist/__tests__/narration-template.test.js +0 -76
- package/dist/__tests__/narration-template.test.js.map +0 -1
- package/dist/__tests__/notification-model.test.d.ts +0 -2
- package/dist/__tests__/notification-model.test.d.ts.map +0 -1
- package/dist/__tests__/notification-model.test.js +0 -68
- package/dist/__tests__/notification-model.test.js.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts +0 -2
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.js +0 -49
- package/dist/__tests__/realtime-agent-picker-models.test.js.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.d.ts +0 -2
- package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.js +0 -123
- package/dist/__tests__/realtime-audio-visuals.test.js.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +0 -2
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.js +0 -48
- package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.d.ts +0 -2
- package/dist/__tests__/realtime-disclosure.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.js +0 -164
- package/dist/__tests__/realtime-disclosure.test.js.map +0 -1
- package/dist/__tests__/realtime-pairing.test.d.ts +0 -2
- package/dist/__tests__/realtime-pairing.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-pairing.test.js +0 -207
- package/dist/__tests__/realtime-pairing.test.js.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts +0 -2
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.js +0 -154
- package/dist/__tests__/realtime-review-lifecycle.test.js.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.js +0 -230
- package/dist/__tests__/realtime-session-cancel-usage.test.js.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-channels.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.js +0 -252
- package/dist/__tests__/realtime-session-channels.test.js.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.js +0 -103
- package/dist/__tests__/realtime-session-client-tools.test.js.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-minimized.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.js +0 -32
- package/dist/__tests__/realtime-session-minimized.test.js.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-mint.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.js +0 -69
- package/dist/__tests__/realtime-session-mint.test.js.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-policy.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.js +0 -303
- package/dist/__tests__/realtime-session-policy.test.js.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-review.service.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.js +0 -743
- package/dist/__tests__/realtime-session-review.service.test.js.map +0 -1
- package/dist/__tests__/realtime-session-state.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-state.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-state.test.js +0 -83
- package/dist/__tests__/realtime-session-state.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.js +0 -106
- package/dist/__tests__/realtime-session-timeline-card.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.js +0 -142
- package/dist/__tests__/realtime-session-timeline.test.js.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts +0 -19
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.js +0 -188
- package/dist/__tests__/realtime-sessions-adapter.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.js +0 -100
- package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.js +0 -193
- package/dist/__tests__/realtime-surface-tabs-model.test.js.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.js +0 -137
- package/dist/__tests__/remote-browser-audio-player.test.js.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-channel.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.js +0 -585
- package/dist/__tests__/remote-browser-channel.test.js.map +0 -1
- package/dist/__tests__/search-service.test.d.ts +0 -2
- package/dist/__tests__/search-service.test.d.ts.map +0 -1
- package/dist/__tests__/search-service.test.js +0 -114
- package/dist/__tests__/search-service.test.js.map +0 -1
- package/dist/__tests__/slot-defaults.test.d.ts +0 -24
- package/dist/__tests__/slot-defaults.test.d.ts.map +0 -1
- package/dist/__tests__/slot-defaults.test.js +0 -63
- package/dist/__tests__/slot-defaults.test.js.map +0 -1
- package/dist/__tests__/toast-service.test.d.ts +0 -2
- package/dist/__tests__/toast-service.test.d.ts.map +0 -1
- package/dist/__tests__/toast-service.test.js +0 -143
- package/dist/__tests__/toast-service.test.js.map +0 -1
- package/dist/__tests__/user-authorization.test.d.ts +0 -2
- package/dist/__tests__/user-authorization.test.d.ts.map +0 -1
- package/dist/__tests__/user-authorization.test.js +0 -97
- package/dist/__tests__/user-authorization.test.js.map +0 -1
- package/dist/__tests__/voice-session-narration.test.d.ts +0 -2
- package/dist/__tests__/voice-session-narration.test.d.ts.map +0 -1
- package/dist/__tests__/voice-session-narration.test.js +0 -609
- package/dist/__tests__/voice-session-narration.test.js.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.js +0 -101
- package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-channel.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.js +0 -260
- package/dist/__tests__/whiteboard-channel.test.js.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.js +0 -108
- package/dist/__tests__/whiteboard-restore-state.test.js.map +0 -1
- package/dist/lib/components/mention/mention-dropdown.component.d.ts +0 -53
- package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +0 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +0 -276
- package/dist/lib/components/mention/mention-dropdown.component.js.map +0 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts +0 -256
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +0 -1
- package/dist/lib/components/mention/mention-editor.component.js +0 -1233
- package/dist/lib/components/mention/mention-editor.component.js.map +0 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +0 -137
- package/dist/lib/components/message/message-input-box.component.d.ts.map +0 -1
- package/dist/lib/components/message/message-input-box.component.js +0 -321
- package/dist/lib/components/message/message-input-box.component.js.map +0 -1
|
@@ -16,9 +16,7 @@ function MembersModalComponent_Conditional_0_For_9_Template(rf, ctx) { if (rf &
|
|
|
16
16
|
i0.ɵɵtextInterpolate(option_r3.label);
|
|
17
17
|
} }
|
|
18
18
|
function MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
-
i0.ɵɵ
|
|
20
|
-
i0.ɵɵtext(2, "No additional members yet");
|
|
21
|
-
i0.ɵɵelementEnd()();
|
|
19
|
+
i0.ɵɵelement(0, "mj-empty-state", 14);
|
|
22
20
|
} }
|
|
23
21
|
function MembersModalComponent_Conditional_0_Conditional_15_For_3_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
24
22
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
@@ -56,7 +54,7 @@ function MembersModalComponent_Conditional_0_Conditional_15_For_3_Template(rf, c
|
|
|
56
54
|
} }
|
|
57
55
|
function MembersModalComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
58
56
|
i0.ɵɵelementStart(0, "div", 10);
|
|
59
|
-
i0.ɵɵconditionalCreate(1, MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template,
|
|
57
|
+
i0.ɵɵconditionalCreate(1, MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template, 1, 0, "mj-empty-state", 14);
|
|
60
58
|
i0.ɵɵrepeaterCreate(2, MembersModalComponent_Conditional_0_Conditional_15_For_3_Template, 12, 6, "div", 15, i0.ɵɵrepeaterTrackByIdentity);
|
|
61
59
|
i0.ɵɵelementEnd();
|
|
62
60
|
} if (rf & 2) {
|
|
@@ -258,11 +256,11 @@ export class MembersModalComponent {
|
|
|
258
256
|
this.isVisible = false;
|
|
259
257
|
}
|
|
260
258
|
static ɵfac = function MembersModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MembersModalComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); };
|
|
261
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MembersModalComponent, selectors: [["mj-members-modal"]], inputs: { isVisible: "isVisible", conversation: "conversation", currentUser: "currentUser" }, outputs: { cancelled: "cancelled", membersChanged: "membersChanged" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "members-modal-content"], [1, "add-member-section"], [1, "add-member-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "members-section"], [1, "members-list"], [1, "loading-indicator"], [1, "error-message"], ["mjButton", "", 3, "click"], [
|
|
259
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MembersModalComponent, selectors: [["mj-members-modal"]], inputs: { isVisible: "isVisible", conversation: "conversation", currentUser: "currentUser" }, outputs: { cancelled: "cancelled", membersChanged: "membersChanged" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "members-modal-content"], [1, "add-member-section"], [1, "add-member-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "members-section"], [1, "members-list"], [1, "loading-indicator"], [1, "error-message"], ["mjButton", "", 3, "click"], ["Icon", "fa-solid fa-user-group", "Title", "No additional members yet", "Size", "compact"], [1, "member-item"], [1, "member-info"], [1, "fas", "fa-user-circle"], [1, "member-details"], [1, "member-name"], [1, "member-email"], [1, "member-controls"], [1, "member-role"], ["title", "Remove member", 1, "btn-remove"], ["title", "Remove member", 1, "btn-remove", 3, "click"], [1, "fas", "fa-times"], ["text", "Loading members...", "size", "medium"]], template: function MembersModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
262
260
|
i0.ɵɵconditionalCreate(0, MembersModalComponent_Conditional_0_Template, 21, 11, "mj-dialog", 0);
|
|
263
261
|
} if (rf & 2) {
|
|
264
262
|
i0.ɵɵconditional(ctx.isVisible ? 0 : -1);
|
|
265
|
-
} }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJButtonDirective, i3.MJDialogComponent, i3.MJDialogActionsComponent, i4.LoadingComponent], styles: [".members-modal-content[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .add-member-form[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .members-list[_ngcontent-%COMP%] {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item[_ngcontent-%COMP%] {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .member-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #999;\n }\n\n .member-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n }\n\n .member-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role[_ngcontent-%COMP%] {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner[_ngcontent-%COMP%] {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove[_ngcontent-%COMP%] {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .
|
|
263
|
+
} }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJButtonDirective, i3.MJDialogComponent, i3.MJDialogActionsComponent, i3.MJEmptyStateComponent, i4.LoadingComponent], styles: [".members-modal-content[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .add-member-form[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .members-list[_ngcontent-%COMP%] {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item[_ngcontent-%COMP%] {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .member-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #999;\n }\n\n .member-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n }\n\n .member-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role[_ngcontent-%COMP%] {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner[_ngcontent-%COMP%] {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove[_ngcontent-%COMP%] {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message[_ngcontent-%COMP%] {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }"] });
|
|
266
264
|
}
|
|
267
265
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MembersModalComponent, [{
|
|
268
266
|
type: Component,
|
|
@@ -302,9 +300,10 @@ export class MembersModalComponent {
|
|
|
302
300
|
@if (!isLoading) {
|
|
303
301
|
<div class="members-list">
|
|
304
302
|
@if (members.length === 0) {
|
|
305
|
-
<
|
|
306
|
-
|
|
307
|
-
|
|
303
|
+
<mj-empty-state
|
|
304
|
+
Icon="fa-solid fa-user-group"
|
|
305
|
+
Title="No additional members yet"
|
|
306
|
+
Size="compact" />
|
|
308
307
|
}
|
|
309
308
|
@for (member of members; track member) {
|
|
310
309
|
<div class="member-item">
|
|
@@ -349,7 +348,7 @@ export class MembersModalComponent {
|
|
|
349
348
|
</mj-dialog-actions>
|
|
350
349
|
</mj-dialog>
|
|
351
350
|
}
|
|
352
|
-
`, styles: ["\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .
|
|
351
|
+
`, styles: ["\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n "] }]
|
|
353
352
|
}], () => [{ type: i1.DialogService }], { isVisible: [{
|
|
354
353
|
type: Input
|
|
355
354
|
}], conversation: [{
|
|
@@ -361,5 +360,5 @@ export class MembersModalComponent {
|
|
|
361
360
|
}], membersChanged: [{
|
|
362
361
|
type: Output
|
|
363
362
|
}] }); })();
|
|
364
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MembersModalComponent, { className: "MembersModalComponent", filePath: "src/lib/components/members/members-modal.component.ts", lineNumber:
|
|
363
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MembersModalComponent, { className: "MembersModalComponent", filePath: "src/lib/components/members/members-modal.component.ts", lineNumber: 230 }); })();
|
|
365
364
|
//# sourceMappingURL=members-modal.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;;;;;;;IAwCrD,iCAA+B;IAAA,YAAkB;IAAA,iBAAS;;;IAAlD,uCAAsB;IAAC,cAAkB;IAAlB,qCAAkB;;;IAc/C,AADF,+BAAyB,QACpB;IAAA,yCAAyB;IAC9B,AAD8B,iBAAI,EAC5B;;;;IAgBA,kCAGwB;IADtB,8QAAS,gCAAsB,KAAC;IAEhC,wBAA4B;IAC9B,iBAAS;;;IAjBb,AADF,+BAAyB,cACE;IACvB,wBAAkC;IAEhC,AADF,+BAA4B,cACD;IAAA,YAAqB;IAAA,iBAAM;IACpD,+BAA0B;IAAA,YAAsB;IAEpD,AADE,AADkD,iBAAM,EAClD,EACF;IAEJ,AADF,+BAA6B,eACuC;IAChE,aACF;IAAA,iBAAO;IACP,gIAA+B;IASnC,AADE,iBAAM,EACF;;;IAjByB,eAAqB;IAArB,wCAAqB;IACpB,eAAsB;IAAtB,yCAAsB;IAIxB,eAAuC;IAAvC,mDAAuC;IAC/D,cACF;IADE,gFACF;IACA,cAOC;IAPD,sDAOC;;;IA1BT,+BAA0B;IACxB,qHAA4B;IAK5B,yIAuBC;IACH,iBAAM;;;IA7BJ,cAIC;IAJD,sDAIC;IACD,cAuBC;IAvBD,6BAuBC;;;IAIH,+BAA+B;IAC7B,iCAAiE;IACnE,iBAAM;;;IAIR,+BAA2B;IACzB,YACF;IAAA,iBAAM;;;IADJ,cACF;IADE,oDACF;;;;IAzEN,oCAKuB;IAArB,4LAAS,iBAAU,KAAC;IAGhB,AADF,AADF,8BAAmC,aACD,SAC1B;IAAA,0BAAU;IAAA,iBAAK;IAEjB,AADF,8BAA6B,eAMR;IAHjB,yTAA4B;IAF9B,iBAKmB;IACnB,iCAGwB;IAFtB,wTAA2B;IAG3B,yGAEC;IACH,iBAAS;IACT,kCAAkF;IAAxB,0LAAS,oBAAa,KAAC;IAC/E,sBACF;IAEJ,AADE,AADE,iBAAS,EACL,EACF;IAEJ,AADF,+BAA6B,UACvB;IAAA,aAAsC;IAAA,iBAAK;IAC/C,wGAAkB;IAiClB,wGAAiB;IAKnB,iBAAM;IACN,wGAAoB;IAKtB,iBAAM;IAEJ,AADF,0CAAmB,kBACqB;IAArB,0LAAS,iBAAU,KAAC;IAAC,sBAAK;IAE/C,AADE,AAD6C,iBAAS,EAClC,EACV;;;IA3EV,AADA,AADA,AADA,yCAAoB,cACP,eACC,iBACE;IAQR,eAA4B;IAA5B,qDAA4B;IAK5B,cAA2B;IAA3B,oDAA2B;IAG3B,cAEC;IAFD,iCAEC;IAEgC,eAAsB;IAAtB,2CAAsB;IAMvD,eAAsC;IAAtC,sEAAsC;IAC1C,cAgCC;IAhCD,6CAgCC;IACD,cAIC;IAJD,4CAIC;IAEH,cAIC;IAJD,+CAIC;;AAkJX,MAAM,OAAO,qBAAqB;IAsBZ;IArBX,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,CAAwB;IACpC,WAAW,CAAY;IACtB,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IACrC,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEpD,OAAO,GAAyB,EAAE,CAAC;IACnC,cAAc,GAAG,EAAE,CAAC;IACpB,aAAa,GAAuB,QAAQ,CAAC;IAC7C,SAAS,GAAG,KAAK,CAAC;IAClB,YAAY,GAAG,EAAE,CAAC;IAElB,IAAI,UAAU;QACZ,OAAO,mBAAmB,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,cAAc,EAAE,CAAC;IACxE,CAAC;IAED,WAAW,GAAG;QACZ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;KACnC,CAAC;IAEF,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,4DAA4D;YAC5D,0BAA0B;YAC1B,IAAI,CAAC,OAAO,GAAG;gBACb;oBACE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE;oBACnC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE;oBACtC,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;oBACjC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc;iBAC1C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,0BAA0B;QAC1B,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,wDAAwD;YACxD,MAAM,SAAS,GAAuB;gBACpC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE;gBACxB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7B,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAI,CAAC,aAAa;gBACxB,OAAO,EAAE,IAAI,IAAI,EAAE;aACpB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,sBAAsB,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA0B;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,UAAU,MAAM,CAAC,SAAS,0BAA0B;YAC7D,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,wDAAwD;YACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;+GAtIU,qBAAqB;6DAArB,qBAAqB;YA7N9B,+FAAiB;;YAAjB,wCAiFC;;;iFA4IQ,qBAAqB;cAjOjC,SAAS;6BACI,KAAK,YACP,kBAAkB,YAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmFP;;kBA4IF,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kFALI,qBAAqB","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\n\ninterface ConversationMember {\n id: string;\n userId: string;\n userName: string;\n userEmail: string;\n role: 'owner' | 'member';\n addedAt: Date;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-members-modal',\n template: `\n @if (isVisible) {\n <mj-dialog\n [Title]=\"modalTitle\"\n [Width]=\"600\"\n [Height]=\"500\"\n [Visible]=\"true\"\n (Close)=\"onCancel()\">\n <div class=\"members-modal-content\">\n <div class=\"add-member-section\">\n <h4>Add Member</h4>\n <div class=\"add-member-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newMemberEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <select\n [(ngModel)]=\"newMemberRole\"\n class=\"mj-select\"\n style=\"width: 120px;\">\n @for (option of roleOptions; track option.value) {\n <option [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n <button mjButton variant=\"primary\" [disabled]=\"isLoading\" (click)=\"onAddMember()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"members-section\">\n <h4>Current Members ({{ members.length }})</h4>\n @if (!isLoading) {\n <div class=\"members-list\">\n @if (members.length === 0) {\n <div class=\"empty-state\">\n <p>No additional members yet</p>\n </div>\n }\n @for (member of members; track member) {\n <div class=\"member-item\">\n <div class=\"member-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"member-details\">\n <div class=\"member-name\">{{ member.userName }}</div>\n <div class=\"member-email\">{{ member.userEmail }}</div>\n </div>\n </div>\n <div class=\"member-controls\">\n <span class=\"member-role\" [class.owner]=\"member.role === 'owner'\">\n {{ member.role === 'owner' ? 'Owner' : 'Member' }}\n </span>\n @if (member.role !== 'owner') {\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveMember(member)\"\n title=\"Remove member\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n @if (isLoading) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Loading members...\" size=\"medium\"></mj-loading>\n </div>\n }\n </div>\n @if (errorMessage) {\n <div class=\"error-message\">\n {{ errorMessage }}\n </div>\n }\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onCancel()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .empty-state {\n padding: 24px;\n text-align: center;\n color: #999;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 13px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n `]\n})\nexport class MembersModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() membersChanged = new EventEmitter<void>();\n\n members: ConversationMember[] = [];\n newMemberEmail = '';\n newMemberRole: 'member' | 'owner' = 'member';\n isLoading = false;\n errorMessage = '';\n\n get modalTitle(): string {\n return `Manage Members: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n roleOptions = [\n { value: 'member', label: 'Member' },\n { value: 'owner', label: 'Owner' }\n ];\n\n constructor(private dialogService: DialogService) {}\n\n ngOnChanges(): void {\n if (this.isVisible && this.conversation) {\n this.loadMembers();\n }\n }\n\n private async loadMembers(): Promise<void> {\n if (!this.conversation) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Load from ConversationMembers entity when available\n // For now, show the owner\n this.members = [\n {\n id: 'owner-' + this.conversation.ID,\n userId: this.conversation.UserID || '',\n userName: 'Owner',\n userEmail: this.currentUser.Email,\n role: 'owner',\n addedAt: this.conversation.__mj_CreatedAt\n }\n ];\n } catch (error) {\n console.error('Error loading members:', error);\n this.errorMessage = 'Failed to load members';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onAddMember(): Promise<void> {\n const email = this.newMemberEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if already a member\n if (this.members.some(m => m.userEmail === email)) {\n await this.dialogService.alert('Already a Member', 'This user is already a member');\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Create ConversationMember entity when available\n const newMember: ConversationMember = {\n id: 'temp-' + Date.now(),\n userId: 'unknown',\n userName: email.split('@')[0],\n userEmail: email,\n role: this.newMemberRole,\n addedAt: new Date()\n };\n\n this.members.push(newMember);\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error adding member:', error);\n this.errorMessage = 'Failed to add member';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onRemoveMember(member: ConversationMember): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Member',\n message: `Remove ${member.userEmail} from this conversation?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Delete ConversationMember entity when available\n this.members = this.members.filter(m => m.id !== member.id);\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error removing member:', error);\n this.errorMessage = 'Failed to remove member';\n } finally {\n this.isLoading = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.errorMessage = '';\n this.isVisible = false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\n\ninterface ConversationMember {\n id: string;\n userId: string;\n userName: string;\n userEmail: string;\n role: 'owner' | 'member';\n addedAt: Date;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-members-modal',\n template: `\n @if (isVisible) {\n <mj-dialog\n [Title]=\"modalTitle\"\n [Width]=\"600\"\n [Height]=\"500\"\n [Visible]=\"true\"\n (Close)=\"onCancel()\">\n <div class=\"members-modal-content\">\n <div class=\"add-member-section\">\n <h4>Add Member</h4>\n <div class=\"add-member-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newMemberEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <select\n [(ngModel)]=\"newMemberRole\"\n class=\"mj-select\"\n style=\"width: 120px;\">\n @for (option of roleOptions; track option.value) {\n <option [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n <button mjButton variant=\"primary\" [disabled]=\"isLoading\" (click)=\"onAddMember()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"members-section\">\n <h4>Current Members ({{ members.length }})</h4>\n @if (!isLoading) {\n <div class=\"members-list\">\n @if (members.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-user-group\"\n Title=\"No additional members yet\"\n Size=\"compact\" />\n }\n @for (member of members; track member) {\n <div class=\"member-item\">\n <div class=\"member-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"member-details\">\n <div class=\"member-name\">{{ member.userName }}</div>\n <div class=\"member-email\">{{ member.userEmail }}</div>\n </div>\n </div>\n <div class=\"member-controls\">\n <span class=\"member-role\" [class.owner]=\"member.role === 'owner'\">\n {{ member.role === 'owner' ? 'Owner' : 'Member' }}\n </span>\n @if (member.role !== 'owner') {\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveMember(member)\"\n title=\"Remove member\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n @if (isLoading) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Loading members...\" size=\"medium\"></mj-loading>\n </div>\n }\n </div>\n @if (errorMessage) {\n <div class=\"error-message\">\n {{ errorMessage }}\n </div>\n }\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onCancel()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n `]\n})\nexport class MembersModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() membersChanged = new EventEmitter<void>();\n\n members: ConversationMember[] = [];\n newMemberEmail = '';\n newMemberRole: 'member' | 'owner' = 'member';\n isLoading = false;\n errorMessage = '';\n\n get modalTitle(): string {\n return `Manage Members: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n roleOptions = [\n { value: 'member', label: 'Member' },\n { value: 'owner', label: 'Owner' }\n ];\n\n constructor(private dialogService: DialogService) {}\n\n ngOnChanges(): void {\n if (this.isVisible && this.conversation) {\n this.loadMembers();\n }\n }\n\n private async loadMembers(): Promise<void> {\n if (!this.conversation) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Load from ConversationMembers entity when available\n // For now, show the owner\n this.members = [\n {\n id: 'owner-' + this.conversation.ID,\n userId: this.conversation.UserID || '',\n userName: 'Owner',\n userEmail: this.currentUser.Email,\n role: 'owner',\n addedAt: this.conversation.__mj_CreatedAt\n }\n ];\n } catch (error) {\n console.error('Error loading members:', error);\n this.errorMessage = 'Failed to load members';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onAddMember(): Promise<void> {\n const email = this.newMemberEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if already a member\n if (this.members.some(m => m.userEmail === email)) {\n await this.dialogService.alert('Already a Member', 'This user is already a member');\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Create ConversationMember entity when available\n const newMember: ConversationMember = {\n id: 'temp-' + Date.now(),\n userId: 'unknown',\n userName: email.split('@')[0],\n userEmail: email,\n role: this.newMemberRole,\n addedAt: new Date()\n };\n\n this.members.push(newMember);\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error adding member:', error);\n this.errorMessage = 'Failed to add member';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onRemoveMember(member: ConversationMember): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Member',\n message: `Remove ${member.userEmail} from this conversation?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Delete ConversationMember entity when available\n this.members = this.members.filter(m => m.id !== member.id);\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error removing member:', error);\n this.errorMessage = 'Failed to remove member';\n } finally {\n this.isLoading = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.errorMessage = '';\n this.isVisible = false;\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
2
3
|
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
3
4
|
import { UserInfo } from '@memberjunction/core';
|
|
4
5
|
import { MJConversationDetailEntity } from '@memberjunction/core-entities';
|
|
@@ -11,15 +12,14 @@ import { DataCacheService } from '../../services/data-cache.service';
|
|
|
11
12
|
import { ActiveTasksService } from '../../services/active-tasks.service';
|
|
12
13
|
import { ConversationStreamingService } from '../../services/conversation-streaming.service';
|
|
13
14
|
import { ExecuteAgentResult } from '@memberjunction/ai-core-plus';
|
|
14
|
-
import {
|
|
15
|
+
import { PendingAttachment } from '@memberjunction/ng-composer';
|
|
16
|
+
import { AiComposerComponent } from '../composer/ai-composer.component';
|
|
15
17
|
import { MentionParserService } from '../../services/mention-parser.service';
|
|
16
18
|
import { ConversationAttachmentService } from '../../services/conversation-attachment.service';
|
|
17
|
-
import { PendingAttachment } from '../mention/mention-editor.component';
|
|
18
19
|
import { LazyArtifactInfo } from '../../models/lazy-artifact-info';
|
|
19
20
|
import { ConversationBridgeService } from '../../services/conversation-bridge.service';
|
|
20
21
|
import { RealtimeSessionService } from '../../services/realtime-session.service';
|
|
21
22
|
import { RealtimeAgentPick } from '../realtime/realtime-agent-picker.component';
|
|
22
|
-
import { MessageInputBoxComponent } from './message-input-box.component';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
export declare class MessageInputComponent extends BaseAngularComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
|
|
25
25
|
private dialogService;
|
|
@@ -29,10 +29,9 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
29
29
|
private activeTasks;
|
|
30
30
|
private streamingService;
|
|
31
31
|
private mentionParser;
|
|
32
|
-
private mentionAutocomplete;
|
|
33
32
|
private attachmentService;
|
|
34
33
|
private bridge;
|
|
35
|
-
private
|
|
34
|
+
private realtimeSession;
|
|
36
35
|
private readonly JSON_ARTIFACT_TYPE_ID;
|
|
37
36
|
conversationId: string;
|
|
38
37
|
conversationName?: string | null;
|
|
@@ -50,6 +49,35 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
50
49
|
agentRunsByDetailId?: Map<string, MJAIAgentRunEntityExtended>;
|
|
51
50
|
emptyStateMode: boolean;
|
|
52
51
|
appContext: Record<string, unknown> | null;
|
|
52
|
+
/**
|
|
53
|
+
* Plan Mode toggle state — sticky PER CONVERSATION, OFF by default (no behavior change unless
|
|
54
|
+
* the user turns it on). When on, the user's next message(s) in THIS conversation request Plan
|
|
55
|
+
* Mode: the routed root agent must present a plan for approval before executing Actions/
|
|
56
|
+
* Sub-Agents. The toggle is always shown and the server enforces the `AIAgent.SupportsPlanMode`
|
|
57
|
+
* capability — a plan-mode request to an agent that doesn't support it simply no-ops the gate
|
|
58
|
+
* (see resolvePlanModeGate), so we don't need to resolve "the current agent" client-side.
|
|
59
|
+
*
|
|
60
|
+
* IMPORTANT: this is a GETTER over {@link PlanModePreference} (UserInfoEngine-backed), NOT a
|
|
61
|
+
* local field. The composer is mounted in multiple places at once (empty-state, chat-area,
|
|
62
|
+
* thread panel) — a local boolean per instance goes stale the moment another instance toggles.
|
|
63
|
+
* On the new-conversation composer (no conversationId yet) the value lives in a pending bucket
|
|
64
|
+
* that transfers to the real conversation on its first message. Approving a plan turns the
|
|
65
|
+
* conversation's flag OFF automatically (see message-item's plan-decision handling).
|
|
66
|
+
*/
|
|
67
|
+
get PlanModeEnabled(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Skill IDs the user requested via `/skill-name` mentions in the message being routed. Collected
|
|
70
|
+
* once per send from the composer's mention chips and forwarded to every agent-invocation path so
|
|
71
|
+
* whichever agent handles the message receives them as `RequestedSkillIDs`. The server intersects
|
|
72
|
+
* them with the agent's accepted skills AND the user's Run permission before any activate, so a
|
|
73
|
+
* skill the user can't run (or the agent doesn't accept) is silently dropped. Reset each send.
|
|
74
|
+
*/
|
|
75
|
+
private _pendingRequestedSkillIDs;
|
|
76
|
+
/**
|
|
77
|
+
* Collects the skill IDs from `/skill` mention chips currently in the composer. Called at the
|
|
78
|
+
* start of routing so the value is stable for the whole message dispatch.
|
|
79
|
+
*/
|
|
80
|
+
private collectRequestedSkillIDs;
|
|
53
81
|
/**
|
|
54
82
|
* Optional default agent ID for the conversation. When set, the FIRST
|
|
55
83
|
* message routes directly to this agent — skipping Sage's default
|
|
@@ -99,6 +127,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
99
127
|
private _initialMessage;
|
|
100
128
|
private _initialAttachments;
|
|
101
129
|
private _isComponentReady;
|
|
130
|
+
/** Conversation this input has already auto-sent its pending first message for. */
|
|
131
|
+
private _autoSentForConversationId;
|
|
102
132
|
set initialMessage(value: string | null);
|
|
103
133
|
get initialMessage(): string | null;
|
|
104
134
|
set initialAttachments(value: PendingAttachment[] | null);
|
|
@@ -136,19 +166,23 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
136
166
|
*/
|
|
137
167
|
afterAgentTurn: EventEmitter<AfterAgentTurnEventArgs>;
|
|
138
168
|
agentRunDetected: EventEmitter<{
|
|
169
|
+
conversationId: string;
|
|
139
170
|
conversationDetailId: string;
|
|
140
171
|
agentRunId: string;
|
|
141
172
|
}>;
|
|
142
173
|
agentRunUpdate: EventEmitter<{
|
|
174
|
+
conversationId: string;
|
|
143
175
|
conversationDetailId: string;
|
|
144
176
|
agentRun?: any;
|
|
145
177
|
agentRunId?: string;
|
|
146
178
|
}>;
|
|
147
179
|
messageComplete: EventEmitter<{
|
|
180
|
+
conversationId: string;
|
|
148
181
|
conversationDetailId: string;
|
|
149
182
|
agentId?: string;
|
|
150
183
|
}>;
|
|
151
184
|
artifactCreated: EventEmitter<{
|
|
185
|
+
conversationId: string;
|
|
152
186
|
artifactId: string;
|
|
153
187
|
versionId: string;
|
|
154
188
|
versionNumber: number;
|
|
@@ -160,8 +194,18 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
160
194
|
name: string;
|
|
161
195
|
description: string;
|
|
162
196
|
}>;
|
|
163
|
-
intentCheckStarted: EventEmitter<
|
|
164
|
-
|
|
197
|
+
intentCheckStarted: EventEmitter<{
|
|
198
|
+
conversationId: string;
|
|
199
|
+
}>;
|
|
200
|
+
intentCheckCompleted: EventEmitter<{
|
|
201
|
+
conversationId: string;
|
|
202
|
+
}>;
|
|
203
|
+
initialMessageAutoSendStarted: EventEmitter<{
|
|
204
|
+
conversationId: string;
|
|
205
|
+
}>;
|
|
206
|
+
initialMessageAutoSendFailed: EventEmitter<{
|
|
207
|
+
conversationId: string;
|
|
208
|
+
}>;
|
|
165
209
|
emptyStateSubmit: EventEmitter<{
|
|
166
210
|
text: string;
|
|
167
211
|
attachments: PendingAttachment[];
|
|
@@ -170,8 +214,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
170
214
|
isUploading: boolean;
|
|
171
215
|
message: string;
|
|
172
216
|
}>;
|
|
173
|
-
|
|
174
|
-
inputBox: MessageInputBoxComponent;
|
|
217
|
+
inputBox: AiComposerComponent;
|
|
175
218
|
messageText: string;
|
|
176
219
|
isSending: boolean;
|
|
177
220
|
isProcessing: boolean;
|
|
@@ -183,10 +226,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
183
226
|
private registeredCallbacks;
|
|
184
227
|
private pendingAttachments;
|
|
185
228
|
private engine;
|
|
186
|
-
|
|
229
|
+
private mentionAutocomplete;
|
|
230
|
+
constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, dataCache: DataCacheService, activeTasks: ActiveTasksService, streamingService: ConversationStreamingService, mentionParser: MentionParserService, attachmentService: ConversationAttachmentService, bridge: ConversationBridgeService, realtimeSession: RealtimeSessionService);
|
|
187
231
|
/** True while a live voice session is active — drives the overlay + mic state. */
|
|
188
232
|
voiceActive: boolean;
|
|
189
|
-
private
|
|
233
|
+
private realtimeActiveSub?;
|
|
190
234
|
ngOnInit(): Promise<void>;
|
|
191
235
|
ngOnChanges(changes: SimpleChanges): void;
|
|
192
236
|
ngAfterViewInit(): void;
|
|
@@ -207,15 +251,23 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
207
251
|
*/
|
|
208
252
|
resolveCurrentAgentId(): string | null;
|
|
209
253
|
/** True when the mic button should be enabled (have an agent + not disabled). */
|
|
210
|
-
get
|
|
254
|
+
get canStartRealtime(): boolean;
|
|
211
255
|
/**
|
|
212
256
|
* Display name of the agent the voice session fronts. Resolved here (this component
|
|
213
257
|
* owns the conversation's routing context) and passed to RealtimeSessionService at
|
|
214
258
|
* session start so the chat-area-hosted overlay can read it from the service.
|
|
215
259
|
*/
|
|
216
|
-
private
|
|
260
|
+
private resolveRealtimeAgentName;
|
|
217
261
|
/** True while the "Start a voice call with…" agent picker popover is open. */
|
|
218
262
|
showRealtimeAgentPicker: boolean;
|
|
263
|
+
/**
|
|
264
|
+
* CDK connected-overlay positions for the voice agent picker. Preferred: open UPWARD,
|
|
265
|
+
* right edge aligned to the composer's right edge (matching the old absolute placement).
|
|
266
|
+
* Fallback: open downward when there isn't room above. Because the popover renders in the
|
|
267
|
+
* body-level CDK overlay container (with `cdkConnectedOverlayPush`), it escapes the chat
|
|
268
|
+
* overlay's `overflow: hidden` border and can never clip at the top of a narrow overlay.
|
|
269
|
+
*/
|
|
270
|
+
readonly pickerOverlayPositions: ConnectedPosition[];
|
|
219
271
|
/**
|
|
220
272
|
* `MJ: User Settings` key persisting the user's co-agent choice for realtime calls
|
|
221
273
|
* (server-side, cross-device — never localStorage). Stored shape: `{"coAgentId":
|
|
@@ -229,7 +281,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
229
281
|
voicePickerDefaultCoAgentId: string | null;
|
|
230
282
|
/**
|
|
231
283
|
* Agents the voice picker offers — the same cached set the @mention
|
|
232
|
-
* autocomplete and {@link
|
|
284
|
+
* autocomplete and {@link resolveRealtimeAgentName} use, so the picker can
|
|
233
285
|
* never offer an agent the conversation couldn't otherwise route to.
|
|
234
286
|
*/
|
|
235
287
|
get voicePickerAgents(): MJAIAgentEntityExtended[];
|
|
@@ -255,7 +307,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
255
307
|
* the user never chose — so show a compact agent picker instead and start
|
|
256
308
|
* with whichever agent they pick.
|
|
257
309
|
*/
|
|
258
|
-
|
|
310
|
+
onStartRealtime(): Promise<void>;
|
|
259
311
|
/**
|
|
260
312
|
* Caret-next-to-the-phone click: open the agent/co-agent/model picker ON DEMAND, even
|
|
261
313
|
* when the conversation already has agent history (where the plain phone click
|
|
@@ -264,7 +316,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
264
316
|
* choice one click away. Falls through to the instant path when there is nothing to
|
|
265
317
|
* pick from.
|
|
266
318
|
*/
|
|
267
|
-
|
|
319
|
+
onRealtimeOptions(): Promise<void>;
|
|
268
320
|
/** Loads the persisted co-agent preference, then shows the picker (pref preselected). */
|
|
269
321
|
private openRealtimeAgentPicker;
|
|
270
322
|
/** User confirmed an agent (+ optional co-agent / voice model) in the voice picker — start the call. */
|
|
@@ -303,7 +355,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
303
355
|
* passed here — the session service resolves the active channel plugins from the
|
|
304
356
|
* `MJ: AI Agent Channels` registry and aggregates their tool sets at mint itself.
|
|
305
357
|
*/
|
|
306
|
-
private
|
|
358
|
+
private startRealtimeWithAgent;
|
|
307
359
|
/**
|
|
308
360
|
* Focus the message input textarea
|
|
309
361
|
*/
|
|
@@ -336,14 +388,18 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
336
388
|
* Handle attachment errors from the input box
|
|
337
389
|
*/
|
|
338
390
|
onAttachmentError(error: string): void;
|
|
339
|
-
/**
|
|
340
|
-
* Handle artifact picker request — bubble up to parent
|
|
341
|
-
*/
|
|
342
|
-
onArtifactPickerRequested(): void;
|
|
343
391
|
/**
|
|
344
392
|
* Handle text submitted from the input box
|
|
345
393
|
*/
|
|
346
394
|
onTextSubmitted(text: string): Promise<void>;
|
|
395
|
+
/**
|
|
396
|
+
* Toggle sticky Plan Mode for THIS conversation (or the pending-new bucket on the
|
|
397
|
+
* new-conversation composer). Writes through {@link PlanModePreference} — the
|
|
398
|
+
* {@link PlanModeEnabled} getter reads the same cached setting, so ALL live composer
|
|
399
|
+
* instances flip together, and the value survives component recreation and sessions
|
|
400
|
+
* until the user turns it off or approves a plan.
|
|
401
|
+
*/
|
|
402
|
+
TogglePlanMode(): void;
|
|
347
403
|
onSend(): Promise<void>;
|
|
348
404
|
/**
|
|
349
405
|
* Send a message with custom text WITHOUT modifying the visible messageText input
|
|
@@ -356,7 +412,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
356
412
|
* `this.pendingAttachments` may not contain the attachment. Pass it in
|
|
357
413
|
* explicitly and we merge + dedupe (by `id`) before saving.
|
|
358
414
|
*/
|
|
359
|
-
sendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<
|
|
415
|
+
sendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<boolean>;
|
|
360
416
|
/**
|
|
361
417
|
* Creates and configures a new conversation detail message
|
|
362
418
|
*/
|
|
@@ -511,11 +567,19 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
|
|
|
511
567
|
* Emits event to parent to refresh agent run data from database
|
|
512
568
|
*/
|
|
513
569
|
private markMessageComplete;
|
|
570
|
+
/**
|
|
571
|
+
* Emit an artifact-reload signal for {@link detail}. The artifact metadata fields are
|
|
572
|
+
* placeholders — the parent reloads the real artifacts from the DB; the only fields it
|
|
573
|
+
* consumes are conversationDetailId and conversationId (the latter lets it drop events from
|
|
574
|
+
* a background conversation after a conversation swap). conversationId is taken from the
|
|
575
|
+
* detail entity's immutable ConversationID, never this.conversationId.
|
|
576
|
+
*/
|
|
577
|
+
private emitArtifactReload;
|
|
514
578
|
/**
|
|
515
579
|
* Cleans up completion timestamps for completed messages (prevents memory leak)
|
|
516
580
|
*/
|
|
517
581
|
private cleanupCompletionTimestamp;
|
|
518
582
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputComponent, never>;
|
|
519
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; }, { "messageSent": "messageSent"; "agentResponse": "agentResponse"; "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "agentRunDetected": "agentRunDetected"; "agentRunUpdate": "agentRunUpdate"; "messageComplete": "messageComplete"; "artifactCreated": "artifactCreated"; "conversationRenamed": "conversationRenamed"; "intentCheckStarted": "intentCheckStarted"; "intentCheckCompleted": "intentCheckCompleted"; "
|
|
583
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; }, { "messageSent": "messageSent"; "agentResponse": "agentResponse"; "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "agentRunDetected": "agentRunDetected"; "agentRunUpdate": "agentRunUpdate"; "messageComplete": "messageComplete"; "artifactCreated": "artifactCreated"; "conversationRenamed": "conversationRenamed"; "intentCheckStarted": "intentCheckStarted"; "intentCheckCompleted": "intentCheckCompleted"; "initialMessageAutoSendStarted": "initialMessageAutoSendStarted"; "initialMessageAutoSendFailed": "initialMessageAutoSendFailed"; "emptyStateSubmit": "emptyStateSubmit"; "uploadStateChanged": "uploadStateChanged"; }, never, never, false, never>;
|
|
520
584
|
}
|
|
521
585
|
//# sourceMappingURL=message-input.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAa,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9I,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAmE,MAAM,+BAA+B,CAAC;AAC5I,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"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"}
|