@memberjunction/ng-conversations 2.104.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 (226) hide show
  1. package/README.md +197 -0
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +20 -0
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -0
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +125 -0
  5. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -0
  6. package/dist/lib/components/agent/active-agent-indicator.component.d.ts +48 -0
  7. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -0
  8. package/dist/lib/components/agent/active-agent-indicator.component.js +199 -0
  9. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -0
  10. package/dist/lib/components/agent/agent-process-panel.component.d.ts +30 -0
  11. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -0
  12. package/dist/lib/components/agent/agent-process-panel.component.js +333 -0
  13. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -0
  14. package/dist/lib/components/artifact/artifact-panel.component.d.ts +22 -0
  15. package/dist/lib/components/artifact/artifact-panel.component.d.ts.map +1 -0
  16. package/dist/lib/components/artifact/artifact-panel.component.js +237 -0
  17. package/dist/lib/components/artifact/artifact-panel.component.js.map +1 -0
  18. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts +39 -0
  19. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts.map +1 -0
  20. package/dist/lib/components/artifact/artifact-upload-modal.component.js +384 -0
  21. package/dist/lib/components/artifact/artifact-upload-modal.component.js.map +1 -0
  22. package/dist/lib/components/artifact/artifact-version-history.component.d.ts +28 -0
  23. package/dist/lib/components/artifact/artifact-version-history.component.d.ts.map +1 -0
  24. package/dist/lib/components/artifact/artifact-version-history.component.js +280 -0
  25. package/dist/lib/components/artifact/artifact-version-history.component.js.map +1 -0
  26. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +22 -0
  27. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +1 -0
  28. package/dist/lib/components/artifact/artifact-viewer-panel.component.js +182 -0
  29. package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +1 -0
  30. package/dist/lib/components/artifact/artifact-viewer.component.d.ts +27 -0
  31. package/dist/lib/components/artifact/artifact-viewer.component.d.ts.map +1 -0
  32. package/dist/lib/components/artifact/artifact-viewer.component.js +266 -0
  33. package/dist/lib/components/artifact/artifact-viewer.component.js.map +1 -0
  34. package/dist/lib/components/artifact/inline-artifact.component.d.ts +46 -0
  35. package/dist/lib/components/artifact/inline-artifact.component.d.ts.map +1 -0
  36. package/dist/lib/components/artifact/inline-artifact.component.js +447 -0
  37. package/dist/lib/components/artifact/inline-artifact.component.js.map +1 -0
  38. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +18 -0
  39. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -0
  40. package/dist/lib/components/collection/collection-artifact-card.component.js +147 -0
  41. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -0
  42. package/dist/lib/components/collection/collection-form-modal.component.d.ts +33 -0
  43. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -0
  44. package/dist/lib/components/collection/collection-form-modal.component.js +245 -0
  45. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -0
  46. package/dist/lib/components/collection/collection-tree.component.d.ts +42 -0
  47. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -0
  48. package/dist/lib/components/collection/collection-tree.component.js +482 -0
  49. package/dist/lib/components/collection/collection-tree.component.js.map +1 -0
  50. package/dist/lib/components/collection/collection-view.component.d.ts +31 -0
  51. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -0
  52. package/dist/lib/components/collection/collection-view.component.js +254 -0
  53. package/dist/lib/components/collection/collection-view.component.js.map +1 -0
  54. package/dist/lib/components/collection/collections-full-view.component.d.ts +55 -0
  55. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -0
  56. package/dist/lib/components/collection/collections-full-view.component.js +578 -0
  57. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -0
  58. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +160 -0
  59. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -0
  60. package/dist/lib/components/conversation/conversation-chat-area.component.js +891 -0
  61. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -0
  62. package/dist/lib/components/conversation/conversation-list.component.d.ts +29 -0
  63. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -0
  64. package/dist/lib/components/conversation/conversation-list.component.js +255 -0
  65. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -0
  66. package/dist/lib/components/dialogs/input-dialog.component.d.ts +17 -0
  67. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -0
  68. package/dist/lib/components/dialogs/input-dialog.component.js +122 -0
  69. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -0
  70. package/dist/lib/components/export/export-modal.component.d.ts +37 -0
  71. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -0
  72. package/dist/lib/components/export/export-modal.component.js +414 -0
  73. package/dist/lib/components/export/export-modal.component.js.map +1 -0
  74. package/dist/lib/components/library/library-full-view.component.d.ts +36 -0
  75. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -0
  76. package/dist/lib/components/library/library-full-view.component.js +270 -0
  77. package/dist/lib/components/library/library-full-view.component.js.map +1 -0
  78. package/dist/lib/components/members/members-modal.component.d.ts +42 -0
  79. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -0
  80. package/dist/lib/components/members/members-modal.component.js +352 -0
  81. package/dist/lib/components/members/members-modal.component.js.map +1 -0
  82. package/dist/lib/components/mention/mention-dropdown.component.d.ts +44 -0
  83. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -0
  84. package/dist/lib/components/mention/mention-dropdown.component.js +194 -0
  85. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -0
  86. package/dist/lib/components/message/message-input.component.d.ts +137 -0
  87. package/dist/lib/components/message/message-input.component.d.ts.map +1 -0
  88. package/dist/lib/components/message/message-input.component.js +1159 -0
  89. package/dist/lib/components/message/message-input.component.js.map +1 -0
  90. package/dist/lib/components/message/message-item.component.d.ts +140 -0
  91. package/dist/lib/components/message/message-item.component.d.ts.map +1 -0
  92. package/dist/lib/components/message/message-item.component.js +817 -0
  93. package/dist/lib/components/message/message-item.component.js.map +1 -0
  94. package/dist/lib/components/message/message-list.component.d.ts +77 -0
  95. package/dist/lib/components/message/message-list.component.d.ts.map +1 -0
  96. package/dist/lib/components/message/message-list.component.js +316 -0
  97. package/dist/lib/components/message/message-list.component.js.map +1 -0
  98. package/dist/lib/components/navigation/conversation-navigation.component.d.ts +13 -0
  99. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -0
  100. package/dist/lib/components/navigation/conversation-navigation.component.js +88 -0
  101. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -0
  102. package/dist/lib/components/notification/activity-indicator.component.d.ts +11 -0
  103. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -0
  104. package/dist/lib/components/notification/activity-indicator.component.js +56 -0
  105. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -0
  106. package/dist/lib/components/notification/notification-badge.component.d.ts +27 -0
  107. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -0
  108. package/dist/lib/components/notification/notification-badge.component.js +160 -0
  109. package/dist/lib/components/notification/notification-badge.component.js.map +1 -0
  110. package/dist/lib/components/project/project-form-modal.component.d.ts +34 -0
  111. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -0
  112. package/dist/lib/components/project/project-form-modal.component.js +357 -0
  113. package/dist/lib/components/project/project-form-modal.component.js.map +1 -0
  114. package/dist/lib/components/project/project-selector.component.d.ts +36 -0
  115. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -0
  116. package/dist/lib/components/project/project-selector.component.js +317 -0
  117. package/dist/lib/components/project/project-selector.component.js.map +1 -0
  118. package/dist/lib/components/search/search-panel.component.d.ts +120 -0
  119. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -0
  120. package/dist/lib/components/search/search-panel.component.js +714 -0
  121. package/dist/lib/components/search/search-panel.component.js.map +1 -0
  122. package/dist/lib/components/share/share-modal.component.d.ts +46 -0
  123. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -0
  124. package/dist/lib/components/share/share-modal.component.js +431 -0
  125. package/dist/lib/components/share/share-modal.component.js.map +1 -0
  126. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +18 -0
  127. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -0
  128. package/dist/lib/components/sidebar/conversation-sidebar.component.js +81 -0
  129. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -0
  130. package/dist/lib/components/task/task-form-modal.component.d.ts +42 -0
  131. package/dist/lib/components/task/task-form-modal.component.d.ts.map +1 -0
  132. package/dist/lib/components/task/task-form-modal.component.js +329 -0
  133. package/dist/lib/components/task/task-form-modal.component.js.map +1 -0
  134. package/dist/lib/components/task/task-item.component.d.ts +22 -0
  135. package/dist/lib/components/task/task-item.component.d.ts.map +1 -0
  136. package/dist/lib/components/task/task-item.component.js +234 -0
  137. package/dist/lib/components/task/task-item.component.js.map +1 -0
  138. package/dist/lib/components/task/task-list.component.d.ts +32 -0
  139. package/dist/lib/components/task/task-list.component.d.ts.map +1 -0
  140. package/dist/lib/components/task/task-list.component.js +290 -0
  141. package/dist/lib/components/task/task-list.component.js.map +1 -0
  142. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +27 -0
  143. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -0
  144. package/dist/lib/components/tasks/tasks-dropdown.component.js +254 -0
  145. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -0
  146. package/dist/lib/components/thread/thread-panel.component.d.ts +65 -0
  147. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -0
  148. package/dist/lib/components/thread/thread-panel.component.js +325 -0
  149. package/dist/lib/components/thread/thread-panel.component.js.map +1 -0
  150. package/dist/lib/components/toast/toast.component.d.ts +26 -0
  151. package/dist/lib/components/toast/toast.component.d.ts.map +1 -0
  152. package/dist/lib/components/toast/toast.component.js +108 -0
  153. package/dist/lib/components/toast/toast.component.js.map +1 -0
  154. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +75 -0
  155. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -0
  156. package/dist/lib/components/workspace/conversation-workspace.component.js +299 -0
  157. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -0
  158. package/dist/lib/conversations.module.d.ts +62 -0
  159. package/dist/lib/conversations.module.d.ts.map +1 -0
  160. package/dist/lib/conversations.module.js +248 -0
  161. package/dist/lib/conversations.module.js.map +1 -0
  162. package/dist/lib/directives/search-shortcut.directive.d.ts +17 -0
  163. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -0
  164. package/dist/lib/directives/search-shortcut.directive.js +39 -0
  165. package/dist/lib/directives/search-shortcut.directive.js.map +1 -0
  166. package/dist/lib/models/conversation-state.model.d.ts +72 -0
  167. package/dist/lib/models/conversation-state.model.d.ts.map +1 -0
  168. package/dist/lib/models/conversation-state.model.js +2 -0
  169. package/dist/lib/models/conversation-state.model.js.map +1 -0
  170. package/dist/lib/models/notification.model.d.ts +89 -0
  171. package/dist/lib/models/notification.model.d.ts.map +1 -0
  172. package/dist/lib/models/notification.model.js +11 -0
  173. package/dist/lib/models/notification.model.js.map +1 -0
  174. package/dist/lib/services/active-tasks.service.d.ts +65 -0
  175. package/dist/lib/services/active-tasks.service.d.ts.map +1 -0
  176. package/dist/lib/services/active-tasks.service.js +95 -0
  177. package/dist/lib/services/active-tasks.service.js.map +1 -0
  178. package/dist/lib/services/agent-state.service.d.ts +78 -0
  179. package/dist/lib/services/agent-state.service.d.ts.map +1 -0
  180. package/dist/lib/services/agent-state.service.js +213 -0
  181. package/dist/lib/services/agent-state.service.js.map +1 -0
  182. package/dist/lib/services/artifact-state.service.d.ts +114 -0
  183. package/dist/lib/services/artifact-state.service.d.ts.map +1 -0
  184. package/dist/lib/services/artifact-state.service.js +288 -0
  185. package/dist/lib/services/artifact-state.service.js.map +1 -0
  186. package/dist/lib/services/conversation-agent.service.d.ts +79 -0
  187. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -0
  188. package/dist/lib/services/conversation-agent.service.js +259 -0
  189. package/dist/lib/services/conversation-agent.service.js.map +1 -0
  190. package/dist/lib/services/conversation-state.service.d.ts +122 -0
  191. package/dist/lib/services/conversation-state.service.d.ts.map +1 -0
  192. package/dist/lib/services/conversation-state.service.js +255 -0
  193. package/dist/lib/services/conversation-state.service.js.map +1 -0
  194. package/dist/lib/services/dialog.service.d.ts +54 -0
  195. package/dist/lib/services/dialog.service.d.ts.map +1 -0
  196. package/dist/lib/services/dialog.service.js +157 -0
  197. package/dist/lib/services/dialog.service.js.map +1 -0
  198. package/dist/lib/services/export.service.d.ts +25 -0
  199. package/dist/lib/services/export.service.d.ts.map +1 -0
  200. package/dist/lib/services/export.service.js +237 -0
  201. package/dist/lib/services/export.service.js.map +1 -0
  202. package/dist/lib/services/mention-autocomplete.service.d.ts +59 -0
  203. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -0
  204. package/dist/lib/services/mention-autocomplete.service.js +160 -0
  205. package/dist/lib/services/mention-autocomplete.service.js.map +1 -0
  206. package/dist/lib/services/mention-parser.service.d.ts +46 -0
  207. package/dist/lib/services/mention-parser.service.d.ts.map +1 -0
  208. package/dist/lib/services/mention-parser.service.js +156 -0
  209. package/dist/lib/services/mention-parser.service.js.map +1 -0
  210. package/dist/lib/services/notification.service.d.ts +108 -0
  211. package/dist/lib/services/notification.service.d.ts.map +1 -0
  212. package/dist/lib/services/notification.service.js +431 -0
  213. package/dist/lib/services/notification.service.js.map +1 -0
  214. package/dist/lib/services/search.service.d.ts +144 -0
  215. package/dist/lib/services/search.service.d.ts.map +1 -0
  216. package/dist/lib/services/search.service.js +370 -0
  217. package/dist/lib/services/search.service.js.map +1 -0
  218. package/dist/lib/services/toast.service.d.ts +46 -0
  219. package/dist/lib/services/toast.service.d.ts.map +1 -0
  220. package/dist/lib/services/toast.service.js +76 -0
  221. package/dist/lib/services/toast.service.js.map +1 -0
  222. package/dist/public-api.d.ts +42 -0
  223. package/dist/public-api.d.ts.map +1 -0
  224. package/dist/public-api.js +49 -0
  225. package/dist/public-api.js.map +1 -0
  226. package/package.json +54 -0
@@ -0,0 +1,482 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { RunView, Metadata, LogError } from '@memberjunction/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ const _forTrack0 = ($index, $item) => $item.collection.ID;
6
+ const _c0 = a0 => ({ node: a0 });
7
+ function CollectionTreeComponent_For_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
8
+ const _r5 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "i", 15);
10
+ i0.ɵɵlistener("click", function CollectionTreeComponent_For_8_Conditional_2_Template_i_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const node_r3 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.toggleNode(node_r3, $event)); });
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const node_r3 = i0.ɵɵnextContext().$implicit;
14
+ i0.ɵɵproperty("ngClass", node_r3.expanded ? "fa-chevron-down" : "fa-chevron-right");
15
+ } }
16
+ function CollectionTreeComponent_For_8_Conditional_11_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementContainer(0);
18
+ } }
19
+ function CollectionTreeComponent_For_8_Conditional_11_For_1_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵtemplate(0, CollectionTreeComponent_For_8_Conditional_11_For_1_ng_container_0_Template, 1, 0, "ng-container", 16);
21
+ } if (rf & 2) {
22
+ const child_r6 = ctx.$implicit;
23
+ i0.ɵɵnextContext(3);
24
+ const recursiveTree_r7 = i0.ɵɵreference(10);
25
+ i0.ɵɵproperty("ngTemplateOutlet", recursiveTree_r7)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r6));
26
+ } }
27
+ function CollectionTreeComponent_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵrepeaterCreate(0, CollectionTreeComponent_For_8_Conditional_11_For_1_Template, 1, 4, "ng-container", null, _forTrack0);
29
+ } if (rf & 2) {
30
+ const node_r3 = i0.ɵɵnextContext().$implicit;
31
+ i0.ɵɵrepeater(node_r3.children);
32
+ } }
33
+ function CollectionTreeComponent_For_8_Template(rf, ctx) { if (rf & 1) {
34
+ const _r2 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
36
+ i0.ɵɵlistener("click", function CollectionTreeComponent_For_8_Template_div_click_1_listener() { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSelectCollection(node_r3.collection)); })("dragstart", function CollectionTreeComponent_For_8_Template_div_dragstart_1_listener($event) { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragStart($event, node_r3)); })("dragend", function CollectionTreeComponent_For_8_Template_div_dragend_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragEnd($event)); })("dragover", function CollectionTreeComponent_For_8_Template_div_dragover_1_listener($event) { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragOver($event, node_r3)); })("dragleave", function CollectionTreeComponent_For_8_Template_div_dragleave_1_listener($event) { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragLeave($event, node_r3)); })("drop", function CollectionTreeComponent_For_8_Template_div_drop_1_listener($event) { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDrop($event, node_r3)); });
37
+ i0.ɵɵtemplate(2, CollectionTreeComponent_For_8_Conditional_2_Template, 1, 1, "i", 8);
38
+ i0.ɵɵelement(3, "i", 9);
39
+ i0.ɵɵelementStart(4, "span", 10);
40
+ i0.ɵɵtext(5);
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵelementStart(6, "div", 11);
43
+ i0.ɵɵlistener("click", function CollectionTreeComponent_For_8_Template_div_click_6_listener($event) { i0.ɵɵrestoreView(_r2); return i0.ɵɵresetView($event.stopPropagation()); });
44
+ i0.ɵɵelementStart(7, "button", 12);
45
+ i0.ɵɵlistener("click", function CollectionTreeComponent_For_8_Template_button_click_7_listener() { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCreateCollection(node_r3.collection.ID)); });
46
+ i0.ɵɵelement(8, "i", 4);
47
+ i0.ɵɵelementEnd();
48
+ i0.ɵɵelementStart(9, "button", 13);
49
+ i0.ɵɵlistener("click", function CollectionTreeComponent_For_8_Template_button_click_9_listener() { const node_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDeleteCollection(node_r3.collection)); });
50
+ i0.ɵɵelement(10, "i", 14);
51
+ i0.ɵɵelementEnd()()();
52
+ i0.ɵɵtemplate(11, CollectionTreeComponent_For_8_Conditional_11_Template, 2, 0);
53
+ i0.ɵɵelementEnd();
54
+ } if (rf & 2) {
55
+ const node_r3 = ctx.$implicit;
56
+ const ctx_r3 = i0.ɵɵnextContext();
57
+ i0.ɵɵadvance();
58
+ i0.ɵɵstyleProp("padding-left", node_r3.level * 20, "px");
59
+ i0.ɵɵclassProp("selected", node_r3.collection.ID === ctx_r3.selectedCollectionId)("drag-over", ctx_r3.dragOverNodeId === node_r3.collection.ID)("dragging", (ctx_r3.draggedNode == null ? null : ctx_r3.draggedNode.collection == null ? null : ctx_r3.draggedNode.collection.ID) === node_r3.collection.ID);
60
+ i0.ɵɵproperty("draggable", true);
61
+ i0.ɵɵadvance();
62
+ i0.ɵɵconditional(node_r3.children.length > 0 ? 2 : -1);
63
+ i0.ɵɵadvance();
64
+ i0.ɵɵstyleProp("color", node_r3.collection.Color || "#0076B6");
65
+ i0.ɵɵadvance(2);
66
+ i0.ɵɵtextInterpolate(node_r3.collection.Name);
67
+ i0.ɵɵadvance(6);
68
+ i0.ɵɵconditional(node_r3.expanded ? 11 : -1);
69
+ } }
70
+ function CollectionTreeComponent_ng_template_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
71
+ const _r10 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "i", 15);
73
+ i0.ɵɵlistener("click", function CollectionTreeComponent_ng_template_9_Conditional_2_Template_i_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const node_r9 = i0.ɵɵnextContext().node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.toggleNode(node_r9, $event)); });
74
+ i0.ɵɵelementEnd();
75
+ } if (rf & 2) {
76
+ const node_r9 = i0.ɵɵnextContext().node;
77
+ i0.ɵɵproperty("ngClass", node_r9.expanded ? "fa-chevron-down" : "fa-chevron-right");
78
+ } }
79
+ function CollectionTreeComponent_ng_template_9_Conditional_11_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementContainer(0);
81
+ } }
82
+ function CollectionTreeComponent_ng_template_9_Conditional_11_For_1_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵtemplate(0, CollectionTreeComponent_ng_template_9_Conditional_11_For_1_ng_container_0_Template, 1, 0, "ng-container", 16);
84
+ } if (rf & 2) {
85
+ const child_r11 = ctx.$implicit;
86
+ i0.ɵɵnextContext(3);
87
+ const recursiveTree_r7 = i0.ɵɵreference(10);
88
+ i0.ɵɵproperty("ngTemplateOutlet", recursiveTree_r7)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r11));
89
+ } }
90
+ function CollectionTreeComponent_ng_template_9_Conditional_11_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵrepeaterCreate(0, CollectionTreeComponent_ng_template_9_Conditional_11_For_1_Template, 1, 4, "ng-container", null, _forTrack0);
92
+ } if (rf & 2) {
93
+ const node_r9 = i0.ɵɵnextContext().node;
94
+ i0.ɵɵrepeater(node_r9.children);
95
+ } }
96
+ function CollectionTreeComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
97
+ const _r8 = i0.ɵɵgetCurrentView();
98
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
99
+ i0.ɵɵlistener("click", function CollectionTreeComponent_ng_template_9_Template_div_click_1_listener() { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSelectCollection(node_r9.collection)); })("dragstart", function CollectionTreeComponent_ng_template_9_Template_div_dragstart_1_listener($event) { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragStart($event, node_r9)); })("dragend", function CollectionTreeComponent_ng_template_9_Template_div_dragend_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragEnd($event)); })("dragover", function CollectionTreeComponent_ng_template_9_Template_div_dragover_1_listener($event) { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragOver($event, node_r9)); })("dragleave", function CollectionTreeComponent_ng_template_9_Template_div_dragleave_1_listener($event) { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDragLeave($event, node_r9)); })("drop", function CollectionTreeComponent_ng_template_9_Template_div_drop_1_listener($event) { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDrop($event, node_r9)); });
100
+ i0.ɵɵtemplate(2, CollectionTreeComponent_ng_template_9_Conditional_2_Template, 1, 1, "i", 8);
101
+ i0.ɵɵelement(3, "i", 9);
102
+ i0.ɵɵelementStart(4, "span", 10);
103
+ i0.ɵɵtext(5);
104
+ i0.ɵɵelementEnd();
105
+ i0.ɵɵelementStart(6, "div", 11);
106
+ i0.ɵɵlistener("click", function CollectionTreeComponent_ng_template_9_Template_div_click_6_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
107
+ i0.ɵɵelementStart(7, "button", 12);
108
+ i0.ɵɵlistener("click", function CollectionTreeComponent_ng_template_9_Template_button_click_7_listener() { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCreateCollection(node_r9.collection.ID)); });
109
+ i0.ɵɵelement(8, "i", 4);
110
+ i0.ɵɵelementEnd();
111
+ i0.ɵɵelementStart(9, "button", 13);
112
+ i0.ɵɵlistener("click", function CollectionTreeComponent_ng_template_9_Template_button_click_9_listener() { const node_r9 = i0.ɵɵrestoreView(_r8).node; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDeleteCollection(node_r9.collection)); });
113
+ i0.ɵɵelement(10, "i", 14);
114
+ i0.ɵɵelementEnd()()();
115
+ i0.ɵɵtemplate(11, CollectionTreeComponent_ng_template_9_Conditional_11_Template, 2, 0);
116
+ i0.ɵɵelementEnd();
117
+ } if (rf & 2) {
118
+ const node_r9 = ctx.node;
119
+ const ctx_r3 = i0.ɵɵnextContext();
120
+ i0.ɵɵadvance();
121
+ i0.ɵɵstyleProp("padding-left", node_r9.level * 20, "px");
122
+ i0.ɵɵclassProp("selected", node_r9.collection.ID === ctx_r3.selectedCollectionId)("drag-over", ctx_r3.dragOverNodeId === node_r9.collection.ID)("dragging", (ctx_r3.draggedNode == null ? null : ctx_r3.draggedNode.collection == null ? null : ctx_r3.draggedNode.collection.ID) === node_r9.collection.ID);
123
+ i0.ɵɵproperty("draggable", true);
124
+ i0.ɵɵadvance();
125
+ i0.ɵɵconditional(node_r9.children.length > 0 ? 2 : -1);
126
+ i0.ɵɵadvance();
127
+ i0.ɵɵstyleProp("color", node_r9.collection.Color || "#0076B6");
128
+ i0.ɵɵadvance(2);
129
+ i0.ɵɵtextInterpolate(node_r9.collection.Name);
130
+ i0.ɵɵadvance(6);
131
+ i0.ɵɵconditional(node_r9.expanded ? 11 : -1);
132
+ } }
133
+ export class CollectionTreeComponent {
134
+ environmentId;
135
+ currentUser;
136
+ selectedCollectionId = null;
137
+ collectionSelected = new EventEmitter();
138
+ collectionCreated = new EventEmitter();
139
+ collectionDeleted = new EventEmitter();
140
+ collections = [];
141
+ treeNodes = [];
142
+ draggedNode = null;
143
+ dragOverNodeId = null;
144
+ ngOnInit() {
145
+ this.loadCollections();
146
+ }
147
+ async loadCollections() {
148
+ try {
149
+ const rv = new RunView();
150
+ const result = await rv.RunView({
151
+ EntityName: 'MJ: Collections',
152
+ ExtraFilter: `EnvironmentID='${this.environmentId}'`,
153
+ OrderBy: 'Sequence ASC, Name ASC',
154
+ ResultType: 'entity_object'
155
+ }, this.currentUser);
156
+ if (result.Success) {
157
+ this.collections = result.Results || [];
158
+ this.buildTree();
159
+ }
160
+ }
161
+ catch (error) {
162
+ console.error('Error loading collections:', error);
163
+ }
164
+ }
165
+ buildTree() {
166
+ const rootCollections = this.collections.filter(c => !c.ParentID);
167
+ this.treeNodes = rootCollections.map(c => this.buildNode(c, 0));
168
+ }
169
+ buildNode(collection, level) {
170
+ const children = this.collections.filter(c => c.ParentID === collection.ID);
171
+ return {
172
+ collection,
173
+ children: children.map(c => this.buildNode(c, level + 1)),
174
+ expanded: level === 0,
175
+ level
176
+ };
177
+ }
178
+ toggleNode(node, event) {
179
+ event.stopPropagation();
180
+ node.expanded = !node.expanded;
181
+ }
182
+ onSelectCollection(collection) {
183
+ this.selectedCollectionId = collection.ID;
184
+ this.collectionSelected.emit(collection);
185
+ }
186
+ async onCreateCollection(parentId) {
187
+ const name = prompt('Enter collection name:');
188
+ if (!name)
189
+ return;
190
+ try {
191
+ const md = new Metadata();
192
+ const collection = await md.GetEntityObject('MJ: Collections', this.currentUser);
193
+ collection.Name = name;
194
+ collection.EnvironmentID = this.environmentId;
195
+ if (parentId)
196
+ collection.ParentID = parentId;
197
+ const saved = await collection.Save();
198
+ if (saved) {
199
+ this.collectionCreated.emit(collection);
200
+ await this.loadCollections();
201
+ }
202
+ }
203
+ catch (error) {
204
+ console.error('Error creating collection:', error);
205
+ alert('Failed to create collection');
206
+ }
207
+ }
208
+ async onDeleteCollection(collection) {
209
+ if (!confirm(`Delete collection "${collection.Name}"?`))
210
+ return;
211
+ try {
212
+ const deleted = await collection.Delete();
213
+ if (deleted) {
214
+ this.collectionDeleted.emit(collection);
215
+ await this.loadCollections();
216
+ }
217
+ }
218
+ catch (error) {
219
+ console.error('Error deleting collection:', error);
220
+ alert('Failed to delete collection');
221
+ }
222
+ }
223
+ onDragStart(event, node) {
224
+ this.draggedNode = node;
225
+ const dragData = {
226
+ collectionId: node.collection.ID,
227
+ parentId: node.collection.ParentID || null
228
+ };
229
+ event.dataTransfer.effectAllowed = 'move';
230
+ event.dataTransfer.setData('application/json', JSON.stringify(dragData));
231
+ // Add visual feedback
232
+ event.target.style.opacity = '0.4';
233
+ }
234
+ onDragEnd(event) {
235
+ // Clean up visual feedback
236
+ event.target.style.opacity = '1';
237
+ this.draggedNode = null;
238
+ this.dragOverNodeId = null;
239
+ }
240
+ onDragOver(event, targetNode) {
241
+ event.preventDefault(); // Required to allow drop
242
+ if (!this.draggedNode || this.draggedNode.collection.ID === targetNode.collection.ID) {
243
+ event.dataTransfer.dropEffect = 'none';
244
+ return;
245
+ }
246
+ // Check if trying to drop into a descendant
247
+ if (this.isDescendant(targetNode, this.draggedNode)) {
248
+ event.dataTransfer.dropEffect = 'none';
249
+ return;
250
+ }
251
+ event.dataTransfer.dropEffect = 'move';
252
+ this.dragOverNodeId = targetNode.collection.ID;
253
+ }
254
+ onDragLeave(event, targetNode) {
255
+ if (this.dragOverNodeId === targetNode.collection.ID) {
256
+ this.dragOverNodeId = null;
257
+ }
258
+ }
259
+ async onDrop(event, targetNode) {
260
+ event.preventDefault();
261
+ event.stopPropagation();
262
+ if (!this.draggedNode) {
263
+ return;
264
+ }
265
+ // Don't allow dropping on itself
266
+ if (this.draggedNode.collection.ID === targetNode.collection.ID) {
267
+ this.dragOverNodeId = null;
268
+ return;
269
+ }
270
+ // Check if trying to drop into a descendant
271
+ if (this.isDescendant(targetNode, this.draggedNode)) {
272
+ alert('Cannot move a collection into its own descendant');
273
+ this.dragOverNodeId = null;
274
+ return;
275
+ }
276
+ try {
277
+ const collection = this.draggedNode.collection;
278
+ const newParentId = targetNode.collection.ID;
279
+ // Update the collection's parent
280
+ collection.ParentID = newParentId;
281
+ const saved = await collection.Save();
282
+ if (saved) {
283
+ // Reload the tree to reflect changes
284
+ await this.loadCollections();
285
+ }
286
+ else {
287
+ alert('Failed to move collection');
288
+ }
289
+ }
290
+ catch (error) {
291
+ LogError(error);
292
+ alert('Error moving collection');
293
+ }
294
+ finally {
295
+ this.dragOverNodeId = null;
296
+ }
297
+ }
298
+ onDragOverRoot(event) {
299
+ event.preventDefault();
300
+ if (!this.draggedNode) {
301
+ event.dataTransfer.dropEffect = 'none';
302
+ return;
303
+ }
304
+ event.dataTransfer.dropEffect = 'move';
305
+ this.dragOverNodeId = 'root';
306
+ }
307
+ async onDropRoot(event) {
308
+ event.preventDefault();
309
+ event.stopPropagation();
310
+ if (!this.draggedNode) {
311
+ return;
312
+ }
313
+ try {
314
+ const collection = this.draggedNode.collection;
315
+ // Move to root level
316
+ collection.ParentID = null;
317
+ const saved = await collection.Save();
318
+ if (saved) {
319
+ await this.loadCollections();
320
+ }
321
+ else {
322
+ alert('Failed to move collection to root');
323
+ }
324
+ }
325
+ catch (error) {
326
+ LogError(error);
327
+ alert('Error moving collection to root');
328
+ }
329
+ finally {
330
+ this.dragOverNodeId = null;
331
+ }
332
+ }
333
+ isDescendant(potentialDescendant, ancestor) {
334
+ if (potentialDescendant.collection.ParentID === ancestor.collection.ID) {
335
+ return true;
336
+ }
337
+ for (const child of ancestor.children) {
338
+ if (this.isDescendant(potentialDescendant, child)) {
339
+ return true;
340
+ }
341
+ }
342
+ return false;
343
+ }
344
+ static ɵfac = function CollectionTreeComponent_Factory(t) { return new (t || CollectionTreeComponent)(); };
345
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionTreeComponent, selectors: [["mj-collection-tree"]], inputs: { environmentId: "environmentId", currentUser: "currentUser", selectedCollectionId: "selectedCollectionId" }, outputs: { collectionSelected: "collectionSelected", collectionCreated: "collectionCreated", collectionDeleted: "collectionDeleted" }, decls: 11, vars: 2, consts: [["recursiveTree", ""], [1, "collection-tree"], [1, "tree-header"], ["title", "New Collection", 1, "btn-new", 3, "click"], [1, "fas", "fa-plus"], [1, "tree-content", 3, "dragover", "drop"], [1, "tree-node-wrapper"], [1, "tree-node", 3, "click", "dragstart", "dragend", "dragover", "dragleave", "drop", "draggable"], [1, "fas", "toggle-icon", 3, "ngClass"], [1, "fas", "fa-folder", "collection-icon"], [1, "collection-name"], [1, "node-actions", 3, "click"], ["title", "Add sub-collection", 1, "node-action-btn", 3, "click"], ["title", "Delete", 1, "node-action-btn", 3, "click"], [1, "fas", "fa-trash"], [1, "fas", "toggle-icon", 3, "click", "ngClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function CollectionTreeComponent_Template(rf, ctx) { if (rf & 1) {
346
+ const _r1 = i0.ɵɵgetCurrentView();
347
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h3");
348
+ i0.ɵɵtext(3, "Collections");
349
+ i0.ɵɵelementEnd();
350
+ i0.ɵɵelementStart(4, "button", 3);
351
+ i0.ɵɵlistener("click", function CollectionTreeComponent_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onCreateCollection(null)); });
352
+ i0.ɵɵelement(5, "i", 4);
353
+ i0.ɵɵelementEnd()();
354
+ i0.ɵɵelementStart(6, "div", 5);
355
+ i0.ɵɵlistener("dragover", function CollectionTreeComponent_Template_div_dragover_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDragOverRoot($event)); })("drop", function CollectionTreeComponent_Template_div_drop_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropRoot($event)); });
356
+ i0.ɵɵrepeaterCreate(7, CollectionTreeComponent_For_8_Template, 12, 14, "div", 6, _forTrack0);
357
+ i0.ɵɵelementEnd()();
358
+ i0.ɵɵtemplate(9, CollectionTreeComponent_ng_template_9_Template, 12, 14, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
359
+ } if (rf & 2) {
360
+ i0.ɵɵadvance(6);
361
+ i0.ɵɵclassProp("drag-over-root", ctx.dragOverNodeId === "root");
362
+ i0.ɵɵadvance();
363
+ i0.ɵɵrepeater(ctx.treeNodes);
364
+ } }, dependencies: [i1.NgClass, i1.NgTemplateOutlet], styles: [".collection-tree[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n .tree-header[_ngcontent-%COMP%] { padding: 16px; border-bottom: 1px solid #D9D9D9; display: flex; justify-content: space-between; align-items: center; }\n .tree-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] { margin: 0; font-size: 16px; }\n .btn-new[_ngcontent-%COMP%] { padding: 6px 10px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; }\n .btn-new[_ngcontent-%COMP%]:hover { background: #005A8C; }\n .tree-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; position: relative; }\n .tree-content.drag-over-root[_ngcontent-%COMP%] { background: rgba(0, 118, 182, 0.1); }\n .tree-node[_ngcontent-%COMP%] {\n padding: 8px 12px;\n cursor: move;\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n }\n .tree-node[_ngcontent-%COMP%]:hover { background: #F4F4F4; }\n .tree-node.selected[_ngcontent-%COMP%] { background: #AAE7FD; }\n .tree-node.dragging[_ngcontent-%COMP%] {\n opacity: 0.4;\n cursor: grabbing;\n }\n .tree-node.drag-over[_ngcontent-%COMP%] {\n background: rgba(0, 118, 182, 0.1);\n border: 2px dashed #0076B6;\n border-radius: 4px;\n }\n .toggle-icon[_ngcontent-%COMP%] { font-size: 10px; color: #AAA; cursor: pointer; width: 12px; }\n .collection-icon[_ngcontent-%COMP%] { font-size: 14px; }\n .collection-name[_ngcontent-%COMP%] { flex: 1; font-size: 14px; user-select: none; }\n .node-actions[_ngcontent-%COMP%] { display: none; gap: 4px; }\n .tree-node[_ngcontent-%COMP%]:hover .node-actions[_ngcontent-%COMP%] { display: flex; }\n .node-action-btn[_ngcontent-%COMP%] { padding: 4px 6px; background: transparent; border: none; cursor: pointer; border-radius: 3px; color: #666; }\n .node-action-btn[_ngcontent-%COMP%]:hover { background: rgba(0,0,0,0.1); }"] });
365
+ }
366
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionTreeComponent, [{
367
+ type: Component,
368
+ args: [{ selector: 'mj-collection-tree', template: `
369
+ <div class="collection-tree">
370
+ <div class="tree-header">
371
+ <h3>Collections</h3>
372
+ <button class="btn-new" (click)="onCreateCollection(null)" title="New Collection">
373
+ <i class="fas fa-plus"></i>
374
+ </button>
375
+ </div>
376
+
377
+ <div
378
+ class="tree-content"
379
+ [class.drag-over-root]="dragOverNodeId === 'root'"
380
+ (dragover)="onDragOverRoot($event)"
381
+ (drop)="onDropRoot($event)">
382
+ @for (node of treeNodes; track node.collection.ID) {
383
+ <div class="tree-node-wrapper">
384
+ <div
385
+ class="tree-node"
386
+ [class.selected]="node.collection.ID === selectedCollectionId"
387
+ [class.drag-over]="dragOverNodeId === node.collection.ID"
388
+ [class.dragging]="draggedNode?.collection?.ID === node.collection.ID"
389
+ [style.padding-left.px]="node.level * 20"
390
+ [draggable]="true"
391
+ (click)="onSelectCollection(node.collection)"
392
+ (dragstart)="onDragStart($event, node)"
393
+ (dragend)="onDragEnd($event)"
394
+ (dragover)="onDragOver($event, node)"
395
+ (dragleave)="onDragLeave($event, node)"
396
+ (drop)="onDrop($event, node)">
397
+ @if (node.children.length > 0) {
398
+ <i
399
+ class="fas toggle-icon"
400
+ [ngClass]="node.expanded ? 'fa-chevron-down' : 'fa-chevron-right'"
401
+ (click)="toggleNode(node, $event)">
402
+ </i>
403
+ }
404
+ <i class="fas fa-folder collection-icon" [style.color]="node.collection.Color || '#0076B6'"></i>
405
+ <span class="collection-name">{{ node.collection.Name }}</span>
406
+ <div class="node-actions" (click)="$event.stopPropagation()">
407
+ <button class="node-action-btn" (click)="onCreateCollection(node.collection.ID)" title="Add sub-collection">
408
+ <i class="fas fa-plus"></i>
409
+ </button>
410
+ <button class="node-action-btn" (click)="onDeleteCollection(node.collection)" title="Delete">
411
+ <i class="fas fa-trash"></i>
412
+ </button>
413
+ </div>
414
+ </div>
415
+
416
+ @if (node.expanded) {
417
+ @for (child of node.children; track child.collection.ID) {
418
+ <ng-container *ngTemplateOutlet="recursiveTree; context: { node: child }"></ng-container>
419
+ }
420
+ }
421
+ </div>
422
+ }
423
+ </div>
424
+ </div>
425
+
426
+ <ng-template #recursiveTree let-node="node">
427
+ <div class="tree-node-wrapper">
428
+ <div
429
+ class="tree-node"
430
+ [class.selected]="node.collection.ID === selectedCollectionId"
431
+ [class.drag-over]="dragOverNodeId === node.collection.ID"
432
+ [class.dragging]="draggedNode?.collection?.ID === node.collection.ID"
433
+ [style.padding-left.px]="node.level * 20"
434
+ [draggable]="true"
435
+ (click)="onSelectCollection(node.collection)"
436
+ (dragstart)="onDragStart($event, node)"
437
+ (dragend)="onDragEnd($event)"
438
+ (dragover)="onDragOver($event, node)"
439
+ (dragleave)="onDragLeave($event, node)"
440
+ (drop)="onDrop($event, node)">
441
+ @if (node.children.length > 0) {
442
+ <i
443
+ class="fas toggle-icon"
444
+ [ngClass]="node.expanded ? 'fa-chevron-down' : 'fa-chevron-right'"
445
+ (click)="toggleNode(node, $event)">
446
+ </i>
447
+ }
448
+ <i class="fas fa-folder collection-icon" [style.color]="node.collection.Color || '#0076B6'"></i>
449
+ <span class="collection-name">{{ node.collection.Name }}</span>
450
+ <div class="node-actions" (click)="$event.stopPropagation()">
451
+ <button class="node-action-btn" (click)="onCreateCollection(node.collection.ID)" title="Add sub-collection">
452
+ <i class="fas fa-plus"></i>
453
+ </button>
454
+ <button class="node-action-btn" (click)="onDeleteCollection(node.collection)" title="Delete">
455
+ <i class="fas fa-trash"></i>
456
+ </button>
457
+ </div>
458
+ </div>
459
+
460
+ @if (node.expanded) {
461
+ @for (child of node.children; track child.collection.ID) {
462
+ <ng-container *ngTemplateOutlet="recursiveTree; context: { node: child }"></ng-container>
463
+ }
464
+ }
465
+ </div>
466
+ </ng-template>
467
+ `, styles: ["\n .collection-tree { display: flex; flex-direction: column; height: 100%; }\n .tree-header { padding: 16px; border-bottom: 1px solid #D9D9D9; display: flex; justify-content: space-between; align-items: center; }\n .tree-header h3 { margin: 0; font-size: 16px; }\n .btn-new { padding: 6px 10px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; }\n .btn-new:hover { background: #005A8C; }\n .tree-content { flex: 1; overflow-y: auto; position: relative; }\n .tree-content.drag-over-root { background: rgba(0, 118, 182, 0.1); }\n .tree-node {\n padding: 8px 12px;\n cursor: move;\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n }\n .tree-node:hover { background: #F4F4F4; }\n .tree-node.selected { background: #AAE7FD; }\n .tree-node.dragging {\n opacity: 0.4;\n cursor: grabbing;\n }\n .tree-node.drag-over {\n background: rgba(0, 118, 182, 0.1);\n border: 2px dashed #0076B6;\n border-radius: 4px;\n }\n .toggle-icon { font-size: 10px; color: #AAA; cursor: pointer; width: 12px; }\n .collection-icon { font-size: 14px; }\n .collection-name { flex: 1; font-size: 14px; user-select: none; }\n .node-actions { display: none; gap: 4px; }\n .tree-node:hover .node-actions { display: flex; }\n .node-action-btn { padding: 4px 6px; background: transparent; border: none; cursor: pointer; border-radius: 3px; color: #666; }\n .node-action-btn:hover { background: rgba(0,0,0,0.1); }\n "] }]
468
+ }], null, { environmentId: [{
469
+ type: Input
470
+ }], currentUser: [{
471
+ type: Input
472
+ }], selectedCollectionId: [{
473
+ type: Input
474
+ }], collectionSelected: [{
475
+ type: Output
476
+ }], collectionCreated: [{
477
+ type: Output
478
+ }], collectionDeleted: [{
479
+ type: Output
480
+ }] }); })();
481
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionTreeComponent, { className: "CollectionTreeComponent", filePath: "src/lib/components/collection/collection-tree.component.ts", lineNumber: 157 }); })();
482
+ //# sourceMappingURL=collection-tree.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-tree.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-tree.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { CollectionEntity, ArtifactEntity } from '@memberjunction/core-entities';
3
+ import { UserInfo } from '@memberjunction/core';
4
+ import * as i0 from "@angular/core";
5
+ type ViewMode = 'grid' | 'list';
6
+ type SortBy = 'name' | 'date' | 'type';
7
+ export declare class CollectionViewComponent implements OnInit, OnChanges {
8
+ collection: CollectionEntity;
9
+ currentUser: UserInfo;
10
+ artifacts: ArtifactEntity[];
11
+ viewMode: ViewMode;
12
+ sortBy: SortBy;
13
+ sortOptions: {
14
+ label: string;
15
+ value: string;
16
+ }[];
17
+ ngOnInit(): void;
18
+ ngOnChanges(changes: SimpleChanges): void;
19
+ private loadArtifacts;
20
+ private getOrderBy;
21
+ onSortChange(): void;
22
+ onArtifactSelected(artifact: ArtifactEntity): void;
23
+ onViewArtifact(artifact: ArtifactEntity): void;
24
+ onEditArtifact(artifact: ArtifactEntity): void;
25
+ onRemoveArtifact(artifact: ArtifactEntity): Promise<void>;
26
+ onAddArtifact(): Promise<void>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<CollectionViewComponent, "mj-collection-view", never, { "collection": { "alias": "collection"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, {}, never, never, false, never>;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=collection-view.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA4B,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;;AAEnE,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAChC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,qBAwFa,uBAAwB,YAAW,MAAM,EAAE,SAAS;IACtD,UAAU,EAAG,gBAAgB,CAAC;IAC9B,WAAW,EAAG,QAAQ,CAAC;IAEzB,SAAS,EAAE,cAAc,EAAE,CAAM;IACjC,QAAQ,EAAE,QAAQ,CAAU;IAC5B,MAAM,EAAE,MAAM,CAAU;IAExB,WAAW;;;QAIhB;IAEF,QAAQ;IAIR,WAAW,CAAC,OAAO,EAAE,aAAa;YAMpB,aAAa;IAsB3B,OAAO,CAAC,UAAU;IAYlB,YAAY,IAAI,IAAI;IAIpB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKlD,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAK9C,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKxC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;yCApGzB,uBAAuB;2CAAvB,uBAAuB;CAkInC"}