@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.
Files changed (100) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-file-item.cjs.entry.js +21 -2
  3. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +11 -8
  5. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-launchpad.cjs.entry.js +4 -16
  7. package/dist/cjs/gx-ide-launchpad.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-multi-select.cjs.entry.js +113 -0
  9. package/dist/cjs/gx-ide-multi-select.cjs.entry.js.map +1 -0
  10. package/dist/cjs/gx-ide-search.cjs.entry.js +171 -0
  11. package/dist/cjs/gx-ide-search.cjs.entry.js.map +1 -0
  12. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +4 -9
  13. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +2 -0
  16. package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.css +193 -0
  17. package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.js +209 -0
  18. package/dist/collection/components/_helpers/multi-select/gx-ide-multi-select.js.map +1 -0
  19. package/dist/collection/components/file-uploader/file-item/file-item.css +23 -28
  20. package/dist/collection/components/file-uploader/file-item/file-item.js +37 -1
  21. package/dist/collection/components/file-uploader/file-item/file-item.js.map +1 -1
  22. package/dist/collection/components/file-uploader/file-uploader.css +11 -22
  23. package/dist/collection/components/file-uploader/file-uploader.js +10 -7
  24. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
  25. package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +7 -3
  26. package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +7 -3
  27. package/dist/collection/components/file-uploader/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +8 -3
  28. package/dist/collection/components/launchpad/root/gx-ide-assets/launchpad/shortcuts.json +1 -26
  29. package/dist/collection/components/launchpad/root/launchpad.js +5 -42
  30. package/dist/collection/components/launchpad/root/launchpad.js.map +1 -1
  31. package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.en.json +37 -0
  32. package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.ja.json +37 -0
  33. package/dist/collection/components/search/gx-ide-assets/search/langs/search.lang.zh.json +37 -0
  34. package/dist/collection/components/search/search.css +44 -0
  35. package/dist/collection/components/search/search.js +275 -0
  36. package/dist/collection/components/search/search.js.map +1 -0
  37. package/dist/collection/components/ww-files/ww-files.js +4 -9
  38. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  39. package/dist/collection/testing/locale.e2e.js +4 -1
  40. package/dist/collection/testing/locale.e2e.js.map +1 -1
  41. package/dist/components/file-item.js +22 -2
  42. package/dist/components/file-item.js.map +1 -1
  43. package/dist/components/gx-ide-file-uploader.js +11 -8
  44. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  45. package/dist/components/gx-ide-launchpad.js +6 -19
  46. package/dist/components/gx-ide-launchpad.js.map +1 -1
  47. package/dist/components/gx-ide-multi-select.d.ts +11 -0
  48. package/dist/components/gx-ide-multi-select.js +132 -0
  49. package/dist/components/gx-ide-multi-select.js.map +1 -0
  50. package/dist/components/gx-ide-search.d.ts +11 -0
  51. package/dist/components/gx-ide-search.js +206 -0
  52. package/dist/components/gx-ide-search.js.map +1 -0
  53. package/dist/components/gx-ide-ww-files.js +4 -9
  54. package/dist/components/gx-ide-ww-files.js.map +1 -1
  55. package/dist/esm/genexus-ide-ui.js +1 -1
  56. package/dist/esm/gx-ide-file-item.entry.js +21 -2
  57. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  58. package/dist/esm/gx-ide-file-uploader.entry.js +11 -8
  59. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  60. package/dist/esm/gx-ide-launchpad.entry.js +5 -17
  61. package/dist/esm/gx-ide-launchpad.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-multi-select.entry.js +109 -0
  63. package/dist/esm/gx-ide-multi-select.entry.js.map +1 -0
  64. package/dist/esm/gx-ide-search.entry.js +167 -0
  65. package/dist/esm/gx-ide-search.entry.js.map +1 -0
  66. package/dist/esm/gx-ide-ww-files.entry.js +4 -9
  67. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  70. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  71. package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.en.json +7 -3
  72. package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.ja.json +7 -3
  73. package/dist/genexus-ide-ui/gx-ide-assets/file-uploader/langs/file-uploader.lang.zh.json +8 -3
  74. package/dist/genexus-ide-ui/gx-ide-assets/launchpad/shortcuts.json +1 -26
  75. package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.en.json +37 -0
  76. package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.ja.json +37 -0
  77. package/dist/genexus-ide-ui/gx-ide-assets/search/langs/search.lang.zh.json +37 -0
  78. package/dist/genexus-ide-ui/p-0745a565.entry.js +152 -0
  79. package/dist/genexus-ide-ui/p-0745a565.entry.js.map +1 -0
  80. package/dist/genexus-ide-ui/{p-6246204f.entry.js → p-25e749c7.entry.js} +44 -57
  81. package/dist/genexus-ide-ui/p-25e749c7.entry.js.map +1 -0
  82. package/dist/genexus-ide-ui/{p-60db2f02.entry.js → p-7bdeae77.entry.js} +106 -108
  83. package/dist/genexus-ide-ui/p-7bdeae77.entry.js.map +1 -0
  84. package/dist/genexus-ide-ui/p-8b5c826b.entry.js +212 -0
  85. package/dist/genexus-ide-ui/p-8b5c826b.entry.js.map +1 -0
  86. package/dist/genexus-ide-ui/p-c460c9e7.entry.js +187 -0
  87. package/dist/genexus-ide-ui/p-c460c9e7.entry.js.map +1 -0
  88. package/dist/genexus-ide-ui/{p-aad714a5.entry.js → p-e2b88bea.entry.js} +70 -67
  89. package/dist/genexus-ide-ui/p-e2b88bea.entry.js.map +1 -0
  90. package/dist/types/components/_helpers/multi-select/gx-ide-multi-select.d.ts +29 -0
  91. package/dist/types/components/file-uploader/file-item/file-item.d.ts +2 -0
  92. package/dist/types/components/launchpad/root/launchpad.d.ts +0 -4
  93. package/dist/types/components/search/search.d.ts +59 -0
  94. package/dist/types/components.d.ts +121 -4
  95. package/package.json +1 -1
  96. package/dist/genexus-ide-ui/p-60db2f02.entry.js.map +0 -1
  97. package/dist/genexus-ide-ui/p-6246204f.entry.js.map +0 -1
  98. package/dist/genexus-ide-ui/p-aad714a5.entry.js.map +0 -1
  99. package/dist/genexus-ide-ui/p-f3c3e830.entry.js +0 -163
  100. 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, J;
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 K = [ "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" ];
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 Q = a({
40
+ const K = a({
41
41
  category: "system",
42
42
  name: "close",
43
43
  colorType: "interactive"
44
44
  });
45
45
 
46
- const R = a({
46
+ const Q = a({
47
47
  category: "window-tools",
48
48
  name: "filter",
49
49
  colorType: "on-surface"
50
50
  });
51
51
 
52
- const Z = a({
52
+ const R = a({
53
53
  category: "system",
54
54
  name: "information",
55
55
  colorType: "on-surface"
56
56
  });
57
57
 
58
- const tt = "advanced-filter";
58
+ const Z = "advanced-filter";
59
59
 
60
- const et = "afterDateTime";
60
+ const tt = "afterDateTime";
61
61
 
62
- const it = "afterLastBuild";
62
+ const et = "afterLastBuild";
63
63
 
64
- const st = "afterImport";
64
+ const it = "afterImport";
65
65
 
66
- const at = "checked";
66
+ const st = "checked";
67
67
 
68
- const lt = "unchecked";
68
+ const at = "unchecked";
69
69
 
70
- const rt = class {
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, void 0);
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, lt, "f");
93
- this.afterValue = this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0 ? this.filterAfterComboBoxModel[0].value : et;
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
- _.set(this, (t => {
98
- h(this, v, t.detail === at ? at : lt, "f");
99
- f(this, L, "f").call(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
- C.set(this, (t => {
100
+ _.set(this, (t => {
102
101
  h(this, y, t.detail.rowsId, "f");
103
102
  this.selectionChangeCallback(f(this, y, "f"));
104
103
  }));
105
- z.set(this, (() => {
106
- f(this, U, "f").call(this);
104
+ C.set(this, (() => {
105
+ f(this, O, "f").call(this);
107
106
  }));
108
- N.set(this, (t => {
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
- j.set(this, (() => {
118
- f(this, x, "f").addEventListener("selectionChanged", f(this, C, "f"));
119
- f(this, x, "f").addEventListener("rowDoubleClicked", f(this, z, "f"));
120
- f(this, x, "f").addEventListener("rowContextMenu", f(this, N, "f"));
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
- T.set(this, (async t => {
121
+ j.set(this, (async t => {
123
122
  h(this, w, t.detail, "f");
124
- f(this, L, "f").call(this);
123
+ f(this, A, "f").call(this);
125
124
  }));
126
- D.set(this, (() => {
125
+ T.set(this, (() => {
127
126
  this.dateTimeValue = undefined;
128
127
  }));
129
- E.set(this, (t => {
128
+ D.set(this, (t => {
130
129
  this.dateTimeValue = t.detail;
131
- f(this, L, "f").call(this);
130
+ f(this, A, "f").call(this);
132
131
  }));
133
- H.set(this, (() => {
132
+ E.set(this, (() => {
134
133
  this.deleteSelectionCallback(f(this, y, "f"));
135
134
  }));
136
- I.set(this, (() => {
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
- V.set(this, ((t, i) => {
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, A, "f").call(this, t));
147
+ }, f(this, F, "f").call(this, t));
149
148
  } else {
150
- return f(this, A, "f").call(this, t);
149
+ return f(this, F, "f").call(this, t);
151
150
  }
152
151
  }));
153
- F.set(this, (t => {
152
+ V.set(this, (t => {
154
153
  this.afterValue = t.detail;
155
- f(this, L, "f").call(this);
154
+ f(this, A, "f").call(this);
156
155
  }));
157
- A.set(this, (t => d(t, "date-time-short")));
158
- L.set(this, (() => {
159
- f(this, Y, "f").call(this);
160
- const t = f(this, M, "f") && f(this, M, "f").value ? f(this, M, "f").value.id : this.defaultModule ? this.defaultModule.id : "";
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") === at,
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, I, "f").call(this);
174
+ f(this, H, "f").call(this);
176
175
  }
177
176
  this.isLoading = false;
178
177
  }));
179
178
  }));
180
- P.set(this, (() => [ e("div", {
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, $, "f"),
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
- ref: t => h(this, M, t, "f"),
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: tt,
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, X, "f"),
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, T, "f")
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: at,
251
- unCheckedValue: lt,
248
+ checkedValue: st,
249
+ unCheckedValue: at,
252
250
  value: f(this, v, "f"),
253
- onInput: f(this, _, "f"),
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: at,
261
- unCheckedValue: lt,
258
+ checkedValue: st,
259
+ unCheckedValue: at,
262
260
  value: this.showModified,
263
- onInput: f(this, G, "f"),
261
+ onInput: f(this, q, "f"),
264
262
  part: "filter-modified"
265
- }))), this.showModified === at && e("div", {
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, F, "f"),
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, q, "f"),
289
+ onInput: f(this, Y, "f"),
292
290
  part: "filter-user",
293
291
  debounce: r.inputDebounce,
294
292
  disabled: this.isLoading
295
- })), this.afterValue === et && e("div", {
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 !== et
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: Z
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, E, "f"),
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, D, "f"),
321
+ onClick: f(this, T, "f"),
324
322
  disabled: this.isLoading
325
323
  }, e("ch-image", {
326
324
  class: "icon-m",
327
- src: Q,
325
+ src: K,
328
326
  type: "mask"
329
327
  })))))) ]));
330
- B.set(this, (() => {
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, V, "f").call(this, t.modifiedDate, this.dateTimeValue)), this.gridColumnsVisibility.lastUser && e("ch-tabular-grid-cell", {
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, A, "f").call(this, t.importDate) : "", f(this, p, "f"))), this.gridColumnsVisibility.lastBuildDate && e("ch-tabular-grid-cell", {
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, A, "f").call(this, t.lastBuildDate) : "", f(this, p, "f"))));
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: R,
432
+ stateIconSrc: Q,
435
433
  stateTitle: f(this, u, "f").emptyState.title
436
434
  }))));
437
435
  }));
438
- S.set(this, (t => {
436
+ B.set(this, (t => {
439
437
  h(this, b, t.detail, "f");
440
- f(this, L, "f").call(this);
438
+ f(this, A, "f").call(this);
441
439
  }));
442
- $.set(this, (t => {
440
+ S.set(this, (t => {
443
441
  h(this, p, t.detail, "f");
444
- f(this, L, "f").call(this);
442
+ f(this, A, "f").call(this);
445
443
  }));
446
- O.set(this, (() => {
444
+ $.set(this, (() => {
447
445
  this.newFileCallback();
448
446
  }));
449
- U.set(this, (() => {
447
+ O.set(this, (() => {
450
448
  this.openSelectionCallback(f(this, y, "f"));
451
449
  }));
452
- X.set(this, (t => {
450
+ U.set(this, (t => {
453
451
  h(this, g, t.detail, "f");
454
- f(this, L, "f").call(this);
452
+ f(this, A, "f").call(this);
455
453
  }));
456
- Y.set(this, (() => {
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
- q.set(this, (t => {
461
+ Y.set(this, (t => {
464
462
  h(this, k, t.detail, "f");
465
- f(this, L, "f").call(this);
463
+ f(this, A, "f").call(this);
466
464
  }));
467
- G.set(this, (t => {
465
+ q.set(this, (t => {
468
466
  this.showModified = t.detail;
469
467
  }));
470
- J.set(this, (() => {
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 = at;
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, L, "f").call(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: tt,
522
+ id: Z,
525
523
  caption: f(this, u, "f").filter.accordionCaption,
526
524
  expanded: false
527
525
  } ], "f");
528
- f(this, W, "f").call(this);
526
+ f(this, M, "f").call(this);
529
527
  }
530
528
  componentDidLoad() {
531
- f(this, j, "f").call(this);
532
- f(this, L, "f").call(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, U, "f").call(this);
537
+ f(this, O, "f").call(this);
540
538
  break;
541
539
 
542
540
  case "Delete":
543
541
  t.preventDefault();
544
- f(this, H, "f").call(this);
542
+ f(this, E, "f").call(this);
545
543
  break;
546
544
 
547
545
  case "Escape":
548
546
  t.preventDefault();
549
- f(this, I, "f").call(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, W, "f").call(this);
560
- f(this, L, "f").call(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, L, "f").call(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: K
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, P, "f").call(this)), f(this, B, "f").call(this), e("footer", {
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, J, "f"),
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, O, "f"),
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, J = new WeakMap;
625
+ G = new WeakMap;
628
626
 
629
- rt.style = c;
627
+ lt.style = c;
630
628
 
631
- export { rt as gx_ide_ww_files };
632
- //# sourceMappingURL=p-60db2f02.entry.js.map
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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"}