@genexus/genexus-ide-ui 1.1.20 → 1.1.21
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/gx-ide-share-kb.cjs.entry.js +52 -37
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +1 -1
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +3 -2
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +3 -2
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +3 -2
- package/dist/collection/components/team-dev/share-kb/share-kb.css +10 -0
- package/dist/collection/components/team-dev/share-kb/share-kb.js +51 -36
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +52 -37
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +52 -37
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.zh.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +3 -2
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.ja.json +3 -2
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.zh.json +3 -2
- package/dist/genexus-ide-ui/p-ea02e5cf.entry.js +266 -0
- package/dist/genexus-ide-ui/p-ea02e5cf.entry.js.map +1 -0
- package/dist/types/components/team-dev/share-kb/share-kb.d.ts +3 -1
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-72e346b9.entry.js +0 -249
- package/dist/genexus-ide-ui/p-72e346b9.entry.js.map +0 -1
|
@@ -4,15 +4,8 @@ import { c as config } from './config.js';
|
|
|
4
4
|
import { v as validateControls } from './form-validation.js';
|
|
5
5
|
import { L as Locale } from './locale.js';
|
|
6
6
|
|
|
7
|
-
const shareKbCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--mer-spacing--xs)}";
|
|
7
|
+
const shareKbCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--mer-spacing--xs)}.button-icon-only.button-tertiary{border-color:var(--mer-color__neutral-gray--500);border-width:var(--mer-border__width--sm);border-radius:var(--mer-border__radius--sm)}.button-icon-only:hover{border-color:var(--mer-color__neutral-gray--100)}";
|
|
8
8
|
|
|
9
|
-
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
|
-
if (kind === "a" && !f)
|
|
11
|
-
throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
13
|
-
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
-
};
|
|
16
9
|
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
17
10
|
if (kind === "m")
|
|
18
11
|
throw new TypeError("Private method is not writable");
|
|
@@ -22,7 +15,14 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
22
15
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
23
16
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
24
17
|
};
|
|
25
|
-
var
|
|
18
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
19
|
+
if (kind === "a" && !f)
|
|
20
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
21
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
22
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
23
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
24
|
+
};
|
|
25
|
+
var _GxIdeShareKb_showMoreIcon, _GxIdeShareKb_versionsSelect, _GxIdeShareKb__componentLocale, _GxIdeShareKb_kbVersions, _GxIdeShareKb_renderedFirstTime, _GxIdeShareKb_shortcutsSrc, _GxIdeShareKb_selectedKbId, _GxIdeShareKb_versionSelectedTypeEl, _GxIdeShareKb_KBNameEl, _GxIdeShareKb_cancelHandler, _GxIdeShareKb_changeConnectionHandler, _GxIdeShareKb_shareKBHandler, _GxIdeShareKb_evaluateTooltipRender, _GxIdeShareKb_initializeValidatableControls, _GxIdeShareKb_kbNameInputHandler, _GxIdeShareKb_selectedVersionHandler, _GxIdeShareKb_versionsChangedHandler, _GxIdeShareKb_renderFooter;
|
|
26
26
|
const CSS_BUNDLES = [
|
|
27
27
|
"resets/box-sizing",
|
|
28
28
|
"utils/form--full",
|
|
@@ -46,15 +46,14 @@ const GxIdeShareKb$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeShareKb exten
|
|
|
46
46
|
}));
|
|
47
47
|
_GxIdeShareKb_versionsSelect.set(this, [
|
|
48
48
|
{ value: "Trunk", caption: "Trunk Version" },
|
|
49
|
-
{ value: "All", caption: "All Versions" }
|
|
50
|
-
|
|
49
|
+
{ value: "All", caption: "All Versions" },
|
|
50
|
+
{ value: "Select", caption: "Select Version" }
|
|
51
51
|
]);
|
|
52
52
|
_GxIdeShareKb__componentLocale.set(this, void 0);
|
|
53
|
-
|
|
54
|
-
// #kbVersionsIds: string[] = [];
|
|
53
|
+
_GxIdeShareKb_kbVersions.set(this, []);
|
|
55
54
|
_GxIdeShareKb_renderedFirstTime.set(this, false);
|
|
56
55
|
_GxIdeShareKb_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/create-kb-from-server/shortcuts.json`));
|
|
57
|
-
|
|
56
|
+
_GxIdeShareKb_selectedKbId.set(this, void 0);
|
|
58
57
|
_GxIdeShareKb_versionSelectedTypeEl.set(this, void 0);
|
|
59
58
|
_GxIdeShareKb_KBNameEl.set(this, void 0);
|
|
60
59
|
_GxIdeShareKb_cancelHandler.set(this, () => {
|
|
@@ -69,13 +68,14 @@ const GxIdeShareKb$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeShareKb exten
|
|
|
69
68
|
});
|
|
70
69
|
});
|
|
71
70
|
_GxIdeShareKb_shareKBHandler.set(this, async () => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// }
|
|
71
|
+
if (this.versionSelectedType !== "Select") {
|
|
72
|
+
__classPrivateFieldSet(this, _GxIdeShareKb_kbVersions, [], "f");
|
|
73
|
+
}
|
|
76
74
|
this.shareKBCallback({
|
|
77
75
|
name: this.kbName,
|
|
78
|
-
serverUrl: this.connectionData.serverUrl
|
|
76
|
+
serverUrl: this.connectionData.serverUrl,
|
|
77
|
+
versionList: __classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f"),
|
|
78
|
+
allVersions: this.versionSelectedType === "All"
|
|
79
79
|
}).then((formSubmitResult) => {
|
|
80
80
|
this.validatableControls = validateControls(formSubmitResult, this.validatableControls);
|
|
81
81
|
});
|
|
@@ -103,22 +103,39 @@ const GxIdeShareKb$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeShareKb exten
|
|
|
103
103
|
_GxIdeShareKb_kbNameInputHandler.set(this, (event) => {
|
|
104
104
|
this.kbName = event.detail;
|
|
105
105
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
106
|
+
_GxIdeShareKb_selectedVersionHandler.set(this, async () => {
|
|
107
|
+
if (this.selectKBVersionsCallback) {
|
|
108
|
+
await this.selectKBVersionsCallback(__classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f")).then(result => {
|
|
109
|
+
if (result === null || result === void 0 ? void 0 : result.length) {
|
|
110
|
+
__classPrivateFieldSet(this, _GxIdeShareKb_kbVersions, result.map(kbVersion => ({
|
|
111
|
+
id: kbVersion.id,
|
|
112
|
+
name: kbVersion.name
|
|
113
|
+
})), "f");
|
|
114
|
+
if (result.length === 1 && __classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f")[0].id === 0) {
|
|
115
|
+
this.localKbNameInputValue = __classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f");
|
|
116
|
+
this.versionsValueInput =
|
|
117
|
+
__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsPlaceholder;
|
|
118
|
+
}
|
|
119
|
+
else if (result.length > 1) {
|
|
120
|
+
this.localKbNameInputValue = __classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f");
|
|
121
|
+
this.versionsValueInput = `${result.length.toString()} ${__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionSelectedFieldValue}`;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.localKbNameInputValue = `${__classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f")}_${__classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f")[0].name}`;
|
|
125
|
+
this.versionsValueInput = `${result[0].name} ${__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.oneVersionSelectedFieldValue}`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
});
|
|
120
131
|
_GxIdeShareKb_versionsChangedHandler.set(this, (event) => {
|
|
121
132
|
this.versionSelectedType = event.detail;
|
|
133
|
+
if (this.versionSelectedType === "Select") {
|
|
134
|
+
this.enableSelectVersionsButton = true;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.enableSelectVersionsButton = false;
|
|
138
|
+
}
|
|
122
139
|
});
|
|
123
140
|
_GxIdeShareKb_renderFooter.set(this, () => {
|
|
124
141
|
const disableShareKbButton = !this.kbName.length;
|
|
@@ -162,9 +179,7 @@ const GxIdeShareKb$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeShareKb exten
|
|
|
162
179
|
}), __classPrivateFieldGet(this, _GxIdeShareKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeShareKb_KBNameEl, "f"))), h("div", { class: "versions-container field-group" }, h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeShareKb_versionsSelect, "f"), onChange: __classPrivateFieldGet(this, _GxIdeShareKb_versionsChangedHandler, "f"), value: __classPrivateFieldGet(this, _GxIdeShareKb_versionsSelect, "f")[0].value, ref: el => (__classPrivateFieldSet(this, _GxIdeShareKb_versionSelectedTypeEl, el, "f")) }), this.versionSelectedType === "Select" && (h("div", { class: "versions-container__item field-group" }, h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "control-id-1" }, __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsLabel), h("div", { class: "versions-container__input" }, h("ch-edit", { class: "input", readonly: true, placeholder: this.enableSelectVersionsButton
|
|
163
180
|
? __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsPlaceholder
|
|
164
181
|
: __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb
|
|
165
|
-
.versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { class: "button-tertiary button-icon-only",
|
|
166
|
-
// onClick={this.#selectedVersionHandler}
|
|
167
|
-
disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeShareKb_showMoreIcon, "f"), class: "icon-sm" })))))))), __classPrivateFieldGet(this, _GxIdeShareKb_renderFooter, "f").call(this))));
|
|
182
|
+
.versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeShareKb_selectedVersionHandler, "f"), disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeShareKb_showMoreIcon, "f"), class: "icon-sm" })))))))), __classPrivateFieldGet(this, _GxIdeShareKb_renderFooter, "f").call(this))));
|
|
168
183
|
}
|
|
169
184
|
static get assetsDirs() { return ["gx-ide-assets/share-kb"]; }
|
|
170
185
|
get el() { return this; }
|
|
@@ -181,7 +196,7 @@ const GxIdeShareKb$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeShareKb exten
|
|
|
181
196
|
"versionSelectedType": [32],
|
|
182
197
|
"versionsValueInput": [32]
|
|
183
198
|
}]);
|
|
184
|
-
_GxIdeShareKb_showMoreIcon = new WeakMap(), _GxIdeShareKb_versionsSelect = new WeakMap(), _GxIdeShareKb__componentLocale = new WeakMap(), _GxIdeShareKb_renderedFirstTime = new WeakMap(), _GxIdeShareKb_shortcutsSrc = new WeakMap(), _GxIdeShareKb_versionSelectedTypeEl = new WeakMap(), _GxIdeShareKb_KBNameEl = new WeakMap(), _GxIdeShareKb_cancelHandler = new WeakMap(), _GxIdeShareKb_changeConnectionHandler = new WeakMap(), _GxIdeShareKb_shareKBHandler = new WeakMap(), _GxIdeShareKb_evaluateTooltipRender = new WeakMap(), _GxIdeShareKb_initializeValidatableControls = new WeakMap(), _GxIdeShareKb_kbNameInputHandler = new WeakMap(), _GxIdeShareKb_versionsChangedHandler = new WeakMap(), _GxIdeShareKb_renderFooter = new WeakMap();
|
|
199
|
+
_GxIdeShareKb_showMoreIcon = new WeakMap(), _GxIdeShareKb_versionsSelect = new WeakMap(), _GxIdeShareKb__componentLocale = new WeakMap(), _GxIdeShareKb_kbVersions = new WeakMap(), _GxIdeShareKb_renderedFirstTime = new WeakMap(), _GxIdeShareKb_shortcutsSrc = new WeakMap(), _GxIdeShareKb_selectedKbId = new WeakMap(), _GxIdeShareKb_versionSelectedTypeEl = new WeakMap(), _GxIdeShareKb_KBNameEl = new WeakMap(), _GxIdeShareKb_cancelHandler = new WeakMap(), _GxIdeShareKb_changeConnectionHandler = new WeakMap(), _GxIdeShareKb_shareKBHandler = new WeakMap(), _GxIdeShareKb_evaluateTooltipRender = new WeakMap(), _GxIdeShareKb_initializeValidatableControls = new WeakMap(), _GxIdeShareKb_kbNameInputHandler = new WeakMap(), _GxIdeShareKb_selectedVersionHandler = new WeakMap(), _GxIdeShareKb_versionsChangedHandler = new WeakMap(), _GxIdeShareKb_renderFooter = new WeakMap();
|
|
185
200
|
function defineCustomElement$1() {
|
|
186
201
|
if (typeof customElements === "undefined") {
|
|
187
202
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-share-kb.js","mappings":"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","names":["GxIdeShareKb"],"sources":["src/components/team-dev/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/team-dev/share-kb/share-kb.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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" }\n // { value: \"Select\", caption: \"Select Version\" } TODO: display once \"gx-ide-select-kb-versions\" is ready.\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n // uncomment #kbVersionsIds when versions selector is available\n // #kbVersionsIds: string[] = [];\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n // #selectedKbId: string;\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeShareKbElement;\n\n #KBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * The name of the KB.\n */\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Callback that must be invoked when the Share button is pressed.\n */\n @Prop() readonly shareKBCallback: (\n data: ShareKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #shareKBHandler = async (): Promise<void> => {\n // uncomment the following lines when versions selector is available\n // if (this.versionSelectedType !== \"Select\") {\n // this.#kbVersionsIds = [];\n // }\n this.shareKBCallback({\n name: this.kbName,\n serverUrl: this.connectionData.serverUrl\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#KBNameEl];\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 #kbNameInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbName = event.detail as string;\n };\n\n // #selectedVersionHandler = async () => {\n // if (this.selectKBVersionsCallback) {\n // await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n // if (result?.length) {\n // this.versionsValueInput = result.length\n // .toString()\n // .concat(this.#_componentLocale.kb.versionSelectedFieldValue);\n // this.#kbVersionsIds = result.map(kbVersion =>\n // kbVersion.id.toString()\n // );\n // }\n // });\n // }\n // };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #renderFooter = () => {\n const disableShareKbButton = !this.kbName.length;\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // share kb button\n class=\"button-primary\"\n onClick={!disableShareKbButton && this.#shareKBHandler}\n disabled={disableShareKbButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.shareKB}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\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 space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"alias\">\n {this.#_componentLocale.kb.aliasLabel}\n </label>\n <ch-edit\n // alias\n class=\"input\"\n id=\"kb-name\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#KBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#KBNameEl)}\n </div>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n // onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-share-kb.js","mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,2wBAA2wB;;;;;;;;;;;;;;;;;;;AC4B9xB,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;CACtB,CAAC;MAQWA,cAAY;;;;;;QACvB,qCAAgB,WAAW,CAAC;YAC1B,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,cAAc;SAC1B,CAAC,EAAC;QAEH,uCAAyC;YACvC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE;YAC5C,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE;YACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE;SAC/C,EAAC;QAIF,iDAAuB;QACvB,mCAA2B,EAAE,EAAC;QAC9B,0CAAqB,KAAK,EAAC;QAC3B,qCAAgB,YAAY,CAC1B,sDAAsD,CACvD,EAAC;QACF,6CAAsB;QAEtB,sDAAsD;QAItD,yCAA8B;QAgF9B,sCAAiB;YACf,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,EAAC;QAEF,gDAA2B;YACzB,IAAI,CAAC,wBAAwB,CAAC;gBAC5B,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;gBAC1D,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;gBACxC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;gBACtC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY;aAC/C,CAAC,CAAC;SACJ,EAAC;QAEF,uCAAkB;YAChB,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;gBACzC,uBAAA,IAAI,4BAAe,EAAE,MAAA,CAAC;aACvB;YACD,IAAI,CAAC,eAAe,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;gBACxC,WAAW,EAAE,uBAAA,IAAI,gCAAY;gBAC7B,WAAW,EAAE,IAAI,CAAC,mBAAmB,KAAK,KAAK;aAChD,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAkC;gBACzC,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CACzC,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,CACzB,CAAC;aACH,CAAC,CAAC;SACJ,EAAC;;;QAIF,8CAAyB,CACvB,gBAA6B;;YAE7B,OAAA,CAAA,MAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,CAAC,0CAAE,QAAQ;iBAC7D,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAA,KACxD,kBACE,KAAK,EAAC,SAAS,EACf,aAAa,EAAE,gBAAgD,EAC/D,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU,EAC7C,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW,EAC/C,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,IAElC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAC/C,CACd,CAAA;SAAA,EAAC;QAEJ,sDAAiC;;YAE/B,MAAM,mBAAmB,GAAkB,CAAC,uBAAA,IAAI,8BAAU,CAAC,CAAC;YAC5D,mBAAmB,CAAC,OAAO,CAAC,kBAAkB;gBAC5C,IAAI,kBAAkB,CAAC,EAAE,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAClD,SAAS,EAAE,kBAAkB;wBAC7B,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ,EAAC;QAEF,2CAAsB,CAAC,KAA6C;YAClE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAgB,CAAC;SACtC,EAAC;QAEF,+CAA0B;YACxB,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,MAAM,IAAI,CAAC,wBAAwB,CAAC,uBAAA,IAAI,kCAAc,CAAC,CAAC,IAAI,CAAC,MAAM;oBACjE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;wBAClB,uBAAA,IAAI,4BAAe,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK;4BAC1C,EAAE,EAAE,SAAS,CAAC,EAAE;4BAChB,IAAI,EAAE,SAAS,CAAC,IAAI;yBACrB,CAAC,CAAC,MAAA,CAAC;wBAEJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,uBAAA,IAAI,gCAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;4BACvD,IAAI,CAAC,qBAAqB,GAAG,uBAAA,IAAI,kCAAc,CAAC;4BAChD,IAAI,CAAC,kBAAkB;gCACrB,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,mBAAmB,CAAC;yBACjD;6BAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC5B,IAAI,CAAC,qBAAqB,GAAG,uBAAA,IAAI,kCAAc,CAAC;4BAChD,IAAI,CAAC,kBAAkB,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IACnD,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,yBAC5B,EAAE,CAAC;yBACJ;6BAAM;4BACL,IAAI,CAAC,qBAAqB,GAAG,GAAG,uBAAA,IAAI,kCAAc,IAChD,uBAAA,IAAI,gCAAY,CAAC,CAAC,CAAC,CAAC,IACtB,EAAE,CAAC;4BACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IACzC,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,4BAC5B,EAAE,CAAC;yBACJ;qBACF;iBACF,CAAC,CAAC;aACJ;SACF,EAAC;QAEF,+CAA0B,CAAC,KAA0B;YACnD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAuB,CAAC;YACzD,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;gBACzC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;aACzC;SACF,EAAC;QAEF,qCAAgB;YACd,MAAM,oBAAoB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACjD,QACE,cAAQ,KAAK,EAAC,8EAA8E,IAC1F,WAAK,KAAK,EAAC,gBAAgB,IACzB;;gBAEE,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,uBAAA,IAAI,mCAAe,EAC5B,IAAI,EAAC,sBAAsB;eAE1B,uBAAA,IAAI,sCAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,EAET;;gBAEE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,CAAC,oBAAoB,IAAI,uBAAA,IAAI,oCAAgB,EACtD,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAC,yBAAyB;eAE7B,uBAAA,IAAI,sCAAkB,CAAC,MAAM,CAAC,OAAO,CAC/B,CACL,CACC,EACT;SACH,EAAC;0CA/M6C,KAAK;mCAErB,IAAI,GAAG,EAA6B;;kCAU7B,EAAE;;;;;;;;IA2CxC,gBAAgB;QACd,IAAI,CAAC,mBAAmB,GAAG,uBAAA,IAAI,2CAAuB;aACnD,KAAsB,CAAC;QAE1B,uBAAA,IAAI,mDAA+B,MAAnC,IAAI,CAAiC,CAAC;KACvC;IAED,kBAAkB;QAChB,IAAI,CAAC,uBAAA,IAAI,uCAAmB,EAAE;YAC5B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,uBAAA,IAAI,sCAAkB,CAAC,aAAa,CACrC,CAAC;YACF,uBAAA,IAAI,mCAAsB,IAAI,MAAA,CAAC;SAChC;KACF;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,kCAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;KACpE;IAwID,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,oBACE,GAAG,EAAE,uBAAA,IAAI,kCAAc,EACvB,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,aAAa,GAAG,EAA4B,CAAC,GAEvC,EAEhB,eAAS,KAAK,EAAC,SAAS,IACtB,cAAQ,KAAK,EAAC,2FAA2F,IACvG,WAAK,KAAK,EAAC,mBAAmB,IAC5B,aAAO,KAAK,EAAC,OAAO,IACjB,uBAAA,IAAI,sCAAkB,CAAC,MAAM,CAAC,SAAS,CAClC,EACR,aAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAK,CAClC,EAEN,WAAK,KAAK,EAAC,mBAAmB,IAC5B,aAAO,KAAK,EAAC,OAAO,IAAE,uBAAA,IAAI,sCAAkB,CAAC,MAAM,CAAC,IAAI,CAAS,EACjE,aAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAK,CACjC,EAEN,cACE,KAAK,EAAC,+BAA+B,EACrC,OAAO,EAAE,uBAAA,IAAI,6CAAyB,IAErC,uBAAA,IAAI,sCAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,CACF,EAET,eAAS,KAAK,EAAC,+BAA+B,IAC5C,WAAK,KAAK,EAAC,mBAAmB,IAC5B,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,IACjC,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,UAAU,CAC/B,EACR;;YAEE,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,SAAS,EACZ,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,OAAO,EAAE,uBAAA,IAAI,wCAAoB,EACjC,WAAW,EAAE,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,sBAAsB,EAC7D,GAAG,EAAE,CAAC,EAAqB,MACxB,uBAAA,IAAI,0BAAa,EAAuB,MAAA,CAAC;UAEnC,EACV,uBAAA,IAAI,2CAAuB,MAA3B,IAAI,EAAwB,uBAAA,IAAI,8BAAU,CAAC,CACxC,EAEN,WAAK,KAAK,EAAC,gCAAgC,IACzC,6BACE,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,uBAAA,IAAI,oCAAgB,EAC3B,QAAQ,EAAE,uBAAA,IAAI,4CAAwB,EACtC,KAAK,EAAE,uBAAA,IAAI,oCAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EACpC,GAAG,EAAE,EAAE,KACJ,uBAAA,IAAI,uCACH,EAAmC,MAAA,CAAC,GAEjB,EAExB,IAAI,CAAC,mBAAmB,KAAK,QAAQ,KACpC,WAAK,KAAK,EAAC,sCAAsC,IAC/C,WAAK,KAAK,EAAC,mBAAmB,IAC5B,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,cAAc,IACxC,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,aAAa,CAClC,EACR,WAAK,KAAK,EAAC,2BAA2B,IACpC,eACE,KAAK,EAAC,OAAO,EACb,QAAQ,QACR,WAAW,EACT,IAAI,CAAC,0BAA0B;kBAC3B,uBAAA,IAAI,sCAAkB,CAAC,EAAE,CAAC,mBAAmB;kBAC7C,uBAAA,IAAI,sCAAkB,CAAC,EAAE;qBACtB,2BAA2B,EAEpC,KAAK,EAAE,IAAI,CAAC,kBAAkB,GACrB,EACX,cACE,KAAK,EAAC,kCAAkC,EACxC,OAAO,EAAE,uBAAA,IAAI,4CAAwB,EACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,0BAA0B,IAE1C,gBACE,GAAG,EAAE,uBAAA,IAAI,kCAAc,EACvB,KAAK,EAAC,SAAS,GACL,CACL,CACL,CACF,CACF,CACP,CACG,CACE,EAET,uBAAA,IAAI,kCAAc,MAAlB,IAAI,CAAgB,CACb,CACL,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeShareKb"],"sources":["src/components/team-dev/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/team-dev/share-kb/share-kb.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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n\n.button-icon-only.button-tertiary {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n}\n\n.button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbVersions: KBVersion[] = [];\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeShareKbElement;\n\n #KBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * The name of the KB.\n */\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Callback that must be invoked when the Share button is pressed.\n */\n @Prop() readonly shareKBCallback: (\n data: ShareKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #shareKBHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.shareKBCallback({\n name: this.kbName,\n serverUrl: this.connectionData.serverUrl,\n versionList: this.#kbVersions,\n allVersions: this.versionSelectedType === \"All\"\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#KBNameEl];\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 #kbNameInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbName = event.detail as string;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n if (this.versionSelectedType === \"Select\") {\n this.enableSelectVersionsButton = true;\n } else {\n this.enableSelectVersionsButton = false;\n }\n };\n\n #renderFooter = () => {\n const disableShareKbButton = !this.kbName.length;\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // share kb button\n class=\"button-primary\"\n onClick={!disableShareKbButton && this.#shareKBHandler}\n disabled={disableShareKbButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.shareKB}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\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 space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"alias\">\n {this.#_componentLocale.kb.aliasLabel}\n </label>\n <ch-edit\n // alias\n class=\"input\"\n id=\"kb-name\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#KBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#KBNameEl)}\n </div>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type?: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n versionList: KBVersion[];\n allVersions: boolean;\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|
|
@@ -4,15 +4,8 @@ import { c as config } from './config-1ef9d75a.js';
|
|
|
4
4
|
import { v as validateControls } from './form-validation-cd0215c6.js';
|
|
5
5
|
import { L as Locale } from './locale-e5107fad.js';
|
|
6
6
|
|
|
7
|
-
const shareKbCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--mer-spacing--xs)}";
|
|
7
|
+
const shareKbCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.section{display:contents}header{display:grid;grid-template-rows:max-content;grid-template-columns:1fr 1fr max-content}.button-change{align-self:center;justify-self:end}.main{display:grid;grid-template-columns:1fr;grid-template-rows:max-content 1fr max-content max-content}.search-kbs{inline-size:50%}.versions-container{grid-auto-rows:max-content}.versions-container__input{display:grid;grid-template-columns:1fr max-content;gap:var(--mer-spacing--xs)}.button-icon-only.button-tertiary{border-color:var(--mer-color__neutral-gray--500);border-width:var(--mer-border__width--sm);border-radius:var(--mer-border__radius--sm)}.button-icon-only:hover{border-color:var(--mer-color__neutral-gray--100)}";
|
|
8
8
|
|
|
9
|
-
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
|
-
if (kind === "a" && !f)
|
|
11
|
-
throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
13
|
-
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
-
};
|
|
16
9
|
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
17
10
|
if (kind === "m")
|
|
18
11
|
throw new TypeError("Private method is not writable");
|
|
@@ -22,7 +15,14 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
22
15
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
23
16
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
24
17
|
};
|
|
25
|
-
var
|
|
18
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
19
|
+
if (kind === "a" && !f)
|
|
20
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
21
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
22
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
23
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
24
|
+
};
|
|
25
|
+
var _GxIdeShareKb_showMoreIcon, _GxIdeShareKb_versionsSelect, _GxIdeShareKb__componentLocale, _GxIdeShareKb_kbVersions, _GxIdeShareKb_renderedFirstTime, _GxIdeShareKb_shortcutsSrc, _GxIdeShareKb_selectedKbId, _GxIdeShareKb_versionSelectedTypeEl, _GxIdeShareKb_KBNameEl, _GxIdeShareKb_cancelHandler, _GxIdeShareKb_changeConnectionHandler, _GxIdeShareKb_shareKBHandler, _GxIdeShareKb_evaluateTooltipRender, _GxIdeShareKb_initializeValidatableControls, _GxIdeShareKb_kbNameInputHandler, _GxIdeShareKb_selectedVersionHandler, _GxIdeShareKb_versionsChangedHandler, _GxIdeShareKb_renderFooter;
|
|
26
26
|
const CSS_BUNDLES = [
|
|
27
27
|
"resets/box-sizing",
|
|
28
28
|
"utils/form--full",
|
|
@@ -44,15 +44,14 @@ const GxIdeShareKb = class {
|
|
|
44
44
|
}));
|
|
45
45
|
_GxIdeShareKb_versionsSelect.set(this, [
|
|
46
46
|
{ value: "Trunk", caption: "Trunk Version" },
|
|
47
|
-
{ value: "All", caption: "All Versions" }
|
|
48
|
-
|
|
47
|
+
{ value: "All", caption: "All Versions" },
|
|
48
|
+
{ value: "Select", caption: "Select Version" }
|
|
49
49
|
]);
|
|
50
50
|
_GxIdeShareKb__componentLocale.set(this, void 0);
|
|
51
|
-
|
|
52
|
-
// #kbVersionsIds: string[] = [];
|
|
51
|
+
_GxIdeShareKb_kbVersions.set(this, []);
|
|
53
52
|
_GxIdeShareKb_renderedFirstTime.set(this, false);
|
|
54
53
|
_GxIdeShareKb_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/create-kb-from-server/shortcuts.json`));
|
|
55
|
-
|
|
54
|
+
_GxIdeShareKb_selectedKbId.set(this, void 0);
|
|
56
55
|
_GxIdeShareKb_versionSelectedTypeEl.set(this, void 0);
|
|
57
56
|
_GxIdeShareKb_KBNameEl.set(this, void 0);
|
|
58
57
|
_GxIdeShareKb_cancelHandler.set(this, () => {
|
|
@@ -67,13 +66,14 @@ const GxIdeShareKb = class {
|
|
|
67
66
|
});
|
|
68
67
|
});
|
|
69
68
|
_GxIdeShareKb_shareKBHandler.set(this, async () => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// }
|
|
69
|
+
if (this.versionSelectedType !== "Select") {
|
|
70
|
+
__classPrivateFieldSet(this, _GxIdeShareKb_kbVersions, [], "f");
|
|
71
|
+
}
|
|
74
72
|
this.shareKBCallback({
|
|
75
73
|
name: this.kbName,
|
|
76
|
-
serverUrl: this.connectionData.serverUrl
|
|
74
|
+
serverUrl: this.connectionData.serverUrl,
|
|
75
|
+
versionList: __classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f"),
|
|
76
|
+
allVersions: this.versionSelectedType === "All"
|
|
77
77
|
}).then((formSubmitResult) => {
|
|
78
78
|
this.validatableControls = validateControls(formSubmitResult, this.validatableControls);
|
|
79
79
|
});
|
|
@@ -101,22 +101,39 @@ const GxIdeShareKb = class {
|
|
|
101
101
|
_GxIdeShareKb_kbNameInputHandler.set(this, (event) => {
|
|
102
102
|
this.kbName = event.detail;
|
|
103
103
|
});
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
104
|
+
_GxIdeShareKb_selectedVersionHandler.set(this, async () => {
|
|
105
|
+
if (this.selectKBVersionsCallback) {
|
|
106
|
+
await this.selectKBVersionsCallback(__classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f")).then(result => {
|
|
107
|
+
if (result === null || result === void 0 ? void 0 : result.length) {
|
|
108
|
+
__classPrivateFieldSet(this, _GxIdeShareKb_kbVersions, result.map(kbVersion => ({
|
|
109
|
+
id: kbVersion.id,
|
|
110
|
+
name: kbVersion.name
|
|
111
|
+
})), "f");
|
|
112
|
+
if (result.length === 1 && __classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f")[0].id === 0) {
|
|
113
|
+
this.localKbNameInputValue = __classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f");
|
|
114
|
+
this.versionsValueInput =
|
|
115
|
+
__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsPlaceholder;
|
|
116
|
+
}
|
|
117
|
+
else if (result.length > 1) {
|
|
118
|
+
this.localKbNameInputValue = __classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f");
|
|
119
|
+
this.versionsValueInput = `${result.length.toString()} ${__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionSelectedFieldValue}`;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.localKbNameInputValue = `${__classPrivateFieldGet(this, _GxIdeShareKb_selectedKbId, "f")}_${__classPrivateFieldGet(this, _GxIdeShareKb_kbVersions, "f")[0].name}`;
|
|
123
|
+
this.versionsValueInput = `${result[0].name} ${__classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.oneVersionSelectedFieldValue}`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
118
129
|
_GxIdeShareKb_versionsChangedHandler.set(this, (event) => {
|
|
119
130
|
this.versionSelectedType = event.detail;
|
|
131
|
+
if (this.versionSelectedType === "Select") {
|
|
132
|
+
this.enableSelectVersionsButton = true;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.enableSelectVersionsButton = false;
|
|
136
|
+
}
|
|
120
137
|
});
|
|
121
138
|
_GxIdeShareKb_renderFooter.set(this, () => {
|
|
122
139
|
const disableShareKbButton = !this.kbName.length;
|
|
@@ -160,14 +177,12 @@ const GxIdeShareKb = class {
|
|
|
160
177
|
}), __classPrivateFieldGet(this, _GxIdeShareKb_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeShareKb_KBNameEl, "f"))), h("div", { class: "versions-container field-group" }, h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeShareKb_versionsSelect, "f"), onChange: __classPrivateFieldGet(this, _GxIdeShareKb_versionsChangedHandler, "f"), value: __classPrivateFieldGet(this, _GxIdeShareKb_versionsSelect, "f")[0].value, ref: el => (__classPrivateFieldSet(this, _GxIdeShareKb_versionSelectedTypeEl, el, "f")) }), this.versionSelectedType === "Select" && (h("div", { class: "versions-container__item field-group" }, h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "control-id-1" }, __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsLabel), h("div", { class: "versions-container__input" }, h("ch-edit", { class: "input", readonly: true, placeholder: this.enableSelectVersionsButton
|
|
161
178
|
? __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb.versionsPlaceholder
|
|
162
179
|
: __classPrivateFieldGet(this, _GxIdeShareKb__componentLocale, "f").kb
|
|
163
|
-
.versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { class: "button-tertiary button-icon-only",
|
|
164
|
-
// onClick={this.#selectedVersionHandler}
|
|
165
|
-
disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeShareKb_showMoreIcon, "f"), class: "icon-sm" })))))))), __classPrivateFieldGet(this, _GxIdeShareKb_renderFooter, "f").call(this))));
|
|
180
|
+
.versionsPlaceholderDisabled, value: this.versionsValueInput }), h("button", { class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeShareKb_selectedVersionHandler, "f"), disabled: !this.enableSelectVersionsButton }, h("ch-image", { src: __classPrivateFieldGet(this, _GxIdeShareKb_showMoreIcon, "f"), class: "icon-sm" })))))))), __classPrivateFieldGet(this, _GxIdeShareKb_renderFooter, "f").call(this))));
|
|
166
181
|
}
|
|
167
182
|
static get assetsDirs() { return ["gx-ide-assets/share-kb"]; }
|
|
168
183
|
get el() { return getElement(this); }
|
|
169
184
|
};
|
|
170
|
-
_GxIdeShareKb_showMoreIcon = new WeakMap(), _GxIdeShareKb_versionsSelect = new WeakMap(), _GxIdeShareKb__componentLocale = new WeakMap(), _GxIdeShareKb_renderedFirstTime = new WeakMap(), _GxIdeShareKb_shortcutsSrc = new WeakMap(), _GxIdeShareKb_versionSelectedTypeEl = new WeakMap(), _GxIdeShareKb_KBNameEl = new WeakMap(), _GxIdeShareKb_cancelHandler = new WeakMap(), _GxIdeShareKb_changeConnectionHandler = new WeakMap(), _GxIdeShareKb_shareKBHandler = new WeakMap(), _GxIdeShareKb_evaluateTooltipRender = new WeakMap(), _GxIdeShareKb_initializeValidatableControls = new WeakMap(), _GxIdeShareKb_kbNameInputHandler = new WeakMap(), _GxIdeShareKb_versionsChangedHandler = new WeakMap(), _GxIdeShareKb_renderFooter = new WeakMap();
|
|
185
|
+
_GxIdeShareKb_showMoreIcon = new WeakMap(), _GxIdeShareKb_versionsSelect = new WeakMap(), _GxIdeShareKb__componentLocale = new WeakMap(), _GxIdeShareKb_kbVersions = new WeakMap(), _GxIdeShareKb_renderedFirstTime = new WeakMap(), _GxIdeShareKb_shortcutsSrc = new WeakMap(), _GxIdeShareKb_selectedKbId = new WeakMap(), _GxIdeShareKb_versionSelectedTypeEl = new WeakMap(), _GxIdeShareKb_KBNameEl = new WeakMap(), _GxIdeShareKb_cancelHandler = new WeakMap(), _GxIdeShareKb_changeConnectionHandler = new WeakMap(), _GxIdeShareKb_shareKBHandler = new WeakMap(), _GxIdeShareKb_evaluateTooltipRender = new WeakMap(), _GxIdeShareKb_initializeValidatableControls = new WeakMap(), _GxIdeShareKb_kbNameInputHandler = new WeakMap(), _GxIdeShareKb_selectedVersionHandler = new WeakMap(), _GxIdeShareKb_versionsChangedHandler = new WeakMap(), _GxIdeShareKb_renderFooter = new WeakMap();
|
|
171
186
|
GxIdeShareKb.style = shareKbCss;
|
|
172
187
|
|
|
173
188
|
export { GxIdeShareKb as gx_ide_share_kb };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-share-kb.entry.js","mappings":"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","names":[],"sources":["src/components/team-dev/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/team-dev/share-kb/share-kb.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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" }\n // { value: \"Select\", caption: \"Select Version\" } TODO: display once \"gx-ide-select-kb-versions\" is ready.\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n // uncomment #kbVersionsIds when versions selector is available\n // #kbVersionsIds: string[] = [];\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n // #selectedKbId: string;\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeShareKbElement;\n\n #KBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * The name of the KB.\n */\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Callback that must be invoked when the Share button is pressed.\n */\n @Prop() readonly shareKBCallback: (\n data: ShareKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #shareKBHandler = async (): Promise<void> => {\n // uncomment the following lines when versions selector is available\n // if (this.versionSelectedType !== \"Select\") {\n // this.#kbVersionsIds = [];\n // }\n this.shareKBCallback({\n name: this.kbName,\n serverUrl: this.connectionData.serverUrl\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#KBNameEl];\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 #kbNameInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbName = event.detail as string;\n };\n\n // #selectedVersionHandler = async () => {\n // if (this.selectKBVersionsCallback) {\n // await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n // if (result?.length) {\n // this.versionsValueInput = result.length\n // .toString()\n // .concat(this.#_componentLocale.kb.versionSelectedFieldValue);\n // this.#kbVersionsIds = result.map(kbVersion =>\n // kbVersion.id.toString()\n // );\n // }\n // });\n // }\n // };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #renderFooter = () => {\n const disableShareKbButton = !this.kbName.length;\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // share kb button\n class=\"button-primary\"\n onClick={!disableShareKbButton && this.#shareKBHandler}\n disabled={disableShareKbButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.shareKB}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\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 space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"alias\">\n {this.#_componentLocale.kb.aliasLabel}\n </label>\n <ch-edit\n // alias\n class=\"input\"\n id=\"kb-name\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#KBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#KBNameEl)}\n </div>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n // onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-share-kb.entry.js","mappings":"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","names":[],"sources":["src/components/team-dev/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/team-dev/share-kb/share-kb.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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n}\n\n.button-icon-only.button-tertiary {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n}\n\n.button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbVersions: KBVersion[] = [];\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeShareKbElement;\n\n #KBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * The name of the KB.\n */\n @Prop({ mutable: true }) kbName: string;\n\n /**\n * Callback that must be invoked when the Share button is pressed.\n */\n @Prop() readonly shareKBCallback: (\n data: ShareKBData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #shareKBHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.shareKBCallback({\n name: this.kbName,\n serverUrl: this.connectionData.serverUrl,\n versionList: this.#kbVersions,\n allVersions: this.versionSelectedType === \"All\"\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs 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 #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#KBNameEl];\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 #kbNameInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.kbName = event.detail as string;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n if (this.versionSelectedType === \"Select\") {\n this.enableSelectVersionsButton = true;\n } else {\n this.enableSelectVersionsButton = false;\n }\n };\n\n #renderFooter = () => {\n const disableShareKbButton = !this.kbName.length;\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // share kb button\n class=\"button-primary\"\n onClick={!disableShareKbButton && this.#shareKBHandler}\n disabled={disableShareKbButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.shareKB}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\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 space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"alias\">\n {this.#_componentLocale.kb.aliasLabel}\n </label>\n <ch-edit\n // alias\n class=\"input\"\n id=\"kb-name\"\n value={this.kbName}\n onInput={this.#kbNameInputHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#KBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#KBNameEl)}\n </div>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type?: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n versionList: KBVersion[];\n allVersions: boolean;\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|