@memberjunction/ng-conversations 2.121.0 → 2.122.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/dist/lib/components/artifact/artifact-share-modal.component.js +2 -2
- 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 +18 -17
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +2 -2
- package/dist/lib/components/collection/collections-full-view.component.d.ts +29 -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 +328 -222
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +74 -77
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +13 -14
- 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 +4 -7
- package/dist/lib/components/conversation/conversation-list.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 +8 -11
- package/dist/lib/components/export/export-modal.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 +9 -11
- 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 +9 -12
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +2 -2
- package/dist/lib/components/message/message-input-box.component.js +2 -2
- package/dist/lib/components/message/message-input.component.js +2 -2
- package/dist/lib/components/message/message-item.component.js +2 -2
- package/dist/lib/components/search/search-panel.component.js +8 -10
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts +2 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +8 -1
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/toast/toast.component.js +2 -2
- package/dist/lib/components/toast/toast.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +30 -29
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +8 -7
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +5 -1
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/navigation-request.model.d.ts +26 -0
- package/dist/lib/models/navigation-request.model.d.ts.map +1 -0
- package/dist/lib/models/navigation-request.model.js +2 -0
- package/dist/lib/models/navigation-request.model.js.map +1 -0
- package/dist/lib/services/conversation-state.service.d.ts +11 -1
- package/dist/lib/services/conversation-state.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-state.service.js +20 -1
- package/dist/lib/services/conversation-state.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +0 -7
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +17 -16
|
@@ -9,13 +9,14 @@ import * as i4 from "../../services/collection-permission.service";
|
|
|
9
9
|
import * as i5 from "@memberjunction/ng-artifacts";
|
|
10
10
|
import * as i6 from "@angular/common";
|
|
11
11
|
import * as i7 from "@angular/forms";
|
|
12
|
-
import * as i8 from "
|
|
13
|
-
import * as i9 from "./collection-
|
|
14
|
-
import * as i10 from "./
|
|
12
|
+
import * as i8 from "@memberjunction/ng-shared-generic";
|
|
13
|
+
import * as i9 from "./collection-share-modal.component";
|
|
14
|
+
import * as i10 from "./collection-form-modal.component";
|
|
15
|
+
import * as i11 from "./artifact-create-modal.component";
|
|
15
16
|
function CollectionsFullViewComponent_span_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
17
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
17
18
|
i0.ɵɵelementContainerStart(0);
|
|
18
|
-
i0.ɵɵelement(1, "i",
|
|
19
|
+
i0.ɵɵelement(1, "i", 29);
|
|
19
20
|
i0.ɵɵelementStart(2, "a", 5);
|
|
20
21
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_span_7_ng_container_1_Template_a_click_2_listener() { const crumb_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.navigateTo(crumb_r2)); });
|
|
21
22
|
i0.ɵɵtext(3);
|
|
@@ -30,31 +31,31 @@ function CollectionsFullViewComponent_span_7_ng_container_1_Template(rf, ctx) {
|
|
|
30
31
|
i0.ɵɵtextInterpolate1(" ", crumb_r2.name, " ");
|
|
31
32
|
} }
|
|
32
33
|
function CollectionsFullViewComponent_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
-
i0.ɵɵelementStart(0, "span",
|
|
34
|
-
i0.ɵɵtemplate(1, CollectionsFullViewComponent_span_7_ng_container_1_Template, 4, 3, "ng-container",
|
|
34
|
+
i0.ɵɵelementStart(0, "span", 27);
|
|
35
|
+
i0.ɵɵtemplate(1, CollectionsFullViewComponent_span_7_ng_container_1_Template, 4, 3, "ng-container", 28);
|
|
35
36
|
i0.ɵɵelementEnd();
|
|
36
37
|
} if (rf & 2) {
|
|
37
38
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
38
39
|
i0.ɵɵadvance();
|
|
39
40
|
i0.ɵɵproperty("ngForOf", ctx_r2.breadcrumbs);
|
|
40
41
|
} }
|
|
41
|
-
function
|
|
42
|
+
function CollectionsFullViewComponent_div_13_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
42
43
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
43
|
-
i0.ɵɵelementStart(0, "div",
|
|
44
|
-
i0.ɵɵlistener("click", function
|
|
45
|
-
i0.ɵɵelement(2, "i",
|
|
44
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "button", 35);
|
|
45
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_13_div_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("name")); });
|
|
46
|
+
i0.ɵɵelement(2, "i", 36);
|
|
46
47
|
i0.ɵɵelementStart(3, "span");
|
|
47
48
|
i0.ɵɵtext(4, "Sort by Name");
|
|
48
49
|
i0.ɵɵelementEnd()();
|
|
49
|
-
i0.ɵɵelementStart(5, "button",
|
|
50
|
-
i0.ɵɵlistener("click", function
|
|
51
|
-
i0.ɵɵelement(6, "i",
|
|
50
|
+
i0.ɵɵelementStart(5, "button", 35);
|
|
51
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_13_div_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("date")); });
|
|
52
|
+
i0.ɵɵelement(6, "i", 37);
|
|
52
53
|
i0.ɵɵelementStart(7, "span");
|
|
53
54
|
i0.ɵɵtext(8, "Sort by Date");
|
|
54
55
|
i0.ɵɵelementEnd()();
|
|
55
|
-
i0.ɵɵelementStart(9, "button",
|
|
56
|
-
i0.ɵɵlistener("click", function
|
|
57
|
-
i0.ɵɵelement(10, "i",
|
|
56
|
+
i0.ɵɵelementStart(9, "button", 35);
|
|
57
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_13_div_3_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.setSortBy("type")); });
|
|
58
|
+
i0.ɵɵelement(10, "i", 38);
|
|
58
59
|
i0.ɵɵelementStart(11, "span");
|
|
59
60
|
i0.ɵɵtext(12, "Sort by Type");
|
|
60
61
|
i0.ɵɵelementEnd()()();
|
|
@@ -67,37 +68,37 @@ function CollectionsFullViewComponent_div_11_div_3_Template(rf, ctx) { if (rf &
|
|
|
67
68
|
i0.ɵɵadvance(4);
|
|
68
69
|
i0.ɵɵclassProp("active", ctx_r2.sortBy === "type");
|
|
69
70
|
} }
|
|
70
|
-
function
|
|
71
|
+
function CollectionsFullViewComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
71
72
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
72
|
-
i0.ɵɵelementStart(0, "div",
|
|
73
|
-
i0.ɵɵlistener("click", function
|
|
74
|
-
i0.ɵɵelement(2, "i",
|
|
73
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "button", 31);
|
|
74
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.showSortDropdown = !ctx_r2.showSortDropdown); });
|
|
75
|
+
i0.ɵɵelement(2, "i", 32);
|
|
75
76
|
i0.ɵɵelementEnd();
|
|
76
|
-
i0.ɵɵtemplate(3,
|
|
77
|
+
i0.ɵɵtemplate(3, CollectionsFullViewComponent_div_13_div_3_Template, 13, 6, "div", 33);
|
|
77
78
|
i0.ɵɵelementEnd();
|
|
78
79
|
} if (rf & 2) {
|
|
79
80
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
80
81
|
i0.ɵɵadvance(3);
|
|
81
82
|
i0.ɵɵproperty("ngIf", ctx_r2.showSortDropdown);
|
|
82
83
|
} }
|
|
83
|
-
function
|
|
84
|
+
function CollectionsFullViewComponent_button_17_Template(rf, ctx) { if (rf & 1) {
|
|
84
85
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
85
|
-
i0.ɵɵelementStart(0, "button",
|
|
86
|
-
i0.ɵɵlistener("click", function
|
|
87
|
-
i0.ɵɵelement(1, "i",
|
|
86
|
+
i0.ɵɵelementStart(0, "button", 39);
|
|
87
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.searchQuery = ""; return i0.ɵɵresetView(ctx_r2.onSearchChange("")); });
|
|
88
|
+
i0.ɵɵelement(1, "i", 40);
|
|
88
89
|
i0.ɵɵelementEnd();
|
|
89
90
|
} }
|
|
90
|
-
function
|
|
91
|
+
function CollectionsFullViewComponent_div_18_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
91
92
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
92
|
-
i0.ɵɵelementStart(0, "div",
|
|
93
|
-
i0.ɵɵlistener("click", function
|
|
94
|
-
i0.ɵɵelement(2, "i",
|
|
93
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "button", 35);
|
|
94
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_18_div_6_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.createCollection()); });
|
|
95
|
+
i0.ɵɵelement(2, "i", 46);
|
|
95
96
|
i0.ɵɵelementStart(3, "span");
|
|
96
97
|
i0.ɵɵtext(4, "New Collection");
|
|
97
98
|
i0.ɵɵelementEnd()();
|
|
98
|
-
i0.ɵɵelementStart(5, "button",
|
|
99
|
-
i0.ɵɵlistener("click", function
|
|
100
|
-
i0.ɵɵelement(6, "i",
|
|
99
|
+
i0.ɵɵelementStart(5, "button", 47);
|
|
100
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_18_div_6_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.addArtifact()); });
|
|
101
|
+
i0.ɵɵelement(6, "i", 48);
|
|
101
102
|
i0.ɵɵelementStart(7, "span");
|
|
102
103
|
i0.ɵɵtext(8, "New Artifact");
|
|
103
104
|
i0.ɵɵelementEnd()()();
|
|
@@ -106,36 +107,36 @@ function CollectionsFullViewComponent_div_16_div_6_Template(rf, ctx) { if (rf &
|
|
|
106
107
|
i0.ɵɵadvance(5);
|
|
107
108
|
i0.ɵɵproperty("disabled", !ctx_r2.currentCollectionId);
|
|
108
109
|
} }
|
|
109
|
-
function
|
|
110
|
+
function CollectionsFullViewComponent_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
110
111
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
111
|
-
i0.ɵɵelementStart(0, "div",
|
|
112
|
-
i0.ɵɵlistener("click", function
|
|
113
|
-
i0.ɵɵelement(2, "i",
|
|
112
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "button", 41);
|
|
113
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_18_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.showNewDropdown = !ctx_r2.showNewDropdown); });
|
|
114
|
+
i0.ɵɵelement(2, "i", 42);
|
|
114
115
|
i0.ɵɵelementStart(3, "span");
|
|
115
116
|
i0.ɵɵtext(4, "New");
|
|
116
117
|
i0.ɵɵelementEnd();
|
|
117
|
-
i0.ɵɵelement(5, "i",
|
|
118
|
+
i0.ɵɵelement(5, "i", 43);
|
|
118
119
|
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵtemplate(6,
|
|
120
|
+
i0.ɵɵtemplate(6, CollectionsFullViewComponent_div_18_div_6_Template, 9, 1, "div", 44);
|
|
120
121
|
i0.ɵɵelementEnd();
|
|
121
122
|
} if (rf & 2) {
|
|
122
123
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
123
124
|
i0.ɵɵadvance(6);
|
|
124
125
|
i0.ɵɵproperty("ngIf", ctx_r2.showNewDropdown);
|
|
125
126
|
} }
|
|
126
|
-
function
|
|
127
|
+
function CollectionsFullViewComponent_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
127
128
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
128
|
-
i0.ɵɵelementStart(0, "div",
|
|
129
|
+
i0.ɵɵelementStart(0, "div", 49)(1, "div", 50)(2, "span", 51);
|
|
129
130
|
i0.ɵɵtext(3);
|
|
130
131
|
i0.ɵɵelementEnd()();
|
|
131
|
-
i0.ɵɵelementStart(4, "div",
|
|
132
|
-
i0.ɵɵlistener("click", function
|
|
133
|
-
i0.ɵɵelement(6, "i",
|
|
132
|
+
i0.ɵɵelementStart(4, "div", 52)(5, "button", 53);
|
|
133
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_21_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSelection()); });
|
|
134
|
+
i0.ɵɵelement(6, "i", 40);
|
|
134
135
|
i0.ɵɵtext(7, " Clear Selection ");
|
|
135
136
|
i0.ɵɵelementEnd();
|
|
136
|
-
i0.ɵɵelementStart(8, "button",
|
|
137
|
-
i0.ɵɵlistener("click", function
|
|
138
|
-
i0.ɵɵelement(9, "i",
|
|
137
|
+
i0.ɵɵelementStart(8, "button", 54);
|
|
138
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_21_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteSelected()); });
|
|
139
|
+
i0.ɵɵelement(9, "i", 55);
|
|
139
140
|
i0.ɵɵtext(10, " Delete Selected ");
|
|
140
141
|
i0.ɵɵelementEnd()()();
|
|
141
142
|
} if (rf & 2) {
|
|
@@ -143,14 +144,12 @@ function CollectionsFullViewComponent_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
143
144
|
i0.ɵɵadvance(3);
|
|
144
145
|
i0.ɵɵtextInterpolate1("", ctx_r2.selectedItems.size, " selected");
|
|
145
146
|
} }
|
|
146
|
-
function
|
|
147
|
-
i0.ɵɵelementStart(0, "div",
|
|
148
|
-
i0.ɵɵelement(1, "
|
|
149
|
-
i0.ɵɵ
|
|
150
|
-
i0.ɵɵtext(3, "Loading collections...");
|
|
151
|
-
i0.ɵɵelementEnd()();
|
|
147
|
+
function CollectionsFullViewComponent_div_23_Template(rf, ctx) { if (rf & 1) {
|
|
148
|
+
i0.ɵɵelementStart(0, "div", 56);
|
|
149
|
+
i0.ɵɵelement(1, "mj-loading", 57);
|
|
150
|
+
i0.ɵɵelementEnd();
|
|
152
151
|
} }
|
|
153
|
-
function
|
|
152
|
+
function CollectionsFullViewComponent_div_24_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
154
153
|
i0.ɵɵelementContainerStart(0);
|
|
155
154
|
i0.ɵɵelementStart(1, "h3");
|
|
156
155
|
i0.ɵɵtext(2, "No items found");
|
|
@@ -160,15 +159,15 @@ function CollectionsFullViewComponent_div_22_ng_container_2_Template(rf, ctx) {
|
|
|
160
159
|
i0.ɵɵelementEnd();
|
|
161
160
|
i0.ɵɵelementContainerEnd();
|
|
162
161
|
} }
|
|
163
|
-
function
|
|
162
|
+
function CollectionsFullViewComponent_div_24_ng_container_3_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
164
163
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
165
|
-
i0.ɵɵelementStart(0, "button",
|
|
166
|
-
i0.ɵɵlistener("click", function
|
|
167
|
-
i0.ɵɵelement(1, "i",
|
|
164
|
+
i0.ɵɵelementStart(0, "button", 41);
|
|
165
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_24_ng_container_3_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.createCollection()); });
|
|
166
|
+
i0.ɵɵelement(1, "i", 42);
|
|
168
167
|
i0.ɵɵtext(2, " Create Collection ");
|
|
169
168
|
i0.ɵɵelementEnd();
|
|
170
169
|
} }
|
|
171
|
-
function
|
|
170
|
+
function CollectionsFullViewComponent_div_24_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
172
171
|
i0.ɵɵelementContainerStart(0);
|
|
173
172
|
i0.ɵɵelementStart(1, "h3");
|
|
174
173
|
i0.ɵɵtext(2, "No collections yet");
|
|
@@ -176,14 +175,14 @@ function CollectionsFullViewComponent_div_22_ng_container_3_Template(rf, ctx) {
|
|
|
176
175
|
i0.ɵɵelementStart(3, "p");
|
|
177
176
|
i0.ɵɵtext(4, "Create your first collection to get started");
|
|
178
177
|
i0.ɵɵelementEnd();
|
|
179
|
-
i0.ɵɵtemplate(5,
|
|
178
|
+
i0.ɵɵtemplate(5, CollectionsFullViewComponent_div_24_ng_container_3_button_5_Template, 3, 0, "button", 61);
|
|
180
179
|
i0.ɵɵelementContainerEnd();
|
|
181
180
|
} if (rf & 2) {
|
|
182
181
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
183
182
|
i0.ɵɵadvance(5);
|
|
184
183
|
i0.ɵɵproperty("ngIf", ctx_r2.canEditCurrent());
|
|
185
184
|
} }
|
|
186
|
-
function
|
|
185
|
+
function CollectionsFullViewComponent_div_24_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
187
186
|
i0.ɵɵelementContainerStart(0);
|
|
188
187
|
i0.ɵɵelementStart(1, "h3");
|
|
189
188
|
i0.ɵɵtext(2, "This collection is empty");
|
|
@@ -197,10 +196,10 @@ function CollectionsFullViewComponent_div_22_ng_container_4_Template(rf, ctx) {
|
|
|
197
196
|
i0.ɵɵelementEnd();
|
|
198
197
|
i0.ɵɵelementContainerEnd();
|
|
199
198
|
} }
|
|
200
|
-
function
|
|
201
|
-
i0.ɵɵelementStart(0, "div",
|
|
202
|
-
i0.ɵɵelement(1, "i",
|
|
203
|
-
i0.ɵɵtemplate(2,
|
|
199
|
+
function CollectionsFullViewComponent_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
+
i0.ɵɵelementStart(0, "div", 58);
|
|
201
|
+
i0.ɵɵelement(1, "i", 59);
|
|
202
|
+
i0.ɵɵtemplate(2, CollectionsFullViewComponent_div_24_ng_container_2_Template, 5, 0, "ng-container", 60)(3, CollectionsFullViewComponent_div_24_ng_container_3_Template, 6, 1, "ng-container", 60)(4, CollectionsFullViewComponent_div_24_ng_container_4_Template, 8, 0, "ng-container", 60);
|
|
204
203
|
i0.ɵɵelementEnd();
|
|
205
204
|
} if (rf & 2) {
|
|
206
205
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -211,13 +210,24 @@ function CollectionsFullViewComponent_div_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
211
210
|
i0.ɵɵadvance();
|
|
212
211
|
i0.ɵɵproperty("ngIf", !ctx_r2.searchQuery && ctx_r2.currentCollectionId);
|
|
213
212
|
} }
|
|
214
|
-
function
|
|
215
|
-
i0.ɵɵ
|
|
216
|
-
i0.ɵɵ
|
|
213
|
+
function CollectionsFullViewComponent_div_25_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
214
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
215
|
+
i0.ɵɵelementStart(0, "div", 67);
|
|
216
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_25_div_1_div_1_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r14); const item_r13 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleItemSelection(item_r13, $event)); });
|
|
217
|
+
i0.ɵɵelement(1, "i", 9);
|
|
217
218
|
i0.ɵɵelementEnd();
|
|
219
|
+
} if (rf & 2) {
|
|
220
|
+
const item_r13 = i0.ɵɵnextContext().$implicit;
|
|
221
|
+
i0.ɵɵadvance();
|
|
222
|
+
i0.ɵɵproperty("ngClass", item_r13.selected ? "fa-check-circle" : "fa-circle");
|
|
218
223
|
} }
|
|
219
|
-
function
|
|
224
|
+
function CollectionsFullViewComponent_div_25_div_1_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
220
225
|
i0.ɵɵelementStart(0, "div", 77);
|
|
226
|
+
i0.ɵɵelement(1, "i", 78);
|
|
227
|
+
i0.ɵɵelementEnd();
|
|
228
|
+
} }
|
|
229
|
+
function CollectionsFullViewComponent_div_25_div_1_div_2_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
i0.ɵɵelementStart(0, "div", 79);
|
|
221
231
|
i0.ɵɵtext(1);
|
|
222
232
|
i0.ɵɵelementEnd();
|
|
223
233
|
} if (rf & 2) {
|
|
@@ -225,8 +235,8 @@ function CollectionsFullViewComponent_div_23_div_1_div_3_div_7_Template(rf, ctx)
|
|
|
225
235
|
i0.ɵɵadvance();
|
|
226
236
|
i0.ɵɵtextInterpolate1(" ", item_r13.description, " ");
|
|
227
237
|
} }
|
|
228
|
-
function
|
|
229
|
-
i0.ɵɵelementStart(0, "div",
|
|
238
|
+
function CollectionsFullViewComponent_div_25_div_1_div_2_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
239
|
+
i0.ɵɵelementStart(0, "div", 80);
|
|
230
240
|
i0.ɵɵtext(1);
|
|
231
241
|
i0.ɵɵelementEnd();
|
|
232
242
|
} if (rf & 2) {
|
|
@@ -235,9 +245,9 @@ function CollectionsFullViewComponent_div_23_div_1_div_3_div_8_Template(rf, ctx)
|
|
|
235
245
|
i0.ɵɵadvance();
|
|
236
246
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.getItemCountText(item_r13.itemCount), " ");
|
|
237
247
|
} }
|
|
238
|
-
function
|
|
239
|
-
i0.ɵɵelementStart(0, "div",
|
|
240
|
-
i0.ɵɵelement(1, "i",
|
|
248
|
+
function CollectionsFullViewComponent_div_25_div_1_div_2_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
249
|
+
i0.ɵɵelementStart(0, "div", 81);
|
|
250
|
+
i0.ɵɵelement(1, "i", 82);
|
|
241
251
|
i0.ɵɵtext(2);
|
|
242
252
|
i0.ɵɵelementEnd();
|
|
243
253
|
} if (rf & 2) {
|
|
@@ -245,15 +255,15 @@ function CollectionsFullViewComponent_div_23_div_1_div_3_div_9_Template(rf, ctx)
|
|
|
245
255
|
i0.ɵɵadvance(2);
|
|
246
256
|
i0.ɵɵtextInterpolate1(" ", item_r13.owner, " ");
|
|
247
257
|
} }
|
|
248
|
-
function
|
|
249
|
-
i0.ɵɵelementStart(0, "div",
|
|
250
|
-
i0.ɵɵelement(2, "i",
|
|
251
|
-
i0.ɵɵtemplate(3,
|
|
258
|
+
function CollectionsFullViewComponent_div_25_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
259
|
+
i0.ɵɵelementStart(0, "div", 68)(1, "div", 69);
|
|
260
|
+
i0.ɵɵelement(2, "i", 70);
|
|
261
|
+
i0.ɵɵtemplate(3, CollectionsFullViewComponent_div_25_div_1_div_2_div_3_Template, 2, 0, "div", 71);
|
|
252
262
|
i0.ɵɵelementEnd();
|
|
253
|
-
i0.ɵɵelementStart(4, "div",
|
|
263
|
+
i0.ɵɵelementStart(4, "div", 72)(5, "div", 73);
|
|
254
264
|
i0.ɵɵtext(6);
|
|
255
265
|
i0.ɵɵelementEnd();
|
|
256
|
-
i0.ɵɵtemplate(7,
|
|
266
|
+
i0.ɵɵtemplate(7, CollectionsFullViewComponent_div_25_div_1_div_2_div_7_Template, 2, 1, "div", 74)(8, CollectionsFullViewComponent_div_25_div_1_div_2_div_8_Template, 2, 1, "div", 75)(9, CollectionsFullViewComponent_div_25_div_1_div_2_div_9_Template, 3, 1, "div", 76);
|
|
257
267
|
i0.ɵɵelementEnd()();
|
|
258
268
|
} if (rf & 2) {
|
|
259
269
|
const item_r13 = i0.ɵɵnextContext().$implicit;
|
|
@@ -269,8 +279,8 @@ function CollectionsFullViewComponent_div_23_div_1_div_3_Template(rf, ctx) { if
|
|
|
269
279
|
i0.ɵɵadvance();
|
|
270
280
|
i0.ɵɵproperty("ngIf", item_r13.isShared && item_r13.owner);
|
|
271
281
|
} }
|
|
272
|
-
function
|
|
273
|
-
i0.ɵɵelementStart(0, "div",
|
|
282
|
+
function CollectionsFullViewComponent_div_25_div_1_div_3_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
283
|
+
i0.ɵɵelementStart(0, "div", 79);
|
|
274
284
|
i0.ɵɵtext(1);
|
|
275
285
|
i0.ɵɵelementEnd();
|
|
276
286
|
} if (rf & 2) {
|
|
@@ -278,8 +288,8 @@ function CollectionsFullViewComponent_div_23_div_1_div_4_div_6_Template(rf, ctx)
|
|
|
278
288
|
i0.ɵɵadvance();
|
|
279
289
|
i0.ɵɵtextInterpolate1(" ", item_r13.description, " ");
|
|
280
290
|
} }
|
|
281
|
-
function
|
|
282
|
-
i0.ɵɵelementStart(0, "span",
|
|
291
|
+
function CollectionsFullViewComponent_div_25_div_1_div_3_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
292
|
+
i0.ɵɵelementStart(0, "span", 86);
|
|
283
293
|
i0.ɵɵtext(1);
|
|
284
294
|
i0.ɵɵelementEnd();
|
|
285
295
|
} if (rf & 2) {
|
|
@@ -287,8 +297,8 @@ function CollectionsFullViewComponent_div_23_div_1_div_4_span_8_Template(rf, ctx
|
|
|
287
297
|
i0.ɵɵadvance();
|
|
288
298
|
i0.ɵɵtextInterpolate1(" v", item_r13.versionNumber, " ");
|
|
289
299
|
} }
|
|
290
|
-
function
|
|
291
|
-
i0.ɵɵelementStart(0, "span",
|
|
300
|
+
function CollectionsFullViewComponent_div_25_div_1_div_3_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
301
|
+
i0.ɵɵelementStart(0, "span", 87);
|
|
292
302
|
i0.ɵɵtext(1);
|
|
293
303
|
i0.ɵɵelementEnd();
|
|
294
304
|
} if (rf & 2) {
|
|
@@ -296,16 +306,16 @@ function CollectionsFullViewComponent_div_23_div_1_div_4_span_9_Template(rf, ctx
|
|
|
296
306
|
i0.ɵɵadvance();
|
|
297
307
|
i0.ɵɵtextInterpolate1(" ", item_r13.artifactType, " ");
|
|
298
308
|
} }
|
|
299
|
-
function
|
|
300
|
-
i0.ɵɵelementStart(0, "div",
|
|
309
|
+
function CollectionsFullViewComponent_div_25_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
310
|
+
i0.ɵɵelementStart(0, "div", 68)(1, "div", 83);
|
|
301
311
|
i0.ɵɵelement(2, "i", 9);
|
|
302
312
|
i0.ɵɵelementEnd();
|
|
303
|
-
i0.ɵɵelementStart(3, "div",
|
|
313
|
+
i0.ɵɵelementStart(3, "div", 72)(4, "div", 73);
|
|
304
314
|
i0.ɵɵtext(5);
|
|
305
315
|
i0.ɵɵelementEnd();
|
|
306
|
-
i0.ɵɵtemplate(6,
|
|
307
|
-
i0.ɵɵelementStart(7, "div",
|
|
308
|
-
i0.ɵɵtemplate(8,
|
|
316
|
+
i0.ɵɵtemplate(6, CollectionsFullViewComponent_div_25_div_1_div_3_div_6_Template, 2, 1, "div", 74);
|
|
317
|
+
i0.ɵɵelementStart(7, "div", 80);
|
|
318
|
+
i0.ɵɵtemplate(8, CollectionsFullViewComponent_div_25_div_1_div_3_span_8_Template, 2, 1, "span", 84)(9, CollectionsFullViewComponent_div_25_div_1_div_3_span_9_Template, 2, 1, "span", 85);
|
|
309
319
|
i0.ɵɵelementEnd()()();
|
|
310
320
|
} if (rf & 2) {
|
|
311
321
|
const item_r13 = i0.ɵɵnextContext().$implicit;
|
|
@@ -321,179 +331,194 @@ function CollectionsFullViewComponent_div_23_div_1_div_4_Template(rf, ctx) { if
|
|
|
321
331
|
i0.ɵɵadvance();
|
|
322
332
|
i0.ɵɵproperty("ngIf", item_r13.artifactType);
|
|
323
333
|
} }
|
|
324
|
-
function
|
|
334
|
+
function CollectionsFullViewComponent_div_25_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
325
335
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
326
|
-
i0.ɵɵelementStart(0, "div",
|
|
327
|
-
i0.ɵɵlistener("click", function
|
|
328
|
-
i0.ɵɵ
|
|
329
|
-
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_23_div_1_Template_div_click_1_listener($event) { const item_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleItemSelection(item_r13, $event)); });
|
|
330
|
-
i0.ɵɵelement(2, "i", 9);
|
|
331
|
-
i0.ɵɵelementEnd();
|
|
332
|
-
i0.ɵɵtemplate(3, CollectionsFullViewComponent_div_23_div_1_div_3_Template, 10, 6, "div", 65)(4, CollectionsFullViewComponent_div_23_div_1_div_4_Template, 10, 6, "div", 65);
|
|
336
|
+
i0.ɵɵelementStart(0, "div", 64);
|
|
337
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_25_div_1_Template_div_click_0_listener($event) { const item_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemClick(item_r13, $event)); })("dblclick", function CollectionsFullViewComponent_div_25_div_1_Template_div_dblclick_0_listener($event) { const item_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemDoubleClick(item_r13, $event)); })("contextmenu", function CollectionsFullViewComponent_div_25_div_1_Template_div_contextmenu_0_listener($event) { const item_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemContextMenu(item_r13, $event)); });
|
|
338
|
+
i0.ɵɵtemplate(1, CollectionsFullViewComponent_div_25_div_1_div_1_Template, 2, 1, "div", 65)(2, CollectionsFullViewComponent_div_25_div_1_div_2_Template, 10, 6, "div", 66)(3, CollectionsFullViewComponent_div_25_div_1_div_3_Template, 10, 6, "div", 66);
|
|
333
339
|
i0.ɵɵelementEnd();
|
|
334
340
|
} if (rf & 2) {
|
|
335
341
|
const item_r13 = ctx.$implicit;
|
|
336
342
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
337
343
|
i0.ɵɵclassProp("selected", item_r13.selected)("active", item_r13.type === "artifact" && (item_r13.artifact == null ? null : item_r13.artifact.ID) === ctx_r2.activeArtifactId);
|
|
338
|
-
i0.ɵɵadvance(
|
|
339
|
-
i0.ɵɵproperty("
|
|
344
|
+
i0.ɵɵadvance();
|
|
345
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isSelectMode);
|
|
340
346
|
i0.ɵɵadvance();
|
|
341
347
|
i0.ɵɵproperty("ngIf", item_r13.type === "folder");
|
|
342
348
|
i0.ɵɵadvance();
|
|
343
349
|
i0.ɵɵproperty("ngIf", item_r13.type === "artifact");
|
|
344
350
|
} }
|
|
345
|
-
function
|
|
346
|
-
i0.ɵɵelementStart(0, "div",
|
|
347
|
-
i0.ɵɵtemplate(1,
|
|
351
|
+
function CollectionsFullViewComponent_div_25_Template(rf, ctx) { if (rf & 1) {
|
|
352
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
353
|
+
i0.ɵɵtemplate(1, CollectionsFullViewComponent_div_25_div_1_Template, 4, 7, "div", 63);
|
|
348
354
|
i0.ɵɵelementEnd();
|
|
349
355
|
} if (rf & 2) {
|
|
350
356
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
357
|
+
i0.ɵɵclassProp("select-mode", ctx_r2.isSelectMode);
|
|
351
358
|
i0.ɵɵadvance();
|
|
352
359
|
i0.ɵɵproperty("ngForOf", ctx_r2.unifiedItems);
|
|
353
360
|
} }
|
|
354
|
-
function
|
|
355
|
-
i0.ɵɵ
|
|
361
|
+
function CollectionsFullViewComponent_div_26_th_4_Template(rf, ctx) { if (rf & 1) {
|
|
362
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
363
|
+
i0.ɵɵelementStart(0, "th", 98)(1, "i", 99);
|
|
364
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_th_4_Template_i_click_1_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectedItems.size === ctx_r2.unifiedItems.length ? ctx_r2.clearSelection() : ctx_r2.selectAll()); });
|
|
365
|
+
i0.ɵɵelementEnd()();
|
|
366
|
+
} if (rf & 2) {
|
|
367
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
368
|
+
i0.ɵɵadvance();
|
|
369
|
+
i0.ɵɵproperty("ngClass", ctx_r2.selectedItems.size === ctx_r2.unifiedItems.length ? "fa-check-square" : "fa-square");
|
|
370
|
+
} }
|
|
371
|
+
function CollectionsFullViewComponent_div_26_i_8_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
i0.ɵɵelement(0, "i", 32);
|
|
356
373
|
} }
|
|
357
|
-
function
|
|
374
|
+
function CollectionsFullViewComponent_div_26_i_9_Template(rf, ctx) { if (rf & 1) {
|
|
358
375
|
i0.ɵɵelement(0, "i", 9);
|
|
359
376
|
} if (rf & 2) {
|
|
360
377
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
361
378
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
362
379
|
} }
|
|
363
|
-
function
|
|
364
|
-
i0.ɵɵelement(0, "i",
|
|
380
|
+
function CollectionsFullViewComponent_div_26_i_13_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
i0.ɵɵelement(0, "i", 32);
|
|
365
382
|
} }
|
|
366
|
-
function
|
|
383
|
+
function CollectionsFullViewComponent_div_26_i_14_Template(rf, ctx) { if (rf & 1) {
|
|
367
384
|
i0.ɵɵelement(0, "i", 9);
|
|
368
385
|
} if (rf & 2) {
|
|
369
386
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
370
387
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
371
388
|
} }
|
|
372
|
-
function
|
|
373
|
-
i0.ɵɵelement(0, "i",
|
|
389
|
+
function CollectionsFullViewComponent_div_26_i_18_Template(rf, ctx) { if (rf & 1) {
|
|
390
|
+
i0.ɵɵelement(0, "i", 32);
|
|
374
391
|
} }
|
|
375
|
-
function
|
|
392
|
+
function CollectionsFullViewComponent_div_26_i_19_Template(rf, ctx) { if (rf & 1) {
|
|
376
393
|
i0.ɵɵelement(0, "i", 9);
|
|
377
394
|
} if (rf & 2) {
|
|
378
395
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
379
396
|
i0.ɵɵproperty("ngClass", ctx_r2.sortOrder === "asc" ? "fa-sort-up" : "fa-sort-down");
|
|
380
397
|
} }
|
|
381
|
-
function
|
|
382
|
-
i0.ɵɵ
|
|
398
|
+
function CollectionsFullViewComponent_div_26_tr_23_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
399
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
400
|
+
i0.ɵɵelementStart(0, "td", 98)(1, "i", 99);
|
|
401
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_tr_23_td_1_Template_i_click_1_listener($event) { i0.ɵɵrestoreView(_r19); const item_r18 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleItemSelection(item_r18, $event)); });
|
|
402
|
+
i0.ɵɵelementEnd()();
|
|
403
|
+
} if (rf & 2) {
|
|
404
|
+
const item_r18 = i0.ɵɵnextContext().$implicit;
|
|
405
|
+
i0.ɵɵadvance();
|
|
406
|
+
i0.ɵɵproperty("ngClass", item_r18.selected ? "fa-check-circle" : "fa-circle");
|
|
383
407
|
} }
|
|
384
|
-
function
|
|
408
|
+
function CollectionsFullViewComponent_div_26_tr_23_i_7_Template(rf, ctx) { if (rf & 1) {
|
|
409
|
+
i0.ɵɵelement(0, "i", 106);
|
|
410
|
+
} }
|
|
411
|
+
function CollectionsFullViewComponent_div_26_tr_23_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
385
412
|
i0.ɵɵelementStart(0, "span");
|
|
386
413
|
i0.ɵɵtext(1, "Folder");
|
|
387
414
|
i0.ɵɵelementEnd();
|
|
388
415
|
} }
|
|
389
|
-
function
|
|
390
|
-
i0.ɵɵelementStart(0, "span",
|
|
416
|
+
function CollectionsFullViewComponent_div_26_tr_23_span_10_Template(rf, ctx) { if (rf & 1) {
|
|
417
|
+
i0.ɵɵelementStart(0, "span", 87);
|
|
391
418
|
i0.ɵɵtext(1);
|
|
392
419
|
i0.ɵɵelementEnd();
|
|
393
420
|
} if (rf & 2) {
|
|
394
|
-
const
|
|
421
|
+
const item_r18 = i0.ɵɵnextContext().$implicit;
|
|
395
422
|
i0.ɵɵadvance();
|
|
396
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
423
|
+
i0.ɵɵtextInterpolate1(" ", item_r18.artifactType, " ");
|
|
397
424
|
} }
|
|
398
|
-
function
|
|
425
|
+
function CollectionsFullViewComponent_div_26_tr_23_span_12_Template(rf, ctx) { if (rf & 1) {
|
|
399
426
|
i0.ɵɵelementStart(0, "span");
|
|
400
427
|
i0.ɵɵtext(1);
|
|
401
428
|
i0.ɵɵpipe(2, "date");
|
|
402
429
|
i0.ɵɵelementEnd();
|
|
403
430
|
} if (rf & 2) {
|
|
404
|
-
const
|
|
431
|
+
const item_r18 = i0.ɵɵnextContext().$implicit;
|
|
405
432
|
i0.ɵɵadvance();
|
|
406
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1,
|
|
433
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, item_r18.lastModified, "short"), " ");
|
|
407
434
|
} }
|
|
408
|
-
function
|
|
435
|
+
function CollectionsFullViewComponent_div_26_tr_23_span_14_Template(rf, ctx) { if (rf & 1) {
|
|
409
436
|
i0.ɵɵelementStart(0, "span");
|
|
410
437
|
i0.ɵɵtext(1);
|
|
411
438
|
i0.ɵɵelementEnd();
|
|
412
439
|
} if (rf & 2) {
|
|
413
|
-
const
|
|
440
|
+
const item_r18 = i0.ɵɵnextContext().$implicit;
|
|
414
441
|
i0.ɵɵadvance();
|
|
415
|
-
i0.ɵɵtextInterpolate(
|
|
442
|
+
i0.ɵɵtextInterpolate(item_r18.owner);
|
|
416
443
|
} }
|
|
417
|
-
function
|
|
418
|
-
const
|
|
419
|
-
i0.ɵɵelementStart(0, "tr",
|
|
420
|
-
i0.ɵɵlistener("click", function
|
|
421
|
-
i0.ɵɵ
|
|
422
|
-
i0.ɵɵ
|
|
423
|
-
i0.ɵɵ
|
|
424
|
-
i0.ɵɵelementStart(
|
|
425
|
-
i0.ɵɵ
|
|
426
|
-
i0.ɵɵelementStart(6, "span");
|
|
427
|
-
i0.ɵɵtext(7);
|
|
444
|
+
function CollectionsFullViewComponent_div_26_tr_23_Template(rf, ctx) { if (rf & 1) {
|
|
445
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
446
|
+
i0.ɵɵelementStart(0, "tr", 100);
|
|
447
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_tr_23_Template_tr_click_0_listener($event) { const item_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemClick(item_r18, $event)); })("dblclick", function CollectionsFullViewComponent_div_26_tr_23_Template_tr_dblclick_0_listener($event) { const item_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemDoubleClick(item_r18, $event)); })("contextmenu", function CollectionsFullViewComponent_div_26_tr_23_Template_tr_contextmenu_0_listener($event) { const item_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemContextMenu(item_r18, $event)); });
|
|
448
|
+
i0.ɵɵtemplate(1, CollectionsFullViewComponent_div_26_tr_23_td_1_Template, 2, 1, "td", 90);
|
|
449
|
+
i0.ɵɵelementStart(2, "td", 101)(3, "div", 102);
|
|
450
|
+
i0.ɵɵelement(4, "i", 9);
|
|
451
|
+
i0.ɵɵelementStart(5, "span");
|
|
452
|
+
i0.ɵɵtext(6);
|
|
428
453
|
i0.ɵɵelementEnd();
|
|
429
|
-
i0.ɵɵtemplate(
|
|
454
|
+
i0.ɵɵtemplate(7, CollectionsFullViewComponent_div_26_tr_23_i_7_Template, 1, 0, "i", 103);
|
|
430
455
|
i0.ɵɵelementEnd()();
|
|
431
|
-
i0.ɵɵelementStart(
|
|
432
|
-
i0.ɵɵtemplate(
|
|
456
|
+
i0.ɵɵelementStart(8, "td", 104);
|
|
457
|
+
i0.ɵɵtemplate(9, CollectionsFullViewComponent_div_26_tr_23_span_9_Template, 2, 0, "span", 60)(10, CollectionsFullViewComponent_div_26_tr_23_span_10_Template, 2, 1, "span", 85);
|
|
433
458
|
i0.ɵɵelementEnd();
|
|
434
|
-
i0.ɵɵelementStart(
|
|
435
|
-
i0.ɵɵtemplate(
|
|
459
|
+
i0.ɵɵelementStart(11, "td", 105);
|
|
460
|
+
i0.ɵɵtemplate(12, CollectionsFullViewComponent_div_26_tr_23_span_12_Template, 3, 4, "span", 60);
|
|
436
461
|
i0.ɵɵelementEnd();
|
|
437
|
-
i0.ɵɵelementStart(
|
|
438
|
-
i0.ɵɵtemplate(
|
|
462
|
+
i0.ɵɵelementStart(13, "td", 96);
|
|
463
|
+
i0.ɵɵtemplate(14, CollectionsFullViewComponent_div_26_tr_23_span_14_Template, 2, 1, "span", 60);
|
|
439
464
|
i0.ɵɵelementEnd()();
|
|
440
465
|
} if (rf & 2) {
|
|
441
|
-
const
|
|
466
|
+
const item_r18 = ctx.$implicit;
|
|
442
467
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
443
|
-
i0.ɵɵclassProp("selected",
|
|
444
|
-
i0.ɵɵadvance(
|
|
445
|
-
i0.ɵɵproperty("
|
|
468
|
+
i0.ɵɵclassProp("selected", item_r18.selected)("active", item_r18.type === "artifact" && (item_r18.artifact == null ? null : item_r18.artifact.ID) === ctx_r2.activeArtifactId);
|
|
469
|
+
i0.ɵɵadvance();
|
|
470
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isSelectMode);
|
|
446
471
|
i0.ɵɵadvance(3);
|
|
447
|
-
i0.ɵɵproperty("ngClass",
|
|
472
|
+
i0.ɵɵproperty("ngClass", item_r18.type === "folder" ? "fa-folder" : item_r18.icon);
|
|
448
473
|
i0.ɵɵadvance(2);
|
|
449
|
-
i0.ɵɵtextInterpolate(
|
|
474
|
+
i0.ɵɵtextInterpolate(item_r18.name);
|
|
450
475
|
i0.ɵɵadvance();
|
|
451
|
-
i0.ɵɵproperty("ngIf",
|
|
476
|
+
i0.ɵɵproperty("ngIf", item_r18.isShared);
|
|
452
477
|
i0.ɵɵadvance(2);
|
|
453
|
-
i0.ɵɵproperty("ngIf",
|
|
478
|
+
i0.ɵɵproperty("ngIf", item_r18.type === "folder");
|
|
454
479
|
i0.ɵɵadvance();
|
|
455
|
-
i0.ɵɵproperty("ngIf",
|
|
480
|
+
i0.ɵɵproperty("ngIf", item_r18.type === "artifact");
|
|
456
481
|
i0.ɵɵadvance(2);
|
|
457
|
-
i0.ɵɵproperty("ngIf",
|
|
482
|
+
i0.ɵɵproperty("ngIf", item_r18.lastModified);
|
|
458
483
|
i0.ɵɵadvance(2);
|
|
459
|
-
i0.ɵɵproperty("ngIf",
|
|
484
|
+
i0.ɵɵproperty("ngIf", item_r18.owner);
|
|
460
485
|
} }
|
|
461
|
-
function
|
|
462
|
-
const
|
|
463
|
-
i0.ɵɵelementStart(0, "div",
|
|
464
|
-
i0.ɵɵ
|
|
465
|
-
i0.ɵɵ
|
|
466
|
-
i0.ɵɵ
|
|
467
|
-
i0.ɵɵ
|
|
468
|
-
i0.ɵɵ
|
|
469
|
-
i0.ɵɵtext(8, "Name");
|
|
486
|
+
function CollectionsFullViewComponent_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
487
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
488
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "table", 89)(2, "thead")(3, "tr");
|
|
489
|
+
i0.ɵɵtemplate(4, CollectionsFullViewComponent_div_26_th_4_Template, 2, 1, "th", 90);
|
|
490
|
+
i0.ɵɵelementStart(5, "th", 91);
|
|
491
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("name")); });
|
|
492
|
+
i0.ɵɵelementStart(6, "span");
|
|
493
|
+
i0.ɵɵtext(7, "Name");
|
|
470
494
|
i0.ɵɵelementEnd();
|
|
471
|
-
i0.ɵɵtemplate(
|
|
495
|
+
i0.ɵɵtemplate(8, CollectionsFullViewComponent_div_26_i_8_Template, 1, 0, "i", 92)(9, CollectionsFullViewComponent_div_26_i_9_Template, 1, 1, "i", 93);
|
|
472
496
|
i0.ɵɵelementEnd();
|
|
473
|
-
i0.ɵɵelementStart(
|
|
474
|
-
i0.ɵɵlistener("click", function
|
|
475
|
-
i0.ɵɵelementStart(
|
|
476
|
-
i0.ɵɵtext(
|
|
497
|
+
i0.ɵɵelementStart(10, "th", 94);
|
|
498
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_Template_th_click_10_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("type")); });
|
|
499
|
+
i0.ɵɵelementStart(11, "span");
|
|
500
|
+
i0.ɵɵtext(12, "Type");
|
|
477
501
|
i0.ɵɵelementEnd();
|
|
478
|
-
i0.ɵɵtemplate(
|
|
502
|
+
i0.ɵɵtemplate(13, CollectionsFullViewComponent_div_26_i_13_Template, 1, 0, "i", 92)(14, CollectionsFullViewComponent_div_26_i_14_Template, 1, 1, "i", 93);
|
|
479
503
|
i0.ɵɵelementEnd();
|
|
480
|
-
i0.ɵɵelementStart(
|
|
481
|
-
i0.ɵɵlistener("click", function
|
|
482
|
-
i0.ɵɵelementStart(
|
|
483
|
-
i0.ɵɵtext(
|
|
504
|
+
i0.ɵɵelementStart(15, "th", 95);
|
|
505
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_div_26_Template_th_click_15_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setSortBy("date")); });
|
|
506
|
+
i0.ɵɵelementStart(16, "span");
|
|
507
|
+
i0.ɵɵtext(17, "Modified");
|
|
484
508
|
i0.ɵɵelementEnd();
|
|
485
|
-
i0.ɵɵtemplate(
|
|
509
|
+
i0.ɵɵtemplate(18, CollectionsFullViewComponent_div_26_i_18_Template, 1, 0, "i", 92)(19, CollectionsFullViewComponent_div_26_i_19_Template, 1, 1, "i", 93);
|
|
486
510
|
i0.ɵɵelementEnd();
|
|
487
|
-
i0.ɵɵelementStart(
|
|
488
|
-
i0.ɵɵtext(
|
|
511
|
+
i0.ɵɵelementStart(20, "th", 96);
|
|
512
|
+
i0.ɵɵtext(21, "Owner");
|
|
489
513
|
i0.ɵɵelementEnd()()();
|
|
490
|
-
i0.ɵɵelementStart(
|
|
491
|
-
i0.ɵɵtemplate(
|
|
514
|
+
i0.ɵɵelementStart(22, "tbody");
|
|
515
|
+
i0.ɵɵtemplate(23, CollectionsFullViewComponent_div_26_tr_23_Template, 15, 12, "tr", 97);
|
|
492
516
|
i0.ɵɵelementEnd()()();
|
|
493
517
|
} if (rf & 2) {
|
|
494
518
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
495
|
-
i0.ɵɵ
|
|
496
|
-
i0.ɵɵ
|
|
519
|
+
i0.ɵɵclassProp("select-mode", ctx_r2.isSelectMode);
|
|
520
|
+
i0.ɵɵadvance(4);
|
|
521
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isSelectMode);
|
|
497
522
|
i0.ɵɵadvance(4);
|
|
498
523
|
i0.ɵɵproperty("ngIf", ctx_r2.sortBy !== "name");
|
|
499
524
|
i0.ɵɵadvance();
|
|
@@ -546,6 +571,7 @@ export class CollectionsFullViewComponent {
|
|
|
546
571
|
showNewDropdown = false;
|
|
547
572
|
showSortDropdown = false;
|
|
548
573
|
activeArtifactId = null; // Track which artifact is currently being viewed
|
|
574
|
+
isSelectMode = false; // Toggle for selection mode
|
|
549
575
|
destroy$ = new Subject();
|
|
550
576
|
isNavigatingProgrammatically = false;
|
|
551
577
|
constructor(dialogService, artifactState, collectionState, permissionService, artifactIconService) {
|
|
@@ -978,9 +1004,6 @@ export class CollectionsFullViewComponent {
|
|
|
978
1004
|
viewArtifact(item) {
|
|
979
1005
|
this.activeArtifactId = item.artifact.ID;
|
|
980
1006
|
this.artifactState.openArtifact(item.artifact.ID, item.version.VersionNumber);
|
|
981
|
-
// Don't emit navigation event when just viewing an artifact in current collection
|
|
982
|
-
// Only emit when actually navigating between collections (handled by openCollection, navigateTo, etc.)
|
|
983
|
-
// The artifactState.openArtifact() already handles updating the artifact viewer
|
|
984
1007
|
}
|
|
985
1008
|
// Permission validation and checking methods
|
|
986
1009
|
async validatePermission(collection, requiredPermission) {
|
|
@@ -1152,6 +1175,27 @@ export class CollectionsFullViewComponent {
|
|
|
1152
1175
|
// Save preference to localStorage
|
|
1153
1176
|
localStorage.setItem('collections-view-mode', mode);
|
|
1154
1177
|
}
|
|
1178
|
+
/**
|
|
1179
|
+
* Toggle selection mode on/off
|
|
1180
|
+
* When entering select mode, clicks toggle selection instead of opening items
|
|
1181
|
+
* When exiting select mode, clears any selections
|
|
1182
|
+
*/
|
|
1183
|
+
toggleSelectMode() {
|
|
1184
|
+
this.isSelectMode = !this.isSelectMode;
|
|
1185
|
+
if (!this.isSelectMode) {
|
|
1186
|
+
// Clear selection when exiting select mode
|
|
1187
|
+
this.clearSelection();
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
/**
|
|
1191
|
+
* Exit selection mode (called when navigating to a new folder)
|
|
1192
|
+
*/
|
|
1193
|
+
exitSelectMode() {
|
|
1194
|
+
if (this.isSelectMode) {
|
|
1195
|
+
this.isSelectMode = false;
|
|
1196
|
+
this.clearSelection();
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1155
1199
|
/**
|
|
1156
1200
|
* Set sort order - toggles asc/desc if clicking same column
|
|
1157
1201
|
*/
|
|
@@ -1252,16 +1296,56 @@ export class CollectionsFullViewComponent {
|
|
|
1252
1296
|
return 0;
|
|
1253
1297
|
}
|
|
1254
1298
|
/**
|
|
1255
|
-
* Handle clicking on unified item
|
|
1299
|
+
* Handle clicking on unified item
|
|
1300
|
+
* In select mode: toggles selection
|
|
1301
|
+
* In normal mode: opens item (folder or artifact)
|
|
1256
1302
|
*/
|
|
1257
1303
|
onItemClick(item, event) {
|
|
1304
|
+
// In select mode, single click toggles selection
|
|
1305
|
+
if (this.isSelectMode) {
|
|
1306
|
+
this.toggleItemSelectionSimple(item);
|
|
1307
|
+
return;
|
|
1308
|
+
}
|
|
1309
|
+
// Normal mode: open the item
|
|
1310
|
+
this.openItem(item);
|
|
1311
|
+
}
|
|
1312
|
+
/**
|
|
1313
|
+
* Handle double-clicking on unified item
|
|
1314
|
+
* Always opens the item, even in select mode
|
|
1315
|
+
*/
|
|
1316
|
+
onItemDoubleClick(item, event) {
|
|
1317
|
+
event?.preventDefault();
|
|
1318
|
+
this.openItem(item);
|
|
1319
|
+
}
|
|
1320
|
+
/**
|
|
1321
|
+
* Open an item (folder or artifact)
|
|
1322
|
+
*/
|
|
1323
|
+
openItem(item) {
|
|
1258
1324
|
if (item.type === 'folder' && item.collection) {
|
|
1325
|
+
// Exit select mode when navigating to a new folder
|
|
1326
|
+
this.exitSelectMode();
|
|
1259
1327
|
this.openCollection(item.collection);
|
|
1260
1328
|
}
|
|
1261
1329
|
else if (item.type === 'artifact') {
|
|
1330
|
+
if (!item.artifact || !item.version) {
|
|
1331
|
+
console.error('Artifact or version is missing for item:', item.id);
|
|
1332
|
+
return;
|
|
1333
|
+
}
|
|
1262
1334
|
this.viewArtifact({ artifact: item.artifact, version: item.version });
|
|
1263
1335
|
}
|
|
1264
1336
|
}
|
|
1337
|
+
/**
|
|
1338
|
+
* Simple toggle for item selection (used in select mode)
|
|
1339
|
+
*/
|
|
1340
|
+
toggleItemSelectionSimple(item) {
|
|
1341
|
+
if (this.selectedItems.has(item.id)) {
|
|
1342
|
+
this.selectedItems.delete(item.id);
|
|
1343
|
+
}
|
|
1344
|
+
else {
|
|
1345
|
+
this.selectedItems.add(item.id);
|
|
1346
|
+
}
|
|
1347
|
+
this.buildUnifiedItemList();
|
|
1348
|
+
}
|
|
1265
1349
|
/**
|
|
1266
1350
|
* Get item count text for display
|
|
1267
1351
|
*/
|
|
@@ -1289,21 +1373,24 @@ export class CollectionsFullViewComponent {
|
|
|
1289
1373
|
}
|
|
1290
1374
|
/**
|
|
1291
1375
|
* Handle keyboard shortcuts
|
|
1292
|
-
* - Cmd/Ctrl+A: Select all
|
|
1293
|
-
* - Escape:
|
|
1376
|
+
* - Cmd/Ctrl+A: Select all (enters select mode if not already)
|
|
1377
|
+
* - Escape: Exit select mode and clear selection
|
|
1294
1378
|
* - Delete/Backspace: Delete selected items
|
|
1295
1379
|
*/
|
|
1296
1380
|
handleKeyboardShortcut(event) {
|
|
1297
|
-
// Cmd+A / Ctrl+A: Select all
|
|
1381
|
+
// Cmd+A / Ctrl+A: Select all (enters select mode)
|
|
1298
1382
|
if ((event.metaKey || event.ctrlKey) && event.key === 'a') {
|
|
1299
1383
|
event.preventDefault();
|
|
1384
|
+
if (!this.isSelectMode) {
|
|
1385
|
+
this.isSelectMode = true;
|
|
1386
|
+
}
|
|
1300
1387
|
this.selectAll();
|
|
1301
1388
|
return;
|
|
1302
1389
|
}
|
|
1303
|
-
// Escape:
|
|
1304
|
-
if (event.key === 'Escape' && this.
|
|
1390
|
+
// Escape: Exit select mode
|
|
1391
|
+
if (event.key === 'Escape' && this.isSelectMode) {
|
|
1305
1392
|
event.preventDefault();
|
|
1306
|
-
this.
|
|
1393
|
+
this.exitSelectMode();
|
|
1307
1394
|
return;
|
|
1308
1395
|
}
|
|
1309
1396
|
// Delete/Backspace: Delete selected items
|
|
@@ -1332,7 +1419,7 @@ export class CollectionsFullViewComponent {
|
|
|
1332
1419
|
// event.preventDefault();
|
|
1333
1420
|
}
|
|
1334
1421
|
static ɵfac = function CollectionsFullViewComponent_Factory(t) { return new (t || CollectionsFullViewComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ArtifactStateService), i0.ɵɵdirectiveInject(i3.CollectionStateService), i0.ɵɵdirectiveInject(i4.CollectionPermissionService), i0.ɵɵdirectiveInject(i5.ArtifactIconService)); };
|
|
1335
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionsFullViewComponent, selectors: [["mj-collections-full-view"]], inputs: { environmentId: "environmentId", currentUser: "currentUser" }, outputs: { collectionNavigated: "collectionNavigated" }, decls:
|
|
1422
|
+
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"], ["class", "breadcrumb-path", 4, "ngIf"], [1, "collections-actions"], [1, "btn-icon", 3, "click", "title"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-check-square"], ["class", "dropdown-container", 4, "ngIf"], [1, "search-container"], [1, "fas", "fa-search"], ["type", "text", "placeholder", "Search...", 1, "search-input", 3, "ngModelChange", "ngModel"], ["class", "search-clear", "title", "Clear search", 3, "click", 4, "ngIf"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync"], ["class", "selection-toolbar", 4, "ngIf"], [1, "collections-content"], ["class", "loading-state", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], ["class", "unified-grid", 3, "select-mode", 4, "ngIf"], ["class", "unified-list", 3, "select-mode", 4, "ngIf"], [3, "saved", "cancelled", "isOpen", "collection", "parentCollection", "environmentId", "currentUser"], [3, "saved", "cancelled", "isOpen", "collectionId", "environmentId", "currentUser"], [3, "saved", "cancelled", "isOpen", "collection", "currentUser", "currentUserPermissions"], [1, "breadcrumb-path"], [4, "ngFor", "ngForOf"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], [1, "dropdown-container"], ["title", "Sort options", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sort"], ["class", "dropdown-menu", 4, "ngIf"], [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"], ["class", "dropdown-menu dropdown-menu-right", 4, "ngIf"], [1, "dropdown-menu", "dropdown-menu-right"], [1, "fas", "fa-folder-plus"], [1, "dropdown-item", 3, "click", "disabled"], [1, "fas", "fa-file-plus"], [1, "selection-toolbar"], [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"], [1, "loading-state"], ["text", "Loading collections...", "size", "large"], [1, "empty-state"], [1, "fas", "fa-folder-open"], [4, "ngIf"], ["class", "btn-primary", 3, "click", 4, "ngIf"], [1, "unified-grid"], ["class", "grid-item", 3, "selected", "active", "click", "dblclick", "contextmenu", 4, "ngFor", "ngForOf"], [1, "grid-item", 3, "click", "dblclick", "contextmenu"], ["class", "item-checkbox", 3, "click", 4, "ngIf"], ["class", "grid-item-content", 3, "title", 4, "ngIf"], [1, "item-checkbox", 3, "click"], [1, "grid-item-content", 3, "title"], [1, "grid-icon", "folder-icon"], [1, "fas", "fa-folder"], ["class", "shared-badge", "title", "Shared", 4, "ngIf"], [1, "grid-info"], [1, "grid-name"], ["class", "grid-description", 4, "ngIf"], ["class", "grid-meta", 4, "ngIf"], ["class", "grid-owner", 4, "ngIf"], ["title", "Shared", 1, "shared-badge"], [1, "fas", "fa-users"], [1, "grid-description"], [1, "grid-meta"], [1, "grid-owner"], [1, "fas", "fa-user"], [1, "grid-icon", "artifact-icon"], ["class", "version-badge", 4, "ngIf"], ["class", "artifact-type-badge", 4, "ngIf"], [1, "version-badge"], [1, "artifact-type-badge"], [1, "unified-list"], [1, "list-table"], ["class", "col-checkbox", 4, "ngIf"], [1, "col-name", "sortable", 3, "click"], ["class", "fas fa-sort", 4, "ngIf"], ["class", "fas", 3, "ngClass", 4, "ngIf"], [1, "col-type", "sortable", 3, "click"], [1, "col-modified", "sortable", 3, "click"], [1, "col-owner"], ["class", "list-item", 3, "selected", "active", "click", "dblclick", "contextmenu", 4, "ngFor", "ngForOf"], [1, "col-checkbox"], [1, "fas", 3, "click", "ngClass"], [1, "list-item", 3, "click", "dblclick", "contextmenu"], [1, "col-name"], [1, "list-name-cell"], ["class", "fas fa-users shared-indicator", "title", "Shared", 4, "ngIf"], [1, "col-type"], [1, "col-modified"], ["title", "Shared", 1, "fas", "fa-users", "shared-indicator"]], template: function CollectionsFullViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1336
1423
|
i0.ɵɵelementStart(0, "div", 0);
|
|
1337
1424
|
i0.ɵɵlistener("keydown", function CollectionsFullViewComponent_Template_div_keydown_0_listener($event) { return ctx.handleKeyboardShortcut($event); });
|
|
1338
1425
|
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "div", 3);
|
|
@@ -1347,32 +1434,36 @@ export class CollectionsFullViewComponent {
|
|
|
1347
1434
|
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_9_listener() { return ctx.toggleViewMode(); });
|
|
1348
1435
|
i0.ɵɵelement(10, "i", 9);
|
|
1349
1436
|
i0.ɵɵelementEnd();
|
|
1350
|
-
i0.ɵɵ
|
|
1351
|
-
i0.ɵɵ
|
|
1352
|
-
i0.ɵɵelement(
|
|
1353
|
-
i0.ɵɵelementStart(14, "input", 13);
|
|
1354
|
-
i0.ɵɵtwoWayListener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_14_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return $event; });
|
|
1355
|
-
i0.ɵɵlistener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_14_listener($event) { return ctx.onSearchChange($event); });
|
|
1437
|
+
i0.ɵɵelementStart(11, "button", 8);
|
|
1438
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_11_listener() { return ctx.toggleSelectMode(); });
|
|
1439
|
+
i0.ɵɵelement(12, "i", 10);
|
|
1356
1440
|
i0.ɵɵelementEnd();
|
|
1357
|
-
i0.ɵɵtemplate(
|
|
1441
|
+
i0.ɵɵtemplate(13, CollectionsFullViewComponent_div_13_Template, 4, 1, "div", 11);
|
|
1442
|
+
i0.ɵɵelementStart(14, "div", 12);
|
|
1443
|
+
i0.ɵɵelement(15, "i", 13);
|
|
1444
|
+
i0.ɵɵelementStart(16, "input", 14);
|
|
1445
|
+
i0.ɵɵtwoWayListener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_16_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return $event; });
|
|
1446
|
+
i0.ɵɵlistener("ngModelChange", function CollectionsFullViewComponent_Template_input_ngModelChange_16_listener($event) { return ctx.onSearchChange($event); });
|
|
1358
1447
|
i0.ɵɵelementEnd();
|
|
1359
|
-
i0.ɵɵtemplate(
|
|
1360
|
-
i0.ɵɵ
|
|
1361
|
-
i0.ɵɵ
|
|
1362
|
-
i0.ɵɵ
|
|
1448
|
+
i0.ɵɵtemplate(17, CollectionsFullViewComponent_button_17_Template, 2, 0, "button", 15);
|
|
1449
|
+
i0.ɵɵelementEnd();
|
|
1450
|
+
i0.ɵɵtemplate(18, CollectionsFullViewComponent_div_18_Template, 7, 1, "div", 11);
|
|
1451
|
+
i0.ɵɵelementStart(19, "button", 16);
|
|
1452
|
+
i0.ɵɵlistener("click", function CollectionsFullViewComponent_Template_button_click_19_listener() { return ctx.refresh(); });
|
|
1453
|
+
i0.ɵɵelement(20, "i", 17);
|
|
1363
1454
|
i0.ɵɵelementEnd()()();
|
|
1364
|
-
i0.ɵɵtemplate(
|
|
1365
|
-
i0.ɵɵelementStart(
|
|
1366
|
-
i0.ɵɵtemplate(
|
|
1455
|
+
i0.ɵɵtemplate(21, CollectionsFullViewComponent_div_21_Template, 11, 1, "div", 18);
|
|
1456
|
+
i0.ɵɵelementStart(22, "div", 19);
|
|
1457
|
+
i0.ɵɵtemplate(23, CollectionsFullViewComponent_div_23_Template, 2, 0, "div", 20)(24, CollectionsFullViewComponent_div_24_Template, 5, 3, "div", 21)(25, CollectionsFullViewComponent_div_25_Template, 2, 3, "div", 22)(26, CollectionsFullViewComponent_div_26_Template, 24, 10, "div", 23);
|
|
1367
1458
|
i0.ɵɵelementEnd()();
|
|
1368
|
-
i0.ɵɵelementStart(
|
|
1369
|
-
i0.ɵɵlistener("saved", function
|
|
1459
|
+
i0.ɵɵelementStart(27, "mj-collection-form-modal", 24);
|
|
1460
|
+
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(); });
|
|
1370
1461
|
i0.ɵɵelementEnd();
|
|
1371
|
-
i0.ɵɵelementStart(
|
|
1372
|
-
i0.ɵɵlistener("saved", function
|
|
1462
|
+
i0.ɵɵelementStart(28, "mj-artifact-create-modal", 25);
|
|
1463
|
+
i0.ɵɵlistener("saved", function CollectionsFullViewComponent_Template_mj_artifact_create_modal_saved_28_listener($event) { return ctx.onArtifactSaved($event); })("cancelled", function CollectionsFullViewComponent_Template_mj_artifact_create_modal_cancelled_28_listener() { return ctx.onArtifactModalCancelled(); });
|
|
1373
1464
|
i0.ɵɵelementEnd();
|
|
1374
|
-
i0.ɵɵelementStart(
|
|
1375
|
-
i0.ɵɵlistener("saved", function
|
|
1465
|
+
i0.ɵɵelementStart(29, "mj-collection-share-modal", 26);
|
|
1466
|
+
i0.ɵɵlistener("saved", function CollectionsFullViewComponent_Template_mj_collection_share_modal_saved_29_listener() { return ctx.onPermissionsChanged(); })("cancelled", function CollectionsFullViewComponent_Template_mj_collection_share_modal_cancelled_29_listener() { return ctx.onShareModalCancelled(); });
|
|
1376
1467
|
i0.ɵɵelementEnd();
|
|
1377
1468
|
} if (rf & 2) {
|
|
1378
1469
|
i0.ɵɵadvance(7);
|
|
@@ -1382,6 +1473,9 @@ export class CollectionsFullViewComponent {
|
|
|
1382
1473
|
i0.ɵɵadvance();
|
|
1383
1474
|
i0.ɵɵproperty("ngClass", ctx.viewMode === "grid" ? "fa-list" : "fa-th");
|
|
1384
1475
|
i0.ɵɵadvance();
|
|
1476
|
+
i0.ɵɵclassProp("active", ctx.isSelectMode);
|
|
1477
|
+
i0.ɵɵproperty("title", ctx.isSelectMode ? "Exit Select Mode" : "Select Items");
|
|
1478
|
+
i0.ɵɵadvance(2);
|
|
1385
1479
|
i0.ɵɵproperty("ngIf", ctx.viewMode === "grid");
|
|
1386
1480
|
i0.ɵɵadvance(3);
|
|
1387
1481
|
i0.ɵɵtwoWayProperty("ngModel", ctx.searchQuery);
|
|
@@ -1405,7 +1499,7 @@ export class CollectionsFullViewComponent {
|
|
|
1405
1499
|
i0.ɵɵproperty("isOpen", ctx.isArtifactModalOpen)("collectionId", ctx.currentCollectionId || "")("environmentId", ctx.environmentId)("currentUser", ctx.currentUser);
|
|
1406
1500
|
i0.ɵɵadvance();
|
|
1407
1501
|
i0.ɵɵproperty("isOpen", ctx.isShareModalOpen)("collection", ctx.sharingCollection)("currentUser", ctx.currentUser)("currentUserPermissions", ctx.sharingCollection ? ctx.userPermissions.get(ctx.sharingCollection.ID) || null : null);
|
|
1408
|
-
} }, dependencies: [i6.NgClass, i6.NgForOf, i6.NgIf, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel, i8.CollectionShareModalComponent, i9.CollectionFormModalComponent, i10.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 \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 .loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n\n .loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\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 }\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 .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 }\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 }"] });
|
|
1502
|
+
} }, 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 }"] });
|
|
1409
1503
|
}
|
|
1410
1504
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionsFullViewComponent, [{
|
|
1411
1505
|
type: Component,
|
|
@@ -1440,6 +1534,14 @@ export class CollectionsFullViewComponent {
|
|
|
1440
1534
|
<i class="fas" [ngClass]="viewMode === 'grid' ? 'fa-list' : 'fa-th'"></i>
|
|
1441
1535
|
</button>
|
|
1442
1536
|
|
|
1537
|
+
<!-- Select mode toggle -->
|
|
1538
|
+
<button class="btn-icon"
|
|
1539
|
+
[class.active]="isSelectMode"
|
|
1540
|
+
(click)="toggleSelectMode()"
|
|
1541
|
+
[title]="isSelectMode ? 'Exit Select Mode' : 'Select Items'">
|
|
1542
|
+
<i class="fas fa-check-square"></i>
|
|
1543
|
+
</button>
|
|
1544
|
+
|
|
1443
1545
|
<!-- Sort dropdown (grid view only) -->
|
|
1444
1546
|
<div class="dropdown-container" *ngIf="viewMode === 'grid'">
|
|
1445
1547
|
<button class="btn-icon"
|
|
@@ -1535,8 +1637,7 @@ export class CollectionsFullViewComponent {
|
|
|
1535
1637
|
<div class="collections-content">
|
|
1536
1638
|
<!-- Loading state -->
|
|
1537
1639
|
<div *ngIf="isLoading" class="loading-state">
|
|
1538
|
-
<
|
|
1539
|
-
<p>Loading collections...</p>
|
|
1640
|
+
<mj-loading text="Loading collections..." size="large"></mj-loading>
|
|
1540
1641
|
</div>
|
|
1541
1642
|
|
|
1542
1643
|
<!-- Empty state -->
|
|
@@ -1570,16 +1671,19 @@ export class CollectionsFullViewComponent {
|
|
|
1570
1671
|
|
|
1571
1672
|
<!-- Grid view -->
|
|
1572
1673
|
<div *ngIf="!isLoading && unifiedItems.length > 0 && viewMode === 'grid'"
|
|
1573
|
-
class="unified-grid"
|
|
1674
|
+
class="unified-grid"
|
|
1675
|
+
[class.select-mode]="isSelectMode">
|
|
1574
1676
|
<div *ngFor="let item of unifiedItems"
|
|
1575
1677
|
class="grid-item"
|
|
1576
1678
|
[class.selected]="item.selected"
|
|
1577
1679
|
[class.active]="item.type === 'artifact' && item.artifact?.ID === activeArtifactId"
|
|
1578
1680
|
(click)="onItemClick(item, $event)"
|
|
1681
|
+
(dblclick)="onItemDoubleClick(item, $event)"
|
|
1579
1682
|
(contextmenu)="onItemContextMenu(item, $event)">
|
|
1580
1683
|
|
|
1581
|
-
<!-- Selection checkbox -->
|
|
1684
|
+
<!-- Selection checkbox (only visible in select mode) -->
|
|
1582
1685
|
<div class="item-checkbox"
|
|
1686
|
+
*ngIf="isSelectMode"
|
|
1583
1687
|
(click)="toggleItemSelection(item, $event)">
|
|
1584
1688
|
<i class="fas"
|
|
1585
1689
|
[ngClass]="item.selected ? 'fa-check-circle' : 'fa-circle'"></i>
|
|
@@ -1637,11 +1741,12 @@ export class CollectionsFullViewComponent {
|
|
|
1637
1741
|
|
|
1638
1742
|
<!-- List view -->
|
|
1639
1743
|
<div *ngIf="!isLoading && unifiedItems.length > 0 && viewMode === 'list'"
|
|
1640
|
-
class="unified-list"
|
|
1744
|
+
class="unified-list"
|
|
1745
|
+
[class.select-mode]="isSelectMode">
|
|
1641
1746
|
<table class="list-table">
|
|
1642
1747
|
<thead>
|
|
1643
1748
|
<tr>
|
|
1644
|
-
<th class="col-checkbox">
|
|
1749
|
+
<th class="col-checkbox" *ngIf="isSelectMode">
|
|
1645
1750
|
<i class="fas"
|
|
1646
1751
|
[ngClass]="selectedItems.size === unifiedItems.length ? 'fa-check-square' : 'fa-square'"
|
|
1647
1752
|
(click)="selectedItems.size === unifiedItems.length ? clearSelection() : selectAll()"></i>
|
|
@@ -1673,9 +1778,10 @@ export class CollectionsFullViewComponent {
|
|
|
1673
1778
|
[class.selected]="item.selected"
|
|
1674
1779
|
[class.active]="item.type === 'artifact' && item.artifact?.ID === activeArtifactId"
|
|
1675
1780
|
(click)="onItemClick(item, $event)"
|
|
1781
|
+
(dblclick)="onItemDoubleClick(item, $event)"
|
|
1676
1782
|
(contextmenu)="onItemContextMenu(item, $event)">
|
|
1677
1783
|
|
|
1678
|
-
<td class="col-checkbox">
|
|
1784
|
+
<td class="col-checkbox" *ngIf="isSelectMode">
|
|
1679
1785
|
<i class="fas"
|
|
1680
1786
|
[ngClass]="item.selected ? 'fa-check-circle' : 'fa-circle'"
|
|
1681
1787
|
(click)="toggleItemSelection(item, $event)"></i>
|
|
@@ -1743,7 +1849,7 @@ export class CollectionsFullViewComponent {
|
|
|
1743
1849
|
(saved)="onPermissionsChanged()"
|
|
1744
1850
|
(cancelled)="onShareModalCancelled()">
|
|
1745
1851
|
</mj-collection-share-modal>
|
|
1746
|
-
`, 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 /* 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 .loading-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n\n .loading-state p {\n margin: 0;\n font-size: 14px;\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 }\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 .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 }\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 "] }]
|
|
1852
|
+
`, 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 "] }]
|
|
1747
1853
|
}], () => [{ type: i1.DialogService }, { type: i2.ArtifactStateService }, { type: i3.CollectionStateService }, { type: i4.CollectionPermissionService }, { type: i5.ArtifactIconService }], { environmentId: [{
|
|
1748
1854
|
type: Input
|
|
1749
1855
|
}], currentUser: [{
|
|
@@ -1751,5 +1857,5 @@ export class CollectionsFullViewComponent {
|
|
|
1751
1857
|
}], collectionNavigated: [{
|
|
1752
1858
|
type: Output
|
|
1753
1859
|
}] }); })();
|
|
1754
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionsFullViewComponent, { className: "CollectionsFullViewComponent", filePath: "src/lib/components/collection/collections-full-view.component.ts", lineNumber:
|
|
1860
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionsFullViewComponent, { className: "CollectionsFullViewComponent", filePath: "src/lib/components/collection/collections-full-view.component.ts", lineNumber: 1062 }); })();
|
|
1755
1861
|
//# sourceMappingURL=collections-full-view.component.js.map
|