@memberjunction/ng-conversations 5.43.0 → 5.44.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.js +37 -41
- 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.js +41 -45
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +22 -36
- 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/conversation/conversation-chat-area.component.d.ts +73 -8
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +487 -123
- package/dist/lib/components/conversation/conversation-chat-area.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/mention/mention-dropdown.component.js +49 -28
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +24 -10
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +11 -16
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +52 -46
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +83 -18
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +238 -151
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +10 -1
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +67 -15
- 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 +3 -0
- 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/workspace/conversation-workspace.component.d.ts +5 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +18 -7
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +29 -26
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +37 -6
- 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 +2 -2
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +6 -2
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +17 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +58 -2
- 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 +6 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +8 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +28 -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
|
@@ -11,7 +11,6 @@ export declare class ActiveTasksPanelComponent {
|
|
|
11
11
|
taskCount$: Observable<number>;
|
|
12
12
|
isExpanded: boolean;
|
|
13
13
|
constructor(activeTasksService: ActiveTasksService);
|
|
14
|
-
toggleExpanded(): void;
|
|
15
14
|
getElapsedTime(task: ActiveTask): string;
|
|
16
15
|
getTrimmedStatus(status: string): string;
|
|
17
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActiveTasksPanelComponent, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-tasks-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/active-tasks/active-tasks-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;;AAErF;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"active-tasks-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/active-tasks/active-tasks-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;;AAErF;;;GAGG;AACH,qBAmGa,yBAAyB;IAKxB,OAAO,CAAC,kBAAkB;IAJtC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,UAAQ;gBAEE,kBAAkB,EAAE,kBAAkB;IAK1D,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAaxC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;yCAvB7B,yBAAyB;2CAAzB,yBAAyB;CA8BrC"}
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../services/active-tasks.service";
|
|
4
|
-
import * as i2 from "@
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
i0.ɵɵelement(
|
|
8
|
-
i0.ɵɵelementStart(
|
|
4
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
function ActiveTasksPanelComponent_Conditional_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelement(0, "i", 4);
|
|
8
|
+
i0.ɵɵelementStart(1, "span");
|
|
9
|
+
i0.ɵɵtext(2);
|
|
10
|
+
i0.ɵɵpipe(3, "async");
|
|
11
|
+
i0.ɵɵelementEnd();
|
|
12
|
+
} if (rf & 2) {
|
|
13
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
14
|
+
i0.ɵɵadvance(2);
|
|
15
|
+
i0.ɵɵtextInterpolate1("Active Tasks (", i0.ɵɵpipeBind1(3, 1, ctx_r1.taskCount$), ")");
|
|
16
|
+
} }
|
|
17
|
+
function ActiveTasksPanelComponent_Conditional_0_ng_template_3_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
|
|
19
|
+
i0.ɵɵelement(2, "i", 8);
|
|
20
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
9
21
|
i0.ɵɵtext(4);
|
|
10
22
|
i0.ɵɵelementEnd();
|
|
11
|
-
i0.ɵɵelementStart(5, "span",
|
|
23
|
+
i0.ɵɵelementStart(5, "span", 10);
|
|
12
24
|
i0.ɵɵtext(6);
|
|
13
25
|
i0.ɵɵelementEnd()();
|
|
14
|
-
i0.ɵɵelementStart(7, "div",
|
|
26
|
+
i0.ɵɵelementStart(7, "div", 11);
|
|
15
27
|
i0.ɵɵtext(8);
|
|
16
28
|
i0.ɵɵelementEnd()();
|
|
17
29
|
} if (rf & 2) {
|
|
@@ -24,9 +36,9 @@ function ActiveTasksPanelComponent_Conditional_0_Conditional_7_For_2_Template(rf
|
|
|
24
36
|
i0.ɵɵadvance(2);
|
|
25
37
|
i0.ɵɵtextInterpolate(ctx_r1.getTrimmedStatus(task_r3.status));
|
|
26
38
|
} }
|
|
27
|
-
function
|
|
28
|
-
i0.ɵɵelementStart(0, "div",
|
|
29
|
-
i0.ɵɵrepeaterCreate(1,
|
|
39
|
+
function ActiveTasksPanelComponent_Conditional_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "div", 5);
|
|
41
|
+
i0.ɵɵrepeaterCreate(1, ActiveTasksPanelComponent_Conditional_0_ng_template_3_For_2_Template, 9, 3, "div", 6, i0.ɵɵrepeaterTrackByIdentity);
|
|
30
42
|
i0.ɵɵpipe(3, "async");
|
|
31
43
|
i0.ɵɵelementEnd();
|
|
32
44
|
} if (rf & 2) {
|
|
@@ -36,25 +48,15 @@ function ActiveTasksPanelComponent_Conditional_0_Conditional_7_Template(rf, ctx)
|
|
|
36
48
|
} }
|
|
37
49
|
function ActiveTasksPanelComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
38
50
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "
|
|
40
|
-
i0.ɵɵ
|
|
41
|
-
i0.ɵɵ
|
|
42
|
-
i0.ɵɵ
|
|
43
|
-
i0.ɵɵtext(4);
|
|
44
|
-
i0.ɵɵpipe(5, "async");
|
|
45
|
-
i0.ɵɵelementEnd();
|
|
46
|
-
i0.ɵɵelement(6, "i", 3);
|
|
47
|
-
i0.ɵɵelementEnd();
|
|
48
|
-
i0.ɵɵconditionalCreate(7, ActiveTasksPanelComponent_Conditional_0_Conditional_7_Template, 4, 2, "div", 4);
|
|
49
|
-
i0.ɵɵelementEnd();
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "mj-accordion-panel", 1);
|
|
52
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function ActiveTasksPanelComponent_Conditional_0_Template_mj_accordion_panel_ExpandedChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.isExpanded, $event) || (ctx_r1.isExpanded = $event); return i0.ɵɵresetView($event); });
|
|
53
|
+
i0.ɵɵtemplate(2, ActiveTasksPanelComponent_Conditional_0_ng_template_2_Template, 4, 3, "ng-template", 2)(3, ActiveTasksPanelComponent_Conditional_0_ng_template_3_Template, 4, 2, "ng-template", 3);
|
|
54
|
+
i0.ɵɵelementEnd()();
|
|
50
55
|
} if (rf & 2) {
|
|
51
56
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
52
|
-
i0.ɵɵadvance(4);
|
|
53
|
-
i0.ɵɵtextInterpolate1("Active Tasks (", i0.ɵɵpipeBind1(5, 3, ctx_r1.taskCount$), ")");
|
|
54
|
-
i0.ɵɵadvance(2);
|
|
55
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isExpanded ? "fa-chevron-up" : "fa-chevron-down");
|
|
56
57
|
i0.ɵɵadvance();
|
|
57
|
-
i0.ɵɵ
|
|
58
|
+
i0.ɵɵproperty("FlushBody", true);
|
|
59
|
+
i0.ɵɵtwoWayProperty("Expanded", ctx_r1.isExpanded);
|
|
58
60
|
} }
|
|
59
61
|
/**
|
|
60
62
|
* Panel component that displays currently running agent tasks.
|
|
@@ -70,9 +72,6 @@ export class ActiveTasksPanelComponent {
|
|
|
70
72
|
this.tasks$ = this.activeTasksService.tasks$;
|
|
71
73
|
this.taskCount$ = this.activeTasksService.taskCount$;
|
|
72
74
|
}
|
|
73
|
-
toggleExpanded() {
|
|
74
|
-
this.isExpanded = !this.isExpanded;
|
|
75
|
-
}
|
|
76
75
|
getElapsedTime(task) {
|
|
77
76
|
const elapsed = Date.now() - task.startTime;
|
|
78
77
|
const seconds = Math.floor(elapsed / 1000);
|
|
@@ -91,40 +90,45 @@ export class ActiveTasksPanelComponent {
|
|
|
91
90
|
return status.substring(0, maxLength) + '...';
|
|
92
91
|
}
|
|
93
92
|
static ɵfac = function ActiveTasksPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActiveTasksPanelComponent)(i0.ɵɵdirectiveInject(i1.ActiveTasksService)); };
|
|
94
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActiveTasksPanelComponent, selectors: [["mj-active-tasks-panel"]], standalone: false, decls: 2, vars: 3, consts: [[1, "active-tasks-panel"], [
|
|
95
|
-
i0.ɵɵconditionalCreate(0, ActiveTasksPanelComponent_Conditional_0_Template,
|
|
93
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActiveTasksPanelComponent, selectors: [["mj-active-tasks-panel"]], standalone: false, decls: 2, vars: 3, consts: [[1, "active-tasks-panel"], ["Size", "sm", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionBody", ""], [1, "fas", "fa-tasks", "active-tasks-title-icon"], [1, "panel-content"], [1, "task-item"], [1, "task-header"], [1, "fas", "fa-circle-notch", "fa-spin"], [1, "task-agent"], [1, "task-elapsed"], [1, "task-status"]], template: function ActiveTasksPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵconditionalCreate(0, ActiveTasksPanelComponent_Conditional_0_Template, 4, 2, "div", 0);
|
|
96
95
|
i0.ɵɵpipe(1, "async");
|
|
97
96
|
} if (rf & 2) {
|
|
98
97
|
i0.ɵɵconditional(i0.ɵɵpipeBind1(1, 1, ctx.taskCount$) > 0 ? 0 : -1);
|
|
99
|
-
} }, dependencies: [i2.
|
|
98
|
+
} }, dependencies: [i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJAccordionBodyDirective, i3.AsyncPipe], styles: [".active-tasks-panel[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 320px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n }\n\n \n\n\n\n .active-tasks-title-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .panel-content[_ngcontent-%COMP%] {\n max-height: 300px;\n overflow-y: auto;\n }\n\n .task-item[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .task-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .task-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .task-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .task-agent[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n\n .task-elapsed[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 500;\n }\n\n .task-status[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n padding-left: 22px;\n }"] });
|
|
100
99
|
}
|
|
101
100
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActiveTasksPanelComponent, [{
|
|
102
101
|
type: Component,
|
|
103
102
|
args: [{ standalone: false, selector: 'mj-active-tasks-panel', template: `
|
|
104
103
|
@if ((taskCount$ | async)! > 0) {
|
|
105
104
|
<div class="active-tasks-panel">
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
105
|
+
<!-- Migrated from a bespoke header/chevron + @if(isExpanded) disclosure to
|
|
106
|
+
mj-accordion-panel. The floating fixed-position wrapper is preserved; only
|
|
107
|
+
the header→task-list disclosure became the accordion (content disclosure,
|
|
108
|
+
not a whole-panel collapse). -->
|
|
109
|
+
<mj-accordion-panel Size="sm" [FlushBody]="true" [(Expanded)]="isExpanded">
|
|
110
|
+
<ng-template mjAccordionTitle>
|
|
111
|
+
<i class="fas fa-tasks active-tasks-title-icon"></i>
|
|
112
|
+
<span>Active Tasks ({{ taskCount$ | async }})</span>
|
|
113
|
+
</ng-template>
|
|
114
|
+
<ng-template mjAccordionBody>
|
|
115
|
+
<div class="panel-content">
|
|
116
|
+
@for (task of (tasks$ | async); track task) {
|
|
117
|
+
<div class="task-item">
|
|
118
|
+
<div class="task-header">
|
|
119
|
+
<i class="fas fa-circle-notch fa-spin"></i>
|
|
120
|
+
<span class="task-agent">{{ task.agentName }}</span>
|
|
121
|
+
<span class="task-elapsed">{{ getElapsedTime(task) }}</span>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="task-status">{{ getTrimmedStatus(task.status) }}</div>
|
|
119
124
|
</div>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
+
}
|
|
126
|
+
</div>
|
|
127
|
+
</ng-template>
|
|
128
|
+
</mj-accordion-panel>
|
|
125
129
|
</div>
|
|
126
130
|
}
|
|
127
|
-
`, styles: ["\n .active-tasks-panel {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 320px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n }\n\n .panel-header
|
|
131
|
+
`, styles: ["\n .active-tasks-panel {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 320px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n }\n\n /* Removed bespoke .panel-header chrome (header bar, hover, chevron, flex span) \u2014\n the disclosure header is now owned by mj-accordion-panel. Only the title icon's\n brand color is preserved below. */\n .active-tasks-title-icon {\n color: var(--mj-brand-primary);\n }\n\n .panel-content {\n max-height: 300px;\n overflow-y: auto;\n }\n\n .task-item {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .task-item:last-child {\n border-bottom: none;\n }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .task-header i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .task-agent {\n flex: 1;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n\n .task-elapsed {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 500;\n }\n\n .task-status {\n font-size: 13px;\n color: var(--mj-text-muted);\n padding-left: 22px;\n }\n "] }]
|
|
128
132
|
}], () => [{ type: i1.ActiveTasksService }], null); })();
|
|
129
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActiveTasksPanelComponent, { className: "ActiveTasksPanelComponent", filePath: "src/lib/components/active-tasks/active-tasks-panel.component.ts", lineNumber:
|
|
133
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActiveTasksPanelComponent, { className: "ActiveTasksPanelComponent", filePath: "src/lib/components/active-tasks/active-tasks-panel.component.ts", lineNumber: 108 }); })();
|
|
130
134
|
//# sourceMappingURL=active-tasks-panel.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/active-tasks/active-tasks-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"active-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/active-tasks/active-tasks-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;;;;IAoB9B,uBAAoD;IACpD,4BAAM;IAAA,YAAuC;;IAAA,iBAAO;;;IAA9C,eAAuC;IAAvC,qFAAuC;;;IAMvC,AADF,8BAAuB,aACI;IACvB,uBAA2C;IAC3C,+BAAyB;IAAA,YAAoB;IAAA,iBAAO;IACpD,gCAA2B;IAAA,YAA0B;IACvD,AADuD,iBAAO,EACxD;IACN,+BAAyB;IAAA,YAAmC;IAC9D,AAD8D,iBAAM,EAC9D;;;;IAJuB,eAAoB;IAApB,uCAAoB;IAClB,eAA0B;IAA1B,oDAA0B;IAE9B,eAAmC;IAAnC,6DAAmC;;;IARlE,8BAA2B;IACzB,0IASC;;IACH,iBAAM;;;IAVJ,cASC;IATD,kDASC;;;;IAhBP,AALF,8BAAgC,4BAK6C;IAA1B,oUAAyB;IAKxE,AAJA,wGAA8B,2FAID;IAejC,AADE,iBAAqB,EACjB;;;IApB0B,cAAkB;IAAlB,gCAAkB;IAAC,kDAAyB;;AAdlF;;;GAGG;AAoGH,MAAM,OAAO,yBAAyB;IAKhB;IAJpB,MAAM,CAA2B;IACjC,UAAU,CAAqB;IAC/B,UAAU,GAAG,IAAI,CAAC;IAElB,YAAoB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;IACvD,CAAC;IAED,cAAc,CAAC,IAAgB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAE3C,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;QACtC,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;IAChD,CAAC;mHA7BU,yBAAyB;6DAAzB,yBAAyB;YA/FlC,2FAAiC;;;YAAjC,mEA2BC;;;iFAoEQ,yBAAyB;cAnGrC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BP;;kFAmEQ,yBAAyB","sourcesContent":["import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ActiveTasksService, ActiveTask } from '../../services/active-tasks.service';\n\n/**\n * Panel component that displays currently running agent tasks.\n * Shows as a floating panel in bottom-right corner when tasks are active.\n */\n@Component({\n standalone: false,\n selector: 'mj-active-tasks-panel',\n template: `\n @if ((taskCount$ | async)! > 0) {\n <div class=\"active-tasks-panel\">\n <!-- Migrated from a bespoke header/chevron + @if(isExpanded) disclosure to\n mj-accordion-panel. The floating fixed-position wrapper is preserved; only\n the header→task-list disclosure became the accordion (content disclosure,\n not a whole-panel collapse). -->\n <mj-accordion-panel Size=\"sm\" [FlushBody]=\"true\" [(Expanded)]=\"isExpanded\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-tasks active-tasks-title-icon\"></i>\n <span>Active Tasks ({{ taskCount$ | async }})</span>\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"panel-content\">\n @for (task of (tasks$ | async); track task) {\n <div class=\"task-item\">\n <div class=\"task-header\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span class=\"task-agent\">{{ task.agentName }}</span>\n <span class=\"task-elapsed\">{{ getElapsedTime(task) }}</span>\n </div>\n <div class=\"task-status\">{{ getTrimmedStatus(task.status) }}</div>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n </div>\n }\n `,\n styles: [`\n .active-tasks-panel {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 320px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n }\n\n /* Removed bespoke .panel-header chrome (header bar, hover, chevron, flex span) —\n the disclosure header is now owned by mj-accordion-panel. Only the title icon's\n brand color is preserved below. */\n .active-tasks-title-icon {\n color: var(--mj-brand-primary);\n }\n\n .panel-content {\n max-height: 300px;\n overflow-y: auto;\n }\n\n .task-item {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .task-item:last-child {\n border-bottom: none;\n }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .task-header i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .task-agent {\n flex: 1;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n\n .task-elapsed {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 500;\n }\n\n .task-status {\n font-size: 13px;\n color: var(--mj-text-muted);\n padding-left: 22px;\n }\n `]\n})\nexport class ActiveTasksPanelComponent {\n tasks$: Observable<ActiveTask[]>;\n taskCount$: Observable<number>;\n isExpanded = true;\n\n constructor(private activeTasksService: ActiveTasksService) {\n this.tasks$ = this.activeTasksService.tasks$;\n this.taskCount$ = this.activeTasksService.taskCount$;\n }\n\n getElapsedTime(task: ActiveTask): string {\n const elapsed = Date.now() - task.startTime;\n const seconds = Math.floor(elapsed / 1000);\n\n if (seconds < 60) {\n return `${seconds}s`;\n }\n\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\n }\n\n getTrimmedStatus(status: string): string {\n const maxLength = 50;\n if (status.length <= maxLength) {\n return status;\n }\n return status.substring(0, maxLength) + '...';\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
|
-
import { MJWindowComponent, MJButtonDirective } from '@memberjunction/ng-ui-components';
|
|
3
|
+
import { MJWindowComponent, MJButtonDirective, MJEmptyStateComponent } from '@memberjunction/ng-ui-components';
|
|
4
4
|
import { UserPickerComponent } from '../shared/user-picker.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../services/artifact-permission.service";
|
|
@@ -88,14 +88,10 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_7_Template(rf, ct
|
|
|
88
88
|
i0.ɵɵproperty("disabled", !ctx_r1.selectedUser);
|
|
89
89
|
} }
|
|
90
90
|
function ArtifactShareModalComponent_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
-
i0.ɵɵ
|
|
92
|
-
i0.ɵɵelement(1, "i", 33);
|
|
93
|
-
i0.ɵɵelementStart(2, "p");
|
|
94
|
-
i0.ɵɵtext(3, "Not shared with anyone yet");
|
|
95
|
-
i0.ɵɵelementEnd()();
|
|
91
|
+
i0.ɵɵelement(0, "mj-empty-state", 10);
|
|
96
92
|
} }
|
|
97
93
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
98
|
-
i0.ɵɵelementStart(0, "span",
|
|
94
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
99
95
|
i0.ɵɵtext(1);
|
|
100
96
|
i0.ɵɵelementEnd();
|
|
101
97
|
} if (rf & 2) {
|
|
@@ -104,24 +100,24 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
104
100
|
i0.ɵɵtextInterpolate1("shared by ", permission_r6.sharedByUserName);
|
|
105
101
|
} }
|
|
106
102
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
-
i0.ɵɵelementStart(0, "span",
|
|
103
|
+
i0.ɵɵelementStart(0, "span", 40);
|
|
108
104
|
i0.ɵɵelement(1, "i", 31);
|
|
109
105
|
i0.ɵɵtext(2, " Share ");
|
|
110
106
|
i0.ɵɵelementEnd();
|
|
111
107
|
} }
|
|
112
108
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
-
i0.ɵɵelementStart(0, "span",
|
|
109
|
+
i0.ɵɵelementStart(0, "span", 40);
|
|
114
110
|
i0.ɵɵelement(1, "i", 32);
|
|
115
111
|
i0.ɵɵtext(2, " Edit ");
|
|
116
112
|
i0.ɵɵelementEnd();
|
|
117
113
|
} }
|
|
118
114
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
-
i0.ɵɵelementStart(0, "div",
|
|
115
|
+
i0.ɵɵelementStart(0, "div", 37)(1, "span", 40);
|
|
120
116
|
i0.ɵɵelement(2, "i", 24);
|
|
121
117
|
i0.ɵɵtext(3, " Read ");
|
|
122
118
|
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵconditionalCreate(4, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_4_Template, 3, 0, "span",
|
|
124
|
-
i0.ɵɵconditionalCreate(5, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_5_Template, 3, 0, "span",
|
|
119
|
+
i0.ɵɵconditionalCreate(4, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_4_Template, 3, 0, "span", 40);
|
|
120
|
+
i0.ɵɵconditionalCreate(5, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Conditional_5_Template, 3, 0, "span", 40);
|
|
125
121
|
i0.ɵɵelementEnd();
|
|
126
122
|
} if (rf & 2) {
|
|
127
123
|
const permission_r6 = i0.ɵɵnextContext().$implicit;
|
|
@@ -132,7 +128,7 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
132
128
|
} }
|
|
133
129
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
134
130
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
135
|
-
i0.ɵɵelementStart(0, "label",
|
|
131
|
+
i0.ɵɵelementStart(0, "label", 42)(1, "input", 30);
|
|
136
132
|
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_5_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const permission_r6 = i0.ɵɵnextContext(2).$implicit; i0.ɵɵtwoWayBindingSet(permission_r6.editingPermissions.canShare, $event) || (permission_r6.editingPermissions.canShare = $event); return i0.ɵɵresetView($event); });
|
|
137
133
|
i0.ɵɵelementEnd();
|
|
138
134
|
i0.ɵɵelementStart(2, "span");
|
|
@@ -145,7 +141,7 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
145
141
|
} }
|
|
146
142
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
147
143
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
148
|
-
i0.ɵɵelementStart(0, "label",
|
|
144
|
+
i0.ɵɵelementStart(0, "label", 42)(1, "input", 30);
|
|
149
145
|
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_6_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r8); const permission_r6 = i0.ɵɵnextContext(2).$implicit; i0.ɵɵtwoWayBindingSet(permission_r6.editingPermissions.canEdit, $event) || (permission_r6.editingPermissions.canEdit = $event); return i0.ɵɵresetView($event); });
|
|
150
146
|
i0.ɵɵelementEnd();
|
|
151
147
|
i0.ɵɵelementStart(2, "span");
|
|
@@ -157,13 +153,13 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
157
153
|
i0.ɵɵtwoWayProperty("ngModel", permission_r6.editingPermissions.canEdit);
|
|
158
154
|
} }
|
|
159
155
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
-
i0.ɵɵelementStart(0, "div",
|
|
156
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "label", 41);
|
|
161
157
|
i0.ɵɵelement(2, "input", 22);
|
|
162
158
|
i0.ɵɵelementStart(3, "span");
|
|
163
159
|
i0.ɵɵtext(4, "Read");
|
|
164
160
|
i0.ɵɵelementEnd()();
|
|
165
|
-
i0.ɵɵconditionalCreate(5, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_5_Template, 4, 1, "label",
|
|
166
|
-
i0.ɵɵconditionalCreate(6, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_6_Template, 4, 1, "label",
|
|
161
|
+
i0.ɵɵconditionalCreate(5, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_5_Template, 4, 1, "label", 42);
|
|
162
|
+
i0.ɵɵconditionalCreate(6, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Conditional_6_Template, 4, 1, "label", 42);
|
|
167
163
|
i0.ɵɵelementEnd();
|
|
168
164
|
} if (rf & 2) {
|
|
169
165
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -176,28 +172,28 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
176
172
|
} }
|
|
177
173
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
178
174
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
179
|
-
i0.ɵɵelementStart(0, "button",
|
|
175
|
+
i0.ɵɵelementStart(0, "button", 43);
|
|
180
176
|
i0.ɵɵlistener("click", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const permission_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onEditPermission(permission_r6)); });
|
|
181
|
-
i0.ɵɵelement(1, "i",
|
|
177
|
+
i0.ɵɵelement(1, "i", 44);
|
|
182
178
|
i0.ɵɵelementEnd();
|
|
183
|
-
i0.ɵɵelementStart(2, "button",
|
|
179
|
+
i0.ɵɵelementStart(2, "button", 45);
|
|
184
180
|
i0.ɵɵlistener("click", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const permission_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onRevokePermission(permission_r6)); });
|
|
185
|
-
i0.ɵɵelement(3, "i",
|
|
181
|
+
i0.ɵɵelement(3, "i", 46);
|
|
186
182
|
i0.ɵɵelementEnd();
|
|
187
183
|
} }
|
|
188
184
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
189
185
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
190
|
-
i0.ɵɵelementStart(0, "button",
|
|
186
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
191
187
|
i0.ɵɵlistener("click", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const permission_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSavePermission(permission_r6)); });
|
|
192
|
-
i0.ɵɵelement(1, "i",
|
|
188
|
+
i0.ɵɵelement(1, "i", 48);
|
|
193
189
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵelementStart(2, "button",
|
|
190
|
+
i0.ɵɵelementStart(2, "button", 49);
|
|
195
191
|
i0.ɵɵlistener("click", function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_2_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const permission_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCancelEdit(permission_r6)); });
|
|
196
|
-
i0.ɵɵelement(3, "i",
|
|
192
|
+
i0.ɵɵelement(3, "i", 46);
|
|
197
193
|
i0.ɵɵelementEnd();
|
|
198
194
|
} }
|
|
199
195
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
-
i0.ɵɵelementStart(0, "div",
|
|
196
|
+
i0.ɵɵelementStart(0, "div", 39);
|
|
201
197
|
i0.ɵɵconditionalCreate(1, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_1_Template, 4, 0)(2, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Conditional_2_Template, 4, 0);
|
|
202
198
|
i0.ɵɵelementEnd();
|
|
203
199
|
} if (rf & 2) {
|
|
@@ -206,17 +202,17 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditio
|
|
|
206
202
|
i0.ɵɵconditional(!permission_r6.isEditing ? 1 : 2);
|
|
207
203
|
} }
|
|
208
204
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
209
|
-
i0.ɵɵelementStart(0, "div",
|
|
205
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 15);
|
|
210
206
|
i0.ɵɵelement(2, "i", 16);
|
|
211
207
|
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementStart(3, "div",
|
|
208
|
+
i0.ɵɵelementStart(3, "div", 34)(4, "div", 35)(5, "span", 18);
|
|
213
209
|
i0.ɵɵtext(6);
|
|
214
210
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵconditionalCreate(7, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_7_Template, 2, 1, "span",
|
|
211
|
+
i0.ɵɵconditionalCreate(7, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_7_Template, 2, 1, "span", 36);
|
|
216
212
|
i0.ɵɵelementEnd();
|
|
217
|
-
i0.ɵɵconditionalCreate(8, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Template, 6, 2, "div",
|
|
213
|
+
i0.ɵɵconditionalCreate(8, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_8_Template, 6, 2, "div", 37)(9, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_9_Template, 7, 3, "div", 38);
|
|
218
214
|
i0.ɵɵelementEnd();
|
|
219
|
-
i0.ɵɵconditionalCreate(10, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Template, 3, 1, "div",
|
|
215
|
+
i0.ɵɵconditionalCreate(10, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Conditional_10_Template, 3, 1, "div", 39);
|
|
220
216
|
i0.ɵɵelementEnd();
|
|
221
217
|
} if (rf & 2) {
|
|
222
218
|
const permission_r6 = ctx.$implicit;
|
|
@@ -232,7 +228,7 @@ function ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Template
|
|
|
232
228
|
} }
|
|
233
229
|
function ArtifactShareModalComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
234
230
|
i0.ɵɵelementStart(0, "div", 11);
|
|
235
|
-
i0.ɵɵrepeaterCreate(1, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Template, 11, 4, "div",
|
|
231
|
+
i0.ɵɵrepeaterCreate(1, ArtifactShareModalComponent_Conditional_0_Conditional_13_For_2_Template, 11, 4, "div", 33, _forTrack0);
|
|
236
232
|
i0.ɵɵelementEnd();
|
|
237
233
|
} if (rf & 2) {
|
|
238
234
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -256,7 +252,7 @@ function ArtifactShareModalComponent_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
256
252
|
i0.ɵɵelement(10, "i", 9);
|
|
257
253
|
i0.ɵɵtext(11);
|
|
258
254
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵconditionalCreate(12, ArtifactShareModalComponent_Conditional_0_Conditional_12_Template,
|
|
255
|
+
i0.ɵɵconditionalCreate(12, ArtifactShareModalComponent_Conditional_0_Conditional_12_Template, 1, 0, "mj-empty-state", 10)(13, ArtifactShareModalComponent_Conditional_0_Conditional_13_Template, 3, 0, "div", 11);
|
|
260
256
|
i0.ɵɵelementEnd()();
|
|
261
257
|
i0.ɵɵelementStart(14, "div", 12)(15, "button", 13);
|
|
262
258
|
i0.ɵɵlistener("click", function ArtifactShareModalComponent_Conditional_0_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
|
|
@@ -457,15 +453,15 @@ export class ArtifactShareModalComponent {
|
|
|
457
453
|
this.cancelled.emit();
|
|
458
454
|
}
|
|
459
455
|
static ɵfac = function ArtifactShareModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ArtifactShareModalComponent)(i0.ɵɵdirectiveInject(i1.ArtifactPermissionService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
460
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactShareModalComponent, selectors: [["mj-artifact-share-modal"]], inputs: { isOpen: "isOpen", artifact: "artifact", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "MinWidth", "MinHeight", "Visible"], [3, "Close", "Title", "Width", "Height", "MinWidth", "MinHeight", "Visible"], [1, "share-modal-content"], [1, "add-user-section"], [1, "section-title"], [1, "fa-solid", "fa-user-plus"], [3, "userSelected", "currentUser", "excludeUserIds"], [1, "permissions-form"], [1, "permissions-list-section"], [1, "fa-solid", "fa-users"], [
|
|
456
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactShareModalComponent, selectors: [["mj-artifact-share-modal"]], inputs: { isOpen: "isOpen", artifact: "artifact", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "MinWidth", "MinHeight", "Visible"], [3, "Close", "Title", "Width", "Height", "MinWidth", "MinHeight", "Visible"], [1, "share-modal-content"], [1, "add-user-section"], [1, "section-title"], [1, "fa-solid", "fa-user-plus"], [3, "userSelected", "currentUser", "excludeUserIds"], [1, "permissions-form"], [1, "permissions-list-section"], [1, "fa-solid", "fa-users"], ["Icon", "fa-solid fa-user-slash", "Title", "Not shared with anyone yet", "Size", "compact"], [1, "permissions-list"], [1, "modal-actions"], ["mjButton", "", 3, "click"], [1, "selected-user-info"], [1, "user-avatar"], [1, "fa-solid", "fa-user"], [1, "user-details"], [1, "user-name"], [1, "user-email"], [1, "permissions-grid"], [1, "permission-checkbox", "disabled"], ["type", "checkbox", "disabled", "", 3, "checked"], [1, "permission-label"], [1, "fa-solid", "fa-eye"], [1, "permission-desc"], [1, "permission-checkbox"], [1, "form-actions"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-share-nodes"], [1, "fa-solid", "fa-pen-to-square"], [1, "permission-item"], [1, "permission-details"], [1, "permission-user"], [1, "shared-by"], [1, "permission-badges"], [1, "permissions-edit-grid"], [1, "permission-actions"], [1, "permission-badge"], [1, "permission-checkbox-small", "disabled"], [1, "permission-checkbox-small"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Edit", 3, "click"], [1, "fa-solid", "fa-pen"], ["mjButton", "", "variant", "danger", "size", "sm", "title", "Remove", 3, "click"], [1, "fa-solid", "fa-xmark"], ["mjButton", "", "variant", "success", "size", "sm", "title", "Save", 3, "click"], [1, "fa-solid", "fa-check"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Cancel", 3, "click"]], template: function ArtifactShareModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
461
457
|
i0.ɵɵconditionalCreate(0, ArtifactShareModalComponent_Conditional_0_Template, 17, 11, "mj-window", 0);
|
|
462
458
|
} if (rf & 2) {
|
|
463
459
|
i0.ɵɵconditional(ctx.isOpen && ctx.artifact ? 0 : -1);
|
|
464
|
-
} }, dependencies: [FormsModule, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, MJWindowComponent, MJButtonDirective, UserPickerComponent], styles: [".share-modal-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-user-section[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-default);\n padding-bottom: 24px;\n}\n\n.selected-user-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 16px 0;\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n}\n\n.user-avatar[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.user-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n.user-details[_ngcontent-%COMP%] .user-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n.user-details[_ngcontent-%COMP%] .user-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n}\n\n.permissions-form[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.permissions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n margin: 16px 0;\n}\n\n.permission-checkbox[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.permission-checkbox[_ngcontent-%COMP%]:hover:not(.disabled) {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-desc[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-left: 28px;\n}\n\n.form-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n}\n\n.permissions-list-section[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.permissions-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.permission-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: background 0.2s;\n}\n.permission-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.permission-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.permission-user[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.permission-user[_ngcontent-%COMP%] .user-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-user[_ngcontent-%COMP%] .shared-by[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.permission-badges[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n}\n.permission-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.permissions-edit-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.permission-checkbox-small[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n cursor: pointer;\n}\n.permission-checkbox-small.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.permission-checkbox-small[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n margin: 0;\n}\n.permission-checkbox-small[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n}\n\n.permission-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\n.
|
|
460
|
+
} }, dependencies: [FormsModule, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, MJWindowComponent, MJButtonDirective, MJEmptyStateComponent, UserPickerComponent], styles: [".share-modal-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.add-user-section[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-default);\n padding-bottom: 24px;\n}\n\n.selected-user-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 16px 0;\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n}\n\n.user-avatar[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.user-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n.user-details[_ngcontent-%COMP%] .user-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n.user-details[_ngcontent-%COMP%] .user-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n}\n\n.permissions-form[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.permissions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n margin: 16px 0;\n}\n\n.permission-checkbox[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.permission-checkbox[_ngcontent-%COMP%]:hover:not(.disabled) {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n.permission-checkbox[_ngcontent-%COMP%] .permission-desc[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-left: 28px;\n}\n\n.form-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n}\n\n.permissions-list-section[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.permissions-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.permission-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: background 0.2s;\n}\n.permission-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.permission-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.permission-user[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.permission-user[_ngcontent-%COMP%] .user-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-user[_ngcontent-%COMP%] .shared-by[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.permission-badges[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n}\n.permission-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.permissions-edit-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.permission-checkbox-small[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n cursor: pointer;\n}\n.permission-checkbox-small.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.permission-checkbox-small[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n margin: 0;\n}\n.permission-checkbox-small[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n}\n\n.permission-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary) !important;\n color: var(--mj-text-inverse) !important;\n border: none !important;\n padding: 8px 16px;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover) !important;\n}\n.btn-primary[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface) !important;\n color: var(--mj-text-secondary) !important;\n border: 1px solid var(--mj-border-default) !important;\n padding: 8px 16px;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n}\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken) !important;\n border-color: var(--mj-border-strong) !important;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n padding: 0;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s;\n}\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n.btn-icon.btn-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n border-color: var(--mj-status-success);\n}\n.btn-icon.btn-success[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-success-bg);\n}\n.btn-icon.btn-danger[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error);\n}\n.btn-icon.btn-danger[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-error-bg);\n}\n.btn-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.modal-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}"] });
|
|
465
461
|
}
|
|
466
462
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactShareModalComponent, [{
|
|
467
463
|
type: Component,
|
|
468
|
-
args: [{ selector: 'mj-artifact-share-modal', standalone: true, imports: [FormsModule, MJWindowComponent, MJButtonDirective, UserPickerComponent], template: `
|
|
464
|
+
args: [{ selector: 'mj-artifact-share-modal', standalone: true, imports: [FormsModule, MJWindowComponent, MJButtonDirective, MJEmptyStateComponent, UserPickerComponent], template: `
|
|
469
465
|
@if (isOpen && artifact) {
|
|
470
466
|
<mj-window
|
|
471
467
|
[Title]="'Share: ' + artifact.Name"
|
|
@@ -556,10 +552,10 @@ export class ArtifactShareModalComponent {
|
|
|
556
552
|
</h3>
|
|
557
553
|
|
|
558
554
|
@if (permissions.length === 0) {
|
|
559
|
-
<
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
555
|
+
<mj-empty-state
|
|
556
|
+
Icon="fa-solid fa-user-slash"
|
|
557
|
+
Title="Not shared with anyone yet"
|
|
558
|
+
Size="compact" />
|
|
563
559
|
} @else {
|
|
564
560
|
<div class="permissions-list">
|
|
565
561
|
@for (permission of permissions; track permission.id) {
|
|
@@ -644,7 +640,7 @@ export class ArtifactShareModalComponent {
|
|
|
644
640
|
</div>
|
|
645
641
|
</mj-window>
|
|
646
642
|
}
|
|
647
|
-
`, styles: [".share-modal-content {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n.section-title i {\n color: var(--mj-brand-primary);\n}\n\n.add-user-section {\n border-bottom: 1px solid var(--mj-border-default);\n padding-bottom: 24px;\n}\n\n.selected-user-info {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 16px 0;\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n}\n\n.user-avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.user-details {\n flex: 1;\n min-width: 0;\n}\n.user-details .user-name {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n.user-details .user-email {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n}\n\n.permissions-form {\n margin-top: 16px;\n}\n\n.permissions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n margin: 16px 0;\n}\n\n.permission-checkbox {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.permission-checkbox:hover:not(.disabled) {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox input[type=checkbox] {\n margin-right: 8px;\n}\n.permission-checkbox .permission-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-checkbox .permission-label i {\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n.permission-checkbox .permission-desc {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-left: 28px;\n}\n\n.form-actions {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n}\n\n.permissions-list-section {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.permissions-list {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.permission-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: background 0.2s;\n}\n.permission-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.permission-details {\n flex: 1;\n min-width: 0;\n}\n\n.permission-user {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.permission-user .user-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-user .shared-by {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.permission-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n}\n.permission-badge i {\n font-size: 10px;\n}\n\n.permissions-edit-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.permission-checkbox-small {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n cursor: pointer;\n}\n.permission-checkbox-small.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.permission-checkbox-small input[type=checkbox] {\n margin: 0;\n}\n.permission-checkbox-small span {\n color: var(--mj-text-primary);\n}\n\n.permission-actions {\n display: flex;\n gap: 4px;\n}\n\n.
|
|
643
|
+
`, styles: [".share-modal-content {\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n}\n.section-title i {\n color: var(--mj-brand-primary);\n}\n\n.add-user-section {\n border-bottom: 1px solid var(--mj-border-default);\n padding-bottom: 24px;\n}\n\n.selected-user-info {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 16px 0;\n padding: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n}\n\n.user-avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.user-details {\n flex: 1;\n min-width: 0;\n}\n.user-details .user-name {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n.user-details .user-email {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n}\n\n.permissions-form {\n margin-top: 16px;\n}\n\n.permissions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 12px;\n margin: 16px 0;\n}\n\n.permission-checkbox {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n}\n.permission-checkbox:hover:not(.disabled) {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background: var(--mj-bg-surface-sunken);\n}\n.permission-checkbox input[type=checkbox] {\n margin-right: 8px;\n}\n.permission-checkbox .permission-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-checkbox .permission-label i {\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n.permission-checkbox .permission-desc {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-left: 28px;\n}\n\n.form-actions {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n}\n\n.permissions-list-section {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.permissions-list {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.permission-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: background 0.2s;\n}\n.permission-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.permission-details {\n flex: 1;\n min-width: 0;\n}\n\n.permission-user {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.permission-user .user-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n font-size: 14px;\n}\n.permission-user .shared-by {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.permission-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n}\n.permission-badge i {\n font-size: 10px;\n}\n\n.permissions-edit-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.permission-checkbox-small {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n cursor: pointer;\n}\n.permission-checkbox-small.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.permission-checkbox-small input[type=checkbox] {\n margin: 0;\n}\n.permission-checkbox-small span {\n color: var(--mj-text-primary);\n}\n\n.permission-actions {\n display: flex;\n gap: 4px;\n}\n\n.btn-primary {\n background: var(--mj-brand-primary) !important;\n color: var(--mj-text-inverse) !important;\n border: none !important;\n padding: 8px 16px;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.btn-primary:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover) !important;\n}\n.btn-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.btn-primary i {\n font-size: 12px;\n}\n\n.btn-secondary {\n background: var(--mj-bg-surface) !important;\n color: var(--mj-text-secondary) !important;\n border: 1px solid var(--mj-border-default) !important;\n padding: 8px 16px;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n}\n.btn-secondary:hover {\n background: var(--mj-bg-surface-sunken) !important;\n border-color: var(--mj-border-strong) !important;\n}\n\n.btn-icon {\n width: 32px;\n height: 32px;\n padding: 0;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s;\n}\n.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n}\n.btn-icon.btn-success {\n color: var(--mj-status-success);\n border-color: var(--mj-status-success);\n}\n.btn-icon.btn-success:hover {\n background: var(--mj-status-success-bg);\n}\n.btn-icon.btn-danger {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error);\n}\n.btn-icon.btn-danger:hover {\n background: var(--mj-status-error-bg);\n}\n.btn-icon i {\n font-size: 14px;\n}\n\n.modal-actions {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n}\n"] }]
|
|
648
644
|
}], () => [{ type: i1.ArtifactPermissionService }, { type: i0.ChangeDetectorRef }], { isOpen: [{
|
|
649
645
|
type: Input
|
|
650
646
|
}], artifact: [{
|