@memberjunction/ng-conversations 5.0.0 → 5.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-conversations",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "MemberJunction: Conversation, Collection, and Artifact management components for any Angular application",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -31,21 +31,21 @@
31
31
  "dependencies": {
32
32
  "@angular/animations": "21.1.3",
33
33
  "@angular/cdk": "21.1.3",
34
- "@memberjunction/ai": "5.0.0",
35
- "@memberjunction/ai-core-plus": "5.0.0",
36
- "@memberjunction/ai-engine-base": "5.0.0",
37
- "@memberjunction/core": "5.0.0",
38
- "@memberjunction/core-entities": "5.0.0",
39
- "@memberjunction/global": "5.0.0",
40
- "@memberjunction/graphql-dataprovider": "5.0.0",
41
- "@memberjunction/ng-artifacts": "5.0.0",
42
- "@memberjunction/ng-base-types": "5.0.0",
43
- "@memberjunction/ng-code-editor": "5.0.0",
44
- "@memberjunction/ng-container-directives": "5.0.0",
45
- "@memberjunction/ng-notifications": "5.0.0",
46
- "@memberjunction/ng-shared-generic": "5.0.0",
47
- "@memberjunction/ng-tasks": "5.0.0",
48
- "@memberjunction/ng-testing": "5.0.0",
34
+ "@memberjunction/ai": "5.1.0",
35
+ "@memberjunction/ai-core-plus": "5.1.0",
36
+ "@memberjunction/ai-engine-base": "5.1.0",
37
+ "@memberjunction/core": "5.1.0",
38
+ "@memberjunction/core-entities": "5.1.0",
39
+ "@memberjunction/global": "5.1.0",
40
+ "@memberjunction/graphql-dataprovider": "5.1.0",
41
+ "@memberjunction/ng-artifacts": "5.1.0",
42
+ "@memberjunction/ng-base-types": "5.1.0",
43
+ "@memberjunction/ng-code-editor": "5.1.0",
44
+ "@memberjunction/ng-container-directives": "5.1.0",
45
+ "@memberjunction/ng-notifications": "5.1.0",
46
+ "@memberjunction/ng-shared-generic": "5.1.0",
47
+ "@memberjunction/ng-tasks": "5.1.0",
48
+ "@memberjunction/ng-testing": "5.1.0",
49
49
  "@progress/kendo-angular-buttons": "22.0.1",
50
50
  "@progress/kendo-angular-dateinputs": "22.0.1",
51
51
  "@progress/kendo-angular-dialog": "22.0.1",
@@ -55,7 +55,7 @@
55
55
  "@progress/kendo-angular-layout": "22.0.1",
56
56
  "@progress/kendo-angular-notification": "22.0.1",
57
57
  "@progress/kendo-angular-upload": "22.0.1",
58
- "@memberjunction/ng-markdown": "5.0.0",
58
+ "@memberjunction/ng-markdown": "5.1.0",
59
59
  "rxjs": "^7.8.2",
60
60
  "tslib": "^2.8.1"
61
61
  },
@@ -1,48 +0,0 @@
1
- import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
2
- import { UserInfo } from '@memberjunction/core';
3
- import { ArtifactEntity } from '@memberjunction/core-entities';
4
- import { ArtifactStateService } from '../../services/artifact-state.service';
5
- import { ArtifactPermissionService } from '../../services/artifact-permission.service';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Artifact viewer panel component
9
- * Displays artifact content with permission-based actions (share, edit, delete)
10
- */
11
- export declare class ArtifactViewerPanelComponent implements OnInit, OnChanges {
12
- private artifactStateService;
13
- private artifactPermissionService;
14
- private cdr;
15
- artifactId: string;
16
- currentUser: UserInfo;
17
- environmentId: string;
18
- versionNumber?: number;
19
- showSaveToCollection: boolean;
20
- viewContext: 'collection' | 'conversation';
21
- contextCollectionId?: string;
22
- closed: EventEmitter<void>;
23
- navigateToLink: EventEmitter<{
24
- type: 'conversation' | 'collection';
25
- id: string;
26
- }>;
27
- artifact: ArtifactEntity | null;
28
- loading: boolean;
29
- error: string | null;
30
- canShare: boolean;
31
- canEdit: boolean;
32
- isShareModalOpen: boolean;
33
- constructor(artifactStateService: ArtifactStateService, artifactPermissionService: ArtifactPermissionService, cdr: ChangeDetectorRef);
34
- ngOnInit(): Promise<void>;
35
- ngOnChanges(changes: SimpleChanges): Promise<void>;
36
- private loadArtifact;
37
- private loadPermissions;
38
- openShareModal(): void;
39
- closeShareModal(): void;
40
- onShareSaved(): void;
41
- onEdit(): void;
42
- onDelete(): Promise<void>;
43
- onSaveToCollection(): void;
44
- onClose(): void;
45
- static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactViewerPanelComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactViewerPanelComponent, "mj-artifact-viewer-panel", never, { "artifactId": { "alias": "artifactId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "versionNumber": { "alias": "versionNumber"; "required": false; }; "showSaveToCollection": { "alias": "showSaveToCollection"; "required": false; }; "viewContext": { "alias": "viewContext"; "required": false; }; "contextCollectionId": { "alias": "contextCollectionId"; "required": false; }; }, { "closed": "closed"; "navigateToLink": "navigateToLink"; }, never, never, true, never>;
47
- }
48
- //# sourceMappingURL=artifact-viewer-panel.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-viewer-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/artifact/artifact-viewer-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5H,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;;AAGvF;;;GAGG;AACH,qBA6Ha,4BAA6B,YAAW,MAAM,EAAE,SAAS;IAwBlE,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,yBAAyB;IACjC,OAAO,CAAC,GAAG;IAzBJ,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,QAAQ,CAAC;IACvB,aAAa,EAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAS;IACtC,WAAW,EAAE,YAAY,GAAG,cAAc,CAAkB;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE5B,MAAM,qBAA4B;IAClC,cAAc;cAA2B,cAAc,GAAG,YAAY;YAAM,MAAM;OAAK;IAEjG,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAQ;IACvC,OAAO,EAAE,OAAO,CAAS;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,EAAE,OAAO,CAAS;IAGzB,gBAAgB,EAAE,OAAO,CAAS;gBAGxB,oBAAoB,EAAE,oBAAoB,EAC1C,yBAAyB,EAAE,yBAAyB,EACpD,GAAG,EAAE,iBAAiB;IAG1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO1C,YAAY;YAqBZ,eAAe;IAmB7B,cAAc,IAAI,IAAI;IAItB,eAAe,IAAI,IAAI;IAIvB,YAAY,IAAI,IAAI;IAMpB,MAAM,IAAI,IAAI;IAKR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B,kBAAkB,IAAI,IAAI;IAK1B,OAAO,IAAI,IAAI;yCAzHJ,4BAA4B;2CAA5B,4BAA4B;CA4HxC"}
@@ -1,457 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ButtonModule } from '@progress/kendo-angular-buttons';
4
- import { ArtifactShareModalComponent } from './artifact-share-modal.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/artifact-state.service";
7
- import * as i2 from "../../services/artifact-permission.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@progress/kendo-angular-buttons";
10
- function ArtifactViewerPanelComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementStart(0, "span", 4);
12
- i0.ɵɵtext(1);
13
- i0.ɵɵelementEnd();
14
- } if (rf & 2) {
15
- const ctx_r0 = i0.ɵɵnextContext();
16
- i0.ɵɵadvance();
17
- i0.ɵɵtextInterpolate(ctx_r0.artifact == null ? null : ctx_r0.artifact.Type);
18
- } }
19
- function ArtifactViewerPanelComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
20
- const _r2 = i0.ɵɵgetCurrentView();
21
- i0.ɵɵelementStart(0, "button", 16);
22
- i0.ɵɵlistener("click", function ArtifactViewerPanelComponent_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openShareModal()); });
23
- i0.ɵɵelement(1, "i", 17);
24
- i0.ɵɵelementEnd();
25
- } }
26
- function ArtifactViewerPanelComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
27
- const _r3 = i0.ɵɵgetCurrentView();
28
- i0.ɵɵelementStart(0, "button", 18);
29
- i0.ɵɵlistener("click", function ArtifactViewerPanelComponent_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onEdit()); });
30
- i0.ɵɵelement(1, "i", 19);
31
- i0.ɵɵelementEnd();
32
- } }
33
- function ArtifactViewerPanelComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
34
- const _r4 = i0.ɵɵgetCurrentView();
35
- i0.ɵɵelementStart(0, "button", 20);
36
- i0.ɵɵlistener("click", function ArtifactViewerPanelComponent_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDelete()); });
37
- i0.ɵɵelement(1, "i", 21);
38
- i0.ɵɵelementEnd();
39
- } }
40
- function ArtifactViewerPanelComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
41
- const _r5 = i0.ɵɵgetCurrentView();
42
- i0.ɵɵelementStart(0, "button", 22);
43
- i0.ɵɵlistener("click", function ArtifactViewerPanelComponent_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSaveToCollection()); });
44
- i0.ɵɵelement(1, "i", 23);
45
- i0.ɵɵelementEnd();
46
- } }
47
- function ArtifactViewerPanelComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "div", 13);
49
- i0.ɵɵelement(1, "i", 24);
50
- i0.ɵɵelementStart(2, "p");
51
- i0.ɵɵtext(3, "Loading artifact...");
52
- i0.ɵɵelementEnd()();
53
- } }
54
- function ArtifactViewerPanelComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
55
- i0.ɵɵelementStart(0, "div", 14);
56
- i0.ɵɵelement(1, "i", 25);
57
- i0.ɵɵelementStart(2, "p");
58
- i0.ɵɵtext(3);
59
- i0.ɵɵelementEnd()();
60
- } if (rf & 2) {
61
- const ctx_r0 = i0.ɵɵnextContext();
62
- i0.ɵɵadvance(3);
63
- i0.ɵɵtextInterpolate(ctx_r0.error);
64
- } }
65
- function ArtifactViewerPanelComponent_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelementStart(0, "div", 27)(1, "label");
67
- i0.ɵɵtext(2, "Description:");
68
- i0.ɵɵelementEnd();
69
- i0.ɵɵelementStart(3, "p");
70
- i0.ɵɵtext(4);
71
- i0.ɵɵelementEnd()();
72
- } if (rf & 2) {
73
- const ctx_r0 = i0.ɵɵnextContext(2);
74
- i0.ɵɵadvance(4);
75
- i0.ɵɵtextInterpolate(ctx_r0.artifact.Description);
76
- } }
77
- function ArtifactViewerPanelComponent_Conditional_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div", 27)(1, "label");
79
- i0.ɵɵtext(2, "Created by:");
80
- i0.ɵɵelementEnd();
81
- i0.ɵɵelementStart(3, "p");
82
- i0.ɵɵtext(4);
83
- i0.ɵɵelementEnd()();
84
- } if (rf & 2) {
85
- const ctx_r0 = i0.ɵɵnextContext(2);
86
- i0.ɵɵadvance(4);
87
- i0.ɵɵtextInterpolate(ctx_r0.artifact.User);
88
- } }
89
- function ArtifactViewerPanelComponent_Conditional_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
90
- i0.ɵɵelementStart(0, "div", 27)(1, "label");
91
- i0.ɵɵtext(2, "Created:");
92
- i0.ɵɵelementEnd();
93
- i0.ɵɵelementStart(3, "p");
94
- i0.ɵɵtext(4);
95
- i0.ɵɵpipe(5, "date");
96
- i0.ɵɵelementEnd()();
97
- } if (rf & 2) {
98
- const ctx_r0 = i0.ɵɵnextContext(2);
99
- i0.ɵɵadvance(4);
100
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.artifact.__mj_CreatedAt, "medium"));
101
- } }
102
- function ArtifactViewerPanelComponent_Conditional_16_Conditional_4_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵelementStart(0, "div", 27)(1, "label");
104
- i0.ɵɵtext(2, "Version:");
105
- i0.ɵɵelementEnd();
106
- i0.ɵɵelementStart(3, "p");
107
- i0.ɵɵtext(4);
108
- i0.ɵɵelementEnd()();
109
- } if (rf & 2) {
110
- const ctx_r0 = i0.ɵɵnextContext(2);
111
- i0.ɵɵadvance(4);
112
- i0.ɵɵtextInterpolate(ctx_r0.versionNumber);
113
- } }
114
- function ArtifactViewerPanelComponent_Conditional_16_Conditional_6_Template(rf, ctx) { if (rf & 1) {
115
- i0.ɵɵelementStart(0, "div", 29)(1, "h3");
116
- i0.ɵɵtext(2, "Comments");
117
- i0.ɵɵelementEnd();
118
- i0.ɵɵelementStart(3, "div", 32);
119
- i0.ɵɵtext(4);
120
- i0.ɵɵelementEnd()();
121
- } if (rf & 2) {
122
- const ctx_r0 = i0.ɵɵnextContext(2);
123
- i0.ɵɵadvance(4);
124
- i0.ɵɵtextInterpolate(ctx_r0.artifact.Comments);
125
- } }
126
- function ArtifactViewerPanelComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵelementStart(0, "div", 26);
128
- i0.ɵɵtemplate(1, ArtifactViewerPanelComponent_Conditional_16_Conditional_1_Template, 5, 1, "div", 27)(2, ArtifactViewerPanelComponent_Conditional_16_Conditional_2_Template, 5, 1, "div", 27)(3, ArtifactViewerPanelComponent_Conditional_16_Conditional_3_Template, 6, 4, "div", 27)(4, ArtifactViewerPanelComponent_Conditional_16_Conditional_4_Template, 5, 1, "div", 27);
129
- i0.ɵɵelementEnd();
130
- i0.ɵɵelementStart(5, "div", 28);
131
- i0.ɵɵtemplate(6, ArtifactViewerPanelComponent_Conditional_16_Conditional_6_Template, 5, 1, "div", 29);
132
- i0.ɵɵelementStart(7, "div", 29)(8, "h3");
133
- i0.ɵɵtext(9, "Artifact Information");
134
- i0.ɵɵelementEnd();
135
- i0.ɵɵelementStart(10, "div", 30)(11, "div", 31)(12, "label");
136
- i0.ɵɵtext(13, "Environment:");
137
- i0.ɵɵelementEnd();
138
- i0.ɵɵelementStart(14, "span");
139
- i0.ɵɵtext(15);
140
- i0.ɵɵelementEnd()();
141
- i0.ɵɵelementStart(16, "div", 31)(17, "label");
142
- i0.ɵɵtext(18, "Visibility:");
143
- i0.ɵɵelementEnd();
144
- i0.ɵɵelementStart(19, "span");
145
- i0.ɵɵtext(20);
146
- i0.ɵɵelementEnd()()()()();
147
- } if (rf & 2) {
148
- const ctx_r0 = i0.ɵɵnextContext();
149
- i0.ɵɵadvance();
150
- i0.ɵɵconditional(ctx_r0.artifact.Description ? 1 : -1);
151
- i0.ɵɵadvance();
152
- i0.ɵɵconditional(ctx_r0.artifact.User ? 2 : -1);
153
- i0.ɵɵadvance();
154
- i0.ɵɵconditional(ctx_r0.artifact.__mj_CreatedAt ? 3 : -1);
155
- i0.ɵɵadvance();
156
- i0.ɵɵconditional(ctx_r0.versionNumber ? 4 : -1);
157
- i0.ɵɵadvance(2);
158
- i0.ɵɵconditional(ctx_r0.artifact.Comments ? 6 : -1);
159
- i0.ɵɵadvance(9);
160
- i0.ɵɵtextInterpolate(ctx_r0.artifact.Environment);
161
- i0.ɵɵadvance(5);
162
- i0.ɵɵtextInterpolate(ctx_r0.artifact.Visibility);
163
- } }
164
- /**
165
- * Artifact viewer panel component
166
- * Displays artifact content with permission-based actions (share, edit, delete)
167
- */
168
- export class ArtifactViewerPanelComponent {
169
- artifactStateService;
170
- artifactPermissionService;
171
- cdr;
172
- artifactId;
173
- currentUser;
174
- environmentId;
175
- versionNumber;
176
- showSaveToCollection = false;
177
- viewContext = 'conversation';
178
- contextCollectionId;
179
- closed = new EventEmitter();
180
- navigateToLink = new EventEmitter();
181
- artifact = null;
182
- loading = false;
183
- error = null;
184
- // Permissions
185
- canShare = false;
186
- canEdit = false;
187
- // Share modal state
188
- isShareModalOpen = false;
189
- constructor(artifactStateService, artifactPermissionService, cdr) {
190
- this.artifactStateService = artifactStateService;
191
- this.artifactPermissionService = artifactPermissionService;
192
- this.cdr = cdr;
193
- }
194
- async ngOnInit() {
195
- await this.loadArtifact();
196
- await this.loadPermissions();
197
- }
198
- async ngOnChanges(changes) {
199
- if (changes['artifactId'] && !changes['artifactId'].isFirstChange()) {
200
- await this.loadArtifact();
201
- await this.loadPermissions();
202
- }
203
- }
204
- async loadArtifact() {
205
- if (!this.artifactId)
206
- return;
207
- this.loading = true;
208
- this.error = null;
209
- try {
210
- this.artifact = await this.artifactStateService.loadArtifact(this.artifactId, this.currentUser);
211
- if (!this.artifact) {
212
- this.error = 'Artifact not found';
213
- }
214
- }
215
- catch (err) {
216
- console.error('Error loading artifact:', err);
217
- this.error = 'Failed to load artifact';
218
- }
219
- finally {
220
- this.loading = false;
221
- this.cdr.detectChanges();
222
- }
223
- }
224
- async loadPermissions() {
225
- if (!this.artifactId)
226
- return;
227
- try {
228
- this.canShare = await this.artifactStateService.canShareArtifact(this.artifactId, this.currentUser);
229
- this.canEdit = await this.artifactStateService.canEditArtifact(this.artifactId, this.currentUser);
230
- console.log('Artifact viewer permissions:', {
231
- artifactId: this.artifactId,
232
- canShare: this.canShare,
233
- canEdit: this.canEdit
234
- });
235
- this.cdr.detectChanges();
236
- }
237
- catch (err) {
238
- console.error('Error loading permissions:', err);
239
- }
240
- }
241
- openShareModal() {
242
- this.isShareModalOpen = true;
243
- }
244
- closeShareModal() {
245
- this.isShareModalOpen = false;
246
- }
247
- onShareSaved() {
248
- this.closeShareModal();
249
- // Optionally reload permissions in case they changed
250
- this.loadPermissions();
251
- }
252
- onEdit() {
253
- // TODO: Implement edit functionality
254
- console.log('Edit artifact:', this.artifactId);
255
- }
256
- async onDelete() {
257
- if (!this.artifact)
258
- return;
259
- if (!confirm(`Are you sure you want to delete "${this.artifact.Name}"?`)) {
260
- return;
261
- }
262
- try {
263
- await this.artifactStateService.deleteArtifact(this.artifactId, this.currentUser);
264
- this.onClose();
265
- }
266
- catch (err) {
267
- console.error('Error deleting artifact:', err);
268
- alert('Failed to delete artifact. You may not have permission.');
269
- }
270
- }
271
- onSaveToCollection() {
272
- // TODO: Implement save to collection functionality
273
- console.log('Save to collection:', this.artifactId);
274
- }
275
- onClose() {
276
- this.closed.emit();
277
- }
278
- static ɵfac = function ArtifactViewerPanelComponent_Factory(t) { return new (t || ArtifactViewerPanelComponent)(i0.ɵɵdirectiveInject(i1.ArtifactStateService), i0.ɵɵdirectiveInject(i2.ArtifactPermissionService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
279
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactViewerPanelComponent, selectors: [["mj-artifact-viewer-panel"]], inputs: { artifactId: "artifactId", currentUser: "currentUser", environmentId: "environmentId", versionNumber: "versionNumber", showSaveToCollection: "showSaveToCollection", viewContext: "viewContext", contextCollectionId: "contextCollectionId" }, outputs: { closed: "closed", navigateToLink: "navigateToLink" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 18, vars: 10, consts: [[1, "artifact-viewer-panel"], [1, "artifact-header"], [1, "artifact-title-section"], [1, "artifact-title"], [1, "artifact-type-badge"], [1, "artifact-actions"], ["kendoButton", "", "title", "Share", 1, "btn-icon"], ["kendoButton", "", "title", "Edit", 1, "btn-icon"], ["kendoButton", "", "title", "Delete", 1, "btn-icon", "btn-danger"], ["kendoButton", "", "title", "Save to Collection", 1, "btn-icon"], ["kendoButton", "", "title", "Close", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "artifact-content"], [1, "loading-state"], [1, "error-state"], [3, "saved", "cancelled", "isOpen", "artifact", "currentUser"], ["kendoButton", "", "title", "Share", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-share-nodes"], ["kendoButton", "", "title", "Edit", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], ["kendoButton", "", "title", "Delete", 1, "btn-icon", "btn-danger", 3, "click"], [1, "fa-solid", "fa-trash"], ["kendoButton", "", "title", "Save to Collection", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-circle-exclamation"], [1, "artifact-metadata"], [1, "metadata-item"], [1, "artifact-body"], [1, "content-section"], [1, "info-grid"], [1, "info-item"], [1, "content-display"]], template: function ArtifactViewerPanelComponent_Template(rf, ctx) { if (rf & 1) {
280
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h2", 3);
281
- i0.ɵɵtext(4);
282
- i0.ɵɵelementEnd();
283
- i0.ɵɵtemplate(5, ArtifactViewerPanelComponent_Conditional_5_Template, 2, 1, "span", 4);
284
- i0.ɵɵelementEnd();
285
- i0.ɵɵelementStart(6, "div", 5);
286
- i0.ɵɵtemplate(7, ArtifactViewerPanelComponent_Conditional_7_Template, 2, 0, "button", 6)(8, ArtifactViewerPanelComponent_Conditional_8_Template, 2, 0, "button", 7)(9, ArtifactViewerPanelComponent_Conditional_9_Template, 2, 0, "button", 8)(10, ArtifactViewerPanelComponent_Conditional_10_Template, 2, 0, "button", 9);
287
- i0.ɵɵelementStart(11, "button", 10);
288
- i0.ɵɵlistener("click", function ArtifactViewerPanelComponent_Template_button_click_11_listener() { return ctx.onClose(); });
289
- i0.ɵɵelement(12, "i", 11);
290
- i0.ɵɵelementEnd()()();
291
- i0.ɵɵelementStart(13, "div", 12);
292
- i0.ɵɵtemplate(14, ArtifactViewerPanelComponent_Conditional_14_Template, 4, 0, "div", 13)(15, ArtifactViewerPanelComponent_Conditional_15_Template, 4, 1, "div", 14)(16, ArtifactViewerPanelComponent_Conditional_16_Template, 21, 7);
293
- i0.ɵɵelementEnd()();
294
- i0.ɵɵelementStart(17, "mj-artifact-share-modal", 15);
295
- i0.ɵɵlistener("saved", function ArtifactViewerPanelComponent_Template_mj_artifact_share_modal_saved_17_listener() { return ctx.onShareSaved(); })("cancelled", function ArtifactViewerPanelComponent_Template_mj_artifact_share_modal_cancelled_17_listener() { return ctx.closeShareModal(); });
296
- i0.ɵɵelementEnd();
297
- } if (rf & 2) {
298
- i0.ɵɵadvance(4);
299
- i0.ɵɵtextInterpolate((ctx.artifact == null ? null : ctx.artifact.Name) || "Loading...");
300
- i0.ɵɵadvance();
301
- i0.ɵɵconditional((ctx.artifact == null ? null : ctx.artifact.Type) ? 5 : -1);
302
- i0.ɵɵadvance(2);
303
- i0.ɵɵconditional(ctx.canShare ? 7 : -1);
304
- i0.ɵɵadvance();
305
- i0.ɵɵconditional(ctx.canEdit ? 8 : -1);
306
- i0.ɵɵadvance();
307
- i0.ɵɵconditional(ctx.canEdit ? 9 : -1);
308
- i0.ɵɵadvance();
309
- i0.ɵɵconditional(ctx.showSaveToCollection ? 10 : -1);
310
- i0.ɵɵadvance(4);
311
- i0.ɵɵconditional(ctx.loading ? 14 : ctx.error ? 15 : ctx.artifact ? 16 : -1);
312
- i0.ɵɵadvance(3);
313
- i0.ɵɵproperty("isOpen", ctx.isShareModalOpen)("artifact", ctx.artifact)("currentUser", ctx.currentUser);
314
- } }, dependencies: [CommonModule, i3.DatePipe, ButtonModule, i4.ButtonComponent, ArtifactShareModalComponent], styles: [".artifact-viewer-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n border-left: 1px solid #E5E7EB;\n}\n\n.artifact-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #E5E7EB;\n background: #FAFAFA;\n}\n\n.artifact-title-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.artifact-title[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: #1F2937;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.artifact-type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: #EEF2FF;\n color: #6366F1;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n}\n\n.artifact-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.artifact-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n.artifact-metadata[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 16px;\n margin-bottom: 24px;\n padding: 16px;\n background: #F9FAFB;\n border-radius: 8px;\n}\n\n.metadata-item[_ngcontent-%COMP%] {\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: #6B7280;\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n p {\n margin: 0;\n font-size: 14px;\n color: #1F2937;\n }\n}\n\n.artifact-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.content-section[_ngcontent-%COMP%] {\n h3 {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n margin: 0 0 12px 0;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n}\n\n.content-display[_ngcontent-%COMP%] {\n padding: 16px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.6;\n color: #374151;\n\n // Style content for readability\n p {\n margin: 0 0 12px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5, h6 {\n margin: 20px 0 12px 0;\n color: #1F2937;\n\n &:first-child {\n margin-top: 0;\n }\n }\n\n ul, ol {\n margin: 0 0 12px 0;\n padding-left: 24px;\n }\n\n code {\n padding: 2px 6px;\n background: #F3F4F6;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n }\n\n pre {\n padding: 12px;\n background: #F3F4F6;\n border-radius: 6px;\n overflow-x: auto;\n\n code {\n padding: 0;\n background: none;\n }\n }\n}\n\n.info-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 16px;\n padding: 16px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n}\n\n.info-item[_ngcontent-%COMP%] {\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: #6B7280;\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n span {\n font-size: 14px;\n color: #1F2937;\n }\n}\n\n//[_ngcontent-%COMP%] Loading[_ngcontent-%COMP%] and[_ngcontent-%COMP%] Error[_ngcontent-%COMP%] States\n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #9CA3AF;\n\n i {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n p {\n margin: 0;\n font-size: 14px;\n }\n}\n\n.error-state[_ngcontent-%COMP%] {\n color: #EF4444;\n\n i {\n color: #EF4444;\n }\n}\n\n//[_ngcontent-%COMP%] Button[_ngcontent-%COMP%] Styles\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 6px;\n border: 1px solid #E5E7EB;\n background: white;\n color: #6B7280;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n color: #374151;\n }\n\n &.btn-danger {\n &:hover {\n background: #FEF2F2;\n border-color: #EF4444;\n color: #EF4444;\n }\n }\n\n i {\n font-size: 14px;\n }\n}"] });
315
- }
316
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactViewerPanelComponent, [{
317
- type: Component,
318
- args: [{ selector: 'mj-artifact-viewer-panel', standalone: true, imports: [CommonModule, ButtonModule, ArtifactShareModalComponent], template: `
319
- <div class="artifact-viewer-panel">
320
- <!-- Header -->
321
- <div class="artifact-header">
322
- <div class="artifact-title-section">
323
- <h2 class="artifact-title">{{ artifact?.Name || 'Loading...' }}</h2>
324
- @if (artifact?.Type) {
325
- <span class="artifact-type-badge">{{ artifact?.Type }}</span>
326
- }
327
- </div>
328
-
329
- <div class="artifact-actions">
330
- @if (canShare) {
331
- <button kendoButton class="btn-icon" (click)="openShareModal()" title="Share">
332
- <i class="fa-solid fa-share-nodes"></i>
333
- </button>
334
- }
335
-
336
- @if (canEdit) {
337
- <button kendoButton class="btn-icon" (click)="onEdit()" title="Edit">
338
- <i class="fa-solid fa-pen-to-square"></i>
339
- </button>
340
- }
341
-
342
- @if (canEdit) {
343
- <button kendoButton class="btn-icon btn-danger" (click)="onDelete()" title="Delete">
344
- <i class="fa-solid fa-trash"></i>
345
- </button>
346
- }
347
-
348
- @if (showSaveToCollection) {
349
- <button kendoButton class="btn-icon" (click)="onSaveToCollection()" title="Save to Collection">
350
- <i class="fa-solid fa-folder-plus"></i>
351
- </button>
352
- }
353
-
354
- <button kendoButton class="btn-icon" (click)="onClose()" title="Close">
355
- <i class="fa-solid fa-xmark"></i>
356
- </button>
357
- </div>
358
- </div>
359
-
360
- <!-- Content Area -->
361
- <div class="artifact-content">
362
- @if (loading) {
363
- <div class="loading-state">
364
- <i class="fa-solid fa-spinner fa-spin"></i>
365
- <p>Loading artifact...</p>
366
- </div>
367
- } @else if (error) {
368
- <div class="error-state">
369
- <i class="fa-solid fa-circle-exclamation"></i>
370
- <p>{{ error }}</p>
371
- </div>
372
- } @else if (artifact) {
373
- <!-- Artifact Metadata -->
374
- <div class="artifact-metadata">
375
- @if (artifact.Description) {
376
- <div class="metadata-item">
377
- <label>Description:</label>
378
- <p>{{ artifact.Description }}</p>
379
- </div>
380
- }
381
- @if (artifact.User) {
382
- <div class="metadata-item">
383
- <label>Created by:</label>
384
- <p>{{ artifact.User }}</p>
385
- </div>
386
- }
387
- @if (artifact.__mj_CreatedAt) {
388
- <div class="metadata-item">
389
- <label>Created:</label>
390
- <p>{{ artifact.__mj_CreatedAt | date:'medium' }}</p>
391
- </div>
392
- }
393
- @if (versionNumber) {
394
- <div class="metadata-item">
395
- <label>Version:</label>
396
- <p>{{ versionNumber }}</p>
397
- </div>
398
- }
399
- </div>
400
-
401
- <!-- Artifact Details -->
402
- <div class="artifact-body">
403
- @if (artifact.Comments) {
404
- <div class="content-section">
405
- <h3>Comments</h3>
406
- <div class="content-display">{{ artifact.Comments }}</div>
407
- </div>
408
- }
409
-
410
- <div class="content-section">
411
- <h3>Artifact Information</h3>
412
- <div class="info-grid">
413
- <div class="info-item">
414
- <label>Environment:</label>
415
- <span>{{ artifact.Environment }}</span>
416
- </div>
417
- <div class="info-item">
418
- <label>Visibility:</label>
419
- <span>{{ artifact.Visibility }}</span>
420
- </div>
421
- </div>
422
- </div>
423
- </div>
424
- }
425
- </div>
426
- </div>
427
-
428
- <!-- Share Modal -->
429
- <mj-artifact-share-modal
430
- [isOpen]="isShareModalOpen"
431
- [artifact]="artifact"
432
- [currentUser]="currentUser"
433
- (saved)="onShareSaved()"
434
- (cancelled)="closeShareModal()"
435
- ></mj-artifact-share-modal>
436
- `, styles: [".artifact-viewer-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n border-left: 1px solid #E5E7EB;\n}\n\n.artifact-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #E5E7EB;\n background: #FAFAFA;\n}\n\n.artifact-title-section {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.artifact-title {\n font-size: 18px;\n font-weight: 600;\n color: #1F2937;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.artifact-type-badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: #EEF2FF;\n color: #6366F1;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n}\n\n.artifact-actions {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n.artifact-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n.artifact-metadata {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 16px;\n margin-bottom: 24px;\n padding: 16px;\n background: #F9FAFB;\n border-radius: 8px;\n}\n\n.metadata-item {\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: #6B7280;\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n p {\n margin: 0;\n font-size: 14px;\n color: #1F2937;\n }\n}\n\n.artifact-body {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.content-section {\n h3 {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n margin: 0 0 12px 0;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n}\n\n.content-display {\n padding: 16px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.6;\n color: #374151;\n\n // Style content for readability\n p {\n margin: 0 0 12px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5, h6 {\n margin: 20px 0 12px 0;\n color: #1F2937;\n\n &:first-child {\n margin-top: 0;\n }\n }\n\n ul, ol {\n margin: 0 0 12px 0;\n padding-left: 24px;\n }\n\n code {\n padding: 2px 6px;\n background: #F3F4F6;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n }\n\n pre {\n padding: 12px;\n background: #F3F4F6;\n border-radius: 6px;\n overflow-x: auto;\n\n code {\n padding: 0;\n background: none;\n }\n }\n}\n\n.info-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 16px;\n padding: 16px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n}\n\n.info-item {\n label {\n display: block;\n font-size: 12px;\n font-weight: 500;\n color: #6B7280;\n margin-bottom: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n span {\n font-size: 14px;\n color: #1F2937;\n }\n}\n\n// Loading and Error States\n.loading-state,\n.error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #9CA3AF;\n\n i {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n p {\n margin: 0;\n font-size: 14px;\n }\n}\n\n.error-state {\n color: #EF4444;\n\n i {\n color: #EF4444;\n }\n}\n\n// Button Styles\n.btn-icon {\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 6px;\n border: 1px solid #E5E7EB;\n background: white;\n color: #6B7280;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n color: #374151;\n }\n\n &.btn-danger {\n &:hover {\n background: #FEF2F2;\n border-color: #EF4444;\n color: #EF4444;\n }\n }\n\n i {\n font-size: 14px;\n }\n}\n"] }]
437
- }], () => [{ type: i1.ArtifactStateService }, { type: i2.ArtifactPermissionService }, { type: i0.ChangeDetectorRef }], { artifactId: [{
438
- type: Input
439
- }], currentUser: [{
440
- type: Input
441
- }], environmentId: [{
442
- type: Input
443
- }], versionNumber: [{
444
- type: Input
445
- }], showSaveToCollection: [{
446
- type: Input
447
- }], viewContext: [{
448
- type: Input
449
- }], contextCollectionId: [{
450
- type: Input
451
- }], closed: [{
452
- type: Output
453
- }], navigateToLink: [{
454
- type: Output
455
- }] }); })();
456
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactViewerPanelComponent, { className: "ArtifactViewerPanelComponent" }); })();
457
- //# sourceMappingURL=artifact-viewer-panel.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-viewer-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/artifact/artifact-viewer-panel.component.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { ConversationDetailEntity } from '@memberjunction/core-entities';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Confirmation modal for deleting conversation messages.
6
- * Shows a preview of messages to be deleted and affected artifacts.
7
- * Uses custom CSS modal pattern (not Kendo) to match conversation UI.
8
- */
9
- export declare class DeleteConfirmModalComponent {
10
- /** Whether the modal is visible */
11
- isVisible: boolean;
12
- /** Custom title for the dialog */
13
- title: string;
14
- /** List of messages that will be deleted */
15
- messagesToDelete: ConversationDetailEntity[];
16
- /** List of artifacts affected by the deletion */
17
- artifactsAffected: {
18
- artifactId: string;
19
- name: string;
20
- }[];
21
- /** Whether a delete operation is in progress */
22
- isDeleting: boolean;
23
- /** Emitted when user cancels the delete */
24
- cancelled: EventEmitter<void>;
25
- /** Emitted when user confirms the delete */
26
- confirmed: EventEmitter<{
27
- keepArtifacts: boolean;
28
- }>;
29
- /** Whether to keep artifacts when deleting messages */
30
- keepArtifacts: boolean;
31
- /** Computed dialog title */
32
- get dialogTitle(): string;
33
- /**
34
- * Get icon class for a message based on sender type
35
- */
36
- getMessageIcon(message: ConversationDetailEntity): string;
37
- /**
38
- * Truncate message text for preview
39
- */
40
- truncateMessage(text: string | null): string;
41
- /**
42
- * Handle cancel button click
43
- */
44
- onCancel(): void;
45
- /**
46
- * Handle confirm delete button click
47
- */
48
- onConfirm(): void;
49
- static ɵfac: i0.ɵɵFactoryDeclaration<DeleteConfirmModalComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<DeleteConfirmModalComponent, "mj-delete-confirm-modal", never, { "isVisible": { "alias": "isVisible"; "required": false; }; "title": { "alias": "title"; "required": false; }; "messagesToDelete": { "alias": "messagesToDelete"; "required": false; }; "artifactsAffected": { "alias": "artifactsAffected"; "required": false; }; "isDeleting": { "alias": "isDeleting"; "required": false; }; }, { "cancelled": "cancelled"; "confirmed": "confirmed"; }, never, never, false, never>;
51
- }
52
- //# sourceMappingURL=delete-confirm-modal.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-confirm-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/delete-confirm/delete-confirm-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAEzE;;;;GAIG;AACH,qBAoWa,2BAA2B;IACtC,mCAAmC;IAC1B,SAAS,UAAS;IAE3B,kCAAkC;IACzB,KAAK,SAAqB;IAEnC,4CAA4C;IACnC,gBAAgB,EAAE,wBAAwB,EAAE,CAAM;IAE3D,iDAAiD;IACxC,iBAAiB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IAExE,gDAAgD;IACvC,UAAU,UAAS;IAE5B,2CAA2C;IACjC,SAAS,qBAA4B;IAE/C,4CAA4C;IAClC,SAAS;uBAAqC,OAAO;OAAM;IAErE,uDAAuD;IACvD,aAAa,UAAS;IAEtB,4BAA4B;IAC5B,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IAMzD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAU5C;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,SAAS,IAAI,IAAI;yCA/DN,2BAA2B;2CAA3B,2BAA2B;CAkEvC"}