@genexus/genexus-ide-ui 1.0.14 → 1.0.16
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/array-b1e04a85.js +10 -0
- package/dist/cjs/array-b1e04a85.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +95 -86
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +83 -76
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-74cf5c16.js → helpers-b5b4a659.js} +7 -3
- package/dist/cjs/helpers-b5b4a659.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/common/array.js +6 -0
- package/dist/collection/common/array.js.map +1 -0
- package/dist/collection/common/helpers.js +6 -2
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/components/new-environment/gx-ide-assets/new-environment/shortcuts.json +4 -7
- package/dist/collection/components/new-environment/new-environment.css +8 -1
- package/dist/collection/components/new-environment/new-environment.js +98 -129
- package/dist/collection/components/new-environment/new-environment.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.js +83 -114
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/components/array.js +8 -0
- package/dist/components/array.js.map +1 -0
- package/dist/components/gx-ide-new-environment.js +95 -89
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +83 -77
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/helpers.js +6 -2
- package/dist/components/helpers.js.map +1 -1
- package/dist/esm/array-c52006e6.js +8 -0
- package/dist/esm/array-c52006e6.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +95 -86
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +83 -76
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/{helpers-97d0509d.js → helpers-64e1dd0b.js} +7 -3
- package/dist/esm/helpers-64e1dd0b.js.map +1 -0
- 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/new-environment/shortcuts.json +4 -7
- package/dist/genexus-ide-ui/p-1252519a.js +7 -0
- package/dist/genexus-ide-ui/p-1252519a.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f9a00f85.entry.js → p-35c9edc0.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-92681e48.entry.js → p-36cfb4c0.entry.js} +193 -177
- package/dist/genexus-ide-ui/p-36cfb4c0.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-90deeaa8.entry.js → p-424ed874.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-4a8910cd.entry.js → p-4546fa05.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-58409610.entry.js → p-5bff0103.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3663c45f.entry.js → p-85f7f92d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7f7d93b8.entry.js → p-99d52e11.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7f4d8db5.entry.js → p-a5d5fb4d.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-abc8411e.entry.js +434 -0
- package/dist/genexus-ide-ui/p-abc8411e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3c7371a8.entry.js → p-be640a8a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8ad301c4.entry.js → p-c2fdb419.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-4b6e1cf2.js → p-c339f703.js} +57 -55
- package/dist/{cjs/helpers-74cf5c16.js.map → genexus-ide-ui/p-c339f703.js.map} +1 -1
- package/dist/types/common/array.d.ts +5 -0
- package/dist/types/common/helpers.d.ts +2 -2
- package/dist/types/components/new-environment/new-environment.d.ts +6 -12
- package/dist/types/components/new-kb/new-kb.d.ts +6 -9
- package/dist/types/components.d.ts +3 -35
- package/package.json +1 -1
- package/dist/collection/components/new-kb/helpers.js +0 -4
- package/dist/collection/components/new-kb/helpers.js.map +0 -1
- package/dist/esm/helpers-97d0509d.js.map +0 -1
- package/dist/genexus-ide-ui/p-4b6e1cf2.js.map +0 -1
- package/dist/genexus-ide-ui/p-51d5cc3d.entry.js +0 -436
- package/dist/genexus-ide-ui/p-51d5cc3d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-92681e48.entry.js.map +0 -1
- package/dist/types/components/new-kb/helpers.d.ts +0 -3
- /package/dist/genexus-ide-ui/{p-f9a00f85.entry.js.map → p-35c9edc0.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-90deeaa8.entry.js.map → p-424ed874.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4a8910cd.entry.js.map → p-4546fa05.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-58409610.entry.js.map → p-5bff0103.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3663c45f.entry.js.map → p-85f7f92d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7f7d93b8.entry.js.map → p-99d52e11.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7f4d8db5.entry.js.map → p-a5d5fb4d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3c7371a8.entry.js.map → p-be640a8a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8ad301c4.entry.js.map → p-c2fdb419.entry.js.map} +0 -0
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b87e3ee0.js');
|
|
6
|
-
const assetsManager = require('./assets-manager-64c42a1e.js');
|
|
7
6
|
const config = require('./config-b21feeee.js');
|
|
8
7
|
const locale = require('./locale-bf43b87c.js');
|
|
9
|
-
const helpers = require('./helpers-
|
|
8
|
+
const helpers = require('./helpers-b5b4a659.js');
|
|
10
9
|
const common = require('./common-10d3b190.js');
|
|
11
10
|
const formValidation = require('./form-validation-df39cabb.js');
|
|
11
|
+
const array = require('./array-b1e04a85.js');
|
|
12
12
|
|
|
13
|
-
const newEnvironmentCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}.basic,.advanced{padding-block-start:var(--
|
|
13
|
+
const newEnvironmentCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}.basic,.advanced{padding-block-start:var(--mer-spacing--md);block-size:100%;overflow:auto}.advanced{padding-block-end:var(--content-block-spacing)}.basic{display:grid;grid-template:\"runtime-environment runtime-environment\" max-content \"back-end front-end\" 1fr;grid-template-columns:1fr 1fr}.basic__runtime-environment{grid-area:runtime-environment;display:flex;flex-direction:column;align-items:center;gap:var(--mer-spacing--xs)}.basic__runtime-environment.one-runtime-only{align-items:center;flex-direction:row;justify-content:center}.control-header__back-end,.control-header__front-end{padding-block-start:var(--mer-spacing--md)}.basic__back-end{grid-area:back-end}.basic__front-end{grid-area:front-end}.basic__back-end,.basic__front-end{display:grid;grid-template-rows:max-content 1fr;grid-auto-rows:max-content;overflow:auto}.main__back-end{border-inline-end:var(--section-common-border)}.main__back-end,.main__front-end{grid-auto-rows:max-content;padding-block:var(--content-block-spacing);overflow:auto}.text-align-center{text-align:center}.tab::part(page){scrollbar-width:thin}";
|
|
14
14
|
|
|
15
15
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
16
16
|
if (kind === "a" && !f)
|
|
@@ -28,7 +28,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
28
28
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
29
29
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
30
30
|
};
|
|
31
|
-
var
|
|
31
|
+
var _GxIdeNewEnvironment_advancedTabHasBeenRendered, _GxIdeNewEnvironment_chShortcutsEl, _GxIdeNewEnvironment_envNameModifiedByUser, _GxIdeNewEnvironment_frontEndsCheckedMap, _GxIdeNewEnvironment_selectedDataStoreId, _GxIdeNewEnvironment_selectedLanguageId, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, _GxIdeNewEnvironment_shortcutsSrc, _GxIdeNewEnvironment_newEnvironmentSectionsModel, _GxIdeNewEnvironment_componentLocale, _GxIdeNewEnvironment_dataStoreEl, _GxIdeNewEnvironment_environmentNameEl, _GxIdeNewEnvironment_languageEl, _GxIdeNewEnvironment_setAsCurrentEnvironmentEl, _GxIdeNewEnvironment_dataStoreValueChangedHandler, _GxIdeNewEnvironment_envNameInputHandler, _GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId, _GxIdeNewEnvironment_evaluateTooltipRender, _GxIdeNewEnvironment_initializeValidatableControlsBasicTab, _GxIdeNewEnvironment_languageValueChangedHandler, _GxIdeNewEnvironment_renderAdvanced, _GxIdeNewEnvironment_renderBasic, _GxIdeNewEnvironment_runtimeEnvironmentChangedHandler, _GxIdeNewEnvironment_createCallbackHandler, _GxIdeNewEnvironment_tabSelectionChangedHandler, _GxIdeNewEnvironment_updateDataSources, _GxIdeNewEnvironment_updateEnvironmentName, _GxIdeNewEnvironment_updateFrontEnds, _GxIdeNewEnvironment_frontEndCheckboxInputHandler, _GxIdeNewEnvironment_updateFrontEndsCheckedMap;
|
|
32
32
|
const CSS_BUNDLES = [
|
|
33
33
|
// TODO: review if "utils/form--full" is required.
|
|
34
34
|
"resets/box-sizing",
|
|
@@ -39,16 +39,6 @@ const CSS_BUNDLES = [
|
|
|
39
39
|
"utils/typography",
|
|
40
40
|
"chameleon/scrollbar"
|
|
41
41
|
];
|
|
42
|
-
const GEMINI_TOOLS_GENEXUS_CLOUD_ON_SURFACE = assetsManager.getIconPath({
|
|
43
|
-
category: "window-tools",
|
|
44
|
-
name: "genexus-cloud",
|
|
45
|
-
colorType: "on-surface"
|
|
46
|
-
});
|
|
47
|
-
const GEMINI_TOOLS_ROL_ON_SURFACE = assetsManager.getIconPath({
|
|
48
|
-
category: "window-tools",
|
|
49
|
-
name: "rol",
|
|
50
|
-
colorType: "on-surface"
|
|
51
|
-
});
|
|
52
42
|
const MAIN_SECTION_CLASSES = "main";
|
|
53
43
|
const BASIC_SECTION_PARENT_CLASSES = "basic";
|
|
54
44
|
const BASIC_TAB_SELECTOR = "basic";
|
|
@@ -56,12 +46,16 @@ const ADVANCED_TAB_SELECTOR = "advanced";
|
|
|
56
46
|
const GxIdeNewEnvironment = class {
|
|
57
47
|
constructor(hostRef) {
|
|
58
48
|
index.registerInstance(this, hostRef);
|
|
59
|
-
_GxIdeNewEnvironment_instances.add(this);
|
|
60
49
|
_GxIdeNewEnvironment_advancedTabHasBeenRendered.set(this, false);
|
|
61
50
|
_GxIdeNewEnvironment_chShortcutsEl.set(this, void 0);
|
|
62
51
|
_GxIdeNewEnvironment_envNameModifiedByUser.set(this, false);
|
|
52
|
+
/**
|
|
53
|
+
* frontEndsState saves the id's of the front ends checkboxes that are checked
|
|
54
|
+
*/
|
|
55
|
+
// TODO (Use a set instead of an array to improve performance)
|
|
56
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
57
|
+
_GxIdeNewEnvironment_frontEndsCheckedMap.set(this, new Map());
|
|
63
58
|
_GxIdeNewEnvironment_selectedDataStoreId.set(this, void 0);
|
|
64
|
-
_GxIdeNewEnvironment_selectedFrontEndsIds.set(this, []);
|
|
65
59
|
_GxIdeNewEnvironment_selectedLanguageId.set(this, void 0);
|
|
66
60
|
_GxIdeNewEnvironment_selectedRuntimeEnvironmentId.set(this, void 0);
|
|
67
61
|
_GxIdeNewEnvironment_shortcutsSrc.set(this, index.getAssetPath(`./gx-ide-assets/new-environment/shortcuts.json`));
|
|
@@ -71,10 +65,9 @@ const GxIdeNewEnvironment = class {
|
|
|
71
65
|
*/
|
|
72
66
|
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
73
67
|
_GxIdeNewEnvironment_componentLocale.set(this, void 0);
|
|
74
|
-
|
|
68
|
+
// References needed to collect data con "createCallback" button submit*/
|
|
75
69
|
_GxIdeNewEnvironment_dataStoreEl.set(this, void 0);
|
|
76
70
|
_GxIdeNewEnvironment_environmentNameEl.set(this, void 0);
|
|
77
|
-
_GxIdeNewEnvironment_frontEndsEl.set(this, void 0);
|
|
78
71
|
_GxIdeNewEnvironment_languageEl.set(this, void 0);
|
|
79
72
|
_GxIdeNewEnvironment_setAsCurrentEnvironmentEl.set(this, void 0);
|
|
80
73
|
_GxIdeNewEnvironment_dataStoreValueChangedHandler.set(this, () => {
|
|
@@ -84,23 +77,12 @@ const GxIdeNewEnvironment = class {
|
|
|
84
77
|
});
|
|
85
78
|
_GxIdeNewEnvironment_envNameInputHandler.set(this, (e) => {
|
|
86
79
|
const newEnvName = e.detail.trim();
|
|
87
|
-
|
|
88
|
-
this.environmentName = newEnvName;
|
|
89
|
-
__classPrivateFieldSet(this, _GxIdeNewEnvironment_envNameModifiedByUser, true, "f");
|
|
90
|
-
}
|
|
80
|
+
__classPrivateFieldSet(this, _GxIdeNewEnvironment_envNameModifiedByUser, newEnvName !== this.environmentName, "f");
|
|
91
81
|
});
|
|
92
82
|
_GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId.set(this, () => {
|
|
93
83
|
var _a;
|
|
94
84
|
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, (_a = this.runtimes[0]) === null || _a === void 0 ? void 0 : _a.value, "f");
|
|
95
85
|
});
|
|
96
|
-
_GxIdeNewEnvironment_evaluateSingleRuntimeIcon.set(this, () => {
|
|
97
|
-
if (this.runtimes[0].id === "local") {
|
|
98
|
-
return GEMINI_TOOLS_ROL_ON_SURFACE;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
return GEMINI_TOOLS_GENEXUS_CLOUD_ON_SURFACE;
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
86
|
// TODO: We must avoid performing the get 3 times.
|
|
105
87
|
// It is used on new-environment as well.
|
|
106
88
|
_GxIdeNewEnvironment_evaluateTooltipRender.set(this, (controlReference) => {
|
|
@@ -124,10 +106,9 @@ const GxIdeNewEnvironment = class {
|
|
|
124
106
|
}
|
|
125
107
|
});
|
|
126
108
|
});
|
|
127
|
-
_GxIdeNewEnvironment_languageValueChangedHandler.set(this, () => {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateDataSources, "f").call(this);
|
|
109
|
+
_GxIdeNewEnvironment_languageValueChangedHandler.set(this, async (event) => {
|
|
110
|
+
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedLanguageId, event.detail, "f");
|
|
111
|
+
await __classPrivateFieldGet(this, _GxIdeNewEnvironment_updateDataSources, "f").call(this);
|
|
131
112
|
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateFrontEnds, "f").call(this);
|
|
132
113
|
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateEnvironmentName, "f").call(this);
|
|
133
114
|
});
|
|
@@ -136,39 +117,53 @@ const GxIdeNewEnvironment = class {
|
|
|
136
117
|
});
|
|
137
118
|
_GxIdeNewEnvironment_renderBasic.set(this, () => {
|
|
138
119
|
return [
|
|
139
|
-
index.h("div", { class:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
120
|
+
index.h("div", { class: {
|
|
121
|
+
"basic__runtime-environment": true,
|
|
122
|
+
"control-header-with-border": true,
|
|
123
|
+
"one-runtime-only": this.runtimes.length === 1
|
|
124
|
+
} }, this.runtimes.length > 1
|
|
125
|
+
? [
|
|
126
|
+
index.h("h2", {
|
|
127
|
+
// Runtime Environment
|
|
128
|
+
class: "heading-5 text-align-center"
|
|
129
|
+
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").runtime),
|
|
130
|
+
index.h("ch-radio-group-render", { class: "radio-group", onChange: __classPrivateFieldGet(this, _GxIdeNewEnvironment_runtimeEnvironmentChangedHandler, "f"), model: this.runtimesRadioGroupModel, value: __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, "f") })
|
|
131
|
+
]
|
|
132
|
+
: [
|
|
133
|
+
index.h("h2", { class: "heading-5 text-align-center" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").runtime, ":"),
|
|
134
|
+
index.h("p", null, this.runtimesRadioGroupModel[0].caption)
|
|
135
|
+
]),
|
|
143
136
|
index.h("section", { class: "basic__back-end scrollable" }, index.h("h2", {
|
|
144
137
|
// back end
|
|
145
138
|
class: "control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline"
|
|
146
139
|
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.backEnd.backEndLabel), index.h("div", { class: "field-group main__back-end spacing-body-inline scrollable" }, index.h("div", {
|
|
147
140
|
// #language
|
|
148
141
|
class: "field field-block"
|
|
149
|
-
}, index.h("label", { class: "label", htmlFor: "language" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.backEnd.language), index.h("ch-combo-box-render", { id: "language", class: "combo-box", part: "language", value: this
|
|
142
|
+
}, index.h("label", { class: "label", htmlFor: "language" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.backEnd.language), index.h("ch-combo-box-render", { id: "language", class: "combo-box", part: "language", value: __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"), disabled: this.languages.length === 0, model: this.languageComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeNewEnvironment_languageValueChangedHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_languageEl, el, "f")) }), __classPrivateFieldGet(this, _GxIdeNewEnvironment_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewEnvironment_languageEl, "f"))), index.h("div", {
|
|
150
143
|
// #data stores
|
|
151
144
|
class: "field field-block"
|
|
152
|
-
}, index.h("label", { class: "label", htmlFor: "data-store" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.backEnd.dataStores), index.h("ch-combo-box-render", { id: "data-store", class: "combo-box", part: "data-store", value: this
|
|
145
|
+
}, index.h("label", { class: "label", htmlFor: "data-store" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.backEnd.dataStores), index.h("ch-combo-box-render", { id: "data-store", class: "combo-box", part: "data-store", value: __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedDataStoreId, "f"), model: this.dataStoresComboBoxModel, onInput: __classPrivateFieldGet(this, _GxIdeNewEnvironment_dataStoreValueChangedHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_dataStoreEl, el, "f")) }), __classPrivateFieldGet(this, _GxIdeNewEnvironment_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeNewEnvironment_dataStoreEl, "f"))))),
|
|
153
146
|
index.h("section", { class: "basic__front-end scrollable" }, index.h("h2", {
|
|
154
147
|
// front end
|
|
155
148
|
class: "control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline"
|
|
156
|
-
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.frontEnd.frontEndLabel), index.h("div", { class: "field-group front-end__checkboxes spacing-body-inline main__front-end scrollable", role: "group", "aria-labelledby": __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.frontEnd.generators,
|
|
149
|
+
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.frontEnd.frontEndLabel), index.h("div", { class: "field-group front-end__checkboxes spacing-body-inline main__front-end scrollable", role: "group", "aria-labelledby": __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").tabBasic.frontEnd.generators }, helpers.renderChCheckboxItems(this.frontEnds, __classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndCheckboxInputHandler, "f"), __classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f")))))
|
|
157
150
|
];
|
|
158
151
|
});
|
|
159
152
|
_GxIdeNewEnvironment_runtimeEnvironmentChangedHandler.set(this, (event) => {
|
|
160
153
|
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, event.detail, "f");
|
|
161
154
|
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateDataSources, "f").call(this);
|
|
155
|
+
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateEnvironmentName, "f").call(this);
|
|
162
156
|
});
|
|
163
|
-
|
|
164
|
-
var _a;
|
|
157
|
+
_GxIdeNewEnvironment_createCallbackHandler.set(this, async () => {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
const selectedFrontEndIds = (_a = __classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"))) !== null && _a !== void 0 ? _a : [];
|
|
165
160
|
this.createCallback({
|
|
166
|
-
setAsCurrent: !!((
|
|
161
|
+
setAsCurrent: !!((_b = __classPrivateFieldGet(this, _GxIdeNewEnvironment_setAsCurrentEnvironmentEl, "f")) === null || _b === void 0 ? void 0 : _b.value),
|
|
167
162
|
name: __classPrivateFieldGet(this, _GxIdeNewEnvironment_environmentNameEl, "f").value,
|
|
168
163
|
runtime: __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, "f"),
|
|
169
164
|
language: __classPrivateFieldGet(this, _GxIdeNewEnvironment_languageEl, "f").value,
|
|
170
165
|
dataStores: __classPrivateFieldGet(this, _GxIdeNewEnvironment_dataStoreEl, "f").value,
|
|
171
|
-
frontEnds:
|
|
166
|
+
frontEnds: selectedFrontEndIds
|
|
172
167
|
}).then((formSubmitResult) => {
|
|
173
168
|
this.validatableControls = formValidation.validateControls(formSubmitResult, this.validatableControls);
|
|
174
169
|
});
|
|
@@ -181,47 +176,59 @@ const GxIdeNewEnvironment = class {
|
|
|
181
176
|
}
|
|
182
177
|
});
|
|
183
178
|
_GxIdeNewEnvironment_updateDataSources.set(this, async () => {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
this.dataStores = updatedDataSources;
|
|
188
|
-
}
|
|
179
|
+
const updatedDataSources = await this.getDataSourcesCallback(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"), __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, "f"));
|
|
180
|
+
if ((updatedDataSources === null || updatedDataSources === void 0 ? void 0 : updatedDataSources.length) > 0) {
|
|
181
|
+
this.dataStores = updatedDataSources;
|
|
189
182
|
}
|
|
190
183
|
});
|
|
191
184
|
_GxIdeNewEnvironment_updateEnvironmentName.set(this, async () => {
|
|
192
|
-
if (this
|
|
193
|
-
__classPrivateFieldGet(this,
|
|
194
|
-
!__classPrivateFieldGet(this, _GxIdeNewEnvironment_envNameModifiedByUser, "f")) {
|
|
195
|
-
const updatedEnvName = await this.getEnvironmentNameCallback(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"), __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedDataStoreId, "f"));
|
|
196
|
-
if (updatedEnvName) {
|
|
197
|
-
this.environmentName = updatedEnvName;
|
|
198
|
-
}
|
|
185
|
+
if (!__classPrivateFieldGet(this, _GxIdeNewEnvironment_envNameModifiedByUser, "f")) {
|
|
186
|
+
this.environmentName = await this.getEnvironmentNameCallback(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"), __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedDataStoreId, "f"), __classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedRuntimeEnvironmentId, "f"));
|
|
199
187
|
}
|
|
200
188
|
});
|
|
201
|
-
_GxIdeNewEnvironment_updateSelectedFrontEndsIds.set(this, () => {
|
|
202
|
-
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedFrontEndsIds, __classPrivateFieldGet(this, _GxIdeNewEnvironment_instances, "m", _GxIdeNewEnvironment_getCheckboxValues).call(this), "f");
|
|
203
|
-
});
|
|
204
189
|
_GxIdeNewEnvironment_updateFrontEnds.set(this, async () => {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
190
|
+
const updatedFrontEnds = await this.getFrontEndsCallback(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"));
|
|
191
|
+
if ((updatedFrontEnds === null || updatedFrontEnds === void 0 ? void 0 : updatedFrontEnds.length) > 0) {
|
|
192
|
+
this.frontEnds = updatedFrontEnds;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
_GxIdeNewEnvironment_frontEndCheckboxInputHandler.set(this, (event) => {
|
|
196
|
+
const checkedValue = event.target.checkedValue;
|
|
197
|
+
const checked = event.detail === checkedValue;
|
|
198
|
+
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateFrontEndsCheckedMap, "f").call(this, checkedValue, checked);
|
|
199
|
+
});
|
|
200
|
+
/**
|
|
201
|
+
* This function updates frontEndsCheckedMap, that contains the checked
|
|
202
|
+
* checkboxes for each language front ends.
|
|
203
|
+
*/
|
|
204
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
205
|
+
_GxIdeNewEnvironment_updateFrontEndsCheckedMap.set(this, (checkboxId, checked) => {
|
|
206
|
+
let currentState = __classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndsCheckedMap, "f").get(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"));
|
|
207
|
+
if (!currentState) {
|
|
208
|
+
// first time
|
|
209
|
+
currentState = [];
|
|
210
|
+
__classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndsCheckedMap, "f").set(__classPrivateFieldGet(this, _GxIdeNewEnvironment_selectedLanguageId, "f"), currentState);
|
|
211
|
+
}
|
|
212
|
+
if (checked) {
|
|
213
|
+
// update by adding
|
|
214
|
+
currentState.push(checkboxId);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
// update by removing
|
|
218
|
+
const checkboxIndex = currentState.findIndex(id => id === checkboxId);
|
|
219
|
+
array.removeIndex(currentState, checkboxIndex);
|
|
210
220
|
}
|
|
211
221
|
});
|
|
212
222
|
this.advancedTabIsVisible = false;
|
|
223
|
+
this.frontEnds = undefined;
|
|
213
224
|
this.validatableControls = new Map();
|
|
214
225
|
this.dataStoresComboBoxModel = [];
|
|
215
|
-
this.dataStoresInitialValue = undefined;
|
|
216
226
|
this.languageComboBoxModel = [];
|
|
217
|
-
this.languageInitialValue = undefined;
|
|
218
227
|
this.runtimesRadioGroupModel = [];
|
|
219
228
|
this.cancelCallback = undefined;
|
|
220
229
|
this.createCallback = undefined;
|
|
221
230
|
this.dataStores = undefined;
|
|
222
|
-
this.disableAdvanced = false;
|
|
223
231
|
this.environmentName = undefined;
|
|
224
|
-
this.frontEnds = undefined;
|
|
225
232
|
this.getDataSourcesCallback = undefined;
|
|
226
233
|
this.getEnvironmentNameCallback = undefined;
|
|
227
234
|
this.getFrontEndsCallback = undefined;
|
|
@@ -233,13 +240,14 @@ const GxIdeNewEnvironment = class {
|
|
|
233
240
|
dataStoresChanged(newValue) {
|
|
234
241
|
if (newValue === null || newValue === void 0 ? void 0 : newValue.length) {
|
|
235
242
|
this.dataStoresComboBoxModel = helpers.mapOptionsToComboBoxItemModel(newValue);
|
|
236
|
-
this
|
|
243
|
+
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedDataStoreId, common.getSelectedItem(newValue), "f");
|
|
237
244
|
}
|
|
238
245
|
}
|
|
239
246
|
languagesChanged(newValue) {
|
|
240
247
|
if (newValue === null || newValue === void 0 ? void 0 : newValue.length) {
|
|
241
248
|
this.languageComboBoxModel = helpers.mapOptionsToComboBoxItemModel(newValue);
|
|
242
|
-
this
|
|
249
|
+
__classPrivateFieldSet(this, _GxIdeNewEnvironment_selectedLanguageId, common.getSelectedItem(newValue), "f");
|
|
250
|
+
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateFrontEnds, "f").call(this);
|
|
243
251
|
}
|
|
244
252
|
}
|
|
245
253
|
runtimesChanged(newValue) {
|
|
@@ -253,7 +261,6 @@ const GxIdeNewEnvironment = class {
|
|
|
253
261
|
this.runtimesChanged(this.runtimes);
|
|
254
262
|
}
|
|
255
263
|
componentDidLoad() {
|
|
256
|
-
__classPrivateFieldGet(this, _GxIdeNewEnvironment_updateSelectedFrontEndsIds, "f").call(this);
|
|
257
264
|
__classPrivateFieldGet(this, _GxIdeNewEnvironment_initializeValidatableControlsBasicTab, "f").call(this);
|
|
258
265
|
}
|
|
259
266
|
componentDidRender() {
|
|
@@ -288,13 +295,21 @@ const GxIdeNewEnvironment = class {
|
|
|
288
295
|
}
|
|
289
296
|
}
|
|
290
297
|
render() {
|
|
291
|
-
return (index.h(index.Host, { class: "widget scrollable" }, index.h("ch-theme", { model: CSS_BUNDLES }), index.h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeNewEnvironment_shortcutsSrc, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_chShortcutsEl, el, "f")) }), index.h("section", { class: "section" }, index.h("header", { class:
|
|
298
|
+
return (index.h(index.Host, { class: "widget scrollable" }, index.h("ch-theme", { model: CSS_BUNDLES }), index.h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeNewEnvironment_shortcutsSrc, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_chShortcutsEl, el, "f")) }), index.h("section", { class: "section" }, index.h("header", { class: {
|
|
299
|
+
"header": true,
|
|
300
|
+
"spacing-body-inline": true,
|
|
301
|
+
"spacing-body-block-start": true,
|
|
302
|
+
"control-header": this.isAdvanced,
|
|
303
|
+
"control-header-with-border": !this.isAdvanced
|
|
304
|
+
} }, index.h("div", {
|
|
292
305
|
// #environment name
|
|
293
306
|
class: "field field-inline"
|
|
294
|
-
}, index.h("label", { class: "label", htmlFor: "environment-name" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").name), index.h("ch-edit", {
|
|
307
|
+
}, index.h("label", { class: "label", htmlFor: "environment-name" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").name), index.h("ch-edit", {
|
|
308
|
+
// environment name
|
|
309
|
+
autoFocus: true, id: "environment-name", class: "form-input", part: "environment-name", value: this.environmentName, placeholder: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").environmentNamePlaceholder,
|
|
295
310
|
// TODO: toolTip={config.tooltip}
|
|
296
|
-
ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_environmentNameEl, el, "f")), onInput:
|
|
297
|
-
|
|
311
|
+
ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_environmentNameEl, el, "f")), onInput: __classPrivateFieldGet(this, _GxIdeNewEnvironment_envNameInputHandler, "f")
|
|
312
|
+
}))), this.isAdvanced ? (index.h("ch-tab-render", {
|
|
298
313
|
// main section
|
|
299
314
|
class: {
|
|
300
315
|
tab: true,
|
|
@@ -314,10 +329,10 @@ const GxIdeNewEnvironment = class {
|
|
|
314
329
|
class: "checkbox", caption: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").footer.setAsCurrentEnvironment, ref: (el) => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_setAsCurrentEnvironmentEl, el, "f")), checkedValue: "current-environment", value: this.setAsTarget ? "current-environment" : "", part: "set-as-current-environment"
|
|
315
330
|
}), index.h("div", { class: "buttons-spacer" }, index.h("button", {
|
|
316
331
|
// #cancel
|
|
317
|
-
class: "button-secondary", onClick: this.cancelCallback, part: "button button
|
|
332
|
+
class: "button-secondary", onClick: this.cancelCallback, part: "button button-cancel"
|
|
318
333
|
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").footer.btnCancel), index.h("button", {
|
|
319
|
-
// #
|
|
320
|
-
class: "button-primary", onClick: __classPrivateFieldGet(this,
|
|
334
|
+
// #create
|
|
335
|
+
class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeNewEnvironment_createCallbackHandler, "f"), part: "button button-create"
|
|
321
336
|
}, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").footer.btnCreate))))));
|
|
322
337
|
}
|
|
323
338
|
static get assetsDirs() { return ["gx-ide-assets/new-environment"]; }
|
|
@@ -328,13 +343,7 @@ const GxIdeNewEnvironment = class {
|
|
|
328
343
|
"runtimes": ["runtimesChanged"]
|
|
329
344
|
}; }
|
|
330
345
|
};
|
|
331
|
-
_GxIdeNewEnvironment_advancedTabHasBeenRendered = new WeakMap(), _GxIdeNewEnvironment_chShortcutsEl = new WeakMap(), _GxIdeNewEnvironment_envNameModifiedByUser = new WeakMap(),
|
|
332
|
-
const checkboxes = __classPrivateFieldGet(this, _GxIdeNewEnvironment_frontEndsEl, "f").querySelectorAll("ch-checkbox");
|
|
333
|
-
const values = Array.from(checkboxes)
|
|
334
|
-
.map((checkbox) => checkbox.value)
|
|
335
|
-
.filter(Boolean);
|
|
336
|
-
return values;
|
|
337
|
-
};
|
|
346
|
+
_GxIdeNewEnvironment_advancedTabHasBeenRendered = new WeakMap(), _GxIdeNewEnvironment_chShortcutsEl = new WeakMap(), _GxIdeNewEnvironment_envNameModifiedByUser = new WeakMap(), _GxIdeNewEnvironment_frontEndsCheckedMap = new WeakMap(), _GxIdeNewEnvironment_selectedDataStoreId = new WeakMap(), _GxIdeNewEnvironment_selectedLanguageId = new WeakMap(), _GxIdeNewEnvironment_selectedRuntimeEnvironmentId = new WeakMap(), _GxIdeNewEnvironment_shortcutsSrc = new WeakMap(), _GxIdeNewEnvironment_newEnvironmentSectionsModel = new WeakMap(), _GxIdeNewEnvironment_componentLocale = new WeakMap(), _GxIdeNewEnvironment_dataStoreEl = new WeakMap(), _GxIdeNewEnvironment_environmentNameEl = new WeakMap(), _GxIdeNewEnvironment_languageEl = new WeakMap(), _GxIdeNewEnvironment_setAsCurrentEnvironmentEl = new WeakMap(), _GxIdeNewEnvironment_dataStoreValueChangedHandler = new WeakMap(), _GxIdeNewEnvironment_envNameInputHandler = new WeakMap(), _GxIdeNewEnvironment_evaluateSelectedRuntimeEnvironmentId = new WeakMap(), _GxIdeNewEnvironment_evaluateTooltipRender = new WeakMap(), _GxIdeNewEnvironment_initializeValidatableControlsBasicTab = new WeakMap(), _GxIdeNewEnvironment_languageValueChangedHandler = new WeakMap(), _GxIdeNewEnvironment_renderAdvanced = new WeakMap(), _GxIdeNewEnvironment_renderBasic = new WeakMap(), _GxIdeNewEnvironment_runtimeEnvironmentChangedHandler = new WeakMap(), _GxIdeNewEnvironment_createCallbackHandler = new WeakMap(), _GxIdeNewEnvironment_tabSelectionChangedHandler = new WeakMap(), _GxIdeNewEnvironment_updateDataSources = new WeakMap(), _GxIdeNewEnvironment_updateEnvironmentName = new WeakMap(), _GxIdeNewEnvironment_updateFrontEnds = new WeakMap(), _GxIdeNewEnvironment_frontEndCheckboxInputHandler = new WeakMap(), _GxIdeNewEnvironment_updateFrontEndsCheckedMap = new WeakMap();
|
|
338
347
|
GxIdeNewEnvironment.style = newEnvironmentCss;
|
|
339
348
|
|
|
340
349
|
exports.gx_ide_new_environment = GxIdeNewEnvironment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-new-environment.entry.cjs.js","mappings":"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","names":["getIconPath","getAssetPath","h","config","renderChCheckboxItems","validateControls","mapOptionsToComboBoxItemModel","getSelectedItem","Locale","Host"],"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"],"version":3}
|
|
1
|
+
{"file":"gx-ide-new-environment.entry.cjs.js","mappings":"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","names":["getAssetPath","h","config","renderChCheckboxItems","validateControls","removeIndex","mapOptionsToComboBoxItemModel","getSelectedItem","Locale","Host"],"sources":["src/components/new-environment/new-environment.scss?tag=gx-ide-new-environment&encapsulation=shadow","src/components/new-environment/new-environment.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.basic,\n.advanced {\n padding-block-start: var(--mer-spacing--md);\n block-size: 100%;\n overflow: auto;\n}\n.advanced {\n padding-block-end: var(--content-block-spacing);\n}\n\n// basic\n.basic {\n display: grid;\n grid-template:\n \"runtime-environment runtime-environment\" max-content\n \"back-end front-end\" 1fr;\n grid-template-columns: 1fr 1fr;\n}\n.basic__runtime-environment {\n grid-area: runtime-environment;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.basic__runtime-environment.one-runtime-only {\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n.control-header__back-end,\n.control-header__front-end {\n padding-block-start: var(--mer-spacing--md);\n}\n.basic__back-end {\n grid-area: back-end;\n}\n.basic__front-end {\n grid-area: front-end;\n}\n.basic__back-end,\n.basic__front-end {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-auto-rows: max-content;\n overflow: auto;\n}\n.main__back-end {\n border-inline-end: var(--section-common-border);\n}\n.main__back-end,\n.main__front-end {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tab::part(page) {\n // WA / TODO: Remove this line when the ch-tab renders supports scrollbar\n // custom styling\n scrollbar-width: thin;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n Method,\n Prop,\n State,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport {\n mapOptionsToComboBoxItemModel,\n renderChCheckboxItems\n} from \"../../common/helpers\";\nimport { getSelectedItem } from \"../../common/common\";\nimport { FormSubmitResult, GxOption } from \"../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\nimport {\n ChRadioGroupRenderCustomEvent,\n TabModel,\n ComboBoxModel,\n ChEditCustomEvent,\n RadioGroupModel,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { removeIndex } from \"../../common/array\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"chameleon/scrollbar\"\n];\n\nconst MAIN_SECTION_CLASSES: string = \"main\";\nconst BASIC_SECTION_PARENT_CLASSES: string = \"basic\";\nconst BASIC_TAB_SELECTOR: string = \"basic\";\nconst ADVANCED_TAB_SELECTOR: string = \"advanced\";\n\n@Component({\n tag: \"gx-ide-new-environment\",\n styleUrl: \"new-environment.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-environment\"]\n})\nexport class GxIdeNewEnvironment {\n #advancedTabHasBeenRendered: boolean = false;\n #chShortcutsEl!: HTMLChShortcutsElement;\n #envNameModifiedByUser = false;\n /**\n * frontEndsState saves the id's of the front ends checkboxes that are checked\n */\n // TODO (Use a set instead of an array to improve performance)\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #frontEndsCheckedMap = new Map<string, string[]>();\n #selectedDataStoreId: string;\n #selectedLanguageId: string;\n #selectedRuntimeEnvironmentId: string;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/new-environment/shortcuts.json`\n );\n #newEnvironmentSectionsModel: TabModel = [];\n\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewEnvironmentElement;\n\n // References needed to collect data con \"createCallback\" button submit*/\n #dataStoreEl!: HTMLChComboBoxRenderElement;\n #environmentNameEl!: HTMLChEditElement;\n #languageEl!: HTMLChComboBoxRenderElement;\n #setAsCurrentEnvironmentEl!: HTMLChCheckboxElement;\n\n @State() advancedTabIsVisible: boolean = false;\n\n /**\n * Allows selecting multiple generators for the front end\n * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.\n */\n @State() frontEnds: GxOption[];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n // representations of GxOption[] as ComboBoxModel or RadioGroupModel.\n @State() dataStoresComboBoxModel: ComboBoxModel = [];\n @State() languageComboBoxModel: ComboBoxModel = [];\n @State() runtimesRadioGroupModel: RadioGroupModel = [];\n\n /**\n * Callback invoked when user wants to cancel\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user confirms the KB creation\n */\n @Prop() readonly createCallback!: CreateCallback;\n\n /**\n * Allows defining the DBMS to be used in the solution\n */\n @Prop({ mutable: true }) dataStores!: GxOption[];\n @Watch(\"dataStores\")\n dataStoresChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.dataStoresComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedDataStoreId = getSelectedItem(newValue);\n }\n }\n\n /**\n * Name of the new environment\n */\n @Prop({ mutable: true }) environmentName: string;\n\n /**\n * Callback invoked when user changes the language or the runtime\n */\n @Prop() readonly getDataSourcesCallback!: GetDataSourcesCallback;\n\n /**\n * Callback invoked when user changes the language or data source\n */\n @Prop() readonly getEnvironmentNameCallback!: GetEnvironmentNameCallback;\n\n /**\n * Callback invoked when user changes the language\n */\n @Prop() readonly getFrontEndsCallback!: GetFrontEndsCallback;\n\n /**\n * Define if the Advanced tab should be displayed\n */\n @Prop() readonly isAdvanced: boolean = false;\n\n /**\n * Possible values for 'Language' combo\n */\n @Prop() readonly languages!: GxOption[];\n @Watch(\"languages\")\n languagesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.languageComboBoxModel = mapOptionsToComboBoxItemModel(newValue);\n this.#selectedLanguageId = getSelectedItem(newValue);\n this.#updateFrontEnds();\n }\n }\n\n /**\n * Possible values for 'Runtime Environment' radio button\n */\n @Prop() readonly runtimes!: GxOption[];\n @Watch(\"runtimes\")\n runtimesChanged(newValue: GxOption[]) {\n if (newValue?.length) {\n this.runtimesRadioGroupModel = mapOptionsToComboBoxItemModel(\n this.runtimes\n );\n }\n }\n\n /**\n * Belongs to checkbox 'Set as current environment' @default true\n *\n */\n @Prop() readonly setAsTarget?: boolean = true;\n\n connectedCallback() {\n this.dataStoresChanged(this.dataStores);\n this.languagesChanged(this.languages);\n this.runtimesChanged(this.runtimes);\n }\n\n componentDidLoad() {\n this.#initializeValidatableControlsBasicTab();\n }\n\n componentDidRender() {\n if (this.advancedTabIsVisible && !this.#advancedTabHasBeenRendered) {\n // just call this once.\n this.#advancedTabHasBeenRendered = true;\n }\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#newEnvironmentSectionsModel = [\n {\n id: BASIC_TAB_SELECTOR,\n name: this.#componentLocale.tabBasic.tabLabel\n },\n {\n id: ADVANCED_TAB_SELECTOR,\n name: this.#componentLocale.tabAdvanced.tabLabel\n }\n ];\n this.#evaluateSelectedRuntimeEnvironmentId();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n #dataStoreValueChangedHandler = () => {\n /* the data store item id is used for the value (they are equal)*/\n this.#selectedDataStoreId = this.#dataStoreEl.value;\n this.#updateEnvironmentName();\n };\n\n #envNameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n const newEnvName = (e as ChEditCustomEvent<string>).detail.trim();\n this.#envNameModifiedByUser = newEnvName !== this.environmentName;\n };\n\n #evaluateSelectedRuntimeEnvironmentId = () => {\n this.#selectedRuntimeEnvironmentId = this.runtimes[0]?.value;\n };\n\n // TODO: We must avoid performing the get 3 times.\n // It is used on new-environment as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControlsBasicTab = () => {\n // populate #controlsValidation with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#dataStoreEl,\n this.#languageEl\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #languageValueChangedHandler = async (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.#selectedLanguageId = event.detail as string;\n await this.#updateDataSources();\n this.#updateFrontEnds();\n this.#updateEnvironmentName();\n };\n\n #renderAdvanced = (): Element => {\n return <slot name=\"property-grid\"></slot>;\n };\n\n #renderBasic = (): HTMLElement[] => {\n return [\n <div\n class={{\n \"basic__runtime-environment\": true,\n \"control-header-with-border\": true,\n \"one-runtime-only\": this.runtimes.length === 1\n }}\n >\n {this.runtimes.length > 1\n ? [\n <h2\n // Runtime Environment\n class=\"heading-5 text-align-center\"\n >\n {this.#componentLocale.runtime}\n </h2>,\n <ch-radio-group-render\n class=\"radio-group\"\n onChange={this.#runtimeEnvironmentChangedHandler}\n model={this.runtimesRadioGroupModel}\n value={this.#selectedRuntimeEnvironmentId}\n ></ch-radio-group-render>\n ]\n : [\n <h2 class=\"heading-5 text-align-center\">\n {this.#componentLocale.runtime}:\n </h2>,\n <p>{this.runtimesRadioGroupModel[0].caption}</p>\n ]}\n </div>,\n <section class=\"basic__back-end scrollable\">\n <h2\n // back end\n class=\"control-header control-header-with-border control-header__back-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.backEnd.backEndLabel}\n </h2>\n\n <div class=\"field-group main__back-end spacing-body-inline scrollable\">\n <div\n // #language\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"language\">\n {this.#componentLocale.tabBasic.backEnd.language}\n </label>\n <ch-combo-box-render\n id=\"language\"\n class=\"combo-box\"\n part=\"language\"\n value={this.#selectedLanguageId}\n disabled={this.languages.length === 0}\n model={this.languageComboBoxModel}\n onInput={this.#languageValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#languageEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#languageEl)}\n </div>\n\n <div\n // #data stores\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"data-store\">\n {this.#componentLocale.tabBasic.backEnd.dataStores}\n </label>\n <ch-combo-box-render\n id=\"data-store\"\n class=\"combo-box\"\n part=\"data-store\"\n value={this.#selectedDataStoreId}\n model={this.dataStoresComboBoxModel}\n onInput={this.#dataStoreValueChangedHandler}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#dataStoreEl = el as HTMLChComboBoxRenderElement)\n }\n // TODO: toolTip={config.tooltip}\n ></ch-combo-box-render>\n {this.#evaluateTooltipRender(this.#dataStoreEl)}\n </div>\n </div>\n </section>,\n\n <section class=\"basic__front-end scrollable\">\n <h2\n // front end\n class=\"control-header control-header-with-border control-header__front-end heading-5 text-align-center spacing-body-inline\"\n >\n {this.#componentLocale.tabBasic.frontEnd.frontEndLabel}\n </h2>\n <div\n class=\"field-group front-end__checkboxes spacing-body-inline main__front-end scrollable\"\n role=\"group\"\n aria-labelledby={this.#componentLocale.tabBasic.frontEnd.generators}\n >\n {renderChCheckboxItems(\n this.frontEnds,\n this.#frontEndCheckboxInputHandler,\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId)\n )}\n </div>\n </section>\n ];\n };\n\n #runtimeEnvironmentChangedHandler = (\n event: ChRadioGroupRenderCustomEvent<string>\n ): void => {\n this.#selectedRuntimeEnvironmentId = event.detail;\n this.#updateDataSources();\n this.#updateEnvironmentName();\n };\n\n #createCallbackHandler = async () => {\n const selectedFrontEndIds =\n this.#frontEndsCheckedMap.get(this.#selectedLanguageId) ?? [];\n\n this.createCallback({\n setAsCurrent: !!this.#setAsCurrentEnvironmentEl?.value,\n name: this.#environmentNameEl.value,\n runtime: this.#selectedRuntimeEnvironmentId,\n language: this.#languageEl.value,\n dataStores: this.#dataStoreEl.value,\n frontEnds: selectedFrontEndIds\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n if (event.detail.newSelectedId === ADVANCED_TAB_SELECTOR) {\n this.advancedTabIsVisible = true;\n // Some logic for advanced tab is done on componentDidRender lifecycle,\n // since the reference to the elements is needed.\n }\n };\n\n #updateDataSources = async () => {\n const updatedDataSources = await this.getDataSourcesCallback(\n this.#selectedLanguageId,\n this.#selectedRuntimeEnvironmentId\n );\n if (updatedDataSources?.length > 0) {\n this.dataStores = updatedDataSources;\n }\n };\n\n #updateEnvironmentName = async () => {\n if (!this.#envNameModifiedByUser) {\n this.environmentName = await this.getEnvironmentNameCallback(\n this.#selectedLanguageId,\n this.#selectedDataStoreId,\n this.#selectedRuntimeEnvironmentId\n );\n }\n };\n\n #updateFrontEnds = async () => {\n const updatedFrontEnds = await this.getFrontEndsCallback(\n this.#selectedLanguageId\n );\n if (updatedFrontEnds?.length > 0) {\n this.frontEnds = updatedFrontEnds;\n }\n };\n\n #frontEndCheckboxInputHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n const checkedValue = (event.target as HTMLChCheckboxElement).checkedValue;\n const checked = event.detail === checkedValue;\n this.#updateFrontEndsCheckedMap(checkedValue, checked);\n };\n\n /**\n * This function updates frontEndsCheckedMap, that contains the checked\n * checkboxes for each language front ends.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateFrontEndsCheckedMap = (checkboxId: string, checked: boolean) => {\n let currentState = this.#frontEndsCheckedMap.get(this.#selectedLanguageId);\n if (!currentState) {\n // first time\n currentState = [];\n this.#frontEndsCheckedMap.set(this.#selectedLanguageId, currentState);\n }\n if (checked) {\n // update by adding\n currentState.push(checkboxId);\n } else {\n // update by removing\n const checkboxIndex = currentState.findIndex(id => id === checkboxId);\n removeIndex(currentState, checkboxIndex);\n }\n };\n\n render() {\n return (\n <Host class=\"widget scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"section\">\n {/* <header class=\" spacing-body-inline \n spacing-body-block-start\"> */}\n <header\n class={{\n \"header\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"control-header\": this.isAdvanced,\n \"control-header-with-border\": !this.isAdvanced\n }}\n >\n <div\n // #environment name\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"environment-name\">\n {this.#componentLocale.name}\n </label>\n <ch-edit\n // environment name\n autoFocus\n id=\"environment-name\"\n class=\"form-input\"\n part=\"environment-name\"\n value={this.environmentName}\n placeholder={this.#componentLocale.environmentNamePlaceholder}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#environmentNameEl = el as HTMLChEditElement)\n }\n onInput={this.#envNameInputHandler}\n ></ch-edit>\n </div>\n </header>\n\n {this.isAdvanced ? (\n <ch-tab-render\n // main section\n class={{\n tab: true,\n [MAIN_SECTION_CLASSES]: true\n }}\n direction=\"block\"\n model={this.#newEnvironmentSectionsModel}\n selectedId={BASIC_TAB_SELECTOR}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={\n !this.advancedTabIsVisible && this.#tabSelectionChangedHandler\n }\n >\n <div\n slot={BASIC_TAB_SELECTOR}\n class={BASIC_SECTION_PARENT_CLASSES}\n part=\"tab-button-basic\"\n >\n {this.#renderBasic()}\n </div>\n {this.advancedTabIsVisible && (\n <div\n slot={ADVANCED_TAB_SELECTOR}\n class=\"advanced spacing-body-inline\"\n part=\"tab-button-advanced\"\n >\n {this.#renderAdvanced()}\n </div>\n )}\n </ch-tab-render>\n ) : (\n <div\n // main section\n class={MAIN_SECTION_CLASSES}\n >\n <div class={BASIC_SECTION_PARENT_CLASSES}>\n {this.#renderBasic()}\n </div>\n </div>\n )}\n\n <footer\n class={{\n \"control-footer\": this.isAdvanced,\n \"control-footer-with-border\": !this.isAdvanced,\n \"control-footer-space-between\": true,\n \"spacing-body-block-end\": true,\n \"spacing-body-inline\": true\n }}\n >\n <ch-checkbox\n // #set as current environment\n class=\"checkbox\"\n caption={this.#componentLocale.footer.setAsCurrentEnvironment}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#setAsCurrentEnvironmentEl = el as HTMLChCheckboxElement)\n }\n checkedValue=\"current-environment\"\n value={this.setAsTarget ? \"current-environment\" : \"\"}\n part=\"set-as-current-environment\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // #cancel\n class=\"button-secondary\"\n onClick={this.cancelCallback}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // #create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type CreateCallback = (\n data: NewEnvironmentData\n) => Promise<FormSubmitResult>;\n\nexport type GetDataSourcesCallback = (\n selectedLanguageId: string,\n selectedRuntimeId: string\n) => Promise<GxOption[]>;\n\nexport type GetEnvironmentNameCallback = (\n selectedLanguageId: string,\n selectedDataSourceId: string,\n selectedRuntimeId: string\n) => Promise<string | undefined>;\n\nexport type GetFrontEndsCallback = (\n selectedLanguageId: string\n) => Promise<GxOption[]>;\n\nexport interface NewEnvironmentData {\n setAsCurrent: boolean;\n name: string;\n runtime: string;\n language: string;\n dataStores: string;\n frontEnds: string[];\n}\n"],"version":3}
|