@memberjunction/ng-conversations 5.33.0 → 5.34.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 (23) hide show
  1. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +75 -30
  2. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  3. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +1026 -478
  4. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  5. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  6. package/dist/lib/components/collection/collection-form-modal.component.js +5 -5
  7. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  8. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +8 -1
  9. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  10. package/dist/lib/components/conversation/conversation-chat-area.component.js +30 -16
  11. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  12. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  13. package/dist/lib/components/conversation/conversation-list.component.js +3 -3
  14. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  15. package/dist/lib/components/message/message-item.component.d.ts +12 -1
  16. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  17. package/dist/lib/components/message/message-item.component.js +34 -15
  18. package/dist/lib/components/message/message-item.component.js.map +1 -1
  19. package/dist/lib/components/search/search-panel.component.d.ts +1 -7
  20. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  21. package/dist/lib/components/search/search-panel.component.js +4 -14
  22. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  23. package/package.json +22 -22
@@ -1,69 +1,114 @@
1
- import { EventEmitter, OnInit, OnChanges, ChangeDetectorRef } from '@angular/core';
1
+ import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef, AfterViewInit } from '@angular/core';
2
2
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
3
3
  import { UserInfo } from '@memberjunction/core';
4
4
  import { MJCollectionEntity } from '@memberjunction/core-entities';
5
5
  import { ToastService } from '../../services/toast.service';
6
- import { CollectionPermissionService, CollectionPermission } from '../../services/collection-permission.service';
6
+ import { CollectionPermissionService } from '../../services/collection-permission.service';
7
7
  import * as i0 from "@angular/core";
8
+ type SaveStatus = 'pending' | 'saving' | 'success' | 'error';
9
+ type FilterMode = 'editable' | 'recent';
8
10
  interface CollectionNode {
9
11
  collection: MJCollectionEntity;
10
- selected: boolean;
12
+ depth: number;
13
+ expanded: boolean;
11
14
  hasChildren: boolean;
12
15
  alreadyContainsArtifact: boolean;
16
+ /** Breadcrumb of parent names — only used in search mode */
17
+ ancestry: string;
18
+ }
19
+ interface SaveResult {
20
+ collectionId: string;
21
+ collectionName: string;
22
+ status: SaveStatus;
23
+ errorMessage?: string;
13
24
  }
14
25
  /**
15
- * Modal for selecting collections to save artifacts to.
16
- * Features:
17
- * - Permission-aware: only shows collections where user has Edit permission
18
- * - Hierarchical navigation: start with root collections, drill down as needed
19
- * - Search by name
20
- * - Multi-selection support
21
- * - Create new collection with proper permission logic
26
+ * Modal for saving an artifact version to one or more collections.
27
+ *
28
+ * Owns the full UX *and* the writes:
29
+ * - Left pane: searchable, expandable tree of collections the user can edit
30
+ * - Right pane: artifact preview + live selection chips, and (post-save) per-collection results
31
+ * - Save runs inline (modal stays open during writes) and reports per-collection success/failure with retry
32
+ *
33
+ * Emits {@link completed} on full success (parent should reload bookmark state) and on user-acknowledged
34
+ * partial failure. Emits {@link cancelled} when the user backs out without saving anything.
22
35
  */
23
- export declare class ArtifactCollectionPickerModalComponent extends BaseAngularComponent implements OnInit, OnChanges {
36
+ export declare class ArtifactCollectionPickerModalComponent extends BaseAngularComponent implements OnInit, OnChanges, AfterViewInit {
24
37
  private toastService;
25
38
  private permissionService;
26
39
  private cdr;
27
40
  isOpen: boolean;
28
41
  environmentId: string;
29
42
  currentUser: UserInfo;
43
+ /** Collections that already contain the *current version* — rendered with a green check and locked. */
30
44
  excludeCollectionIds: string[];
31
- saved: EventEmitter<string[]>;
45
+ /** ID of the artifact version being saved. Required for writes. */
46
+ artifactVersionId: string | null;
47
+ /** Display-only: artifact name shown in the preview pane. */
48
+ artifactName: string;
49
+ /** Display-only: version number shown in the preview pane. */
50
+ artifactVersionNumber: number | null;
51
+ /** Fired when the save flow finishes (fully successful, or user acknowledged partial result). */
52
+ completed: EventEmitter<{
53
+ successIds: string[];
54
+ failedIds: string[];
55
+ }>;
32
56
  cancelled: EventEmitter<void>;
33
- allCollections: MJCollectionEntity[];
34
- displayedCollections: CollectionNode[];
35
- selectedCollections: MJCollectionEntity[];
36
- userPermissions: Map<string, CollectionPermission>;
37
- navigationPath: CollectionNode[];
38
- currentParentId: string | null;
39
- currentParentCollection: MJCollectionEntity | undefined;
57
+ searchInputRef?: ElementRef<HTMLInputElement>;
58
+ newNameInputRef?: ElementRef<HTMLInputElement>;
59
+ private allCollections;
60
+ private editableCollections;
61
+ private userPermissions;
62
+ private collectionById;
63
+ private expandedIds;
64
+ selectedIds: Set<string>;
40
65
  searchQuery: string;
66
+ filterMode: FilterMode;
67
+ visibleNodes: CollectionNode[];
41
68
  isLoading: boolean;
42
69
  isSaving: boolean;
43
70
  errorMessage: string;
44
71
  showCreateForm: boolean;
45
72
  newCollectionName: string;
46
73
  isCreatingCollection: boolean;
74
+ saveResults: Map<string, SaveResult>;
47
75
  constructor(toastService: ToastService, permissionService: CollectionPermissionService, cdr: ChangeDetectorRef);
48
76
  ngOnInit(): Promise<void>;
49
- ngOnChanges(changes: any): Promise<void>;
50
- private reset;
77
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
78
+ ngAfterViewInit(): void;
79
+ isSelected(id: string): boolean;
80
+ get selectedCollections(): MJCollectionEntity[];
81
+ get resultsList(): SaveResult[];
82
+ get successCount(): number;
83
+ get failedCount(): number;
84
+ private resetState;
51
85
  private loadCollections;
52
86
  private loadUserPermissions;
53
- private displayRootCollections;
54
- private displayChildCollections;
55
- private createNode;
56
- canEdit(collection: MJCollectionEntity): boolean;
57
- toggleSelection(node: CollectionNode): void;
58
- drillIntoCollection(collection: MJCollectionEntity): void;
59
- navigateToRoot(): void;
60
- navigateToCollection(collection: MJCollectionEntity): void;
87
+ private canEdit;
88
+ private rebuildVisibleNodes;
89
+ private buildTreeNodes;
90
+ private buildSearchNodes;
91
+ private buildAncestry;
92
+ private isAlreadyAdded;
93
+ onRowClick(node: CollectionNode): void;
94
+ toggleSelection(c: MJCollectionEntity): void;
95
+ deselect(id: string): void;
96
+ toggleExpand(node: CollectionNode): void;
61
97
  onSearchChange(): void;
98
+ clearSearch(): void;
99
+ setFilter(mode: FilterMode): void;
100
+ openCreateForm(): void;
101
+ cancelCreate(): void;
62
102
  createCollection(): Promise<void>;
63
103
  onSave(): Promise<void>;
104
+ retryFailed(): Promise<void>;
105
+ retryOne(collectionId: string): Promise<void>;
106
+ private saveOne;
64
107
  onCancel(): void;
108
+ onAcknowledgeAndClose(): void;
109
+ private emitCompleted;
65
110
  static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactCollectionPickerModalComponent, never>;
66
- static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactCollectionPickerModalComponent, "mj-artifact-collection-picker-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "excludeCollectionIds": { "alias": "excludeCollectionIds"; "required": false; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
111
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactCollectionPickerModalComponent, "mj-artifact-collection-picker-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "excludeCollectionIds": { "alias": "excludeCollectionIds"; "required": false; }; "artifactVersionId": { "alias": "artifactVersionId"; "required": false; }; "artifactName": { "alias": "artifactName"; "required": false; }; "artifactVersionNumber": { "alias": "artifactVersionNumber"; "required": false; }; }, { "completed": "completed"; "cancelled": "cancelled"; }, never, never, true, never>;
67
112
  }
68
113
  export {};
69
114
  //# sourceMappingURL=artifact-collection-picker-modal.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-collection-picker-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-collection-picker-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAiB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;;AAGjH,UAAU,cAAc;IACtB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,qBA4ca,sCAAuC,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;IA6BzG,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,GAAG;IA9BJ,MAAM,EAAE,OAAO,CAAS;IACxB,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAM;IAEnC,KAAK,yBAAgC;IACrC,SAAS,qBAA4B;IAExC,cAAc,EAAE,kBAAkB,EAAE,CAAM;IAC1C,oBAAoB,EAAE,cAAc,EAAE,CAAM;IAC5C,mBAAmB,EAAE,kBAAkB,EAAE,CAAM;IAC/C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAa;IAE/D,cAAc,EAAE,cAAc,EAAE,CAAM;IACtC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,uBAAuB,EAAE,kBAAkB,GAAG,SAAS,CAAa;IAEpE,WAAW,EAAE,MAAM,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;IAG1B,cAAc,EAAE,OAAO,CAAS;IAChC,iBAAiB,EAAE,MAAM,CAAM;IAC/B,oBAAoB,EAAE,OAAO,CAAS;gBAGnC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,2BAA2B,EAC9C,GAAG,EAAE,iBAAiB;IAI1B,QAAQ;IAOR,WAAW,CAAC,OAAO,EAAE,GAAG;IAO9B,OAAO,CAAC,KAAK;YAYC,eAAe;YA0Cf,mBAAmB;IAsBjC,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO;IAWhD,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAgB3C,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAmBzD,cAAc,IAAI,IAAI;IAatB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAmB1D,cAAc,IAAI,IAAI;IA0BhB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmEjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,QAAQ,IAAI,IAAI;yCA/UL,sCAAsC;2CAAtC,sCAAsC;CAkVlD"}
1
+ {"version":3,"file":"artifact-collection-picker-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-collection-picker-modal.component.ts"],"names":[],"mappings":"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"}