@memberjunction/ng-conversations 3.4.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +287 -155
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js +46 -41
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.js +70 -68
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js +13 -12
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +17 -15
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.js +20 -21
- package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +230 -233
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js +100 -103
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js +41 -33
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +85 -84
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +20 -15
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +13 -11
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +67 -60
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -3
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +619 -549
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +3 -3
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +145 -143
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +44 -44
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +18 -18
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.js +65 -57
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
- package/dist/lib/components/export/export-modal.component.js +126 -134
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js +86 -79
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +99 -87
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +124 -119
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +50 -46
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +39 -38
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.js +20 -21
- package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
- package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -1
- package/dist/lib/components/message/agent-response-form.component.js +79 -77
- package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +40 -39
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/form-question.component.d.ts.map +1 -1
- package/dist/lib/components/message/form-question.component.js +142 -125
- package/dist/lib/components/message/form-question.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +10 -11
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +2 -2
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +10 -11
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +2 -2
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +121 -107
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +2 -2
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +25 -27
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/message/suggested-responses.component.d.ts +1 -1
- package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -1
- package/dist/lib/components/message/suggested-responses.component.js +34 -34
- package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.js +3 -3
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.js +5 -5
- package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.js +9 -6
- package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.js +7 -7
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-selector.component.js +8 -8
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +32 -27
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +129 -131
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +6 -6
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +41 -37
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +4 -5
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.js +144 -118
- package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +176 -149
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.js +7 -5
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
- package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
- package/dist/lib/components/toast/toast.component.js +10 -11
- package/dist/lib/components/toast/toast.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -5
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +54 -49
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.js +3 -2
- package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +6 -0
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +25 -2
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/package.json +38 -38
|
@@ -13,49 +13,48 @@ import * as i8 from "@memberjunction/ng-shared-generic";
|
|
|
13
13
|
import * as i9 from "./collection-share-modal.component";
|
|
14
14
|
import * as i10 from "./collection-form-modal.component";
|
|
15
15
|
import * as i11 from "./artifact-create-modal.component";
|
|
16
|
-
function
|
|
16
|
+
function CollectionsFullViewComponent_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
17
17
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
18
|
-
i0.ɵɵ
|
|
19
|
-
i0.ɵɵ
|
|
20
|
-
i0.ɵɵ
|
|
21
|
-
i0.ɵɵ
|
|
22
|
-
i0.ɵɵtext(3);
|
|
18
|
+
i0.ɵɵelement(0, "i", 27);
|
|
19
|
+
i0.ɵɵelementStart(1, "a", 5);
|
|
20
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_7_For_2_Template_a_click_1_listener() { const crumb_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.navigateTo(crumb_r2)); });
|
|
21
|
+
i0.ɵɵtext(2);
|
|
23
22
|
i0.ɵɵelementEnd();
|
|
24
|
-
i0.ɵɵelementContainerEnd();
|
|
25
23
|
} if (rf & 2) {
|
|
26
24
|
const crumb_r2 = ctx.$implicit;
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
i0.ɵɵ
|
|
25
|
+
const ɵ$index_17_r4 = ctx.$index;
|
|
26
|
+
const ɵ$count_17_r5 = ctx.$count;
|
|
27
|
+
i0.ɵɵadvance();
|
|
28
|
+
i0.ɵɵclassProp("active", ɵ$index_17_r4 === ɵ$count_17_r5 - 1);
|
|
30
29
|
i0.ɵɵadvance();
|
|
31
30
|
i0.ɵɵtextInterpolate1(" ", crumb_r2.name, " ");
|
|
32
31
|
} }
|
|
33
|
-
function
|
|
34
|
-
i0.ɵɵelementStart(0, "span",
|
|
35
|
-
i0.ɵɵ
|
|
32
|
+
function CollectionsFullViewComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵelementStart(0, "span", 6);
|
|
34
|
+
i0.ɵɵrepeaterCreate(1, CollectionsFullViewComponent_Conditional_7_For_2_Template, 3, 3, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
36
35
|
i0.ɵɵelementEnd();
|
|
37
36
|
} if (rf & 2) {
|
|
38
37
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
39
38
|
i0.ɵɵadvance();
|
|
40
|
-
i0.ɵɵ
|
|
39
|
+
i0.ɵɵrepeater(ctx_r2.breadcrumbs);
|
|
41
40
|
} }
|
|
42
|
-
function
|
|
43
|
-
const
|
|
44
|
-
i0.ɵɵelementStart(0, "div",
|
|
45
|
-
i0.ɵɵlistener("click", function
|
|
46
|
-
i0.ɵɵelement(2, "i",
|
|
41
|
+
function CollectionsFullViewComponent_Conditional_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
43
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "button", 31);
|
|
44
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_13_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("name")); });
|
|
45
|
+
i0.ɵɵelement(2, "i", 32);
|
|
47
46
|
i0.ɵɵelementStart(3, "span");
|
|
48
47
|
i0.ɵɵtext(4, "Sort by Name");
|
|
49
48
|
i0.ɵɵelementEnd()();
|
|
50
|
-
i0.ɵɵelementStart(5, "button",
|
|
51
|
-
i0.ɵɵlistener("click", function
|
|
52
|
-
i0.ɵɵelement(6, "i",
|
|
49
|
+
i0.ɵɵelementStart(5, "button", 31);
|
|
50
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_13_Conditional_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("date")); });
|
|
51
|
+
i0.ɵɵelement(6, "i", 33);
|
|
53
52
|
i0.ɵɵelementStart(7, "span");
|
|
54
53
|
i0.ɵɵtext(8, "Sort by Date");
|
|
55
54
|
i0.ɵɵelementEnd()();
|
|
56
|
-
i0.ɵɵelementStart(9, "button",
|
|
57
|
-
i0.ɵɵlistener("click", function
|
|
58
|
-
i0.ɵɵelement(10, "i",
|
|
55
|
+
i0.ɵɵelementStart(9, "button", 31);
|
|
56
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_13_Conditional_3_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("type")); });
|
|
57
|
+
i0.ɵɵelement(10, "i", 34);
|
|
59
58
|
i0.ɵɵelementStart(11, "span");
|
|
60
59
|
i0.ɵɵtext(12, "Sort by Type");
|
|
61
60
|
i0.ɵɵelementEnd()()();
|
|
@@ -68,37 +67,37 @@ function CollectionsFullViewComponent_div_13_div_3_Template(rf, ctx) { if (rf &
|
|
|
68
67
|
i0.ɵɵadvance(4);
|
|
69
68
|
i0.ɵɵclassProp("active", ctx_r2.sortBy === "type");
|
|
70
69
|
} }
|
|
71
|
-
function
|
|
72
|
-
const
|
|
73
|
-
i0.ɵɵelementStart(0, "div",
|
|
74
|
-
i0.ɵɵlistener("click", function
|
|
75
|
-
i0.ɵɵelement(2, "i",
|
|
70
|
+
function CollectionsFullViewComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
72
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "button", 28);
|
|
73
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.showSortDropdown = !ctx_r2.showSortDropdown); });
|
|
74
|
+
i0.ɵɵelement(2, "i", 29);
|
|
76
75
|
i0.ɵɵelementEnd();
|
|
77
|
-
i0.ɵɵ
|
|
76
|
+
i0.ɵɵconditionalCreate(3, CollectionsFullViewComponent_Conditional_13_Conditional_3_Template, 13, 6, "div", 30);
|
|
78
77
|
i0.ɵɵelementEnd();
|
|
79
78
|
} if (rf & 2) {
|
|
80
79
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
81
80
|
i0.ɵɵadvance(3);
|
|
82
|
-
i0.ɵɵ
|
|
81
|
+
i0.ɵɵconditional(ctx_r2.showSortDropdown ? 3 : -1);
|
|
83
82
|
} }
|
|
84
|
-
function
|
|
85
|
-
const
|
|
86
|
-
i0.ɵɵelementStart(0, "button",
|
|
87
|
-
i0.ɵɵlistener("click", function
|
|
88
|
-
i0.ɵɵelement(1, "i",
|
|
83
|
+
function CollectionsFullViewComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
85
|
+
i0.ɵɵelementStart(0, "button", 35);
|
|
86
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.searchQuery = ""; return i0.ɵɵresetView(ctx_r2.onSearchChange("")); });
|
|
87
|
+
i0.ɵɵelement(1, "i", 36);
|
|
89
88
|
i0.ɵɵelementEnd();
|
|
90
89
|
} }
|
|
91
|
-
function
|
|
92
|
-
const
|
|
93
|
-
i0.ɵɵelementStart(0, "div",
|
|
94
|
-
i0.ɵɵlistener("click", function
|
|
95
|
-
i0.ɵɵelement(2, "i",
|
|
90
|
+
function CollectionsFullViewComponent_Conditional_18_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
92
|
+
i0.ɵɵelementStart(0, "div", 40)(1, "button", 31);
|
|
93
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_18_Conditional_6_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.createCollection()); });
|
|
94
|
+
i0.ɵɵelement(2, "i", 41);
|
|
96
95
|
i0.ɵɵelementStart(3, "span");
|
|
97
96
|
i0.ɵɵtext(4, "New Collection");
|
|
98
97
|
i0.ɵɵelementEnd()();
|
|
99
|
-
i0.ɵɵelementStart(5, "button",
|
|
100
|
-
i0.ɵɵlistener("click", function
|
|
101
|
-
i0.ɵɵelement(6, "i",
|
|
98
|
+
i0.ɵɵelementStart(5, "button", 42);
|
|
99
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_18_Conditional_6_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.addArtifact()); });
|
|
100
|
+
i0.ɵɵelement(6, "i", 43);
|
|
102
101
|
i0.ɵɵelementStart(7, "span");
|
|
103
102
|
i0.ɵɵtext(8, "New Artifact");
|
|
104
103
|
i0.ɵɵelementEnd()()();
|
|
@@ -107,36 +106,36 @@ function CollectionsFullViewComponent_div_18_div_6_Template(rf, ctx) { if (rf &
|
|
|
107
106
|
i0.ɵɵadvance(5);
|
|
108
107
|
i0.ɵɵproperty("disabled", !ctx_r2.currentCollectionId);
|
|
109
108
|
} }
|
|
110
|
-
function
|
|
111
|
-
const
|
|
112
|
-
i0.ɵɵelementStart(0, "div",
|
|
113
|
-
i0.ɵɵlistener("click", function
|
|
114
|
-
i0.ɵɵelement(2, "i",
|
|
109
|
+
function CollectionsFullViewComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
110
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
111
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "button", 37);
|
|
112
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_18_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.showNewDropdown = !ctx_r2.showNewDropdown); });
|
|
113
|
+
i0.ɵɵelement(2, "i", 38);
|
|
115
114
|
i0.ɵɵelementStart(3, "span");
|
|
116
115
|
i0.ɵɵtext(4, "New");
|
|
117
116
|
i0.ɵɵelementEnd();
|
|
118
|
-
i0.ɵɵelement(5, "i",
|
|
117
|
+
i0.ɵɵelement(5, "i", 39);
|
|
119
118
|
i0.ɵɵelementEnd();
|
|
120
|
-
i0.ɵɵ
|
|
119
|
+
i0.ɵɵconditionalCreate(6, CollectionsFullViewComponent_Conditional_18_Conditional_6_Template, 9, 1, "div", 40);
|
|
121
120
|
i0.ɵɵelementEnd();
|
|
122
121
|
} if (rf & 2) {
|
|
123
122
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
124
123
|
i0.ɵɵadvance(6);
|
|
125
|
-
i0.ɵɵ
|
|
124
|
+
i0.ɵɵconditional(ctx_r2.showNewDropdown ? 6 : -1);
|
|
126
125
|
} }
|
|
127
|
-
function
|
|
128
|
-
const
|
|
129
|
-
i0.ɵɵelementStart(0, "div",
|
|
126
|
+
function CollectionsFullViewComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
128
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "div", 44)(2, "span", 45);
|
|
130
129
|
i0.ɵɵtext(3);
|
|
131
130
|
i0.ɵɵelementEnd()();
|
|
132
|
-
i0.ɵɵelementStart(4, "div",
|
|
133
|
-
i0.ɵɵlistener("click", function
|
|
134
|
-
i0.ɵɵelement(6, "i",
|
|
131
|
+
i0.ɵɵelementStart(4, "div", 46)(5, "button", 47);
|
|
132
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_21_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSelection()); });
|
|
133
|
+
i0.ɵɵelement(6, "i", 36);
|
|
135
134
|
i0.ɵɵtext(7, " Clear Selection ");
|
|
136
135
|
i0.ɵɵelementEnd();
|
|
137
|
-
i0.ɵɵelementStart(8, "button",
|
|
138
|
-
i0.ɵɵlistener("click", function
|
|
139
|
-
i0.ɵɵelement(9, "i",
|
|
136
|
+
i0.ɵɵelementStart(8, "button", 48);
|
|
137
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_21_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteSelected()); });
|
|
138
|
+
i0.ɵɵelement(9, "i", 49);
|
|
140
139
|
i0.ɵɵtext(10, " Delete Selected ");
|
|
141
140
|
i0.ɵɵelementEnd()()();
|
|
142
141
|
} if (rf & 2) {
|
|
@@ -144,395 +143,400 @@ function CollectionsFullViewComponent_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
144
143
|
i0.ɵɵadvance(3);
|
|
145
144
|
i0.ɵɵtextInterpolate1("", ctx_r2.selectedItems.size, " selected");
|
|
146
145
|
} }
|
|
147
|
-
function
|
|
148
|
-
i0.ɵɵelementStart(0, "div",
|
|
149
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
146
|
+
function CollectionsFullViewComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
148
|
+
i0.ɵɵelement(1, "mj-loading", 50);
|
|
150
149
|
i0.ɵɵelementEnd();
|
|
151
150
|
} }
|
|
152
|
-
function
|
|
153
|
-
i0.ɵɵ
|
|
154
|
-
i0.ɵɵ
|
|
155
|
-
i0.ɵɵtext(2, "No items found");
|
|
151
|
+
function CollectionsFullViewComponent_Conditional_24_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
i0.ɵɵelementStart(0, "h3");
|
|
153
|
+
i0.ɵɵtext(1, "No items found");
|
|
156
154
|
i0.ɵɵelementEnd();
|
|
157
|
-
i0.ɵɵelementStart(
|
|
158
|
-
i0.ɵɵtext(
|
|
155
|
+
i0.ɵɵelementStart(2, "p");
|
|
156
|
+
i0.ɵɵtext(3, "Try adjusting your search");
|
|
159
157
|
i0.ɵɵelementEnd();
|
|
160
|
-
i0.ɵɵelementContainerEnd();
|
|
161
158
|
} }
|
|
162
|
-
function
|
|
163
|
-
const
|
|
164
|
-
i0.ɵɵelementStart(0, "button",
|
|
165
|
-
i0.ɵɵlistener("click", function
|
|
166
|
-
i0.ɵɵelement(1, "i",
|
|
159
|
+
function CollectionsFullViewComponent_Conditional_24_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
161
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
162
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_24_Conditional_3_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createCollection()); });
|
|
163
|
+
i0.ɵɵelement(1, "i", 38);
|
|
167
164
|
i0.ɵɵtext(2, " Create Collection ");
|
|
168
165
|
i0.ɵɵelementEnd();
|
|
169
166
|
} }
|
|
170
|
-
function
|
|
171
|
-
i0.ɵɵ
|
|
172
|
-
i0.ɵɵ
|
|
173
|
-
i0.ɵɵtext(2, "No collections yet");
|
|
167
|
+
function CollectionsFullViewComponent_Conditional_24_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
+
i0.ɵɵelementStart(0, "h3");
|
|
169
|
+
i0.ɵɵtext(1, "No collections yet");
|
|
174
170
|
i0.ɵɵelementEnd();
|
|
175
|
-
i0.ɵɵelementStart(
|
|
176
|
-
i0.ɵɵtext(
|
|
171
|
+
i0.ɵɵelementStart(2, "p");
|
|
172
|
+
i0.ɵɵtext(3, "Create your first collection to get started");
|
|
177
173
|
i0.ɵɵelementEnd();
|
|
178
|
-
i0.ɵɵ
|
|
179
|
-
i0.ɵɵelementContainerEnd();
|
|
174
|
+
i0.ɵɵconditionalCreate(4, CollectionsFullViewComponent_Conditional_24_Conditional_3_Conditional_4_Template, 3, 0, "button", 52);
|
|
180
175
|
} if (rf & 2) {
|
|
181
176
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
182
|
-
i0.ɵɵadvance(
|
|
183
|
-
i0.ɵɵ
|
|
177
|
+
i0.ɵɵadvance(4);
|
|
178
|
+
i0.ɵɵconditional(ctx_r2.canEditCurrent() ? 4 : -1);
|
|
184
179
|
} }
|
|
185
|
-
function
|
|
186
|
-
i0.ɵɵ
|
|
187
|
-
i0.ɵɵ
|
|
188
|
-
i0.ɵɵtext(2, "This collection is empty");
|
|
180
|
+
function CollectionsFullViewComponent_Conditional_24_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
+
i0.ɵɵelementStart(0, "h3");
|
|
182
|
+
i0.ɵɵtext(1, "This collection is empty");
|
|
189
183
|
i0.ɵɵelementEnd();
|
|
190
|
-
i0.ɵɵelementStart(
|
|
191
|
-
i0.ɵɵtext(
|
|
192
|
-
i0.ɵɵelementStart(
|
|
193
|
-
i0.ɵɵtext(
|
|
184
|
+
i0.ɵɵelementStart(2, "p");
|
|
185
|
+
i0.ɵɵtext(3, "Use the ");
|
|
186
|
+
i0.ɵɵelementStart(4, "strong");
|
|
187
|
+
i0.ɵɵtext(5, "New");
|
|
194
188
|
i0.ɵɵelementEnd();
|
|
195
|
-
i0.ɵɵtext(
|
|
189
|
+
i0.ɵɵtext(6, " button above to add collections or artifacts");
|
|
196
190
|
i0.ɵɵelementEnd();
|
|
197
|
-
i0.ɵɵelementContainerEnd();
|
|
198
191
|
} }
|
|
199
|
-
function
|
|
200
|
-
i0.ɵɵelementStart(0, "div",
|
|
201
|
-
i0.ɵɵelement(1, "i",
|
|
202
|
-
i0.ɵɵ
|
|
192
|
+
function CollectionsFullViewComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
193
|
+
i0.ɵɵelementStart(0, "div", 21);
|
|
194
|
+
i0.ɵɵelement(1, "i", 51);
|
|
195
|
+
i0.ɵɵconditionalCreate(2, CollectionsFullViewComponent_Conditional_24_Conditional_2_Template, 4, 0);
|
|
196
|
+
i0.ɵɵconditionalCreate(3, CollectionsFullViewComponent_Conditional_24_Conditional_3_Template, 5, 1);
|
|
197
|
+
i0.ɵɵconditionalCreate(4, CollectionsFullViewComponent_Conditional_24_Conditional_4_Template, 7, 0);
|
|
203
198
|
i0.ɵɵelementEnd();
|
|
204
199
|
} if (rf & 2) {
|
|
205
200
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
206
201
|
i0.ɵɵadvance(2);
|
|
207
|
-
i0.ɵɵ
|
|
202
|
+
i0.ɵɵconditional(ctx_r2.searchQuery ? 2 : -1);
|
|
208
203
|
i0.ɵɵadvance();
|
|
209
|
-
i0.ɵɵ
|
|
204
|
+
i0.ɵɵconditional(!ctx_r2.searchQuery && !ctx_r2.currentCollectionId ? 3 : -1);
|
|
210
205
|
i0.ɵɵadvance();
|
|
211
|
-
i0.ɵɵ
|
|
206
|
+
i0.ɵɵconditional(!ctx_r2.searchQuery && ctx_r2.currentCollectionId ? 4 : -1);
|
|
212
207
|
} }
|
|
213
|
-
function
|
|
214
|
-
const
|
|
215
|
-
i0.ɵɵelementStart(0, "div",
|
|
216
|
-
i0.ɵɵlistener("click", function
|
|
208
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
209
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
210
|
+
i0.ɵɵelementStart(0, "div", 58);
|
|
211
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_1_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r15); const item_r14 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleItemSelection(item_r14, $event)); });
|
|
217
212
|
i0.ɵɵelement(1, "i", 9);
|
|
218
213
|
i0.ɵɵelementEnd();
|
|
219
214
|
} if (rf & 2) {
|
|
220
|
-
const
|
|
215
|
+
const item_r14 = i0.ɵɵnextContext().$implicit;
|
|
221
216
|
i0.ɵɵadvance();
|
|
222
|
-
i0.ɵɵproperty("ngClass",
|
|
217
|
+
i0.ɵɵproperty("ngClass", item_r14.selected ? "fa-check-circle" : "fa-circle");
|
|
223
218
|
} }
|
|
224
|
-
function
|
|
225
|
-
i0.ɵɵelementStart(0, "div",
|
|
226
|
-
i0.ɵɵelement(1, "i",
|
|
219
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
220
|
+
i0.ɵɵelementStart(0, "div", 61);
|
|
221
|
+
i0.ɵɵelement(1, "i", 67);
|
|
227
222
|
i0.ɵɵelementEnd();
|
|
228
223
|
} }
|
|
229
|
-
function
|
|
230
|
-
i0.ɵɵelementStart(0, "div",
|
|
224
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
+
i0.ɵɵelementStart(0, "div", 64);
|
|
231
226
|
i0.ɵɵtext(1);
|
|
232
227
|
i0.ɵɵelementEnd();
|
|
233
228
|
} if (rf & 2) {
|
|
234
|
-
const
|
|
229
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
235
230
|
i0.ɵɵadvance();
|
|
236
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
231
|
+
i0.ɵɵtextInterpolate1(" ", item_r14.description, " ");
|
|
237
232
|
} }
|
|
238
|
-
function
|
|
239
|
-
i0.ɵɵelementStart(0, "div",
|
|
233
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
234
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
240
235
|
i0.ɵɵtext(1);
|
|
241
236
|
i0.ɵɵelementEnd();
|
|
242
237
|
} if (rf & 2) {
|
|
243
|
-
const
|
|
238
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
244
239
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
245
240
|
i0.ɵɵadvance();
|
|
246
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.getItemCountText(
|
|
241
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getItemCountText(item_r14.itemCount), " ");
|
|
247
242
|
} }
|
|
248
|
-
function
|
|
249
|
-
i0.ɵɵelementStart(0, "div",
|
|
250
|
-
i0.ɵɵelement(1, "i",
|
|
243
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
244
|
+
i0.ɵɵelementStart(0, "div", 66);
|
|
245
|
+
i0.ɵɵelement(1, "i", 68);
|
|
251
246
|
i0.ɵɵtext(2);
|
|
252
247
|
i0.ɵɵelementEnd();
|
|
253
248
|
} if (rf & 2) {
|
|
254
|
-
const
|
|
249
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
255
250
|
i0.ɵɵadvance(2);
|
|
256
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
251
|
+
i0.ɵɵtextInterpolate1(" ", item_r14.owner, " ");
|
|
257
252
|
} }
|
|
258
|
-
function
|
|
259
|
-
i0.ɵɵelementStart(0, "div",
|
|
260
|
-
i0.ɵɵelement(2, "i",
|
|
261
|
-
i0.ɵɵ
|
|
253
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
254
|
+
i0.ɵɵelementStart(0, "div", 57)(1, "div", 59);
|
|
255
|
+
i0.ɵɵelement(2, "i", 60);
|
|
256
|
+
i0.ɵɵconditionalCreate(3, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_3_Template, 2, 0, "div", 61);
|
|
262
257
|
i0.ɵɵelementEnd();
|
|
263
|
-
i0.ɵɵelementStart(4, "div",
|
|
258
|
+
i0.ɵɵelementStart(4, "div", 62)(5, "div", 63);
|
|
264
259
|
i0.ɵɵtext(6);
|
|
265
260
|
i0.ɵɵelementEnd();
|
|
266
|
-
i0.ɵɵ
|
|
261
|
+
i0.ɵɵconditionalCreate(7, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_7_Template, 2, 1, "div", 64);
|
|
262
|
+
i0.ɵɵconditionalCreate(8, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_8_Template, 2, 1, "div", 65);
|
|
263
|
+
i0.ɵɵconditionalCreate(9, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Conditional_9_Template, 3, 1, "div", 66);
|
|
267
264
|
i0.ɵɵelementEnd()();
|
|
268
265
|
} if (rf & 2) {
|
|
269
|
-
const
|
|
270
|
-
i0.ɵɵproperty("title",
|
|
266
|
+
const item_r14 = i0.ɵɵnextContext().$implicit;
|
|
267
|
+
i0.ɵɵproperty("title", item_r14.description || item_r14.name);
|
|
271
268
|
i0.ɵɵadvance(3);
|
|
272
|
-
i0.ɵɵ
|
|
269
|
+
i0.ɵɵconditional(item_r14.isShared ? 3 : -1);
|
|
273
270
|
i0.ɵɵadvance(3);
|
|
274
|
-
i0.ɵɵtextInterpolate(
|
|
271
|
+
i0.ɵɵtextInterpolate(item_r14.name);
|
|
275
272
|
i0.ɵɵadvance();
|
|
276
|
-
i0.ɵɵ
|
|
273
|
+
i0.ɵɵconditional(item_r14.description ? 7 : -1);
|
|
277
274
|
i0.ɵɵadvance();
|
|
278
|
-
i0.ɵɵ
|
|
275
|
+
i0.ɵɵconditional(item_r14.itemCount !== undefined ? 8 : -1);
|
|
279
276
|
i0.ɵɵadvance();
|
|
280
|
-
i0.ɵɵ
|
|
277
|
+
i0.ɵɵconditional(item_r14.isShared && item_r14.owner ? 9 : -1);
|
|
281
278
|
} }
|
|
282
|
-
function
|
|
283
|
-
i0.ɵɵelementStart(0, "div",
|
|
279
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
280
|
+
i0.ɵɵelementStart(0, "div", 64);
|
|
284
281
|
i0.ɵɵtext(1);
|
|
285
282
|
i0.ɵɵelementEnd();
|
|
286
283
|
} if (rf & 2) {
|
|
287
|
-
const
|
|
284
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
288
285
|
i0.ɵɵadvance();
|
|
289
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
286
|
+
i0.ɵɵtextInterpolate1(" ", item_r14.description, " ");
|
|
290
287
|
} }
|
|
291
|
-
function
|
|
292
|
-
i0.ɵɵelementStart(0, "span",
|
|
288
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
289
|
+
i0.ɵɵelementStart(0, "span", 70);
|
|
293
290
|
i0.ɵɵtext(1);
|
|
294
291
|
i0.ɵɵelementEnd();
|
|
295
292
|
} if (rf & 2) {
|
|
296
|
-
const
|
|
293
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
297
294
|
i0.ɵɵadvance();
|
|
298
|
-
i0.ɵɵtextInterpolate1(" v",
|
|
295
|
+
i0.ɵɵtextInterpolate1(" v", item_r14.versionNumber, " ");
|
|
299
296
|
} }
|
|
300
|
-
function
|
|
301
|
-
i0.ɵɵelementStart(0, "span",
|
|
297
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
298
|
+
i0.ɵɵelementStart(0, "span", 71);
|
|
302
299
|
i0.ɵɵtext(1);
|
|
303
300
|
i0.ɵɵelementEnd();
|
|
304
301
|
} if (rf & 2) {
|
|
305
|
-
const
|
|
302
|
+
const item_r14 = i0.ɵɵnextContext(2).$implicit;
|
|
306
303
|
i0.ɵɵadvance();
|
|
307
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
304
|
+
i0.ɵɵtextInterpolate1(" ", item_r14.artifactType, " ");
|
|
308
305
|
} }
|
|
309
|
-
function
|
|
310
|
-
i0.ɵɵelementStart(0, "div",
|
|
306
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
307
|
+
i0.ɵɵelementStart(0, "div", 57)(1, "div", 69);
|
|
311
308
|
i0.ɵɵelement(2, "i", 9);
|
|
312
309
|
i0.ɵɵelementEnd();
|
|
313
|
-
i0.ɵɵelementStart(3, "div",
|
|
310
|
+
i0.ɵɵelementStart(3, "div", 62)(4, "div", 63);
|
|
314
311
|
i0.ɵɵtext(5);
|
|
315
312
|
i0.ɵɵelementEnd();
|
|
316
|
-
i0.ɵɵ
|
|
317
|
-
i0.ɵɵelementStart(7, "div",
|
|
318
|
-
i0.ɵɵ
|
|
313
|
+
i0.ɵɵconditionalCreate(6, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_6_Template, 2, 1, "div", 64);
|
|
314
|
+
i0.ɵɵelementStart(7, "div", 65);
|
|
315
|
+
i0.ɵɵconditionalCreate(8, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_8_Template, 2, 1, "span", 70);
|
|
316
|
+
i0.ɵɵconditionalCreate(9, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Conditional_9_Template, 2, 1, "span", 71);
|
|
319
317
|
i0.ɵɵelementEnd()()();
|
|
320
318
|
} if (rf & 2) {
|
|
321
|
-
const
|
|
322
|
-
i0.ɵɵproperty("title",
|
|
319
|
+
const item_r14 = i0.ɵɵnextContext().$implicit;
|
|
320
|
+
i0.ɵɵproperty("title", item_r14.description || item_r14.name);
|
|
323
321
|
i0.ɵɵadvance(2);
|
|
324
|
-
i0.ɵɵproperty("ngClass",
|
|
322
|
+
i0.ɵɵproperty("ngClass", item_r14.icon);
|
|
325
323
|
i0.ɵɵadvance(3);
|
|
326
|
-
i0.ɵɵtextInterpolate(
|
|
324
|
+
i0.ɵɵtextInterpolate(item_r14.name);
|
|
327
325
|
i0.ɵɵadvance();
|
|
328
|
-
i0.ɵɵ
|
|
326
|
+
i0.ɵɵconditional(item_r14.description ? 6 : -1);
|
|
329
327
|
i0.ɵɵadvance(2);
|
|
330
|
-
i0.ɵɵ
|
|
328
|
+
i0.ɵɵconditional(item_r14.versionNumber ? 8 : -1);
|
|
331
329
|
i0.ɵɵadvance();
|
|
332
|
-
i0.ɵɵ
|
|
330
|
+
i0.ɵɵconditional(item_r14.artifactType ? 9 : -1);
|
|
333
331
|
} }
|
|
334
|
-
function
|
|
335
|
-
const
|
|
336
|
-
i0.ɵɵelementStart(0, "div",
|
|
337
|
-
i0.ɵɵlistener("click", function
|
|
338
|
-
i0.ɵɵ
|
|
332
|
+
function CollectionsFullViewComponent_Conditional_25_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
333
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
334
|
+
i0.ɵɵelementStart(0, "div", 55);
|
|
335
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_25_For_2_Template_div_click_0_listener($event) { const item_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemClick(item_r14, $event)); })("dblclick", function CollectionsFullViewComponent_Conditional_25_For_2_Template_div_dblclick_0_listener($event) { const item_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemDoubleClick(item_r14, $event)); })("contextmenu", function CollectionsFullViewComponent_Conditional_25_For_2_Template_div_contextmenu_0_listener($event) { const item_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemContextMenu(item_r14, $event)); });
|
|
336
|
+
i0.ɵɵconditionalCreate(1, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_1_Template, 2, 1, "div", 56);
|
|
337
|
+
i0.ɵɵconditionalCreate(2, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_2_Template, 10, 6, "div", 57);
|
|
338
|
+
i0.ɵɵconditionalCreate(3, CollectionsFullViewComponent_Conditional_25_For_2_Conditional_3_Template, 10, 6, "div", 57);
|
|
339
339
|
i0.ɵɵelementEnd();
|
|
340
340
|
} if (rf & 2) {
|
|
341
|
-
const
|
|
341
|
+
const item_r14 = ctx.$implicit;
|
|
342
342
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
343
|
-
i0.ɵɵclassProp("selected",
|
|
343
|
+
i0.ɵɵclassProp("selected", item_r14.selected)("active", item_r14.type === "artifact" && (item_r14.artifact == null ? null : item_r14.artifact.ID) === ctx_r2.activeArtifactId);
|
|
344
344
|
i0.ɵɵadvance();
|
|
345
|
-
i0.ɵɵ
|
|
345
|
+
i0.ɵɵconditional(ctx_r2.isSelectMode ? 1 : -1);
|
|
346
346
|
i0.ɵɵadvance();
|
|
347
|
-
i0.ɵɵ
|
|
347
|
+
i0.ɵɵconditional(item_r14.type === "folder" ? 2 : -1);
|
|
348
348
|
i0.ɵɵadvance();
|
|
349
|
-
i0.ɵɵ
|
|
349
|
+
i0.ɵɵconditional(item_r14.type === "artifact" ? 3 : -1);
|
|
350
350
|
} }
|
|
351
|
-
function
|
|
352
|
-
i0.ɵɵelementStart(0, "div",
|
|
353
|
-
i0.ɵɵ
|
|
351
|
+
function CollectionsFullViewComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
352
|
+
i0.ɵɵelementStart(0, "div", 53);
|
|
353
|
+
i0.ɵɵrepeaterCreate(1, CollectionsFullViewComponent_Conditional_25_For_2_Template, 4, 7, "div", 54, i0.ɵɵrepeaterTrackByIdentity);
|
|
354
354
|
i0.ɵɵelementEnd();
|
|
355
355
|
} if (rf & 2) {
|
|
356
356
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
357
357
|
i0.ɵɵclassProp("select-mode", ctx_r2.isSelectMode);
|
|
358
358
|
i0.ɵɵadvance();
|
|
359
|
-
i0.ɵɵ
|
|
359
|
+
i0.ɵɵrepeater(ctx_r2.unifiedItems);
|
|
360
360
|
} }
|
|
361
|
-
function
|
|
362
|
-
const
|
|
363
|
-
i0.ɵɵelementStart(0, "th",
|
|
364
|
-
i0.ɵɵlistener("click", function
|
|
361
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
362
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
363
|
+
i0.ɵɵelementStart(0, "th", 74)(1, "i", 80);
|
|
364
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_Conditional_4_Template_i_click_1_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectedItems.size === ctx_r2.unifiedItems.length ? ctx_r2.clearSelection() : ctx_r2.selectAll()); });
|
|
365
365
|
i0.ɵɵelementEnd()();
|
|
366
366
|
} if (rf & 2) {
|
|
367
367
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
368
368
|
i0.ɵɵadvance();
|
|
369
369
|
i0.ɵɵproperty("ngClass", ctx_r2.selectedItems.size === ctx_r2.unifiedItems.length ? "fa-check-square" : "fa-square");
|
|
370
370
|
} }
|
|
371
|
-
function
|
|
372
|
-
i0.ɵɵelement(0, "i",
|
|
371
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
i0.ɵɵelement(0, "i", 29);
|
|
373
373
|
} }
|
|
374
|
-
function
|
|
374
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
375
375
|
i0.ɵɵelement(0, "i", 9);
|
|
376
376
|
} if (rf & 2) {
|
|
377
377
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
378
378
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
379
379
|
} }
|
|
380
|
-
function
|
|
381
|
-
i0.ɵɵelement(0, "i",
|
|
380
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
i0.ɵɵelement(0, "i", 29);
|
|
382
382
|
} }
|
|
383
|
-
function
|
|
383
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
384
384
|
i0.ɵɵelement(0, "i", 9);
|
|
385
385
|
} if (rf & 2) {
|
|
386
386
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
387
387
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
388
388
|
} }
|
|
389
|
-
function
|
|
390
|
-
i0.ɵɵelement(0, "i",
|
|
389
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
390
|
+
i0.ɵɵelement(0, "i", 29);
|
|
391
391
|
} }
|
|
392
|
-
function
|
|
392
|
+
function CollectionsFullViewComponent_Conditional_26_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
393
393
|
i0.ɵɵelement(0, "i", 9);
|
|
394
394
|
} if (rf & 2) {
|
|
395
395
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
396
396
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
397
397
|
} }
|
|
398
|
-
function
|
|
399
|
-
const
|
|
400
|
-
i0.ɵɵelementStart(0, "td",
|
|
401
|
-
i0.ɵɵlistener("click", function
|
|
398
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
399
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
400
|
+
i0.ɵɵelementStart(0, "td", 74)(1, "i", 80);
|
|
401
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_1_Template_i_click_1_listener($event) { i0.ɵɵrestoreView(_r20); const item_r19 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleItemSelection(item_r19, $event)); });
|
|
402
402
|
i0.ɵɵelementEnd()();
|
|
403
403
|
} if (rf & 2) {
|
|
404
|
-
const
|
|
404
|
+
const item_r19 = i0.ɵɵnextContext().$implicit;
|
|
405
405
|
i0.ɵɵadvance();
|
|
406
|
-
i0.ɵɵproperty("ngClass",
|
|
406
|
+
i0.ɵɵproperty("ngClass", item_r19.selected ? "fa-check-circle" : "fa-circle");
|
|
407
407
|
} }
|
|
408
|
-
function
|
|
409
|
-
i0.ɵɵelement(0, "i",
|
|
408
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
409
|
+
i0.ɵɵelement(0, "i", 84);
|
|
410
410
|
} }
|
|
411
|
-
function
|
|
411
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
412
412
|
i0.ɵɵelementStart(0, "span");
|
|
413
413
|
i0.ɵɵtext(1, "Folder");
|
|
414
414
|
i0.ɵɵelementEnd();
|
|
415
415
|
} }
|
|
416
|
-
function
|
|
417
|
-
i0.ɵɵelementStart(0, "span",
|
|
416
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
417
|
+
i0.ɵɵelementStart(0, "span", 71);
|
|
418
418
|
i0.ɵɵtext(1);
|
|
419
419
|
i0.ɵɵelementEnd();
|
|
420
420
|
} if (rf & 2) {
|
|
421
|
-
const
|
|
421
|
+
const item_r19 = i0.ɵɵnextContext().$implicit;
|
|
422
422
|
i0.ɵɵadvance();
|
|
423
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
423
|
+
i0.ɵɵtextInterpolate1(" ", item_r19.artifactType, " ");
|
|
424
424
|
} }
|
|
425
|
-
function
|
|
425
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
426
426
|
i0.ɵɵelementStart(0, "span");
|
|
427
427
|
i0.ɵɵtext(1);
|
|
428
428
|
i0.ɵɵpipe(2, "date");
|
|
429
429
|
i0.ɵɵelementEnd();
|
|
430
430
|
} if (rf & 2) {
|
|
431
|
-
const
|
|
431
|
+
const item_r19 = i0.ɵɵnextContext().$implicit;
|
|
432
432
|
i0.ɵɵadvance();
|
|
433
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1,
|
|
433
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, item_r19.lastModified, "short"), " ");
|
|
434
434
|
} }
|
|
435
|
-
function
|
|
435
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
436
436
|
i0.ɵɵelementStart(0, "span");
|
|
437
437
|
i0.ɵɵtext(1);
|
|
438
438
|
i0.ɵɵelementEnd();
|
|
439
439
|
} if (rf & 2) {
|
|
440
|
-
const
|
|
440
|
+
const item_r19 = i0.ɵɵnextContext().$implicit;
|
|
441
441
|
i0.ɵɵadvance();
|
|
442
|
-
i0.ɵɵtextInterpolate(
|
|
442
|
+
i0.ɵɵtextInterpolate(item_r19.owner);
|
|
443
443
|
} }
|
|
444
|
-
function
|
|
445
|
-
const
|
|
446
|
-
i0.ɵɵelementStart(0, "tr",
|
|
447
|
-
i0.ɵɵlistener("click", function
|
|
448
|
-
i0.ɵɵ
|
|
449
|
-
i0.ɵɵelementStart(2, "td",
|
|
444
|
+
function CollectionsFullViewComponent_Conditional_26_For_24_Template(rf, ctx) { if (rf & 1) {
|
|
445
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
446
|
+
i0.ɵɵelementStart(0, "tr", 81);
|
|
447
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_For_24_Template_tr_click_0_listener($event) { const item_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemClick(item_r19, $event)); })("dblclick", function CollectionsFullViewComponent_Conditional_26_For_24_Template_tr_dblclick_0_listener($event) { const item_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemDoubleClick(item_r19, $event)); })("contextmenu", function CollectionsFullViewComponent_Conditional_26_For_24_Template_tr_contextmenu_0_listener($event) { const item_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemContextMenu(item_r19, $event)); });
|
|
448
|
+
i0.ɵɵconditionalCreate(1, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_1_Template, 2, 1, "td", 74);
|
|
449
|
+
i0.ɵɵelementStart(2, "td", 82)(3, "div", 83);
|
|
450
450
|
i0.ɵɵelement(4, "i", 9);
|
|
451
451
|
i0.ɵɵelementStart(5, "span");
|
|
452
452
|
i0.ɵɵtext(6);
|
|
453
453
|
i0.ɵɵelementEnd();
|
|
454
|
-
i0.ɵɵ
|
|
454
|
+
i0.ɵɵconditionalCreate(7, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_7_Template, 1, 0, "i", 84);
|
|
455
455
|
i0.ɵɵelementEnd()();
|
|
456
|
-
i0.ɵɵelementStart(8, "td",
|
|
457
|
-
i0.ɵɵ
|
|
456
|
+
i0.ɵɵelementStart(8, "td", 85);
|
|
457
|
+
i0.ɵɵconditionalCreate(9, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_9_Template, 2, 0, "span");
|
|
458
|
+
i0.ɵɵconditionalCreate(10, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_10_Template, 2, 1, "span", 71);
|
|
458
459
|
i0.ɵɵelementEnd();
|
|
459
|
-
i0.ɵɵelementStart(11, "td",
|
|
460
|
-
i0.ɵɵ
|
|
460
|
+
i0.ɵɵelementStart(11, "td", 86);
|
|
461
|
+
i0.ɵɵconditionalCreate(12, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_12_Template, 3, 4, "span");
|
|
461
462
|
i0.ɵɵelementEnd();
|
|
462
|
-
i0.ɵɵelementStart(13, "td",
|
|
463
|
-
i0.ɵɵ
|
|
463
|
+
i0.ɵɵelementStart(13, "td", 78);
|
|
464
|
+
i0.ɵɵconditionalCreate(14, CollectionsFullViewComponent_Conditional_26_For_24_Conditional_14_Template, 2, 1, "span");
|
|
464
465
|
i0.ɵɵelementEnd()();
|
|
465
466
|
} if (rf & 2) {
|
|
466
|
-
const
|
|
467
|
+
const item_r19 = ctx.$implicit;
|
|
467
468
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
468
|
-
i0.ɵɵclassProp("selected",
|
|
469
|
+
i0.ɵɵclassProp("selected", item_r19.selected)("active", item_r19.type === "artifact" && (item_r19.artifact == null ? null : item_r19.artifact.ID) === ctx_r2.activeArtifactId);
|
|
469
470
|
i0.ɵɵadvance();
|
|
470
|
-
i0.ɵɵ
|
|
471
|
+
i0.ɵɵconditional(ctx_r2.isSelectMode ? 1 : -1);
|
|
471
472
|
i0.ɵɵadvance(3);
|
|
472
|
-
i0.ɵɵproperty("ngClass",
|
|
473
|
+
i0.ɵɵproperty("ngClass", item_r19.type === "folder" ? "fa-folder" : item_r19.icon);
|
|
473
474
|
i0.ɵɵadvance(2);
|
|
474
|
-
i0.ɵɵtextInterpolate(
|
|
475
|
+
i0.ɵɵtextInterpolate(item_r19.name);
|
|
475
476
|
i0.ɵɵadvance();
|
|
476
|
-
i0.ɵɵ
|
|
477
|
+
i0.ɵɵconditional(item_r19.isShared ? 7 : -1);
|
|
477
478
|
i0.ɵɵadvance(2);
|
|
478
|
-
i0.ɵɵ
|
|
479
|
+
i0.ɵɵconditional(item_r19.type === "folder" ? 9 : -1);
|
|
479
480
|
i0.ɵɵadvance();
|
|
480
|
-
i0.ɵɵ
|
|
481
|
+
i0.ɵɵconditional(item_r19.type === "artifact" ? 10 : -1);
|
|
481
482
|
i0.ɵɵadvance(2);
|
|
482
|
-
i0.ɵɵ
|
|
483
|
+
i0.ɵɵconditional(item_r19.lastModified ? 12 : -1);
|
|
483
484
|
i0.ɵɵadvance(2);
|
|
484
|
-
i0.ɵɵ
|
|
485
|
+
i0.ɵɵconditional(item_r19.owner ? 14 : -1);
|
|
485
486
|
} }
|
|
486
|
-
function
|
|
487
|
-
const
|
|
488
|
-
i0.ɵɵelementStart(0, "div",
|
|
489
|
-
i0.ɵɵ
|
|
490
|
-
i0.ɵɵelementStart(5, "th",
|
|
491
|
-
i0.ɵɵlistener("click", function
|
|
487
|
+
function CollectionsFullViewComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
488
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
489
|
+
i0.ɵɵelementStart(0, "div", 72)(1, "table", 73)(2, "thead")(3, "tr");
|
|
490
|
+
i0.ɵɵconditionalCreate(4, CollectionsFullViewComponent_Conditional_26_Conditional_4_Template, 2, 1, "th", 74);
|
|
491
|
+
i0.ɵɵelementStart(5, "th", 75);
|
|
492
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("name")); });
|
|
492
493
|
i0.ɵɵelementStart(6, "span");
|
|
493
494
|
i0.ɵɵtext(7, "Name");
|
|
494
495
|
i0.ɵɵelementEnd();
|
|
495
|
-
i0.ɵɵ
|
|
496
|
+
i0.ɵɵconditionalCreate(8, CollectionsFullViewComponent_Conditional_26_Conditional_8_Template, 1, 0, "i", 29);
|
|
497
|
+
i0.ɵɵconditionalCreate(9, CollectionsFullViewComponent_Conditional_26_Conditional_9_Template, 1, 1, "i", 9);
|
|
496
498
|
i0.ɵɵelementEnd();
|
|
497
|
-
i0.ɵɵelementStart(10, "th",
|
|
498
|
-
i0.ɵɵlistener("click", function
|
|
499
|
+
i0.ɵɵelementStart(10, "th", 76);
|
|
500
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_Template_th_click_10_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("type")); });
|
|
499
501
|
i0.ɵɵelementStart(11, "span");
|
|
500
502
|
i0.ɵɵtext(12, "Type");
|
|
501
503
|
i0.ɵɵelementEnd();
|
|
502
|
-
i0.ɵɵ
|
|
504
|
+
i0.ɵɵconditionalCreate(13, CollectionsFullViewComponent_Conditional_26_Conditional_13_Template, 1, 0, "i", 29);
|
|
505
|
+
i0.ɵɵconditionalCreate(14, CollectionsFullViewComponent_Conditional_26_Conditional_14_Template, 1, 1, "i", 9);
|
|
503
506
|
i0.ɵɵelementEnd();
|
|
504
|
-
i0.ɵɵelementStart(15, "th",
|
|
505
|
-
i0.ɵɵlistener("click", function
|
|
507
|
+
i0.ɵɵelementStart(15, "th", 77);
|
|
508
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Conditional_26_Template_th_click_15_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("date")); });
|
|
506
509
|
i0.ɵɵelementStart(16, "span");
|
|
507
510
|
i0.ɵɵtext(17, "Modified");
|
|
508
511
|
i0.ɵɵelementEnd();
|
|
509
|
-
i0.ɵɵ
|
|
512
|
+
i0.ɵɵconditionalCreate(18, CollectionsFullViewComponent_Conditional_26_Conditional_18_Template, 1, 0, "i", 29);
|
|
513
|
+
i0.ɵɵconditionalCreate(19, CollectionsFullViewComponent_Conditional_26_Conditional_19_Template, 1, 1, "i", 9);
|
|
510
514
|
i0.ɵɵelementEnd();
|
|
511
|
-
i0.ɵɵelementStart(20, "th",
|
|
515
|
+
i0.ɵɵelementStart(20, "th", 78);
|
|
512
516
|
i0.ɵɵtext(21, "Owner");
|
|
513
517
|
i0.ɵɵelementEnd()()();
|
|
514
518
|
i0.ɵɵelementStart(22, "tbody");
|
|
515
|
-
i0.ɵɵ
|
|
519
|
+
i0.ɵɵrepeaterCreate(23, CollectionsFullViewComponent_Conditional_26_For_24_Template, 15, 12, "tr", 79, i0.ɵɵrepeaterTrackByIdentity);
|
|
516
520
|
i0.ɵɵelementEnd()()();
|
|
517
521
|
} if (rf & 2) {
|
|
518
522
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
519
523
|
i0.ɵɵclassProp("select-mode", ctx_r2.isSelectMode);
|
|
520
524
|
i0.ɵɵadvance(4);
|
|
521
|
-
i0.ɵɵ
|
|
525
|
+
i0.ɵɵconditional(ctx_r2.isSelectMode ? 4 : -1);
|
|
522
526
|
i0.ɵɵadvance(4);
|
|
523
|
-
i0.ɵɵ
|
|
527
|
+
i0.ɵɵconditional(ctx_r2.sortBy !== "name" ? 8 : -1);
|
|
524
528
|
i0.ɵɵadvance();
|
|
525
|
-
i0.ɵɵ
|
|
529
|
+
i0.ɵɵconditional(ctx_r2.sortBy === "name" ? 9 : -1);
|
|
526
530
|
i0.ɵɵadvance(4);
|
|
527
|
-
i0.ɵɵ
|
|
531
|
+
i0.ɵɵconditional(ctx_r2.sortBy !== "type" ? 13 : -1);
|
|
528
532
|
i0.ɵɵadvance();
|
|
529
|
-
i0.ɵɵ
|
|
533
|
+
i0.ɵɵconditional(ctx_r2.sortBy === "type" ? 14 : -1);
|
|
530
534
|
i0.ɵɵadvance(4);
|
|
531
|
-
i0.ɵɵ
|
|
535
|
+
i0.ɵɵconditional(ctx_r2.sortBy !== "date" ? 18 : -1);
|
|
532
536
|
i0.ɵɵadvance();
|
|
533
|
-
i0.ɵɵ
|
|
537
|
+
i0.ɵɵconditional(ctx_r2.sortBy === "date" ? 19 : -1);
|
|
534
538
|
i0.ɵɵadvance(4);
|
|
535
|
-
i0.ɵɵ
|
|
539
|
+
i0.ɵɵrepeater(ctx_r2.unifiedItems);
|
|
536
540
|
} }
|
|
537
541
|
/**
|
|
538
542
|
* Full-panel Collections view component
|
|
@@ -544,6 +548,7 @@ export class CollectionsFullViewComponent {
|
|
|
544
548
|
collectionState;
|
|
545
549
|
permissionService;
|
|
546
550
|
artifactIconService;
|
|
551
|
+
cdr;
|
|
547
552
|
environmentId;
|
|
548
553
|
currentUser;
|
|
549
554
|
collectionNavigated = new EventEmitter();
|
|
@@ -574,12 +579,13 @@ export class CollectionsFullViewComponent {
|
|
|
574
579
|
isSelectMode = false; // Toggle for selection mode
|
|
575
580
|
destroy$ = new Subject();
|
|
576
581
|
isNavigatingProgrammatically = false;
|
|
577
|
-
constructor(dialogService, artifactState, collectionState, permissionService, artifactIconService) {
|
|
582
|
+
constructor(dialogService, artifactState, collectionState, permissionService, artifactIconService, cdr) {
|
|
578
583
|
this.dialogService = dialogService;
|
|
579
584
|
this.artifactState = artifactState;
|
|
580
585
|
this.collectionState = collectionState;
|
|
581
586
|
this.permissionService = permissionService;
|
|
582
587
|
this.artifactIconService = artifactIconService;
|
|
588
|
+
this.cdr = cdr;
|
|
583
589
|
}
|
|
584
590
|
ngOnInit() {
|
|
585
591
|
// Subscribe to collection state changes for deep linking FIRST
|
|
@@ -671,6 +677,7 @@ export class CollectionsFullViewComponent {
|
|
|
671
677
|
}
|
|
672
678
|
finally {
|
|
673
679
|
this.isLoading = false;
|
|
680
|
+
this.cdr.detectChanges();
|
|
674
681
|
}
|
|
675
682
|
}
|
|
676
683
|
async loadCollections() {
|
|
@@ -1435,8 +1442,8 @@ export class CollectionsFullViewComponent {
|
|
|
1435
1442
|
// Future enhancement: implement custom context menu with actions
|
|
1436
1443
|
// event.preventDefault();
|
|
1437
1444
|
}
|
|
1438
|
-
static ɵfac = function CollectionsFullViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CollectionsFullViewComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ArtifactStateService), i0.ɵɵdirectiveInject(i3.CollectionStateService), i0.ɵɵdirectiveInject(i4.CollectionPermissionService), i0.ɵɵdirectiveInject(i5.ArtifactIconService)); };
|
|
1439
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionsFullViewComponent, selectors: [["mj-collections-full-view"]], inputs: { environmentId: "environmentId", currentUser: "currentUser" }, outputs: { collectionNavigated: "collectionNavigated" }, decls: 30, vars: 28, consts: [[1, "collections-view", 3, "keydown"], [1, "collections-header"], [1, "collections-breadcrumb"], [1, "breadcrumb-item"], [1, "fas", "fa-home"], [1, "breadcrumb-link", 3, "click"], [
|
|
1445
|
+
static ɵfac = function CollectionsFullViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CollectionsFullViewComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ArtifactStateService), i0.ɵɵdirectiveInject(i3.CollectionStateService), i0.ɵɵdirectiveInject(i4.CollectionPermissionService), i0.ɵɵdirectiveInject(i5.ArtifactIconService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
1446
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionsFullViewComponent, selectors: [["mj-collections-full-view"]], inputs: { environmentId: "environmentId", currentUser: "currentUser" }, outputs: { collectionNavigated: "collectionNavigated" }, standalone: false, decls: 30, vars: 28, consts: [[1, "collections-view", 3, "keydown"], [1, "collections-header"], [1, "collections-breadcrumb"], [1, "breadcrumb-item"], [1, "fas", "fa-home"], [1, "breadcrumb-link", 3, "click"], [1, "breadcrumb-path"], [1, "collections-actions"], [1, "btn-icon", 3, "click", "title"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-check-square"], [1, "dropdown-container"], [1, "search-container"], [1, "fas", "fa-search"], ["type", "text", "placeholder", "Search...", 1, "search-input", 3, "ngModelChange", "ngModel"], ["title", "Clear search", 1, "search-clear"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync"], [1, "selection-toolbar"], [1, "collections-content"], [1, "loading-state"], [1, "empty-state"], [1, "unified-grid", 3, "select-mode"], [1, "unified-list", 3, "select-mode"], [3, "saved", "cancelled", "isOpen", "collection", "parentCollection", "environmentId", "currentUser"], [3, "saved", "cancelled", "isOpen", "collectionId", "environmentId", "currentUser"], [3, "saved", "cancelled", "isOpen", "collection", "currentUser", "currentUserPermissions"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], ["title", "Sort options", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sort"], [1, "dropdown-menu"], [1, "dropdown-item", 3, "click"], [1, "fas", "fa-sort-alpha-down"], [1, "fas", "fa-calendar"], [1, "fas", "fa-tag"], ["title", "Clear search", 1, "search-clear", 3, "click"], [1, "fas", "fa-times"], [1, "btn-primary", 3, "click"], [1, "fas", "fa-plus"], [1, "fas", "fa-chevron-down"], [1, "dropdown-menu", "dropdown-menu-right"], [1, "fas", "fa-folder-plus"], [1, "dropdown-item", 3, "click", "disabled"], [1, "fas", "fa-file-plus"], [1, "selection-info"], [1, "selection-count"], [1, "selection-actions"], [1, "btn-toolbar", 3, "click"], [1, "btn-toolbar", "btn-danger", 3, "click"], [1, "fas", "fa-trash"], ["text", "Loading collections...", "size", "large"], [1, "fas", "fa-folder-open"], [1, "btn-primary"], [1, "unified-grid"], [1, "grid-item", 3, "selected", "active"], [1, "grid-item", 3, "click", "dblclick", "contextmenu"], [1, "item-checkbox"], [1, "grid-item-content", 3, "title"], [1, "item-checkbox", 3, "click"], [1, "grid-icon", "folder-icon"], [1, "fas", "fa-folder"], ["title", "Shared", 1, "shared-badge"], [1, "grid-info"], [1, "grid-name"], [1, "grid-description"], [1, "grid-meta"], [1, "grid-owner"], [1, "fas", "fa-users"], [1, "fas", "fa-user"], [1, "grid-icon", "artifact-icon"], [1, "version-badge"], [1, "artifact-type-badge"], [1, "unified-list"], [1, "list-table"], [1, "col-checkbox"], [1, "col-name", "sortable", 3, "click"], [1, "col-type", "sortable", 3, "click"], [1, "col-modified", "sortable", 3, "click"], [1, "col-owner"], [1, "list-item", 3, "selected", "active"], [1, "fas", 3, "click", "ngClass"], [1, "list-item", 3, "click", "dblclick", "contextmenu"], [1, "col-name"], [1, "list-name-cell"], ["title", "Shared", 1, "fas", "fa-users", "shared-indicator"], [1, "col-type"], [1, "col-modified"]], template: function CollectionsFullViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1440
1447
|
i0.ɵɵelementStart(0, "div", 0);
|
|
1441
1448
|
i0.ɵɵlistener("keydown", function CollectionsFullViewComponent_Template_div_keydown_0_listener($event) { return ctx.handleKeyboardShortcut($event); });
|
|
1442
1449
|
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "div", 3);
|
|
@@ -1445,7 +1452,7 @@ export class CollectionsFullViewComponent {
|
|
|
1445
1452
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_a_click_5_listener() { return ctx.navigateToRoot(); });
|
|
1446
1453
|
i0.ɵɵtext(6, "Collections");
|
|
1447
1454
|
i0.ɵɵelementEnd()();
|
|
1448
|
-
i0.ɵɵ
|
|
1455
|
+
i0.ɵɵconditionalCreate(7, CollectionsFullViewComponent_Conditional_7_Template, 3, 0, "span", 6);
|
|
1449
1456
|
i0.ɵɵelementEnd();
|
|
1450
1457
|
i0.ɵɵelementStart(8, "div", 7)(9, "button", 8);
|
|
1451
1458
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_9_listener() { return ctx.toggleViewMode(); });
|
|
@@ -1455,23 +1462,26 @@ export class CollectionsFullViewComponent {
|
|
|
1455
1462
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_11_listener() { return ctx.toggleSelectMode(); });
|
|
1456
1463
|
i0.ɵɵelement(12, "i", 10);
|
|
1457
1464
|
i0.ɵɵelementEnd();
|
|
1458
|
-
i0.ɵɵ
|
|
1465
|
+
i0.ɵɵconditionalCreate(13, CollectionsFullViewComponent_Conditional_13_Template, 4, 1, "div", 11);
|
|
1459
1466
|
i0.ɵɵelementStart(14, "div", 12);
|
|
1460
1467
|
i0.ɵɵelement(15, "i", 13);
|
|
1461
1468
|
i0.ɵɵelementStart(16, "input", 14);
|
|
1462
1469
|
i0.ɵɵtwoWayListener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_16_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return $event; });
|
|
1463
1470
|
i0.ɵɵlistener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_16_listener($event) { return ctx.onSearchChange($event); });
|
|
1464
1471
|
i0.ɵɵelementEnd();
|
|
1465
|
-
i0.ɵɵ
|
|
1472
|
+
i0.ɵɵconditionalCreate(17, CollectionsFullViewComponent_Conditional_17_Template, 2, 0, "button", 15);
|
|
1466
1473
|
i0.ɵɵelementEnd();
|
|
1467
|
-
i0.ɵɵ
|
|
1474
|
+
i0.ɵɵconditionalCreate(18, CollectionsFullViewComponent_Conditional_18_Template, 7, 1, "div", 11);
|
|
1468
1475
|
i0.ɵɵelementStart(19, "button", 16);
|
|
1469
1476
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_19_listener() { return ctx.refresh(); });
|
|
1470
1477
|
i0.ɵɵelement(20, "i", 17);
|
|
1471
1478
|
i0.ɵɵelementEnd()()();
|
|
1472
|
-
i0.ɵɵ
|
|
1479
|
+
i0.ɵɵconditionalCreate(21, CollectionsFullViewComponent_Conditional_21_Template, 11, 1, "div", 18);
|
|
1473
1480
|
i0.ɵɵelementStart(22, "div", 19);
|
|
1474
|
-
i0.ɵɵ
|
|
1481
|
+
i0.ɵɵconditionalCreate(23, CollectionsFullViewComponent_Conditional_23_Template, 2, 0, "div", 20);
|
|
1482
|
+
i0.ɵɵconditionalCreate(24, CollectionsFullViewComponent_Conditional_24_Template, 5, 3, "div", 21);
|
|
1483
|
+
i0.ɵɵconditionalCreate(25, CollectionsFullViewComponent_Conditional_25_Template, 3, 2, "div", 22);
|
|
1484
|
+
i0.ɵɵconditionalCreate(26, CollectionsFullViewComponent_Conditional_26_Template, 25, 9, "div", 23);
|
|
1475
1485
|
i0.ɵɵelementEnd()();
|
|
1476
1486
|
i0.ɵɵelementStart(27, "mj-collection-form-modal", 24);
|
|
1477
1487
|
i0.ɵɵlistener("saved", function CollectionsFullViewComponent_Template_mj_collection_form_modal_saved_27_listener($event) { return ctx.onCollectionSaved($event); })("cancelled", function CollectionsFullViewComponent_Template_mj_collection_form_modal_cancelled_27_listener() { return ctx.onFormCancelled(); });
|
|
@@ -1484,7 +1494,7 @@ export class CollectionsFullViewComponent {
|
|
|
1484
1494
|
i0.ɵɵelementEnd();
|
|
1485
1495
|
} if (rf & 2) {
|
|
1486
1496
|
i0.ɵɵadvance(7);
|
|
1487
|
-
i0.ɵɵ
|
|
1497
|
+
i0.ɵɵconditional(ctx.breadcrumbs.length > 0 ? 7 : -1);
|
|
1488
1498
|
i0.ɵɵadvance(2);
|
|
1489
1499
|
i0.ɵɵproperty("title", ctx.viewMode === "grid" ? "Switch to List View" : "Switch to Grid View");
|
|
1490
1500
|
i0.ɵɵadvance();
|
|
@@ -1493,34 +1503,34 @@ export class CollectionsFullViewComponent {
|
|
|
1493
1503
|
i0.ɵɵclassProp("active", ctx.isSelectMode);
|
|
1494
1504
|
i0.ɵɵproperty("title", ctx.isSelectMode ? "Exit Select Mode" : "Select Items");
|
|
1495
1505
|
i0.ɵɵadvance(2);
|
|
1496
|
-
i0.ɵɵ
|
|
1506
|
+
i0.ɵɵconditional(ctx.viewMode === "grid" ? 13 : -1);
|
|
1497
1507
|
i0.ɵɵadvance(3);
|
|
1498
1508
|
i0.ɵɵtwoWayProperty("ngModel", ctx.searchQuery);
|
|
1499
1509
|
i0.ɵɵadvance();
|
|
1500
|
-
i0.ɵɵ
|
|
1510
|
+
i0.ɵɵconditional(ctx.searchQuery ? 17 : -1);
|
|
1501
1511
|
i0.ɵɵadvance();
|
|
1502
|
-
i0.ɵɵ
|
|
1512
|
+
i0.ɵɵconditional(ctx.canEditCurrent() ? 18 : -1);
|
|
1503
1513
|
i0.ɵɵadvance(3);
|
|
1504
|
-
i0.ɵɵ
|
|
1514
|
+
i0.ɵɵconditional(ctx.selectedItems.size > 0 ? 21 : -1);
|
|
1505
1515
|
i0.ɵɵadvance(2);
|
|
1506
|
-
i0.ɵɵ
|
|
1516
|
+
i0.ɵɵconditional(ctx.isLoading ? 23 : -1);
|
|
1507
1517
|
i0.ɵɵadvance();
|
|
1508
|
-
i0.ɵɵ
|
|
1518
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.unifiedItems.length === 0 ? 24 : -1);
|
|
1509
1519
|
i0.ɵɵadvance();
|
|
1510
|
-
i0.ɵɵ
|
|
1520
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.unifiedItems.length > 0 && ctx.viewMode === "grid" ? 25 : -1);
|
|
1511
1521
|
i0.ɵɵadvance();
|
|
1512
|
-
i0.ɵɵ
|
|
1522
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.unifiedItems.length > 0 && ctx.viewMode === "list" ? 26 : -1);
|
|
1513
1523
|
i0.ɵɵadvance();
|
|
1514
1524
|
i0.ɵɵproperty("isOpen", ctx.isFormModalOpen)("collection", ctx.editingCollection)("parentCollection", ctx.currentCollection || undefined)("environmentId", ctx.environmentId)("currentUser", ctx.currentUser);
|
|
1515
1525
|
i0.ɵɵadvance();
|
|
1516
1526
|
i0.ɵɵproperty("isOpen", ctx.isArtifactModalOpen)("collectionId", ctx.currentCollectionId || "")("environmentId", ctx.environmentId)("currentUser", ctx.currentUser);
|
|
1517
1527
|
i0.ɵɵadvance();
|
|
1518
1528
|
i0.ɵɵproperty("isOpen", ctx.isShareModalOpen)("collection", ctx.sharingCollection)("currentUser", ctx.currentUser)("currentUserPermissions", ctx.sharingCollection ? ctx.userPermissions.get(ctx.sharingCollection.ID) || null : null);
|
|
1519
|
-
} }, dependencies: [i6.NgClass, i6.NgForOf, i6.NgIf, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel, i8.LoadingComponent, i9.CollectionShareModalComponent, i10.CollectionFormModalComponent, i11.ArtifactCreateModalComponent, i6.DatePipe], styles: ["\n\n .collections-view[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #FAFAFA;\n position: relative;\n }\n\n \n\n .collections-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 20px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n background: white;\n }\n\n .collections-breadcrumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .breadcrumb-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link[_ngcontent-%COMP%] {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n font-size: 14px;\n }\n\n .breadcrumb-link[_ngcontent-%COMP%]:hover {\n color: #0076D6;\n }\n\n .breadcrumb-link.active[_ngcontent-%COMP%] {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator[_ngcontent-%COMP%] {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n \n\n .btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #007AFF;\n border: none;\n border-radius: 6px;\n color: white;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 150ms ease;\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: #0051D5;\n }\n\n .btn-primary[_ngcontent-%COMP%] i.fa-chevron-down[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-left: 2px;\n }\n\n .btn-icon[_ngcontent-%COMP%] {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .btn-icon[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n color: #111827;\n border-color: #9CA3AF;\n }\n\n .btn-icon.active[_ngcontent-%COMP%] {\n background: #EFF6FF;\n color: #007AFF;\n border-color: #007AFF;\n }\n\n .btn-icon.active[_ngcontent-%COMP%]:hover {\n background: #DBEAFE;\n }\n\n \n\n .dropdown-container[_ngcontent-%COMP%] {\n position: relative;\n }\n\n .dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 200px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n z-index: 1000;\n }\n\n .dropdown-menu-right[_ngcontent-%COMP%] {\n left: auto;\n right: 0;\n }\n\n .dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .dropdown-item[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #F3F4F6;\n }\n\n .dropdown-item[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .dropdown-item.active[_ngcontent-%COMP%] {\n background: #EFF6FF;\n color: #007AFF;\n }\n\n .dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .dropdown-item.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .dropdown-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n\n \n\n .search-container[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n }\n\n .search-container[_ngcontent-%COMP%] i.fa-search[_ngcontent-%COMP%] {\n position: absolute;\n left: 10px;\n color: #9CA3AF;\n font-size: 13px;\n pointer-events: none;\n }\n\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 6px 32px 6px 32px;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n transition: all 150ms ease;\n }\n\n .search-input[_ngcontent-%COMP%]:focus {\n border-color: #007AFF;\n box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);\n }\n\n .search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n padding: 4px;\n background: transparent;\n border: none;\n color: #9CA3AF;\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .search-clear[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n \n\n .selection-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: #EFF6FF;\n border-bottom: 1px solid #BFDBFE;\n }\n\n .selection-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .selection-count[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #1E40AF;\n }\n\n .selection-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .btn-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: white;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n color: #374151;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .btn-toolbar[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n border-color: #9CA3AF;\n }\n\n .btn-toolbar.btn-danger[_ngcontent-%COMP%] {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-toolbar.btn-danger[_ngcontent-%COMP%]:hover {\n background: #FEE2E2;\n border-color: #DC2626;\n }\n\n \n\n .collections-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n }\n\n \n\n .loading-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n text-align: center;\n padding: 48px 24px;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 64px;\n margin-bottom: 24px;\n opacity: 0.3;\n color: #D1D5DB;\n }\n\n .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: #374151;\n font-size: 18px;\n font-weight: 600;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: #6B7280;\n }\n\n .empty-state-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n \n\n .unified-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n gap: 16px;\n padding: 4px;\n }\n\n .grid-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n padding: 12px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n position: relative;\n user-select: none;\n }\n\n .grid-item[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n }\n\n .grid-item.selected[_ngcontent-%COMP%] {\n background: #EFF6FF;\n border-color: #007AFF;\n }\n\n .grid-item.active[_ngcontent-%COMP%] {\n background: #FEF3C7;\n border-color: #F59E0B;\n box-shadow: 0 0 0 1px #F59E0B;\n }\n\n .grid-item.active[_ngcontent-%COMP%]:hover {\n background: #FDE68A;\n }\n\n \n\n .unified-grid.select-mode[_ngcontent-%COMP%] .grid-item[_ngcontent-%COMP%] {\n cursor: pointer;\n }\n\n .unified-grid.select-mode[_ngcontent-%COMP%] .grid-item[_ngcontent-%COMP%]:hover {\n background: #EFF6FF;\n border-color: #93C5FD;\n }\n\n .item-checkbox[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .item-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #9CA3AF;\n transition: color 150ms ease;\n }\n\n .grid-item.selected[_ngcontent-%COMP%] .item-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n .item-checkbox[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .grid-item-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n }\n\n .grid-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n position: relative;\n }\n\n .grid-icon.folder-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);\n }\n\n .grid-icon.folder-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: white;\n }\n\n .grid-icon.artifact-icon[_ngcontent-%COMP%] {\n background: #F3F4F6;\n }\n\n .grid-icon.artifact-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #6B7280;\n }\n\n .shared-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n background: #10B981;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid white;\n }\n\n .shared-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: white;\n }\n\n .grid-info[_ngcontent-%COMP%] {\n width: 100%;\n text-align: center;\n }\n\n .grid-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #111827;\n line-height: 1.3;\n margin-bottom: 4px;\n \n\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-description[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n line-height: 1.3;\n margin-bottom: 4px;\n \n\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-meta[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n margin-top: 4px;\n }\n\n .grid-owner[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n margin-top: 2px;\n }\n\n .grid-owner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-right: 3px;\n }\n\n .version-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n background: #FEF3C7;\n color: #92400E;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n font-family: monospace;\n margin-right: 4px;\n }\n\n .artifact-type-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n background: #DBEAFE;\n color: #1E40AF;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n \n\n .unified-list[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .list-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n }\n\n .list-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: #F9FAFB;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .list-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 10px 16px;\n text-align: left;\n font-size: 12px;\n font-weight: 600;\n color: #6B7280;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n transition: color 150ms ease;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%]:hover {\n color: #007AFF;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: inline-block;\n margin-right: 6px;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.5;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n opacity: 1;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n cursor: pointer;\n user-select: none;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.selected[_ngcontent-%COMP%] {\n background: #EFF6FF;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.active[_ngcontent-%COMP%] {\n background: #FEF3C7;\n border-left: 3px solid #F59E0B;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.active[_ngcontent-%COMP%]:hover {\n background: #FDE68A;\n }\n\n .list-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n font-size: 13px;\n color: #374151;\n }\n\n .col-checkbox[_ngcontent-%COMP%] {\n width: 40px;\n text-align: center;\n }\n\n .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n transition: color 150ms ease;\n }\n\n .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:hover, \n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.selected[_ngcontent-%COMP%] .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .col-name[_ngcontent-%COMP%] {\n min-width: 300px;\n }\n\n .list-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .list-name-cell[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #6B7280;\n width: 20px;\n text-align: center;\n }\n\n .list-name-cell[_ngcontent-%COMP%] .fa-folder[_ngcontent-%COMP%] {\n color: #3B82F6;\n }\n\n .shared-indicator[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #10B981;\n margin-left: auto;\n }\n\n .col-type[_ngcontent-%COMP%] {\n width: 150px;\n }\n\n .col-modified[_ngcontent-%COMP%] {\n width: 180px;\n }\n\n .col-owner[_ngcontent-%COMP%] {\n width: 150px;\n }"] });
|
|
1529
|
+
} }, dependencies: [i6.NgClass, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel, i8.LoadingComponent, i9.CollectionShareModalComponent, i10.CollectionFormModalComponent, i11.ArtifactCreateModalComponent, i6.DatePipe], styles: ["\n\n .collections-view[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #FAFAFA;\n position: relative;\n }\n\n \n\n .collections-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 20px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n background: white;\n }\n\n .collections-breadcrumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .breadcrumb-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link[_ngcontent-%COMP%] {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n font-size: 14px;\n }\n\n .breadcrumb-link[_ngcontent-%COMP%]:hover {\n color: #0076D6;\n }\n\n .breadcrumb-link.active[_ngcontent-%COMP%] {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator[_ngcontent-%COMP%] {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n \n\n .btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #007AFF;\n border: none;\n border-radius: 6px;\n color: white;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 150ms ease;\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: #0051D5;\n }\n\n .btn-primary[_ngcontent-%COMP%] i.fa-chevron-down[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-left: 2px;\n }\n\n .btn-icon[_ngcontent-%COMP%] {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .btn-icon[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n color: #111827;\n border-color: #9CA3AF;\n }\n\n .btn-icon.active[_ngcontent-%COMP%] {\n background: #EFF6FF;\n color: #007AFF;\n border-color: #007AFF;\n }\n\n .btn-icon.active[_ngcontent-%COMP%]:hover {\n background: #DBEAFE;\n }\n\n \n\n .dropdown-container[_ngcontent-%COMP%] {\n position: relative;\n }\n\n .dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 200px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n z-index: 1000;\n }\n\n .dropdown-menu-right[_ngcontent-%COMP%] {\n left: auto;\n right: 0;\n }\n\n .dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .dropdown-item[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #F3F4F6;\n }\n\n .dropdown-item[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .dropdown-item.active[_ngcontent-%COMP%] {\n background: #EFF6FF;\n color: #007AFF;\n }\n\n .dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .dropdown-item.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .dropdown-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n\n \n\n .search-container[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n }\n\n .search-container[_ngcontent-%COMP%] i.fa-search[_ngcontent-%COMP%] {\n position: absolute;\n left: 10px;\n color: #9CA3AF;\n font-size: 13px;\n pointer-events: none;\n }\n\n .search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 6px 32px 6px 32px;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n transition: all 150ms ease;\n }\n\n .search-input[_ngcontent-%COMP%]:focus {\n border-color: #007AFF;\n box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);\n }\n\n .search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n padding: 4px;\n background: transparent;\n border: none;\n color: #9CA3AF;\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .search-clear[_ngcontent-%COMP%]:hover {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n \n\n .selection-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: #EFF6FF;\n border-bottom: 1px solid #BFDBFE;\n }\n\n .selection-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .selection-count[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #1E40AF;\n }\n\n .selection-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .btn-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: white;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n color: #374151;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .btn-toolbar[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n border-color: #9CA3AF;\n }\n\n .btn-toolbar.btn-danger[_ngcontent-%COMP%] {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-toolbar.btn-danger[_ngcontent-%COMP%]:hover {\n background: #FEE2E2;\n border-color: #DC2626;\n }\n\n \n\n .collections-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n }\n\n \n\n .loading-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n text-align: center;\n padding: 48px 24px;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 64px;\n margin-bottom: 24px;\n opacity: 0.3;\n color: #D1D5DB;\n }\n\n .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: #374151;\n font-size: 18px;\n font-weight: 600;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: #6B7280;\n }\n\n .empty-state-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n \n\n .unified-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n gap: 16px;\n padding: 4px;\n }\n\n .grid-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n padding: 12px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n position: relative;\n user-select: none;\n }\n\n .grid-item[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n }\n\n .grid-item.selected[_ngcontent-%COMP%] {\n background: #EFF6FF;\n border-color: #007AFF;\n }\n\n .grid-item.active[_ngcontent-%COMP%] {\n background: #FEF3C7;\n border-color: #F59E0B;\n box-shadow: 0 0 0 1px #F59E0B;\n }\n\n .grid-item.active[_ngcontent-%COMP%]:hover {\n background: #FDE68A;\n }\n\n \n\n .unified-grid.select-mode[_ngcontent-%COMP%] .grid-item[_ngcontent-%COMP%] {\n cursor: pointer;\n }\n\n .unified-grid.select-mode[_ngcontent-%COMP%] .grid-item[_ngcontent-%COMP%]:hover {\n background: #EFF6FF;\n border-color: #93C5FD;\n }\n\n .item-checkbox[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .item-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #9CA3AF;\n transition: color 150ms ease;\n }\n\n .grid-item.selected[_ngcontent-%COMP%] .item-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n .item-checkbox[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .grid-item-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n }\n\n .grid-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n position: relative;\n }\n\n .grid-icon.folder-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);\n }\n\n .grid-icon.folder-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: white;\n }\n\n .grid-icon.artifact-icon[_ngcontent-%COMP%] {\n background: #F3F4F6;\n }\n\n .grid-icon.artifact-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #6B7280;\n }\n\n .shared-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n background: #10B981;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid white;\n }\n\n .shared-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: white;\n }\n\n .grid-info[_ngcontent-%COMP%] {\n width: 100%;\n text-align: center;\n }\n\n .grid-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #111827;\n line-height: 1.3;\n margin-bottom: 4px;\n \n\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-description[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n line-height: 1.3;\n margin-bottom: 4px;\n \n\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-meta[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n margin-top: 4px;\n }\n\n .grid-owner[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #6B7280;\n margin-top: 2px;\n }\n\n .grid-owner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-right: 3px;\n }\n\n .version-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n background: #FEF3C7;\n color: #92400E;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n font-family: monospace;\n margin-right: 4px;\n }\n\n .artifact-type-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n background: #DBEAFE;\n color: #1E40AF;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n \n\n .unified-list[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .list-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n }\n\n .list-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: #F9FAFB;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .list-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 10px 16px;\n text-align: left;\n font-size: 12px;\n font-weight: 600;\n color: #6B7280;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n transition: color 150ms ease;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%]:hover {\n color: #007AFF;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: inline-block;\n margin-right: 6px;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.5;\n }\n\n .list-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n opacity: 1;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n cursor: pointer;\n user-select: none;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: #F9FAFB;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.selected[_ngcontent-%COMP%] {\n background: #EFF6FF;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.active[_ngcontent-%COMP%] {\n background: #FEF3C7;\n border-left: 3px solid #F59E0B;\n }\n\n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.active[_ngcontent-%COMP%]:hover {\n background: #FDE68A;\n }\n\n .list-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n font-size: 13px;\n color: #374151;\n }\n\n .col-checkbox[_ngcontent-%COMP%] {\n width: 40px;\n text-align: center;\n }\n\n .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n transition: color 150ms ease;\n }\n\n .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:hover, \n .list-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.selected[_ngcontent-%COMP%] .col-checkbox[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #007AFF;\n }\n\n .col-name[_ngcontent-%COMP%] {\n min-width: 300px;\n }\n\n .list-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .list-name-cell[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #6B7280;\n width: 20px;\n text-align: center;\n }\n\n .list-name-cell[_ngcontent-%COMP%] .fa-folder[_ngcontent-%COMP%] {\n color: #3B82F6;\n }\n\n .shared-indicator[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #10B981;\n margin-left: auto;\n }\n\n .col-type[_ngcontent-%COMP%] {\n width: 150px;\n }\n\n .col-modified[_ngcontent-%COMP%] {\n width: 180px;\n }\n\n .col-owner[_ngcontent-%COMP%] {\n width: 150px;\n }"] });
|
|
1520
1530
|
}
|
|
1521
1531
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionsFullViewComponent, [{
|
|
1522
1532
|
type: Component,
|
|
1523
|
-
args: [{ selector: 'mj-collections-full-view', template: `
|
|
1533
|
+
args: [{ standalone: false, selector: 'mj-collections-full-view', template: `
|
|
1524
1534
|
<div class="collections-view" (keydown)="handleKeyboardShortcut($event)">
|
|
1525
1535
|
<!-- Mac Finder-style Header -->
|
|
1526
1536
|
<div class="collections-header">
|
|
@@ -1530,314 +1540,374 @@ export class CollectionsFullViewComponent {
|
|
|
1530
1540
|
<i class="fas fa-home"></i>
|
|
1531
1541
|
<a class="breadcrumb-link" (click)="navigateToRoot()">Collections</a>
|
|
1532
1542
|
</div>
|
|
1533
|
-
|
|
1534
|
-
<
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
+
@if (breadcrumbs.length > 0) {
|
|
1544
|
+
<span class="breadcrumb-path">
|
|
1545
|
+
@for (crumb of breadcrumbs; track crumb; let last = $last) {
|
|
1546
|
+
<i class="fas fa-chevron-right breadcrumb-separator"></i>
|
|
1547
|
+
<a class="breadcrumb-link"
|
|
1548
|
+
[class.active]="last"
|
|
1549
|
+
(click)="navigateTo(crumb)">
|
|
1550
|
+
{{ crumb.name }}
|
|
1551
|
+
</a>
|
|
1552
|
+
}
|
|
1553
|
+
</span>
|
|
1554
|
+
}
|
|
1543
1555
|
</div>
|
|
1544
|
-
|
|
1556
|
+
|
|
1545
1557
|
<!-- Action buttons -->
|
|
1546
1558
|
<div class="collections-actions">
|
|
1547
1559
|
<!-- View mode toggle -->
|
|
1548
1560
|
<button class="btn-icon"
|
|
1549
|
-
|
|
1550
|
-
|
|
1561
|
+
(click)="toggleViewMode()"
|
|
1562
|
+
[title]="viewMode === 'grid' ? 'Switch to List View' : 'Switch to Grid View'">
|
|
1551
1563
|
<i class="fas" [ngClass]="viewMode === 'grid' ? 'fa-list' : 'fa-th'"></i>
|
|
1552
1564
|
</button>
|
|
1553
|
-
|
|
1565
|
+
|
|
1554
1566
|
<!-- Select mode toggle -->
|
|
1555
1567
|
<button class="btn-icon"
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1568
|
+
[class.active]="isSelectMode"
|
|
1569
|
+
(click)="toggleSelectMode()"
|
|
1570
|
+
[title]="isSelectMode ? 'Exit Select Mode' : 'Select Items'">
|
|
1559
1571
|
<i class="fas fa-check-square"></i>
|
|
1560
1572
|
</button>
|
|
1561
|
-
|
|
1573
|
+
|
|
1562
1574
|
<!-- Sort dropdown (grid view only) -->
|
|
1563
|
-
|
|
1564
|
-
<
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
<div class="dropdown-menu" *ngIf="showSortDropdown">
|
|
1570
|
-
<button class="dropdown-item"
|
|
1571
|
-
[class.active]="sortBy === 'name'"
|
|
1572
|
-
(click)="setSortBy('name')">
|
|
1573
|
-
<i class="fas fa-sort-alpha-down"></i>
|
|
1574
|
-
<span>Sort by Name</span>
|
|
1575
|
-
</button>
|
|
1576
|
-
<button class="dropdown-item"
|
|
1577
|
-
[class.active]="sortBy === 'date'"
|
|
1578
|
-
(click)="setSortBy('date')">
|
|
1579
|
-
<i class="fas fa-calendar"></i>
|
|
1580
|
-
<span>Sort by Date</span>
|
|
1581
|
-
</button>
|
|
1582
|
-
<button class="dropdown-item"
|
|
1583
|
-
[class.active]="sortBy === 'type'"
|
|
1584
|
-
(click)="setSortBy('type')">
|
|
1585
|
-
<i class="fas fa-tag"></i>
|
|
1586
|
-
<span>Sort by Type</span>
|
|
1575
|
+
@if (viewMode === 'grid') {
|
|
1576
|
+
<div class="dropdown-container">
|
|
1577
|
+
<button class="btn-icon"
|
|
1578
|
+
(click)="showSortDropdown = !showSortDropdown"
|
|
1579
|
+
title="Sort options">
|
|
1580
|
+
<i class="fas fa-sort"></i>
|
|
1587
1581
|
</button>
|
|
1582
|
+
@if (showSortDropdown) {
|
|
1583
|
+
<div class="dropdown-menu">
|
|
1584
|
+
<button class="dropdown-item"
|
|
1585
|
+
[class.active]="sortBy === 'name'"
|
|
1586
|
+
(click)="setSortBy('name')">
|
|
1587
|
+
<i class="fas fa-sort-alpha-down"></i>
|
|
1588
|
+
<span>Sort by Name</span>
|
|
1589
|
+
</button>
|
|
1590
|
+
<button class="dropdown-item"
|
|
1591
|
+
[class.active]="sortBy === 'date'"
|
|
1592
|
+
(click)="setSortBy('date')">
|
|
1593
|
+
<i class="fas fa-calendar"></i>
|
|
1594
|
+
<span>Sort by Date</span>
|
|
1595
|
+
</button>
|
|
1596
|
+
<button class="dropdown-item"
|
|
1597
|
+
[class.active]="sortBy === 'type'"
|
|
1598
|
+
(click)="setSortBy('type')">
|
|
1599
|
+
<i class="fas fa-tag"></i>
|
|
1600
|
+
<span>Sort by Type</span>
|
|
1601
|
+
</button>
|
|
1602
|
+
</div>
|
|
1603
|
+
}
|
|
1588
1604
|
</div>
|
|
1589
|
-
|
|
1590
|
-
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1591
1607
|
<!-- Search -->
|
|
1592
1608
|
<div class="search-container">
|
|
1593
1609
|
<i class="fas fa-search"></i>
|
|
1594
1610
|
<input type="text"
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1611
|
+
class="search-input"
|
|
1612
|
+
placeholder="Search..."
|
|
1613
|
+
[(ngModel)]="searchQuery"
|
|
1614
|
+
(ngModelChange)="onSearchChange($event)">
|
|
1615
|
+
@if (searchQuery) {
|
|
1616
|
+
<button class="search-clear"
|
|
1617
|
+
(click)="searchQuery = ''; onSearchChange('')"
|
|
1618
|
+
title="Clear search">
|
|
1619
|
+
<i class="fas fa-times"></i>
|
|
1620
|
+
</button>
|
|
1621
|
+
}
|
|
1605
1622
|
</div>
|
|
1606
|
-
|
|
1623
|
+
|
|
1607
1624
|
<!-- New dropdown -->
|
|
1608
|
-
|
|
1609
|
-
<
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
<div class="dropdown-menu dropdown-menu-right" *ngIf="showNewDropdown">
|
|
1616
|
-
<button class="dropdown-item" (click)="createCollection()">
|
|
1617
|
-
<i class="fas fa-folder-plus"></i>
|
|
1618
|
-
<span>New Collection</span>
|
|
1619
|
-
</button>
|
|
1620
|
-
<button class="dropdown-item"
|
|
1621
|
-
(click)="addArtifact()"
|
|
1622
|
-
[disabled]="!currentCollectionId">
|
|
1623
|
-
<i class="fas fa-file-plus"></i>
|
|
1624
|
-
<span>New Artifact</span>
|
|
1625
|
+
@if (canEditCurrent()) {
|
|
1626
|
+
<div class="dropdown-container">
|
|
1627
|
+
<button class="btn-primary"
|
|
1628
|
+
(click)="showNewDropdown = !showNewDropdown">
|
|
1629
|
+
<i class="fas fa-plus"></i>
|
|
1630
|
+
<span>New</span>
|
|
1631
|
+
<i class="fas fa-chevron-down"></i>
|
|
1625
1632
|
</button>
|
|
1633
|
+
@if (showNewDropdown) {
|
|
1634
|
+
<div class="dropdown-menu dropdown-menu-right">
|
|
1635
|
+
<button class="dropdown-item" (click)="createCollection()">
|
|
1636
|
+
<i class="fas fa-folder-plus"></i>
|
|
1637
|
+
<span>New Collection</span>
|
|
1638
|
+
</button>
|
|
1639
|
+
<button class="dropdown-item"
|
|
1640
|
+
(click)="addArtifact()"
|
|
1641
|
+
[disabled]="!currentCollectionId">
|
|
1642
|
+
<i class="fas fa-file-plus"></i>
|
|
1643
|
+
<span>New Artifact</span>
|
|
1644
|
+
</button>
|
|
1645
|
+
</div>
|
|
1646
|
+
}
|
|
1626
1647
|
</div>
|
|
1627
|
-
|
|
1628
|
-
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1629
1650
|
<!-- Refresh button -->
|
|
1630
1651
|
<button class="btn-icon" (click)="refresh()" title="Refresh">
|
|
1631
1652
|
<i class="fas fa-sync"></i>
|
|
1632
1653
|
</button>
|
|
1633
1654
|
</div>
|
|
1634
1655
|
</div>
|
|
1635
|
-
|
|
1656
|
+
|
|
1636
1657
|
<!-- Multi-select toolbar (appears when items selected) -->
|
|
1637
|
-
|
|
1638
|
-
<div class="selection-
|
|
1639
|
-
<
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
<
|
|
1643
|
-
<
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
<
|
|
1648
|
-
|
|
1649
|
-
|
|
1658
|
+
@if (selectedItems.size > 0) {
|
|
1659
|
+
<div class="selection-toolbar">
|
|
1660
|
+
<div class="selection-info">
|
|
1661
|
+
<span class="selection-count">{{ selectedItems.size }} selected</span>
|
|
1662
|
+
</div>
|
|
1663
|
+
<div class="selection-actions">
|
|
1664
|
+
<button class="btn-toolbar" (click)="clearSelection()">
|
|
1665
|
+
<i class="fas fa-times"></i>
|
|
1666
|
+
Clear Selection
|
|
1667
|
+
</button>
|
|
1668
|
+
<button class="btn-toolbar btn-danger" (click)="deleteSelected()">
|
|
1669
|
+
<i class="fas fa-trash"></i>
|
|
1670
|
+
Delete Selected
|
|
1671
|
+
</button>
|
|
1672
|
+
</div>
|
|
1650
1673
|
</div>
|
|
1651
|
-
|
|
1652
|
-
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1653
1676
|
<!-- Content area -->
|
|
1654
1677
|
<div class="collections-content">
|
|
1655
1678
|
<!-- Loading state -->
|
|
1656
|
-
|
|
1657
|
-
<
|
|
1658
|
-
|
|
1659
|
-
|
|
1679
|
+
@if (isLoading) {
|
|
1680
|
+
<div class="loading-state">
|
|
1681
|
+
<mj-loading text="Loading collections..." size="large"></mj-loading>
|
|
1682
|
+
</div>
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1660
1685
|
<!-- Empty state -->
|
|
1661
|
-
|
|
1662
|
-
<
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1686
|
+
@if (!isLoading && unifiedItems.length === 0) {
|
|
1687
|
+
<div class="empty-state">
|
|
1688
|
+
<i class="fas fa-folder-open"></i>
|
|
1689
|
+
<!-- Search returned no results -->
|
|
1690
|
+
@if (searchQuery) {
|
|
1691
|
+
<h3>No items found</h3>
|
|
1692
|
+
<p>Try adjusting your search</p>
|
|
1693
|
+
}
|
|
1694
|
+
<!-- Empty root level -->
|
|
1695
|
+
@if (!searchQuery && !currentCollectionId) {
|
|
1696
|
+
<h3>No collections yet</h3>
|
|
1697
|
+
<p>Create your first collection to get started</p>
|
|
1698
|
+
@if (canEditCurrent()) {
|
|
1699
|
+
<button class="btn-primary"
|
|
1700
|
+
(click)="createCollection()"
|
|
1701
|
+
>
|
|
1702
|
+
<i class="fas fa-plus"></i>
|
|
1703
|
+
Create Collection
|
|
1704
|
+
</button>
|
|
1705
|
+
}
|
|
1706
|
+
}
|
|
1707
|
+
<!-- Empty collection (has parent) -->
|
|
1708
|
+
@if (!searchQuery && currentCollectionId) {
|
|
1709
|
+
<h3>This collection is empty</h3>
|
|
1710
|
+
<p>Use the <strong>New</strong> button above to add collections or artifacts</p>
|
|
1711
|
+
}
|
|
1712
|
+
</div>
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1689
1715
|
<!-- Grid view -->
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1716
|
+
@if (!isLoading && unifiedItems.length > 0 && viewMode === 'grid') {
|
|
1717
|
+
<div
|
|
1718
|
+
class="unified-grid"
|
|
1719
|
+
[class.select-mode]="isSelectMode">
|
|
1720
|
+
@for (item of unifiedItems; track item) {
|
|
1721
|
+
<div
|
|
1722
|
+
class="grid-item"
|
|
1723
|
+
[class.selected]="item.selected"
|
|
1724
|
+
[class.active]="item.type === 'artifact' && item.artifact?.ID === activeArtifactId"
|
|
1725
|
+
(click)="onItemClick(item, $event)"
|
|
1726
|
+
(dblclick)="onItemDoubleClick(item, $event)"
|
|
1727
|
+
(contextmenu)="onItemContextMenu(item, $event)">
|
|
1728
|
+
<!-- Selection checkbox (only visible in select mode) -->
|
|
1729
|
+
@if (isSelectMode) {
|
|
1730
|
+
<div class="item-checkbox"
|
|
1731
|
+
(click)="toggleItemSelection(item, $event)">
|
|
1732
|
+
<i class="fas"
|
|
1733
|
+
[ngClass]="item.selected ? 'fa-check-circle' : 'fa-circle'"></i>
|
|
1734
|
+
</div>
|
|
1735
|
+
}
|
|
1736
|
+
<!-- Folder item -->
|
|
1737
|
+
@if (item.type === 'folder') {
|
|
1738
|
+
<div
|
|
1739
|
+
class="grid-item-content"
|
|
1740
|
+
[title]="item.description || item.name">
|
|
1741
|
+
<div class="grid-icon folder-icon">
|
|
1742
|
+
<i class="fas fa-folder"></i>
|
|
1743
|
+
@if (item.isShared) {
|
|
1744
|
+
<div class="shared-badge" title="Shared">
|
|
1745
|
+
<i class="fas fa-users"></i>
|
|
1746
|
+
</div>
|
|
1747
|
+
}
|
|
1748
|
+
</div>
|
|
1749
|
+
<div class="grid-info">
|
|
1750
|
+
<div class="grid-name">{{ item.name }}</div>
|
|
1751
|
+
@if (item.description) {
|
|
1752
|
+
<div class="grid-description">
|
|
1753
|
+
{{ item.description }}
|
|
1754
|
+
</div>
|
|
1755
|
+
}
|
|
1756
|
+
@if (item.itemCount !== undefined) {
|
|
1757
|
+
<div class="grid-meta">
|
|
1758
|
+
{{ getItemCountText(item.itemCount) }}
|
|
1759
|
+
</div>
|
|
1760
|
+
}
|
|
1761
|
+
@if (item.isShared && item.owner) {
|
|
1762
|
+
<div class="grid-owner">
|
|
1763
|
+
<i class="fas fa-user"></i>
|
|
1764
|
+
{{ item.owner }}
|
|
1765
|
+
</div>
|
|
1766
|
+
}
|
|
1767
|
+
</div>
|
|
1768
|
+
</div>
|
|
1769
|
+
}
|
|
1770
|
+
<!-- Artifact item -->
|
|
1771
|
+
@if (item.type === 'artifact') {
|
|
1772
|
+
<div
|
|
1773
|
+
class="grid-item-content"
|
|
1774
|
+
[title]="item.description || item.name">
|
|
1775
|
+
<div class="grid-icon artifact-icon">
|
|
1776
|
+
<i class="fas" [ngClass]="item.icon"></i>
|
|
1777
|
+
</div>
|
|
1778
|
+
<div class="grid-info">
|
|
1779
|
+
<div class="grid-name">{{ item.name }}</div>
|
|
1780
|
+
@if (item.description) {
|
|
1781
|
+
<div class="grid-description">
|
|
1782
|
+
{{ item.description }}
|
|
1783
|
+
</div>
|
|
1784
|
+
}
|
|
1785
|
+
<div class="grid-meta">
|
|
1786
|
+
@if (item.versionNumber) {
|
|
1787
|
+
<span class="version-badge">
|
|
1788
|
+
v{{ item.versionNumber }}
|
|
1789
|
+
</span>
|
|
1790
|
+
}
|
|
1791
|
+
@if (item.artifactType) {
|
|
1792
|
+
<span class="artifact-type-badge">
|
|
1793
|
+
{{ item.artifactType }}
|
|
1794
|
+
</span>
|
|
1795
|
+
}
|
|
1796
|
+
</div>
|
|
1797
|
+
</div>
|
|
1798
|
+
</div>
|
|
1799
|
+
}
|
|
1754
1800
|
</div>
|
|
1755
|
-
|
|
1801
|
+
}
|
|
1756
1802
|
</div>
|
|
1757
|
-
|
|
1758
|
-
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1759
1805
|
<!-- List view -->
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
<
|
|
1765
|
-
<
|
|
1766
|
-
<
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
<
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
<
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
class="
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
</
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1806
|
+
@if (!isLoading && unifiedItems.length > 0 && viewMode === 'list') {
|
|
1807
|
+
<div
|
|
1808
|
+
class="unified-list"
|
|
1809
|
+
[class.select-mode]="isSelectMode">
|
|
1810
|
+
<table class="list-table">
|
|
1811
|
+
<thead>
|
|
1812
|
+
<tr>
|
|
1813
|
+
@if (isSelectMode) {
|
|
1814
|
+
<th class="col-checkbox">
|
|
1815
|
+
<i class="fas"
|
|
1816
|
+
[ngClass]="selectedItems.size === unifiedItems.length ? 'fa-check-square' : 'fa-square'"
|
|
1817
|
+
(click)="selectedItems.size === unifiedItems.length ? clearSelection() : selectAll()"></i>
|
|
1818
|
+
</th>
|
|
1819
|
+
}
|
|
1820
|
+
<th class="col-name sortable" (click)="setSortBy('name')">
|
|
1821
|
+
<span>Name</span>
|
|
1822
|
+
@if (sortBy !== 'name') {
|
|
1823
|
+
<i class="fas fa-sort"></i>
|
|
1824
|
+
}
|
|
1825
|
+
@if (sortBy === 'name') {
|
|
1826
|
+
<i class="fas"
|
|
1827
|
+
[ngClass]="sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'"></i>
|
|
1828
|
+
}
|
|
1829
|
+
</th>
|
|
1830
|
+
<th class="col-type sortable" (click)="setSortBy('type')">
|
|
1831
|
+
<span>Type</span>
|
|
1832
|
+
@if (sortBy !== 'type') {
|
|
1833
|
+
<i class="fas fa-sort"></i>
|
|
1834
|
+
}
|
|
1835
|
+
@if (sortBy === 'type') {
|
|
1836
|
+
<i class="fas"
|
|
1837
|
+
[ngClass]="sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'"></i>
|
|
1838
|
+
}
|
|
1839
|
+
</th>
|
|
1840
|
+
<th class="col-modified sortable" (click)="setSortBy('date')">
|
|
1841
|
+
<span>Modified</span>
|
|
1842
|
+
@if (sortBy !== 'date') {
|
|
1843
|
+
<i class="fas fa-sort"></i>
|
|
1844
|
+
}
|
|
1845
|
+
@if (sortBy === 'date') {
|
|
1846
|
+
<i class="fas"
|
|
1847
|
+
[ngClass]="sortOrder === 'asc' ? 'fa-sort-up' : 'fa-sort-down'"></i>
|
|
1848
|
+
}
|
|
1849
|
+
</th>
|
|
1850
|
+
<th class="col-owner">Owner</th>
|
|
1851
|
+
</tr>
|
|
1852
|
+
</thead>
|
|
1853
|
+
<tbody>
|
|
1854
|
+
@for (item of unifiedItems; track item) {
|
|
1855
|
+
<tr
|
|
1856
|
+
class="list-item"
|
|
1857
|
+
[class.selected]="item.selected"
|
|
1858
|
+
[class.active]="item.type === 'artifact' && item.artifact?.ID === activeArtifactId"
|
|
1859
|
+
(click)="onItemClick(item, $event)"
|
|
1860
|
+
(dblclick)="onItemDoubleClick(item, $event)"
|
|
1861
|
+
(contextmenu)="onItemContextMenu(item, $event)">
|
|
1862
|
+
@if (isSelectMode) {
|
|
1863
|
+
<td class="col-checkbox">
|
|
1864
|
+
<i class="fas"
|
|
1865
|
+
[ngClass]="item.selected ? 'fa-check-circle' : 'fa-circle'"
|
|
1866
|
+
(click)="toggleItemSelection(item, $event)"></i>
|
|
1867
|
+
</td>
|
|
1868
|
+
}
|
|
1869
|
+
<td class="col-name">
|
|
1870
|
+
<div class="list-name-cell">
|
|
1871
|
+
<i class="fas"
|
|
1872
|
+
[ngClass]="item.type === 'folder' ? 'fa-folder' : item.icon"></i>
|
|
1873
|
+
<span>{{ item.name }}</span>
|
|
1874
|
+
@if (item.isShared) {
|
|
1875
|
+
<i class="fas fa-users shared-indicator"
|
|
1876
|
+
title="Shared"></i>
|
|
1877
|
+
}
|
|
1878
|
+
</div>
|
|
1879
|
+
</td>
|
|
1880
|
+
<td class="col-type">
|
|
1881
|
+
@if (item.type === 'folder') {
|
|
1882
|
+
<span>Folder</span>
|
|
1883
|
+
}
|
|
1884
|
+
@if (item.type === 'artifact') {
|
|
1885
|
+
<span class="artifact-type-badge">
|
|
1886
|
+
{{ item.artifactType }}
|
|
1887
|
+
</span>
|
|
1888
|
+
}
|
|
1889
|
+
</td>
|
|
1890
|
+
<td class="col-modified">
|
|
1891
|
+
@if (item.lastModified) {
|
|
1892
|
+
<span>
|
|
1893
|
+
{{ item.lastModified | date:'short' }}
|
|
1894
|
+
</span>
|
|
1895
|
+
}
|
|
1896
|
+
</td>
|
|
1897
|
+
<td class="col-owner">
|
|
1898
|
+
@if (item.owner) {
|
|
1899
|
+
<span>{{ item.owner }}</span>
|
|
1900
|
+
}
|
|
1901
|
+
</td>
|
|
1902
|
+
</tr>
|
|
1903
|
+
}
|
|
1904
|
+
</tbody>
|
|
1905
|
+
</table>
|
|
1906
|
+
</div>
|
|
1907
|
+
}
|
|
1838
1908
|
</div>
|
|
1839
1909
|
</div>
|
|
1840
|
-
|
|
1910
|
+
|
|
1841
1911
|
<!-- Modals (unchanged) -->
|
|
1842
1912
|
<mj-collection-form-modal
|
|
1843
1913
|
[isOpen]="isFormModalOpen"
|
|
@@ -1848,7 +1918,7 @@ export class CollectionsFullViewComponent {
|
|
|
1848
1918
|
(saved)="onCollectionSaved($event)"
|
|
1849
1919
|
(cancelled)="onFormCancelled()">
|
|
1850
1920
|
</mj-collection-form-modal>
|
|
1851
|
-
|
|
1921
|
+
|
|
1852
1922
|
<mj-artifact-create-modal
|
|
1853
1923
|
[isOpen]="isArtifactModalOpen"
|
|
1854
1924
|
[collectionId]="currentCollectionId || ''"
|
|
@@ -1857,7 +1927,7 @@ export class CollectionsFullViewComponent {
|
|
|
1857
1927
|
(saved)="onArtifactSaved($event)"
|
|
1858
1928
|
(cancelled)="onArtifactModalCancelled()">
|
|
1859
1929
|
</mj-artifact-create-modal>
|
|
1860
|
-
|
|
1930
|
+
|
|
1861
1931
|
<mj-collection-share-modal
|
|
1862
1932
|
[isOpen]="isShareModalOpen"
|
|
1863
1933
|
[collection]="sharingCollection"
|
|
@@ -1866,13 +1936,13 @@ export class CollectionsFullViewComponent {
|
|
|
1866
1936
|
(saved)="onPermissionsChanged()"
|
|
1867
1937
|
(cancelled)="onShareModalCancelled()">
|
|
1868
1938
|
</mj-collection-share-modal>
|
|
1869
|
-
`, styles: ["\n /* Main container */\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #FAFAFA;\n position: relative;\n }\n\n /* Header */\n .collections-header {\n display: flex;\n align-items: center;\n padding: 12px 20px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n background: white;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n font-size: 14px;\n }\n\n .breadcrumb-link:hover {\n color: #0076D6;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n /* Button styles */\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #007AFF;\n border: none;\n border-radius: 6px;\n color: white;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 150ms ease;\n }\n\n .btn-primary:hover {\n background: #0051D5;\n }\n\n .btn-primary i.fa-chevron-down {\n font-size: 10px;\n margin-left: 2px;\n }\n\n .btn-icon {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .btn-icon:hover {\n background: #F9FAFB;\n color: #111827;\n border-color: #9CA3AF;\n }\n\n .btn-icon.active {\n background: #EFF6FF;\n color: #007AFF;\n border-color: #007AFF;\n }\n\n .btn-icon.active:hover {\n background: #DBEAFE;\n }\n\n /* Dropdown menus */\n .dropdown-container {\n position: relative;\n }\n\n .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 200px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n z-index: 1000;\n }\n\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .dropdown-item:hover:not(:disabled) {\n background: #F3F4F6;\n }\n\n .dropdown-item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .dropdown-item.active {\n background: #EFF6FF;\n color: #007AFF;\n }\n\n .dropdown-item i {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .dropdown-item.active i {\n color: #007AFF;\n }\n\n .dropdown-divider {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n\n /* Search */\n .search-container {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n }\n\n .search-container i.fa-search {\n position: absolute;\n left: 10px;\n color: #9CA3AF;\n font-size: 13px;\n pointer-events: none;\n }\n\n .search-input {\n width: 100%;\n padding: 6px 32px 6px 32px;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n transition: all 150ms ease;\n }\n\n .search-input:focus {\n border-color: #007AFF;\n box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);\n }\n\n .search-clear {\n position: absolute;\n right: 6px;\n padding: 4px;\n background: transparent;\n border: none;\n color: #9CA3AF;\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .search-clear:hover {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n /* Selection toolbar */\n .selection-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: #EFF6FF;\n border-bottom: 1px solid #BFDBFE;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .selection-count {\n font-size: 13px;\n font-weight: 600;\n color: #1E40AF;\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: white;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n color: #374151;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .btn-toolbar:hover {\n background: #F9FAFB;\n border-color: #9CA3AF;\n }\n\n .btn-toolbar.btn-danger {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-toolbar.btn-danger:hover {\n background: #FEE2E2;\n border-color: #DC2626;\n }\n\n /* Content area */\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n }\n\n /* Loading and empty states */\n .loading-state, .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n text-align: center;\n padding: 48px 24px;\n }\n\n .empty-state i {\n font-size: 64px;\n margin-bottom: 24px;\n opacity: 0.3;\n color: #D1D5DB;\n }\n\n .empty-state h3 {\n margin: 0 0 8px 0;\n color: #374151;\n font-size: 18px;\n font-weight: 600;\n }\n\n .empty-state p {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: #6B7280;\n }\n\n .empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n /* Grid view */\n .unified-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n gap: 16px;\n padding: 4px;\n }\n\n .grid-item {\n display: flex;\n flex-direction: column;\n padding: 12px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n position: relative;\n user-select: none;\n }\n\n .grid-item:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n }\n\n .grid-item.selected {\n background: #EFF6FF;\n border-color: #007AFF;\n }\n\n .grid-item.active {\n background: #FEF3C7;\n border-color: #F59E0B;\n box-shadow: 0 0 0 1px #F59E0B;\n }\n\n .grid-item.active:hover {\n background: #FDE68A;\n }\n\n /* Select mode styling for grid */\n .unified-grid.select-mode .grid-item {\n cursor: pointer;\n }\n\n .unified-grid.select-mode .grid-item:hover {\n background: #EFF6FF;\n border-color: #93C5FD;\n }\n\n .item-checkbox {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .item-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n transition: color 150ms ease;\n }\n\n .grid-item.selected .item-checkbox i,\n .item-checkbox:hover i {\n color: #007AFF;\n }\n\n .grid-item-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n }\n\n .grid-icon {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n position: relative;\n }\n\n .grid-icon.folder-icon {\n background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);\n }\n\n .grid-icon.folder-icon i {\n font-size: 36px;\n color: white;\n }\n\n .grid-icon.artifact-icon {\n background: #F3F4F6;\n }\n\n .grid-icon.artifact-icon i {\n font-size: 32px;\n color: #6B7280;\n }\n\n .shared-badge {\n position: absolute;\n top: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n background: #10B981;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid white;\n }\n\n .shared-badge i {\n font-size: 10px;\n color: white;\n }\n\n .grid-info {\n width: 100%;\n text-align: center;\n }\n\n .grid-name {\n font-size: 13px;\n font-weight: 500;\n color: #111827;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-description {\n font-size: 11px;\n color: #6B7280;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-meta {\n font-size: 11px;\n color: #6B7280;\n margin-top: 4px;\n }\n\n .grid-owner {\n font-size: 11px;\n color: #6B7280;\n margin-top: 2px;\n }\n\n .grid-owner i {\n font-size: 10px;\n margin-right: 3px;\n }\n\n .version-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #FEF3C7;\n color: #92400E;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n font-family: monospace;\n margin-right: 4px;\n }\n\n .artifact-type-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #DBEAFE;\n color: #1E40AF;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n /* List view */\n .unified-list {\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .list-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .list-table thead {\n background: #F9FAFB;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .list-table th {\n padding: 10px 16px;\n text-align: left;\n font-size: 12px;\n font-weight: 600;\n color: #6B7280;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .list-table th.sortable {\n cursor: pointer;\n user-select: none;\n transition: color 150ms ease;\n }\n\n .list-table th.sortable:hover {\n color: #007AFF;\n }\n\n .list-table th.sortable span {\n display: inline-block;\n margin-right: 6px;\n }\n\n .list-table th.sortable i {\n font-size: 10px;\n opacity: 0.5;\n }\n\n .list-table th.sortable:hover i {\n opacity: 1;\n }\n\n .list-table tbody tr {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n cursor: pointer;\n user-select: none;\n }\n\n .list-table tbody tr:last-child {\n border-bottom: none;\n }\n\n .list-table tbody tr:hover {\n background: #F9FAFB;\n }\n\n .list-table tbody tr.selected {\n background: #EFF6FF;\n }\n\n .list-table tbody tr.active {\n background: #FEF3C7;\n border-left: 3px solid #F59E0B;\n }\n\n .list-table tbody tr.active:hover {\n background: #FDE68A;\n }\n\n .list-table td {\n padding: 12px 16px;\n font-size: 13px;\n color: #374151;\n }\n\n .col-checkbox {\n width: 40px;\n text-align: center;\n }\n\n .col-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n transition: color 150ms ease;\n }\n\n .col-checkbox i:hover,\n .list-table tbody tr.selected .col-checkbox i {\n color: #007AFF;\n }\n\n .col-name {\n min-width: 300px;\n }\n\n .list-name-cell {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .list-name-cell i {\n font-size: 16px;\n color: #6B7280;\n width: 20px;\n text-align: center;\n }\n\n .list-name-cell .fa-folder {\n color: #3B82F6;\n }\n\n .shared-indicator {\n font-size: 12px;\n color: #10B981;\n margin-left: auto;\n }\n\n .col-type {\n width: 150px;\n }\n\n .col-modified {\n width: 180px;\n }\n\n .col-owner {\n width: 150px;\n }\n "] }]
|
|
1870
|
-
}], () => [{ type: i1.DialogService }, { type: i2.ArtifactStateService }, { type: i3.CollectionStateService }, { type: i4.CollectionPermissionService }, { type: i5.ArtifactIconService }], { environmentId: [{
|
|
1939
|
+
`, styles: ["\n /* Main container */\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #FAFAFA;\n position: relative;\n }\n\n /* Header */\n .collections-header {\n display: flex;\n align-items: center;\n padding: 12px 20px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n background: white;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n font-size: 14px;\n }\n\n .breadcrumb-link:hover {\n color: #0076D6;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 6px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n /* Button styles */\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #007AFF;\n border: none;\n border-radius: 6px;\n color: white;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 150ms ease;\n }\n\n .btn-primary:hover {\n background: #0051D5;\n }\n\n .btn-primary i.fa-chevron-down {\n font-size: 10px;\n margin-left: 2px;\n }\n\n .btn-icon {\n padding: 6px 10px;\n background: transparent;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .btn-icon:hover {\n background: #F9FAFB;\n color: #111827;\n border-color: #9CA3AF;\n }\n\n .btn-icon.active {\n background: #EFF6FF;\n color: #007AFF;\n border-color: #007AFF;\n }\n\n .btn-icon.active:hover {\n background: #DBEAFE;\n }\n\n /* Dropdown menus */\n .dropdown-container {\n position: relative;\n }\n\n .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 200px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n z-index: 1000;\n }\n\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n border: none;\n border-radius: 4px;\n color: #111827;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n transition: background 100ms ease;\n }\n\n .dropdown-item:hover:not(:disabled) {\n background: #F3F4F6;\n }\n\n .dropdown-item:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .dropdown-item.active {\n background: #EFF6FF;\n color: #007AFF;\n }\n\n .dropdown-item i {\n font-size: 14px;\n width: 16px;\n text-align: center;\n color: #6B7280;\n }\n\n .dropdown-item.active i {\n color: #007AFF;\n }\n\n .dropdown-divider {\n height: 1px;\n background: #E5E7EB;\n margin: 4px 0;\n }\n\n /* Search */\n .search-container {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 200px;\n }\n\n .search-container i.fa-search {\n position: absolute;\n left: 10px;\n color: #9CA3AF;\n font-size: 13px;\n pointer-events: none;\n }\n\n .search-input {\n width: 100%;\n padding: 6px 32px 6px 32px;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n font-size: 13px;\n outline: none;\n transition: all 150ms ease;\n }\n\n .search-input:focus {\n border-color: #007AFF;\n box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);\n }\n\n .search-clear {\n position: absolute;\n right: 6px;\n padding: 4px;\n background: transparent;\n border: none;\n color: #9CA3AF;\n cursor: pointer;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .search-clear:hover {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n /* Selection toolbar */\n .selection-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: #EFF6FF;\n border-bottom: 1px solid #BFDBFE;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .selection-count {\n font-size: 13px;\n font-weight: 600;\n color: #1E40AF;\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: white;\n border: 1px solid #D1D5DB;\n border-radius: 6px;\n color: #374151;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .btn-toolbar:hover {\n background: #F9FAFB;\n border-color: #9CA3AF;\n }\n\n .btn-toolbar.btn-danger {\n color: #DC2626;\n border-color: #FCA5A5;\n }\n\n .btn-toolbar.btn-danger:hover {\n background: #FEE2E2;\n border-color: #DC2626;\n }\n\n /* Content area */\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n }\n\n /* Loading and empty states */\n .loading-state, .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n text-align: center;\n padding: 48px 24px;\n }\n\n .empty-state i {\n font-size: 64px;\n margin-bottom: 24px;\n opacity: 0.3;\n color: #D1D5DB;\n }\n\n .empty-state h3 {\n margin: 0 0 8px 0;\n color: #374151;\n font-size: 18px;\n font-weight: 600;\n }\n\n .empty-state p {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: #6B7280;\n }\n\n .empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n /* Grid view */\n .unified-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n gap: 16px;\n padding: 4px;\n }\n\n .grid-item {\n display: flex;\n flex-direction: column;\n padding: 12px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n position: relative;\n user-select: none;\n }\n\n .grid-item:hover {\n background: #F9FAFB;\n border-color: #D1D5DB;\n }\n\n .grid-item.selected {\n background: #EFF6FF;\n border-color: #007AFF;\n }\n\n .grid-item.active {\n background: #FEF3C7;\n border-color: #F59E0B;\n box-shadow: 0 0 0 1px #F59E0B;\n }\n\n .grid-item.active:hover {\n background: #FDE68A;\n }\n\n /* Select mode styling for grid */\n .unified-grid.select-mode .grid-item {\n cursor: pointer;\n }\n\n .unified-grid.select-mode .grid-item:hover {\n background: #EFF6FF;\n border-color: #93C5FD;\n }\n\n .item-checkbox {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .item-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n transition: color 150ms ease;\n }\n\n .grid-item.selected .item-checkbox i,\n .item-checkbox:hover i {\n color: #007AFF;\n }\n\n .grid-item-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n }\n\n .grid-icon {\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n position: relative;\n }\n\n .grid-icon.folder-icon {\n background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);\n }\n\n .grid-icon.folder-icon i {\n font-size: 36px;\n color: white;\n }\n\n .grid-icon.artifact-icon {\n background: #F3F4F6;\n }\n\n .grid-icon.artifact-icon i {\n font-size: 32px;\n color: #6B7280;\n }\n\n .shared-badge {\n position: absolute;\n top: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n background: #10B981;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid white;\n }\n\n .shared-badge i {\n font-size: 10px;\n color: white;\n }\n\n .grid-info {\n width: 100%;\n text-align: center;\n }\n\n .grid-name {\n font-size: 13px;\n font-weight: 500;\n color: #111827;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-description {\n font-size: 11px;\n color: #6B7280;\n line-height: 1.3;\n margin-bottom: 4px;\n /* Allow wrapping to 2 lines max */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n }\n\n .grid-meta {\n font-size: 11px;\n color: #6B7280;\n margin-top: 4px;\n }\n\n .grid-owner {\n font-size: 11px;\n color: #6B7280;\n margin-top: 2px;\n }\n\n .grid-owner i {\n font-size: 10px;\n margin-right: 3px;\n }\n\n .version-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #FEF3C7;\n color: #92400E;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n font-family: monospace;\n margin-right: 4px;\n }\n\n .artifact-type-badge {\n display: inline-block;\n padding: 2px 6px;\n background: #DBEAFE;\n color: #1E40AF;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n /* List view */\n .unified-list {\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .list-table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .list-table thead {\n background: #F9FAFB;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .list-table th {\n padding: 10px 16px;\n text-align: left;\n font-size: 12px;\n font-weight: 600;\n color: #6B7280;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .list-table th.sortable {\n cursor: pointer;\n user-select: none;\n transition: color 150ms ease;\n }\n\n .list-table th.sortable:hover {\n color: #007AFF;\n }\n\n .list-table th.sortable span {\n display: inline-block;\n margin-right: 6px;\n }\n\n .list-table th.sortable i {\n font-size: 10px;\n opacity: 0.5;\n }\n\n .list-table th.sortable:hover i {\n opacity: 1;\n }\n\n .list-table tbody tr {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n cursor: pointer;\n user-select: none;\n }\n\n .list-table tbody tr:last-child {\n border-bottom: none;\n }\n\n .list-table tbody tr:hover {\n background: #F9FAFB;\n }\n\n .list-table tbody tr.selected {\n background: #EFF6FF;\n }\n\n .list-table tbody tr.active {\n background: #FEF3C7;\n border-left: 3px solid #F59E0B;\n }\n\n .list-table tbody tr.active:hover {\n background: #FDE68A;\n }\n\n .list-table td {\n padding: 12px 16px;\n font-size: 13px;\n color: #374151;\n }\n\n .col-checkbox {\n width: 40px;\n text-align: center;\n }\n\n .col-checkbox i {\n font-size: 16px;\n color: #9CA3AF;\n cursor: pointer;\n transition: color 150ms ease;\n }\n\n .col-checkbox i:hover,\n .list-table tbody tr.selected .col-checkbox i {\n color: #007AFF;\n }\n\n .col-name {\n min-width: 300px;\n }\n\n .list-name-cell {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .list-name-cell i {\n font-size: 16px;\n color: #6B7280;\n width: 20px;\n text-align: center;\n }\n\n .list-name-cell .fa-folder {\n color: #3B82F6;\n }\n\n .shared-indicator {\n font-size: 12px;\n color: #10B981;\n margin-left: auto;\n }\n\n .col-type {\n width: 150px;\n }\n\n .col-modified {\n width: 180px;\n }\n\n .col-owner {\n width: 150px;\n }\n "] }]
|
|
1940
|
+
}], () => [{ type: i1.DialogService }, { type: i2.ArtifactStateService }, { type: i3.CollectionStateService }, { type: i4.CollectionPermissionService }, { type: i5.ArtifactIconService }, { type: i0.ChangeDetectorRef }], { environmentId: [{
|
|
1871
1941
|
type: Input
|
|
1872
1942
|
}], currentUser: [{
|
|
1873
1943
|
type: Input
|
|
1874
1944
|
}], collectionNavigated: [{
|
|
1875
1945
|
type: Output
|
|
1876
1946
|
}] }); })();
|
|
1877
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionsFullViewComponent, { className: "CollectionsFullViewComponent", filePath: "src/lib/components/collection/collections-full-view.component.ts", lineNumber:
|
|
1947
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionsFullViewComponent, { className: "CollectionsFullViewComponent", filePath: "src/lib/components/collection/collections-full-view.component.ts", lineNumber: 1123 }); })();
|
|
1878
1948
|
//# sourceMappingURL=collections-full-view.component.js.map
|