@memberjunction/ng-conversations 5.41.0 → 5.42.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.
Files changed (53) hide show
  1. package/dist/__tests__/remote-browser-channel.test.js +163 -1
  2. package/dist/__tests__/remote-browser-channel.test.js.map +1 -1
  3. package/dist/lib/components/collection/collections-full-view.component.d.ts +105 -2
  4. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  5. package/dist/lib/components/collection/collections-full-view.component.js +1378 -489
  6. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  7. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +4 -0
  8. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  9. package/dist/lib/components/conversation/conversation-chat-area.component.js +13 -8
  10. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  11. package/dist/lib/components/conversation/conversation-list.component.d.ts +98 -5
  12. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  13. package/dist/lib/components/conversation/conversation-list.component.js +1102 -401
  14. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  15. package/dist/lib/components/message/message-input.component.js +1 -1
  16. package/dist/lib/components/message/message-input.component.js.map +1 -1
  17. package/dist/lib/components/project/project-form-modal.component.d.ts +5 -1
  18. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  19. package/dist/lib/components/project/project-form-modal.component.js +104 -85
  20. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  21. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +22 -0
  22. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
  23. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +40 -0
  24. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
  25. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -1
  26. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  27. package/dist/lib/components/realtime/realtime-agent-picker.component.js +97 -19
  28. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  29. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +33 -0
  30. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  31. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +164 -7
  32. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  33. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +35 -2
  34. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -1
  35. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +67 -4
  36. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -1
  37. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts +1 -0
  38. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts.map +1 -1
  39. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js +13 -0
  40. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js.map +1 -1
  41. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +4 -0
  42. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  43. package/dist/lib/components/workspace/conversation-workspace.component.js +13 -8
  44. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  45. package/dist/lib/services/artifact-state.service.d.ts +1 -1
  46. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  47. package/dist/lib/services/artifact-state.service.js +7 -2
  48. package/dist/lib/services/artifact-state.service.js.map +1 -1
  49. package/dist/lib/services/realtime-pairing.d.ts +8 -7
  50. package/dist/lib/services/realtime-pairing.d.ts.map +1 -1
  51. package/dist/lib/services/realtime-pairing.js +19 -9
  52. package/dist/lib/services/realtime-pairing.js.map +1 -1
  53. package/package.json +26 -26
@@ -1,14 +1,32 @@
1
1
  import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
2
  import { UserInfo } from '@memberjunction/core';
3
- import { MJConversationEntity } from '@memberjunction/core-entities';
3
+ import { MJConversationEntity, MJProjectEntity } from '@memberjunction/core-entities';
4
+ import { MJDialogService } from '@memberjunction/ng-ui-components';
4
5
  import { DialogService } from '../../services/dialog.service';
5
6
  import { NotificationService } from '../../services/notification.service';
6
7
  import { ActiveTasksService } from '../../services/active-tasks.service';
8
+ import { ConversationGroupBy } from '../../models/conversation-state.model';
7
9
  import * as i0 from "@angular/core";
10
+ /**
11
+ * A node in the conversation folder tree. Each node holds its project (folder),
12
+ * the conversations directly assigned to it, and its nested child folders.
13
+ */
14
+ interface FolderNode {
15
+ project: MJProjectEntity;
16
+ depth: number;
17
+ /** Conversations directly in this folder (unpinned only — pinned live in the Pinned section). */
18
+ conversations: MJConversationEntity[];
19
+ children: FolderNode[];
20
+ /** Total conversations in this folder and all descendants. */
21
+ totalCount: number;
22
+ /** True when this folder or any descendant has at least one (filtered) conversation. */
23
+ hasContent: boolean;
24
+ }
8
25
  export declare class ConversationListComponent implements OnInit, OnDestroy {
9
26
  private dialogService;
10
27
  private notificationService;
11
28
  private activeTasksService;
29
+ private mjDialogService;
12
30
  private cdr;
13
31
  environmentId: string;
14
32
  currentUser: UserInfo;
@@ -24,34 +42,108 @@ export declare class ConversationListComponent implements OnInit, OnDestroy {
24
42
  refreshRequested: EventEmitter<void>;
25
43
  directMessagesExpanded: boolean;
26
44
  pinnedExpanded: boolean;
45
+ foldersExpanded: boolean;
46
+ ungroupedExpanded: boolean;
27
47
  openMenuConversationId: string | null;
28
48
  conversationIdsWithTasks: Set<string>;
29
49
  isSelectionMode: boolean;
30
50
  selectedConversationIds: Set<string>;
31
- searchQuery: string;
32
51
  isHeaderMenuOpen: boolean;
33
52
  isRefreshing: boolean;
53
+ /** UserInfoEngine key for persisting folder collapse state + group-by mode. */
54
+ private static readonly FolderPrefsKey;
55
+ /** How the conversation list is grouped. 'project' = folders, 'none' = flat list. */
56
+ groupBy: ConversationGroupBy;
57
+ /** Precomputed groupings, rebuilt whenever conversations/projects/search change. */
58
+ pinnedConversations: MJConversationEntity[];
59
+ unpinnedConversations: MJConversationEntity[];
60
+ ungroupedConversations: MJConversationEntity[];
61
+ folderTree: FolderNode[];
62
+ /** Flattened folder list (depth-ordered) for the "Move to folder" menu. */
63
+ flatFolders: FolderNode[];
64
+ /** Folder IDs (normalized) whose children are collapsed. Absent = expanded. */
65
+ private collapsedFolderIds;
66
+ /** Drag-and-drop state. */
67
+ draggedConversationId: string | null;
68
+ draggedFolderId: string | null;
69
+ dragOverTargetId: string | null;
70
+ /** When set, the open conversation menu is showing its "Move to folder" picker. */
71
+ moveSubmenuConversationId: string | null;
72
+ private _searchQuery;
34
73
  private destroy$;
35
74
  private engine;
36
75
  IsLoading: boolean;
37
- constructor(dialogService: DialogService, notificationService: NotificationService, activeTasksService: ActiveTasksService, cdr: ChangeDetectorRef);
76
+ constructor(dialogService: DialogService, notificationService: NotificationService, activeTasksService: ActiveTasksService, mjDialogService: MJDialogService, cdr: ChangeDetectorRef);
77
+ get searchQuery(): string;
78
+ set searchQuery(value: string);
79
+ /** True when a search filter is active. */
80
+ get isSearching(): boolean;
81
+ /** Conversations matching the current search (used by selection-mode helpers). */
38
82
  get filteredConversations(): MJConversationEntity[];
39
- get pinnedConversations(): MJConversationEntity[];
40
- get unpinnedConversations(): MJConversationEntity[];
83
+ private filterConversations;
41
84
  ngOnInit(): void;
42
85
  ngOnDestroy(): void;
43
86
  onDocumentClick(): void;
44
87
  toggleHeaderMenu(event: Event): void;
45
88
  closeHeaderMenu(): void;
46
89
  onSelectConversationsClick(event: Event): void;
90
+ onToggleGroupByClick(event: Event): void;
47
91
  onRefreshConversationsClick(event: Event): Promise<void>;
48
92
  onPinSidebarClick(event: Event): void;
49
93
  onUnpinSidebarClick(event: Event): void;
50
94
  toggleDirectMessages(): void;
51
95
  togglePinned(): void;
96
+ toggleFolders(): void;
97
+ toggleUngrouped(): void;
98
+ /**
99
+ * Recomputes pinned/unpinned/ungrouped lists and the folder tree from the
100
+ * engine's conversation + project caches and the current search filter.
101
+ */
102
+ private rebuildGroups;
103
+ private flattenFolders;
104
+ private findFolderNode;
105
+ isFolderExpanded(projectId: string): boolean;
106
+ toggleFolder(projectId: string): void;
107
+ toggleGroupBy(): void;
108
+ private loadFolderPrefs;
109
+ private saveFolderPrefs;
110
+ onConversationDragStart(conversation: MJConversationEntity, event: DragEvent): void;
111
+ onConversationDragEnd(): void;
112
+ onFolderDragStart(node: FolderNode, event: DragEvent): void;
113
+ onFolderDragEnd(): void;
114
+ onFolderDragOver(projectId: string, event: DragEvent): void;
115
+ onUngroupedDragOver(event: DragEvent): void;
116
+ /** The Folders section header accepts a dragged folder to move it back to the top level. */
117
+ onFoldersRootDragOver(event: DragEvent): void;
118
+ onDragLeave(targetId: string): void;
119
+ onFolderDrop(project: MJProjectEntity, event: DragEvent): void;
120
+ onUngroupedDrop(event: DragEvent): void;
121
+ onFoldersRootDrop(event: DragEvent): void;
122
+ /**
123
+ * A folder can be dropped onto a target folder only if the target isn't the dragged
124
+ * folder itself and isn't one of its descendants (otherwise we'd create a cycle).
125
+ */
126
+ private isValidFolderDropTarget;
127
+ /** True when `nodeId` is a descendant of `ancestorId` in the folder tree. */
128
+ private isDescendantOf;
129
+ /** Assigns a conversation to a folder (or null to ungroup) and refreshes the view. */
130
+ private moveConversation;
131
+ /** Reparents a folder under another folder (or to the top level when projectId is null). */
132
+ private moveFolder;
133
+ openMoveSubmenu(conversationId: string, event: Event): void;
134
+ closeMoveSubmenu(event: Event): void;
135
+ IsInFolder(conversation: MJConversationEntity, projectId: string): boolean;
136
+ selectMoveTarget(conversation: MJConversationEntity, projectId: string | null): void;
137
+ createFolder(parentId: string | null, event?: Event): void;
138
+ editFolder(project: MJProjectEntity, event?: Event): void;
139
+ createFolderForConversation(conversation: MJConversationEntity, event: Event): void;
140
+ private openFolderModal;
141
+ deleteFolder(project: MJProjectEntity, event?: Event): Promise<void>;
52
142
  IsConversationActive(conversation: MJConversationEntity): boolean;
53
143
  IsConversationRenamed(conversation: MJConversationEntity): boolean;
54
144
  IsMenuOpen(conversation: MJConversationEntity): boolean;
145
+ IsConversationDragging(conversation: MJConversationEntity): boolean;
146
+ IsMoveSubmenuOpen(conversation: MJConversationEntity): boolean;
55
147
  selectConversation(conversation: MJConversationEntity): void;
56
148
  createNewConversation(): Promise<void>;
57
149
  renameConversation(conversation: MJConversationEntity): Promise<void>;
@@ -73,4 +165,5 @@ export declare class ConversationListComponent implements OnInit, OnDestroy {
73
165
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationListComponent, never>;
74
166
  static ɵcmp: i0.ɵɵComponentDeclaration<ConversationListComponent, "mj-conversation-list", never, { "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "selectedConversationId": { "alias": "selectedConversationId"; "required": false; }; "renamedConversationId": { "alias": "renamedConversationId"; "required": false; }; "isSidebarPinned": { "alias": "isSidebarPinned"; "required": false; }; "isMobileView": { "alias": "isMobileView"; "required": false; }; }, { "conversationSelected": "conversationSelected"; "conversationDeleted": "conversationDeleted"; "newConversationRequested": "newConversationRequested"; "pinSidebarRequested": "pinSidebarRequested"; "unpinSidebarRequested": "unpinSidebarRequested"; "refreshRequested": "refreshRequested"; }, never, never, false, never>;
75
167
  }
168
+ export {};
76
169
  //# sourceMappingURL=conversation-list.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-list.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-list.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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"}