@genexus/genexus-ide-ui 1.0.15 → 1.0.17

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 (99) hide show
  1. package/dist/cjs/array-b1e04a85.js +10 -0
  2. package/dist/cjs/array-b1e04a85.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +97 -88
  8. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +83 -76
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  17. package/dist/cjs/{helpers-74cf5c16.js → helpers-b5b4a659.js} +7 -3
  18. package/dist/cjs/helpers-b5b4a659.js.map +1 -0
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/collection/common/array.js +6 -0
  21. package/dist/collection/common/array.js.map +1 -0
  22. package/dist/collection/common/helpers.js +6 -2
  23. package/dist/collection/common/helpers.js.map +1 -1
  24. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/shortcuts.json +4 -7
  25. package/dist/collection/components/new-environment/new-environment.css +8 -1
  26. package/dist/collection/components/new-environment/new-environment.js +100 -131
  27. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  28. package/dist/collection/components/new-kb/new-kb.js +83 -114
  29. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  30. package/dist/components/array.js +8 -0
  31. package/dist/components/array.js.map +1 -0
  32. package/dist/components/gx-ide-new-environment.js +97 -91
  33. package/dist/components/gx-ide-new-environment.js.map +1 -1
  34. package/dist/components/gx-ide-new-kb.js +83 -77
  35. package/dist/components/gx-ide-new-kb.js.map +1 -1
  36. package/dist/components/helpers.js +6 -2
  37. package/dist/components/helpers.js.map +1 -1
  38. package/dist/esm/array-c52006e6.js +8 -0
  39. package/dist/esm/array-c52006e6.js.map +1 -0
  40. package/dist/esm/genexus-ide-ui.js +1 -1
  41. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  42. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  43. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  44. package/dist/esm/gx-ide-new-environment.entry.js +97 -88
  45. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  46. package/dist/esm/gx-ide-new-kb.entry.js +83 -76
  47. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  48. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  49. package/dist/esm/gx-ide-recent-news.entry.js +1 -1
  50. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  51. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  52. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  53. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  54. package/dist/esm/{helpers-97d0509d.js → helpers-64e1dd0b.js} +7 -3
  55. package/dist/esm/helpers-64e1dd0b.js.map +1 -0
  56. package/dist/esm/loader.js +1 -1
  57. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  58. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  59. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/shortcuts.json +4 -7
  60. package/dist/genexus-ide-ui/p-1252519a.js +7 -0
  61. package/dist/genexus-ide-ui/p-1252519a.js.map +1 -0
  62. package/dist/genexus-ide-ui/p-23c9b4e6.entry.js +434 -0
  63. package/dist/genexus-ide-ui/p-23c9b4e6.entry.js.map +1 -0
  64. package/dist/genexus-ide-ui/{p-f9a00f85.entry.js → p-35c9edc0.entry.js} +2 -2
  65. package/dist/genexus-ide-ui/{p-92681e48.entry.js → p-36cfb4c0.entry.js} +193 -177
  66. package/dist/genexus-ide-ui/p-36cfb4c0.entry.js.map +1 -0
  67. package/dist/genexus-ide-ui/{p-90deeaa8.entry.js → p-424ed874.entry.js} +2 -2
  68. package/dist/genexus-ide-ui/{p-4a8910cd.entry.js → p-4546fa05.entry.js} +2 -2
  69. package/dist/genexus-ide-ui/{p-58409610.entry.js → p-5bff0103.entry.js} +2 -2
  70. package/dist/genexus-ide-ui/{p-3663c45f.entry.js → p-85f7f92d.entry.js} +2 -2
  71. package/dist/genexus-ide-ui/{p-7f7d93b8.entry.js → p-99d52e11.entry.js} +2 -2
  72. package/dist/genexus-ide-ui/{p-7f4d8db5.entry.js → p-a5d5fb4d.entry.js} +2 -2
  73. package/dist/genexus-ide-ui/{p-3c7371a8.entry.js → p-be640a8a.entry.js} +2 -2
  74. package/dist/genexus-ide-ui/{p-8ad301c4.entry.js → p-c2fdb419.entry.js} +2 -2
  75. package/dist/genexus-ide-ui/{p-4b6e1cf2.js → p-c339f703.js} +57 -55
  76. package/dist/{cjs/helpers-74cf5c16.js.map → genexus-ide-ui/p-c339f703.js.map} +1 -1
  77. package/dist/types/common/array.d.ts +5 -0
  78. package/dist/types/common/helpers.d.ts +2 -2
  79. package/dist/types/components/new-environment/new-environment.d.ts +6 -12
  80. package/dist/types/components/new-kb/new-kb.d.ts +6 -9
  81. package/dist/types/components.d.ts +3 -35
  82. package/package.json +1 -1
  83. package/dist/collection/components/new-kb/helpers.js +0 -4
  84. package/dist/collection/components/new-kb/helpers.js.map +0 -1
  85. package/dist/esm/helpers-97d0509d.js.map +0 -1
  86. package/dist/genexus-ide-ui/p-4b6e1cf2.js.map +0 -1
  87. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js +0 -436
  88. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js.map +0 -1
  89. package/dist/genexus-ide-ui/p-92681e48.entry.js.map +0 -1
  90. package/dist/types/components/new-kb/helpers.d.ts +0 -3
  91. /package/dist/genexus-ide-ui/{p-f9a00f85.entry.js.map → p-35c9edc0.entry.js.map} +0 -0
  92. /package/dist/genexus-ide-ui/{p-90deeaa8.entry.js.map → p-424ed874.entry.js.map} +0 -0
  93. /package/dist/genexus-ide-ui/{p-4a8910cd.entry.js.map → p-4546fa05.entry.js.map} +0 -0
  94. /package/dist/genexus-ide-ui/{p-58409610.entry.js.map → p-5bff0103.entry.js.map} +0 -0
  95. /package/dist/genexus-ide-ui/{p-3663c45f.entry.js.map → p-85f7f92d.entry.js.map} +0 -0
  96. /package/dist/genexus-ide-ui/{p-7f7d93b8.entry.js.map → p-99d52e11.entry.js.map} +0 -0
  97. /package/dist/genexus-ide-ui/{p-7f4d8db5.entry.js.map → p-a5d5fb4d.entry.js.map} +0 -0
  98. /package/dist/genexus-ide-ui/{p-3c7371a8.entry.js.map → p-be640a8a.entry.js.map} +0 -0
  99. /package/dist/genexus-ide-ui/{p-8ad301c4.entry.js.map → p-c2fdb419.entry.js.map} +0 -0
@@ -0,0 +1,434 @@
1
+ import { r as t, a as e, h as i, H as s, g as n } from "./p-aaed592c.js";
2
+
3
+ import { c as a } from "./p-78b90603.js";
4
+
5
+ import { L as o } from "./p-74d59062.js";
6
+
7
+ import { r, m as h } from "./p-c339f703.js";
8
+
9
+ import { g as d } from "./p-3ef5a5a6.js";
10
+
11
+ import { v as c } from "./p-41ea711a.js";
12
+
13
+ import { r as l } from "./p-1252519a.js";
14
+
15
+ const f = ':host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}.basic,.advanced{padding-block-start:var(--mer-spacing--md);block-size:100%;overflow:auto}.advanced{padding-block-end:var(--content-block-spacing)}.basic{display:grid;grid-template:"runtime-environment runtime-environment" max-content "back-end front-end" 1fr;grid-template-columns:1fr 1fr}.basic__runtime-environment{grid-area:runtime-environment;display:flex;flex-direction:column;align-items:center;gap:var(--mer-spacing--xs)}.basic__runtime-environment.one-runtime-only{align-items:center;flex-direction:row;justify-content:center}.control-header__back-end,.control-header__front-end{padding-block-start:var(--mer-spacing--md)}.basic__back-end{grid-area:back-end}.basic__front-end{grid-area:front-end}.basic__back-end,.basic__front-end{display:grid;grid-template-rows:max-content 1fr;grid-auto-rows:max-content;overflow:auto}.main__back-end{border-inline-end:var(--section-common-border)}.main__back-end,.main__front-end{grid-auto-rows:max-content;padding-block:var(--content-block-spacing);overflow:auto}.text-align-center{text-align:center}.tab::part(page){scrollbar-width:thin}';
16
+
17
+ var u = undefined && undefined.__classPrivateFieldGet || function(t, e, i, s) {
18
+ if (i === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof e === "function" ? t !== e || !s : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return i === "m" ? s : i === "a" ? s.call(t) : s ? s.value : e.get(t);
21
+ };
22
+
23
+ var p = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, n) {
24
+ if (s === "m") throw new TypeError("Private method is not writable");
25
+ if (s === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
26
+ if (typeof e === "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
+ return s === "a" ? n.call(t, i) : n ? n.value = i : e.set(t, i), i;
28
+ };
29
+
30
+ var m, b, v, g, w, k, _, y, M, W, x, C, j, E, S, I, T, z, F, A, D, L, P, H, R, V, q, B, G, J;
31
+
32
+ const K = [
33
+ // TODO: review if "utils/form--full" is required.
34
+ "resets/box-sizing", "components/tab", "components/tooltip", "utils/form--full", "utils/layout", "utils/typography", "chameleon/scrollbar" ];
35
+
36
+ const N = "main";
37
+
38
+ const O = "basic";
39
+
40
+ const Q = "basic";
41
+
42
+ const U = "advanced";
43
+
44
+ const X = class {
45
+ constructor(s) {
46
+ t(this, s);
47
+ m.set(this, false);
48
+ b.set(this, void 0);
49
+ v.set(this, false);
50
+ /**
51
+ * frontEndsState saves the id's of the front ends checkboxes that are checked
52
+ */
53
+ // TODO (Use a set instead of an array to improve performance)
54
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
55
+ g.set(this, new Map);
56
+ w.set(this, void 0);
57
+ k.set(this, void 0);
58
+ _.set(this, void 0);
59
+ y.set(this, e(`./gx-ide-assets/new-environment/shortcuts.json`));
60
+ M.set(this, []);
61
+ /**
62
+ * The component hard-coded strings translations.
63
+ */
64
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
65
+ W.set(this, void 0);
66
+ // References needed to collect data con "createCallback" button submit*/
67
+ x.set(this, void 0);
68
+ C.set(this, void 0);
69
+ j.set(this, void 0);
70
+ E.set(this, void 0);
71
+ S.set(this, (() => {
72
+ /* the data store item id is used for the value (they are equal)*/
73
+ p(this, w, u(this, x, "f").value, "f");
74
+ u(this, q, "f").call(this);
75
+ }));
76
+ I.set(this, (t => {
77
+ const e = t.detail.trim();
78
+ p(this, v, e !== this.environmentName, "f");
79
+ }));
80
+ T.set(this, (() => {
81
+ var t;
82
+ p(this, _, (t = this.runtimes[0]) === null || t === void 0 ? void 0 : t.value, "f");
83
+ }));
84
+ // TODO: We must avoid performing the get 3 times.
85
+ // It is used on new-environment as well.
86
+ z.set(this, (t => {
87
+ var e, s, n;
88
+ return ((s = (e = this.validatableControls) === null || e === void 0 ? void 0 : e.get(t === null || t === void 0 ? void 0 : t.id)) === null || s === void 0 ? void 0 : s.hasError) && ((n = this.validatableControls.get(t.id)) === null || n === void 0 ? void 0 : n.message) && i("ch-tooltip", {
89
+ class: "tooltip",
90
+ actionElement: t,
91
+ blockAlign: a.tooltipSettings.blockAlign,
92
+ inlineAlign: a.tooltipSettings.inlineAlign,
93
+ delay: a.tooltipSettings.delay
94
+ }, this.validatableControls.get(t.id).message);
95
+ }));
96
+ F.set(this, (() => {
97
+ // populate #controlsValidation with the controls that could have errors.
98
+ const t = [ u(this, x, "f"), u(this, j, "f") ];
99
+ t.forEach((t => {
100
+ if (t.id) {
101
+ this.validatableControls.set(t.id, {
102
+ reference: t,
103
+ hasError: false,
104
+ message: undefined
105
+ });
106
+ }
107
+ }));
108
+ }));
109
+ A.set(this, (async t => {
110
+ p(this, k, t.detail, "f");
111
+ await u(this, V, "f").call(this);
112
+ u(this, B, "f").call(this);
113
+ u(this, q, "f").call(this);
114
+ }));
115
+ D.set(this, (() => i("slot", {
116
+ name: "property-grid"
117
+ })));
118
+ L.set(this, (() => [ i("div", {
119
+ class: {
120
+ "basic__runtime-environment": true,
121
+ "control-header-with-border": true,
122
+ "one-runtime-only": this.runtimes.length === 1
123
+ }
124
+ }, this.runtimes.length > 1 ? [ i("h2", {
125
+ // Runtime Environment
126
+ class: "heading-5 text-align-center"
127
+ }, u(this, W, "f").runtime), i("ch-radio-group-render", {
128
+ class: "radio-group",
129
+ onChange: u(this, P, "f"),
130
+ model: this.runtimesRadioGroupModel,
131
+ value: u(this, _, "f")
132
+ }) ] : [ i("h2", {
133
+ class: "heading-5 text-align-center"
134
+ }, u(this, W, "f").runtime, ":"), i("p", null, this.runtimesRadioGroupModel[0].caption) ]), i("section", {
135
+ class: "basic__back-end scrollable"
136
+ }, i("h2", {
137
+ // back end
138
+ class: "control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline"
139
+ }, u(this, W, "f").tabBasic.backEnd.backEndLabel), i("div", {
140
+ class: "field-group main__back-end spacing-body-inline scrollable"
141
+ }, i("div", {
142
+ // #language
143
+ class: "field field-block"
144
+ }, i("label", {
145
+ class: "label",
146
+ htmlFor: "language"
147
+ }, u(this, W, "f").tabBasic.backEnd.language), i("ch-combo-box-render", {
148
+ id: "language",
149
+ class: "combo-box",
150
+ part: "language",
151
+ value: u(this, k, "f"),
152
+ disabled: this.languages.length === 0,
153
+ model: this.languageComboBoxModel,
154
+ onInput: u(this, A, "f"),
155
+ ref: t => p(this, j, t, "f")
156
+ }), u(this, z, "f").call(this, u(this, j, "f"))), i("div", {
157
+ // #data stores
158
+ class: "field field-block"
159
+ }, i("label", {
160
+ class: "label",
161
+ htmlFor: "data-store"
162
+ }, u(this, W, "f").tabBasic.backEnd.dataStores), i("ch-combo-box-render", {
163
+ id: "data-store",
164
+ class: "combo-box",
165
+ part: "data-store",
166
+ value: u(this, w, "f"),
167
+ model: this.dataStoresComboBoxModel,
168
+ onInput: u(this, S, "f"),
169
+ ref: t => p(this, x, t, "f")
170
+ }), u(this, z, "f").call(this, u(this, x, "f"))))), i("section", {
171
+ class: "basic__front-end scrollable"
172
+ }, i("h2", {
173
+ // front end
174
+ class: "control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline"
175
+ }, u(this, W, "f").tabBasic.frontEnd.frontEndLabel), i("div", {
176
+ class: "field-group front-end__checkboxes spacing-body-inline main__front-end scrollable",
177
+ role: "group",
178
+ "aria-labelledby": u(this, W, "f").tabBasic.frontEnd.generators
179
+ }, r(this.frontEnds, u(this, G, "f"), u(this, g, "f").get(u(this, k, "f"))))) ]));
180
+ P.set(this, (async t => {
181
+ p(this, _, t.detail, "f");
182
+ await u(this, V, "f").call(this);
183
+ u(this, q, "f").call(this);
184
+ }));
185
+ H.set(this, (async () => {
186
+ var t, e;
187
+ const i = (t = u(this, g, "f").get(u(this, k, "f"))) !== null && t !== void 0 ? t : [];
188
+ this.createCallback({
189
+ setAsCurrent: !!((e = u(this, E, "f")) === null || e === void 0 ? void 0 : e.value),
190
+ name: u(this, C, "f").value,
191
+ runtime: u(this, _, "f"),
192
+ language: u(this, j, "f").value,
193
+ dataStores: u(this, x, "f").value,
194
+ frontEnds: i
195
+ }).then((t => {
196
+ this.validatableControls = c(t, this.validatableControls);
197
+ }));
198
+ }));
199
+ R.set(this, (t => {
200
+ if (t.detail.newSelectedId === U) {
201
+ this.advancedTabIsVisible = true;
202
+ // Some logic for advanced tab is done on componentDidRender lifecycle,
203
+ // since the reference to the elements is needed.
204
+ }
205
+ }));
206
+ V.set(this, (async () => {
207
+ const t = await this.getDataSourcesCallback(u(this, k, "f"), u(this, _, "f"));
208
+ if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
209
+ this.dataStores = t;
210
+ }
211
+ }));
212
+ q.set(this, (async () => {
213
+ if (!u(this, v, "f")) {
214
+ this.environmentName = await this.getEnvironmentNameCallback(u(this, k, "f"), u(this, w, "f"), u(this, _, "f"));
215
+ }
216
+ }));
217
+ B.set(this, (async () => {
218
+ const t = await this.getFrontEndsCallback(u(this, k, "f"));
219
+ if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
220
+ this.frontEnds = t;
221
+ }
222
+ }));
223
+ G.set(this, (t => {
224
+ const e = t.target.checkedValue;
225
+ const i = t.detail === e;
226
+ u(this, J, "f").call(this, e, i);
227
+ }));
228
+ /**
229
+ * This function updates frontEndsCheckedMap, that contains the checked
230
+ * checkboxes for each language front ends.
231
+ */
232
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
233
+ J.set(this, ((t, e) => {
234
+ let i = u(this, g, "f").get(u(this, k, "f"));
235
+ if (!i) {
236
+ // first time
237
+ i = [];
238
+ u(this, g, "f").set(u(this, k, "f"), i);
239
+ }
240
+ if (e) {
241
+ // update by adding
242
+ i.push(t);
243
+ } else {
244
+ // update by removing
245
+ const e = i.findIndex((e => e === t));
246
+ l(i, e);
247
+ }
248
+ }));
249
+ this.advancedTabIsVisible = false;
250
+ this.frontEnds = undefined;
251
+ this.validatableControls = new Map;
252
+ this.dataStoresComboBoxModel = [];
253
+ this.languageComboBoxModel = [];
254
+ this.runtimesRadioGroupModel = [];
255
+ this.cancelCallback = undefined;
256
+ this.createCallback = undefined;
257
+ this.dataStores = undefined;
258
+ this.environmentName = undefined;
259
+ this.getDataSourcesCallback = undefined;
260
+ this.getEnvironmentNameCallback = undefined;
261
+ this.getFrontEndsCallback = undefined;
262
+ this.isAdvanced = false;
263
+ this.languages = undefined;
264
+ this.runtimes = undefined;
265
+ this.setAsTarget = true;
266
+ }
267
+ dataStoresChanged(t) {
268
+ if (t === null || t === void 0 ? void 0 : t.length) {
269
+ this.dataStoresComboBoxModel = h(t);
270
+ p(this, w, d(t), "f");
271
+ }
272
+ }
273
+ languagesChanged(t) {
274
+ if (t === null || t === void 0 ? void 0 : t.length) {
275
+ this.languageComboBoxModel = h(t);
276
+ p(this, k, d(t), "f");
277
+ u(this, B, "f").call(this);
278
+ }
279
+ }
280
+ runtimesChanged(t) {
281
+ if (t === null || t === void 0 ? void 0 : t.length) {
282
+ this.runtimesRadioGroupModel = h(this.runtimes);
283
+ }
284
+ }
285
+ connectedCallback() {
286
+ this.dataStoresChanged(this.dataStores);
287
+ this.languagesChanged(this.languages);
288
+ this.runtimesChanged(this.runtimes);
289
+ }
290
+ componentDidLoad() {
291
+ u(this, F, "f").call(this);
292
+ }
293
+ componentDidRender() {
294
+ if (this.advancedTabIsVisible && !u(this, m, "f")) {
295
+ // just call this once.
296
+ p(this, m, true, "f");
297
+ }
298
+ }
299
+ async componentWillLoad() {
300
+ p(this, W, await o.getComponentStrings(this.el), "f");
301
+ p(this, M, [ {
302
+ id: Q,
303
+ name: u(this, W, "f").tabBasic.tabLabel
304
+ }, {
305
+ id: U,
306
+ name: u(this, W, "f").tabAdvanced.tabLabel
307
+ } ], "f");
308
+ u(this, T, "f").call(this);
309
+ }
310
+ /**
311
+ * Suspends or reactivates the shortcuts
312
+ */ async suspendShortcuts(t) {
313
+ if (t) {
314
+ u(this, b, "f").suspend = true;
315
+ } else {
316
+ u(this, b, "f").suspend = false;
317
+ }
318
+ }
319
+ render() {
320
+ return i(s, {
321
+ class: "widget scrollable"
322
+ }, i("ch-theme", {
323
+ model: K
324
+ }), i("ch-shortcuts", {
325
+ src: u(this, y, "f"),
326
+ ref: t => p(this, b, t, "f")
327
+ }), i("section", {
328
+ class: "section"
329
+ }, i("header", {
330
+ class: {
331
+ header: true,
332
+ "spacing-body-inline": true,
333
+ "spacing-body-block-start": true,
334
+ "control-header": this.isAdvanced,
335
+ "control-header-with-border": !this.isAdvanced
336
+ }
337
+ }, i("div", {
338
+ // #environment name
339
+ class: "field field-inline"
340
+ }, i("label", {
341
+ class: "label",
342
+ htmlFor: "environment-name"
343
+ }, u(this, W, "f").name), i("ch-edit", {
344
+ // environment name
345
+ autoFocus: true,
346
+ id: "environment-name",
347
+ class: "form-input",
348
+ part: "environment-name",
349
+ value: this.environmentName,
350
+ placeholder: u(this, W, "f").environmentNamePlaceholder,
351
+ // TODO: toolTip={config.tooltip}
352
+ ref: t => p(this, C, t, "f"),
353
+ onInput: u(this, I, "f")
354
+ }))), this.isAdvanced ? i("ch-tab-render", {
355
+ // main section
356
+ class: {
357
+ tab: true,
358
+ [N]: true
359
+ },
360
+ direction: "block",
361
+ model: u(this, M, "f"),
362
+ selectedId: Q,
363
+ overflow: "auto",
364
+ contain: "size",
365
+ onSelectedItemChange: !this.advancedTabIsVisible && u(this, R, "f")
366
+ }, i("div", {
367
+ slot: Q,
368
+ class: O,
369
+ part: "tab-button-basic"
370
+ }, u(this, L, "f").call(this)), this.advancedTabIsVisible && i("div", {
371
+ slot: U,
372
+ class: "advanced spacing-body-inline",
373
+ part: "tab-button-advanced"
374
+ }, u(this, D, "f").call(this))) : i("div", {
375
+ // main section
376
+ class: N
377
+ }, i("div", {
378
+ class: O
379
+ }, u(this, L, "f").call(this))), i("footer", {
380
+ class: {
381
+ "control-footer": this.isAdvanced,
382
+ "control-footer-with-border": !this.isAdvanced,
383
+ "control-footer-space-between": true,
384
+ "spacing-body-block-end": true,
385
+ "spacing-body-inline": true
386
+ }
387
+ }, i("ch-checkbox", {
388
+ // #set as current environment
389
+ class: "checkbox",
390
+ caption: u(this, W, "f").footer.setAsCurrentEnvironment,
391
+ ref: t => p(this, E, t, "f"),
392
+ checkedValue: "current-environment",
393
+ value: this.setAsTarget ? "current-environment" : "",
394
+ part: "set-as-current-environment"
395
+ }), i("div", {
396
+ class: "buttons-spacer"
397
+ }, i("button", {
398
+ // #cancel
399
+ class: "button-secondary",
400
+ onClick: this.cancelCallback,
401
+ part: "button button-cancel"
402
+ }, u(this, W, "f").footer.btnCancel), i("button", {
403
+ // #create
404
+ class: "button-primary",
405
+ onClick: u(this, H, "f"),
406
+ part: "button button-create"
407
+ }, u(this, W, "f").footer.btnCreate)))));
408
+ }
409
+ static get assetsDirs() {
410
+ return [ "gx-ide-assets/new-environment" ];
411
+ }
412
+ get el() {
413
+ return n(this);
414
+ }
415
+ static get watchers() {
416
+ return {
417
+ dataStores: [ "dataStoresChanged" ],
418
+ languages: [ "languagesChanged" ],
419
+ runtimes: [ "runtimesChanged" ]
420
+ };
421
+ }
422
+ };
423
+
424
+ m = new WeakMap, b = new WeakMap, v = new WeakMap, g = new WeakMap, w = new WeakMap,
425
+ k = new WeakMap, _ = new WeakMap, y = new WeakMap, M = new WeakMap, W = new WeakMap,
426
+ x = new WeakMap, C = new WeakMap, j = new WeakMap, E = new WeakMap, S = new WeakMap,
427
+ I = new WeakMap, T = new WeakMap, z = new WeakMap, F = new WeakMap, A = new WeakMap,
428
+ D = new WeakMap, L = new WeakMap, P = new WeakMap, H = new WeakMap, R = new WeakMap,
429
+ V = new WeakMap, q = new WeakMap, B = new WeakMap, G = new WeakMap, J = new WeakMap;
430
+
431
+ X.style = f;
432
+
433
+ export { X as gx_ide_new_environment };
434
+ //# sourceMappingURL=p-23c9b4e6.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["newEnvironmentCss","CSS_BUNDLES","MAIN_SECTION_CLASSES","BASIC_SECTION_PARENT_CLASSES","BASIC_TAB_SELECTOR","ADVANCED_TAB_SELECTOR","GxIdeNewEnvironment","_GxIdeNewEnvironment_advancedTabHasBeenRendered","set","this","_GxIdeNewEnvironment_chShortcutsEl","_GxIdeNewEnvironment_envNameModifiedByUser","_GxIdeNewEnvironment_frontEndsCheckedMap","Map","_GxIdeNewEnvironment_selectedDataStoreId","_GxIdeNewEnvironment_selectedLanguageId","_GxIdeNewEnvironment_selectedRuntimeEnvironmentId","_GxIdeNewEnvironment_shortcutsSrc","getAssetPath","_GxIdeNewEnvironment_newEnvironmentSectionsModel","_GxIdeNewEnvironment_componentLocale","_GxIdeNewEnvironment_dataStoreEl","_GxIdeNewEnvironment_environmentNameEl","_GxIdeNewEnvironment_languageEl","_GxIdeNewEnvironment_setAsCurrentEnvironmentEl","_GxIdeNewEnvironment_dataStoreValueChangedHandler","__classPrivateFieldSet","__classPrivateFieldGet","value","_GxIdeNewEnvironment_updateEnvironmentName","call","_GxIdeNewEnvironment_envNameInputHandler","e","newEnvName","detail","trim","environmentName","_GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId","_a","runtimes","_GxIdeNewEnvironment_evaluateTooltipRender","controlReference","_b","validatableControls","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeNewEnvironment_initializeValidatableControlsBasicTab","forEach","validatableControl","reference","undefined","_GxIdeNewEnvironment_languageValueChangedHandler","async","event","_GxIdeNewEnvironment_updateDataSources","_GxIdeNewEnvironment_updateFrontEnds","_GxIdeNewEnvironment_renderAdvanced","name","_GxIdeNewEnvironment_renderBasic","length","runtime","onChange","_GxIdeNewEnvironment_runtimeEnvironmentChangedHandler","model","runtimesRadioGroupModel","caption","tabBasic","backEnd","backEndLabel","htmlFor","language","part","disabled","languages","languageComboBoxModel","onInput","ref","el","dataStores","dataStoresComboBoxModel","frontEnd","frontEndLabel","role","generators","renderChCheckboxItems","frontEnds","_GxIdeNewEnvironment_frontEndCheckboxInputHandler","_GxIdeNewEnvironment_createCallbackHandler","selectedFrontEndIds","createCallback","setAsCurrent","then","formSubmitResult","validateControls","_GxIdeNewEnvironment_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","updatedDataSources","getDataSourcesCallback","getEnvironmentNameCallback","updatedFrontEnds","getFrontEndsCallback","checkedValue","target","checked","_GxIdeNewEnvironment_updateFrontEndsCheckedMap","checkboxId","currentState","push","checkboxIndex","findIndex","removeIndex","dataStoresChanged","newValue","mapOptionsToComboBoxItemModel","getSelectedItem","languagesChanged","runtimesChanged","connectedCallback","componentDidLoad","componentDidRender","componentWillLoad","Locale","getComponentStrings","tabLabel","tabAdvanced","suspendShortcuts","suspend","render","Host","src","header","isAdvanced","autoFocus","placeholder","environmentNamePlaceholder","tab","direction","selectedId","overflow","contain","onSelectedItemChange","slot","footer","setAsCurrentEnvironment","setAsTarget","onClick","cancelCallback","btnCancel","btnCreate"],"sources":["src/components/new-environment/new-environment.scss?tag=gx-ide-new-environment&encapsulation=shadow","src/components/new-environment/new-environment.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.basic,\n.advanced {\n padding-block-start: var(--mer-spacing--md);\n block-size: 100%;\n overflow: auto;\n}\n.advanced {\n padding-block-end: var(--content-block-spacing);\n}\n\n// basic\n.basic {\n display: grid;\n grid-template:\n \"runtime-environment runtime-environment\" max-content\n \"back-end front-end\" 1fr;\n grid-template-columns: 1fr 1fr;\n}\n.basic__runtime-environment {\n grid-area: runtime-environment;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.basic__runtime-environment.one-runtime-only {\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n.control-header__back-end,\n.control-header__front-end {\n padding-block-start: var(--mer-spacing--md);\n}\n.basic__back-end {\n grid-area: back-end;\n}\n.basic__front-end {\n grid-area: front-end;\n}\n.basic__back-end,\n.basic__front-end {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-auto-rows: max-content;\n overflow: auto;\n}\n.main__back-end {\n border-inline-end: var(--section-common-border);\n}\n.main__back-end,\n.main__front-end {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tab::part(page) {\n // WA / TODO: Remove this line when the ch-tab renders supports scrollbar\n // custom styling\n scrollbar-width: thin;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n Method,\n Prop,\n State,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { getSelectedItem } from \"../../common/common\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n ChRadioGroupRenderCustomEvent,\n TabModel,\n ComboBoxModel,\n ChEditCustomEvent,\n RadioGroupModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"chameleon/scrollbar\"\n];\n\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-environment\",\n styleUrl: \"new-environment.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-environment\"]\n})\nexport class GxIdeNewEnvironment {\n #advancedTabHasBeenRendered: boolean = false;\n #chShortcutsEl!: HTMLChShortcutsElement;\n #envNameModifiedByUser = false;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // TODO (Use a set instead of an array to improve performance)\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedDataStoreId: string;\n #selectedLanguageId: string;\n #selectedRuntimeEnvironmentId: string;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/new-environment/shortcuts.json`\n );\n #newEnvironmentSectionsModel: TabModel = [];\n\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewEnvironmentElement;\n\n // References needed to collect data con \"createCallback\" button submit*/\n #dataStoreEl!: HTMLChComboBoxRenderElement;\n #environmentNameEl!: HTMLChEditElement;\n #languageEl!: HTMLChComboBoxRenderElement;\n #setAsCurrentEnvironmentEl!: HTMLChCheckboxElement;\n\n @State() advancedTabIsVisible: boolean = false;\n\n /**\n * Allows selecting multiple generators for the front end\n * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.\n */\n @State() frontEnds: GxOption[];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n // representations of GxOption[] as ComboBoxModel or RadioGroupModel.\n @State() dataStoresComboBoxModel: ComboBoxModel = [];\n @State() languageComboBoxModel: ComboBoxModel = [];\n @State() runtimesRadioGroupModel: RadioGroupModel = [];\n\n /**\n * Callback invoked when user wants to cancel\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user confirms the KB creation\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * Allows defining the DBMS to be used in the solution\n */\n @Prop({ mutable: true }) dataStores!: GxOption[];\n @Watch(\"dataStores\")\n dataStoresChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.dataStoresComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedDataStoreId = getSelectedItem(newValue);\n }\n }\n\n /**\n * Name of the new environment\n */\n @Prop({ mutable: true }) environmentName: string;\n\n /**\n * Callback invoked when user changes the language or the runtime\n */\n @Prop() readonly getDataSourcesCallback!: GetDataSourcesCallback;\n\n /**\n * Callback invoked when user changes the language or data source\n */\n @Prop() readonly getEnvironmentNameCallback!: GetEnvironmentNameCallback;\n\n /**\n * Callback invoked when user changes the language\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Define if the Advanced tab should be displayed\n */\n @Prop() readonly isAdvanced: boolean = false;\n\n /**\n * Possible values for 'Language' combo\n */\n @Prop() readonly languages!: GxOption[];\n @Watch(\"languages\")\n languagesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.languageComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedLanguageId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Possible values for 'Runtime Environment' radio button\n */\n @Prop() readonly runtimes!: GxOption[];\n @Watch(\"runtimes\")\n runtimesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.runtimesRadioGroupModel = mapOptionsToComboBoxItemModel(\n this.runtimes\n );\n }\n }\n\n /**\n * Belongs to checkbox 'Set as current environment' @default true\n *\n */\n @Prop() readonly setAsTarget?: boolean = true;\n\n connectedCallback() {\n this.dataStoresChanged(this.dataStores);\n this.languagesChanged(this.languages);\n this.runtimesChanged(this.runtimes);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n if (this.advancedTabIsVisible && !this.#advancedTabHasBeenRendered) {\n // just call this once.\n this.#advancedTabHasBeenRendered = true;\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#newEnvironmentSectionsModel = [\n {\n id: BASIC_TAB_SELECTOR,\n name: this.#componentLocale.tabBasic.tabLabel\n },\n {\n id: ADVANCED_TAB_SELECTOR,\n name: this.#componentLocale.tabAdvanced.tabLabel\n }\n ];\n this.#evaluateSelectedRuntimeEnvironmentId();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n #dataStoreValueChangedHandler = () => {\n /* the data store item id is used for the value (they are equal)*/\n this.#selectedDataStoreId = this.#dataStoreEl.value;\n this.#updateEnvironmentName();\n };\n\n #envNameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n const newEnvName = (e as ChEditCustomEvent<string>).detail.trim();\n this.#envNameModifiedByUser = newEnvName !== this.environmentName;\n };\n\n #evaluateSelectedRuntimeEnvironmentId = () => {\n this.#selectedRuntimeEnvironmentId = this.runtimes[0]?.value;\n };\n\n // TODO: We must avoid performing the get 3 times.\n // It is used on new-environment as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataStoreEl,\n this.#languageEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #languageValueChangedHandler = async (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.#selectedLanguageId = event.detail as string;\n await this.#updateDataSources();\n this.#updateFrontEnds();\n this.#updateEnvironmentName();\n };\n\n #renderAdvanced = (): Element => {\n return <slot name=\"property-grid\"></slot>;\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <div\n class={{\n \"basic__runtime-environment\": true,\n \"control-header-with-border\": true,\n \"one-runtime-only\": this.runtimes.length === 1\n }}\n >\n {this.runtimes.length > 1\n ? [\n <h2\n // Runtime Environment\n class=\"heading-5 text-align-center\"\n >\n {this.#componentLocale.runtime}\n </h2>,\n <ch-radio-group-render\n class=\"radio-group\"\n onChange={this.#runtimeEnvironmentChangedHandler}\n model={this.runtimesRadioGroupModel}\n value={this.#selectedRuntimeEnvironmentId}\n ></ch-radio-group-render>\n ]\n : [\n <h2 class=\"heading-5 text-align-center\">\n {this.#componentLocale.runtime}:\n </h2>,\n <p>{this.runtimesRadioGroupModel[0].caption}</p>\n ]}\n </div>,\n <section class=\"basic__back-end scrollable\">\n <h2\n // back end\n class=\"control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #language\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"language\">\n {this.#componentLocale.tabBasic.backEnd.language}\n </label>\n <ch-combo-box-render\n id=\"language\"\n class=\"combo-box\"\n part=\"language\"\n value={this.#selectedLanguageId}\n disabled={this.languages.length === 0}\n model={this.languageComboBoxModel}\n onInput={this.#languageValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#languageEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#languageEl)}\n </div>\n\n <div\n // #data stores\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"data-store\">\n {this.#componentLocale.tabBasic.backEnd.dataStores}\n </label>\n <ch-combo-box-render\n id=\"data-store\"\n class=\"combo-box\"\n part=\"data-store\"\n value={this.#selectedDataStoreId}\n model={this.dataStoresComboBoxModel}\n onInput={this.#dataStoreValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataStoreEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataStoreEl)}\n </div>\n </div>\n </section>,\n\n <section class=\"basic__front-end scrollable\">\n <h2\n // front end\n class=\"control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div\n class=\"field-group front-end__checkboxes spacing-body-inline main__front-end scrollable\"\n role=\"group\"\n aria-labelledby={this.#componentLocale.tabBasic.frontEnd.generators}\n >\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId)\n )}\n </div>\n </section>\n ];\n };\n\n #runtimeEnvironmentChangedHandler = async (\n event: ChRadioGroupRenderCustomEvent<string>\n ): Promise<void> => {\n this.#selectedRuntimeEnvironmentId = event.detail;\n await this.#updateDataSources();\n this.#updateEnvironmentName();\n };\n\n #createCallbackHandler = async () => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId) ?? [];\n\n this.createCallback({\n setAsCurrent: !!this.#setAsCurrentEnvironmentEl?.value,\n name: this.#environmentNameEl.value,\n runtime: this.#selectedRuntimeEnvironmentId,\n language: this.#languageEl.value,\n dataStores: this.#dataStoreEl.value,\n frontEnds: selectedFrontEndIds\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n this.advancedTabIsVisible = true;\n // Some logic for advanced tab is done on componentDidRender lifecycle,\n // since the reference to the elements is needed.\n }\n };\n\n #updateDataSources = async () => {\n const updatedDataSources = await this.getDataSourcesCallback(\n this.#selectedLanguageId,\n this.#selectedRuntimeEnvironmentId\n );\n if (updatedDataSources?.length > 0) {\n this.dataStores = updatedDataSources;\n }\n };\n\n #updateEnvironmentName = async () => {\n if (!this.#envNameModifiedByUser) {\n this.environmentName = await this.getEnvironmentNameCallback(\n this.#selectedLanguageId,\n this.#selectedDataStoreId,\n this.#selectedRuntimeEnvironmentId\n );\n }\n };\n\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedLanguageId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n }\n };\n\n #frontEndCheckboxInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n const checkedValue = (event.target as HTMLChCheckboxElement).checkedValue;\n const checked = event.detail === checkedValue;\n this.#updateFrontEndsCheckedMap(checkedValue, checked);\n };\n\n /**\n * This function updates frontEndsCheckedMap, that contains the checked\n * checkboxes for each language front ends.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEndsCheckedMap = (checkboxId: string, checked: boolean) => {\n let currentState = this.#frontEndsCheckedMap.get(this.#selectedLanguageId);\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(this.#selectedLanguageId, currentState);\n }\n if (checked) {\n // update by adding\n currentState.push(checkboxId);\n } else {\n // update by removing\n const checkboxIndex = currentState.findIndex(id => id === checkboxId);\n removeIndex(currentState, checkboxIndex);\n }\n };\n\n render() {\n return (\n <Host class=\"widget scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"section\">\n {/* <header class=\" spacing-body-inline \n spacing-body-block-start\"> */}\n <header\n class={{\n \"header\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"control-header\": this.isAdvanced,\n \"control-header-with-border\": !this.isAdvanced\n }}\n >\n <div\n // #environment name\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"environment-name\">\n {this.#componentLocale.name}\n </label>\n <ch-edit\n // environment name\n autoFocus\n id=\"environment-name\"\n class=\"form-input\"\n part=\"environment-name\"\n value={this.environmentName}\n placeholder={this.#componentLocale.environmentNamePlaceholder}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#environmentNameEl = el as HTMLChEditElement)\n }\n onInput={this.#envNameInputHandler}\n ></ch-edit>\n </div>\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // main section\n class={{\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n direction=\"block\"\n model={this.#newEnvironmentSectionsModel}\n selectedId={BASIC_TAB_SELECTOR}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={\n !this.advancedTabIsVisible && this.#tabSelectionChangedHandler\n }\n >\n <div\n slot={BASIC_TAB_SELECTOR}\n class={BASIC_SECTION_PARENT_CLASSES}\n part=\"tab-button-basic\"\n >\n {this.#renderBasic()}\n </div>\n {this.advancedTabIsVisible && (\n <div\n slot={ADVANCED_TAB_SELECTOR}\n class=\"advanced spacing-body-inline\"\n part=\"tab-button-advanced\"\n >\n {this.#renderAdvanced()}\n </div>\n )}\n </ch-tab-render>\n ) : (\n <div\n // main section\n class={MAIN_SECTION_CLASSES}\n >\n <div class={BASIC_SECTION_PARENT_CLASSES}>\n {this.#renderBasic()}\n </div>\n </div>\n )}\n\n <footer\n class={{\n \"control-footer\": this.isAdvanced,\n \"control-footer-with-border\": !this.isAdvanced,\n \"control-footer-space-between\": true,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n <ch-checkbox\n // #set as current environment\n class=\"checkbox\"\n caption={this.#componentLocale.footer.setAsCurrentEnvironment}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#setAsCurrentEnvironmentEl = el as HTMLChCheckboxElement)\n }\n checkedValue=\"current-environment\"\n value={this.setAsTarget ? \"current-environment\" : \"\"}\n part=\"set-as-current-environment\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n onClick={this.cancelCallback}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // #create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type CreateCallback = (\n data: NewEnvironmentData\n) => Promise<FormSubmitResult>;\n\nexport type GetDataSourcesCallback = (\n selectedLanguageId: string,\n selectedRuntimeId: string\n) => Promise<GxOption[]>;\n\nexport type GetEnvironmentNameCallback = (\n selectedLanguageId: string,\n selectedDataSourceId: string,\n selectedRuntimeId: string\n) => Promise<string | undefined>;\n\nexport type GetFrontEndsCallback = (\n selectedLanguageId: string\n) => Promise<GxOption[]>;\n\nexport interface NewEnvironmentData {\n setAsCurrent: boolean;\n name: string;\n runtime: string;\n language: string;\n dataStores: string;\n frontEnds: string[];\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { L as o } from "./p-74d59062.js";
6
6
 
7
7
  import { c as i } from "./p-78b90603.js";
8
8
 
9
- import { f as s, h as l } from "./p-4b6e1cf2.js";
9
+ import { f as s, h as l } from "./p-c339f703.js";
10
10
 
11
11
  const c = ":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n/* - - - - - - - - - - - - - - - - -\nNew classes for Chameleon + Mercury\n- - - - - - - - - - - - - - - - - */\n:host {\n display: grid;\n block-size: 100%;\n}\n\n.card-regular {\n background-color: var(--mer-surface__elevation--01);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--md) var(--mer-spacing--md);\n display: grid;\n}\n\n.card-small {\n background-color: var(--mer-surface__elevation--02);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n}\n.card-small--actionable:hover {\n background-color: var(--mer-color__neutral-gray--600);\n}\n.card-small--actionable:active {\n background-color: var(--mer-color__neutral-gray--650);\n}\n.card-small:focus-visible {\n outline: var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);\n outline-offset: var(--focus__outline-offset);\n}\n\n.empty-state {\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n text-align: center;\n}\n.empty-state__title, .empty-state__button, .empty-state__link {\n max-inline-size: 300px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n\n.display-contents {\n display: contents;\n}\n\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* Helper Classes */\n.gxi-hidden {\n display: none !important;\n}\n\n.gxi-full-height {\n height: 100%;\n}\n\n.gxi-overflow-auto {\n overflow: auto;\n}\n\n.gxi-display-flex {\n display: flex;\n}\n\n.align-start {\n display: flex;\n align-items: start;\n}\n\n.align-center {\n display: flex;\n align-items: center;\n}\n\n.align-end {\n display: flex;\n align-items: end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.justify-start {\n display: flex;\n justify-content: start;\n}\n\n.justify-center {\n display: flex;\n justify-content: center;\n}\n\n.justify-end {\n display: flex;\n justify-content: end;\n}\n\n/* Grids */\n.grid {\n display: grid;\n grid-row-gap: var(--gx-ide-grid-row-gap);\n grid-column-gap: var(--gx-ide-grid-column-gap);\n grid-template-rows: auto;\n}\n\nch-grid-cell {\n display: flex;\n}\n\nch-grid {\n overflow: auto;\n height: 100%;\n}\n\nch-grid-column {\n /*to be removed when this works inside a component with shadow: true*/\n z-index: 99;\n border-bottom: 1px solid var(--mer-color__neutral-gray--800);\n}\n\nch-grid-column:first-child {\n padding-inline-start: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-column:last-child {\n padding-inline-end: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-cell {\n --mer-spacing--xs: var(--gx-ide-container__padding);\n}\n\n/*--- Layout ---*/\n.layout {\n display: grid;\n gap: var(--mer-spacing--lg);\n box-sizing: border-box;\n}\n.layout--two-cols {\n grid-template-columns: 1fr 1fr;\n}\n.layout--space-above {\n padding-block-start: var(--mer-spacing--lg);\n}\n\n/*Gxg Tabs*/\ngxg-tabs {\n box-shadow: none;\n}\n\n/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/\n:host(.gx-ide-component) {\n height: 100% !important;\n display: flex !important;\n flex-direction: column !important;\n}\n\n/*stylize the top bar*/\n:host(:focus-within) gx-ide-top-bar::part(wrapper) {\n background-color: var(--color-secondary-enabled);\n}\n\n/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */\n.gx-ide-main-wrapper {\n color: var(--gx-ide-component-text-color);\n font-weight: var(--mer-font__weight--regular);\n font-size: var(--mer-font__size--xs);\n font-family: var(--mer-font-family--primary);\n height: 100%;\n background-color: var(--gx-ide-component-background-color);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n box-sizing: border-box;\n}\n\n/*This is the main element. This is the one that take the remaining vertical space*/\n.gx-ide-main {\n flex-grow: 1;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-main::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-main::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-main::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.gx-ide-overflow {\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-overflow::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-overflow::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-overflow::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.tree-view-primary {\n font-size: var(--mer-font__size--2xs);\n}\n\np {\n margin: 0;\n font-size: var(--mer-font__size--xxs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nNew : For Mercury\n- - - - - - - - - - - - - - - - - - */\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n.hiChar {\n color: var(--mer-color__primary-blue--200);\n filter: brightness(1.3);\n}\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n.panel-recent-kbs {\n position: relative;\n}\n\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n}\n.recent-kbs__header,\n.recent-news__header {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n}\n.card-kb__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\ngx-ide-recent-news {\n overflow: auto;\n}\n\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4 alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}";
12
12
 
@@ -230,4 +230,4 @@ k = new WeakMap;
230
230
  M.style = c;
231
231
 
232
232
  export { M as gx_ide_start_page };
233
- //# sourceMappingURL=p-f9a00f85.entry.js.map
233
+ //# sourceMappingURL=p-35c9edc0.entry.js.map