@genexus/genexus-ide-ui 1.0.13 → 1.0.14

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 (144) hide show
  1. package/dist/cjs/form-validation-df39cabb.js +56 -0
  2. package/dist/cjs/form-validation-df39cabb.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-connect-gx-server.cjs.entry.js +2 -2
  6. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +3 -3
  8. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +274 -147
  12. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +41 -87
  14. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
  18. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  23. package/dist/cjs/{helpers-be14ea67.js → helpers-74cf5c16.js} +9 -35
  24. package/dist/cjs/helpers-74cf5c16.js.map +1 -0
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/collection/common/helpers.js +6 -18
  27. package/dist/collection/common/helpers.js.map +1 -1
  28. package/dist/collection/components/connect-gx-server/connect-gx-server.js +1 -1
  29. package/dist/collection/components/connect-gx-server/connect-gx-server.js.map +1 -1
  30. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  31. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
  32. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +4 -1
  33. package/dist/collection/components/new-environment/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +5 -2
  34. package/dist/collection/components/new-environment/helpers.js +11 -0
  35. package/dist/collection/components/new-environment/helpers.js.map +1 -0
  36. package/dist/collection/components/new-environment/new-environment.css +37 -658
  37. package/dist/collection/components/new-environment/new-environment.js +316 -214
  38. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  39. package/dist/collection/components/new-kb/helpers.js +0 -5
  40. package/dist/collection/components/new-kb/helpers.js.map +1 -1
  41. package/dist/collection/components/new-kb/new-kb.css +34 -11
  42. package/dist/collection/components/new-kb/new-kb.js +33 -40
  43. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  44. package/dist/collection/components/share-kb/share-kb.js +1 -1
  45. package/dist/collection/components/share-kb/share-kb.js.map +1 -1
  46. package/dist/components/form-validation.js +53 -0
  47. package/dist/components/form-validation.js.map +1 -0
  48. package/dist/components/gx-ide-connect-gx-server.js +1 -1
  49. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  50. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  51. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  52. package/dist/components/gx-ide-dashboard-home.js +1 -1
  53. package/dist/components/gx-ide-new-environment.js +289 -164
  54. package/dist/components/gx-ide-new-environment.js.map +1 -1
  55. package/dist/components/gx-ide-new-kb.js +35 -81
  56. package/dist/components/gx-ide-new-kb.js.map +1 -1
  57. package/dist/components/gx-ide-object-selector.js +1 -1
  58. package/dist/components/gx-ide-share-kb.js +1 -1
  59. package/dist/components/gx-ide-share-kb.js.map +1 -1
  60. package/dist/components/gx-ide-start-page.js +1 -1
  61. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  62. package/dist/components/gx-ide-team-dev-update.js +1 -1
  63. package/dist/components/gx-ide-ww-images.js +1 -1
  64. package/dist/components/helpers.js +7 -33
  65. package/dist/components/helpers.js.map +1 -1
  66. package/dist/esm/form-validation-8b3f527c.js +53 -0
  67. package/dist/esm/form-validation-8b3f527c.js.map +1 -0
  68. package/dist/esm/genexus-ide-ui.js +1 -1
  69. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  70. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  71. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  72. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  73. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  74. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  75. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  76. package/dist/esm/gx-ide-new-environment.entry.js +276 -149
  77. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  78. package/dist/esm/gx-ide-new-kb.entry.js +35 -81
  79. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  80. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  81. package/dist/esm/gx-ide-recent-news.entry.js +1 -1
  82. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  83. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  84. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  85. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  86. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  87. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  88. package/dist/esm/{helpers-05c62775.js → helpers-97d0509d.js} +8 -34
  89. package/dist/esm/helpers-97d0509d.js.map +1 -0
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/genexus-ide-ui/genexus-ide-ui.css +2 -0
  92. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  93. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  94. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.en.json +4 -1
  95. package/dist/genexus-ide-ui/gx-ide-assets/new-environment/langs/new-environment.lang.ja.json +5 -2
  96. package/dist/genexus-ide-ui/{p-176e8d55.entry.js → p-3663c45f.entry.js} +2 -2
  97. package/dist/genexus-ide-ui/{p-ca842e11.entry.js → p-3c7371a8.entry.js} +2 -2
  98. package/dist/genexus-ide-ui/p-41ea711a.js +56 -0
  99. package/dist/genexus-ide-ui/p-41ea711a.js.map +1 -0
  100. package/dist/genexus-ide-ui/{p-55304f04.entry.js → p-4a8910cd.entry.js} +2 -2
  101. package/dist/genexus-ide-ui/p-4b6e1cf2.js +158 -0
  102. package/dist/genexus-ide-ui/p-4b6e1cf2.js.map +1 -0
  103. package/dist/genexus-ide-ui/{p-5c5abefc.entry.js → p-4bf55012.entry.js} +2 -2
  104. package/dist/genexus-ide-ui/p-4bf55012.entry.js.map +1 -0
  105. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js +436 -0
  106. package/dist/genexus-ide-ui/p-51d5cc3d.entry.js.map +1 -0
  107. package/dist/genexus-ide-ui/{p-03a88768.entry.js → p-58409610.entry.js} +2 -2
  108. package/dist/genexus-ide-ui/{p-0fced96c.entry.js → p-7f08a5f8.entry.js} +2 -2
  109. package/dist/genexus-ide-ui/p-7f08a5f8.entry.js.map +1 -0
  110. package/dist/genexus-ide-ui/{p-6d0037f1.entry.js → p-7f4d8db5.entry.js} +2 -2
  111. package/dist/genexus-ide-ui/{p-6fa9ea04.entry.js → p-7f7d93b8.entry.js} +2 -2
  112. package/dist/genexus-ide-ui/{p-a2dad270.entry.js → p-89a7d88f.entry.js} +2 -2
  113. package/dist/genexus-ide-ui/p-89a7d88f.entry.js.map +1 -0
  114. package/dist/genexus-ide-ui/{p-e629ab16.entry.js → p-8ad301c4.entry.js} +2 -2
  115. package/dist/genexus-ide-ui/{p-a787b331.entry.js → p-90deeaa8.entry.js} +2 -2
  116. package/dist/genexus-ide-ui/{p-ab29274c.entry.js → p-92681e48.entry.js} +249 -295
  117. package/dist/genexus-ide-ui/p-92681e48.entry.js.map +1 -0
  118. package/dist/genexus-ide-ui/{p-de18e865.entry.js → p-f9a00f85.entry.js} +2 -2
  119. package/dist/types/common/helpers.d.ts +4 -3
  120. package/dist/types/components/new-environment/helpers.d.ts +4 -0
  121. package/dist/types/components/new-environment/new-environment.d.ts +33 -65
  122. package/dist/types/components/new-kb/helpers.d.ts +0 -2
  123. package/dist/types/components/new-kb/new-kb.d.ts +1 -2
  124. package/dist/types/components.d.ts +18 -45
  125. package/package.json +3 -3
  126. package/dist/cjs/helpers-be14ea67.js.map +0 -1
  127. package/dist/esm/helpers-05c62775.js.map +0 -1
  128. package/dist/genexus-ide-ui/p-0fced96c.entry.js.map +0 -1
  129. package/dist/genexus-ide-ui/p-14e6ef41.js +0 -171
  130. package/dist/genexus-ide-ui/p-14e6ef41.js.map +0 -1
  131. package/dist/genexus-ide-ui/p-5c5abefc.entry.js.map +0 -1
  132. package/dist/genexus-ide-ui/p-a2dad270.entry.js.map +0 -1
  133. package/dist/genexus-ide-ui/p-ab29274c.entry.js.map +0 -1
  134. package/dist/genexus-ide-ui/p-e146e456.entry.js +0 -342
  135. package/dist/genexus-ide-ui/p-e146e456.entry.js.map +0 -1
  136. /package/dist/genexus-ide-ui/{p-176e8d55.entry.js.map → p-3663c45f.entry.js.map} +0 -0
  137. /package/dist/genexus-ide-ui/{p-ca842e11.entry.js.map → p-3c7371a8.entry.js.map} +0 -0
  138. /package/dist/genexus-ide-ui/{p-55304f04.entry.js.map → p-4a8910cd.entry.js.map} +0 -0
  139. /package/dist/genexus-ide-ui/{p-03a88768.entry.js.map → p-58409610.entry.js.map} +0 -0
  140. /package/dist/genexus-ide-ui/{p-6d0037f1.entry.js.map → p-7f4d8db5.entry.js.map} +0 -0
  141. /package/dist/genexus-ide-ui/{p-6fa9ea04.entry.js.map → p-7f7d93b8.entry.js.map} +0 -0
  142. /package/dist/genexus-ide-ui/{p-e629ab16.entry.js.map → p-8ad301c4.entry.js.map} +0 -0
  143. /package/dist/genexus-ide-ui/{p-a787b331.entry.js.map → p-90deeaa8.entry.js.map} +0 -0
  144. /package/dist/genexus-ide-ui/{p-de18e865.entry.js.map → p-f9a00f85.entry.js.map} +0 -0
@@ -0,0 +1,436 @@
1
+ import { r as t, a as e, h as i, H as s, g as n } from "./p-aaed592c.js";
2
+
3
+ import { g as a } from "./p-6df9fab1.js";
4
+
5
+ import { c as o } from "./p-78b90603.js";
6
+
7
+ import { L as r } from "./p-74d59062.js";
8
+
9
+ import { r as h, m as d } from "./p-4b6e1cf2.js";
10
+
11
+ import { g as c } from "./p-3ef5a5a6.js";
12
+
13
+ import { v as l } from "./p-41ea711a.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(--content-block-spacing);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}.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 b, m, v, g, w, k, y, _, W, M, x, C, j, E, S, T, I, z, A, F, D, L, P, V, B, G, H, N, R, q, J, K, O;
31
+
32
+ const Q = [
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 U = a({
37
+ category: "window-tools",
38
+ name: "genexus-cloud",
39
+ colorType: "on-surface"
40
+ });
41
+
42
+ const X = a({
43
+ category: "window-tools",
44
+ name: "rol",
45
+ colorType: "on-surface"
46
+ });
47
+
48
+ const Y = "main";
49
+
50
+ const Z = "basic";
51
+
52
+ const $ = "basic";
53
+
54
+ const tt = "advanced";
55
+
56
+ const et = class {
57
+ constructor(s) {
58
+ t(this, s);
59
+ b.add(this);
60
+ m.set(this, false);
61
+ v.set(this, void 0);
62
+ g.set(this, false);
63
+ w.set(this, void 0);
64
+ k.set(this, []);
65
+ y.set(this, void 0);
66
+ _.set(this, void 0);
67
+ W.set(this, e(`./gx-ide-assets/new-environment/shortcuts.json`));
68
+ M.set(this, []);
69
+ /**
70
+ * The component hard-coded strings translations.
71
+ */
72
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
73
+ x.set(this, void 0);
74
+ /* References needed to collect data con "createCallback" button submit*/ C.set(this, void 0);
75
+ j.set(this, void 0);
76
+ E.set(this, void 0);
77
+ S.set(this, void 0);
78
+ T.set(this, void 0);
79
+ I.set(this, (() => {
80
+ /* the data store item id is used for the value (they are equal)*/
81
+ p(this, w, u(this, C, "f").value, "f");
82
+ u(this, J, "f").call(this);
83
+ }));
84
+ z.set(this, (t => {
85
+ const e = t.detail.trim();
86
+ if (e !== this.environmentName) {
87
+ this.environmentName = e;
88
+ p(this, g, true, "f");
89
+ }
90
+ }));
91
+ A.set(this, (() => {
92
+ var t;
93
+ p(this, _, (t = this.runtimes[0]) === null || t === void 0 ? void 0 : t.value, "f");
94
+ }));
95
+ F.set(this, (() => {
96
+ if (this.runtimes[0].id === "local") {
97
+ return X;
98
+ } else {
99
+ return U;
100
+ }
101
+ }));
102
+ // TODO: We must avoid performing the get 3 times.
103
+ // It is used on new-environment as well.
104
+ D.set(this, (t => {
105
+ var e, s, n;
106
+ 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", {
107
+ class: "tooltip",
108
+ actionElement: t,
109
+ blockAlign: o.tooltipSettings.blockAlign,
110
+ inlineAlign: o.tooltipSettings.inlineAlign,
111
+ delay: o.tooltipSettings.delay
112
+ }, this.validatableControls.get(t.id).message);
113
+ }));
114
+ P.set(this, (() => {
115
+ // populate #controlsValidation with the controls that could have errors.
116
+ const t = [ u(this, C, "f"), u(this, S, "f") ];
117
+ t.forEach((t => {
118
+ if (t.id) {
119
+ this.validatableControls.set(t.id, {
120
+ reference: t,
121
+ hasError: false,
122
+ message: undefined
123
+ });
124
+ }
125
+ }));
126
+ }));
127
+ V.set(this, (() => {
128
+ /* the language item id is used for the value (they are equal)*/
129
+ p(this, y, u(this, S, "f").value, "f");
130
+ u(this, q, "f").call(this);
131
+ u(this, O, "f").call(this);
132
+ u(this, J, "f").call(this);
133
+ }));
134
+ B.set(this, (() => i("slot", {
135
+ name: "property-grid"
136
+ })));
137
+ G.set(this, (() => [ i("div", {
138
+ class: "basic__runtime-environment control-header-with-border"
139
+ }, i("h2", {
140
+ // back end
141
+ class: "control-header heading-5 text-align-center"
142
+ }, u(this, x, "f").runtime), this.runtimes.length > 1 ? i("ch-radio-group-render", {
143
+ class: "radio-group",
144
+ onChange: u(this, H, "f"),
145
+ model: this.runtimesRadioGroupModel,
146
+ value: u(this, _, "f")
147
+ }) : i("div", null, i("ch-image", {
148
+ class: "icon-sm",
149
+ src: u(this, F, "f").call(this)
150
+ }), i("p", {
151
+ class: "text-body"
152
+ }, this.runtimes[0].label, " "))), i("section", {
153
+ class: "basic__back-end scrollable"
154
+ }, i("h2", {
155
+ // back end
156
+ class: "control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline"
157
+ }, u(this, x, "f").tabBasic.backEnd.backEndLabel), i("div", {
158
+ class: "field-group main__back-end spacing-body-inline scrollable"
159
+ }, i("div", {
160
+ // #language
161
+ class: "field field-block"
162
+ }, i("label", {
163
+ class: "label",
164
+ htmlFor: "language"
165
+ }, u(this, x, "f").tabBasic.backEnd.language), i("ch-combo-box-render", {
166
+ id: "language",
167
+ class: "combo-box",
168
+ part: "language",
169
+ value: this.languageInitialValue,
170
+ disabled: this.languages.length === 0,
171
+ model: this.languageComboBoxModel,
172
+ onInput: this.languages.length > 0 && u(this, V, "f"),
173
+ ref: t => p(this, S, t, "f")
174
+ }), u(this, D, "f").call(this, u(this, S, "f"))), i("div", {
175
+ // #data stores
176
+ class: "field field-block"
177
+ }, i("label", {
178
+ class: "label",
179
+ htmlFor: "data-store"
180
+ }, u(this, x, "f").tabBasic.backEnd.dataStores), i("ch-combo-box-render", {
181
+ id: "data-store",
182
+ class: "combo-box",
183
+ part: "data-store",
184
+ value: this.dataStoresInitialValue,
185
+ model: this.dataStoresComboBoxModel,
186
+ onInput: u(this, I, "f"),
187
+ ref: t => p(this, C, t, "f")
188
+ }), u(this, D, "f").call(this, u(this, C, "f"))))), i("section", {
189
+ class: "basic__front-end scrollable"
190
+ }, i("h2", {
191
+ // front end
192
+ class: "control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline"
193
+ }, u(this, x, "f").tabBasic.frontEnd.frontEndLabel), i("div", {
194
+ class: "field-group front-end__checkboxes spacing-body-inline main__front-end scrollable",
195
+ role: "group",
196
+ "aria-labelledby": u(this, x, "f").tabBasic.frontEnd.generators,
197
+ ref: t => p(this, E, t, "f")
198
+ }, h(this.frontEnds, "front-end", u(this, K, "f")))) ]));
199
+ H.set(this, (t => {
200
+ p(this, _, t.detail, "f");
201
+ u(this, q, "f").call(this);
202
+ }));
203
+ N.set(this, (async () => {
204
+ var t;
205
+ this.createCallback({
206
+ setAsCurrent: !!((t = u(this, T, "f")) === null || t === void 0 ? void 0 : t.value),
207
+ name: u(this, j, "f").value,
208
+ runtime: u(this, _, "f"),
209
+ language: u(this, S, "f").value,
210
+ dataStores: u(this, C, "f").value,
211
+ frontEnds: u(this, k, "f")
212
+ }).then((t => {
213
+ this.validatableControls = l(t, this.validatableControls);
214
+ }));
215
+ }));
216
+ R.set(this, (t => {
217
+ if (t.detail.newSelectedId === tt) {
218
+ this.advancedTabIsVisible = true;
219
+ // Some logic for advanced tab is done on componentDidRender lifecycle,
220
+ // since the reference to the elements is needed.
221
+ }
222
+ }));
223
+ q.set(this, (async () => {
224
+ if (this.getDataSourcesCallback) {
225
+ const t = await this.getDataSourcesCallback(u(this, y, "f"), u(this, _, "f"));
226
+ if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
227
+ this.dataStores = t;
228
+ }
229
+ }
230
+ }));
231
+ J.set(this, (async () => {
232
+ if (this.getEnvironmentNameCallback && u(this, j, "f") && !u(this, g, "f")) {
233
+ const t = await this.getEnvironmentNameCallback(u(this, y, "f"), u(this, w, "f"));
234
+ if (t) {
235
+ this.environmentName = t;
236
+ }
237
+ }
238
+ }));
239
+ K.set(this, (() => {
240
+ p(this, k, u(this, b, "m", L).call(this), "f");
241
+ }));
242
+ O.set(this, (async () => {
243
+ if (this.getFrontEndsCallback) {
244
+ const t = await this.getFrontEndsCallback(u(this, y, "f"));
245
+ if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
246
+ this.frontEnds = t;
247
+ }
248
+ }
249
+ }));
250
+ this.advancedTabIsVisible = false;
251
+ this.validatableControls = new Map;
252
+ this.dataStoresComboBoxModel = [];
253
+ this.dataStoresInitialValue = undefined;
254
+ this.languageComboBoxModel = [];
255
+ this.languageInitialValue = undefined;
256
+ this.runtimesRadioGroupModel = [];
257
+ this.cancelCallback = undefined;
258
+ this.createCallback = undefined;
259
+ this.dataStores = undefined;
260
+ this.disableAdvanced = false;
261
+ this.environmentName = undefined;
262
+ this.frontEnds = undefined;
263
+ this.getDataSourcesCallback = undefined;
264
+ this.getEnvironmentNameCallback = undefined;
265
+ this.getFrontEndsCallback = undefined;
266
+ this.isAdvanced = false;
267
+ this.languages = undefined;
268
+ this.runtimes = undefined;
269
+ this.setAsTarget = true;
270
+ }
271
+ dataStoresChanged(t) {
272
+ if (t === null || t === void 0 ? void 0 : t.length) {
273
+ this.dataStoresComboBoxModel = d(t);
274
+ this.dataStoresInitialValue = c(t);
275
+ }
276
+ }
277
+ languagesChanged(t) {
278
+ if (t === null || t === void 0 ? void 0 : t.length) {
279
+ this.languageComboBoxModel = d(t);
280
+ this.languageInitialValue = c(t);
281
+ }
282
+ }
283
+ runtimesChanged(t) {
284
+ if (t === null || t === void 0 ? void 0 : t.length) {
285
+ this.runtimesRadioGroupModel = d(this.runtimes);
286
+ }
287
+ }
288
+ connectedCallback() {
289
+ this.dataStoresChanged(this.dataStores);
290
+ this.languagesChanged(this.languages);
291
+ this.runtimesChanged(this.runtimes);
292
+ }
293
+ componentDidLoad() {
294
+ u(this, K, "f").call(this);
295
+ u(this, P, "f").call(this);
296
+ }
297
+ componentDidRender() {
298
+ if (this.advancedTabIsVisible && !u(this, m, "f")) {
299
+ // just call this once.
300
+ p(this, m, true, "f");
301
+ }
302
+ }
303
+ async componentWillLoad() {
304
+ p(this, x, await r.getComponentStrings(this.el), "f");
305
+ p(this, M, [ {
306
+ id: $,
307
+ name: u(this, x, "f").tabBasic.tabLabel
308
+ }, {
309
+ id: tt,
310
+ name: u(this, x, "f").tabAdvanced.tabLabel
311
+ } ], "f");
312
+ u(this, A, "f").call(this);
313
+ }
314
+ /**
315
+ * Suspends or reactivates the shortcuts
316
+ */ async suspendShortcuts(t) {
317
+ if (t) {
318
+ u(this, v, "f").suspend = true;
319
+ } else {
320
+ u(this, v, "f").suspend = false;
321
+ }
322
+ }
323
+ render() {
324
+ return i(s, {
325
+ class: "widget scrollable"
326
+ }, i("ch-theme", {
327
+ model: Q
328
+ }), i("ch-shortcuts", {
329
+ src: u(this, W, "f"),
330
+ ref: t => p(this, v, t, "f")
331
+ }), i("section", {
332
+ class: "section"
333
+ }, i("header", {
334
+ class: "header control-header-with-border spacing-body-inline spacing-body-block-start"
335
+ }, i("div", {
336
+ // #environment name
337
+ class: "field field-inline"
338
+ }, i("label", {
339
+ class: "label",
340
+ htmlFor: "environment-name"
341
+ }, u(this, x, "f").name), i("ch-edit", {
342
+ autoFocus: true,
343
+ id: "environment-name",
344
+ class: "form-input",
345
+ part: "environment-name",
346
+ value: this.environmentName,
347
+ placeholder: u(this, x, "f").environmentNamePlaceholder,
348
+ // TODO: toolTip={config.tooltip}
349
+ ref: t => p(this, j, t, "f"),
350
+ onInput: !u(this, g, "f") && u(this, z, "f")
351
+ }))), this.isAdvanced ? i("ch-tab-render", {
352
+ // main section
353
+ class: {
354
+ tab: true,
355
+ [Y]: true
356
+ },
357
+ direction: "block",
358
+ model: u(this, M, "f"),
359
+ selectedId: $,
360
+ overflow: "auto",
361
+ contain: "size",
362
+ onSelectedItemChange: !this.advancedTabIsVisible && u(this, R, "f")
363
+ }, i("div", {
364
+ slot: $,
365
+ class: Z,
366
+ part: "tab-button-basic"
367
+ }, u(this, G, "f").call(this)), this.advancedTabIsVisible && i("div", {
368
+ slot: tt,
369
+ class: "advanced spacing-body-inline",
370
+ part: "tab-button-advanced"
371
+ }, u(this, B, "f").call(this))) : i("div", {
372
+ // main section
373
+ class: Y
374
+ }, i("div", {
375
+ class: Z
376
+ }, u(this, G, "f").call(this))), i("footer", {
377
+ class: {
378
+ "control-footer": this.isAdvanced,
379
+ "control-footer-with-border": !this.isAdvanced,
380
+ "control-footer-space-between": true,
381
+ "spacing-body-block-end": true,
382
+ "spacing-body-inline": true
383
+ }
384
+ }, i("ch-checkbox", {
385
+ // #set as current environment
386
+ class: "checkbox",
387
+ caption: u(this, x, "f").footer.setAsCurrentEnvironment,
388
+ ref: t => p(this, T, t, "f"),
389
+ checkedValue: "current-environment",
390
+ value: this.setAsTarget ? "current-environment" : "",
391
+ part: "set-as-current-environment"
392
+ }), i("div", {
393
+ class: "buttons-spacer"
394
+ }, i("button", {
395
+ // #cancel
396
+ class: "button-secondary",
397
+ onClick: this.cancelCallback,
398
+ part: "button button--cancel"
399
+ }, u(this, x, "f").footer.btnCancel), i("button", {
400
+ // #set new environment
401
+ class: "button-primary",
402
+ onClick: u(this, N, "f"),
403
+ part: "button button--create"
404
+ }, u(this, x, "f").footer.btnCreate)))));
405
+ }
406
+ static get assetsDirs() {
407
+ return [ "gx-ide-assets/new-environment" ];
408
+ }
409
+ get el() {
410
+ return n(this);
411
+ }
412
+ static get watchers() {
413
+ return {
414
+ dataStores: [ "dataStoresChanged" ],
415
+ languages: [ "languagesChanged" ],
416
+ runtimes: [ "runtimesChanged" ]
417
+ };
418
+ }
419
+ };
420
+
421
+ m = new WeakMap, v = new WeakMap, g = new WeakMap, w = new WeakMap, k = new WeakMap,
422
+ y = new WeakMap, _ = new WeakMap, W = new WeakMap, M = new WeakMap, x = new WeakMap,
423
+ C = new WeakMap, j = new WeakMap, E = new WeakMap, S = new WeakMap, T = new WeakMap,
424
+ I = new WeakMap, z = new WeakMap, A = new WeakMap, F = new WeakMap, D = new WeakMap,
425
+ P = new WeakMap, V = new WeakMap, B = new WeakMap, G = new WeakMap, H = new WeakMap,
426
+ N = new WeakMap, R = new WeakMap, q = new WeakMap, J = new WeakMap, K = new WeakMap,
427
+ O = new WeakMap, b = new WeakSet, L = function _GxIdeNewEnvironment_getCheckboxValues() {
428
+ const t = u(this, E, "f").querySelectorAll("ch-checkbox");
429
+ const e = Array.from(t).map((t => t.value)).filter(Boolean);
430
+ return e;
431
+ };
432
+
433
+ et.style = f;
434
+
435
+ export { et as gx_ide_new_environment };
436
+ //# sourceMappingURL=p-51d5cc3d.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["newEnvironmentCss","CSS_BUNDLES","GEMINI_TOOLS_GENEXUS_CLOUD_ON_SURFACE","getIconPath","category","name","colorType","GEMINI_TOOLS_ROL_ON_SURFACE","MAIN_SECTION_CLASSES","BASIC_SECTION_PARENT_CLASSES","BASIC_TAB_SELECTOR","ADVANCED_TAB_SELECTOR","GxIdeNewEnvironment","_GxIdeNewEnvironment_advancedTabHasBeenRendered","set","this","_GxIdeNewEnvironment_chShortcutsEl","_GxIdeNewEnvironment_envNameModifiedByUser","_GxIdeNewEnvironment_selectedDataStoreId","_GxIdeNewEnvironment_selectedFrontEndsIds","_GxIdeNewEnvironment_selectedLanguageId","_GxIdeNewEnvironment_selectedRuntimeEnvironmentId","_GxIdeNewEnvironment_shortcutsSrc","getAssetPath","_GxIdeNewEnvironment_newEnvironmentSectionsModel","_GxIdeNewEnvironment_componentLocale","_GxIdeNewEnvironment_dataStoreEl","_GxIdeNewEnvironment_environmentNameEl","_GxIdeNewEnvironment_frontEndsEl","_GxIdeNewEnvironment_languageEl","_GxIdeNewEnvironment_setAsCurrentEnvironmentEl","_GxIdeNewEnvironment_dataStoreValueChangedHandler","__classPrivateFieldSet","__classPrivateFieldGet","value","_GxIdeNewEnvironment_updateEnvironmentName","call","_GxIdeNewEnvironment_envNameInputHandler","e","newEnvName","detail","trim","environmentName","_GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId","_a","runtimes","_GxIdeNewEnvironment_evaluateSingleRuntimeIcon","id","_GxIdeNewEnvironment_evaluateTooltipRender","controlReference","_b","validatableControls","get","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeNewEnvironment_initializeValidatableControlsBasicTab","forEach","validatableControl","reference","undefined","_GxIdeNewEnvironment_languageValueChangedHandler","_GxIdeNewEnvironment_updateDataSources","_GxIdeNewEnvironment_updateFrontEnds","_GxIdeNewEnvironment_renderAdvanced","_GxIdeNewEnvironment_renderBasic","runtime","length","onChange","_GxIdeNewEnvironment_runtimeEnvironmentChangedHandler","model","runtimesRadioGroupModel","src","label","tabBasic","backEnd","backEndLabel","htmlFor","language","part","languageInitialValue","disabled","languages","languageComboBoxModel","onInput","ref","el","dataStores","dataStoresInitialValue","dataStoresComboBoxModel","frontEnd","frontEndLabel","role","generators","renderChCheckboxItems","frontEnds","_GxIdeNewEnvironment_updateSelectedFrontEndsIds","event","_GxIdeNewEnvironment_setEnvironmentHandler","async","createCallback","setAsCurrent","then","formSubmitResult","validateControls","_GxIdeNewEnvironment_tabSelectionChangedHandler","newSelectedId","advancedTabIsVisible","getDataSourcesCallback","updatedDataSources","getEnvironmentNameCallback","updatedEnvName","_GxIdeNewEnvironment_instances","_GxIdeNewEnvironment_getCheckboxValues","getFrontEndsCallback","updatedFrontEnds","Map","dataStoresChanged","newValue","mapOptionsToComboBoxItemModel","getSelectedItem","languagesChanged","runtimesChanged","connectedCallback","componentDidLoad","componentDidRender","componentWillLoad","Locale","getComponentStrings","tabLabel","tabAdvanced","suspendShortcuts","suspend","render","Host","autoFocus","placeholder","environmentNamePlaceholder","isAdvanced","tab","direction","selectedId","overflow","contain","onSelectedItemChange","slot","caption","footer","setAsCurrentEnvironment","checkedValue","setAsTarget","onClick","cancelCallback","btnCancel","btnCreate","checkboxes","querySelectorAll","values","Array","from","map","checkbox","filter","Boolean"],"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(--content-block-spacing);\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}\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, getIconPath } 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} from \"@genexus/chameleon-controls-library\";\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];\nconst GEMINI_TOOLS_GENEXUS_CLOUD_ON_SURFACE = getIconPath({\n category: \"window-tools\",\n name: \"genexus-cloud\",\n colorType: \"on-surface\"\n});\nconst GEMINI_TOOLS_ROL_ON_SURFACE = getIconPath({\n category: \"window-tools\",\n name: \"rol\",\n colorType: \"on-surface\"\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 #selectedDataStoreId: string;\n #selectedFrontEndsIds: 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 #frontEndsEl!: HTMLDivElement;\n #languageEl!: HTMLChComboBoxRenderElement;\n #setAsCurrentEnvironmentEl!: HTMLChCheckboxElement;\n\n @State() advancedTabIsVisible: boolean = false;\n @State() validatableControls = new Map<string, ControlValidation>();\n\n // representations of GxOption[] as ComboBoxModel or RadioGroupModel.\n @State() dataStoresComboBoxModel: ComboBoxModel = [];\n @State() dataStoresInitialValue: string;\n @State() languageComboBoxModel: ComboBoxModel = [];\n @State() languageInitialValue: string;\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.dataStoresInitialValue = getSelectedItem(newValue);\n }\n }\n\n /**\n * Allows selecting multiple generators for the front end\n */\n @Prop() readonly disableAdvanced: boolean = false;\n\n /**\n * Name of the new environment\n */\n @Prop({ mutable: true }) environmentName: string;\n\n /**\n * Allows selecting multiple generators for the front end\n */\n @Prop({ mutable: true }) frontEnds!: GxOption[];\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.languageInitialValue = getSelectedItem(newValue);\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.#updateSelectedFrontEndsIds();\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 if (newEnvName !== this.environmentName) {\n this.environmentName = newEnvName;\n this.#envNameModifiedByUser = true;\n }\n };\n\n #evaluateSelectedRuntimeEnvironmentId = () => {\n this.#selectedRuntimeEnvironmentId = this.runtimes[0]?.value;\n };\n\n #evaluateSingleRuntimeIcon = () => {\n if (this.runtimes[0].id === \"local\") {\n return GEMINI_TOOLS_ROL_ON_SURFACE;\n } else {\n return GEMINI_TOOLS_GENEXUS_CLOUD_ON_SURFACE;\n }\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 #getCheckboxValues() {\n const checkboxes = this.#frontEndsEl.querySelectorAll(\"ch-checkbox\");\n const values: Array<string> = Array.from(checkboxes)\n .map((checkbox: any) => checkbox.value)\n .filter(Boolean);\n return values;\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 = () => {\n /* the language item id is used for the value (they are equal)*/\n this.#selectedLanguageId = this.#languageEl.value;\n 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 class=\"basic__runtime-environment control-header-with-border\">\n <h2\n // back end\n class=\"control-header heading-5 text-align-center\"\n >\n {this.#componentLocale.runtime}\n </h2>\n {this.runtimes.length > 1 ? (\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 <div>\n <ch-image\n class=\"icon-sm\"\n src={this.#evaluateSingleRuntimeIcon()}\n ></ch-image>\n <p class=\"text-body\">{this.runtimes[0].label} </p>\n </div>\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.languageInitialValue}\n disabled={this.languages.length === 0}\n model={this.languageComboBoxModel}\n onInput={\n this.languages.length > 0 && this.#languageValueChangedHandler\n }\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.dataStoresInitialValue}\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 ref={(el: HTMLDivElement) =>\n (this.#frontEndsEl = el as HTMLDivElement)\n }\n >\n {renderChCheckboxItems(\n this.frontEnds,\n \"front-end\",\n this.#updateSelectedFrontEndsIds\n )}\n </div>\n </section>\n ];\n };\n\n #runtimeEnvironmentChangedHandler = (\n event: ChRadioGroupRenderCustomEvent<string>\n ): void => {\n this.#selectedRuntimeEnvironmentId = event.detail;\n this.#updateDataSources();\n };\n\n #setEnvironmentHandler = async () => {\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: this.#selectedFrontEndsIds\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 if (this.getDataSourcesCallback) {\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\n #updateEnvironmentName = async () => {\n if (\n this.getEnvironmentNameCallback &&\n this.#environmentNameEl &&\n !this.#envNameModifiedByUser\n ) {\n const updatedEnvName = await this.getEnvironmentNameCallback(\n this.#selectedLanguageId,\n this.#selectedDataStoreId\n );\n if (updatedEnvName) {\n this.environmentName = updatedEnvName;\n }\n }\n };\n\n #updateSelectedFrontEndsIds = () => {\n this.#selectedFrontEndsIds = this.#getCheckboxValues();\n };\n\n #updateFrontEnds = async () => {\n if (this.getFrontEndsCallback) {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedLanguageId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n }\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=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\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 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={\n !this.#envNameModifiedByUser &&\n (this.#envNameInputHandler as any)\n }\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 // #set new environment\n class=\"button-primary\"\n onClick={this.#setEnvironmentHandler}\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 ChangedCallback = (data: NewEnvironmentData) => 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) => 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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"}
@@ -1,6 +1,6 @@
1
1
  import { r as e, h as s, g as r } from "./p-aaed592c.js";
2
2
 
3
- import { h as a } from "./p-14e6ef41.js";
3
+ import { h as a } from "./p-4b6e1cf2.js";
4
4
 
5
5
  const i = ':host{font-family:var(--mer-font-family--primary)}.message{color:var(--mer-color__neutral-gray--200);display:grid;grid-template-rows:0fr;transition:grid-template-rows 100ms;transition:grid-template-rows 100ms, -ms-grid-rows 100ms;}.message__outer-wrapper{overflow:hidden}.message__inner-wrapper{padding:var(--mer-spacing--2xs) var(--mer-spacing--xs);border-radius:var(--mer-border__radius--xs);border:var(--mer-border__width--sm) solid transparent;background-color:var(--mer-color__neutral-gray--1200);margin-block-start:var(--mer-spacing--xs)}.message__caption{font-size:var(--mer-font__size--2xs);line-height:var(--mer-line-height--comfortable);position:relative}.message--visible{grid-template-rows:1fr}.message--copying{pointer-events:none}.message--copying span:not(.copied),.message--copying .message__caption{color:transparent;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.message--user .message__inner-wrapper{background-color:var(--mer-color__tint-blue--8)}.message--assistant-action .message__inner-wrapper{font-style:italic}.message--assistant-in-progress{color:var(--mer-color__neutral-gray--500)}.message--assistant-in-progress .message__inner-wrapper{font-style:italic;display:grid;grid-template-columns:1fr auto;gap:var(--mer-spacing--xs)}.message--assistant-in-progress .message__inner-wrapper .message__caption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.message--assistant-in-progress .message__inner-wrapper .animation-wrapper{flex:none}.message--assistant-error .message__inner-wrapper{background-color:var(--mer-color__tint-red--5);border-color:var(--mer-color__tint-red--60)}.message--copyable{cursor:pointer}.message:last-child{margin-block-end:0}:host(:first-child) .message__inner-wrapper{margin-block-end:0}.animation-wrapper{width:45px;display:flex;align-items:center;justify-content:center}.dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400);box-shadow:9999px 0 0 -5px;animation:dot-pulse 1.5s infinite linear;animation-delay:0.25s}.dot-pulse::before,.dot-pulse::after{content:"";display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:2.5px;background-color:var(--mer-color__neutral-gray--400);color:var(--mer-color__neutral-gray--400)}.dot-pulse::before{box-shadow:9984px 0 0 -5px;animation:dot-pulse-before 1.5s infinite linear;animation-delay:0s}.dot-pulse::after{box-shadow:10014px 0 0 -5px;animation:dot-pulse-after 1.5s infinite linear;animation-delay:0.5s}@keyframes dot-pulse-before{0%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}60%,100%{box-shadow:9984px 0 0 -5px}}@keyframes dot-pulse{0%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}60%,100%{box-shadow:9999px 0 0 -5px}}@keyframes dot-pulse-after{0%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}60%,100%{box-shadow:10014px 0 0 -5px}}.copied{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--mer-color__neutral-gray--300);display:flex;gap:var(--mer-spacing--2xs)}.hiChar{color:var(--mer-color__primary-blue--200);filter:brightness(1.3)}';
6
6
 
@@ -103,4 +103,4 @@ const t = class {
103
103
  t.style = i;
104
104
 
105
105
  export { t as gx_ide_ai_message };
106
- //# sourceMappingURL=p-03a88768.entry.js.map
106
+ //# sourceMappingURL=p-58409610.entry.js.map
@@ -4,7 +4,7 @@ import { L as s } from "./p-74d59062.js";
4
4
 
5
5
  import { r as l } from "./p-3ef5a5a6.js";
6
6
 
7
- import { f as n } from "./p-14e6ef41.js";
7
+ import { f as n } from "./p-41ea711a.js";
8
8
 
9
9
  const g = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.grid-data{grid-template-columns:repeat(2, 1fr)}.grid-data-account{grid-template-columns:auto 1fr}.grid-data-account>:nth-child(1){grid-area:1/1/2/3}.grid-data-account>:nth-child(6){grid-area:4/2/5/3}.grid-data-kbs{display:flex;flex-direction:column;gap:var(--gx-ide-grid-row-gap)}.grid-data-kbs .search-kbs{width:100%;display:flex}.grid-data-kbs .box-kbs{height:150px}.grid-data-kbs-footer{display:flex}.flex{display:flex}.flex>:nth-child(2){flex:1}";
10
10
 
@@ -238,4 +238,4 @@ const d = class {
238
238
  d.style = g;
239
239
 
240
240
  export { d as gx_ide_create_kb_from_server };
241
- //# sourceMappingURL=p-0fced96c.entry.js.map
241
+ //# sourceMappingURL=p-7f08a5f8.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createKbFromServerCss","GxIdeCreateKbFromServer","this","renderedFirstTime","shortcutsSrc","getAssetPath","kbIdSelected","authenticationTypes","setAuthenticationTypes","id","value","label","_componentLocale","genexusAccount","local","addEventListeners","serverUrlsEl","addEventListener","reset","searchKBEl","e","kbNameEl","kbSearchText","detail","listBoxEl","ev","selectedItems","items","selectedItem","length","kbSelected","kbs","find","kb","name","createKbHandler","createKBCallback","createKBCallbackPromise","then","formSubmitResult","formSubmitValidation","connectCallbackHandler","connectCallback","connectCallbackPromise","serverUrl","authenticationType","authenticationTypeEl","user","_a","userNameEl","password","_b","passwordEl","connectionResultData","formResult","success","selectionKbDisabled","watchPropHandler","newKbs","kbName","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","h","Host","class","containerTitle","displayTitle","labelPosition","disableFilter","enableCustomServer","ref","part","serverUrls","renderFormItems","map","sUrl","onValueChanged","evaluateAuthenticationType","userName","type","onClick","buttons","connect","disabled","placeholder","searchKbs","singleSelection","filter","toLowerCase","includes","key","localKb","create","src"],"sources":["src/components/create-kb-from-server/create-kb-from-server.scss?tag=gx-ide-create-kb-from-server&encapsulation=shadow","src/components/create-kb-from-server/create-kb-from-server.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n:host(.gxi-create-kb-from-server--shadow) {\n}\n\n.grid-data {\n grid-template-columns: repeat(2, 1fr);\n}\n.grid-data-account {\n grid-template-columns: auto 1fr;\n > :nth-child(1) {\n grid-area: 1 / 1 / 2 / 3;\n }\n > :nth-child(6) {\n grid-area: 4 / 2 / 5 / 3;\n }\n}\n.grid-data-kbs {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n .search-kbs {\n width: 100%;\n display: flex;\n }\n .box-kbs {\n height: 150px;\n }\n}\n.grid-data-kbs-footer {\n display: flex;\n}\n.flex {\n display: flex;\n > :nth-child(2) {\n flex: 1;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { SelectionChangedEvent } from \"@genexus/gemini/dist/types/components/list-box/list-box\";\n/* CUSTOM IMPORTS */\nimport { GxOption } from \"../../common/types\";\nimport { Locale } from \"../../common/locale\";\nimport { renderFormItems } from \"../../common/common\";\nimport {\n FormSubmitResult,\n GxServerAuthenticationType\n} from \"../../common/types\";\nimport { formSubmitValidation } from \"../../common/form-validation\";\n\n@Component({\n tag: \"gx-ide-create-kb-from-server\",\n styleUrl: \"create-kb-from-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/create-kb-from-server\"]\n})\nexport class GxIdeCreateKbFromServer {\n [key: string]: any;\n\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n\n /* References needed to collect data with \"Connect\" and \"Create\" buttons submit*/\n private authenticationTypeEl!: HTMLGxgComboBoxElement;\n private serverUrlsEl!: HTMLGxgComboBoxElement;\n private kbNameEl!: HTMLGxgFormTextElement;\n private passwordEl!: HTMLGxgFormTextElement;\n private userNameEl!: HTMLGxgFormTextElement;\n private searchKBEl!: HTMLGxgFormTextElement;\n private listBoxEl!: HTMLElement;\n private kbIdSelected: string = null;\n private authenticationTypes: GxOption[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeCreateKbFromServerElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Disabled or not the part for select and create the KB\n */\n @State() selectionKbDisabled = true;\n\n /**\n * KBs that return from connect to the server\n */\n\n @State() kbs: KBData[] = [];\n @Watch(\"kbs\")\n watchPropHandler(newKbs: KBData[]) {\n /* When the list of servers are updated, the first server is selected by default */\n this.kbIdSelected = newKbs[0].id;\n this.kbName = newKbs[0].name;\n }\n\n /**\n * KBs search text\n */\n @State() kbSearchText = \"\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback that will be invoked when the user connect to the kb server (‘Connect’ button)\n */\n @Prop() readonly connectCallback: (\n data: GXServerConnectionData\n ) => Promise<ConnectionResultData>;\n\n /**\n * Callback that will be invoked when the user confirms KB creation (‘Create’ button)\n */\n @Prop() readonly createKBCallback: (\n data: CreateKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * If is true then the user can specify a server url that don't be in the combo box of server urls.\n */\n @Prop() readonly enableCustomServer: boolean = true;\n\n /**\n * The knowledge base default suggested name\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Password for the database connection.\n */\n @Prop() readonly password: string;\n\n /**\n * Array of URLs of cataloged servers to be displayed in the combo\n */\n @Prop() readonly serverUrls!: string[];\n\n /**\n * Username for the database connection.\n */\n @Prop() readonly userName: string;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.setAuthenticationTypes();\n }\n\n componentDidLoad() {\n (this.serverUrlsEl as HTMLElement).focus();\n this.addEventListeners();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private setAuthenticationTypes = () => {\n this.authenticationTypes = [\n {\n id: \"genexus\",\n value: \"genexus\",\n label: this._componentLocale.authenticationTypes.genexusAccount\n },\n {\n id: \"local\",\n value: \"local\",\n label: this._componentLocale.authenticationTypes.local\n }\n ];\n };\n\n private addEventListeners = () => {\n this.serverUrlsEl.addEventListener(\"valueChanged\", () => {\n this.reset();\n });\n\n this.searchKBEl.addEventListener(\n \"valueChanged\",\n (e: CustomEvent<string>) => {\n this.kbNameEl.value = \"\";\n this.kbIdSelected = null;\n this.kbSearchText = e.detail;\n }\n );\n\n this.listBoxEl.addEventListener(\n \"selectionChanged\",\n (ev: CustomEvent<SelectionChangedEvent>): void => {\n const selectedItems = ev.detail.items;\n let selectedItem;\n if (selectedItems.length > 0) {\n selectedItem = ev.detail.items[0];\n }\n if (selectedItem) {\n this.kbIdSelected = selectedItem.value;\n const kbSelected = this.kbs.find(kb => kb.id === this.kbIdSelected);\n if (kbSelected) {\n this.kbNameEl.value = kbSelected.name;\n }\n }\n }\n );\n };\n\n private reset() {\n this.kbs = [];\n this.kbIdSelected = null;\n this.selectionKbDisabled = true;\n this.searchKBEl.value = \"\";\n this.kbSearchText = \"\";\n }\n\n private createKbHandler = (): void => {\n if (this.createKBCallback) {\n const createKBCallbackPromise = this.createKBCallback({\n id: this.kbIdSelected,\n name: this.kbNameEl.value\n });\n createKBCallbackPromise.then((formSubmitResult: FormSubmitResult) => {\n formSubmitValidation(formSubmitResult, this);\n });\n }\n };\n\n private connectCallbackHandler = (): void => {\n if (this.connectCallback) {\n const connectCallbackPromise = this.connectCallback({\n serverUrl: this.serverUrlsEl.value,\n authenticationType: this.authenticationTypeEl.value,\n user: this.userNameEl?.value,\n password: this.passwordEl?.value\n });\n connectCallbackPromise.then(\n (connectionResultData: ConnectionResultData) => {\n formSubmitValidation(connectionResultData.formResult, this);\n if (\n connectionResultData.formResult.success &&\n connectionResultData.kbs\n ) {\n this.kbs = connectionResultData.kbs;\n this.selectionKbDisabled = false;\n }\n }\n );\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <div class=\"flex\">\n {/* #kb name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\">\n {this._componentLocale.label.serverUrl}\n </gxg-label>\n <gxg-combo-box\n disableFilter={!this.enableCustomServer}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverUrlsEl = el as HTMLGxgComboBoxElement)\n }\n class=\"server-urls-combo-box\"\n part=\"server-urls\"\n >\n {this.serverUrls\n ? renderFormItems(\n \"gxg-combo-box-item\",\n this.serverUrls.map(sUrl => ({\n id: sUrl,\n label: sUrl,\n value: sUrl\n })),\n \"server-urls\"\n )\n : null}\n </gxg-combo-box>\n </div>\n <div class=\"grid grid-data\">\n <div>\n <div class=\"grid grid-data-account\">\n {/* #authentication type */}\n <gxg-combo-box\n tool-tip\n disableFilter\n value={this.authenticationTypes[0].id}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.authenticationTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"authentication-type\"\n part=\"authentication-type\"\n onValueChanged={this.evaluateAuthenticationType}\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n this.authenticationTypes,\n \"authentication-type\"\n )}\n </gxg-combo-box>\n\n {/* #user name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\">\n {`${this._componentLocale.label.userName}:`}\n </gxg-label>\n <gxg-form-text\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userNameEl = el as HTMLGxgFormTextElement)\n }\n tool-tip\n value={this.userName}\n class=\"user-name\"\n part=\"user-name\"\n ></gxg-form-text>\n\n {/* #password */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\">\n {`${this._componentLocale.label.password}:`}\n </gxg-label>\n <gxg-form-text\n tool-tip\n password\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n value={this.password}\n class=\"password\"\n part=\"password\"\n ></gxg-form-text>\n\n {/* #connect */}\n <div>\n <gxg-button\n id=\"button-connect\"\n type=\"primary-text-only\"\n onClick={this.connectCallbackHandler}\n part=\"button-connect\"\n >\n {this._componentLocale.buttons.connect}\n </gxg-button>\n </div>\n </div>\n </div>\n\n <div class=\"grid\">\n <div class=\"grid-data-kbs\">\n <div class=\"search-kbs\">\n <gxg-form-text\n ref={(el: HTMLGxgFormTextElement) =>\n (this.searchKBEl = el as HTMLGxgFormTextElement)\n }\n class=\"search-kb-input\"\n part=\"search-kb\"\n disabled={this.selectionKbDisabled}\n placeholder={this._componentLocale.label.searchKbs}\n ></gxg-form-text>\n </div>\n <div class=\"box-kbs\">\n <gxg-list-box\n singleSelection\n disabled={this.selectionKbDisabled}\n ref={(el: HTMLElement) => (this.listBoxEl = el)}\n part=\"kbs\"\n >\n {this.kbs\n .filter(kb =>\n kb.name\n .toLowerCase()\n .includes(this.kbSearchText.toLowerCase())\n )\n .map(kb => (\n <gxg-list-box-item value={kb.id} key={kb.id}>\n {kb.name}\n </gxg-list-box-item>\n ))}\n </gxg-list-box>\n </div>\n </div>\n <div class=\"grid grid-data-kbs-footer\">\n {/* #kbName */}\n <gxg-form-text\n ref={(el: HTMLGxgFormTextElement) =>\n (this.kbNameEl = el as HTMLGxgFormTextElement)\n }\n label={this._componentLocale.localKb}\n value={this.kbName}\n class=\"kb-name\"\n part=\"kb-name\"\n disabled={this.selectionKbDisabled}\n ></gxg-form-text>\n\n {/* #create button */}\n <div>\n <gxg-button\n id=\"button-create\"\n type=\"primary-text-only\"\n onClick={this.createKbHandler}\n part=\"button-create\"\n disabled={this.selectionKbDisabled}\n >\n {this._componentLocale.buttons.create}\n </gxg-button>\n </div>\n </div>\n </div>\n </div>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport interface GXServerConnectionData {\n serverUrl: string;\n authenticationType: GxServerAuthenticationType;\n user: string;\n password: string;\n}\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\nexport interface KBData {\n id: string;\n name: string;\n}\nexport interface CreateKBData {\n id: string;\n name: string;\n}\n"],"mappings":"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"}