@genexus/genexus-ide-ui 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +21 -2
- package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +11 -8
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-launchpad.cjs.entry.js +4 -16
- package/dist/cjs/gx-ide-launchpad.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-multi-select.cjs.entry.js +113 -0
- package/dist/cjs/gx-ide-multi-select.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-search.cjs.entry.js +171 -0
- package/dist/cjs/gx-ide-search.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +4 -9
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.css +193 -0
- package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.js +209 -0
- package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.js.map +1 -0
- package/dist/collection/components/file-uploader/file-item/file-item.css +23 -28
- package/dist/collection/components/file-uploader/file-item/file-item.js +37 -1
- package/dist/collection/components/file-uploader/file-item/file-item.js.map +1 -1
- package/dist/collection/components/file-uploader/file-uploader.css +11 -22
- package/dist/collection/components/file-uploader/file-uploader.js +10 -7
- package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +7 -3
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +7 -3
- package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +8 -3
- package/dist/collection/components/launchpad/root/gx-ide-assets/launchpad/shortcuts.json +1 -26
- package/dist/collection/components/launchpad/root/launchpad.js +5 -42
- package/dist/collection/components/launchpad/root/launchpad.js.map +1 -1
- package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.en.json +37 -0
- package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.ja.json +37 -0
- package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.zh.json +37 -0
- package/dist/collection/components/search/search.css +44 -0
- package/dist/collection/components/search/search.js +275 -0
- package/dist/collection/components/search/search.js.map +1 -0
- package/dist/collection/components/ww-files/ww-files.js +4 -9
- package/dist/collection/components/ww-files/ww-files.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +4 -1
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/file-item.js +22 -2
- package/dist/components/file-item.js.map +1 -1
- package/dist/components/gx-ide-file-uploader.js +11 -8
- package/dist/components/gx-ide-file-uploader.js.map +1 -1
- package/dist/components/gx-ide-launchpad.js +6 -19
- package/dist/components/gx-ide-launchpad.js.map +1 -1
- package/dist/components/gx-ide-multi-select.d.ts +11 -0
- package/dist/components/gx-ide-multi-select.js +132 -0
- package/dist/components/gx-ide-multi-select.js.map +1 -0
- package/dist/components/gx-ide-search.d.ts +11 -0
- package/dist/components/gx-ide-search.js +206 -0
- package/dist/components/gx-ide-search.js.map +1 -0
- package/dist/components/gx-ide-ww-files.js +4 -9
- package/dist/components/gx-ide-ww-files.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +21 -2
- package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +11 -8
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
- package/dist/esm/gx-ide-launchpad.entry.js +5 -17
- package/dist/esm/gx-ide-launchpad.entry.js.map +1 -1
- package/dist/esm/gx-ide-multi-select.entry.js +109 -0
- package/dist/esm/gx-ide-multi-select.entry.js.map +1 -0
- package/dist/esm/gx-ide-search.entry.js +167 -0
- package/dist/esm/gx-ide-search.entry.js.map +1 -0
- package/dist/esm/gx-ide-ww-files.entry.js +4 -9
- package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +7 -3
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +7 -3
- package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +8 -3
- package/dist/genexus-ide-ui/gx-ide-assets/launchpad/shortcuts.json +1 -26
- package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.en.json +37 -0
- package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.ja.json +37 -0
- package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.zh.json +37 -0
- package/dist/genexus-ide-ui/p-0745a565.entry.js +152 -0
- package/dist/genexus-ide-ui/p-0745a565.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6246204f.entry.js → p-25e749c7.entry.js} +44 -57
- package/dist/genexus-ide-ui/p-25e749c7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-60db2f02.entry.js → p-7bdeae77.entry.js} +106 -108
- package/dist/genexus-ide-ui/p-7bdeae77.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-8b5c826b.entry.js +212 -0
- package/dist/genexus-ide-ui/p-8b5c826b.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-c460c9e7.entry.js +187 -0
- package/dist/genexus-ide-ui/p-c460c9e7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-aad714a5.entry.js → p-e2b88bea.entry.js} +70 -67
- package/dist/genexus-ide-ui/p-e2b88bea.entry.js.map +1 -0
- package/dist/types/components/_helpers/multi-select/gx-ide-multi-select.d.ts +29 -0
- package/dist/types/components/file-uploader/file-item/file-item.d.ts +2 -0
- package/dist/types/components/launchpad/root/launchpad.d.ts +0 -4
- package/dist/types/components/search/search.d.ts +59 -0
- package/dist/types/components.d.ts +121 -4
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-60db2f02.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6246204f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-aad714a5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f3c3e830.entry.js +0 -163
- package/dist/genexus-ide-ui/p-f3c3e830.entry.js.map +0 -1
|
@@ -33,41 +33,41 @@ var f = undefined && undefined.__classPrivateFieldGet || function(t, e, i, s) {
|
|
|
33
33
|
return i === "m" ? s : i === "a" ? s.call(t) : s ? s.value : e.get(t);
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
var u, m, p, b, g, w, v, k, y, x, M, W, _, C, z, N, j, T, D, E, H, I, V, F, A, L, P, B, S, $, O, U, X, Y, q, G
|
|
36
|
+
var u, m, p, b, g, w, v, k, y, x, M, W, _, C, z, N, j, T, D, E, H, I, V, F, A, L, P, B, S, $, O, U, X, Y, q, G;
|
|
37
37
|
|
|
38
|
-
const
|
|
38
|
+
const J = [ "resets/box-sizing", "components/button", "components/checkbox", "components/combo-box", "components/accordion", "components/edit", "components/icon", "components/tooltip", "components/tabular-grid", "utils/form", "utils/layout", "utils/typography", "utils/spacing" ];
|
|
39
39
|
|
|
40
|
-
const
|
|
40
|
+
const K = a({
|
|
41
41
|
category: "system",
|
|
42
42
|
name: "close",
|
|
43
43
|
colorType: "interactive"
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
const
|
|
46
|
+
const Q = a({
|
|
47
47
|
category: "window-tools",
|
|
48
48
|
name: "filter",
|
|
49
49
|
colorType: "on-surface"
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
const
|
|
52
|
+
const R = a({
|
|
53
53
|
category: "system",
|
|
54
54
|
name: "information",
|
|
55
55
|
colorType: "on-surface"
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
const
|
|
58
|
+
const Z = "advanced-filter";
|
|
59
59
|
|
|
60
|
-
const
|
|
60
|
+
const tt = "afterDateTime";
|
|
61
61
|
|
|
62
|
-
const
|
|
62
|
+
const et = "afterLastBuild";
|
|
63
63
|
|
|
64
|
-
const
|
|
64
|
+
const it = "afterImport";
|
|
65
65
|
|
|
66
|
-
const
|
|
66
|
+
const st = "checked";
|
|
67
67
|
|
|
68
|
-
const
|
|
68
|
+
const at = "unchecked";
|
|
69
69
|
|
|
70
|
-
const
|
|
70
|
+
const lt = class {
|
|
71
71
|
constructor(i) {
|
|
72
72
|
t(this, i);
|
|
73
73
|
u.set(this, void 0);
|
|
@@ -83,29 +83,28 @@ const rt = class {
|
|
|
83
83
|
// Other
|
|
84
84
|
y.set(this, []);
|
|
85
85
|
x.set(this, void 0);
|
|
86
|
-
M.set(this,
|
|
87
|
-
W.set(this, (() => {
|
|
86
|
+
M.set(this, (() => {
|
|
88
87
|
h(this, p, "", "f");
|
|
89
88
|
h(this, b, Object.assign({}, this.defaultModule), "f");
|
|
90
89
|
h(this, g, "", "f");
|
|
91
90
|
h(this, w, this.defaultCategory || (this.categoriesComboBoxModel && this.categoriesComboBoxModel.length > 0 ? this.categoriesComboBoxModel[0].value : ""), "f");
|
|
92
|
-
h(this, v,
|
|
93
|
-
this.afterValue = this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0 ? this.filterAfterComboBoxModel[0].value :
|
|
91
|
+
h(this, v, at, "f");
|
|
92
|
+
this.afterValue = this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0 ? this.filterAfterComboBoxModel[0].value : tt;
|
|
94
93
|
h(this, k, "", "f");
|
|
95
94
|
this.dateTimeValue = undefined;
|
|
96
95
|
}));
|
|
97
|
-
|
|
98
|
-
h(this, v, t.detail ===
|
|
99
|
-
f(this,
|
|
96
|
+
W.set(this, (t => {
|
|
97
|
+
h(this, v, t.detail === st ? st : at, "f");
|
|
98
|
+
f(this, A, "f").call(this);
|
|
100
99
|
}));
|
|
101
|
-
|
|
100
|
+
_.set(this, (t => {
|
|
102
101
|
h(this, y, t.detail.rowsId, "f");
|
|
103
102
|
this.selectionChangeCallback(f(this, y, "f"));
|
|
104
103
|
}));
|
|
105
|
-
|
|
106
|
-
f(this,
|
|
104
|
+
C.set(this, (() => {
|
|
105
|
+
f(this, O, "f").call(this);
|
|
107
106
|
}));
|
|
108
|
-
|
|
107
|
+
z.set(this, (t => {
|
|
109
108
|
t.preventDefault();
|
|
110
109
|
t.stopPropagation();
|
|
111
110
|
this.contextMenuCallback({
|
|
@@ -114,56 +113,56 @@ const rt = class {
|
|
|
114
113
|
clientY: t.detail.clientY
|
|
115
114
|
});
|
|
116
115
|
}));
|
|
117
|
-
|
|
118
|
-
f(this, x, "f").addEventListener("selectionChanged", f(this,
|
|
119
|
-
f(this, x, "f").addEventListener("rowDoubleClicked", f(this,
|
|
120
|
-
f(this, x, "f").addEventListener("rowContextMenu", f(this,
|
|
116
|
+
N.set(this, (() => {
|
|
117
|
+
f(this, x, "f").addEventListener("selectionChanged", f(this, _, "f"));
|
|
118
|
+
f(this, x, "f").addEventListener("rowDoubleClicked", f(this, C, "f"));
|
|
119
|
+
f(this, x, "f").addEventListener("rowContextMenu", f(this, z, "f"));
|
|
121
120
|
}));
|
|
122
|
-
|
|
121
|
+
j.set(this, (async t => {
|
|
123
122
|
h(this, w, t.detail, "f");
|
|
124
|
-
f(this,
|
|
123
|
+
f(this, A, "f").call(this);
|
|
125
124
|
}));
|
|
126
|
-
|
|
125
|
+
T.set(this, (() => {
|
|
127
126
|
this.dateTimeValue = undefined;
|
|
128
127
|
}));
|
|
129
|
-
|
|
128
|
+
D.set(this, (t => {
|
|
130
129
|
this.dateTimeValue = t.detail;
|
|
131
|
-
f(this,
|
|
130
|
+
f(this, A, "f").call(this);
|
|
132
131
|
}));
|
|
133
|
-
|
|
132
|
+
E.set(this, (() => {
|
|
134
133
|
this.deleteSelectionCallback(f(this, y, "f"));
|
|
135
134
|
}));
|
|
136
|
-
|
|
135
|
+
H.set(this, (() => {
|
|
137
136
|
if (f(this, x, "f") && typeof f(this, x, "f").selectAllRows === "function") {
|
|
138
137
|
f(this, x, "f").selectAllRows(false);
|
|
139
138
|
}
|
|
140
139
|
}));
|
|
141
|
-
|
|
140
|
+
I.set(this, ((t, i) => {
|
|
142
141
|
const s = new Date(i);
|
|
143
142
|
if (s >= t) {
|
|
144
143
|
// Object modifed date matches with filter date, or was modified after that date.
|
|
145
144
|
// Highlight to show that it matches.
|
|
146
145
|
return e("span", {
|
|
147
146
|
class: "hiChar"
|
|
148
|
-
}, f(this,
|
|
147
|
+
}, f(this, F, "f").call(this, t));
|
|
149
148
|
} else {
|
|
150
|
-
return f(this,
|
|
149
|
+
return f(this, F, "f").call(this, t);
|
|
151
150
|
}
|
|
152
151
|
}));
|
|
153
|
-
|
|
152
|
+
V.set(this, (t => {
|
|
154
153
|
this.afterValue = t.detail;
|
|
155
|
-
f(this,
|
|
154
|
+
f(this, A, "f").call(this);
|
|
156
155
|
}));
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
f(this,
|
|
160
|
-
const t = f(this,
|
|
156
|
+
F.set(this, (t => d(t, "date-time-short")));
|
|
157
|
+
A.set(this, (() => {
|
|
158
|
+
f(this, X, "f").call(this);
|
|
159
|
+
const t = f(this, b, "f") ? f(this, b, "f").id : "";
|
|
161
160
|
const e = {
|
|
162
161
|
name: f(this, p, "f"),
|
|
163
162
|
searchContents: f(this, g, "f"),
|
|
164
163
|
category: f(this, w, "f"),
|
|
165
164
|
parent: t,
|
|
166
|
-
allDescendants: f(this, v, "f") ===
|
|
165
|
+
allDescendants: f(this, v, "f") === st,
|
|
167
166
|
modifiedAfter: this.showModified ? this.afterValue : undefined,
|
|
168
167
|
modifiedBy: this.showModified ? f(this, k, "f") : undefined,
|
|
169
168
|
modifiedDate: this.showModified ? new Date(this.dateTimeValue) : undefined
|
|
@@ -172,12 +171,12 @@ const rt = class {
|
|
|
172
171
|
this.objects = t;
|
|
173
172
|
h(this, y, [], "f");
|
|
174
173
|
if (f(this, x, "f")) {
|
|
175
|
-
f(this,
|
|
174
|
+
f(this, H, "f").call(this);
|
|
176
175
|
}
|
|
177
176
|
this.isLoading = false;
|
|
178
177
|
}));
|
|
179
178
|
}));
|
|
180
|
-
|
|
179
|
+
L.set(this, (() => [ e("div", {
|
|
181
180
|
// Name
|
|
182
181
|
class: "field field-block field-name"
|
|
183
182
|
}, e("label", {
|
|
@@ -187,7 +186,7 @@ const rt = class {
|
|
|
187
186
|
id: "name",
|
|
188
187
|
class: "input",
|
|
189
188
|
value: f(this, p, "f"),
|
|
190
|
-
onInput: f(this,
|
|
189
|
+
onInput: f(this, S, "f"),
|
|
191
190
|
part: "filter-files",
|
|
192
191
|
debounce: r.inputDebounce,
|
|
193
192
|
disabled: this.isLoading
|
|
@@ -204,14 +203,13 @@ const rt = class {
|
|
|
204
203
|
value: f(this, b, "f"),
|
|
205
204
|
defaultValue: this.defaultModule,
|
|
206
205
|
selectEntityCallback: this.selectModuleCallback,
|
|
207
|
-
|
|
208
|
-
onValueChanged: f(this, S, "f"),
|
|
206
|
+
onValueChanged: f(this, B, "f"),
|
|
209
207
|
disabled: this.isLoading
|
|
210
208
|
})), e("ch-accordion-render", {
|
|
211
209
|
class: "accordion-outlined advanced-filter",
|
|
212
210
|
model: f(this, m, "f")
|
|
213
211
|
}, e("div", {
|
|
214
|
-
slot:
|
|
212
|
+
slot: Z,
|
|
215
213
|
class: "spacing-body field-group advanced-filter__container"
|
|
216
214
|
}, this.showSearchContents && e("div", {
|
|
217
215
|
// Search contents
|
|
@@ -222,7 +220,7 @@ const rt = class {
|
|
|
222
220
|
}, f(this, u, "f").filter.content), e("ch-edit", {
|
|
223
221
|
id: "filter-content",
|
|
224
222
|
class: "input",
|
|
225
|
-
onInput: f(this,
|
|
223
|
+
onInput: f(this, U, "f"),
|
|
226
224
|
part: "filter-content"
|
|
227
225
|
})), e("div", {
|
|
228
226
|
class: "field-group advanced-filter__first-row"
|
|
@@ -239,7 +237,7 @@ const rt = class {
|
|
|
239
237
|
disabled: !this.categories || this.isLoading,
|
|
240
238
|
model: this.categoriesComboBoxModel,
|
|
241
239
|
part: "filter-category",
|
|
242
|
-
onInput: f(this,
|
|
240
|
+
onInput: f(this, j, "f")
|
|
243
241
|
})), e("div", {
|
|
244
242
|
// All descendants / Modified
|
|
245
243
|
class: "all-descendants__modified field field-inline"
|
|
@@ -247,22 +245,22 @@ const rt = class {
|
|
|
247
245
|
// All descendants
|
|
248
246
|
class: "checkbox",
|
|
249
247
|
caption: f(this, u, "f").filter.allDescendants,
|
|
250
|
-
checkedValue:
|
|
251
|
-
unCheckedValue:
|
|
248
|
+
checkedValue: st,
|
|
249
|
+
unCheckedValue: at,
|
|
252
250
|
value: f(this, v, "f"),
|
|
253
|
-
onInput: f(this,
|
|
251
|
+
onInput: f(this, W, "f"),
|
|
254
252
|
part: "filter-all-descendants",
|
|
255
253
|
disabled: this.isLoading
|
|
256
254
|
}), e("ch-checkbox", {
|
|
257
255
|
// Modified
|
|
258
256
|
class: "checkbox align-center",
|
|
259
257
|
caption: f(this, u, "f").filter.modified,
|
|
260
|
-
checkedValue:
|
|
261
|
-
unCheckedValue:
|
|
258
|
+
checkedValue: st,
|
|
259
|
+
unCheckedValue: at,
|
|
262
260
|
value: this.showModified,
|
|
263
|
-
onInput: f(this,
|
|
261
|
+
onInput: f(this, q, "f"),
|
|
264
262
|
part: "filter-modified"
|
|
265
|
-
}))), this.showModified ===
|
|
263
|
+
}))), this.showModified === st && e("div", {
|
|
266
264
|
class: "field-group advanced-filter__second-row"
|
|
267
265
|
}, e("div", {
|
|
268
266
|
// After
|
|
@@ -275,7 +273,7 @@ const rt = class {
|
|
|
275
273
|
class: "combo-box",
|
|
276
274
|
value: this.afterValue,
|
|
277
275
|
model: this.filterAfterComboBoxModel,
|
|
278
|
-
onInput: f(this,
|
|
276
|
+
onInput: f(this, V, "f"),
|
|
279
277
|
part: "filter-after-type",
|
|
280
278
|
disabled: this.isLoading
|
|
281
279
|
})), e("div", {
|
|
@@ -288,22 +286,22 @@ const rt = class {
|
|
|
288
286
|
id: "filter-user",
|
|
289
287
|
class: "input",
|
|
290
288
|
value: f(this, k, "f"),
|
|
291
|
-
onInput: f(this,
|
|
289
|
+
onInput: f(this, Y, "f"),
|
|
292
290
|
part: "filter-user",
|
|
293
291
|
debounce: r.inputDebounce,
|
|
294
292
|
disabled: this.isLoading
|
|
295
|
-
})), this.afterValue ===
|
|
293
|
+
})), this.afterValue === tt && e("div", {
|
|
296
294
|
// Date/Time
|
|
297
295
|
class: {
|
|
298
296
|
"field field-block field-date": true,
|
|
299
|
-
hide: this.afterValue !==
|
|
297
|
+
hide: this.afterValue !== tt
|
|
300
298
|
}
|
|
301
299
|
}, e("label", {
|
|
302
300
|
class: "label label-date-time",
|
|
303
301
|
htmlFor: "filter-date-time"
|
|
304
302
|
}, f(this, u, "f").filter.dateTime, e("ch-image", {
|
|
305
303
|
class: "icon-s icon-clear-date-time",
|
|
306
|
-
src:
|
|
304
|
+
src: R
|
|
307
305
|
}), e("ch-tooltip", {
|
|
308
306
|
class: "tooltip",
|
|
309
307
|
actionElement: null,
|
|
@@ -315,19 +313,19 @@ const rt = class {
|
|
|
315
313
|
type: "datetime-local",
|
|
316
314
|
class: "input input-date-time",
|
|
317
315
|
value: this.dateTimeValue,
|
|
318
|
-
onInput: f(this,
|
|
316
|
+
onInput: f(this, D, "f"),
|
|
319
317
|
part: "filter-date-time",
|
|
320
318
|
disabled: this.isLoading
|
|
321
319
|
}), e("button", {
|
|
322
320
|
class: "button-tertiary button-icon-only",
|
|
323
|
-
onClick: f(this,
|
|
321
|
+
onClick: f(this, T, "f"),
|
|
324
322
|
disabled: this.isLoading
|
|
325
323
|
}, e("ch-image", {
|
|
326
324
|
class: "icon-m",
|
|
327
|
-
src:
|
|
325
|
+
src: K,
|
|
328
326
|
type: "mask"
|
|
329
327
|
})))))) ]));
|
|
330
|
-
|
|
328
|
+
P.set(this, (() => {
|
|
331
329
|
var t;
|
|
332
330
|
const i = !this.objects.length;
|
|
333
331
|
return e("ch-tabular-grid", {
|
|
@@ -416,13 +414,13 @@ const rt = class {
|
|
|
416
414
|
class: "tabular-grid-cell tabular-grid-cell-description"
|
|
417
415
|
}, t.description), this.gridColumnsVisibility.modifiedDate && e("ch-tabular-grid-cell", {
|
|
418
416
|
class: "tabular-grid-cell"
|
|
419
|
-
}, f(this,
|
|
417
|
+
}, f(this, I, "f").call(this, t.modifiedDate, this.dateTimeValue)), this.gridColumnsVisibility.lastUser && e("ch-tabular-grid-cell", {
|
|
420
418
|
class: "tabular-grid-cell"
|
|
421
419
|
}, n((i = t.lastUser) === null || i === void 0 ? void 0 : i.toLowerCase(), f(this, k, "f"))), this.gridColumnsVisibility.importDate && e("ch-tabular-grid-cell", {
|
|
422
420
|
class: "tabular-grid-cell"
|
|
423
|
-
}, n(t.importDate ? f(this,
|
|
421
|
+
}, n(t.importDate ? f(this, F, "f").call(this, t.importDate) : "", f(this, p, "f"))), this.gridColumnsVisibility.lastBuildDate && e("ch-tabular-grid-cell", {
|
|
424
422
|
class: "tabular-grid-cell"
|
|
425
|
-
}, n(t.lastBuildDate ? f(this,
|
|
423
|
+
}, n(t.lastBuildDate ? f(this, F, "f").call(this, t.lastBuildDate) : "", f(this, p, "f"))));
|
|
426
424
|
}))) : e("ch-tabular-grid-rowset", {
|
|
427
425
|
class: "tabular-grid-rowset"
|
|
428
426
|
}, e("ch-tabular-grid-rowset-empty", null, this.isLoading ? e("gx-ide-loader", {
|
|
@@ -431,43 +429,43 @@ const rt = class {
|
|
|
431
429
|
show: true
|
|
432
430
|
}) : e("gx-ide-empty-state", {
|
|
433
431
|
isAnimated: true,
|
|
434
|
-
stateIconSrc:
|
|
432
|
+
stateIconSrc: Q,
|
|
435
433
|
stateTitle: f(this, u, "f").emptyState.title
|
|
436
434
|
}))));
|
|
437
435
|
}));
|
|
438
|
-
|
|
436
|
+
B.set(this, (t => {
|
|
439
437
|
h(this, b, t.detail, "f");
|
|
440
|
-
f(this,
|
|
438
|
+
f(this, A, "f").call(this);
|
|
441
439
|
}));
|
|
442
|
-
|
|
440
|
+
S.set(this, (t => {
|
|
443
441
|
h(this, p, t.detail, "f");
|
|
444
|
-
f(this,
|
|
442
|
+
f(this, A, "f").call(this);
|
|
445
443
|
}));
|
|
446
|
-
|
|
444
|
+
$.set(this, (() => {
|
|
447
445
|
this.newFileCallback();
|
|
448
446
|
}));
|
|
449
|
-
|
|
447
|
+
O.set(this, (() => {
|
|
450
448
|
this.openSelectionCallback(f(this, y, "f"));
|
|
451
449
|
}));
|
|
452
|
-
|
|
450
|
+
U.set(this, (t => {
|
|
453
451
|
h(this, g, t.detail, "f");
|
|
454
|
-
f(this,
|
|
452
|
+
f(this, A, "f").call(this);
|
|
455
453
|
}));
|
|
456
|
-
|
|
454
|
+
X.set(this, (() => {
|
|
457
455
|
// Only clear if no objects or first load
|
|
458
456
|
if (!this.objects || this.objects.length === 0) {
|
|
459
457
|
this.objects = [];
|
|
460
458
|
}
|
|
461
459
|
this.isLoading = true;
|
|
462
460
|
}));
|
|
463
|
-
|
|
461
|
+
Y.set(this, (t => {
|
|
464
462
|
h(this, k, t.detail, "f");
|
|
465
|
-
f(this,
|
|
463
|
+
f(this, A, "f").call(this);
|
|
466
464
|
}));
|
|
467
|
-
|
|
465
|
+
q.set(this, (t => {
|
|
468
466
|
this.showModified = t.detail;
|
|
469
467
|
}));
|
|
470
|
-
|
|
468
|
+
G.set(this, (() => {
|
|
471
469
|
if (f(this, x, "f") && typeof f(this, x, "f").selectAllRows === "function") {
|
|
472
470
|
f(this, x, "f").selectAllRows();
|
|
473
471
|
}
|
|
@@ -477,7 +475,7 @@ const rt = class {
|
|
|
477
475
|
this.dateTimeValue = undefined;
|
|
478
476
|
this.isLoading = true;
|
|
479
477
|
this.filterAfterComboBoxModel = undefined;
|
|
480
|
-
this.showModified =
|
|
478
|
+
this.showModified = st;
|
|
481
479
|
this.objects = [];
|
|
482
480
|
this.categories = undefined;
|
|
483
481
|
this.contextMenuCallback = undefined;
|
|
@@ -499,7 +497,7 @@ const rt = class {
|
|
|
499
497
|
this.showSearchContents = false;
|
|
500
498
|
}
|
|
501
499
|
dateTimeValueChanged() {
|
|
502
|
-
f(this,
|
|
500
|
+
f(this, A, "f").call(this);
|
|
503
501
|
}
|
|
504
502
|
categoriesChanged(t) {
|
|
505
503
|
this.categoriesComboBoxModel = o(t);
|
|
@@ -510,43 +508,43 @@ const rt = class {
|
|
|
510
508
|
this.categoriesChanged(this.categories);
|
|
511
509
|
// initialize "After" combo-box options
|
|
512
510
|
this.filterAfterComboBoxModel = [ {
|
|
511
|
+
caption: f(this, u, "f").filter[tt],
|
|
512
|
+
value: tt
|
|
513
|
+
}, {
|
|
513
514
|
caption: f(this, u, "f").filter[et],
|
|
514
515
|
value: et
|
|
515
516
|
}, {
|
|
516
517
|
caption: f(this, u, "f").filter[it],
|
|
517
518
|
value: it
|
|
518
|
-
}, {
|
|
519
|
-
caption: f(this, u, "f").filter[st],
|
|
520
|
-
value: st
|
|
521
519
|
} ];
|
|
522
520
|
// initialize accordion model with proper configuration
|
|
523
521
|
h(this, m, [ {
|
|
524
|
-
id:
|
|
522
|
+
id: Z,
|
|
525
523
|
caption: f(this, u, "f").filter.accordionCaption,
|
|
526
524
|
expanded: false
|
|
527
525
|
} ], "f");
|
|
528
|
-
f(this,
|
|
526
|
+
f(this, M, "f").call(this);
|
|
529
527
|
}
|
|
530
528
|
componentDidLoad() {
|
|
531
|
-
f(this,
|
|
532
|
-
f(this,
|
|
529
|
+
f(this, N, "f").call(this);
|
|
530
|
+
f(this, A, "f").call(this);
|
|
533
531
|
}
|
|
534
532
|
keyDownHandler(t) {
|
|
535
533
|
if (document.activeElement === this.el) {
|
|
536
534
|
switch (t.key) {
|
|
537
535
|
case "Enter":
|
|
538
536
|
t.preventDefault();
|
|
539
|
-
f(this,
|
|
537
|
+
f(this, O, "f").call(this);
|
|
540
538
|
break;
|
|
541
539
|
|
|
542
540
|
case "Delete":
|
|
543
541
|
t.preventDefault();
|
|
544
|
-
f(this,
|
|
542
|
+
f(this, E, "f").call(this);
|
|
545
543
|
break;
|
|
546
544
|
|
|
547
545
|
case "Escape":
|
|
548
546
|
t.preventDefault();
|
|
549
|
-
f(this,
|
|
547
|
+
f(this, H, "f").call(this);
|
|
550
548
|
break;
|
|
551
549
|
}
|
|
552
550
|
}
|
|
@@ -556,14 +554,14 @@ const rt = class {
|
|
|
556
554
|
*/ async reload() {
|
|
557
555
|
try {
|
|
558
556
|
if (f(this, u, "f") && this.filterAfterComboBoxModel) {
|
|
559
|
-
f(this,
|
|
560
|
-
f(this,
|
|
557
|
+
f(this, M, "f").call(this);
|
|
558
|
+
f(this, A, "f").call(this);
|
|
561
559
|
}
|
|
562
560
|
} catch (t) {
|
|
563
561
|
console.error("Error in reload method:");
|
|
564
562
|
// Fallback: try only getObjects if setFilterDefaultValues fails
|
|
565
563
|
try {
|
|
566
|
-
f(this,
|
|
564
|
+
f(this, A, "f").call(this);
|
|
567
565
|
} catch (t) {
|
|
568
566
|
console.error("Fallback also failed:");
|
|
569
567
|
}
|
|
@@ -574,12 +572,12 @@ const rt = class {
|
|
|
574
572
|
return e(i, {
|
|
575
573
|
class: "widget"
|
|
576
574
|
}, e("ch-theme", {
|
|
577
|
-
model:
|
|
575
|
+
model: J
|
|
578
576
|
}), e("section", {
|
|
579
577
|
class: "section"
|
|
580
578
|
}, e("header", {
|
|
581
579
|
class: "header dialog-header-with-border spacing-body-inline spacing-body-block-start field-group"
|
|
582
|
-
}, f(this,
|
|
580
|
+
}, f(this, L, "f").call(this)), f(this, P, "f").call(this), e("footer", {
|
|
583
581
|
class: "dialog-footer-with-border dialog-footer-space-between spacing-body"
|
|
584
582
|
}, e("p", {
|
|
585
583
|
// matching objects
|
|
@@ -591,14 +589,14 @@ const rt = class {
|
|
|
591
589
|
// select all button
|
|
592
590
|
id: "button-select-all",
|
|
593
591
|
class: "button-secondary",
|
|
594
|
-
onClick: f(this,
|
|
592
|
+
onClick: f(this, G, "f"),
|
|
595
593
|
part: "button button--select-all",
|
|
596
594
|
disabled: this.isLoading
|
|
597
595
|
}, f(this, u, "f").footer.btnSelectAll), e("button", {
|
|
598
596
|
// new file button
|
|
599
597
|
id: "button-new-file",
|
|
600
598
|
class: "button-primary button-icon-and-text",
|
|
601
|
-
onClick: f(this,
|
|
599
|
+
onClick: f(this, $, "f"),
|
|
602
600
|
part: "button button--new-file",
|
|
603
601
|
disabled: this.isLoading
|
|
604
602
|
}, f(this, u, "f").footer.btnNew)))));
|
|
@@ -624,9 +622,9 @@ N = new WeakMap, j = new WeakMap, T = new WeakMap, D = new WeakMap, E = new Weak
|
|
|
624
622
|
H = new WeakMap, I = new WeakMap, V = new WeakMap, F = new WeakMap, A = new WeakMap,
|
|
625
623
|
L = new WeakMap, P = new WeakMap, B = new WeakMap, S = new WeakMap, $ = new WeakMap,
|
|
626
624
|
O = new WeakMap, U = new WeakMap, X = new WeakMap, Y = new WeakMap, q = new WeakMap,
|
|
627
|
-
G = new WeakMap
|
|
625
|
+
G = new WeakMap;
|
|
628
626
|
|
|
629
|
-
|
|
627
|
+
lt.style = c;
|
|
630
628
|
|
|
631
|
-
export {
|
|
632
|
-
//# sourceMappingURL=p-
|
|
629
|
+
export { lt as gx_ide_ww_files };
|
|
630
|
+
//# sourceMappingURL=p-7bdeae77.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["wwFilesCss","CSS_BUNDLES","CLEAR_ICON","getIconPath","category","name","colorType","FILTER_ICON","INFO_ICON","ACCORDION_FILTER_ID","FILTER_AFTER_DATE_TIME","FILTER_AFTER_LAST_BUILD","FILTER_AFTER_IMPORT","CHECKBOX_CHECKED_VALUE","CHECKBOX_UNCHECKED_VALUE","GxIdeWWFiles","_GxIdeWWFiles_componentLocale","set","this","_GxIdeWWFiles_ACCORDION_MODEL","_GxIdeWWFiles_nameValue","_GxIdeWWFiles_moduleValue","_GxIdeWWFiles_searchContentsValue","_GxIdeWWFiles_categoryValue","_GxIdeWWFiles_allDescendants","_GxIdeWWFiles_userValue","_GxIdeWWFiles_selectedObjectsIds","_GxIdeWWFiles_chGridEl","_GxIdeWWFiles_setFilterDefaultValues","__classPrivateFieldSet","Object","assign","defaultModule","defaultCategory","categoriesComboBoxModel","length","value","afterValue","filterAfterComboBoxModel","dateTimeValue","undefined","_GxIdeWWFiles_allDescendantsCheckboxHandler","event","detail","__classPrivateFieldGet","_GxIdeWWFiles_getObjects","call","_GxIdeWWFiles_handleSelectionChanged","ev","rowsId","selectionChangeCallback","_GxIdeWWFiles_handleRowDoubleClicked","_GxIdeWWFiles_openSelectionCallbackHandler","_GxIdeWWFiles_handleRowContextMenu","preventDefault","stopPropagation","contextMenuCallback","selection","selectedRowsId","clientX","clientY","_GxIdeWWFiles_attachGridListeners","addEventListener","_GxIdeWWFiles_categoryInputHandler","async","_GxIdeWWFiles_clearDateTimeValue","_GxIdeWWFiles_dateTimeInputHandler","_GxIdeWWFiles_deleteSelectionCallbackHandler","deleteSelectionCallback","_GxIdeWWFiles_deselectAll","selectAllRows","_GxIdeWWFiles_evaluateModifiedDates","objectModifiedDate","filterSelectedModifiedDate","filterSelectedModifiedDateAsDate","Date","h","class","_GxIdeWWFiles_formatDate","_GxIdeWWFiles_filterAfterTypeCallbackHandler","date","formatDate","_GxIdeWWFiles_setLoadingState","parentId","id","filtersValues","searchContents","parent","allDescendants","modifiedAfter","showModified","modifiedBy","modifiedDate","loadCallback","then","items","objects","isLoading","_GxIdeWWFiles_renderHeader","htmlFor","filter","onInput","_GxIdeWWFiles_nameInputHandler","part","debounce","config","inputDebounce","disabled","moduleFolder","labelPosition","defaultValue","selectEntityCallback","selectModuleCallback","onValueChanged","_GxIdeWWFiles_moduleValueChangedHandler","model","slot","showSearchContents","content","_GxIdeWWFiles_searchContentsInputHandler","categories","caption","checkedValue","unCheckedValue","modified","_GxIdeWWFiles_showModifiedCheckboxHandler","after","user","_GxIdeWWFiles_userInputHandler","hide","dateTime","src","actionElement","blockAlign","inlineAlign","delay","tooltipSettings","dateTimeTooltip","type","onClick","_GxIdeWWFiles_renderObjects","gridIsEmpty","ref","el","loading","empty","rowSelectionMode","columnName","columnNameHidden","settingable","sortable","size","tabularGrid","colSize","maxContent","tableHead","module","gridColumnsVisibility","description","auto","lastUser","importDate","lastBuildDate","_a","map","object","rowid","icon","hiChar","toLowerCase","loaderTitle","loader","title","show","isAnimated","stateIconSrc","stateTitle","emptyState","_GxIdeWWFiles_newFileCallbackHandler","newFileCallback","openSelectionCallback","_GxIdeWWFiles_selectAll","dateTimeValueChanged","categoriesChanged","newCategories","mapOptionsToComboBoxItemModel","componentWillLoad","Locale","getComponentStrings","accordionCaption","expanded","componentDidLoad","keyDownHandler","eventInfo","document","activeElement","key","reload","error","console","fallbackError","render","Host","objCount","matching","footer","btnSelectAll","btnNew"],"sources":["src/components/ww-files/ww-files.scss?tag=gx-ide-ww-files&encapsulation=shadow","src/components/ww-files/ww-files.tsx"],"sourcesContent":["@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../global/temporary-mercury-overrides/_button.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n container-type: inline-size;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - -\n\n.header {\n grid-template-areas:\n \"name module-folder\"\n \"advanced-filter advanced-filter\";\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: max-content max-content;\n}\n.name {\n grid-area: name;\n}\n.module-folder {\n grid-area: module-folder;\n}\n.advanced-filter {\n grid-area: advanced-filter;\n}\n\n// Advanced Filter\n.advanced-filter {\n &__container {\n display: grid;\n grid-auto-rows: max-content;\n }\n &__first-row {\n grid-template-columns: 1fr 1fr;\n }\n &__second-row {\n grid-template-columns: 1fr 1fr 1fr;\n }\n .all-descendants__modified {\n display: flex;\n flex-direction: row;\n align-items: center;\n block-size: 32px;\n gap: var(--spacing-gap-xl);\n align-self: self-end;\n }\n}\n// date/time\n.field-date {\n grid-template-areas:\n \"label-date-time label-date-time\"\n \"input-date-time icon-clear-date-time\";\n grid-template-columns: 1fr max-content;\n column-gap: var(--spacing-gap-xs);\n}\n.label-date-time {\n // WA: There is no official way to use an icon (ch-image) within a label\n display: flex;\n align-items: center;\n gap: var(--spacing-gap-m);\n .icon-s {\n // WA: Icon looks so small that it is not recognizable\n }\n grid-area: label-date-time;\n}\n.input-date-time {\n block-size: 32px;\n grid-area: input-date-time;\n}\n.icon-clear-date-time {\n grid-area: icon-clear-date-time;\n}\n\n// - - - - - - - - - - - -\n// Grid\n// - - - - - - - - - - - -\n\n.tabular-grid {\n overflow: auto;\n inline-size: 100%;\n border-inline-end: var(--section-common-border);\n}\n.tabular-grid.empty::part(main),\n.tabular-grid.loading::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n position: relative;\n}\n.main__files-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-gap-m);\n position: relative;\n z-index: 1;\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 4\n )\n);\n.tabular-grid-cell-description {\n min-inline-size: max-content !important; // TODO: See how to remove the !important\n}\n\n@include hiChar();\n\n// - - - - - - - - - - - -\n// Responsive\n// - - - - - - - - - - - -\n\n// @container (max-width: 992px) {\n// .main__files-container {\n// grid-template-columns: repeat(3, 1fr);\n// }\n// }\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { mapOptionsToComboBoxItemModel, hiChar } from \"./helpers\";\nimport {\n AccordionModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { formatDate } from \"../../common/helpers\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../..\";\n\ninterface TabularGridWithSelection extends HTMLChTabularGridElement {\n selectAllRows: (select?: boolean) => Promise<void>;\n}\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/accordion\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst CLEAR_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"interactive\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst ACCORDION_FILTER_ID = \"advanced-filter\";\nconst FILTER_AFTER_DATE_TIME = \"afterDateTime\";\nconst FILTER_AFTER_LAST_BUILD = \"afterLastBuild\";\nconst FILTER_AFTER_IMPORT = \"afterImport\";\n\nconst CHECKBOX_CHECKED_VALUE = \"checked\";\nconst CHECKBOX_UNCHECKED_VALUE = \"unchecked\";\n\n@Component({\n tag: \"gx-ide-ww-files\",\n styleUrl: \"ww-files.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-files\"]\n})\nexport class GxIdeWWFiles {\n #componentLocale: any;\n #ACCORDION_MODEL: AccordionModel = [];\n\n // Filter Values\n #nameValue: string;\n #moduleValue: EntityData;\n // Advanced Filter Values\n #searchContentsValue: string;\n #categoryValue: string;\n #allDescendants: CheckboxState;\n #userValue: string;\n // Other\n #selectedObjectsIds: string[] = [];\n\n @Element() el: HTMLGxIdeWwFilesElement;\n #chGridEl!: HTMLChTabularGridElement;\n\n /**\n * The \"After\" control value. Controls the visibility of the \"Date/Time\" control.\n */\n @State() afterValue: string;\n\n /**\n * The \"Category\" options as combo box model\n */\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n\n /**\n * Value of the Date/Time control\n */\n @State() dateTimeValue: string;\n @Watch(\"dateTimeValue\")\n dateTimeValueChanged() {\n this.#getObjects();\n }\n\n /**\n * A loader that is shown when the filter changes and the server has to retrieve new data.\n */\n @State() isLoading: boolean = true;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterComboBoxModel: ComboBoxModel;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() showModified: CheckboxState = CHECKBOX_CHECKED_VALUE;\n\n /**\n * The files rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n @Watch(\"categories\")\n categoriesChanged(newCategories: GxOption[]) {\n this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);\n }\n\n /**\n * This is a function provided by the developer for show the context menu of the selected files.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * The default value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * This is a function provided by the developer for delete the selected files.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Controls the visibility of the tabular grid cell columns, and respective cells.\n */\n @Prop() readonly gridColumnsVisibility: GridColumnsVisibility = {\n description: true,\n importDate: true,\n lastBuildDate: true,\n lastUser: true,\n modifiedDate: true\n };\n\n /**\n * This is a function provided by the developer that return a list of files to populate the table of files.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n *\n */\n @Prop() readonly newFileCallback!: NewFileCallback;\n\n /**\n * This is a function provided by the developer to expand the data of files that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback!: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Controls whether to show the Search contents field in the advanced filter section (Not available at the time of writting, since the server is not handling this feature yet.)\n */\n @Prop() readonly showSearchContents = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize combo-box models∂\n this.categoriesChanged(this.categories);\n\n // initialize \"After\" combo-box options\n this.filterAfterComboBoxModel = [\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_DATE_TIME],\n value: FILTER_AFTER_DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_LAST_BUILD],\n value: FILTER_AFTER_LAST_BUILD\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_IMPORT],\n value: FILTER_AFTER_IMPORT\n }\n ];\n\n // initialize accordion model with proper configuration\n this.#ACCORDION_MODEL = [\n {\n id: ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: false\n }\n ];\n\n this.#setFilterDefaultValues();\n }\n #setFilterDefaultValues = () => {\n this.#nameValue = \"\";\n this.#moduleValue = { ...this.defaultModule };\n this.#searchContentsValue = \"\";\n\n this.#categoryValue =\n this.defaultCategory ||\n (this.categoriesComboBoxModel && this.categoriesComboBoxModel.length > 0\n ? this.categoriesComboBoxModel[0].value\n : \"\");\n\n this.#allDescendants = CHECKBOX_UNCHECKED_VALUE;\n\n this.afterValue =\n this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0\n ? this.filterAfterComboBoxModel[0].value\n : FILTER_AFTER_DATE_TIME;\n\n this.#userValue = \"\";\n this.dateTimeValue = undefined;\n };\n\n componentDidLoad() {\n this.#attachGridListeners();\n this.#getObjects();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n eventInfo.preventDefault();\n this.#openSelectionCallbackHandler();\n break;\n case \"Delete\":\n eventInfo.preventDefault();\n this.#deleteSelectionCallbackHandler();\n break;\n case \"Escape\":\n eventInfo.preventDefault();\n this.#deselectAll();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and the table of files.\n */\n @Method()\n async reload(): Promise<void> {\n try {\n if (this.#componentLocale && this.filterAfterComboBoxModel) {\n this.#setFilterDefaultValues();\n this.#getObjects();\n }\n } catch (error) {\n console.error(\"Error in reload method:\");\n // Fallback: try only getObjects if setFilterDefaultValues fails\n try {\n this.#getObjects();\n } catch (fallbackError) {\n console.error(\"Fallback also failed:\");\n }\n }\n }\n\n #allDescendantsCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.#allDescendants =\n event.detail === CHECKBOX_CHECKED_VALUE\n ? CHECKBOX_CHECKED_VALUE\n : CHECKBOX_UNCHECKED_VALUE;\n this.#getObjects();\n };\n\n #handleSelectionChanged = (ev: CustomEvent<{ rowsId: string[] }>): void => {\n this.#selectedObjectsIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.#selectedObjectsIds);\n };\n\n #handleRowDoubleClicked = (): void => {\n this.#openSelectionCallbackHandler();\n };\n\n #handleRowContextMenu = (\n ev: CustomEvent<TabularGridRowContextMenuEvent>\n ): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #attachGridListeners = (): void => {\n this.#chGridEl.addEventListener(\n \"selectionChanged\",\n this.#handleSelectionChanged\n );\n this.#chGridEl.addEventListener(\n \"rowDoubleClicked\",\n this.#handleRowDoubleClicked\n );\n this.#chGridEl.addEventListener(\n \"rowContextMenu\",\n this.#handleRowContextMenu\n );\n };\n\n #categoryInputHandler = async (event: CustomEvent<string> | InputEvent) => {\n this.#categoryValue = event.detail as string;\n this.#getObjects();\n };\n\n #clearDateTimeValue = () => {\n this.dateTimeValue = undefined;\n };\n\n #dateTimeInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.dateTimeValue = event.detail;\n this.#getObjects();\n };\n\n #deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.#selectedObjectsIds);\n };\n\n #deselectAll = (): void => {\n if (\n this.#chGridEl &&\n typeof (this.#chGridEl as TabularGridWithSelection).selectAllRows ===\n \"function\"\n ) {\n (this.#chGridEl as TabularGridWithSelection).selectAllRows(false);\n }\n };\n\n #evaluateModifiedDates = (\n objectModifiedDate: Date,\n filterSelectedModifiedDate: string\n ) => {\n const filterSelectedModifiedDateAsDate = new Date(\n filterSelectedModifiedDate\n );\n if (filterSelectedModifiedDateAsDate >= objectModifiedDate) {\n // Object modifed date matches with filter date, or was modified after that date.\n // Highlight to show that it matches.\n return <span class=\"hiChar\">{this.#formatDate(objectModifiedDate)}</span>;\n } else {\n return this.#formatDate(objectModifiedDate);\n }\n };\n\n #filterAfterTypeCallbackHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.afterValue = event.detail as string;\n this.#getObjects();\n };\n\n #formatDate = (date: Date): string => {\n return formatDate(date, \"date-time-short\");\n };\n\n #getObjects = () => {\n this.#setLoadingState();\n\n const parentId = this.#moduleValue ? this.#moduleValue.id : \"\";\n\n const filtersValues: ObjectFiltersData = {\n name: this.#nameValue,\n searchContents: this.#searchContentsValue,\n category: this.#categoryValue,\n parent: parentId,\n allDescendants: this.#allDescendants === CHECKBOX_CHECKED_VALUE,\n modifiedAfter: this.showModified ? this.afterValue : undefined,\n modifiedBy: this.showModified ? this.#userValue : undefined,\n modifiedDate: this.showModified ? new Date(this.dateTimeValue) : undefined\n };\n\n this.loadCallback(filtersValues).then((items: ObjectData[]) => {\n this.objects = items;\n this.#selectedObjectsIds = [];\n\n if (this.#chGridEl) {\n this.#deselectAll();\n }\n\n this.isLoading = false;\n });\n };\n\n #renderHeader = (): Element[] => {\n return [\n <div\n // Name\n class=\"field field-block field-name\"\n >\n <label class=\"label\" htmlFor=\"name\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"name\"\n class=\"input\"\n value={this.#nameValue}\n onInput={this.#nameInputHandler}\n part=\"filter-files\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>,\n\n <div\n // Module\n class=\"field field-block field-module-folder\"\n >\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n <gx-ide-entity-selector\n part=\"filter-module-folder\"\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.#moduleValue}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n onValueChanged={this.#moduleValueChangedHandler}\n disabled={this.isLoading}\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n class=\"accordion-outlined advanced-filter\"\n model={this.#ACCORDION_MODEL}\n >\n <div\n slot={ACCORDION_FILTER_ID}\n class=\"spacing-body field-group advanced-filter__container\"\n >\n {this.showSearchContents && (\n <div\n // Search contents\n class=\"field field-block field-search-contents\"\n >\n <label class=\"label\" htmlFor=\"filter-content\">\n {this.#componentLocale.filter.content}\n </label>\n <ch-edit\n id=\"filter-content\"\n class=\"input\"\n onInput={this.#searchContentsInputHandler}\n part=\"filter-content\"\n ></ch-edit>\n </div>\n )}\n\n <div class=\"field-group advanced-filter__first-row\">\n <div\n // Category\n class=\"field field-block field-category\"\n >\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"filter-category\"\n class=\"combo-box disabled\"\n value={this.#categoryValue}\n disabled={!this.categories || this.isLoading}\n model={this.categoriesComboBoxModel}\n part=\"filter-category\"\n onInput={this.#categoryInputHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // All descendants / Modified\n class=\"all-descendants__modified field field-inline\"\n >\n <ch-checkbox\n // All descendants\n class=\"checkbox\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.#allDescendants}\n onInput={this.#allDescendantsCheckboxHandler}\n part=\"filter-all-descendants\"\n disabled={this.isLoading}\n ></ch-checkbox>\n\n <ch-checkbox\n // Modified\n class=\"checkbox align-center\"\n caption={this.#componentLocale.filter.modified}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.showModified}\n onInput={this.#showModifiedCheckboxHandler}\n part=\"filter-modified\"\n ></ch-checkbox>\n </div>\n </div>\n\n {this.showModified === CHECKBOX_CHECKED_VALUE && (\n <div class=\"field-group advanced-filter__second-row\">\n <div\n // After\n class=\"field field-block field-after\"\n >\n <label class=\"label\" htmlFor=\"filter-after-type\">\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n id=\"filter-after-type\"\n class=\"combo-box\"\n value={this.afterValue}\n model={this.filterAfterComboBoxModel}\n onInput={this.#filterAfterTypeCallbackHandler}\n part=\"filter-after-type\"\n disabled={this.isLoading}\n ></ch-combo-box-render>\n </div>\n\n <div\n // User\n class=\"field field-block field-user\"\n >\n <label class=\"label\" htmlFor=\"filter-user\">\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n id=\"filter-user\"\n class=\"input\"\n value={this.#userValue}\n onInput={this.#userInputHandler}\n part=\"filter-user\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>\n\n {this.afterValue === FILTER_AFTER_DATE_TIME && (\n <div\n // Date/Time\n class={{\n \"field field-block field-date\": true,\n \"hide\": this.afterValue !== FILTER_AFTER_DATE_TIME\n }}\n >\n <label\n class=\"label label-date-time\"\n htmlFor=\"filter-date-time\"\n >\n {this.#componentLocale.filter.dateTime}\n <ch-image\n class=\"icon-s icon-clear-date-time\"\n src={INFO_ICON}\n ></ch-image>\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-start\"\n inlineAlign=\"inside-start\"\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.filter.dateTimeTooltip}\n </ch-tooltip>\n </label>\n\n <ch-edit\n id=\"filter-date-time\"\n type=\"datetime-local\"\n class=\"input input-date-time\"\n value={this.dateTimeValue}\n onInput={this.#dateTimeInputHandler}\n part=\"filter-date-time\"\n disabled={this.isLoading}\n ></ch-edit>\n\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#clearDateTimeValue}\n disabled={this.isLoading}\n >\n <ch-image class=\"icon-m\" src={CLEAR_ICON} type=\"mask\" />\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderObjects = (): Element => {\n const gridIsEmpty = !this.objects.length;\n\n return (\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n class={{\n \"tabular-grid\": true,\n \"loading\": this.isLoading,\n \"empty\": this.objects.length === 0\n }}\n rowSelectionMode=\"multiple\"\n part=\"ch-grid-files\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastUser}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.importDate}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastBuildDate}\n columnNameHidden={false}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n </ch-tabular-grid-columnset>\n\n {!gridIsEmpty ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects?.map((object: ObjectData) => (\n <ch-tabular-grid-row rowid={object.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={object.icon}></ch-image>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.name.toLowerCase(),\n this.#nameValue.toLowerCase()\n )}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.parent}\n </ch-tabular-grid-cell>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-description\">\n {object.description}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#evaluateModifiedDates(\n object.modifiedDate,\n this.dateTimeValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(object.lastUser?.toLowerCase(), this.#userValue)}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.importDate\n ? this.#formatDate(object.importDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.lastBuildDate\n ? this.#formatDate(object.lastBuildDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.isLoading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #moduleValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.#moduleValue = event.detail;\n this.#getObjects();\n };\n\n #nameInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#nameValue = event.detail;\n this.#getObjects();\n };\n\n #newFileCallbackHandler = (): void => {\n this.newFileCallback();\n };\n\n #openSelectionCallbackHandler = (): void => {\n this.openSelectionCallback(this.#selectedObjectsIds);\n };\n\n #searchContentsInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#searchContentsValue = event.detail;\n this.#getObjects();\n };\n\n #setLoadingState = () => {\n // Only clear if no objects or first load\n if (!this.objects || this.objects.length === 0) {\n this.objects = [];\n }\n this.isLoading = true;\n };\n\n #userInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#userValue = event.detail;\n this.#getObjects();\n };\n\n #showModifiedCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.showModified = event.detail;\n };\n\n #selectAll = (): void => {\n if (\n this.#chGridEl &&\n typeof (this.#chGridEl as TabularGridWithSelection).selectAllRows ===\n \"function\"\n ) {\n (this.#chGridEl as TabularGridWithSelection).selectAllRows();\n }\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header dialog-header-with-border spacing-body-inline spacing-body-block-start field-group\">\n {this.#renderHeader()}\n </header>\n\n {this.#renderObjects()}\n\n <footer class=\"dialog-footer-with-border dialog-footer-space-between spacing-body\">\n <p\n // matching objects\n class=\"text-body\"\n part=\"objects-matching\"\n >\n {`${this.objects?.length} ${\n this.#componentLocale.objCount.matching\n }`}\n </p>\n\n <div class=\"buttons-spacer\">\n <button\n // select all button\n id=\"button-select-all\"\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button--select-all\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n\n <button\n // new file button\n id=\"button-new-file\"\n class=\"button-primary button-icon-and-text\"\n onClick={this.#newFileCallbackHandler}\n part=\"button button--new-file\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n// export type ContextMenuCallback = (ids: string[]) => Promise<void>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewFileCallback = () => Promise<void>;\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport interface ObjectFiltersData {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n}\nexport interface ObjectData {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n lastBuildDate: Date;\n}\n\nexport type GridColumnsVisibility = {\n description: boolean;\n importDate: boolean;\n lastBuildDate: boolean;\n lastUser: boolean;\n modifiedDate: boolean;\n};\n\ntype CheckboxState =\n | typeof CHECKBOX_CHECKED_VALUE\n | typeof CHECKBOX_UNCHECKED_VALUE;\n"],"mappings":"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"}
|