@genexus/genexus-ide-ui 1.1.48 → 1.1.50
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/{form-validation-178cf461.js → form-validation-54acc775.js} +11 -1
- package/dist/cjs/form-validation-54acc775.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-name-picker.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-name-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +61 -30
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/common/form-validation.js +9 -0
- package/dist/collection/common/form-validation.js.map +1 -1
- package/dist/collection/components/name-picker/name-picker.js +2 -1
- package/dist/collection/components/name-picker/name-picker.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/server-selector.css +4 -0
- package/dist/collection/components/team-dev/server-selector/server-selector.js +72 -32
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/components/form-validation.js +10 -1
- package/dist/components/form-validation.js.map +1 -1
- package/dist/components/gx-ide-name-picker.js +2 -1
- package/dist/components/gx-ide-name-picker.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +61 -31
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/esm/{form-validation-cd0215c6.js → form-validation-21ab3766.js} +11 -2
- package/dist/esm/form-validation-21ab3766.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
- package/dist/esm/gx-ide-json-import.entry.js +1 -1
- package/dist/esm/gx-ide-name-picker.entry.js +2 -1
- package/dist/esm/gx-ide-name-picker.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +61 -30
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/{p-4b06b578.entry.js → p-06561f7e.entry.js} +147 -121
- package/dist/genexus-ide-ui/p-06561f7e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-16a88fc3.entry.js → p-098a7288.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0ae0616f.entry.js → p-5f65a4bb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-443fc479.entry.js → p-5fe6189e.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-137a252f.entry.js → p-67cf4af1.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-b32b6b1f.js +49 -0
- package/dist/genexus-ide-ui/p-b32b6b1f.js.map +1 -0
- package/dist/genexus-ide-ui/{p-d01bbc7a.entry.js → p-cccd6565.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-b34ecbdc.entry.js → p-d24c1115.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-09a634fc.entry.js → p-db07c544.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-af975c83.entry.js → p-eacc81c8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e3bce13e.entry.js → p-ee7232f2.entry.js} +33 -32
- package/dist/genexus-ide-ui/p-ee7232f2.entry.js.map +1 -0
- package/dist/types/common/form-validation.d.ts +1 -0
- package/dist/types/components/team-dev/server-selector/server-selector.d.ts +2 -6
- package/dist/types/components.d.ts +8 -6
- package/package.json +1 -1
- package/dist/cjs/form-validation-178cf461.js.map +0 -1
- package/dist/esm/form-validation-cd0215c6.js.map +0 -1
- package/dist/genexus-ide-ui/p-289c3290.js +0 -39
- package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
- package/dist/genexus-ide-ui/p-4b06b578.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e3bce13e.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-16a88fc3.entry.js.map → p-098a7288.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0ae0616f.entry.js.map → p-5f65a4bb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-443fc479.entry.js.map → p-5fe6189e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-137a252f.entry.js.map → p-67cf4af1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d01bbc7a.entry.js.map → p-cccd6565.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-b34ecbdc.entry.js.map → p-d24c1115.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-09a634fc.entry.js.map → p-db07c544.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-af975c83.entry.js.map → p-eacc81c8.entry.js.map} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, a as getElement } from './index-eace714c.js';
|
|
2
2
|
import { g as getIconPath } from './MERCURY_ASSETS-ccf43ae3.js';
|
|
3
3
|
import { c as config } from './config-9eaeb14b.js';
|
|
4
|
+
import { v as validateControls, c as clearControlError } from './form-validation-21ab3766.js';
|
|
4
5
|
import { L as Locale } from './locale-e5107fad.js';
|
|
5
6
|
import { s as sortTabularGridColumn } from './tabular-grid-column-sort-1d503b27.js';
|
|
6
7
|
|
|
7
|
-
const serverSelectorCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content max-content 1fr max-content;row-gap:var(--mer-spacing--md);overflow:auto}:host(.new-connection){grid-template-rows:max-content 1fr}:host(.recently-used-empty){grid-template-rows:max-content 1fr}.section{display:contents}.tabular-grid{border-radius:var(--mer-border__radius--sm);overflow:hidden;overflow:auto;border-inline:1px solid var(--grid-cell__border-color)}.tabular-grid-rowset-empty{border-block-end:1px solid var(--grid-cell__border-color);overflow:hidden}.tabular-grid ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}.text-neutral-gray-400,.tabular-grid-cell.text-neutral-gray-400{color:var(--mer-color__neutral-gray--400)}.search-server{inline-size:50%}.tabular-grid-recently-used .tabular-grid-column::part(bar){--grid-cell__padding-block:0;--grid-cell__padding-inline:0}.tabular-grid.tabular-grid-recently-used{border-block-end:1px solid var(--grid-cell__border-color);max-block-size:100px}.tabular-grid-all-servers{overflow:auto}.field-block-all-servers{overflow:auto}.tabular-grid-all-servers{border-block:1px solid var(--grid-cell__border-color)}.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar){--grid-common__gap:0}.tabular-grid-wrapper{position:relative;overflow:auto}.border-patch{--tabular-grid-border-radius:4px;position:absolute;top:0;inline-size:calc(100% - var(--tabular-grid-border-radius) * 2);inset-inline-start:var(--tabular-grid-border-radius);block-size:2px;background-color:var(--items-container__bg-color);z-index:9999;border-block-start:1px solid var(--mer-border-color__on-surface)}";
|
|
8
|
+
const serverSelectorCss = ":host{display:grid;block-size:100%;grid-template-rows:max-content max-content 1fr max-content;row-gap:var(--mer-spacing--md);overflow:auto}:host(.new-connection){grid-template-rows:max-content 1fr}:host(.recently-used-empty){grid-template-rows:max-content 1fr}.section{display:contents}.tabular-grid{border-radius:var(--mer-border__radius--sm);overflow:hidden;overflow:auto;border-inline:1px solid var(--grid-cell__border-color)}.tabular-grid-rowset-empty{border-block-end:1px solid var(--grid-cell__border-color);overflow:hidden}.tabular-grid ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}.text-neutral-gray-400,.tabular-grid-cell.text-neutral-gray-400{color:var(--mer-color__neutral-gray--400)}.search-server{inline-size:50%}.tabular-grid-recently-used .tabular-grid-column::part(bar){--grid-cell__padding-block:0;--grid-cell__padding-inline:0}.tabular-grid.tabular-grid-recently-used{border-block-end:1px solid var(--grid-cell__border-color);max-block-size:100px}.tabular-grid-all-servers{overflow:auto}.field-block-all-servers{overflow:auto}.tabular-grid-all-servers{border-block:1px solid var(--grid-cell__border-color)}.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar){--grid-common__gap:0}.tabular-grid-wrapper{position:relative;overflow:auto}.border-patch{--tabular-grid-border-radius:4px;position:absolute;top:0;inline-size:calc(100% - var(--tabular-grid-border-radius) * 2);inset-inline-start:var(--tabular-grid-border-radius);block-size:2px;background-color:var(--items-container__bg-color);z-index:9999;border-block-start:1px solid var(--mer-border-color__on-surface)}.tooltip{position:absolute}";
|
|
8
9
|
|
|
9
10
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
10
11
|
if (kind === "a" && !f)
|
|
@@ -22,7 +23,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
22
23
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
23
24
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
24
25
|
};
|
|
25
|
-
var _GxIdeServerSelector_chSearchIcon, _GxIdeServerSelector_versionsSelect, _GxIdeServerSelector__componentLocale, _GxIdeServerSelector_chGridRecentlyUsedServersEl, _GxIdeServerSelector_chGridConnectedServersEl, _GxIdeServerSelector_previousSelectedRowId, _GxIdeServerSelector_selectedRowId, _GxIdeServerSelector_serverUrlEL, _GxIdeServerSelector_cancelHandler, _GxIdeServerSelector_confirmHandler, _GxIdeServerSelector_filterValueChangedHandler, _GxIdeServerSelector_inputHandler,
|
|
26
|
+
var _GxIdeServerSelector_chSearchIcon, _GxIdeServerSelector_versionsSelect, _GxIdeServerSelector__componentLocale, _GxIdeServerSelector_chGridRecentlyUsedServersEl, _GxIdeServerSelector_chGridConnectedServersEl, _GxIdeServerSelector_previousSelectedRowId, _GxIdeServerSelector_selectedRowId, _GxIdeServerSelector_serverUrlEL, _GxIdeServerSelector_serverFriendlyNameEL, _GxIdeServerSelector_cancelHandler, _GxIdeServerSelector_confirmHandler, _GxIdeServerSelector_evaluateTooltipRender, _GxIdeServerSelector_initializeValidatableControls, _GxIdeServerSelector_filterValueChangedHandler, _GxIdeServerSelector_inputHandler, _GxIdeServerSelector_enableConfirmButton, _GxIdeServerSelector_onConnectedServersRowDoubleClickHandler, _GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler, _GxIdeServerSelector_selectConnectedServersHandler, _GxIdeServerSelector_selectRecentlyUsedServersHandler, _GxIdeServerSelector_handleServerSelection, _GxIdeServerSelector_connectionTypeChangedHandler, _GxIdeServerSelector_sortTabularGridColumnCallback, _GxIdeServerSelector_renderTabularGridColumnSet, _GxIdeServerSelector_renderTooltip, _GxIdeServerSelector_renderTabularGridCommonCells, _GxIdeServerSelector_renderRecentlyUsedServersGrid, _GxIdeServerSelector_renderConnectedServersGrid, _GxIdeServerSelector_renderIcon, _GxIdeServerSelector_renderFooter;
|
|
26
27
|
const CSS_BUNDLES = [
|
|
27
28
|
"resets/box-sizing",
|
|
28
29
|
"utils/form--full",
|
|
@@ -66,25 +67,48 @@ const GxIdeServerSelector = class {
|
|
|
66
67
|
_GxIdeServerSelector_previousSelectedRowId.set(this, void 0);
|
|
67
68
|
_GxIdeServerSelector_selectedRowId.set(this, void 0);
|
|
68
69
|
_GxIdeServerSelector_serverUrlEL.set(this, void 0);
|
|
70
|
+
_GxIdeServerSelector_serverFriendlyNameEL.set(this, void 0);
|
|
69
71
|
_GxIdeServerSelector_cancelHandler.set(this, () => {
|
|
70
72
|
this.cancelCallback();
|
|
71
73
|
});
|
|
72
74
|
_GxIdeServerSelector_confirmHandler.set(this, async () => {
|
|
75
|
+
let formSubmitResult;
|
|
73
76
|
if (this.selectedConnectionType === "select") {
|
|
74
|
-
await this.selectServerCallback({
|
|
77
|
+
formSubmitResult = await this.selectServerCallback({
|
|
75
78
|
uri: this.selectedServerUri,
|
|
76
79
|
name: this.selectedServerName
|
|
77
|
-
});
|
|
80
|
+
}, this.selectedConnectionType);
|
|
78
81
|
}
|
|
79
|
-
else
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
else {
|
|
83
|
+
formSubmitResult = await this.selectServerCallback({
|
|
84
|
+
uri: this.serverUrlInputValue,
|
|
85
|
+
name: this.serverNameInputValue
|
|
86
|
+
}, this.selectedConnectionType);
|
|
87
|
+
this.validatableControls = validateControls(formSubmitResult, this.validatableControls);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// TODO: evaluate if this should be a global helper function.
|
|
91
|
+
// It is used on other dialogs as well.
|
|
92
|
+
_GxIdeServerSelector_evaluateTooltipRender.set(this, (controlReference) => {
|
|
93
|
+
var _a, _b, _c;
|
|
94
|
+
return ((_b = (_a = this.validatableControls) === null || _a === void 0 ? void 0 : _a.get(controlReference === null || controlReference === void 0 ? void 0 : controlReference.id)) === null || _b === void 0 ? void 0 : _b.hasError) &&
|
|
95
|
+
((_c = this.validatableControls.get(controlReference.id)) === null || _c === void 0 ? void 0 : _c.message) && (h("ch-tooltip", { class: "tooltip", actionElement: controlReference, blockAlign: config.tooltipSettings.blockAlign, inlineAlign: config.tooltipSettings.inlineAlign, delay: config.tooltipSettings.delay }, this.validatableControls.get(controlReference.id).message));
|
|
96
|
+
});
|
|
97
|
+
_GxIdeServerSelector_initializeValidatableControls.set(this, () => {
|
|
98
|
+
// populate validatableControls with the controls that could have errors.
|
|
99
|
+
const validatableControls = [
|
|
100
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_serverUrlEL, "f"),
|
|
101
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_serverFriendlyNameEL, "f")
|
|
102
|
+
];
|
|
103
|
+
validatableControls.forEach(validatableControl => {
|
|
104
|
+
if (validatableControl.id) {
|
|
105
|
+
this.validatableControls.set(validatableControl.id, {
|
|
106
|
+
reference: validatableControl,
|
|
107
|
+
hasError: false,
|
|
108
|
+
message: undefined
|
|
85
109
|
});
|
|
86
110
|
}
|
|
87
|
-
}
|
|
111
|
+
});
|
|
88
112
|
});
|
|
89
113
|
_GxIdeServerSelector_filterValueChangedHandler.set(this, (event) => {
|
|
90
114
|
this.filterValue = event.detail.toLowerCase();
|
|
@@ -93,19 +117,10 @@ const GxIdeServerSelector = class {
|
|
|
93
117
|
_GxIdeServerSelector_inputHandler.set(this, (event, field) => {
|
|
94
118
|
this.enableConfirmButton = false;
|
|
95
119
|
this[field] = event.detail;
|
|
120
|
+
const controlId = field === "serverUrlInputValue" ? "server-url" : "server-name";
|
|
121
|
+
clearControlError(this.validatableControls, controlId);
|
|
96
122
|
__classPrivateFieldGet(this, _GxIdeServerSelector_enableConfirmButton, "f").call(this);
|
|
97
123
|
});
|
|
98
|
-
_GxIdeServerSelector_validateUrl.set(this, (url) => {
|
|
99
|
-
try {
|
|
100
|
-
const serverUrl = new URL(url);
|
|
101
|
-
const protocolValid = (serverUrl.protocol === "http:" || serverUrl.protocol === "https:") &&
|
|
102
|
-
url.startsWith(`${serverUrl.protocol}//`);
|
|
103
|
-
return protocolValid;
|
|
104
|
-
}
|
|
105
|
-
catch (ex) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
124
|
_GxIdeServerSelector_enableConfirmButton.set(this, () => {
|
|
110
125
|
if (this.serverUrlInputValue &&
|
|
111
126
|
this.serverUrlInputValue.length > 0 &&
|
|
@@ -117,6 +132,16 @@ const GxIdeServerSelector = class {
|
|
|
117
132
|
this.enableConfirmButton = false;
|
|
118
133
|
}
|
|
119
134
|
});
|
|
135
|
+
_GxIdeServerSelector_onConnectedServersRowDoubleClickHandler.set(this, (event) => {
|
|
136
|
+
console.log("double click connected servers");
|
|
137
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_selectConnectedServersHandler, "f").call(this, event);
|
|
138
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_confirmHandler, "f").call(this);
|
|
139
|
+
});
|
|
140
|
+
_GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler.set(this, (event) => {
|
|
141
|
+
console.log("double click recently used");
|
|
142
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_selectRecentlyUsedServersHandler, "f").call(this, event);
|
|
143
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_confirmHandler, "f").call(this);
|
|
144
|
+
});
|
|
120
145
|
_GxIdeServerSelector_selectConnectedServersHandler.set(this, (event) => __classPrivateFieldGet(this, _GxIdeServerSelector_handleServerSelection, "f").call(this, event, this.connectedServersData, __classPrivateFieldGet(this, _GxIdeServerSelector_chGridRecentlyUsedServersEl, "f")));
|
|
121
146
|
_GxIdeServerSelector_selectRecentlyUsedServersHandler.set(this, (event) => __classPrivateFieldGet(this, _GxIdeServerSelector_handleServerSelection, "f").call(this, event, this.recentlyUsedServersData, __classPrivateFieldGet(this, _GxIdeServerSelector_chGridConnectedServersEl, "f")));
|
|
122
147
|
_GxIdeServerSelector_handleServerSelection.set(this, async (event, serversData, otherGridEl) => {
|
|
@@ -169,10 +194,10 @@ const GxIdeServerSelector = class {
|
|
|
169
194
|
];
|
|
170
195
|
});
|
|
171
196
|
_GxIdeServerSelector_renderRecentlyUsedServersGrid.set(this, (hideColumnName) => {
|
|
172
|
-
return (h("ch-tabular-grid", { class: "tabular-grid-recently-used tabular-grid", rowSelectionMode: "single", ref: (el) => (__classPrivateFieldSet(this, _GxIdeServerSelector_chGridRecentlyUsedServersEl, el, "f")), allowColumnReorder: false,
|
|
197
|
+
return (h("ch-tabular-grid", { class: "tabular-grid-recently-used tabular-grid", rowSelectionMode: "single", ref: (el) => (__classPrivateFieldSet(this, _GxIdeServerSelector_chGridRecentlyUsedServersEl, el, "f")), allowColumnReorder: false, onRowDoubleClicked: __classPrivateFieldGet(this, _GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler, "f"), id: "recently-used-servers" }, __classPrivateFieldGet(this, _GxIdeServerSelector_renderTabularGridColumnSet, "f").call(this, hideColumnName), this.recentlyUsedServersData.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.recentlyUsedServersData.map((server) => (h("ch-tabular-grid-row", { rowid: server.id, class: "tabular-grid-row" }, __classPrivateFieldGet(this, _GxIdeServerSelector_renderTabularGridCommonCells, "f").call(this, server)))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateIconSrc: INFO_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").emptyConnectedServers, isAnimated: true }))))));
|
|
173
198
|
});
|
|
174
199
|
_GxIdeServerSelector_renderConnectedServersGrid.set(this, () => {
|
|
175
|
-
return (h("div", { class: "tabular-grid-wrapper" }, h("div", { class: "border-patch" }), h("ch-tabular-grid", { class: "tabular-grid tabular-grid-all-servers", rowSelectionMode: "single", ref: (el) => (__classPrivateFieldSet(this, _GxIdeServerSelector_chGridConnectedServersEl, el, "f")), allowColumnReorder: false,
|
|
200
|
+
return (h("div", { class: "tabular-grid-wrapper" }, h("div", { class: "border-patch" }), h("ch-tabular-grid", { class: "tabular-grid tabular-grid-all-servers", rowSelectionMode: "single", ref: (el) => (__classPrivateFieldSet(this, _GxIdeServerSelector_chGridConnectedServersEl, el, "f")), allowColumnReorder: false, onRowDoubleClicked: __classPrivateFieldGet(this, _GxIdeServerSelector_onConnectedServersRowDoubleClickHandler, "f"), id: "all-servers" }, __classPrivateFieldGet(this, _GxIdeServerSelector_renderTabularGridColumnSet, "f").call(this), this.filteredConnectedServersData.length > 0 ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.filteredConnectedServersData.map((server) => (h("ch-tabular-grid-row", { rowid: server.id, class: "tabular-grid-row" }, __classPrivateFieldGet(this, _GxIdeServerSelector_renderTabularGridCommonCells, "f").call(this, server)))))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", { class: "tabular-grid-rowset-empty" }, h("gx-ide-empty-state", { stateIconSrc: INFO_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").emptyConnectedServers, isAnimated: true })))))));
|
|
176
201
|
});
|
|
177
202
|
_GxIdeServerSelector_renderIcon.set(this, (accessLevel) => {
|
|
178
203
|
const icon = accessLevel === "private" ? LOCK_ICON : LANGUAGE_ICON;
|
|
@@ -196,7 +221,6 @@ const GxIdeServerSelector = class {
|
|
|
196
221
|
});
|
|
197
222
|
this.enableConfirmButton = false;
|
|
198
223
|
this.isFirstSelection = true;
|
|
199
|
-
this.isValidUrl = true;
|
|
200
224
|
this.serverUrlInputValue = "";
|
|
201
225
|
this.serverNameInputValue = "";
|
|
202
226
|
this.selectedServerUri = undefined;
|
|
@@ -218,6 +242,13 @@ const GxIdeServerSelector = class {
|
|
|
218
242
|
this.userName = (_b = this.connectedServersData[0]) === null || _b === void 0 ? void 0 : _b.gxServerUsername;
|
|
219
243
|
this.filteredConnectedServersData = this.connectedServersData;
|
|
220
244
|
}
|
|
245
|
+
componentDidRender() {
|
|
246
|
+
if (this.selectedConnectionType === "new" &&
|
|
247
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_serverUrlEL, "f") &&
|
|
248
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_serverFriendlyNameEL, "f")) {
|
|
249
|
+
__classPrivateFieldGet(this, _GxIdeServerSelector_initializeValidatableControls, "f").call(this);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
221
252
|
render() {
|
|
222
253
|
const connectionTypeClass = this.selectedConnectionType === "new" && "new-connection";
|
|
223
254
|
const recentlyUsedEmptyClass = this.recentlyUsedServersData.length === 0 && "recently-used-empty";
|
|
@@ -226,16 +257,16 @@ const GxIdeServerSelector = class {
|
|
|
226
257
|
h("div", { class: "field field-block field-block-all-servers spacing-body-inline" }, h("label", { class: "label", htmlFor: "all-servers" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").allServers.title), __classPrivateFieldGet(this, _GxIdeServerSelector_renderConnectedServersGrid, "f").call(this))
|
|
227
258
|
], this.selectedConnectionType === "new" && (h("section", { class: "spacing-body-inline" }, h("div", { class: "layout layout--cols-2" }, h("div", { class: "field field-block layout__panel" }, h("label", { class: "label", htmlFor: "server-url" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").labels.serverUrl), h("ch-edit", {
|
|
228
259
|
// server url
|
|
229
|
-
class:
|
|
230
|
-
})), h("div", { class: "field field-block layout__panel" }, h("label", { class: "label", htmlFor: "server-name" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").labels.serverName), h("ch-edit", {
|
|
260
|
+
class: "input", id: "server-url", value: this.serverUrlInputValue, onInput: event => __classPrivateFieldGet(this, _GxIdeServerSelector_inputHandler, "f").call(this, event, "serverUrlInputValue"), placeholder: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").placeholders.serverUrl, ref: el => (__classPrivateFieldSet(this, _GxIdeServerSelector_serverUrlEL, el, "f"))
|
|
261
|
+
}), __classPrivateFieldGet(this, _GxIdeServerSelector_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeServerSelector_serverUrlEL, "f"))), h("div", { class: "field field-block layout__panel" }, h("label", { class: "label", htmlFor: "server-name" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").labels.serverName), h("ch-edit", {
|
|
231
262
|
// server friendly name
|
|
232
|
-
class: "input", id: "server-name", value: this.serverNameInputValue, onInput: event => __classPrivateFieldGet(this, _GxIdeServerSelector_inputHandler, "f").call(this, event, "serverNameInputValue"), placeholder: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").placeholders.serverName, maxLength: 18
|
|
233
|
-
})
|
|
263
|
+
class: "input", id: "server-name", value: this.serverNameInputValue, onInput: event => __classPrivateFieldGet(this, _GxIdeServerSelector_inputHandler, "f").call(this, event, "serverNameInputValue"), placeholder: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").placeholders.serverName, maxLength: 18, ref: el => (__classPrivateFieldSet(this, _GxIdeServerSelector_serverFriendlyNameEL, el, "f"))
|
|
264
|
+
}), __classPrivateFieldGet(this, _GxIdeServerSelector_evaluateTooltipRender, "f").call(this, __classPrivateFieldGet(this, _GxIdeServerSelector_serverFriendlyNameEL, "f")))))), __classPrivateFieldGet(this, _GxIdeServerSelector_renderFooter, "f").call(this))));
|
|
234
265
|
}
|
|
235
266
|
static get assetsDirs() { return ["gx-ide-assets/server-selector"]; }
|
|
236
267
|
get el() { return getElement(this); }
|
|
237
268
|
};
|
|
238
|
-
_GxIdeServerSelector_chSearchIcon = new WeakMap(), _GxIdeServerSelector_versionsSelect = new WeakMap(), _GxIdeServerSelector__componentLocale = new WeakMap(), _GxIdeServerSelector_chGridRecentlyUsedServersEl = new WeakMap(), _GxIdeServerSelector_chGridConnectedServersEl = new WeakMap(), _GxIdeServerSelector_previousSelectedRowId = new WeakMap(), _GxIdeServerSelector_selectedRowId = new WeakMap(), _GxIdeServerSelector_serverUrlEL = new WeakMap(), _GxIdeServerSelector_cancelHandler = new WeakMap(), _GxIdeServerSelector_confirmHandler = new WeakMap(), _GxIdeServerSelector_filterValueChangedHandler = new WeakMap(), _GxIdeServerSelector_inputHandler = new WeakMap(),
|
|
269
|
+
_GxIdeServerSelector_chSearchIcon = new WeakMap(), _GxIdeServerSelector_versionsSelect = new WeakMap(), _GxIdeServerSelector__componentLocale = new WeakMap(), _GxIdeServerSelector_chGridRecentlyUsedServersEl = new WeakMap(), _GxIdeServerSelector_chGridConnectedServersEl = new WeakMap(), _GxIdeServerSelector_previousSelectedRowId = new WeakMap(), _GxIdeServerSelector_selectedRowId = new WeakMap(), _GxIdeServerSelector_serverUrlEL = new WeakMap(), _GxIdeServerSelector_serverFriendlyNameEL = new WeakMap(), _GxIdeServerSelector_cancelHandler = new WeakMap(), _GxIdeServerSelector_confirmHandler = new WeakMap(), _GxIdeServerSelector_evaluateTooltipRender = new WeakMap(), _GxIdeServerSelector_initializeValidatableControls = new WeakMap(), _GxIdeServerSelector_filterValueChangedHandler = new WeakMap(), _GxIdeServerSelector_inputHandler = new WeakMap(), _GxIdeServerSelector_enableConfirmButton = new WeakMap(), _GxIdeServerSelector_onConnectedServersRowDoubleClickHandler = new WeakMap(), _GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler = new WeakMap(), _GxIdeServerSelector_selectConnectedServersHandler = new WeakMap(), _GxIdeServerSelector_selectRecentlyUsedServersHandler = new WeakMap(), _GxIdeServerSelector_handleServerSelection = new WeakMap(), _GxIdeServerSelector_connectionTypeChangedHandler = new WeakMap(), _GxIdeServerSelector_sortTabularGridColumnCallback = new WeakMap(), _GxIdeServerSelector_renderTabularGridColumnSet = new WeakMap(), _GxIdeServerSelector_renderTooltip = new WeakMap(), _GxIdeServerSelector_renderTabularGridCommonCells = new WeakMap(), _GxIdeServerSelector_renderRecentlyUsedServersGrid = new WeakMap(), _GxIdeServerSelector_renderConnectedServersGrid = new WeakMap(), _GxIdeServerSelector_renderIcon = new WeakMap(), _GxIdeServerSelector_renderFooter = new WeakMap();
|
|
239
270
|
GxIdeServerSelector.style = serverSelectorCss;
|
|
240
271
|
|
|
241
272
|
export { GxIdeServerSelector as gx_ide_server_selector };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-server-selector.entry.js","mappings":"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","names":[],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n ControlValidation\n // validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * State to track if the server URL is valid.\n */\n @State() isValidUrl: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void | ServerType> => {\n if (this.selectedConnectionType === \"select\") {\n await this.selectServerCallback({\n uri: this.selectedServerUri,\n name: this.selectedServerName\n });\n } else if (this.selectedConnectionType === \"new\") {\n this.isValidUrl = this.#validateUrl(this.serverUrlInputValue);\n if (this.isValidUrl) {\n await this.selectServerCallback({\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n });\n }\n }\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n this.#enableConfirmButton();\n };\n\n #validateUrl = (url: string): boolean => {\n try {\n const serverUrl = new URL(url);\n const protocolValid =\n (serverUrl.protocol === \"http:\" || serverUrl.protocol === \"https:\") &&\n url.startsWith(`${serverUrl.protocol}//`);\n return protocolValid;\n } catch (ex) {\n return false;\n }\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class={{ \"input\": true, \"input-error\": !this.isValidUrl }}\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n </div>\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ></ch-edit>\n </div>\n {!this.isValidUrl && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#serverUrlEL as unknown as HTMLButtonElement\n }\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#_componentLocale.errors.serverUrlInvalid}\n </ch-tooltip>\n )}\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerType = \"legacy\" | \"next\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-server-selector.entry.js","mappings":"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","names":[],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls();\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\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[] = [\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\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 #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onConnectedServersRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n console.log(\"double click connected servers\");\n this.#selectConnectedServersHandler(event);\n this.#confirmHandler();\n };\n\n #onRecentlyUsedRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n console.log(\"double click recently used\");\n this.#selectRecentlyUsedServersHandler(event);\n this.#confirmHandler();\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowDoubleClicked={this.#onRecentlyUsedRowDoubleClickHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowDoubleClicked={this.#onConnectedServersRowDoubleClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, g as getAssetPath, h, H as Host, a as getElement } from './index-eace714c.js';
|
|
2
2
|
import { g as getIconPath } from './MERCURY_ASSETS-ccf43ae3.js';
|
|
3
3
|
import { c as config } from './config-9eaeb14b.js';
|
|
4
|
-
import { v as validateControls } from './form-validation-
|
|
4
|
+
import { v as validateControls } from './form-validation-21ab3766.js';
|
|
5
5
|
import { L as Locale } from './locale-e5107fad.js';
|
|
6
6
|
|
|
7
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)}";
|