@memberjunction/ng-conversations 2.107.0 → 2.108.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 (108) hide show
  1. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +67 -0
  2. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -0
  3. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +725 -0
  4. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -0
  5. package/dist/lib/components/collection/artifact-create-modal.component.d.ts +39 -0
  6. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -0
  7. package/dist/lib/components/collection/artifact-create-modal.component.js +351 -0
  8. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -0
  9. package/dist/lib/components/collection/collection-form-modal.component.d.ts +3 -1
  10. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  11. package/dist/lib/components/collection/collection-form-modal.component.js +60 -10
  12. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  13. package/dist/lib/components/collection/collection-share-modal.component.d.ts +43 -0
  14. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -0
  15. package/dist/lib/components/collection/collection-share-modal.component.js +728 -0
  16. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -0
  17. package/dist/lib/components/collection/collection-tree.component.d.ts +8 -1
  18. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  19. package/dist/lib/components/collection/collection-tree.component.js +217 -115
  20. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  21. package/dist/lib/components/collection/collection-view.component.d.ts +2 -1
  22. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  23. package/dist/lib/components/collection/collection-view.component.js +52 -34
  24. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  25. package/dist/lib/components/collection/collections-full-view.component.d.ts +45 -9
  26. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  27. package/dist/lib/components/collection/collections-full-view.component.js +586 -220
  28. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  29. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +42 -15
  30. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  31. package/dist/lib/components/conversation/conversation-chat-area.component.js +336 -219
  32. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  33. package/dist/lib/components/message/message-input.component.d.ts +7 -1
  34. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  35. package/dist/lib/components/message/message-input.component.js +65 -10
  36. package/dist/lib/components/message/message-input.component.js.map +1 -1
  37. package/dist/lib/components/message/message-item.component.d.ts +39 -5
  38. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  39. package/dist/lib/components/message/message-item.component.js +259 -137
  40. package/dist/lib/components/message/message-item.component.js.map +1 -1
  41. package/dist/lib/components/message/message-list.component.d.ts +5 -1
  42. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  43. package/dist/lib/components/message/message-list.component.js +26 -12
  44. package/dist/lib/components/message/message-list.component.js.map +1 -1
  45. package/dist/lib/components/message/suggested-responses.component.d.ts +55 -0
  46. package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -0
  47. package/dist/lib/components/message/suggested-responses.component.js +207 -0
  48. package/dist/lib/components/message/suggested-responses.component.js.map +1 -0
  49. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  50. package/dist/lib/components/search/search-panel.component.js +245 -113
  51. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  52. package/dist/lib/components/shared/user-picker.component.d.ts +29 -0
  53. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -0
  54. package/dist/lib/components/shared/user-picker.component.js +229 -0
  55. package/dist/lib/components/shared/user-picker.component.js.map +1 -0
  56. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +7 -1
  57. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  58. package/dist/lib/components/tasks/tasks-dropdown.component.js +36 -6
  59. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  60. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +19 -2
  61. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  62. package/dist/lib/components/workspace/conversation-workspace.component.js +167 -58
  63. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  64. package/dist/lib/conversations.module.d.ts +52 -47
  65. package/dist/lib/conversations.module.d.ts.map +1 -1
  66. package/dist/lib/conversations.module.js +27 -4
  67. package/dist/lib/conversations.module.js.map +1 -1
  68. package/dist/lib/models/conversation-complete-query.model.d.ts +75 -0
  69. package/dist/lib/models/conversation-complete-query.model.d.ts.map +1 -0
  70. package/dist/lib/models/conversation-complete-query.model.js +19 -0
  71. package/dist/lib/models/conversation-complete-query.model.js.map +1 -0
  72. package/dist/lib/models/conversation-state.model.d.ts +27 -0
  73. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  74. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  75. package/dist/lib/services/agent-state.service.js +5 -0
  76. package/dist/lib/services/agent-state.service.js.map +1 -1
  77. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  78. package/dist/lib/services/artifact-state.service.js +14 -9
  79. package/dist/lib/services/artifact-state.service.js.map +1 -1
  80. package/dist/lib/services/collection-permission.service.d.ts +96 -0
  81. package/dist/lib/services/collection-permission.service.d.ts.map +1 -0
  82. package/dist/lib/services/collection-permission.service.js +303 -0
  83. package/dist/lib/services/collection-permission.service.js.map +1 -0
  84. package/dist/lib/services/collection-state.service.d.ts +34 -0
  85. package/dist/lib/services/collection-state.service.d.ts.map +1 -0
  86. package/dist/lib/services/collection-state.service.js +50 -0
  87. package/dist/lib/services/collection-state.service.js.map +1 -0
  88. package/dist/lib/services/conversation-agent.service.d.ts +9 -4
  89. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  90. package/dist/lib/services/conversation-agent.service.js +41 -12
  91. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  92. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  93. package/dist/lib/services/data-cache.service.js +5 -0
  94. package/dist/lib/services/data-cache.service.js.map +1 -1
  95. package/dist/lib/services/mention-autocomplete.service.js +1 -1
  96. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  97. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  98. package/dist/lib/services/mention-parser.service.js +0 -5
  99. package/dist/lib/services/mention-parser.service.js.map +1 -1
  100. package/dist/lib/services/search.service.d.ts +26 -3
  101. package/dist/lib/services/search.service.d.ts.map +1 -1
  102. package/dist/lib/services/search.service.js +172 -12
  103. package/dist/lib/services/search.service.js.map +1 -1
  104. package/dist/public-api.d.ts +3 -0
  105. package/dist/public-api.d.ts.map +1 -1
  106. package/dist/public-api.js +3 -0
  107. package/dist/public-api.js.map +1 -1
  108. package/package.json +12 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-collection-picker-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-collection-picker-modal.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { UserInfo } from '@memberjunction/core';
3
+ import { ArtifactEntity, ArtifactTypeEntity } from '@memberjunction/core-entities';
4
+ import { ToastService } from '../../services/toast.service';
5
+ import { CollectionPermissionService } from '../../services/collection-permission.service';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Modal for creating new artifacts and adding them to collections
9
+ */
10
+ export declare class ArtifactCreateModalComponent implements OnChanges {
11
+ private toastService;
12
+ private permissionService;
13
+ isOpen: boolean;
14
+ collectionId: string;
15
+ environmentId: string;
16
+ currentUser: UserInfo;
17
+ saved: EventEmitter<ArtifactEntity>;
18
+ cancelled: EventEmitter<void>;
19
+ formData: {
20
+ name: string;
21
+ description: string;
22
+ content: string;
23
+ selectedType: ArtifactTypeEntity | null;
24
+ };
25
+ artifactTypes: ArtifactTypeEntity[];
26
+ isLoadingTypes: boolean;
27
+ isSaving: boolean;
28
+ errorMessage: string;
29
+ constructor(toastService: ToastService, permissionService: CollectionPermissionService);
30
+ ngOnChanges(changes: SimpleChanges): void;
31
+ get canSave(): boolean;
32
+ private loadArtifactTypes;
33
+ onSave(): Promise<void>;
34
+ onCancel(): void;
35
+ private resetForm;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactCreateModalComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactCreateModalComponent, "mj-artifact-create-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "collectionId": { "alias": "collectionId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, false, never>;
38
+ }
39
+ //# sourceMappingURL=artifact-create-modal.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-create-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-create-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA2C,MAAM,+BAA+B,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;;AAE3F;;GAEG;AACH,qBAmJa,4BAA6B,YAAW,SAAS;IAsB1D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IAtBlB,MAAM,EAAE,OAAO,CAAS;IACxB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,+BAAsC;IAC3C,SAAS,qBAA4B;IAExC,QAAQ;;;;;MAKb;IAEK,aAAa,EAAE,kBAAkB,EAAE,CAAM;IACzC,cAAc,EAAE,OAAO,CAAS;IAChC,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;gBAGvB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,OAAO,EAAE,aAAa;IAOlC,IAAI,OAAO,IAAI,OAAO,CAIrB;YAEa,iBAAiB;IAiCzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuF7B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCApKN,4BAA4B;2CAA5B,4BAA4B;CA6KxC"}
@@ -0,0 +1,351 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { Metadata, RunView } from '@memberjunction/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/toast.service";
5
+ import * as i2 from "../../services/collection-permission.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@progress/kendo-angular-dialog";
9
+ import * as i6 from "@progress/kendo-angular-buttons";
10
+ import * as i7 from "@progress/kendo-angular-dropdowns";
11
+ function ArtifactCreateModalComponent_kendo_dialog_0_div_30_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "div", 16);
13
+ i0.ɵɵelement(1, "i", 17);
14
+ i0.ɵɵtext(2);
15
+ i0.ɵɵelementEnd();
16
+ } if (rf & 2) {
17
+ const ctx_r1 = i0.ɵɵnextContext(2);
18
+ i0.ɵɵadvance(2);
19
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.errorMessage, " ");
20
+ } }
21
+ function ArtifactCreateModalComponent_kendo_dialog_0_Template(rf, ctx) { if (rf & 1) {
22
+ const _r1 = i0.ɵɵgetCurrentView();
23
+ i0.ɵɵelementStart(0, "kendo-dialog", 2);
24
+ i0.ɵɵlistener("close", function ArtifactCreateModalComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
25
+ i0.ɵɵelementStart(1, "div", 3)(2, "div", 4)(3, "label", 5);
26
+ i0.ɵɵtext(4, " Name ");
27
+ i0.ɵɵelementStart(5, "span", 6);
28
+ i0.ɵɵtext(6, "*");
29
+ i0.ɵɵelementEnd()();
30
+ i0.ɵɵelementStart(7, "input", 7, 0);
31
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.name, $event) || (ctx_r1.formData.name = $event); return i0.ɵɵresetView($event); });
32
+ i0.ɵɵelementEnd()();
33
+ i0.ɵɵelementStart(9, "div", 4)(10, "label", 5);
34
+ i0.ɵɵtext(11, " Type ");
35
+ i0.ɵɵelementStart(12, "span", 6);
36
+ i0.ɵɵtext(13, "*");
37
+ i0.ɵɵelementEnd()();
38
+ i0.ɵɵelementStart(14, "kendo-dropdownlist", 8);
39
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_kendo_dropdownlist_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.selectedType, $event) || (ctx_r1.formData.selectedType = $event); return i0.ɵɵresetView($event); });
40
+ i0.ɵɵelementEnd()();
41
+ i0.ɵɵelementStart(15, "div", 4)(16, "label", 5);
42
+ i0.ɵɵtext(17, "Description");
43
+ i0.ɵɵelementEnd();
44
+ i0.ɵɵelementStart(18, "textarea", 9);
45
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_textarea_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.description, $event) || (ctx_r1.formData.description = $event); return i0.ɵɵresetView($event); });
46
+ i0.ɵɵtext(19, " ");
47
+ i0.ɵɵelementEnd()();
48
+ i0.ɵɵelementStart(20, "div", 4)(21, "label", 5);
49
+ i0.ɵɵtext(22, " Content ");
50
+ i0.ɵɵelementStart(23, "span", 6);
51
+ i0.ɵɵtext(24, "*");
52
+ i0.ɵɵelementEnd()();
53
+ i0.ɵɵelementStart(25, "textarea", 10);
54
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_textarea_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.content, $event) || (ctx_r1.formData.content = $event); return i0.ɵɵresetView($event); });
55
+ i0.ɵɵtext(26, " ");
56
+ i0.ɵɵelementEnd();
57
+ i0.ɵɵelementStart(27, "div", 11);
58
+ i0.ɵɵelement(28, "i", 12);
59
+ i0.ɵɵtext(29, " Paste or type the artifact content. The content will be saved as version 1. ");
60
+ i0.ɵɵelementEnd()();
61
+ i0.ɵɵtemplate(30, ArtifactCreateModalComponent_kendo_dialog_0_div_30_Template, 3, 1, "div", 13);
62
+ i0.ɵɵelementEnd();
63
+ i0.ɵɵelementStart(31, "kendo-dialog-actions")(32, "button", 14);
64
+ i0.ɵɵlistener("click", function ArtifactCreateModalComponent_kendo_dialog_0_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
65
+ i0.ɵɵtext(33, " Cancel ");
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵelementStart(34, "button", 15);
68
+ i0.ɵɵlistener("click", function ArtifactCreateModalComponent_kendo_dialog_0_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSave()); });
69
+ i0.ɵɵtext(35);
70
+ i0.ɵɵelementEnd()()();
71
+ } if (rf & 2) {
72
+ const ctx_r1 = i0.ɵɵnextContext();
73
+ i0.ɵɵproperty("width", 600)("minWidth", 400);
74
+ i0.ɵɵadvance(7);
75
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.name);
76
+ i0.ɵɵadvance(7);
77
+ i0.ɵɵproperty("data", ctx_r1.artifactTypes);
78
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.selectedType);
79
+ i0.ɵɵproperty("valuePrimitive", false)("loading", ctx_r1.isLoadingTypes);
80
+ i0.ɵɵadvance(4);
81
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.description);
82
+ i0.ɵɵadvance(7);
83
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.content);
84
+ i0.ɵɵadvance(5);
85
+ i0.ɵɵproperty("ngIf", ctx_r1.errorMessage);
86
+ i0.ɵɵadvance(2);
87
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
88
+ i0.ɵɵadvance(2);
89
+ i0.ɵɵproperty("primary", true)("disabled", !ctx_r1.canSave || ctx_r1.isSaving);
90
+ i0.ɵɵadvance();
91
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.isSaving ? "Creating..." : "Create Artifact", " ");
92
+ } }
93
+ /**
94
+ * Modal for creating new artifacts and adding them to collections
95
+ */
96
+ export class ArtifactCreateModalComponent {
97
+ toastService;
98
+ permissionService;
99
+ isOpen = false;
100
+ collectionId;
101
+ environmentId;
102
+ currentUser;
103
+ saved = new EventEmitter();
104
+ cancelled = new EventEmitter();
105
+ formData = {
106
+ name: '',
107
+ description: '',
108
+ content: '',
109
+ selectedType: null
110
+ };
111
+ artifactTypes = [];
112
+ isLoadingTypes = false;
113
+ isSaving = false;
114
+ errorMessage = '';
115
+ constructor(toastService, permissionService) {
116
+ this.toastService = toastService;
117
+ this.permissionService = permissionService;
118
+ }
119
+ ngOnChanges(changes) {
120
+ if (changes['isOpen'] && this.isOpen) {
121
+ this.resetForm();
122
+ this.loadArtifactTypes();
123
+ }
124
+ }
125
+ get canSave() {
126
+ return this.formData.name.trim().length > 0 &&
127
+ this.formData.content.trim().length > 0 &&
128
+ this.formData.selectedType !== null;
129
+ }
130
+ async loadArtifactTypes() {
131
+ this.isLoadingTypes = true;
132
+ try {
133
+ const rv = new RunView();
134
+ const result = await rv.RunView({
135
+ EntityName: 'MJ: Artifact Types',
136
+ ExtraFilter: 'IsEnabled=1',
137
+ OrderBy: 'Name ASC',
138
+ MaxRows: 1000,
139
+ ResultType: 'entity_object'
140
+ }, this.currentUser);
141
+ if (result.Success && result.Results) {
142
+ this.artifactTypes = result.Results;
143
+ // Default to "Text" or first type
144
+ const textType = this.artifactTypes.find(t => t.Name === 'Text' || t.Name === 'Markdown');
145
+ if (textType) {
146
+ this.formData.selectedType = textType;
147
+ }
148
+ else if (this.artifactTypes.length > 0) {
149
+ this.formData.selectedType = this.artifactTypes[0];
150
+ }
151
+ }
152
+ }
153
+ catch (error) {
154
+ console.error('Error loading artifact types:', error);
155
+ this.toastService.error('Failed to load artifact types');
156
+ }
157
+ finally {
158
+ this.isLoadingTypes = false;
159
+ }
160
+ }
161
+ async onSave() {
162
+ if (!this.canSave)
163
+ return;
164
+ this.isSaving = true;
165
+ this.errorMessage = '';
166
+ try {
167
+ // Validate permission to add artifacts to collection
168
+ const md = new Metadata();
169
+ const collection = await md.GetEntityObject('MJ: Collections', this.currentUser);
170
+ await collection.Load(this.collectionId);
171
+ // Check if user has Edit permission on collection
172
+ if (collection.OwnerID && collection.OwnerID !== this.currentUser.ID) {
173
+ const permission = await this.permissionService.checkPermission(this.collectionId, this.currentUser.ID, this.currentUser);
174
+ if (!permission?.canEdit) {
175
+ this.errorMessage = 'You do not have Edit permission to add artifacts to this collection.';
176
+ this.isSaving = false;
177
+ return;
178
+ }
179
+ }
180
+ // Step 1: Create the artifact
181
+ const artifact = await md.GetEntityObject('MJ: Artifacts', this.currentUser);
182
+ artifact.Name = this.formData.name.trim();
183
+ artifact.Description = this.formData.description.trim() || null;
184
+ artifact.TypeID = this.formData.selectedType.ID;
185
+ artifact.EnvironmentID = this.environmentId;
186
+ artifact.UserID = this.currentUser.ID;
187
+ const artifactSaved = await artifact.Save();
188
+ if (!artifactSaved) {
189
+ this.errorMessage = artifact.LatestResult?.Message || 'Failed to create artifact';
190
+ this.toastService.error(this.errorMessage);
191
+ return;
192
+ }
193
+ // Step 2: Create the first version
194
+ const version = await md.GetEntityObject('MJ: Artifact Versions', this.currentUser);
195
+ version.ArtifactID = artifact.ID;
196
+ version.VersionNumber = 1;
197
+ version.Content = this.formData.content.trim();
198
+ version.UserID = this.currentUser.ID;
199
+ version.Name = this.formData.name.trim(); // Version inherits name
200
+ version.Description = this.formData.description.trim() || null;
201
+ const versionSaved = await version.Save();
202
+ if (!versionSaved) {
203
+ // Rollback: delete the artifact if version creation fails
204
+ await artifact.Delete();
205
+ this.errorMessage = version.LatestResult?.Message || 'Failed to create artifact version';
206
+ this.toastService.error(this.errorMessage);
207
+ return;
208
+ }
209
+ // Step 3: Add to collection
210
+ const collectionArtifact = await md.GetEntityObject('MJ: Collection Artifacts', this.currentUser);
211
+ collectionArtifact.CollectionID = this.collectionId;
212
+ collectionArtifact.ArtifactID = artifact.ID;
213
+ const collectionLinkSaved = await collectionArtifact.Save();
214
+ if (!collectionLinkSaved) {
215
+ // Rollback: delete version and artifact if collection link fails
216
+ await version.Delete();
217
+ await artifact.Delete();
218
+ this.errorMessage = 'Failed to add artifact to collection';
219
+ this.toastService.error(this.errorMessage);
220
+ return;
221
+ }
222
+ this.toastService.success('Artifact created successfully');
223
+ this.saved.emit(artifact);
224
+ this.resetForm();
225
+ }
226
+ catch (error) {
227
+ console.error('Error creating artifact:', error);
228
+ this.errorMessage = 'An unexpected error occurred';
229
+ this.toastService.error(this.errorMessage);
230
+ }
231
+ finally {
232
+ this.isSaving = false;
233
+ }
234
+ }
235
+ onCancel() {
236
+ this.resetForm();
237
+ this.cancelled.emit();
238
+ }
239
+ resetForm() {
240
+ this.formData = {
241
+ name: '',
242
+ description: '',
243
+ content: '',
244
+ selectedType: this.artifactTypes.length > 0 ? this.artifactTypes[0] : null
245
+ };
246
+ this.errorMessage = '';
247
+ }
248
+ static ɵfac = function ArtifactCreateModalComponent_Factory(t) { return new (t || ArtifactCreateModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i2.CollectionPermissionService)); };
249
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactCreateModalComponent, selectors: [["mj-artifact-create-modal"]], inputs: { isOpen: "isOpen", collectionId: "collectionId", environmentId: "environmentId", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["nameInput", ""], ["title", "Create Artifact", 3, "width", "minWidth", "close", 4, "ngIf"], ["title", "Create Artifact", 3, "close", "width", "minWidth"], [1, "artifact-form"], [1, "form-group"], [1, "form-label"], [1, "required"], ["type", "text", "placeholder", "Artifact name", 1, "k-textbox", "form-control", 3, "ngModelChange", "ngModel"], ["textField", "Name", "valueField", "ID", 1, "form-control", 3, "ngModelChange", "data", "ngModel", "valuePrimitive", "loading"], ["placeholder", "Optional description", "rows", "2", 1, "k-textarea", "form-control", 3, "ngModelChange", "ngModel"], ["placeholder", "Paste your content here...", "rows", "12", 1, "k-textarea", "form-control", "content-area", 3, "ngModelChange", "ngModel"], [1, "content-hint"], [1, "fas", "fa-info-circle"], ["class", "form-error", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "form-error"], [1, "fas", "fa-exclamation-circle"]], template: function ArtifactCreateModalComponent_Template(rf, ctx) { if (rf & 1) {
250
+ i0.ɵɵtemplate(0, ArtifactCreateModalComponent_kendo_dialog_0_Template, 36, 14, "kendo-dialog", 1);
251
+ } if (rf & 2) {
252
+ i0.ɵɵproperty("ngIf", ctx.isOpen);
253
+ } }, dependencies: [i3.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.ButtonComponent, i7.DropDownListComponent], styles: [".artifact-form[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .form-control[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .content-area[_ngcontent-%COMP%] {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.5;\n }\n\n .content-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: start;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 12px;\n background: #EFF6FF;\n border: 1px solid #BFDBFE;\n border-radius: 6px;\n font-size: 13px;\n color: #1e40af;\n }\n\n .content-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .form-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }"] });
254
+ }
255
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactCreateModalComponent, [{
256
+ type: Component,
257
+ args: [{ selector: 'mj-artifact-create-modal', template: `
258
+ <kendo-dialog
259
+ *ngIf="isOpen"
260
+ title="Create Artifact"
261
+ (close)="onCancel()"
262
+ [width]="600"
263
+ [minWidth]="400">
264
+ <div class="artifact-form">
265
+ <div class="form-group">
266
+ <label class="form-label">
267
+ Name <span class="required">*</span>
268
+ </label>
269
+ <input
270
+ type="text"
271
+ class="k-textbox form-control"
272
+ [(ngModel)]="formData.name"
273
+ placeholder="Artifact name"
274
+ #nameInput>
275
+ </div>
276
+
277
+ <div class="form-group">
278
+ <label class="form-label">
279
+ Type <span class="required">*</span>
280
+ </label>
281
+ <kendo-dropdownlist
282
+ [data]="artifactTypes"
283
+ [(ngModel)]="formData.selectedType"
284
+ textField="Name"
285
+ valueField="ID"
286
+ [valuePrimitive]="false"
287
+ class="form-control"
288
+ [loading]="isLoadingTypes">
289
+ </kendo-dropdownlist>
290
+ </div>
291
+
292
+ <div class="form-group">
293
+ <label class="form-label">Description</label>
294
+ <textarea
295
+ class="k-textarea form-control"
296
+ [(ngModel)]="formData.description"
297
+ placeholder="Optional description"
298
+ rows="2">
299
+ </textarea>
300
+ </div>
301
+
302
+ <div class="form-group">
303
+ <label class="form-label">
304
+ Content <span class="required">*</span>
305
+ </label>
306
+ <textarea
307
+ class="k-textarea form-control content-area"
308
+ [(ngModel)]="formData.content"
309
+ placeholder="Paste your content here..."
310
+ rows="12">
311
+ </textarea>
312
+ <div class="content-hint">
313
+ <i class="fas fa-info-circle"></i>
314
+ Paste or type the artifact content. The content will be saved as version 1.
315
+ </div>
316
+ </div>
317
+
318
+ <div class="form-error" *ngIf="errorMessage">
319
+ <i class="fas fa-exclamation-circle"></i>
320
+ {{ errorMessage }}
321
+ </div>
322
+ </div>
323
+
324
+ <kendo-dialog-actions>
325
+ <button kendoButton (click)="onCancel()" [disabled]="isSaving">
326
+ Cancel
327
+ </button>
328
+ <button kendoButton
329
+ [primary]="true"
330
+ (click)="onSave()"
331
+ [disabled]="!canSave || isSaving">
332
+ {{ isSaving ? 'Creating...' : 'Create Artifact' }}
333
+ </button>
334
+ </kendo-dialog-actions>
335
+ </kendo-dialog>
336
+ `, styles: ["\n .artifact-form {\n padding: 20px 0;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .form-label {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required {\n color: #DC2626;\n }\n\n .form-control {\n width: 100%;\n }\n\n .content-area {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.5;\n }\n\n .content-hint {\n display: flex;\n align-items: start;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 12px;\n background: #EFF6FF;\n border: 1px solid #BFDBFE;\n border-radius: 6px;\n font-size: 13px;\n color: #1e40af;\n }\n\n .content-hint i {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .form-error {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error i {\n flex-shrink: 0;\n }\n "] }]
337
+ }], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }], { isOpen: [{
338
+ type: Input
339
+ }], collectionId: [{
340
+ type: Input
341
+ }], environmentId: [{
342
+ type: Input
343
+ }], currentUser: [{
344
+ type: Input
345
+ }], saved: [{
346
+ type: Output
347
+ }], cancelled: [{
348
+ type: Output
349
+ }] }); })();
350
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactCreateModalComponent, { className: "ArtifactCreateModalComponent", filePath: "src/lib/components/collection/artifact-create-modal.component.ts", lineNumber: 157 }); })();
351
+ //# sourceMappingURL=artifact-create-modal.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-create-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-create-modal.component.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,14 @@ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { UserInfo } from '@memberjunction/core';
3
3
  import { CollectionEntity } from '@memberjunction/core-entities';
4
4
  import { ToastService } from '../../services/toast.service';
5
+ import { CollectionPermissionService } from '../../services/collection-permission.service';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
8
  * Modal for creating and editing collections
8
9
  */
9
10
  export declare class CollectionFormModalComponent implements OnChanges {
10
11
  private toastService;
12
+ private permissionService;
11
13
  isOpen: boolean;
12
14
  collection?: CollectionEntity;
13
15
  parentCollection?: CollectionEntity;
@@ -21,7 +23,7 @@ export declare class CollectionFormModalComponent implements OnChanges {
21
23
  };
22
24
  isSaving: boolean;
23
25
  errorMessage: string;
24
- constructor(toastService: ToastService);
26
+ constructor(toastService: ToastService, permissionService: CollectionPermissionService);
25
27
  ngOnChanges(changes: SimpleChanges): void;
26
28
  get canSave(): boolean;
27
29
  onSave(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"collection-form-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-form-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;AAE5D;;GAEG;AACH,qBAoHa,4BAA6B,YAAW,SAAS;IAkBhD,OAAO,CAAC,YAAY;IAjBvB,MAAM,EAAE,OAAO,CAAS;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,iCAAwC;IAC7C,SAAS,qBAA4B;IAExC,QAAQ;;;MAGb;IAEK,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;gBAEb,YAAY,EAAE,YAAY;IAE9C,WAAW,CAAC,OAAO,EAAE,aAAa;IAWlC,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC7B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCA/EN,4BAA4B;2CAA5B,4BAA4B;CAsFxC"}
1
+ {"version":3,"file":"collection-form-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-form-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;;AAE3F;;GAEG;AACH,qBAoHa,4BAA6B,YAAW,SAAS;IAmB1D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IAnBlB,MAAM,EAAE,OAAO,CAAS;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,iCAAwC;IAC7C,SAAS,qBAA4B;IAExC,QAAQ;;;MAGb;IAEK,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;gBAGvB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,OAAO,EAAE,aAAa;IAWlC,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsG7B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCAjJN,4BAA4B;2CAA5B,4BAA4B;CAwJxC"}
@@ -2,10 +2,11 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { Metadata } from '@memberjunction/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../services/toast.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "@progress/kendo-angular-dialog";
8
- import * as i5 from "@progress/kendo-angular-buttons";
5
+ import * as i2 from "../../services/collection-permission.service";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/forms";
8
+ import * as i5 from "@progress/kendo-angular-dialog";
9
+ import * as i6 from "@progress/kendo-angular-buttons";
9
10
  function CollectionFormModalComponent_kendo_dialog_0_div_14_Template(rf, ctx) { if (rf & 1) {
10
11
  i0.ɵɵelementStart(0, "div", 4)(1, "label", 5);
11
12
  i0.ɵɵtext(2, "Parent Collection");
@@ -83,6 +84,7 @@ function CollectionFormModalComponent_kendo_dialog_0_Template(rf, ctx) { if (rf
83
84
  */
84
85
  export class CollectionFormModalComponent {
85
86
  toastService;
87
+ permissionService;
86
88
  isOpen = false;
87
89
  collection;
88
90
  parentCollection;
@@ -96,8 +98,9 @@ export class CollectionFormModalComponent {
96
98
  };
97
99
  isSaving = false;
98
100
  errorMessage = '';
99
- constructor(toastService) {
101
+ constructor(toastService, permissionService) {
100
102
  this.toastService = toastService;
103
+ this.permissionService = permissionService;
101
104
  }
102
105
  ngOnChanges(changes) {
103
106
  if (changes['collection'] || changes['isOpen']) {
@@ -119,17 +122,64 @@ export class CollectionFormModalComponent {
119
122
  this.isSaving = true;
120
123
  this.errorMessage = '';
121
124
  try {
125
+ // Validate permissions before saving
126
+ if (this.collection) {
127
+ // Editing existing collection - need Edit permission
128
+ if (this.collection.OwnerID && this.collection.OwnerID !== this.currentUser.ID) {
129
+ const permission = await this.permissionService.checkPermission(this.collection.ID, this.currentUser.ID, this.currentUser);
130
+ if (!permission?.canEdit) {
131
+ this.errorMessage = 'You do not have Edit permission for this collection.';
132
+ this.isSaving = false;
133
+ return;
134
+ }
135
+ }
136
+ }
137
+ else if (this.parentCollection) {
138
+ // Creating child collection - need Edit permission on parent
139
+ if (this.parentCollection.OwnerID && this.parentCollection.OwnerID !== this.currentUser.ID) {
140
+ const permission = await this.permissionService.checkPermission(this.parentCollection.ID, this.currentUser.ID, this.currentUser);
141
+ if (!permission?.canEdit) {
142
+ this.errorMessage = 'You do not have Edit permission for the parent collection.';
143
+ this.isSaving = false;
144
+ return;
145
+ }
146
+ }
147
+ }
122
148
  const md = new Metadata();
123
149
  const collection = this.collection ||
124
150
  await md.GetEntityObject('MJ: Collections', this.currentUser);
125
151
  collection.Name = this.formData.name.trim();
126
152
  collection.Description = this.formData.description.trim() || null;
127
153
  collection.EnvironmentID = this.environmentId;
128
- if (this.parentCollection) {
154
+ // Set owner and parent relationship if creating new collection
155
+ if (!this.collection) {
156
+ if (this.parentCollection) {
157
+ // Child collection inherits parent's owner to maintain permission hierarchy
158
+ collection.ParentID = this.parentCollection.ID;
159
+ collection.OwnerID = this.parentCollection.OwnerID || this.currentUser.ID;
160
+ }
161
+ else {
162
+ // Root collection - current user becomes owner
163
+ collection.OwnerID = this.currentUser.ID;
164
+ }
165
+ }
166
+ else if (this.parentCollection) {
167
+ // Updating existing collection's parent
129
168
  collection.ParentID = this.parentCollection.ID;
130
169
  }
131
170
  const saved = await collection.Save();
132
171
  if (saved) {
172
+ // If creating new collection, set up permissions
173
+ if (!this.collection) {
174
+ if (this.parentCollection) {
175
+ // Child collection - copy all permissions from parent (including owner)
176
+ await this.permissionService.copyParentPermissions(this.parentCollection.ID, collection.ID, this.currentUser);
177
+ }
178
+ else {
179
+ // Root collection - create owner permission for current user
180
+ await this.permissionService.createOwnerPermission(collection.ID, this.currentUser.ID, this.currentUser);
181
+ }
182
+ }
133
183
  this.toastService.success(this.collection ? 'Collection updated successfully' : 'Collection created successfully');
134
184
  this.saved.emit(collection);
135
185
  this.resetForm();
@@ -159,12 +209,12 @@ export class CollectionFormModalComponent {
159
209
  };
160
210
  this.errorMessage = '';
161
211
  }
162
- static ɵfac = function CollectionFormModalComponent_Factory(t) { return new (t || CollectionFormModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService)); };
212
+ static ɵfac = function CollectionFormModalComponent_Factory(t) { return new (t || CollectionFormModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i2.CollectionPermissionService)); };
163
213
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionFormModalComponent, selectors: [["mj-collection-form-modal"]], inputs: { isOpen: "isOpen", collection: "collection", parentCollection: "parentCollection", environmentId: "environmentId", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["nameInput", ""], [3, "title", "width", "minWidth", "close", 4, "ngIf"], [3, "close", "title", "width", "minWidth"], [1, "collection-form"], [1, "form-group"], [1, "form-label"], [1, "required"], ["type", "text", "placeholder", "Collection name", 1, "k-textbox", "form-control", 3, "ngModelChange", "keydown.enter", "ngModel"], ["placeholder", "Optional description", "rows", "3", 1, "k-textarea", "form-control", 3, "ngModelChange", "ngModel"], ["class", "form-group", 4, "ngIf"], ["class", "form-error", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "parent-info"], [1, "fas", "fa-folder"], [1, "form-error"], [1, "fas", "fa-exclamation-circle"]], template: function CollectionFormModalComponent_Template(rf, ctx) { if (rf & 1) {
164
214
  i0.ɵɵtemplate(0, CollectionFormModalComponent_kendo_dialog_0_Template, 21, 11, "kendo-dialog", 1);
165
215
  } if (rf & 2) {
166
216
  i0.ɵɵproperty("ngIf", ctx.isOpen);
167
- } }, dependencies: [i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.DialogComponent, i4.DialogActionsComponent, i5.ButtonComponent], styles: [".collection-form[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .form-control[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .parent-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n color: #6B7280;\n }\n\n .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #1e40af;\n }\n\n .form-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }"] });
217
+ } }, dependencies: [i3.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.ButtonComponent], styles: [".collection-form[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .form-control[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .parent-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n color: #6B7280;\n }\n\n .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #1e40af;\n }\n\n .form-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }"] });
168
218
  }
169
219
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionFormModalComponent, [{
170
220
  type: Component,
@@ -226,7 +276,7 @@ export class CollectionFormModalComponent {
226
276
  </kendo-dialog-actions>
227
277
  </kendo-dialog>
228
278
  `, styles: ["\n .collection-form {\n padding: 20px 0;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .form-label {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required {\n color: #DC2626;\n }\n\n .form-control {\n width: 100%;\n }\n\n .parent-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n color: #6B7280;\n }\n\n .parent-info i {\n color: #1e40af;\n }\n\n .form-error {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error i {\n flex-shrink: 0;\n }\n "] }]
229
- }], () => [{ type: i1.ToastService }], { isOpen: [{
279
+ }], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }], { isOpen: [{
230
280
  type: Input
231
281
  }], collection: [{
232
282
  type: Input
@@ -241,5 +291,5 @@ export class CollectionFormModalComponent {
241
291
  }], cancelled: [{
242
292
  type: Output
243
293
  }] }); })();
244
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionFormModalComponent, { className: "CollectionFormModalComponent", filePath: "src/lib/components/collection/collection-form-modal.component.ts", lineNumber: 126 }); })();
294
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionFormModalComponent, { className: "CollectionFormModalComponent", filePath: "src/lib/components/collection/collection-form-modal.component.ts", lineNumber: 127 }); })();
245
295
  //# sourceMappingURL=collection-form-modal.component.js.map