@genexus/genexus-ide-ui 1.1.32 → 1.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +9 -2
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +11 -2
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +30 -10
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/chat/chat-container/chat-container.js +10 -2
- package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -1
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/chat-lit.css +376 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js +0 -1
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -1
- package/dist/collection/components/new-environment/new-environment.js +33 -3
- package/dist/collection/components/new-environment/new-environment.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.js +55 -14
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/new-kb/tests/new-kb.e2e.js +10 -1
- package/dist/collection/components/new-kb/tests/new-kb.e2e.js.map +1 -1
- package/dist/collection/components/sign-in-team/sign-in-team.css +1 -2
- package/dist/collection/showcase/chat-container/chat.showcase.js +2 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
- package/dist/components/chat-container.js +10 -2
- package/dist/components/chat-container.js.map +1 -1
- package/dist/components/chat-welcome.js +0 -1
- package/dist/components/chat-welcome.js.map +1 -1
- package/dist/components/gx-ide-new-environment.js +13 -3
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +34 -13
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-sc-chat-container.js +2 -1
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/components/gx-ide-sign-in-team.js +1 -1
- package/dist/components/gx-ide-sign-in-team.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-chat-container_2.entry.js +10 -3
- package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +11 -2
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +31 -11
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js +2 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/chat-lit.css +376 -0
- package/dist/genexus-ide-ui/{p-61343e93.entry.js → p-203f0417.entry.js} +8 -8
- package/dist/genexus-ide-ui/p-203f0417.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ec9e0915.entry.js → p-4da77239.entry.js} +228 -209
- package/dist/genexus-ide-ui/p-4da77239.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-137130ad.entry.js → p-8d6f2b4f.entry.js} +4 -2
- package/dist/genexus-ide-ui/{p-137130ad.entry.js.map → p-8d6f2b4f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-1477d49a.entry.js → p-9270c80f.entry.js} +102 -90
- package/dist/genexus-ide-ui/p-9270c80f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8d570fd2.entry.js → p-bf176329.entry.js} +60 -50
- package/dist/genexus-ide-ui/p-bf176329.entry.js.map +1 -0
- package/dist/types/components/new-environment/new-environment.d.ts +6 -1
- package/dist/types/components/new-kb/new-kb.d.ts +7 -2
- package/dist/types/components.d.ts +28 -12
- package/package.json +3 -3
- package/dist/genexus-ide-ui/p-1477d49a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-61343e93.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8d570fd2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ec9e0915.entry.js.map +0 -1
|
@@ -6,9 +6,9 @@ import { L as o } from "./p-311eedf3.js";
|
|
|
6
6
|
|
|
7
7
|
import { r, m as h } from "./p-8c15538c.js";
|
|
8
8
|
|
|
9
|
-
import { s as c, g as
|
|
9
|
+
import { s as c, g as d } from "./p-8c2e9df4.js";
|
|
10
10
|
|
|
11
|
-
import { v as
|
|
11
|
+
import { v as l } from "./p-289c3290.js";
|
|
12
12
|
|
|
13
13
|
import { r as f } from "./p-1252519a.js";
|
|
14
14
|
|
|
@@ -27,21 +27,21 @@ var b = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, n)
|
|
|
27
27
|
return s === "a" ? n.call(t, i) : n ? n.value = i : e.set(t, i), i;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
var m, v, g, w, k, _,
|
|
30
|
+
var m, v, g, w, k, y, _, M, x, W, C, j, E, S, I, T, z, F, L, P, A, D, H, R, V, q, B, G, J, K, N;
|
|
31
31
|
|
|
32
|
-
const
|
|
32
|
+
const O = [
|
|
33
33
|
// TODO: review if "utils/form--full" is required.
|
|
34
34
|
"resets/box-sizing", "components/tab", "components/tooltip", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
|
|
35
35
|
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const Q = "basic";
|
|
36
|
+
const Q = "main";
|
|
39
37
|
|
|
40
38
|
const U = "basic";
|
|
41
39
|
|
|
42
|
-
const X = "
|
|
40
|
+
const X = "basic";
|
|
41
|
+
|
|
42
|
+
const Y = "advanced";
|
|
43
43
|
|
|
44
|
-
const
|
|
44
|
+
const Z = class {
|
|
45
45
|
constructor(s) {
|
|
46
46
|
t(this, s);
|
|
47
47
|
m.set(this, false);
|
|
@@ -54,10 +54,10 @@ const Y = class {
|
|
|
54
54
|
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
55
55
|
w.set(this, new Map);
|
|
56
56
|
k.set(this, void 0);
|
|
57
|
-
_.set(this, void 0);
|
|
58
57
|
y.set(this, void 0);
|
|
59
|
-
|
|
60
|
-
M.set(this,
|
|
58
|
+
_.set(this, void 0);
|
|
59
|
+
M.set(this, e(`./gx-ide-assets/new-environment/shortcuts.json`));
|
|
60
|
+
x.set(this, []);
|
|
61
61
|
/**
|
|
62
62
|
* The component hard-coded strings translations.
|
|
63
63
|
*/
|
|
@@ -79,7 +79,7 @@ const Y = class {
|
|
|
79
79
|
}));
|
|
80
80
|
z.set(this, (() => {
|
|
81
81
|
var t;
|
|
82
|
-
b(this,
|
|
82
|
+
b(this, _, (t = this.runtimes[0]) === null || t === void 0 ? void 0 : t.value, "f");
|
|
83
83
|
}));
|
|
84
84
|
// TODO: We must avoid performing the get 3 times.
|
|
85
85
|
// It is used on new-environment as well.
|
|
@@ -107,7 +107,7 @@ const Y = class {
|
|
|
107
107
|
}));
|
|
108
108
|
}));
|
|
109
109
|
P.set(this, (async t => {
|
|
110
|
-
b(this,
|
|
110
|
+
b(this, y, t.detail, "f");
|
|
111
111
|
await p(this, q, "f").call(this);
|
|
112
112
|
p(this, G, "f").call(this);
|
|
113
113
|
p(this, B, "f").call(this);
|
|
@@ -128,7 +128,7 @@ const Y = class {
|
|
|
128
128
|
class: "radio-group",
|
|
129
129
|
onChange: p(this, H, "f"),
|
|
130
130
|
model: this.runtimesRadioGroupModel,
|
|
131
|
-
value: p(this,
|
|
131
|
+
value: p(this, _, "f")
|
|
132
132
|
}) ] : [ i("h2", {
|
|
133
133
|
class: "subtitle-regular-xs\t text-align-center"
|
|
134
134
|
}, p(this, W, "f").runtime, ":"), i("p", null, this.runtimesRadioGroupModel[0].caption) ]), i("section", {
|
|
@@ -148,7 +148,7 @@ const Y = class {
|
|
|
148
148
|
id: "language",
|
|
149
149
|
class: "combo-box",
|
|
150
150
|
part: "language",
|
|
151
|
-
value: p(this,
|
|
151
|
+
value: p(this, y, "f"),
|
|
152
152
|
disabled: this.languages.length === 0,
|
|
153
153
|
model: this.languageComboBoxModel,
|
|
154
154
|
onInput: p(this, P, "f"),
|
|
@@ -176,66 +176,73 @@ const Y = class {
|
|
|
176
176
|
class: "field-group front-end__checkboxes spacing-body-inline main__front-end scrollable",
|
|
177
177
|
role: "group",
|
|
178
178
|
"aria-labelledby": p(this, W, "f").tabBasic.frontEnd.generators
|
|
179
|
-
}, r(this.frontEnds, p(this,
|
|
179
|
+
}, r(this.frontEnds, p(this, K, "f"), p(this, w, "f").get(p(this, y, "f"))))) ]));
|
|
180
180
|
H.set(this, (async t => {
|
|
181
|
-
b(this,
|
|
181
|
+
b(this, _, t.detail, "f");
|
|
182
|
+
await p(this, J, "f").call(this);
|
|
182
183
|
await p(this, q, "f").call(this);
|
|
183
184
|
p(this, B, "f").call(this);
|
|
184
185
|
}));
|
|
185
186
|
R.set(this, (async () => {
|
|
186
187
|
var t, e;
|
|
187
|
-
const i = (t = p(this, w, "f").get(p(this,
|
|
188
|
+
const i = (t = p(this, w, "f").get(p(this, y, "f"))) !== null && t !== void 0 ? t : [];
|
|
188
189
|
this.createCallback({
|
|
189
190
|
setAsCurrent: !!((e = p(this, S, "f")) === null || e === void 0 ? void 0 : e.value),
|
|
190
191
|
name: p(this, j, "f").value,
|
|
191
|
-
runtime: p(this,
|
|
192
|
+
runtime: p(this, _, "f"),
|
|
192
193
|
language: p(this, E, "f").value,
|
|
193
194
|
dataStores: p(this, C, "f").value,
|
|
194
195
|
frontEnds: i
|
|
195
196
|
}).then((t => {
|
|
196
|
-
this.validatableControls =
|
|
197
|
+
this.validatableControls = l(t, this.validatableControls);
|
|
197
198
|
}));
|
|
198
199
|
}));
|
|
199
200
|
V.set(this, (t => {
|
|
200
|
-
if (t.detail.newSelectedId ===
|
|
201
|
+
if (t.detail.newSelectedId === Y) {
|
|
201
202
|
this.advancedTabIsVisible = true;
|
|
202
203
|
// Some logic for advanced tab is done on componentDidRender lifecycle,
|
|
203
204
|
// since the reference to the elements is needed.
|
|
204
205
|
}
|
|
205
206
|
}));
|
|
206
207
|
q.set(this, (async () => {
|
|
207
|
-
const t = await this.getDataSourcesCallback(p(this,
|
|
208
|
+
const t = await this.getDataSourcesCallback(p(this, y, "f"), p(this, _, "f"));
|
|
208
209
|
if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
|
|
209
210
|
this.dataStores = t;
|
|
210
211
|
}
|
|
211
212
|
}));
|
|
212
213
|
B.set(this, (async () => {
|
|
213
214
|
if (!p(this, g, "f")) {
|
|
214
|
-
this.environmentName = await this.getEnvironmentNameCallback(p(this,
|
|
215
|
+
this.environmentName = await this.getEnvironmentNameCallback(p(this, y, "f"), p(this, k, "f"), p(this, _, "f"));
|
|
215
216
|
}
|
|
216
217
|
}));
|
|
217
218
|
G.set(this, (async () => {
|
|
218
|
-
const t = await this.getFrontEndsCallback(p(this,
|
|
219
|
+
const t = await this.getFrontEndsCallback(p(this, y, "f"));
|
|
219
220
|
if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
|
|
220
221
|
this.frontEnds = t;
|
|
221
222
|
}
|
|
222
223
|
}));
|
|
223
|
-
J.set(this, (
|
|
224
|
+
J.set(this, (async () => {
|
|
225
|
+
const t = await this.getLanguagesCallback(p(this, _, "f"));
|
|
226
|
+
if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
|
|
227
|
+
this.languages = t;
|
|
228
|
+
}
|
|
229
|
+
}));
|
|
230
|
+
K.set(this, (t => {
|
|
224
231
|
const e = t.target.checkedValue;
|
|
225
232
|
const i = t.detail === e;
|
|
226
|
-
p(this,
|
|
233
|
+
p(this, N, "f").call(this, e, i);
|
|
227
234
|
}));
|
|
228
235
|
/**
|
|
229
236
|
* This function updates frontEndsCheckedMap, that contains the checked
|
|
230
237
|
* checkboxes for each language front ends.
|
|
231
238
|
*/
|
|
232
239
|
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
233
|
-
|
|
234
|
-
let i = p(this, w, "f").get(p(this,
|
|
240
|
+
N.set(this, ((t, e) => {
|
|
241
|
+
let i = p(this, w, "f").get(p(this, y, "f"));
|
|
235
242
|
if (!i) {
|
|
236
243
|
// first time
|
|
237
244
|
i = [];
|
|
238
|
-
p(this, w, "f").set(p(this,
|
|
245
|
+
p(this, w, "f").set(p(this, y, "f"), i);
|
|
239
246
|
}
|
|
240
247
|
if (e) {
|
|
241
248
|
// update by adding
|
|
@@ -261,6 +268,7 @@ const Y = class {
|
|
|
261
268
|
this.getFrontEndsCallback = undefined;
|
|
262
269
|
this.isAdvanced = false;
|
|
263
270
|
this.languages = undefined;
|
|
271
|
+
this.getLanguagesCallback = undefined;
|
|
264
272
|
this.runtimes = undefined;
|
|
265
273
|
this.setAsTarget = true;
|
|
266
274
|
}
|
|
@@ -268,19 +276,20 @@ const Y = class {
|
|
|
268
276
|
if (t === null || t === void 0 ? void 0 : t.length) {
|
|
269
277
|
this.dataStoresComboBoxModel = h(t);
|
|
270
278
|
const e = c(t, p(this, k, "f"));
|
|
271
|
-
b(this, k,
|
|
279
|
+
b(this, k, d(e), "f");
|
|
272
280
|
}
|
|
273
281
|
}
|
|
274
282
|
languagesChanged(t) {
|
|
275
283
|
if (t === null || t === void 0 ? void 0 : t.length) {
|
|
276
284
|
this.languageComboBoxModel = h(t);
|
|
277
|
-
b(this,
|
|
285
|
+
b(this, y, d(t), "f");
|
|
278
286
|
p(this, G, "f").call(this);
|
|
279
287
|
}
|
|
280
288
|
}
|
|
281
289
|
runtimesChanged(t) {
|
|
282
290
|
if (t === null || t === void 0 ? void 0 : t.length) {
|
|
283
291
|
this.runtimesRadioGroupModel = h(this.runtimes);
|
|
292
|
+
p(this, J, "f").call(this);
|
|
284
293
|
}
|
|
285
294
|
}
|
|
286
295
|
connectedCallback() {
|
|
@@ -299,11 +308,11 @@ const Y = class {
|
|
|
299
308
|
}
|
|
300
309
|
async componentWillLoad() {
|
|
301
310
|
b(this, W, await o.getComponentStrings(this.el), "f");
|
|
302
|
-
b(this,
|
|
303
|
-
id:
|
|
311
|
+
b(this, x, [ {
|
|
312
|
+
id: X,
|
|
304
313
|
name: p(this, W, "f").tabBasic.tabLabel
|
|
305
314
|
}, {
|
|
306
|
-
id:
|
|
315
|
+
id: Y,
|
|
307
316
|
name: p(this, W, "f").tabAdvanced.tabLabel
|
|
308
317
|
} ], "f");
|
|
309
318
|
p(this, z, "f").call(this);
|
|
@@ -321,9 +330,9 @@ const Y = class {
|
|
|
321
330
|
return i(s, {
|
|
322
331
|
class: "widget scrollable"
|
|
323
332
|
}, i("ch-theme", {
|
|
324
|
-
model:
|
|
333
|
+
model: O
|
|
325
334
|
}), i("ch-shortcuts", {
|
|
326
|
-
src: p(this,
|
|
335
|
+
src: p(this, M, "f"),
|
|
327
336
|
ref: t => b(this, v, t, "f")
|
|
328
337
|
}), i("section", {
|
|
329
338
|
class: "section"
|
|
@@ -356,27 +365,27 @@ const Y = class {
|
|
|
356
365
|
// main section
|
|
357
366
|
class: {
|
|
358
367
|
tab: true,
|
|
359
|
-
[
|
|
368
|
+
[Q]: true
|
|
360
369
|
},
|
|
361
370
|
tabListPosition: "block-start",
|
|
362
|
-
model: p(this,
|
|
363
|
-
selectedId:
|
|
371
|
+
model: p(this, x, "f"),
|
|
372
|
+
selectedId: X,
|
|
364
373
|
overflow: "auto",
|
|
365
374
|
contain: "size",
|
|
366
375
|
onSelectedItemChange: !this.advancedTabIsVisible && p(this, V, "f")
|
|
367
376
|
}, i("div", {
|
|
368
|
-
slot:
|
|
369
|
-
class:
|
|
377
|
+
slot: X,
|
|
378
|
+
class: U,
|
|
370
379
|
part: "tab-button-basic"
|
|
371
380
|
}, p(this, D, "f").call(this)), this.advancedTabIsVisible && i("div", {
|
|
372
|
-
slot:
|
|
381
|
+
slot: Y,
|
|
373
382
|
class: "advanced spacing-body-inline",
|
|
374
383
|
part: "tab-button-advanced"
|
|
375
384
|
}, p(this, A, "f").call(this))) : i("div", {
|
|
376
385
|
// main section
|
|
377
|
-
class: O
|
|
378
|
-
}, i("div", {
|
|
379
386
|
class: Q
|
|
387
|
+
}, i("div", {
|
|
388
|
+
class: U
|
|
380
389
|
}, p(this, D, "f").call(this))), i("footer", {
|
|
381
390
|
class: {
|
|
382
391
|
"control-footer": this.isAdvanced,
|
|
@@ -423,13 +432,14 @@ const Y = class {
|
|
|
423
432
|
};
|
|
424
433
|
|
|
425
434
|
m = new WeakMap, v = new WeakMap, g = new WeakMap, w = new WeakMap, k = new WeakMap,
|
|
426
|
-
|
|
435
|
+
y = new WeakMap, _ = new WeakMap, M = new WeakMap, x = new WeakMap, W = new WeakMap,
|
|
427
436
|
C = new WeakMap, j = new WeakMap, E = new WeakMap, S = new WeakMap, I = new WeakMap,
|
|
428
437
|
T = new WeakMap, z = new WeakMap, F = new WeakMap, L = new WeakMap, P = new WeakMap,
|
|
429
438
|
A = new WeakMap, D = new WeakMap, H = new WeakMap, R = new WeakMap, V = new WeakMap,
|
|
430
|
-
q = new WeakMap, B = new WeakMap, G = new WeakMap, J = new WeakMap, K = new WeakMap
|
|
439
|
+
q = new WeakMap, B = new WeakMap, G = new WeakMap, J = new WeakMap, K = new WeakMap,
|
|
440
|
+
N = new WeakMap;
|
|
431
441
|
|
|
432
|
-
|
|
442
|
+
Z.style = u;
|
|
433
443
|
|
|
434
|
-
export {
|
|
435
|
-
//# sourceMappingURL=p-
|
|
444
|
+
export { Z as gx_ide_new_environment };
|
|
445
|
+
//# sourceMappingURL=p-bf176329.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_updateLanguages","_GxIdeNewEnvironment_createCallbackHandler","selectedFrontEndIds","createCallback","setAsCurrent","then","formSubmitResult","validateControls","_GxIdeNewEnvironment_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","updatedDataSources","getDataSourcesCallback","getEnvironmentNameCallback","updatedFrontEnds","getFrontEndsCallback","updatedLanguages","getLanguagesCallback","checkedValue","target","checked","_GxIdeNewEnvironment_updateFrontEndsCheckedMap","checkboxId","currentState","push","checkboxIndex","findIndex","removeIndex","dataStoresChanged","newValue","mapOptionsToComboBoxItemModel","result","setSelectedItem","getSelectedItem","languagesChanged","runtimesChanged","connectedCallback","componentDidLoad","componentDidRender","componentWillLoad","Locale","getComponentStrings","tabLabel","tabAdvanced","suspendShortcuts","suspend","render","Host","src","header","isAdvanced","autoFocus","placeholder","environmentNamePlaceholder","tab","tabListPosition","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, setSelectedItem } 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 \"utils/spacing\",\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 const result = setSelectedItem(newValue, this.#selectedDataStoreId);\n this.#selectedDataStoreId = getSelectedItem(result);\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({ mutable: true }) 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 * Callback invoked when selected runtime is changed\n */\n @Prop() readonly getLanguagesCallback!: GetLanguagesCallback;\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 this.#updateLanguages();\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=\"subtitle-regular-xs\t 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=\"subtitle-regular-xs\t 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 subtitle-regular-xs\t 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 subtitle-regular-xs\t 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.#updateLanguages();\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 #updateLanguages = async () => {\n const updatedLanguages = await this.getLanguagesCallback(\n this.#selectedRuntimeEnvironmentId\n );\n if (updatedLanguages?.length > 0) {\n this.languages = updatedLanguages;\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\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=\"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 tabListPosition=\"block-start\"\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 type GetLanguagesCallback = (\n selectedRuntimeId: 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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"}
|
|
@@ -50,8 +50,12 @@ export declare class GxIdeNewEnvironment {
|
|
|
50
50
|
/**
|
|
51
51
|
* Possible values for 'Language' combo
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
languages: GxOption[];
|
|
54
54
|
languagesChanged(newValue: GxOption[]): void;
|
|
55
|
+
/**
|
|
56
|
+
* Callback invoked when selected runtime is changed
|
|
57
|
+
*/
|
|
58
|
+
readonly getLanguagesCallback: GetLanguagesCallback;
|
|
55
59
|
/**
|
|
56
60
|
* Possible values for 'Runtime Environment' radio button
|
|
57
61
|
*/
|
|
@@ -77,6 +81,7 @@ export type CreateCallback = (data: NewEnvironmentData) => Promise<FormSubmitRes
|
|
|
77
81
|
export type GetDataSourcesCallback = (selectedLanguageId: string, selectedRuntimeId: string) => Promise<GxOption[]>;
|
|
78
82
|
export type GetEnvironmentNameCallback = (selectedLanguageId: string, selectedDataSourceId: string, selectedRuntimeId: string) => Promise<string | undefined>;
|
|
79
83
|
export type GetFrontEndsCallback = (selectedLanguageId: string) => Promise<GxOption[]>;
|
|
84
|
+
export type GetLanguagesCallback = (selectedRuntimeId: string) => Promise<GxOption[]>;
|
|
80
85
|
export interface NewEnvironmentData {
|
|
81
86
|
setAsCurrent: boolean;
|
|
82
87
|
name: string;
|
|
@@ -68,6 +68,10 @@ export declare class GxIdeNewKb {
|
|
|
68
68
|
* Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends
|
|
69
69
|
*/
|
|
70
70
|
readonly getFrontEndsCallback: GetFrontEndsCallback;
|
|
71
|
+
/**
|
|
72
|
+
* Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments
|
|
73
|
+
*/
|
|
74
|
+
readonly getPrototypingEnvironmentsCallback: GetPrototypingEnvironmentsCallback;
|
|
71
75
|
/**
|
|
72
76
|
* Specify whether it is feasible to display information related to local configuration parameters
|
|
73
77
|
*/
|
|
@@ -87,8 +91,8 @@ export declare class GxIdeNewKb {
|
|
|
87
91
|
/**
|
|
88
92
|
* It allows selecting the default environment that the KB will have (additional environments can be created later)
|
|
89
93
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
defaultPrototypingEnvironments: GxOption[];
|
|
95
|
+
watchDefaultPrototypingEnvironments(newValue: GxOption[]): void;
|
|
92
96
|
/**
|
|
93
97
|
* Path to a directory where the information related to the KB will be stored/generated
|
|
94
98
|
*/
|
|
@@ -147,4 +151,5 @@ export type CreateCallback = (data: NewKBData) => Promise<FormSubmitResult>;
|
|
|
147
151
|
export type CancelCallback = () => Promise<void>;
|
|
148
152
|
export type GetDataSourcesCallback = (selectedPrototypingEnvironmentId: string, selectedPrototypingTargetId: string) => Promise<GxOption[]>;
|
|
149
153
|
export type GetFrontEndsCallback = (selectedPrototypingEnvironmentId: string) => Promise<GxOption[]>;
|
|
154
|
+
export type GetPrototypingEnvironmentsCallback = (selectedPrototypingTargetId: string) => Promise<GxOption[]>;
|
|
150
155
|
export type SelectLocationCallback = () => Promise<string>;
|
|
@@ -49,8 +49,8 @@ import { IdeLoaderCancelCallback } from "./components/_helpers/ide-loader/ide-lo
|
|
|
49
49
|
import { AddServerCallback, ExecuteActionCallback, ServerContextMenuCallback, ServerSelectedCallback } from "./components/modules/manage-module-references/manage-module-references";
|
|
50
50
|
import { ExecuteActionCallback as ExecuteActionCallback1, ServerContextMenuCallback as ServerContextMenuCallback1, ServerSelectedCallback as ServerSelectedCallback1 } from "./components/modules/manage-module-references-v2/manage-module-references-v2";
|
|
51
51
|
import { CancelCallback as CancelCallback10, CloseCallback, ConfirmCallback as ConfirmCallback6, HeaderData, ItemSelectedCallback, NavigationData } from "./components/navigation-report/navigation-report";
|
|
52
|
-
import { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback } from "./components/new-environment/new-environment";
|
|
53
|
-
import { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
52
|
+
import { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback, GetLanguagesCallback } from "./components/new-environment/new-environment";
|
|
53
|
+
import { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, GetPrototypingEnvironmentsCallback, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
54
54
|
import { CancelCallback as CancelCallback13, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback3, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
|
|
55
55
|
import { NewVersionData } from "./components/new-version/new-version";
|
|
56
56
|
import { ContextMenuInfo as ContextMenuInfo1, FormSubmitResult as FormSubmitResult1 } from "./components";
|
|
@@ -126,8 +126,8 @@ export { IdeLoaderCancelCallback } from "./components/_helpers/ide-loader/ide-lo
|
|
|
126
126
|
export { AddServerCallback, ExecuteActionCallback, ServerContextMenuCallback, ServerSelectedCallback } from "./components/modules/manage-module-references/manage-module-references";
|
|
127
127
|
export { ExecuteActionCallback as ExecuteActionCallback1, ServerContextMenuCallback as ServerContextMenuCallback1, ServerSelectedCallback as ServerSelectedCallback1 } from "./components/modules/manage-module-references-v2/manage-module-references-v2";
|
|
128
128
|
export { CancelCallback as CancelCallback10, CloseCallback, ConfirmCallback as ConfirmCallback6, HeaderData, ItemSelectedCallback, NavigationData } from "./components/navigation-report/navigation-report";
|
|
129
|
-
export { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback } from "./components/new-environment/new-environment";
|
|
130
|
-
export { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
129
|
+
export { CancelCallback as CancelCallback11, CreateCallback, GetDataSourcesCallback, GetEnvironmentNameCallback, GetFrontEndsCallback, GetLanguagesCallback } from "./components/new-environment/new-environment";
|
|
130
|
+
export { CancelCallback as CancelCallback12, CreateCallback as CreateCallback1, GetDataSourcesCallback as GetDataSourcesCallback1, GetFrontEndsCallback as GetFrontEndsCallback1, GetPrototypingEnvironmentsCallback, SelectLocationCallback } from "./components/new-kb/new-kb";
|
|
131
131
|
export { CancelCallback as CancelCallback13, CreateCallback as CreateCallback2, NewObjectData, SelectModuleCallback as SelectModuleCallback3, SuggestDescriptionCallback, SuggestNameCallback, TypeCategoryData, ValidateNameCallback } from "./components/new-object/new-object";
|
|
132
132
|
export { NewVersionData } from "./components/new-version/new-version";
|
|
133
133
|
export { ContextMenuInfo as ContextMenuInfo1, FormSubmitResult as FormSubmitResult1 } from "./components";
|
|
@@ -1607,6 +1607,10 @@ export namespace Components {
|
|
|
1607
1607
|
* Callback invoked when user changes the language
|
|
1608
1608
|
*/
|
|
1609
1609
|
"getFrontEndsCallback": GetFrontEndsCallback;
|
|
1610
|
+
/**
|
|
1611
|
+
* Callback invoked when selected runtime is changed
|
|
1612
|
+
*/
|
|
1613
|
+
"getLanguagesCallback": GetLanguagesCallback;
|
|
1610
1614
|
/**
|
|
1611
1615
|
* Define if the Advanced tab should be displayed
|
|
1612
1616
|
*/
|
|
@@ -1658,6 +1662,10 @@ export namespace Components {
|
|
|
1658
1662
|
* It allows defining the DBMS that will be used in the solution
|
|
1659
1663
|
*/
|
|
1660
1664
|
"defaultDataSources": GxOption[];
|
|
1665
|
+
/**
|
|
1666
|
+
* It allows selecting the default environment that the KB will have (additional environments can be created later)
|
|
1667
|
+
*/
|
|
1668
|
+
"defaultPrototypingEnvironments": GxOption[];
|
|
1661
1669
|
/**
|
|
1662
1670
|
* Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)
|
|
1663
1671
|
*/
|
|
@@ -1666,6 +1674,10 @@ export namespace Components {
|
|
|
1666
1674
|
* Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends
|
|
1667
1675
|
*/
|
|
1668
1676
|
"getFrontEndsCallback": GetFrontEndsCallback1;
|
|
1677
|
+
/**
|
|
1678
|
+
* Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments
|
|
1679
|
+
*/
|
|
1680
|
+
"getPrototypingEnvironmentsCallback": GetPrototypingEnvironmentsCallback;
|
|
1669
1681
|
/**
|
|
1670
1682
|
* Specify whether it is feasible to display information related to local configuration parameters
|
|
1671
1683
|
*/
|
|
@@ -1682,10 +1694,6 @@ export namespace Components {
|
|
|
1682
1694
|
* Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)
|
|
1683
1695
|
*/
|
|
1684
1696
|
"password": string;
|
|
1685
|
-
/**
|
|
1686
|
-
* It allows selecting the default environment that the KB will have (additional environments can be created later)
|
|
1687
|
-
*/
|
|
1688
|
-
"prototypingEnvironments": GxOption[];
|
|
1689
1697
|
/**
|
|
1690
1698
|
* Path to a directory where the information related to the KB will be stored/generated
|
|
1691
1699
|
*/
|
|
@@ -5321,6 +5329,10 @@ declare namespace LocalJSX {
|
|
|
5321
5329
|
* Callback invoked when user changes the language
|
|
5322
5330
|
*/
|
|
5323
5331
|
"getFrontEndsCallback": GetFrontEndsCallback;
|
|
5332
|
+
/**
|
|
5333
|
+
* Callback invoked when selected runtime is changed
|
|
5334
|
+
*/
|
|
5335
|
+
"getLanguagesCallback": GetLanguagesCallback;
|
|
5324
5336
|
/**
|
|
5325
5337
|
* Define if the Advanced tab should be displayed
|
|
5326
5338
|
*/
|
|
@@ -5368,6 +5380,10 @@ declare namespace LocalJSX {
|
|
|
5368
5380
|
* It allows defining the DBMS that will be used in the solution
|
|
5369
5381
|
*/
|
|
5370
5382
|
"defaultDataSources"?: GxOption[];
|
|
5383
|
+
/**
|
|
5384
|
+
* It allows selecting the default environment that the KB will have (additional environments can be created later)
|
|
5385
|
+
*/
|
|
5386
|
+
"defaultPrototypingEnvironments"?: GxOption[];
|
|
5371
5387
|
/**
|
|
5372
5388
|
* Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)
|
|
5373
5389
|
*/
|
|
@@ -5376,6 +5392,10 @@ declare namespace LocalJSX {
|
|
|
5376
5392
|
* Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends
|
|
5377
5393
|
*/
|
|
5378
5394
|
"getFrontEndsCallback": GetFrontEndsCallback1;
|
|
5395
|
+
/**
|
|
5396
|
+
* Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments
|
|
5397
|
+
*/
|
|
5398
|
+
"getPrototypingEnvironmentsCallback": GetPrototypingEnvironmentsCallback;
|
|
5379
5399
|
/**
|
|
5380
5400
|
* Specify whether it is feasible to display information related to local configuration parameters
|
|
5381
5401
|
*/
|
|
@@ -5392,10 +5412,6 @@ declare namespace LocalJSX {
|
|
|
5392
5412
|
* Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)
|
|
5393
5413
|
*/
|
|
5394
5414
|
"password"?: string;
|
|
5395
|
-
/**
|
|
5396
|
-
* It allows selecting the default environment that the KB will have (additional environments can be created later)
|
|
5397
|
-
*/
|
|
5398
|
-
"prototypingEnvironments"?: GxOption[];
|
|
5399
5415
|
/**
|
|
5400
5416
|
* Path to a directory where the information related to the KB will be stored/generated
|
|
5401
5417
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genexus/genexus-ide-ui",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.34",
|
|
5
5
|
"description": "GeneXus IDE UI components",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@genexus/chameleon-controls-library": "~6.17.1",
|
|
39
39
|
"@genexus/gemini": "*2.0.1",
|
|
40
|
-
"@genexus/mercury": "0.
|
|
40
|
+
"@genexus/mercury": "0.28.6"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@genexus/chameleon-controls-library": "~6.17.1",
|
|
44
44
|
"@genexus/gemini": "*2.0.1",
|
|
45
|
-
"@genexus/mercury": "0.
|
|
45
|
+
"@genexus/mercury": "0.28.6",
|
|
46
46
|
"@stencil-community/eslint-plugin": "~0.7.1",
|
|
47
47
|
"@stencil/core": "~4.9.0",
|
|
48
48
|
"@stencil/sass": "~1.4.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["chatContainerCss","CSS_BUNDLES","COPY_ICON","getIconPath","category","name","colorType","DELETE_ICON","CONVERSATION_ICON","MORE_HORIZONTAL_ICON","GxIdeChatContainer","_GxIdeChatContainer_menuItems","set","this","type","id","_GxIdeChatContainer_componentLocale","_GxIdeChatContainer_showMenuHandler","menuIsExpanded","_GxIdeChatContainer_menuExpandedChangeHandler","event","detail","_GxIdeChatContainer_copyConversationHandler","copyConversationCallback","_GxIdeChatContainer_deleteConversationHandler","deleteConversationCallback","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","showCopyConversationMessage","displayConversationCopiedMessage","setTimeout","render","renderHeader","chatTitle","renderButtonsGroup","h","Host","class","model","blockAlign","inlineAlign","__classPrivateFieldGet","expanded","onExpandedChange","onClick","showMenuAriaLabel","title","src","slot","copyConversationAriaLabel","copyConversationLabel","deleteConversationAriaLabel","clearConversationLabel","chatWelcomeCss","HEADER_ILLUSTRATION","getAssetPath","AI_AVATAR","HEADER_TRANSITION_DELAY","HEADER_TRANSITION_DURATION","SUGGESTED_PROMPT_BUTTON_INTERVAL","SUGGESTED_PROMPT_BUTTONS_DELAY","WELCOME_EXIT_DURATION","AI_ICON","ARROW_RIGHT_ICON","GxIdeChatWelcome","_GxIdeChatWelcome_componentLocale","_GxIdeChatWelcome_animationEntrance","showHeader","showSuggestedPrompts","_GxIdeChatWelcome_sendPromptToChat","async","e","prompt","currentTarget","dataset","_GxIdeChatWelcome_animationExit","call","suggestedPrompRequestedCallback","hideWelcome","Promise","resolve","welcomeTitle","welcomeGreeting","suggestedPrompts","componentDidRender","exitWelcome","hidden","style","backgroundImage","header","map","i"],"sources":["src/components/chat/chat-container/chat-container.scss?tag=gx-ide-chat-container","src/components/chat/chat-container/chat-container.tsx","src/components/chat/chat-welcome/chat-welcome.scss?tag=gx-ide-chat-welcome&encapsulation=shadow","src/components/chat/chat-welcome/chat-welcome.tsx"],"sourcesContent":[".chat-container {\n background-color: var(\n --elevation-background-color,\n --mer-surface__elevation--01\n );\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr;\n position: relative;\n --chat-common-border-radius: var(--mer-spacing--2xs);\n}\n\n.chat-container.with-header {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--sm);\n color: var(--mer-text__bright);\n border-block-end: var(--mer-border__width--sm) solid\n var(--color-border-surface-on-elevation-01, #333d47);\n\n .button-copy-chat,\n .button-delete-chat {\n --control__border-color: transparent !important;\n }\n\n .button-delete-chat {\n &:hover {\n filter: brightness(1.3);\n }\n &:active {\n filter: brightness(0.8);\n }\n }\n}\n\n.ch-chat-container {\n overflow: auto;\n position: relative;\n display: grid;\n}\n\n// - - - - - - - - - - - - - -\n// other\n// - - - - - - - - - - - - - -\n\n.chat-container__conversation-copied {\n position: absolute;\n z-index: 1;\n inline-size: 100%;\n block-size: 100%;\n background: rgba(22, 22, 23, 0.75);\n backdrop-filter: saturate(180%) blur(20px);\n display: grid;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 32px;\n --mer-icon__box--md: 18px;\n pointer-events: none;\n overflow: hidden;\n animation: fadeIn 100ms ease-in-out forwards;\n opacity: 0;\n}\n\n.chat-container__conversation-copied-wrapper {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n position: relative;\n inset-block-start: 4px;\n opacity: 0;\n animation: liftUp var(--mer-timing--fast) ease-in-out forwards;\n animation-delay: var(--mer-timing--fast);\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes liftUp {\n from {\n opacity: 0;\n inset-block-start: 4px;\n }\n to {\n opacity: 1;\n inset-block-start: 0;\n }\n}\n\n// The following styles shoul be moved over to Mercury\n\n.chat::part(code-block-header__copy) {\n --copy-text-opacity: 0;\n --copy-text-translate-x: 6px;\n opacity: var(--copy-text-opacity);\n pointer-events: none;\n transform: translateX(var(--copy-text-translate-x));\n transition:\n opacity 100ms ease-in-out,\n transform 100ms ease-in-out;\n font-size: 12px;\n}\n.chat::part(code-block-header__copy-copied) {\n --copy-button-pointer-events: none !important;\n --copy-text-opacity: 1;\n --copy-text-translate-x: 0;\n}\n.chat::part(code-block-header) {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Method,\n State\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { ActionMenuModel } from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/dropdown\",\n \"components/icon\",\n \"utils/elevation\"\n];\n\nconst COPY_ICON = getIconPath({\n category: \"system\",\n name: \"copy\",\n colorType: \"primary\"\n});\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"primary\"\n});\nconst CONVERSATION_ICON = getIconPath({\n category: \"objects\",\n name: \"conversational-flows\"\n});\nconst MORE_HORIZONTAL_ICON = getIconPath({\n category: \"system\",\n name: \"more-horizontal\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-chat-container\",\n styleUrl: \"chat-container.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/chat-container\"]\n})\nexport class GxIdeChatContainer {\n #menuItems: ActionMenuModel = [\n { type: \"slot\", id: \"delete-chat-button\" },\n { type: \"slot\", id: \"copy-chat-button\" }\n ];\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: HTMLGxIdeChatContainerElement;\n\n /**\n * Coneration Copied\n */\n @State() displayConversationCopiedMessage: boolean = false;\n\n /**\n * Displays or hides the menu\n */\n @State() menuIsExpanded: boolean = false;\n\n /**\n * The chat title\n */\n @Prop() readonly chatTitle?: string;\n\n /**\n * If true a button for copying the conversation will be render on the header\n */\n @Prop() readonly copyConversationCallback: () => void;\n\n /**\n * If true a button for deleting the conversation will be render on the header\n */\n @Prop() readonly deleteConversationCallback: () => void;\n\n /**\n * If true a the welcome screen will be rendered\n */\n @Prop() readonly displayWelcomeScreen: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n /**\n * It will display a feedback message that the conversation has been copied\n */\n @Method()\n async showCopyConversationMessage() {\n this.displayConversationCopiedMessage = true;\n setTimeout(() => {\n this.displayConversationCopiedMessage = false;\n }, 2000);\n }\n\n #showMenuHandler = () => {\n this.menuIsExpanded = true;\n };\n\n #menuExpandedChangeHandler = (event: CustomEvent<boolean>) => {\n this.menuIsExpanded = event.detail;\n };\n\n #copyConversationHandler = () => {\n if (this.copyConversationCallback) {\n this.copyConversationCallback();\n this.menuIsExpanded = false;\n }\n };\n #deleteConversationHandler = () => {\n if (this.deleteConversationCallback) {\n this.deleteConversationCallback();\n this.menuIsExpanded = false;\n }\n };\n\n render() {\n const renderHeader =\n this.chatTitle ||\n this.copyConversationCallback ||\n this.deleteConversationCallback;\n\n const renderButtonsGroup =\n this.copyConversationCallback || this.deleteConversationCallback;\n return (\n <Host\n class={{\n \"chat-container\": true,\n \"with-header\": !!renderHeader\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {renderHeader && (\n <header class=\"header tiny-semi-bold-l\">\n {this.chatTitle && this.chatTitle}\n {renderButtonsGroup && (\n <ch-action-menu-render\n class=\"dropdown\"\n blockAlign=\"inside-start\"\n inlineAlign=\"inside-end\"\n model={this.#menuItems}\n expanded={this.menuIsExpanded}\n onExpandedChange={this.#menuExpandedChangeHandler}\n >\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#showMenuHandler}\n type=\"button\"\n aria-label={this.#componentLocale.showMenuAriaLabel}\n title={this.#componentLocale.showMenuAriaLabel}\n >\n <ch-image\n class=\"icon-md\"\n src={MORE_HORIZONTAL_ICON}\n ></ch-image>\n </button>\n {this.copyConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-copy-chat\"\n slot=\"copy-chat-button\"\n onClick={this.#copyConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.copyConversationAriaLabel\n }\n title={this.#componentLocale.copyConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.#componentLocale.copyConversationLabel}\n </button>\n )}\n {this.deleteConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-delete-chat\"\n slot=\"delete-chat-button\"\n onClick={this.#deleteConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.deleteConversationAriaLabel\n }\n title={this.#componentLocale.deleteConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={DELETE_ICON}></ch-image>\n {this.#componentLocale.clearConversationLabel}\n </button>\n )}\n </ch-action-menu-render>\n )}\n </header>\n )}\n <section class=\"ch-chat-container\">\n <slot></slot>\n {this.displayConversationCopiedMessage && (\n <div class=\"chat-container__conversation-copied\">\n <div class=\"chat-container__conversation-copied-wrapper\">\n <ch-image class=\"icon-md\" src={CONVERSATION_ICON}></ch-image>\n <p class=\"body-regular-l\">conversation copied</p>\n </div>\n </div>\n )}\n </section>\n {/* <footer class=\"footer elevation-1\">footer</footer> */}\n </section>\n </Host>\n );\n }\n}\n",":host {\n block-size: 100%;\n}\n\n$sharedPadding: var(--mer-spacing--md);\n\n.welcome-container {\n --opacity: 1;\n --translate-y: 0;\n opacity: var(--opacity);\n transform: translateY(var(--translate-y));\n transition: all var(--transition-duration);\n display: flex;\n block-size: 100%;\n grid-template-rows: max-content max-content;\n flex-direction: column;\n justify-content: space-between;\n background-repeat: no-repeat;\n background-size: cover;\n background-size: contain;\n\n &.hidden {\n --opacity: 0;\n --translate-y: 4px;\n }\n}\n\n%absolute-centered {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n transform: translate(-50%, -50%);\n}\n\n.header {\n --opacity: 0;\n --translate-y: 3px;\n transition: all var(--transition-duration) var(--transition-delay)\n cubic-bezier(0.4, 0, 0.2, 1);\n transform: translateY(var(--translate-y));\n opacity: var(--opacity);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n align-items: center;\n padding: $sharedPadding;\n\n &--visible {\n --opacity: 1;\n --translate-y: 0;\n }\n\n &__circle {\n $circleSize: 55px;\n inline-size: $circleSize;\n block-size: $circleSize;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n margin-block-end: -6px;\n }\n\n &__title {\n display: grid;\n text-align: center;\n margin: 0;\n text-align: center;\n white-space: pre-line;\n line-height: 1.3;\n font-weight: 600;\n font-size: var(--font-size-header-h3);\n }\n\n &__greeting {\n line-height: 1.4;\n text-align: center;\n font-weight: 300;\n }\n}\n\n.suggested-prompts {\n --opacity: 1;\n opacity: var(--opacity);\n transition: opacity var(--transition-duration);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n list-style: none;\n margin: 0;\n padding: $sharedPadding;\n\n &.hidden {\n --opacity: 0;\n }\n\n &__item {\n }\n\n &__button {\n opacity: 0;\n transform: translateX(-3px);\n animation: fadeInSuggestedPromptButton var(--mer-timing--regular) ease\n forwards;\n animation-delay: var(--delay, 0s);\n\n border: 0;\n padding: var(--mer-spacing--sm);\n border-radius: 44px; // Works with up to a a four lines button\n font-size: 14px; // TODO : Use a token when available\n font-style: oblique;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n background-color: #22334a; // TODO : Use a token when available\n font-weight: 100;\n max-inline-size: 300px;\n\n &:hover {\n background-color: #1a2b42;\n }\n }\n\n &__icon {\n flex-shrink: 0;\n }\n}\n\n@keyframes fadeInSuggestedPromptButton {\n from {\n opacity: 0;\n transform: translateX(-3px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","/* eslint-disable @stencil-community/strict-mutable */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath,\n Method\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst HEADER_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/header-illustration.svg`\n);\nconst AI_AVATAR = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg`\n);\n\nconst HEADER_TRANSITION_DELAY: number = 100;\nconst HEADER_TRANSITION_DURATION: number = 500;\nconst SUGGESTED_PROMPT_BUTTON_INTERVAL: number = 200;\nconst SUGGESTED_PROMPT_BUTTONS_DELAY: number = 500;\nconst WELCOME_EXIT_DURATION: number = 100;\n\nconst AI_ICON = getIconPath({\n category: \"system\",\n name: \"assistant\",\n colorType: \"primary\"\n});\nconst ARROW_RIGHT_ICON = getIconPath({\n category: \"system\",\n name: \"arrow-right\",\n colorType: \"primary\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/chat\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-chat-welcome\",\n styleUrl: \"chat-welcome.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/chat-welcome\"]\n})\nexport class GxIdeChatWelcome {\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeChatWelcomeElement;\n\n /**\n * When true, it will display the welcome elements (title, greeting, and buttons)\n */\n @State() showHeader: boolean = false;\n\n /**\n * When true, it will display the suggested prompts buttons\n */\n @State() showSuggestedPrompts: boolean = false;\n\n /**\n * When true, it will hide entire welcome layout\n */\n @State() hideWelcome: boolean = false;\n\n /**\n * The welcome title, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeTitle?: string;\n\n /**\n * The welcome greeting description, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeGreeting?: string;\n\n /**\n * The suggested prompts, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) suggestedPrompts?: string[];\n\n /**\n * Fired when the user clicks on a suggested prompt button\n */\n @Prop() readonly suggestedPrompRequestedCallback: (\n prompt: string\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Set defaults\n if (!this.welcomeTitle) {\n this.welcomeTitle = this.#componentLocale.welcomeTitle;\n }\n if (!this.welcomeGreeting) {\n this.welcomeGreeting = this.#componentLocale.welcomeGreeting;\n }\n if (!this.suggestedPrompts) {\n this.suggestedPrompts = this.#componentLocale.suggestedPrompts;\n }\n }\n\n componentDidRender() {\n if (!this.hideWelcome) {\n this.#animationEntrance();\n }\n }\n\n /**\n * It will exit the wellcome screen and remove it from the dom.\n */\n @Method()\n async exitWelcome() {\n this.#animationExit();\n }\n\n #animationEntrance = () => {\n setTimeout(() => {\n this.showHeader = true;\n setTimeout(() => {\n this.showSuggestedPrompts = true;\n }, SUGGESTED_PROMPT_BUTTONS_DELAY);\n }, HEADER_TRANSITION_DELAY + HEADER_TRANSITION_DURATION);\n };\n\n #sendPromptToChat = async (e: MouseEvent) => {\n const prompt = (e.currentTarget as HTMLButtonElement).dataset[\"prommpt\"];\n await this.#animationExit();\n this.suggestedPrompRequestedCallback(prompt);\n };\n\n #animationExit = async (): Promise<void> => {\n this.hideWelcome = true;\n await new Promise(resolve => setTimeout(resolve, WELCOME_EXIT_DURATION));\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{ \"welcome-container\": true, \"hidden\": this.hideWelcome }}\n style={{\n \"backgroundImage\": `url(${HEADER_ILLUSTRATION})`,\n \"--transition-duration\": `${WELCOME_EXIT_DURATION}ms`\n }}\n >\n <header\n class={{ \"header\": true, \"header--visible\": this.showHeader }}\n style={{\n \"--transition-delay\": `${HEADER_TRANSITION_DELAY}ms`,\n \"--transition-duration\": `${HEADER_TRANSITION_DURATION}ms`\n }}\n >\n <span\n class=\"header__circle\"\n style={{ backgroundImage: `url(${AI_AVATAR})` }}\n ></span>\n <h2 class=\"header__title\">{this.welcomeTitle}</h2>\n <p class=\"header__greeting\">{this.welcomeGreeting}</p>\n </header>\n\n {this.suggestedPrompts && this.showSuggestedPrompts && (\n <ul class=\"suggested-prompts\">\n {this.suggestedPrompts.map((prompt, i) => (\n <li class=\"suggested-prompts__item\">\n <button\n class={{\n \"suggested-prompts__button\": true\n }}\n onClick={this.#sendPromptToChat}\n style={{\n \"--delay\": `${SUGGESTED_PROMPT_BUTTON_INTERVAL * i}ms`\n }}\n data-prommpt={prompt}\n >\n <ch-image\n src={AI_ICON}\n class=\"icon-md suggested-prompts__icon\"\n ></ch-image>\n {prompt}\n <ch-image\n src={ARROW_RIGHT_ICON}\n class=\"icon-md suggested-prompts__icon\"\n ></ch-image>\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|