@memberjunction/ng-conversations 2.112.0 → 2.113.1

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 (205) hide show
  1. package/dist/lib/components/agent/active-agent-indicator.component.d.ts +1 -1
  2. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  3. package/dist/lib/components/agent/active-agent-indicator.component.js +13 -15
  4. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  5. package/dist/lib/components/agent/agent-process-panel.component.d.ts +1 -1
  6. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  7. package/dist/lib/components/agent/agent-process-panel.component.js +14 -18
  8. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  9. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +1 -1
  10. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
  11. package/dist/lib/components/artifact/artifact-share-modal.component.js +11 -11
  12. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  13. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +1 -1
  14. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  15. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +30 -24
  16. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  17. package/dist/lib/components/collection/artifact-create-modal.component.d.ts +1 -1
  18. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  19. package/dist/lib/components/collection/artifact-create-modal.component.js +10 -8
  20. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  21. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +9 -8
  22. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  23. package/dist/lib/components/collection/collection-artifact-card.component.js +51 -35
  24. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  25. package/dist/lib/components/collection/collection-form-modal.component.d.ts +1 -1
  26. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  27. package/dist/lib/components/collection/collection-form-modal.component.js +6 -5
  28. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  29. package/dist/lib/components/collection/collection-share-modal.component.d.ts +1 -1
  30. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
  31. package/dist/lib/components/collection/collection-share-modal.component.js +12 -12
  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 +1 -1
  34. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  35. package/dist/lib/components/collection/collection-tree.component.js +11 -11
  36. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  37. package/dist/lib/components/collection/collection-view.component.d.ts +29 -10
  38. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  39. package/dist/lib/components/collection/collection-view.component.js +128 -62
  40. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  41. package/dist/lib/components/collection/collections-full-view.component.d.ts +19 -7
  42. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  43. package/dist/lib/components/collection/collections-full-view.component.js +99 -69
  44. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  45. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +38 -1
  46. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  47. package/dist/lib/components/conversation/conversation-chat-area.component.js +303 -181
  48. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  49. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +1 -1
  50. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  51. package/dist/lib/components/conversation/conversation-empty-state.component.js +21 -21
  52. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  53. package/dist/lib/components/conversation/conversation-list.component.d.ts +11 -4
  54. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  55. package/dist/lib/components/conversation/conversation-list.component.js +122 -81
  56. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  57. package/dist/lib/components/export/export-modal.component.d.ts +1 -1
  58. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  59. package/dist/lib/components/export/export-modal.component.js +11 -9
  60. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  61. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +25 -0
  62. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -0
  63. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +206 -0
  64. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -0
  65. package/dist/lib/components/library/library-full-view.component.d.ts +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 +6 -5
  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 +1 -1
  70. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  71. package/dist/lib/components/members/members-modal.component.js +8 -8
  72. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  73. package/dist/lib/components/message/conversation-message-rating.component.d.ts +47 -0
  74. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -0
  75. package/dist/lib/components/message/conversation-message-rating.component.js +224 -0
  76. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -0
  77. package/dist/lib/components/message/message-input-box.component.d.ts +1 -1
  78. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  79. package/dist/lib/components/message/message-input-box.component.js +4 -14
  80. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  81. package/dist/lib/components/message/message-input.component.d.ts +18 -3
  82. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  83. package/dist/lib/components/message/message-input.component.js +288 -297
  84. package/dist/lib/components/message/message-input.component.js.map +1 -1
  85. package/dist/lib/components/message/message-item.component.d.ts +32 -2
  86. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  87. package/dist/lib/components/message/message-item.component.js +253 -129
  88. package/dist/lib/components/message/message-item.component.js.map +1 -1
  89. package/dist/lib/components/message/message-list.component.d.ts +4 -2
  90. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  91. package/dist/lib/components/message/message-list.component.js +35 -18
  92. package/dist/lib/components/message/message-list.component.js.map +1 -1
  93. package/dist/lib/components/navigation/conversation-navigation.component.d.ts +7 -1
  94. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  95. package/dist/lib/components/navigation/conversation-navigation.component.js +24 -14
  96. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  97. package/dist/lib/components/project/project-form-modal.component.d.ts +1 -1
  98. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  99. package/dist/lib/components/project/project-form-modal.component.js +7 -7
  100. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  101. package/dist/lib/components/project/project-selector.component.d.ts +1 -1
  102. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  103. package/dist/lib/components/project/project-selector.component.js +10 -10
  104. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  105. package/dist/lib/components/search/search-panel.component.d.ts +1 -1
  106. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  107. package/dist/lib/components/search/search-panel.component.js +16 -8
  108. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  109. package/dist/lib/components/share/share-modal.component.d.ts +1 -1
  110. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  111. package/dist/lib/components/share/share-modal.component.js +12 -12
  112. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  113. package/dist/lib/components/shared/user-picker.component.d.ts +1 -1
  114. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  115. package/dist/lib/components/shared/user-picker.component.js +7 -7
  116. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  117. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +1 -1
  118. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  119. package/dist/lib/components/sidebar/conversation-sidebar.component.js +1 -1
  120. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  121. package/dist/lib/components/task/tasks-full-view.component.d.ts +1 -1
  122. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  123. package/dist/lib/components/task/tasks-full-view.component.js +20 -18
  124. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  125. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +18 -29
  126. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  127. package/dist/lib/components/tasks/tasks-dropdown.component.js +178 -218
  128. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  129. package/dist/lib/components/thread/thread-panel.component.d.ts +1 -1
  130. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  131. package/dist/lib/components/thread/thread-panel.component.js +2 -2
  132. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  133. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +15 -9
  134. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  135. package/dist/lib/components/workspace/conversation-workspace.component.js +126 -79
  136. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  137. package/dist/lib/conversations.module.d.ts +54 -52
  138. package/dist/lib/conversations.module.d.ts.map +1 -1
  139. package/dist/lib/conversations.module.js +11 -3
  140. package/dist/lib/conversations.module.js.map +1 -1
  141. package/dist/lib/models/conversation-complete-query.model.d.ts +31 -22
  142. package/dist/lib/models/conversation-complete-query.model.d.ts.map +1 -1
  143. package/dist/lib/models/conversation-complete-query.model.js +5 -2
  144. package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
  145. package/dist/lib/models/lazy-artifact-info.d.ts +4 -1
  146. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  147. package/dist/lib/models/lazy-artifact-info.js +12 -4
  148. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  149. package/dist/lib/services/active-tasks.service.d.ts +18 -0
  150. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  151. package/dist/lib/services/active-tasks.service.js +53 -3
  152. package/dist/lib/services/active-tasks.service.js.map +1 -1
  153. package/dist/lib/services/agent-state.service.d.ts +1 -1
  154. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  155. package/dist/lib/services/agent-state.service.js +11 -11
  156. package/dist/lib/services/agent-state.service.js.map +1 -1
  157. package/dist/lib/services/artifact-permission.service.d.ts +1 -1
  158. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  159. package/dist/lib/services/artifact-permission.service.js +15 -13
  160. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  161. package/dist/lib/services/artifact-state.service.d.ts +23 -6
  162. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  163. package/dist/lib/services/artifact-state.service.js +129 -38
  164. package/dist/lib/services/artifact-state.service.js.map +1 -1
  165. package/dist/lib/services/artifact-use-tracking.service.d.ts +35 -0
  166. package/dist/lib/services/artifact-use-tracking.service.d.ts.map +1 -0
  167. package/dist/lib/services/artifact-use-tracking.service.js +76 -0
  168. package/dist/lib/services/artifact-use-tracking.service.js.map +1 -0
  169. package/dist/lib/services/collection-permission.service.d.ts +1 -1
  170. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  171. package/dist/lib/services/collection-permission.service.js +13 -13
  172. package/dist/lib/services/collection-permission.service.js.map +1 -1
  173. package/dist/lib/services/conversation-agent.service.d.ts +30 -3
  174. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  175. package/dist/lib/services/conversation-agent.service.js +127 -34
  176. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  177. package/dist/lib/services/conversation-state.service.d.ts +14 -1
  178. package/dist/lib/services/conversation-state.service.d.ts.map +1 -1
  179. package/dist/lib/services/conversation-state.service.js +36 -9
  180. package/dist/lib/services/conversation-state.service.js.map +1 -1
  181. package/dist/lib/services/data-cache.service.d.ts +1 -1
  182. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  183. package/dist/lib/services/data-cache.service.js +13 -13
  184. package/dist/lib/services/data-cache.service.js.map +1 -1
  185. package/dist/lib/services/export.service.d.ts +1 -1
  186. package/dist/lib/services/export.service.d.ts.map +1 -1
  187. package/dist/lib/services/export.service.js +13 -15
  188. package/dist/lib/services/export.service.js.map +1 -1
  189. package/dist/lib/services/mention-autocomplete.service.d.ts +1 -1
  190. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  191. package/dist/lib/services/mention-autocomplete.service.js +5 -5
  192. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  193. package/dist/lib/services/mention-parser.service.d.ts +1 -1
  194. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  195. package/dist/lib/services/mention-parser.service.js +16 -13
  196. package/dist/lib/services/mention-parser.service.js.map +1 -1
  197. package/dist/lib/services/search.service.d.ts +1 -1
  198. package/dist/lib/services/search.service.d.ts.map +1 -1
  199. package/dist/lib/services/search.service.js +32 -26
  200. package/dist/lib/services/search.service.js.map +1 -1
  201. package/dist/public-api.d.ts +3 -0
  202. package/dist/public-api.d.ts.map +1 -1
  203. package/dist/public-api.js +3 -0
  204. package/dist/public-api.js.map +1 -1
  205. package/package.json +14 -13
@@ -1,11 +1,12 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { RunView, Metadata } from '@memberjunction/global';
2
+ import { RunView, Metadata } from '@memberjunction/core';
3
3
  import { MJNotificationService } from '@memberjunction/ng-notifications';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "@progress/kendo-angular-dropdowns";
7
7
  import * as i3 from "@memberjunction/ng-artifacts";
8
8
  import * as i4 from "./collection-artifact-card.component";
9
+ const _forTrack0 = ($index, $item) => $item.version.ID;
9
10
  function CollectionViewComponent_button_11_Template(rf, ctx) { if (rf & 1) {
10
11
  const _r1 = i0.ɵɵgetCurrentView();
11
12
  i0.ɵɵelementStart(0, "button", 14);
@@ -35,44 +36,50 @@ function CollectionViewComponent_div_13_Template(rf, ctx) { if (rf & 1) {
35
36
  i0.ɵɵadvance(4);
36
37
  i0.ɵɵproperty("ngIf", ctx_r1.canEdit);
37
38
  } }
38
- function CollectionViewComponent_mj_collection_artifact_card_14_Template(rf, ctx) { if (rf & 1) {
39
+ function CollectionViewComponent_For_15_Template(rf, ctx) { if (rf & 1) {
39
40
  const _r4 = i0.ɵɵgetCurrentView();
40
41
  i0.ɵɵelementStart(0, "mj-collection-artifact-card", 20);
41
- i0.ɵɵlistener("selected", function CollectionViewComponent_mj_collection_artifact_card_14_Template_mj_collection_artifact_card_selected_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onArtifactSelected($event)); })("viewed", function CollectionViewComponent_mj_collection_artifact_card_14_Template_mj_collection_artifact_card_viewed_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewArtifact($event)); })("edited", function CollectionViewComponent_mj_collection_artifact_card_14_Template_mj_collection_artifact_card_edited_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEditArtifact($event)); })("removed", function CollectionViewComponent_mj_collection_artifact_card_14_Template_mj_collection_artifact_card_removed_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRemoveArtifact($event)); });
42
+ i0.ɵɵlistener("selected", function CollectionViewComponent_For_15_Template_mj_collection_artifact_card_selected_0_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onArtifactSelected(item_r5)); })("viewed", function CollectionViewComponent_For_15_Template_mj_collection_artifact_card_viewed_0_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewArtifact(item_r5)); })("edited", function CollectionViewComponent_For_15_Template_mj_collection_artifact_card_edited_0_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEditArtifact(item_r5)); })("removed", function CollectionViewComponent_For_15_Template_mj_collection_artifact_card_removed_0_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRemoveArtifact(item_r5)); });
42
43
  i0.ɵɵelementEnd();
43
44
  } if (rf & 2) {
44
- const artifact_r5 = ctx.$implicit;
45
- i0.ɵɵproperty("artifact", artifact_r5);
45
+ const item_r5 = ctx.$implicit;
46
+ i0.ɵɵproperty("artifact", item_r5.artifact)("version", item_r5.version);
46
47
  } }
47
- function CollectionViewComponent_div_15_Template(rf, ctx) { if (rf & 1) {
48
+ function CollectionViewComponent_div_16_Template(rf, ctx) { if (rf & 1) {
48
49
  const _r6 = i0.ɵɵgetCurrentView();
49
50
  i0.ɵɵelementStart(0, "div", 21);
50
- i0.ɵɵlistener("click", function CollectionViewComponent_div_15_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCloseArtifactViewer()); });
51
+ i0.ɵɵlistener("click", function CollectionViewComponent_div_16_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCloseArtifactViewer()); });
51
52
  i0.ɵɵelementStart(1, "div", 22);
52
- i0.ɵɵlistener("click", function CollectionViewComponent_div_15_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r6); return i0.ɵɵresetView($event.stopPropagation()); });
53
+ i0.ɵɵlistener("click", function CollectionViewComponent_div_16_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r6); return i0.ɵɵresetView($event.stopPropagation()); });
53
54
  i0.ɵɵelementStart(2, "mj-artifact-viewer-panel", 23);
54
- i0.ɵɵlistener("closed", function CollectionViewComponent_div_15_Template_mj_artifact_viewer_panel_closed_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCloseArtifactViewer()); });
55
+ i0.ɵɵlistener("closed", function CollectionViewComponent_div_16_Template_mj_artifact_viewer_panel_closed_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCloseArtifactViewer()); });
55
56
  i0.ɵɵelementEnd()()();
56
57
  } if (rf & 2) {
57
58
  const ctx_r1 = i0.ɵɵnextContext();
58
59
  i0.ɵɵadvance(2);
59
- i0.ɵɵproperty("artifactId", ctx_r1.selectedArtifactId)("currentUser", ctx_r1.currentUser)("environmentId", ctx_r1.environmentId);
60
+ i0.ɵɵproperty("artifactId", ctx_r1.selectedArtifactId)("versionNumber", ctx_r1.selectedVersionNumber)("currentUser", ctx_r1.currentUser)("environmentId", ctx_r1.environmentId)("viewContext", "collection")("contextCollectionId", ctx_r1.collection.ID);
60
61
  } }
61
62
  export class CollectionViewComponent {
63
+ cdr;
62
64
  collection;
63
65
  currentUser;
64
66
  environmentId;
65
67
  canEdit = true;
66
- artifacts = [];
68
+ // Store versions with parent artifact info for display
69
+ artifactVersions = [];
67
70
  viewMode = 'grid';
68
71
  sortBy = 'date';
69
72
  selectedArtifactId = null;
73
+ selectedVersionNumber = undefined;
70
74
  showArtifactViewer = false;
71
75
  sortOptions = [
72
76
  { label: 'Name', value: 'name' },
73
77
  { label: 'Date Modified', value: 'date' },
74
- { label: 'Type', value: 'type' },
78
+ { label: 'Type', value: 'type' }
75
79
  ];
80
+ constructor(cdr) {
81
+ this.cdr = cdr;
82
+ }
76
83
  ngOnInit() {
77
84
  this.loadArtifacts();
78
85
  }
@@ -81,33 +88,69 @@ export class CollectionViewComponent {
81
88
  this.loadArtifacts();
82
89
  }
83
90
  }
91
+ ngOnDestroy() {
92
+ // Close artifact viewer when navigating away from collection
93
+ if (this.showArtifactViewer) {
94
+ this.onCloseArtifactViewer();
95
+ }
96
+ }
84
97
  async loadArtifacts() {
85
98
  if (!this.collection)
86
99
  return;
87
100
  try {
88
101
  const rv = new RunView();
89
- // Load artifacts through the CollectionArtifacts join table
90
- // Filter out System Only artifacts
91
- const result = await rv.RunView({
92
- EntityName: 'MJ: Artifacts',
93
- ExtraFilter: `ID IN (SELECT ArtifactID FROM [__mj].[MJ: Collection Artifacts] WHERE CollectionID='${this.collection.ID}') AND (Visibility IS NULL OR Visibility='Always')`,
94
- OrderBy: this.getOrderBy(),
95
- ResultType: 'entity_object',
102
+ const md = new Metadata();
103
+ // Load ALL VERSIONS in this collection (no DISTINCT - each version is separate)
104
+ const versionResult = await rv.RunView({
105
+ EntityName: 'MJ: Artifact Versions',
106
+ ExtraFilter: `ID IN (
107
+ SELECT ca.ArtifactVersionID
108
+ FROM [__mj].[vwCollectionArtifacts] ca
109
+ WHERE ca.CollectionID='${this.collection.ID}'
110
+ )`,
111
+ OrderBy: this.getVersionOrderBy(),
112
+ ResultType: 'entity_object'
96
113
  }, this.currentUser);
97
- if (result.Success) {
98
- this.artifacts = result.Results || [];
114
+ if (versionResult.Success && versionResult.Results) {
115
+ // Get unique artifact IDs
116
+ const artifactIds = [...new Set(versionResult.Results.map(v => v.ArtifactID))];
117
+ // Load parent artifact info (just for display metadata - no visibility filtering)
118
+ const artifactMap = new Map();
119
+ if (artifactIds.length > 0) {
120
+ const artifactFilter = artifactIds.map(id => `ID='${id}'`).join(' OR ');
121
+ const artifactResult = await rv.RunView({
122
+ EntityName: 'MJ: Artifacts',
123
+ ExtraFilter: artifactFilter,
124
+ ResultType: 'entity_object'
125
+ }, this.currentUser);
126
+ if (artifactResult.Success && artifactResult.Results) {
127
+ artifactResult.Results.forEach(a => artifactMap.set(a.ID, a));
128
+ }
129
+ }
130
+ // Combine version + artifact info
131
+ this.artifactVersions = versionResult.Results
132
+ .map(version => ({
133
+ version,
134
+ artifact: artifactMap.get(version.ArtifactID)
135
+ }))
136
+ .filter(item => item.artifact != null); // Filter out any without parent artifact
137
+ }
138
+ else {
139
+ this.artifactVersions = [];
99
140
  }
100
141
  }
101
142
  catch (error) {
102
143
  console.error('Failed to load collection artifacts:', error);
144
+ this.artifactVersions = [];
103
145
  }
104
146
  }
105
- getOrderBy() {
147
+ getVersionOrderBy() {
106
148
  switch (this.sortBy) {
107
149
  case 'name':
108
- return 'Name ASC';
150
+ return 'Name ASC, VersionNumber DESC';
109
151
  case 'type':
110
- return 'Type ASC, Name ASC';
152
+ // Will sort by parent artifact type (handled in template)
153
+ return 'ArtifactID ASC, VersionNumber DESC';
111
154
  case 'date':
112
155
  default:
113
156
  return '__mj_UpdatedAt DESC';
@@ -116,44 +159,48 @@ export class CollectionViewComponent {
116
159
  onSortChange() {
117
160
  this.loadArtifacts();
118
161
  }
119
- onArtifactSelected(artifact) {
120
- console.log('Artifact selected:', artifact.ID);
162
+ onArtifactSelected(item) {
121
163
  // TODO: Emit event or navigate to artifact detail view
122
164
  }
123
- onViewArtifact(artifact) {
124
- console.log('View artifact:', artifact.ID);
125
- this.selectedArtifactId = artifact.ID;
165
+ onViewArtifact(item) {
166
+ this.selectedArtifactId = item.artifact.ID;
167
+ this.selectedVersionNumber = item.version.VersionNumber;
168
+ // Force change detection to ensure Input bindings propagate before component creation
169
+ this.cdr.detectChanges();
126
170
  this.showArtifactViewer = true;
127
171
  }
128
172
  onCloseArtifactViewer() {
129
173
  this.showArtifactViewer = false;
130
174
  this.selectedArtifactId = null;
175
+ this.selectedVersionNumber = undefined;
131
176
  }
132
- onEditArtifact(artifact) {
133
- console.log('Edit artifact:', artifact.ID);
177
+ onEditArtifact(item) {
134
178
  // TODO: Open artifact editor
135
179
  }
136
- async onRemoveArtifact(artifact) {
137
- if (!confirm(`Remove "${artifact.Name}" from this collection?`))
180
+ async onRemoveArtifact(item) {
181
+ const versionLabel = `"${item.artifact.Name}" v${item.version.VersionNumber}`;
182
+ if (!confirm(`Remove ${versionLabel} from this collection?`))
138
183
  return;
139
184
  try {
140
- // Find and delete the CollectionArtifact join record
185
+ // Delete THIS SPECIFIC VERSION from the collection
141
186
  const rv = new RunView();
142
187
  const result = await rv.RunView({
143
188
  EntityName: 'MJ: Collection Artifacts',
144
- ExtraFilter: `CollectionID='${this.collection.ID}' AND ArtifactID='${artifact.ID}'`,
145
- ResultType: 'entity_object',
189
+ ExtraFilter: `CollectionID='${this.collection.ID}' AND ArtifactVersionID='${item.version.ID}'`,
190
+ ResultType: 'entity_object'
146
191
  }, this.currentUser);
147
192
  if (result.Success && result.Results && result.Results.length > 0) {
148
- const joinRecord = result.Results[0];
149
- await joinRecord.Delete();
193
+ // Delete this version association
194
+ for (const joinRecord of result.Results) {
195
+ await joinRecord.Delete();
196
+ }
150
197
  await this.loadArtifacts();
151
- MJNotificationService.Instance.CreateSimpleNotification(`Removed "${artifact.Name}" from collection`, 'success', 3000);
198
+ MJNotificationService.Instance.CreateSimpleNotification(`Removed ${versionLabel} from collection`, 'success', 3000);
152
199
  }
153
200
  }
154
201
  catch (error) {
155
- console.error('Failed to remove artifact from collection:', error);
156
- MJNotificationService.Instance.CreateSimpleNotification('Failed to remove artifact from collection', 'error');
202
+ console.error('Failed to remove artifact version from collection:', error);
203
+ MJNotificationService.Instance.CreateSimpleNotification('Failed to remove artifact version from collection', 'error');
157
204
  }
158
205
  }
159
206
  async onAddArtifact() {
@@ -171,10 +218,23 @@ export class CollectionViewComponent {
171
218
  // For now, skip setting type - it has a default
172
219
  const saved = await artifact.Save();
173
220
  if (saved) {
174
- // Add to collection via join table
221
+ // Get the latest version of this artifact to add to collection
222
+ const rv = new RunView();
223
+ const versionResult = await rv.RunView({
224
+ EntityName: 'MJ: Artifact Versions',
225
+ ExtraFilter: `ArtifactID='${artifact.ID}'`,
226
+ OrderBy: 'VersionNumber DESC',
227
+ MaxRows: 1,
228
+ ResultType: 'entity_object'
229
+ }, this.currentUser);
230
+ if (!versionResult.Success || !versionResult.Results || versionResult.Results.length === 0) {
231
+ alert('Failed to get artifact version');
232
+ return;
233
+ }
234
+ // Add to collection via join table using version ID
175
235
  const joinRecord = await md.GetEntityObject('MJ: Collection Artifacts', this.currentUser);
176
236
  joinRecord.CollectionID = this.collection.ID;
177
- joinRecord.ArtifactID = artifact.ID;
237
+ joinRecord.ArtifactVersionID = versionResult.Results[0].ID;
178
238
  await joinRecord.Save();
179
239
  await this.loadArtifacts();
180
240
  }
@@ -184,8 +244,8 @@ export class CollectionViewComponent {
184
244
  alert('Failed to add artifact');
185
245
  }
186
246
  }
187
- static ɵfac = function CollectionViewComponent_Factory(t) { return new (t || CollectionViewComponent)(); };
188
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionViewComponent, selectors: [["mj-collection-view"]], inputs: { collection: "collection", currentUser: "currentUser", environmentId: "environmentId", canEdit: "canEdit" }, features: [i0.ɵɵNgOnChangesFeature], decls: 16, vars: 19, consts: [[1, "collection-view"], [1, "view-header"], [1, "header-actions"], [1, "view-mode-toggle"], ["title", "Grid View", 1, "mode-btn", 3, "click"], [1, "fas", "fa-grid"], ["title", "List View", 1, "mode-btn", 3, "click"], [1, "fas", "fa-list"], ["placeholder", "Sort by...", 3, "valueChange", "data", "textField", "valueField", "value"], ["class", "btn-add", "title", "Add Artifact", 3, "click", 4, "ngIf"], [1, "view-content"], ["class", "empty-state", 4, "ngIf"], [3, "artifact", "selected", "viewed", "edited", "removed", 4, "ngFor", "ngForOf"], ["class", "artifact-viewer-overlay", 3, "click", 4, "ngIf"], ["title", "Add Artifact", 1, "btn-add", 3, "click"], [1, "fas", "fa-plus"], [1, "empty-state"], [1, "fas", "fa-folder-open"], ["class", "btn-add-primary", 3, "click", 4, "ngIf"], [1, "btn-add-primary", 3, "click"], [3, "selected", "viewed", "edited", "removed", "artifact"], [1, "artifact-viewer-overlay", 3, "click"], [1, "artifact-viewer-container", 3, "click"], [3, "closed", "artifactId", "currentUser", "environmentId"]], template: function CollectionViewComponent_Template(rf, ctx) { if (rf & 1) {
247
+ static ɵfac = function CollectionViewComponent_Factory(t) { return new (t || CollectionViewComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
248
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionViewComponent, selectors: [["mj-collection-view"]], inputs: { collection: "collection", currentUser: "currentUser", environmentId: "environmentId", canEdit: "canEdit" }, features: [i0.ɵɵNgOnChangesFeature], decls: 17, vars: 18, consts: [[1, "collection-view"], [1, "view-header"], [1, "header-actions"], [1, "view-mode-toggle"], ["title", "Grid View", 1, "mode-btn", 3, "click"], [1, "fas", "fa-grid"], ["title", "List View", 1, "mode-btn", 3, "click"], [1, "fas", "fa-list"], ["placeholder", "Sort by...", 3, "valueChange", "data", "textField", "valueField", "value"], ["class", "btn-add", "title", "Add Artifact", 3, "click", 4, "ngIf"], [1, "view-content"], ["class", "empty-state", 4, "ngIf"], [3, "artifact", "version"], ["class", "artifact-viewer-overlay", 3, "click", 4, "ngIf"], ["title", "Add Artifact", 1, "btn-add", 3, "click"], [1, "fas", "fa-plus"], [1, "empty-state"], [1, "fas", "fa-folder-open"], ["class", "btn-add-primary", 3, "click", 4, "ngIf"], [1, "btn-add-primary", 3, "click"], [3, "selected", "viewed", "edited", "removed", "artifact", "version"], [1, "artifact-viewer-overlay", 3, "click"], [1, "artifact-viewer-container", 3, "click"], [3, "closed", "artifactId", "versionNumber", "currentUser", "environmentId", "viewContext", "contextCollectionId"]], template: function CollectionViewComponent_Template(rf, ctx) { if (rf & 1) {
189
249
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h2");
190
250
  i0.ɵɵtext(3);
191
251
  i0.ɵɵelementEnd();
@@ -204,9 +264,10 @@ export class CollectionViewComponent {
204
264
  i0.ɵɵtemplate(11, CollectionViewComponent_button_11_Template, 3, 0, "button", 9);
205
265
  i0.ɵɵelementEnd()();
206
266
  i0.ɵɵelementStart(12, "div", 10);
207
- i0.ɵɵtemplate(13, CollectionViewComponent_div_13_Template, 5, 1, "div", 11)(14, CollectionViewComponent_mj_collection_artifact_card_14_Template, 1, 1, "mj-collection-artifact-card", 12);
267
+ i0.ɵɵtemplate(13, CollectionViewComponent_div_13_Template, 5, 1, "div", 11);
268
+ i0.ɵɵrepeaterCreate(14, CollectionViewComponent_For_15_Template, 1, 2, "mj-collection-artifact-card", 12, _forTrack0);
208
269
  i0.ɵɵelementEnd()();
209
- i0.ɵɵtemplate(15, CollectionViewComponent_div_15_Template, 3, 3, "div", 13);
270
+ i0.ɵɵtemplate(16, CollectionViewComponent_div_16_Template, 3, 6, "div", 13);
210
271
  } if (rf & 2) {
211
272
  i0.ɵɵadvance(3);
212
273
  i0.ɵɵtextInterpolate(ctx.collection.Name || "Collection");
@@ -223,12 +284,12 @@ export class CollectionViewComponent {
223
284
  i0.ɵɵadvance();
224
285
  i0.ɵɵclassProp("grid-mode", ctx.viewMode === "grid")("list-mode", ctx.viewMode === "list");
225
286
  i0.ɵɵadvance();
226
- i0.ɵɵproperty("ngIf", ctx.artifacts.length === 0);
227
- i0.ɵɵadvance();
228
- i0.ɵɵproperty("ngForOf", ctx.artifacts);
287
+ i0.ɵɵproperty("ngIf", ctx.artifactVersions.length === 0);
229
288
  i0.ɵɵadvance();
289
+ i0.ɵɵrepeater(ctx.artifactVersions);
290
+ i0.ɵɵadvance(2);
230
291
  i0.ɵɵproperty("ngIf", ctx.showArtifactViewer && ctx.selectedArtifactId);
231
- } }, dependencies: [i1.NgForOf, i1.NgIf, i2.DropDownListComponent, i3.ArtifactViewerPanelComponent, i4.CollectionArtifactCardComponent], styles: [".collection-view[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: white; }\n\n .view-header[_ngcontent-%COMP%] { padding: 20px 24px; border-bottom: 1px solid #D9D9D9; display: flex; justify-content: space-between; align-items: center; }\n .view-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { margin: 0; font-size: 20px; flex: 1; }\n\n .header-actions[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 12px; }\n\n .view-mode-toggle[_ngcontent-%COMP%] { display: flex; border: 1px solid #D9D9D9; border-radius: 4px; overflow: hidden; }\n .mode-btn[_ngcontent-%COMP%] { padding: 8px 12px; background: white; border: none; border-right: 1px solid #D9D9D9; cursor: pointer; color: #666; transition: all 150ms ease; }\n .mode-btn[_ngcontent-%COMP%]:last-child { border-right: none; }\n .mode-btn[_ngcontent-%COMP%]:hover { background: #F4F4F4; }\n .mode-btn.active[_ngcontent-%COMP%] { background: #0076B6; color: white; }\n\n .btn-add[_ngcontent-%COMP%] { padding: 8px 16px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 6px; }\n .btn-add[_ngcontent-%COMP%]:hover { background: #005A8C; }\n\n .view-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; padding: 24px; }\n .view-content.grid-mode[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .view-content.list-mode[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 12px; }\n\n .empty-state[_ngcontent-%COMP%] { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 24px; color: #999; }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 64px; margin-bottom: 24px; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0 0 24px 0; font-size: 16px; }\n .btn-add-primary[_ngcontent-%COMP%] { padding: 12px 24px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; }\n .btn-add-primary[_ngcontent-%COMP%]:hover { background: #005A8C; }\n\n .artifact-viewer-overlay[_ngcontent-%COMP%] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 10000; }\n .artifact-viewer-container[_ngcontent-%COMP%] { width: 90%; max-width: 1200px; height: 90vh; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }"] });
292
+ } }, dependencies: [i1.NgIf, i2.DropDownListComponent, i3.ArtifactViewerPanelComponent, i4.CollectionArtifactCardComponent], styles: [".collection-view[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: white; }\n\n .view-header[_ngcontent-%COMP%] { padding: 20px 24px; border-bottom: 1px solid #D9D9D9; display: flex; justify-content: space-between; align-items: center; }\n .view-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { margin: 0; font-size: 20px; flex: 1; }\n\n .header-actions[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 12px; }\n\n .view-mode-toggle[_ngcontent-%COMP%] { display: flex; border: 1px solid #D9D9D9; border-radius: 4px; overflow: hidden; }\n .mode-btn[_ngcontent-%COMP%] { padding: 8px 12px; background: white; border: none; border-right: 1px solid #D9D9D9; cursor: pointer; color: #666; transition: all 150ms ease; }\n .mode-btn[_ngcontent-%COMP%]:last-child { border-right: none; }\n .mode-btn[_ngcontent-%COMP%]:hover { background: #F4F4F4; }\n .mode-btn.active[_ngcontent-%COMP%] { background: #0076B6; color: white; }\n\n .btn-add[_ngcontent-%COMP%] { padding: 8px 16px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 6px; }\n .btn-add[_ngcontent-%COMP%]:hover { background: #005A8C; }\n\n .view-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; padding: 24px; }\n .view-content.grid-mode[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .view-content.list-mode[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 12px; }\n\n .empty-state[_ngcontent-%COMP%] { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 24px; color: #999; }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 64px; margin-bottom: 24px; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0 0 24px 0; font-size: 16px; }\n .btn-add-primary[_ngcontent-%COMP%] { padding: 12px 24px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; }\n .btn-add-primary[_ngcontent-%COMP%]:hover { background: #005A8C; }\n\n .artifact-viewer-overlay[_ngcontent-%COMP%] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 10000; }\n .artifact-viewer-container[_ngcontent-%COMP%] { width: 90%; max-width: 1200px; height: 90vh; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }"] });
232
293
  }
233
294
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionViewComponent, [{
234
295
  type: Component,
@@ -271,7 +332,7 @@ export class CollectionViewComponent {
271
332
  </div>
272
333
 
273
334
  <div class="view-content" [class.grid-mode]="viewMode === 'grid'" [class.list-mode]="viewMode === 'list'">
274
- <div *ngIf="artifacts.length === 0" class="empty-state">
335
+ <div *ngIf="artifactVersions.length === 0" class="empty-state">
275
336
  <i class="fas fa-folder-open"></i>
276
337
  <p>This collection is empty</p>
277
338
  <button class="btn-add-primary" (click)="onAddArtifact()" *ngIf="canEdit">
@@ -279,14 +340,16 @@ export class CollectionViewComponent {
279
340
  </button>
280
341
  </div>
281
342
 
282
- <mj-collection-artifact-card
283
- *ngFor="let artifact of artifacts"
284
- [artifact]="artifact"
285
- (selected)="onArtifactSelected($event)"
286
- (viewed)="onViewArtifact($event)"
287
- (edited)="onEditArtifact($event)"
288
- (removed)="onRemoveArtifact($event)">
289
- </mj-collection-artifact-card>
343
+ @for (item of artifactVersions; track item.version.ID) {
344
+ <mj-collection-artifact-card
345
+ [artifact]="item.artifact"
346
+ [version]="item.version"
347
+ (selected)="onArtifactSelected(item)"
348
+ (viewed)="onViewArtifact(item)"
349
+ (edited)="onEditArtifact(item)"
350
+ (removed)="onRemoveArtifact(item)">
351
+ </mj-collection-artifact-card>
352
+ }
290
353
  </div>
291
354
  </div>
292
355
 
@@ -295,14 +358,17 @@ export class CollectionViewComponent {
295
358
  <div class="artifact-viewer-container" (click)="$event.stopPropagation()">
296
359
  <mj-artifact-viewer-panel
297
360
  [artifactId]="selectedArtifactId"
361
+ [versionNumber]="selectedVersionNumber"
298
362
  [currentUser]="currentUser"
299
363
  [environmentId]="environmentId"
364
+ [viewContext]="'collection'"
365
+ [contextCollectionId]="collection.ID"
300
366
  (closed)="onCloseArtifactViewer()">
301
367
  </mj-artifact-viewer-panel>
302
368
  </div>
303
369
  </div>
304
370
  `, styles: ["\n .collection-view { display: flex; flex-direction: column; height: 100%; background: white; }\n\n .view-header { padding: 20px 24px; border-bottom: 1px solid #D9D9D9; display: flex; justify-content: space-between; align-items: center; }\n .view-header h2 { margin: 0; font-size: 20px; flex: 1; }\n\n .header-actions { display: flex; align-items: center; gap: 12px; }\n\n .view-mode-toggle { display: flex; border: 1px solid #D9D9D9; border-radius: 4px; overflow: hidden; }\n .mode-btn { padding: 8px 12px; background: white; border: none; border-right: 1px solid #D9D9D9; cursor: pointer; color: #666; transition: all 150ms ease; }\n .mode-btn:last-child { border-right: none; }\n .mode-btn:hover { background: #F4F4F4; }\n .mode-btn.active { background: #0076B6; color: white; }\n\n .btn-add { padding: 8px 16px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 6px; }\n .btn-add:hover { background: #005A8C; }\n\n .view-content { flex: 1; overflow-y: auto; padding: 24px; }\n .view-content.grid-mode { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .view-content.list-mode { display: flex; flex-direction: column; gap: 12px; }\n\n .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 24px; color: #999; }\n .empty-state i { font-size: 64px; margin-bottom: 24px; }\n .empty-state p { margin: 0 0 24px 0; font-size: 16px; }\n .btn-add-primary { padding: 12px 24px; background: #0076B6; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; }\n .btn-add-primary:hover { background: #005A8C; }\n\n .artifact-viewer-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 10000; }\n .artifact-viewer-container { width: 90%; max-width: 1200px; height: 90vh; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }\n "] }]
305
- }], null, { collection: [{
371
+ }], () => [{ type: i0.ChangeDetectorRef }], { collection: [{
306
372
  type: Input
307
373
  }], currentUser: [{
308
374
  type: Input
@@ -311,5 +377,5 @@ export class CollectionViewComponent {
311
377
  }], canEdit: [{
312
378
  type: Input
313
379
  }] }); })();
314
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionViewComponent, { className: "CollectionViewComponent", filePath: "src/lib/components/collection/collection-view.component.ts", lineNumber: 114 }); })();
380
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionViewComponent, { className: "CollectionViewComponent", filePath: "src/lib/components/collection/collection-view.component.ts", lineNumber: 117 }); })();
315
381
  //# sourceMappingURL=collection-view.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-view.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-view.component.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
- import { UserInfo } from '@memberjunction/global';
3
- import { CollectionEntity, ArtifactEntity } from '@memberjunction/core-entities';
2
+ import { UserInfo } from '@memberjunction/core';
3
+ import { CollectionEntity, ArtifactEntity, ArtifactVersionEntity } from '@memberjunction/core-entities';
4
4
  import { DialogService } from '../../services/dialog.service';
5
5
  import { ArtifactStateService } from '../../services/artifact-state.service';
6
6
  import { CollectionStateService } from '../../services/collection-state.service';
@@ -19,12 +19,18 @@ export declare class CollectionsFullViewComponent implements OnInit, OnDestroy {
19
19
  currentUser: UserInfo;
20
20
  collectionNavigated: EventEmitter<{
21
21
  collectionId: string | null;
22
- artifactId?: string | null | undefined;
22
+ versionId?: string | null | undefined;
23
23
  }>;
24
24
  collections: CollectionEntity[];
25
- artifacts: ArtifactEntity[];
25
+ artifactVersions: Array<{
26
+ version: ArtifactVersionEntity;
27
+ artifact: ArtifactEntity;
28
+ }>;
26
29
  filteredCollections: CollectionEntity[];
27
- filteredArtifacts: ArtifactEntity[];
30
+ filteredArtifactVersions: Array<{
31
+ version: ArtifactVersionEntity;
32
+ artifact: ArtifactEntity;
33
+ }>;
28
34
  isLoading: boolean;
29
35
  breadcrumbs: Array<{
30
36
  id: string;
@@ -73,8 +79,14 @@ export declare class CollectionsFullViewComponent implements OnInit, OnDestroy {
73
79
  addArtifact(): Promise<void>;
74
80
  onArtifactSaved(artifact: ArtifactEntity): Promise<void>;
75
81
  onArtifactModalCancelled(): void;
76
- removeArtifact(artifact: ArtifactEntity): Promise<void>;
77
- viewArtifact(artifact: ArtifactEntity): void;
82
+ removeArtifact(item: {
83
+ version: ArtifactVersionEntity;
84
+ artifact: ArtifactEntity;
85
+ }): Promise<void>;
86
+ viewArtifact(item: {
87
+ version: ArtifactVersionEntity;
88
+ artifact: ArtifactEntity;
89
+ }): void;
78
90
  private validatePermission;
79
91
  canEdit(collection: CollectionEntity): boolean;
80
92
  canDelete(collection: CollectionEntity): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"collections-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collections-full-view.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collections-full-view.component.ts"],"names":[],"mappings":"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"}