@memberjunction/ng-conversations 3.3.0 → 4.0.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 (164) hide show
  1. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +46 -41
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  4. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  5. package/dist/lib/components/agent/active-agent-indicator.component.js +70 -68
  6. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  7. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.js +13 -12
  9. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  10. package/dist/lib/components/artifact/artifact-share-modal.component.js +17 -15
  11. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  12. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +48 -0
  13. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +1 -0
  14. package/dist/lib/components/artifact/artifact-viewer-panel.component.js +457 -0
  15. package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +1 -0
  16. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  17. package/dist/lib/components/attachment/image-viewer.component.js +20 -21
  18. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  19. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  20. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +230 -233
  21. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  22. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  23. package/dist/lib/components/collection/artifact-create-modal.component.js +100 -103
  24. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  25. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  26. package/dist/lib/components/collection/collection-artifact-card.component.js +41 -33
  27. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  28. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  29. package/dist/lib/components/collection/collection-form-modal.component.js +85 -84
  30. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  31. package/dist/lib/components/collection/collection-share-modal.component.js +20 -15
  32. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  33. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  34. package/dist/lib/components/collection/collection-tree.component.js +13 -11
  35. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  36. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  37. package/dist/lib/components/collection/collection-view.component.js +67 -60
  38. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  39. package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -3
  40. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  41. package/dist/lib/components/collection/collections-full-view.component.js +619 -549
  42. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  43. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +3 -3
  44. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  45. package/dist/lib/components/conversation/conversation-chat-area.component.js +145 -143
  46. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  47. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  48. package/dist/lib/components/conversation/conversation-empty-state.component.js +44 -44
  49. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  50. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  51. package/dist/lib/components/conversation/conversation-list.component.js +18 -18
  52. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  53. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts +52 -0
  54. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts.map +1 -0
  55. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js +276 -0
  56. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js.map +1 -0
  57. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  58. package/dist/lib/components/dialogs/input-dialog.component.js +65 -57
  59. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  60. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  61. package/dist/lib/components/export/export-modal.component.js +126 -134
  62. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  63. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  64. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +86 -79
  65. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  66. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  67. package/dist/lib/components/library/library-full-view.component.js +99 -87
  68. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  69. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  70. package/dist/lib/components/members/members-modal.component.js +124 -119
  71. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  72. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
  73. package/dist/lib/components/mention/mention-dropdown.component.js +50 -46
  74. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  75. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  76. package/dist/lib/components/mention/mention-editor.component.js +39 -38
  77. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  78. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  79. package/dist/lib/components/message/actionable-commands.component.js +20 -21
  80. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  81. package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -1
  82. package/dist/lib/components/message/agent-response-form.component.js +79 -77
  83. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  84. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  85. package/dist/lib/components/message/conversation-message-rating.component.js +40 -39
  86. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  87. package/dist/lib/components/message/form-question.component.d.ts.map +1 -1
  88. package/dist/lib/components/message/form-question.component.js +142 -125
  89. package/dist/lib/components/message/form-question.component.js.map +1 -1
  90. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  91. package/dist/lib/components/message/message-input-box.component.js +10 -11
  92. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  93. package/dist/lib/components/message/message-input.component.d.ts +2 -2
  94. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  95. package/dist/lib/components/message/message-input.component.js +10 -11
  96. package/dist/lib/components/message/message-input.component.js.map +1 -1
  97. package/dist/lib/components/message/message-item.component.d.ts +2 -2
  98. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  99. package/dist/lib/components/message/message-item.component.js +121 -107
  100. package/dist/lib/components/message/message-item.component.js.map +1 -1
  101. package/dist/lib/components/message/message-list.component.d.ts +2 -2
  102. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  103. package/dist/lib/components/message/message-list.component.js +25 -27
  104. package/dist/lib/components/message/message-list.component.js.map +1 -1
  105. package/dist/lib/components/message/suggested-responses.component.d.ts +1 -1
  106. package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -1
  107. package/dist/lib/components/message/suggested-responses.component.js +34 -34
  108. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  109. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  110. package/dist/lib/components/navigation/conversation-navigation.component.js +3 -3
  111. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  112. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  113. package/dist/lib/components/notification/activity-indicator.component.js +5 -5
  114. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  115. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  116. package/dist/lib/components/notification/notification-badge.component.js +9 -6
  117. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  118. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  119. package/dist/lib/components/project/project-form-modal.component.js +7 -7
  120. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  121. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  122. package/dist/lib/components/project/project-selector.component.js +8 -8
  123. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  124. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  125. package/dist/lib/components/search/search-panel.component.js +32 -27
  126. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  127. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  128. package/dist/lib/components/share/share-modal.component.js +129 -131
  129. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  130. package/dist/lib/components/shared/user-picker.component.js +6 -6
  131. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  132. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  133. package/dist/lib/components/sidebar/conversation-sidebar.component.js +41 -37
  134. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  135. package/dist/lib/components/task/tasks-full-view.component.js +4 -5
  136. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  137. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  138. package/dist/lib/components/tasks/task-widget.component.js +144 -118
  139. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  140. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  141. package/dist/lib/components/tasks/tasks-dropdown.component.js +176 -149
  142. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  143. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  144. package/dist/lib/components/thread/thread-panel.component.js +7 -5
  145. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  146. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  147. package/dist/lib/components/toast/toast.component.js +10 -11
  148. package/dist/lib/components/toast/toast.component.js.map +1 -1
  149. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -5
  150. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  151. package/dist/lib/components/workspace/conversation-workspace.component.js +54 -49
  152. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  153. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  154. package/dist/lib/directives/search-shortcut.directive.js +3 -2
  155. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  156. package/dist/lib/services/conversation-state.service.d.ts +160 -0
  157. package/dist/lib/services/conversation-state.service.d.ts.map +1 -0
  158. package/dist/lib/services/conversation-state.service.js +334 -0
  159. package/dist/lib/services/conversation-state.service.js.map +1 -0
  160. package/dist/lib/services/mention-autocomplete.service.d.ts +6 -0
  161. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  162. package/dist/lib/services/mention-autocomplete.service.js +25 -2
  163. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  164. package/package.json +38 -38
@@ -1,5 +1,4 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { FormsModule } from '@angular/forms';
4
3
  import { RunView, Metadata } from '@memberjunction/core';
5
4
  import { DialogModule } from '@progress/kendo-angular-dialog';
@@ -9,17 +8,16 @@ import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "../../services/toast.service";
11
10
  import * as i2 from "../../services/collection-permission.service";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/forms";
14
- import * as i5 from "@progress/kendo-angular-dialog";
15
- import * as i6 from "@progress/kendo-angular-buttons";
16
- import * as i7 from "@memberjunction/ng-shared-generic";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "@progress/kendo-angular-dialog";
13
+ import * as i5 from "@progress/kendo-angular-buttons";
14
+ import * as i6 from "@memberjunction/ng-shared-generic";
17
15
  const _forTrack0 = ($index, $item) => $item.collection.ID;
18
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
16
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
19
17
  const _r4 = i0.ɵɵgetCurrentView();
20
18
  i0.ɵɵelement(0, "i", 20);
21
19
  i0.ɵɵelementStart(1, "button", 18);
22
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_For_5_Template_button_click_1_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToCollection(item_r5.collection)); });
20
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_For_5_Template_button_click_1_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToCollection(item_r5.collection)); });
23
21
  i0.ɵɵtext(2);
24
22
  i0.ɵɵelementEnd();
25
23
  } if (rf & 2) {
@@ -27,22 +25,22 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_For
27
25
  i0.ɵɵadvance(2);
28
26
  i0.ɵɵtextInterpolate1(" ", item_r5.collection.Name, " ");
29
27
  } }
30
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
28
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
31
29
  const _r3 = i0.ɵɵgetCurrentView();
32
30
  i0.ɵɵelementStart(0, "div", 4)(1, "button", 18);
33
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToRoot()); });
31
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToRoot()); });
34
32
  i0.ɵɵelement(2, "i", 19);
35
33
  i0.ɵɵtext(3, " Root ");
36
34
  i0.ɵɵelementEnd();
37
- i0.ɵɵrepeaterCreate(4, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_For_5_Template, 3, 1, null, null, _forTrack0);
35
+ i0.ɵɵrepeaterCreate(4, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_For_5_Template, 3, 1, null, null, _forTrack0);
38
36
  i0.ɵɵelementEnd();
39
37
  } if (rf & 2) {
40
38
  const ctx_r1 = i0.ɵɵnextContext(2);
41
39
  i0.ɵɵadvance(4);
42
40
  i0.ɵɵrepeater(ctx_r1.navigationPath);
43
41
  } }
44
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelement(0, "i", 23);
42
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelement(0, "i", 22);
46
44
  i0.ɵɵelementStart(1, "p");
47
45
  i0.ɵɵtext(2);
48
46
  i0.ɵɵelementEnd();
@@ -51,55 +49,56 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional
51
49
  i0.ɵɵadvance(2);
52
50
  i0.ɵɵtextInterpolate1("No collections found matching \"", ctx_r1.searchQuery, "\"");
53
51
  } }
54
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
55
- i0.ɵɵelement(0, "i", 24);
52
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelement(0, "i", 23);
56
54
  i0.ɵɵelementStart(1, "p");
57
55
  i0.ɵɵtext(2, "No sub-collections available");
58
56
  i0.ɵɵelementEnd();
59
57
  } }
60
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelement(0, "i", 25);
58
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelement(0, "i", 24);
62
60
  i0.ɵɵelementStart(1, "p");
63
61
  i0.ɵɵtext(2, "No collections available");
64
62
  i0.ɵɵelementEnd();
65
- i0.ɵɵelementStart(3, "p", 26);
63
+ i0.ɵɵelementStart(3, "p", 25);
66
64
  i0.ɵɵtext(4, "Create a new collection to get started");
67
65
  i0.ɵɵelementEnd();
68
66
  } }
69
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
70
- i0.ɵɵelementStart(0, "div", 22);
71
- i0.ɵɵtemplate(1, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_1_Template, 3, 1)(2, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_2_Template, 3, 0)(3, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Conditional_3_Template, 5, 0);
67
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
68
+ i0.ɵɵelementStart(0, "div", 21);
69
+ i0.ɵɵconditionalCreate(1, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_1_Template, 3, 1)(2, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_2_Template, 3, 0)(3, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Conditional_3_Template, 5, 0);
72
70
  i0.ɵɵelementEnd();
73
71
  } if (rf & 2) {
74
72
  const ctx_r1 = i0.ɵɵnextContext(3);
75
73
  i0.ɵɵadvance();
76
74
  i0.ɵɵconditional(ctx_r1.searchQuery ? 1 : ctx_r1.currentParentId ? 2 : 3);
77
75
  } }
78
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelementStart(0, "span", 33);
80
- i0.ɵɵelement(1, "i", 35);
76
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
77
+ i0.ɵɵelementStart(0, "span", 32);
78
+ i0.ɵɵelement(1, "i", 34);
81
79
  i0.ɵɵtext(2, " Already added ");
82
80
  i0.ɵɵelementEnd();
83
81
  } }
84
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
82
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
85
83
  const _r8 = i0.ɵɵgetCurrentView();
86
- i0.ɵɵelementStart(0, "button", 36);
87
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Conditional_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const node_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.drillIntoCollection(node_r7.collection)); });
88
- i0.ɵɵelement(1, "i", 37);
84
+ i0.ɵɵelementStart(0, "button", 35);
85
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Conditional_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const node_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.drillIntoCollection(node_r7.collection)); });
86
+ i0.ɵɵelement(1, "i", 36);
89
87
  i0.ɵɵelementEnd();
90
88
  } }
91
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Template(rf, ctx) { if (rf & 1) {
89
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Template(rf, ctx) { if (rf & 1) {
92
90
  const _r6 = i0.ɵɵgetCurrentView();
93
- i0.ɵɵelementStart(0, "div", 28);
94
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Template_div_click_0_listener() { const node_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleSelection(node_r7)); });
95
- i0.ɵɵelementStart(1, "div", 29)(2, "input", 30);
96
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Template_input_click_2_listener($event) { const node_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.toggleSelection(node_r7)); });
91
+ i0.ɵɵelementStart(0, "div", 27);
92
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Template_div_click_0_listener() { const node_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleSelection(node_r7)); });
93
+ i0.ɵɵelementStart(1, "div", 28)(2, "input", 29);
94
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Template_input_click_2_listener($event) { const node_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.toggleSelection(node_r7)); });
97
95
  i0.ɵɵelementEnd()();
98
- i0.ɵɵelement(3, "i", 31);
99
- i0.ɵɵelementStart(4, "span", 32);
96
+ i0.ɵɵelement(3, "i", 30);
97
+ i0.ɵɵelementStart(4, "span", 31);
100
98
  i0.ɵɵtext(5);
101
99
  i0.ɵɵelementEnd();
102
- i0.ɵɵtemplate(6, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Conditional_6_Template, 3, 0, "span", 33)(7, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Conditional_7_Template, 2, 0, "button", 34);
100
+ i0.ɵɵconditionalCreate(6, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Conditional_6_Template, 3, 0, "span", 32);
101
+ i0.ɵɵconditionalCreate(7, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Conditional_7_Template, 2, 0, "button", 33);
103
102
  i0.ɵɵelementEnd();
104
103
  } if (rf & 2) {
105
104
  const node_r7 = ctx.$implicit;
@@ -115,29 +114,29 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional
115
114
  i0.ɵɵadvance();
116
115
  i0.ɵɵconditional(node_r7.hasChildren ? 7 : -1);
117
116
  } }
118
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
119
- i0.ɵɵrepeaterCreate(0, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_For_1_Template, 8, 9, "div", 27, _forTrack0);
117
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
118
+ i0.ɵɵrepeaterCreate(0, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_For_1_Template, 8, 9, "div", 26, _forTrack0);
120
119
  } if (rf & 2) {
121
120
  const ctx_r1 = i0.ɵɵnextContext(3);
122
121
  i0.ɵɵrepeater(ctx_r1.displayedCollections);
123
122
  } }
124
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵelementStart(0, "div", 21);
126
- i0.ɵɵtemplate(1, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_1_Template, 4, 1, "div", 22)(2, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Conditional_2_Template, 2, 0);
123
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
124
+ i0.ɵɵelementStart(0, "div", 8);
125
+ i0.ɵɵconditionalCreate(1, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_1_Template, 4, 1, "div", 21)(2, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Conditional_2_Template, 2, 0);
127
126
  i0.ɵɵelementEnd();
128
127
  } if (rf & 2) {
129
128
  const ctx_r1 = i0.ɵɵnextContext(2);
130
129
  i0.ɵɵadvance();
131
130
  i0.ɵɵconditional(ctx_r1.displayedCollections.length === 0 ? 1 : 2);
132
131
  } }
133
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
132
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
134
133
  i0.ɵɵelementStart(0, "div", 9);
135
- i0.ɵɵelement(1, "mj-loading", 38);
134
+ i0.ɵɵelement(1, "mj-loading", 37);
136
135
  i0.ɵɵelementEnd();
137
136
  } }
138
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
137
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
139
138
  i0.ɵɵelementStart(0, "div", 10);
140
- i0.ɵɵelement(1, "i", 39);
139
+ i0.ɵɵelement(1, "i", 38);
141
140
  i0.ɵɵelementStart(2, "span");
142
141
  i0.ɵɵtext(3);
143
142
  i0.ɵɵelementEnd()();
@@ -146,9 +145,9 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_8_Tem
146
145
  i0.ɵɵadvance(3);
147
146
  i0.ɵɵtextInterpolate(ctx_r1.errorMessage);
148
147
  } }
149
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
148
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
150
149
  i0.ɵɵelementStart(0, "div", 11);
151
- i0.ɵɵelement(1, "i", 35);
150
+ i0.ɵɵelement(1, "i", 34);
152
151
  i0.ɵɵelementStart(2, "span");
153
152
  i0.ɵɵtext(3);
154
153
  i0.ɵɵelementEnd()();
@@ -157,32 +156,32 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_9_Tem
157
156
  i0.ɵɵadvance(3);
158
157
  i0.ɵɵtextInterpolate1("", ctx_r1.selectedCollections.length, " collection(s) selected");
159
158
  } }
160
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
159
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
161
160
  const _r9 = i0.ɵɵgetCurrentView();
162
- i0.ɵɵelementStart(0, "button", 40);
163
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.showCreateForm = true); });
164
- i0.ɵɵelement(1, "i", 41);
161
+ i0.ɵɵelementStart(0, "button", 39);
162
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.showCreateForm = true); });
163
+ i0.ɵɵelement(1, "i", 40);
165
164
  i0.ɵɵtext(2, " Create New Collection ");
166
165
  i0.ɵɵelementEnd();
167
166
  } }
168
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
169
- i0.ɵɵelement(0, "i", 45);
167
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelement(0, "i", 44);
170
169
  } }
171
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Conditional_6_Template(rf, ctx) { if (rf & 1) {
170
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Conditional_6_Template(rf, ctx) { if (rf & 1) {
172
171
  i0.ɵɵtext(0, " Create ");
173
172
  } }
174
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
173
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
175
174
  const _r10 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "div", 15)(1, "input", 42, 0);
177
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.newCollectionName, $event) || (ctx_r1.newCollectionName = $event); return i0.ɵɵresetView($event); });
178
- i0.ɵɵlistener("keydown.enter", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template_input_keydown_enter_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createCollection()); });
175
+ i0.ɵɵelementStart(0, "div", 15)(1, "input", 41, 0);
176
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.newCollectionName, $event) || (ctx_r1.newCollectionName = $event); return i0.ɵɵresetView($event); });
177
+ i0.ɵɵlistener("keydown.enter", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template_input_keydown_enter_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createCollection()); });
179
178
  i0.ɵɵelementEnd();
180
- i0.ɵɵelementStart(3, "div", 43)(4, "button", 44);
181
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createCollection()); });
182
- i0.ɵɵtemplate(5, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Conditional_5_Template, 1, 0, "i", 45)(6, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Conditional_6_Template, 1, 0);
179
+ i0.ɵɵelementStart(3, "div", 42)(4, "button", 43);
180
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createCollection()); });
181
+ i0.ɵɵconditionalCreate(5, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Conditional_5_Template, 1, 0, "i", 44)(6, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Conditional_6_Template, 1, 0);
183
182
  i0.ɵɵelementEnd();
184
- i0.ɵɵelementStart(7, "button", 46);
185
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.showCreateForm = false; return i0.ɵɵresetView(ctx_r1.newCollectionName = ""); });
183
+ i0.ɵɵelementStart(7, "button", 45);
184
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.showCreateForm = false; return i0.ɵɵresetView(ctx_r1.newCollectionName = ""); });
186
185
  i0.ɵɵtext(8, " Cancel ");
187
186
  i0.ɵɵelementEnd()()();
188
187
  } if (rf & 2) {
@@ -194,43 +193,46 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Te
194
193
  i0.ɵɵadvance();
195
194
  i0.ɵɵconditional(ctx_r1.isCreatingCollection ? 5 : 6);
196
195
  } }
197
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_20_Template(rf, ctx) { if (rf & 1) {
198
- i0.ɵɵelement(0, "i", 45);
196
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_20_Template(rf, ctx) { if (rf & 1) {
197
+ i0.ɵɵelement(0, "i", 44);
199
198
  i0.ɵɵtext(1, " Saving... ");
200
199
  } }
201
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelement(0, "i", 47);
200
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
201
+ i0.ɵɵelement(0, "i", 46);
203
202
  i0.ɵɵtext(1);
204
203
  } if (rf & 2) {
205
204
  const ctx_r1 = i0.ɵɵnextContext(2);
206
205
  i0.ɵɵadvance();
207
206
  i0.ɵɵtextInterpolate1(" Save to ", ctx_r1.selectedCollections.length, " Collection(s) ");
208
207
  } }
209
- function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template(rf, ctx) { if (rf & 1) {
208
+ function ArtifactCollectionPickerModalComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
210
209
  const _r1 = i0.ɵɵgetCurrentView();
211
210
  i0.ɵɵelementStart(0, "kendo-dialog", 2);
212
- i0.ɵɵlistener("close", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
211
+ i0.ɵɵlistener("close", function ArtifactCollectionPickerModalComponent_Conditional_0_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
213
212
  i0.ɵɵelementStart(1, "div", 3);
214
- i0.ɵɵtemplate(2, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_2_Template, 6, 0, "div", 4);
213
+ i0.ɵɵconditionalCreate(2, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_2_Template, 6, 0, "div", 4);
215
214
  i0.ɵɵelementStart(3, "div", 5);
216
215
  i0.ɵɵelement(4, "i", 6);
217
216
  i0.ɵɵelementStart(5, "input", 7);
218
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
219
- i0.ɵɵlistener("input", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template_input_input_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
217
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCollectionPickerModalComponent_Conditional_0_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
218
+ i0.ɵɵlistener("input", function ArtifactCollectionPickerModalComponent_Conditional_0_Template_input_input_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
220
219
  i0.ɵɵelementEnd()();
221
- i0.ɵɵtemplate(6, ArtifactCollectionPickerModalComponent_kendo_dialog_0_div_6_Template, 3, 1, "div", 8)(7, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_7_Template, 2, 0, "div", 9)(8, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_8_Template, 4, 1, "div", 10)(9, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_9_Template, 4, 1, "div", 11);
220
+ i0.ɵɵconditionalCreate(6, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_6_Template, 3, 1, "div", 8);
221
+ i0.ɵɵconditionalCreate(7, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_7_Template, 2, 0, "div", 9);
222
+ i0.ɵɵconditionalCreate(8, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_8_Template, 4, 1, "div", 10);
223
+ i0.ɵɵconditionalCreate(9, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_9_Template, 4, 1, "div", 11);
222
224
  i0.ɵɵelementStart(10, "div", 12)(11, "div", 13)(12, "span");
223
225
  i0.ɵɵtext(13, "OR CREATE NEW");
224
226
  i0.ɵɵelementEnd()();
225
- i0.ɵɵtemplate(14, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_14_Template, 3, 0, "button", 14)(15, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_15_Template, 9, 3, "div", 15);
227
+ i0.ɵɵconditionalCreate(14, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_14_Template, 3, 0, "button", 14)(15, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_15_Template, 9, 3, "div", 15);
226
228
  i0.ɵɵelementEnd()();
227
229
  i0.ɵɵelementStart(16, "kendo-dialog-actions")(17, "button", 16);
228
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
230
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
229
231
  i0.ɵɵtext(18, " Cancel ");
230
232
  i0.ɵɵelementEnd();
231
233
  i0.ɵɵelementStart(19, "button", 17);
232
- i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSave()); });
233
- i0.ɵɵtemplate(20, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_20_Template, 2, 0)(21, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Conditional_21_Template, 2, 1);
234
+ i0.ɵɵlistener("click", function ArtifactCollectionPickerModalComponent_Conditional_0_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSave()); });
235
+ i0.ɵɵconditionalCreate(20, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_20_Template, 2, 0)(21, ArtifactCollectionPickerModalComponent_Conditional_0_Conditional_21_Template, 2, 1);
234
236
  i0.ɵɵelementEnd()()();
235
237
  } if (rf & 2) {
236
238
  const ctx_r1 = i0.ɵɵnextContext();
@@ -241,7 +243,7 @@ function ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template(rf, ctx)
241
243
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
242
244
  i0.ɵɵproperty("disabled", ctx_r1.isLoading);
243
245
  i0.ɵɵadvance();
244
- i0.ɵɵproperty("ngIf", !ctx_r1.isLoading && !ctx_r1.errorMessage);
246
+ i0.ɵɵconditional(!ctx_r1.isLoading && !ctx_r1.errorMessage ? 6 : -1);
245
247
  i0.ɵɵadvance();
246
248
  i0.ɵɵconditional(ctx_r1.isLoading ? 7 : -1);
247
249
  i0.ɵɵadvance();
@@ -534,181 +536,176 @@ export class ArtifactCollectionPickerModalComponent {
534
536
  this.cancelled.emit();
535
537
  }
536
538
  static ɵfac = function ArtifactCollectionPickerModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ArtifactCollectionPickerModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i2.CollectionPermissionService)); };
537
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactCollectionPickerModalComponent, selectors: [["mj-artifact-collection-picker-modal"]], inputs: { isOpen: "isOpen", environmentId: "environmentId", currentUser: "currentUser", excludeCollectionIds: "excludeCollectionIds" }, outputs: { saved: "saved", cancelled: "cancelled" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [["newCollectionInput", ""], ["title", "Save to Collection", 3, "width", "minWidth", "close", 4, "ngIf"], ["title", "Save to Collection", 3, "close", "width", "minWidth"], [1, "picker-modal"], [1, "breadcrumb-nav"], [1, "search-bar"], [1, "fas", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search collections...", 1, "k-textbox", "search-input", 3, "ngModelChange", "input", "ngModel", "disabled"], ["class", "collections-list", 4, "ngIf"], [1, "loading-state"], [1, "error-state"], [1, "selected-summary"], [1, "create-section"], [1, "divider"], [1, "btn-create-collection"], [1, "create-form"], ["kendoButton", "", 3, "click"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "breadcrumb-btn", 3, "click"], [1, "fas", "fa-home"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], [1, "collections-list"], [1, "empty-state"], [1, "fas", "fa-search"], [1, "fas", "fa-folder-open"], [1, "fas", "fa-folder"], [1, "hint"], [1, "collection-item", 3, "already-added"], [1, "collection-item", 3, "click"], [1, "collection-checkbox"], ["type", "checkbox", 3, "click", "checked", "disabled"], [1, "fas", "fa-folder", "collection-icon"], [1, "collection-name"], [1, "already-added-badge"], ["title", "View sub-collections", 1, "drill-down-btn"], [1, "fas", "fa-check-circle"], ["title", "View sub-collections", 1, "drill-down-btn", 3, "click"], [1, "fas", "fa-chevron-right"], ["text", "Loading collections...", "size", "medium"], [1, "fas", "fa-exclamation-triangle"], [1, "btn-create-collection", 3, "click"], [1, "fas", "fa-plus"], ["type", "text", "placeholder", "Enter collection name", 1, "k-textbox", "create-input", 3, "ngModelChange", "keydown.enter", "ngModel"], [1, "create-actions"], ["kendoButton", "", 1, "btn-create", 3, "click", "disabled"], [1, "fas", "fa-spinner", "fa-spin"], ["kendoButton", "", 1, "btn-cancel", 3, "click"], [1, "fas", "fa-save"]], template: function ArtifactCollectionPickerModalComponent_Template(rf, ctx) { if (rf & 1) {
538
- i0.ɵɵtemplate(0, ArtifactCollectionPickerModalComponent_kendo_dialog_0_Template, 22, 13, "kendo-dialog", 1);
539
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactCollectionPickerModalComponent, selectors: [["mj-artifact-collection-picker-modal"]], inputs: { isOpen: "isOpen", environmentId: "environmentId", currentUser: "currentUser", excludeCollectionIds: "excludeCollectionIds" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["newCollectionInput", ""], ["title", "Save to Collection", 3, "width", "minWidth"], ["title", "Save to Collection", 3, "close", "width", "minWidth"], [1, "picker-modal"], [1, "breadcrumb-nav"], [1, "search-bar"], [1, "fas", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search collections...", 1, "k-textbox", "search-input", 3, "ngModelChange", "input", "ngModel", "disabled"], [1, "collections-list"], [1, "loading-state"], [1, "error-state"], [1, "selected-summary"], [1, "create-section"], [1, "divider"], [1, "btn-create-collection"], [1, "create-form"], ["kendoButton", "", 3, "click"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "breadcrumb-btn", 3, "click"], [1, "fas", "fa-home"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], [1, "empty-state"], [1, "fas", "fa-search"], [1, "fas", "fa-folder-open"], [1, "fas", "fa-folder"], [1, "hint"], [1, "collection-item", 3, "already-added"], [1, "collection-item", 3, "click"], [1, "collection-checkbox"], ["type", "checkbox", 3, "click", "checked", "disabled"], [1, "fas", "fa-folder", "collection-icon"], [1, "collection-name"], [1, "already-added-badge"], ["title", "View sub-collections", 1, "drill-down-btn"], [1, "fas", "fa-check-circle"], ["title", "View sub-collections", 1, "drill-down-btn", 3, "click"], [1, "fas", "fa-chevron-right"], ["text", "Loading collections...", "size", "medium"], [1, "fas", "fa-exclamation-triangle"], [1, "btn-create-collection", 3, "click"], [1, "fas", "fa-plus"], ["type", "text", "placeholder", "Enter collection name", 1, "k-textbox", "create-input", 3, "ngModelChange", "keydown.enter", "ngModel"], [1, "create-actions"], ["kendoButton", "", 1, "btn-create", 3, "click", "disabled"], [1, "fas", "fa-spinner", "fa-spin"], ["kendoButton", "", 1, "btn-cancel", 3, "click"], [1, "fas", "fa-save"]], template: function ArtifactCollectionPickerModalComponent_Template(rf, ctx) { if (rf & 1) {
540
+ i0.ɵɵconditionalCreate(0, ArtifactCollectionPickerModalComponent_Conditional_0_Template, 22, 13, "kendo-dialog", 1);
539
541
  } if (rf & 2) {
540
- i0.ɵɵproperty("ngIf", ctx.isOpen);
541
- } }, dependencies: [CommonModule, i3.NgIf, FormsModule, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, DialogModule, i5.DialogComponent, i5.DialogActionsComponent, ButtonsModule, i6.ButtonComponent, InputsModule,
542
- SharedGenericModule, i7.LoadingComponent], styles: [".picker-modal[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px 0;\n min-height: 400px;\n max-height: 600px;\n }\n\n .breadcrumb-nav[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #0076B6;\n cursor: pointer;\n white-space: nowrap;\n font-size: 14px;\n }\n\n .breadcrumb-btn[_ngcontent-%COMP%]:hover {\n background: #E5E7EB;\n }\n\n .breadcrumb-separator[_ngcontent-%COMP%] {\n color: #9CA3AF;\n font-size: 12px;\n }\n\n .search-bar[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: #9CA3AF;\n pointer-events: none;\n }\n\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding-left: 36px;\n }\n\n .collections-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n min-height: 250px;\n max-height: 350px;\n }\n\n .collection-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-bottom: 1px solid #F3F4F6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .collection-item[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .collection-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .collection-item.already-added[_ngcontent-%COMP%] {\n background: #F9FAFB;\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .collection-item.already-added[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .collection-checkbox[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .collection-checkbox[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n }\n\n .collection-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n flex-shrink: 0;\n }\n\n .collection-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n color: #1F2937;\n }\n\n .already-added-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 12px;\n color: #1E40AF;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n }\n\n .already-added-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #2563EB;\n }\n\n .drill-down-btn[_ngcontent-%COMP%] {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 4px;\n color: #6B7280;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .drill-down-btn[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n border-color: #9CA3AF;\n color: #374151;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n color: #6B7280;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 4px 0;\n font-size: 14px;\n }\n\n .empty-state[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #9CA3AF;\n }\n\n .loading-state[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n color: #6B7280;\n }\n\n .error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n }\n\n .error-state[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .selected-summary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 6px;\n color: #1E40AF;\n font-size: 14px;\n font-weight: 500;\n }\n\n .selected-summary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2563EB;\n }\n\n .create-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .divider[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n text-align: center;\n color: #9CA3AF;\n font-size: 12px;\n font-weight: 500;\n }\n\n .divider[_ngcontent-%COMP%]::before, \n .divider[_ngcontent-%COMP%]::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .btn-create-collection[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: #F9FAFB;\n border: 2px dashed #D1D5DB;\n border-radius: 6px;\n color: #0076B6;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-create-collection[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n border-color: #0076B6;\n }\n\n .btn-create-collection[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .create-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n }\n\n .create-input[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .create-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n .btn-create[_ngcontent-%COMP%], .btn-cancel[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 14px;\n }"] });
542
+ i0.ɵɵconditional(ctx.isOpen ? 0 : -1);
543
+ } }, dependencies: [FormsModule, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, DialogModule, i4.DialogComponent, i4.DialogActionsComponent, ButtonsModule, i5.ButtonComponent, InputsModule,
544
+ SharedGenericModule, i6.LoadingComponent], styles: [".picker-modal[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px 0;\n min-height: 400px;\n max-height: 600px;\n }\n\n .breadcrumb-nav[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #0076B6;\n cursor: pointer;\n white-space: nowrap;\n font-size: 14px;\n }\n\n .breadcrumb-btn[_ngcontent-%COMP%]:hover {\n background: #E5E7EB;\n }\n\n .breadcrumb-separator[_ngcontent-%COMP%] {\n color: #9CA3AF;\n font-size: 12px;\n }\n\n .search-bar[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: #9CA3AF;\n pointer-events: none;\n }\n\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding-left: 36px;\n }\n\n .collections-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n min-height: 250px;\n max-height: 350px;\n }\n\n .collection-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-bottom: 1px solid #F3F4F6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .collection-item[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .collection-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .collection-item.already-added[_ngcontent-%COMP%] {\n background: #F9FAFB;\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .collection-item.already-added[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .collection-checkbox[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .collection-checkbox[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n }\n\n .collection-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n flex-shrink: 0;\n }\n\n .collection-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n color: #1F2937;\n }\n\n .already-added-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 12px;\n color: #1E40AF;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n }\n\n .already-added-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #2563EB;\n }\n\n .drill-down-btn[_ngcontent-%COMP%] {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 4px;\n color: #6B7280;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .drill-down-btn[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n border-color: #9CA3AF;\n color: #374151;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n color: #6B7280;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 4px 0;\n font-size: 14px;\n }\n\n .empty-state[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #9CA3AF;\n }\n\n .loading-state[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n color: #6B7280;\n }\n\n .error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n }\n\n .error-state[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .selected-summary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 6px;\n color: #1E40AF;\n font-size: 14px;\n font-weight: 500;\n }\n\n .selected-summary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2563EB;\n }\n\n .create-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .divider[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n text-align: center;\n color: #9CA3AF;\n font-size: 12px;\n font-weight: 500;\n }\n\n .divider[_ngcontent-%COMP%]::before, \n .divider[_ngcontent-%COMP%]::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .btn-create-collection[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: #F9FAFB;\n border: 2px dashed #D1D5DB;\n border-radius: 6px;\n color: #0076B6;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-create-collection[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n border-color: #0076B6;\n }\n\n .btn-create-collection[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .create-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n }\n\n .create-input[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .create-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n .btn-create[_ngcontent-%COMP%], .btn-cancel[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 14px;\n }"] });
543
545
  }
544
546
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactCollectionPickerModalComponent, [{
545
547
  type: Component,
546
548
  args: [{ selector: 'mj-artifact-collection-picker-modal', standalone: true, imports: [
547
- CommonModule,
548
549
  FormsModule,
549
550
  DialogModule,
550
551
  ButtonsModule,
551
552
  InputsModule,
552
553
  SharedGenericModule
553
554
  ], template: `
554
- <kendo-dialog
555
- *ngIf="isOpen"
556
- title="Save to Collection"
557
- (close)="onCancel()"
558
- [width]="700"
559
- [minWidth]="500">
560
- <div class="picker-modal">
561
- <!-- Breadcrumb Navigation -->
562
- @if (navigationPath.length > 0) {
563
- <div class="breadcrumb-nav">
564
- <button class="breadcrumb-btn" (click)="navigateToRoot()">
565
- <i class="fas fa-home"></i> Root
566
- </button>
567
- @for (item of navigationPath; track item.collection.ID) {
568
- <i class="fas fa-chevron-right breadcrumb-separator"></i>
569
- <button class="breadcrumb-btn" (click)="navigateToCollection(item.collection)">
570
- {{ item.collection.Name }}
555
+ @if (isOpen) {
556
+ <kendo-dialog
557
+ title="Save to Collection"
558
+ (close)="onCancel()"
559
+ [width]="700"
560
+ [minWidth]="500">
561
+ <div class="picker-modal">
562
+ <!-- Breadcrumb Navigation -->
563
+ @if (navigationPath.length > 0) {
564
+ <div class="breadcrumb-nav">
565
+ <button class="breadcrumb-btn" (click)="navigateToRoot()">
566
+ <i class="fas fa-home"></i> Root
571
567
  </button>
572
- }
573
- </div>
574
- }
575
-
576
- <!-- Search Bar -->
577
- <div class="search-bar">
578
- <i class="fas fa-search search-icon"></i>
579
- <input
580
- type="text"
581
- class="k-textbox search-input"
582
- [(ngModel)]="searchQuery"
583
- (input)="onSearchChange()"
584
- placeholder="Search collections..."
585
- [disabled]="isLoading">
586
- </div>
587
-
588
- <!-- Collections List -->
589
- <div class="collections-list" *ngIf="!isLoading && !errorMessage">
590
- @if (displayedCollections.length === 0) {
591
- <div class="empty-state">
592
- @if (searchQuery) {
593
- <i class="fas fa-search"></i>
594
- <p>No collections found matching "{{ searchQuery }}"</p>
595
- } @else if (currentParentId) {
596
- <i class="fas fa-folder-open"></i>
597
- <p>No sub-collections available</p>
598
- } @else {
599
- <i class="fas fa-folder"></i>
600
- <p>No collections available</p>
601
- <p class="hint">Create a new collection to get started</p>
568
+ @for (item of navigationPath; track item.collection.ID) {
569
+ <i class="fas fa-chevron-right breadcrumb-separator"></i>
570
+ <button class="breadcrumb-btn" (click)="navigateToCollection(item.collection)">
571
+ {{ item.collection.Name }}
572
+ </button>
602
573
  }
603
574
  </div>
604
- } @else {
605
- @for (node of displayedCollections; track node.collection.ID) {
606
- <div class="collection-item"
607
- [class.already-added]="node.alreadyContainsArtifact"
608
- (click)="toggleSelection(node)">
609
- <div class="collection-checkbox">
610
- <input
611
- type="checkbox"
612
- [checked]="node.selected"
613
- [disabled]="node.alreadyContainsArtifact"
614
- (click)="$event.stopPropagation(); toggleSelection(node)">
615
- </div>
616
- <i class="fas fa-folder collection-icon" [style.color]="node.collection.Color || '#0076B6'"></i>
617
- <span class="collection-name">{{ node.collection.Name }}</span>
618
- @if (node.alreadyContainsArtifact) {
619
- <span class="already-added-badge">
620
- <i class="fas fa-check-circle"></i> Already added
621
- </span>
622
- }
623
- @if (node.hasChildren) {
624
- <button
625
- class="drill-down-btn"
626
- (click)="$event.stopPropagation(); drillIntoCollection(node.collection)"
627
- title="View sub-collections">
628
- <i class="fas fa-chevron-right"></i>
629
- </button>
630
- }
631
- </div>
632
- }
633
575
  }
634
- </div>
635
-
636
- <!-- Loading State -->
637
- @if (isLoading) {
638
- <div class="loading-state">
639
- <mj-loading text="Loading collections..." size="medium"></mj-loading>
640
- </div>
641
- }
642
-
643
- <!-- Error State -->
644
- @if (errorMessage) {
645
- <div class="error-state">
646
- <i class="fas fa-exclamation-triangle"></i>
647
- <span>{{ errorMessage }}</span>
648
- </div>
649
- }
650
-
651
- <!-- Selected Collections Summary -->
652
- @if (selectedCollections.length > 0) {
653
- <div class="selected-summary">
654
- <i class="fas fa-check-circle"></i>
655
- <span>{{ selectedCollections.length }} collection(s) selected</span>
656
- </div>
657
- }
658
-
659
- <!-- Create New Collection Section -->
660
- <div class="create-section">
661
- <div class="divider">
662
- <span>OR CREATE NEW</span>
576
+ <!-- Search Bar -->
577
+ <div class="search-bar">
578
+ <i class="fas fa-search search-icon"></i>
579
+ <input
580
+ type="text"
581
+ class="k-textbox search-input"
582
+ [(ngModel)]="searchQuery"
583
+ (input)="onSearchChange()"
584
+ placeholder="Search collections..."
585
+ [disabled]="isLoading">
663
586
  </div>
664
- @if (!showCreateForm) {
665
- <button class="btn-create-collection" (click)="showCreateForm = true">
666
- <i class="fas fa-plus"></i>
667
- Create New Collection
668
- </button>
669
- } @else {
670
- <div class="create-form">
671
- <input
672
- type="text"
673
- class="k-textbox create-input"
674
- [(ngModel)]="newCollectionName"
675
- placeholder="Enter collection name"
676
- (keydown.enter)="createCollection()"
677
- #newCollectionInput>
678
- <div class="create-actions">
679
- <button class="btn-create" kendoButton (click)="createCollection()" [disabled]="isCreatingCollection || !newCollectionName.trim()">
680
- @if (isCreatingCollection) {
681
- <i class="fas fa-spinner fa-spin"></i>
587
+ <!-- Collections List -->
588
+ @if (!isLoading && !errorMessage) {
589
+ <div class="collections-list">
590
+ @if (displayedCollections.length === 0) {
591
+ <div class="empty-state">
592
+ @if (searchQuery) {
593
+ <i class="fas fa-search"></i>
594
+ <p>No collections found matching "{{ searchQuery }}"</p>
595
+ } @else if (currentParentId) {
596
+ <i class="fas fa-folder-open"></i>
597
+ <p>No sub-collections available</p>
682
598
  } @else {
683
- Create
599
+ <i class="fas fa-folder"></i>
600
+ <p>No collections available</p>
601
+ <p class="hint">Create a new collection to get started</p>
684
602
  }
685
- </button>
686
- <button class="btn-cancel" kendoButton (click)="showCreateForm = false; newCollectionName = ''">
687
- Cancel
688
- </button>
689
- </div>
603
+ </div>
604
+ } @else {
605
+ @for (node of displayedCollections; track node.collection.ID) {
606
+ <div class="collection-item"
607
+ [class.already-added]="node.alreadyContainsArtifact"
608
+ (click)="toggleSelection(node)">
609
+ <div class="collection-checkbox">
610
+ <input
611
+ type="checkbox"
612
+ [checked]="node.selected"
613
+ [disabled]="node.alreadyContainsArtifact"
614
+ (click)="$event.stopPropagation(); toggleSelection(node)">
615
+ </div>
616
+ <i class="fas fa-folder collection-icon" [style.color]="node.collection.Color || '#0076B6'"></i>
617
+ <span class="collection-name">{{ node.collection.Name }}</span>
618
+ @if (node.alreadyContainsArtifact) {
619
+ <span class="already-added-badge">
620
+ <i class="fas fa-check-circle"></i> Already added
621
+ </span>
622
+ }
623
+ @if (node.hasChildren) {
624
+ <button
625
+ class="drill-down-btn"
626
+ (click)="$event.stopPropagation(); drillIntoCollection(node.collection)"
627
+ title="View sub-collections">
628
+ <i class="fas fa-chevron-right"></i>
629
+ </button>
630
+ }
631
+ </div>
632
+ }
633
+ }
690
634
  </div>
691
635
  }
692
- </div>
693
- </div>
694
-
695
- <kendo-dialog-actions>
696
- <button kendoButton (click)="onCancel()">
697
- Cancel
698
- </button>
699
- <button kendoButton
700
- [primary]="true"
701
- (click)="onSave()"
702
- [disabled]="selectedCollections.length === 0 || isSaving">
703
- @if (isSaving) {
704
- <i class="fas fa-spinner fa-spin"></i> Saving...
705
- } @else {
706
- <i class="fas fa-save"></i> Save to {{ selectedCollections.length }} Collection(s)
636
+ <!-- Loading State -->
637
+ @if (isLoading) {
638
+ <div class="loading-state">
639
+ <mj-loading text="Loading collections..." size="medium"></mj-loading>
640
+ </div>
641
+ }
642
+ <!-- Error State -->
643
+ @if (errorMessage) {
644
+ <div class="error-state">
645
+ <i class="fas fa-exclamation-triangle"></i>
646
+ <span>{{ errorMessage }}</span>
647
+ </div>
648
+ }
649
+ <!-- Selected Collections Summary -->
650
+ @if (selectedCollections.length > 0) {
651
+ <div class="selected-summary">
652
+ <i class="fas fa-check-circle"></i>
653
+ <span>{{ selectedCollections.length }} collection(s) selected</span>
654
+ </div>
707
655
  }
708
- </button>
709
- </kendo-dialog-actions>
710
- </kendo-dialog>
711
- `, styles: ["\n .picker-modal {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px 0;\n min-height: 400px;\n max-height: 600px;\n }\n\n .breadcrumb-nav {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #0076B6;\n cursor: pointer;\n white-space: nowrap;\n font-size: 14px;\n }\n\n .breadcrumb-btn:hover {\n background: #E5E7EB;\n }\n\n .breadcrumb-separator {\n color: #9CA3AF;\n font-size: 12px;\n }\n\n .search-bar {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-icon {\n position: absolute;\n left: 12px;\n color: #9CA3AF;\n pointer-events: none;\n }\n\n .search-input {\n width: 100%;\n padding-left: 36px;\n }\n\n .collections-list {\n flex: 1;\n overflow-y: auto;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n min-height: 250px;\n max-height: 350px;\n }\n\n .collection-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-bottom: 1px solid #F3F4F6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .collection-item:hover {\n background: #F9FAFB;\n }\n\n .collection-item:last-child {\n border-bottom: none;\n }\n\n .collection-item.already-added {\n background: #F9FAFB;\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .collection-item.already-added:hover {\n background: #F9FAFB;\n }\n\n .collection-checkbox {\n display: flex;\n align-items: center;\n }\n\n .collection-checkbox input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n }\n\n .collection-icon {\n font-size: 18px;\n flex-shrink: 0;\n }\n\n .collection-name {\n flex: 1;\n font-size: 14px;\n color: #1F2937;\n }\n\n .already-added-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 12px;\n color: #1E40AF;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n }\n\n .already-added-badge i {\n font-size: 12px;\n color: #2563EB;\n }\n\n .drill-down-btn {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 4px;\n color: #6B7280;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .drill-down-btn:hover {\n background: #F3F4F6;\n border-color: #9CA3AF;\n color: #374151;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n color: #6B7280;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n\n .empty-state p {\n margin: 4px 0;\n font-size: 14px;\n }\n\n .empty-state .hint {\n font-size: 13px;\n color: #9CA3AF;\n }\n\n .loading-state, .error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n color: #6B7280;\n }\n\n .error-state i {\n font-size: 32px;\n }\n\n .error-state {\n color: #DC2626;\n }\n\n .selected-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 6px;\n color: #1E40AF;\n font-size: 14px;\n font-weight: 500;\n }\n\n .selected-summary i {\n color: #2563EB;\n }\n\n .create-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .divider {\n display: flex;\n align-items: center;\n text-align: center;\n color: #9CA3AF;\n font-size: 12px;\n font-weight: 500;\n }\n\n .divider::before,\n .divider::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .divider span {\n padding: 0 12px;\n }\n\n .btn-create-collection {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: #F9FAFB;\n border: 2px dashed #D1D5DB;\n border-radius: 6px;\n color: #0076B6;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-create-collection:hover {\n background: #F3F4F6;\n border-color: #0076B6;\n }\n\n .btn-create-collection i {\n font-size: 16px;\n }\n\n .create-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n }\n\n .create-input {\n width: 100%;\n }\n\n .create-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n .btn-create, .btn-cancel {\n padding: 8px 16px;\n font-size: 14px;\n }\n "] }]
656
+ <!-- Create New Collection Section -->
657
+ <div class="create-section">
658
+ <div class="divider">
659
+ <span>OR CREATE NEW</span>
660
+ </div>
661
+ @if (!showCreateForm) {
662
+ <button class="btn-create-collection" (click)="showCreateForm = true">
663
+ <i class="fas fa-plus"></i>
664
+ Create New Collection
665
+ </button>
666
+ } @else {
667
+ <div class="create-form">
668
+ <input
669
+ type="text"
670
+ class="k-textbox create-input"
671
+ [(ngModel)]="newCollectionName"
672
+ placeholder="Enter collection name"
673
+ (keydown.enter)="createCollection()"
674
+ #newCollectionInput>
675
+ <div class="create-actions">
676
+ <button class="btn-create" kendoButton (click)="createCollection()" [disabled]="isCreatingCollection || !newCollectionName.trim()">
677
+ @if (isCreatingCollection) {
678
+ <i class="fas fa-spinner fa-spin"></i>
679
+ } @else {
680
+ Create
681
+ }
682
+ </button>
683
+ <button class="btn-cancel" kendoButton (click)="showCreateForm = false; newCollectionName = ''">
684
+ Cancel
685
+ </button>
686
+ </div>
687
+ </div>
688
+ }
689
+ </div>
690
+ </div>
691
+ <kendo-dialog-actions>
692
+ <button kendoButton (click)="onCancel()">
693
+ Cancel
694
+ </button>
695
+ <button kendoButton
696
+ [primary]="true"
697
+ (click)="onSave()"
698
+ [disabled]="selectedCollections.length === 0 || isSaving">
699
+ @if (isSaving) {
700
+ <i class="fas fa-spinner fa-spin"></i> Saving...
701
+ } @else {
702
+ <i class="fas fa-save"></i> Save to {{ selectedCollections.length }} Collection(s)
703
+ }
704
+ </button>
705
+ </kendo-dialog-actions>
706
+ </kendo-dialog>
707
+ }
708
+ `, styles: ["\n .picker-modal {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 20px 0;\n min-height: 400px;\n max-height: 600px;\n }\n\n .breadcrumb-nav {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #0076B6;\n cursor: pointer;\n white-space: nowrap;\n font-size: 14px;\n }\n\n .breadcrumb-btn:hover {\n background: #E5E7EB;\n }\n\n .breadcrumb-separator {\n color: #9CA3AF;\n font-size: 12px;\n }\n\n .search-bar {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-icon {\n position: absolute;\n left: 12px;\n color: #9CA3AF;\n pointer-events: none;\n }\n\n .search-input {\n width: 100%;\n padding-left: 36px;\n }\n\n .collections-list {\n flex: 1;\n overflow-y: auto;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n min-height: 250px;\n max-height: 350px;\n }\n\n .collection-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-bottom: 1px solid #F3F4F6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .collection-item:hover {\n background: #F9FAFB;\n }\n\n .collection-item:last-child {\n border-bottom: none;\n }\n\n .collection-item.already-added {\n background: #F9FAFB;\n opacity: 0.7;\n cursor: not-allowed;\n }\n\n .collection-item.already-added:hover {\n background: #F9FAFB;\n }\n\n .collection-checkbox {\n display: flex;\n align-items: center;\n }\n\n .collection-checkbox input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n }\n\n .collection-icon {\n font-size: 18px;\n flex-shrink: 0;\n }\n\n .collection-name {\n flex: 1;\n font-size: 14px;\n color: #1F2937;\n }\n\n .already-added-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 12px;\n color: #1E40AF;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n }\n\n .already-added-badge i {\n font-size: 12px;\n color: #2563EB;\n }\n\n .drill-down-btn {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 4px;\n color: #6B7280;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .drill-down-btn:hover {\n background: #F3F4F6;\n border-color: #9CA3AF;\n color: #374151;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n color: #6B7280;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n\n .empty-state p {\n margin: 4px 0;\n font-size: 14px;\n }\n\n .empty-state .hint {\n font-size: 13px;\n color: #9CA3AF;\n }\n\n .loading-state, .error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n gap: 12px;\n color: #6B7280;\n }\n\n .error-state i {\n font-size: 32px;\n }\n\n .error-state {\n color: #DC2626;\n }\n\n .selected-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: #DBEAFE;\n border: 1px solid #93C5FD;\n border-radius: 6px;\n color: #1E40AF;\n font-size: 14px;\n font-weight: 500;\n }\n\n .selected-summary i {\n color: #2563EB;\n }\n\n .create-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .divider {\n display: flex;\n align-items: center;\n text-align: center;\n color: #9CA3AF;\n font-size: 12px;\n font-weight: 500;\n }\n\n .divider::before,\n .divider::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .divider span {\n padding: 0 12px;\n }\n\n .btn-create-collection {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: #F9FAFB;\n border: 2px dashed #D1D5DB;\n border-radius: 6px;\n color: #0076B6;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-create-collection:hover {\n background: #F3F4F6;\n border-color: #0076B6;\n }\n\n .btn-create-collection i {\n font-size: 16px;\n }\n\n .create-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n }\n\n .create-input {\n width: 100%;\n }\n\n .create-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n .btn-create, .btn-cancel {\n padding: 8px 16px;\n font-size: 14px;\n }\n "] }]
712
709
  }], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }], { isOpen: [{
713
710
  type: Input
714
711
  }], environmentId: [{
@@ -722,5 +719,5 @@ export class ArtifactCollectionPickerModalComponent {
722
719
  }], cancelled: [{
723
720
  type: Output
724
721
  }] }); })();
725
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactCollectionPickerModalComponent, { className: "ArtifactCollectionPickerModalComponent", filePath: "src/lib/components/collection/artifact-collection-picker-modal.component.ts", lineNumber: 493 }); })();
722
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactCollectionPickerModalComponent, { className: "ArtifactCollectionPickerModalComponent", filePath: "src/lib/components/collection/artifact-collection-picker-modal.component.ts", lineNumber: 488 }); })();
726
723
  //# sourceMappingURL=artifact-collection-picker-modal.component.js.map