@genexus/genexus-ide-ui 1.1.70 → 1.1.72
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/{utilities-25be3069.js → constants-a2ac1812.js} +70 -1
- package/dist/cjs/constants-a2ac1812.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 +7 -8
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js +5 -4
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +28 -17
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +8 -7
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +6 -5
- package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +21 -21
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +25 -78
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{tabular-grid-render-c0e0738c.js → tabular-grid-render-37b7153b.js} +12 -86
- package/dist/cjs/tabular-grid-render-37b7153b.js.map +1 -0
- package/dist/collection/components/restore-version/gx-ide-assets/restore-version/shortcuts.json +15 -0
- package/dist/collection/components/restore-version/restore-version.js +6 -5
- package/dist/collection/components/restore-version/restore-version.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js +75 -28
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js +7 -6
- package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js.map +1 -1
- package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +8 -9
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
- package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +2 -2
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
- package/dist/collection/components/team-dev/history/history.css +3 -0
- package/dist/collection/components/team-dev/history/history.js +52 -91
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/server-selector/server-selector.js +9 -7
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/shortcuts.json +1 -1
- package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -2
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/components/{utilities.js → constants2.js} +68 -2
- package/dist/components/constants2.js.map +1 -0
- package/dist/components/gx-ide-connect-gx-server.js +8 -9
- package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +2 -2
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-restore-version.js +6 -5
- package/dist/components/gx-ide-restore-version.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +9 -8
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +2 -2
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +7 -6
- package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +2 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +24 -85
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/select-kb-items.js +32 -20
- package/dist/components/select-kb-items.js.map +1 -1
- package/dist/components/tabular-grid-render.js +2 -72
- package/dist/components/tabular-grid-render.js.map +1 -1
- package/dist/esm/{utilities-efeffb76.js → constants-31612239.js} +68 -2
- package/dist/esm/constants-31612239.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +8 -9
- package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-restore-version.entry.js +6 -5
- package/dist/esm/gx-ide-restore-version.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +28 -17
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +9 -8
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +2 -2
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +7 -6
- package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js +5 -5
- package/dist/esm/gx-ide-team-dev-history.entry.js +25 -78
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{tabular-grid-render-c868fa55.js → tabular-grid-render-d06826a5.js} +3 -74
- package/dist/esm/tabular-grid-render-d06826a5.js.map +1 -0
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
- package/dist/genexus-ide-ui/gx-ide-assets/restore-version/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/shortcuts.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/p-025c9aa4.entry.js +239 -0
- package/dist/genexus-ide-ui/p-025c9aa4.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-082015be.js +244 -0
- package/dist/{esm/tabular-grid-render-c868fa55.js.map → genexus-ide-ui/p-082015be.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-972dc777.entry.js → p-1351412d.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-8897c6de.entry.js → p-2d6228e8.entry.js} +201 -194
- package/dist/genexus-ide-ui/p-2d6228e8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-32b37b3d.js +163 -0
- package/dist/genexus-ide-ui/p-32b37b3d.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a543dfdb.entry.js → p-451994e8.entry.js} +104 -95
- package/dist/genexus-ide-ui/p-451994e8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-85cf50c5.entry.js → p-74f8bd45.entry.js} +78 -132
- package/dist/genexus-ide-ui/p-74f8bd45.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c3cc759d.entry.js → p-8dedbcd9.entry.js} +64 -58
- package/dist/genexus-ide-ui/p-8dedbcd9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js → p-92a027bc.entry.js} +33 -33
- package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js → p-941f470f.entry.js} +3 -1
- package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js.map → p-941f470f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-93e79d19.entry.js → p-ac79f7e8.entry.js} +59 -57
- package/dist/genexus-ide-ui/{p-93e79d19.entry.js.map → p-ac79f7e8.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js → p-c256dc59.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-5e56280c.entry.js → p-eeeb3d52.entry.js} +199 -192
- package/dist/genexus-ide-ui/p-eeeb3d52.entry.js.map +1 -0
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +12 -3
- package/dist/types/components/team-dev/history/history.d.ts +3 -12
- package/dist/types/components.d.ts +22 -20
- package/package.json +1 -1
- package/dist/cjs/tabular-grid-render-c0e0738c.js.map +0 -1
- package/dist/cjs/utilities-25be3069.js.map +0 -1
- package/dist/components/utilities.js.map +0 -1
- package/dist/esm/utilities-efeffb76.js.map +0 -1
- package/dist/genexus-ide-ui/p-22bdcf23.js +0 -322
- package/dist/genexus-ide-ui/p-22bdcf23.js.map +0 -1
- package/dist/genexus-ide-ui/p-5e56280c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-85cf50c5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8897c6de.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a105f903.entry.js +0 -234
- package/dist/genexus-ide-ui/p-a105f903.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a543dfdb.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c3cc759d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-db6c6085.js +0 -95
- package/dist/genexus-ide-ui/p-db6c6085.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-972dc777.entry.js.map → p-1351412d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js.map → p-92a027bc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js.map → p-c256dc59.entry.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
1
|
+
import { r as registerInstance, g as getAssetPath, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
2
2
|
import { g as getIconPath } from './assets-manager-7d6fc08f.js';
|
|
3
3
|
import './mer-animated-dots-75d88f7e.js';
|
|
4
4
|
import 'lit';
|
|
@@ -24,7 +24,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
24
24
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
25
25
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
26
26
|
};
|
|
27
|
-
var _GxIdeRestoreVersion_componentLocale, _GxIdeRestoreVersion_confirmHandler, _GxIdeRestoreVersion_cancelHandler, _GxIdeRestoreVersion_versionsToComboBoxItemModel, _GxIdeRestoreVersion_handleComboBoxInput, _GxIdeRestoreVersion_selectSourceVersionHandler, _GxIdeRestoreVersion_renderFooter;
|
|
27
|
+
var _GxIdeRestoreVersion_componentLocale, _GxIdeRestoreVersion_shortcutsSrc, _GxIdeRestoreVersion_confirmHandler, _GxIdeRestoreVersion_cancelHandler, _GxIdeRestoreVersion_versionsToComboBoxItemModel, _GxIdeRestoreVersion_handleComboBoxInput, _GxIdeRestoreVersion_selectSourceVersionHandler, _GxIdeRestoreVersion_renderFooter;
|
|
28
28
|
const CSS_BUNDLES = [
|
|
29
29
|
"resets/box-sizing",
|
|
30
30
|
"utils/form--full",
|
|
@@ -55,6 +55,7 @@ const GxIdeRestoreVersion = class {
|
|
|
55
55
|
constructor(hostRef) {
|
|
56
56
|
registerInstance(this, hostRef);
|
|
57
57
|
_GxIdeRestoreVersion_componentLocale.set(this, void 0);
|
|
58
|
+
_GxIdeRestoreVersion_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/restore-version/shortcuts.json`));
|
|
58
59
|
_GxIdeRestoreVersion_confirmHandler.set(this, async () => {
|
|
59
60
|
const restoreVersionData = {
|
|
60
61
|
toVersionGuid: this.toVersionInfo.guid,
|
|
@@ -93,7 +94,7 @@ const GxIdeRestoreVersion = class {
|
|
|
93
94
|
_GxIdeRestoreVersion_renderFooter.set(this, () => {
|
|
94
95
|
const disableConfirmButton = !this.selectedSourceVersionName ||
|
|
95
96
|
!this.versionsComboBoxModel.some(v => v.caption === this.selectedSourceVersionName);
|
|
96
|
-
return (h("footer", { class: "footer control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", { class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_cancelHandler, "f") }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").footer.cancel), h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_confirmHandler, "f"), disabled: disableConfirmButton }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").footer.confirm))));
|
|
97
|
+
return (h("footer", { class: "footer control-footer-with-border spacing-body" }, h("div", { class: "buttons-spacer" }, h("button", { id: "cancel-button", class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_cancelHandler, "f") }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").footer.cancel), h("button", { id: "confirm-button", class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_confirmHandler, "f"), disabled: disableConfirmButton }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").footer.confirm))));
|
|
97
98
|
});
|
|
98
99
|
this.syncEnvironments = false;
|
|
99
100
|
this.selectedSourceVersionName = "";
|
|
@@ -113,7 +114,7 @@ const GxIdeRestoreVersion = class {
|
|
|
113
114
|
__classPrivateFieldGet(this, _GxIdeRestoreVersion_versionsToComboBoxItemModel, "f").call(this, this.versions || []);
|
|
114
115
|
}
|
|
115
116
|
render() {
|
|
116
|
-
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("div", { class: "main-container spacing-body" }, h("div", null, h("p", { class: "giu-static-pill-icon-and-text" }, h("ch-image", { class: "icon-md", type: "mask", src: VERSION_ICON }), h("span", null, `${__classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").descriptions.pill} - ${this.toVersionInfo.name}`))), h("p", { class: "body-regular-m" }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").descriptions.summary), h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "versions-combo-box" }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").labels.fromVersion), h("div", { class: "versions-container" }, h("ch-combo-box-render", { class: "combo-box", id: "versions-combo-box", model: this.versionsComboBoxModel, placeholder: __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").placeHolders.fromVersion, value: this.selectedSourceVersionName, suggest: true, onInput: __classPrivateFieldGet(this, _GxIdeRestoreVersion_handleComboBoxInput, "f") }), h("button", { class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_selectSourceVersionHandler, "f") }, h("ch-image", { src: SHOW_MORE_ICON, class: "icon-sm" }))))), __classPrivateFieldGet(this, _GxIdeRestoreVersion_renderFooter, "f").call(this)));
|
|
117
|
+
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeRestoreVersion_shortcutsSrc, "f") }), h("div", { class: "main-container spacing-body" }, h("div", null, h("p", { class: "giu-static-pill-icon-and-text" }, h("ch-image", { class: "icon-md", type: "mask", src: VERSION_ICON }), h("span", null, `${__classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").descriptions.pill} - ${this.toVersionInfo.name}`))), h("p", { class: "body-regular-m" }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").descriptions.summary), h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "versions-combo-box" }, __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").labels.fromVersion), h("div", { class: "versions-container" }, h("ch-combo-box-render", { class: "combo-box", id: "versions-combo-box", model: this.versionsComboBoxModel, placeholder: __classPrivateFieldGet(this, _GxIdeRestoreVersion_componentLocale, "f").placeHolders.fromVersion, value: this.selectedSourceVersionName, suggest: true, onInput: __classPrivateFieldGet(this, _GxIdeRestoreVersion_handleComboBoxInput, "f") }), h("button", { id: "select-version-button", class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxIdeRestoreVersion_selectSourceVersionHandler, "f") }, h("ch-image", { src: SHOW_MORE_ICON, class: "icon-sm" }))))), __classPrivateFieldGet(this, _GxIdeRestoreVersion_renderFooter, "f").call(this)));
|
|
117
118
|
}
|
|
118
119
|
static get assetsDirs() { return ["gx-ide-assets/restore-version"]; }
|
|
119
120
|
get el() { return getElement(this); }
|
|
@@ -121,7 +122,7 @@ const GxIdeRestoreVersion = class {
|
|
|
121
122
|
"versions": ["versionsChanged"]
|
|
122
123
|
}; }
|
|
123
124
|
};
|
|
124
|
-
_GxIdeRestoreVersion_componentLocale = new WeakMap(), _GxIdeRestoreVersion_confirmHandler = new WeakMap(), _GxIdeRestoreVersion_cancelHandler = new WeakMap(), _GxIdeRestoreVersion_versionsToComboBoxItemModel = new WeakMap(), _GxIdeRestoreVersion_handleComboBoxInput = new WeakMap(), _GxIdeRestoreVersion_selectSourceVersionHandler = new WeakMap(), _GxIdeRestoreVersion_renderFooter = new WeakMap();
|
|
125
|
+
_GxIdeRestoreVersion_componentLocale = new WeakMap(), _GxIdeRestoreVersion_shortcutsSrc = new WeakMap(), _GxIdeRestoreVersion_confirmHandler = new WeakMap(), _GxIdeRestoreVersion_cancelHandler = new WeakMap(), _GxIdeRestoreVersion_versionsToComboBoxItemModel = new WeakMap(), _GxIdeRestoreVersion_handleComboBoxInput = new WeakMap(), _GxIdeRestoreVersion_selectSourceVersionHandler = new WeakMap(), _GxIdeRestoreVersion_renderFooter = new WeakMap();
|
|
125
126
|
GxIdeRestoreVersion.style = restoreVersionCss;
|
|
126
127
|
|
|
127
128
|
export { GxIdeRestoreVersion as gx_ide_restore_version };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-restore-version.entry.js","mappings":"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","names":[],"sources":["src/components/restore-version/restore-version.scss?tag=gx-ide-restore-version&encapsulation=shadow","src/components/restore-version/restore-version.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.main-container {\n display: grid;\n grid-template-rows: max-content max-content max-content;\n gap: var(--mer-spacing--md);\n}\n\n.versions-container {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n\n .button-icon-only {\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}\n\n.giu-static-pill-icon-and-text {\n background-color: var(--mer-surface__elevation--02);\n}\n","import {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport { Locale } from \"../../common/locale\";\nimport { KBVersion } from \"../team-dev/version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst SHOW_MORE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n});\n\nconst VERSION_FROZEN_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version-frozen\"\n});\n\nconst VERSION_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version\"\n});\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n\n// Uncomment this when the sync environments feature is available\n// const CHECKBOX_CHECKED_VALUE = \"true\";\n\n@Component({\n tag: \"gx-ide-restore-version\",\n styleUrl: \"restore-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/restore-version\"]\n})\nexport class GxIdeRestoreVersion {\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeRestoreVersionElement;\n\n /**\n * Indicates if the environments should be synchronized.\n */\n @State() syncEnvironments: boolean = false;\n\n /**\n * Input value for the source version selector.\n */\n @State() selectedSourceVersionName: string = \"\";\n\n /**\n * Selected source version from version selector.\n */\n @State() selectedSourceVersion: KBVersion[] = [];\n\n /**\n * Combo box model for the versions selector.\n */\n @State() versionsComboBoxModel: ComboBoxModel = [];\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector.\n */\n @Prop() readonly selectSourceVersionCallback!: () => Promise<KBVersion[]>;\n\n /**\n * Callback invoked by pressing the Confirm button.\n */\n @Prop() readonly confirmCallback!: (\n restoreVersionData: RestoreVersionData\n ) => Promise<void>;\n\n /**\n * Callback invoked by pressing the Cancel button.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The target version to which the restore will be made.\n */\n @Prop() readonly toVersionInfo!: KBVersion;\n\n /**\n * List of versions to show in the versions combo box.\n */\n @Prop() readonly versions!: KBVersion[];\n @Watch(\"versions\")\n versionsChanged() {\n this.#versionsToComboBoxItemModel(this.versions);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#versionsToComboBoxItemModel(this.versions || []);\n }\n\n #confirmHandler = async () => {\n const restoreVersionData = {\n toVersionGuid: this.toVersionInfo.guid,\n toVersionName: this.toVersionInfo.name,\n fromVersionGuid: this.versions.find(\n version => version.name === this.selectedSourceVersionName\n ).guid,\n fromVersionName: this.selectedSourceVersionName,\n syncEnvironments: this.syncEnvironments\n };\n await this.confirmCallback(restoreVersionData);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n #versionsToComboBoxItemModel = (versions: KBVersion[]) => {\n this.versionsComboBoxModel = versions.map(version => ({\n caption: version.name,\n value: version.guid,\n startImgSrc: version.isFrozen\n ? VERSION_FROZEN_OBJECT_ICON\n : VERSION_OBJECT_ICON\n }));\n };\n\n #handleComboBoxInput = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n this.selectedSourceVersionName = event.detail as string;\n };\n // Uncomment this when the sync environments feature is available\n // #handleCheckBoxValueChange = (\n // event: ChCheckboxCustomEvent<any> | InputEvent\n // ) => {\n // this.syncEnvironments = event.detail === CHECKBOX_CHECKED_VALUE;\n // };\n\n #selectSourceVersionHandler = async () => {\n this.selectedSourceVersion = await this.selectSourceVersionCallback();\n this.selectedSourceVersionName = this.selectedSourceVersion[0].name;\n };\n\n #renderFooter = () => {\n const disableConfirmButton =\n !this.selectedSourceVersionName ||\n !this.versionsComboBoxModel.some(\n v => v.caption === this.selectedSourceVersionName\n );\n return (\n <footer class=\"footer control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button class=\"button-secondary\" onClick={this.#cancelHandler}>\n {this.#componentLocale.footer.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n onClick={this.#confirmHandler}\n disabled={disableConfirmButton}\n >\n {this.#componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <div class=\"main-container spacing-body\">\n <div>\n <p class=\"giu-static-pill-icon-and-text\">\n <ch-image\n class=\"icon-md\"\n type=\"mask\"\n src={VERSION_ICON}\n ></ch-image>\n <span>{`${this.#componentLocale.descriptions.pill} - ${this.toVersionInfo.name}`}</span>\n </p>\n </div>\n <p class=\"body-regular-m\">\n {this.#componentLocale.descriptions.summary}\n </p>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"versions-combo-box\">\n {this.#componentLocale.labels.fromVersion}\n </label>\n <div class=\"versions-container\">\n <ch-combo-box-render\n class=\"combo-box\"\n id=\"versions-combo-box\"\n model={this.versionsComboBoxModel}\n placeholder={this.#componentLocale.placeHolders.fromVersion}\n value={this.selectedSourceVersionName}\n suggest={true}\n onInput={this.#handleComboBoxInput}\n />\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectSourceVersionHandler}\n >\n <ch-image src={SHOW_MORE_ICON} class=\"icon-sm\"></ch-image>\n </button>\n </div>\n </div>\n\n {\n // Uncomment this when the sync environments feature is available\n /* <ch-checkbox\n class=\"checkbox\"\n caption={this.#componentLocale.buttons.syncEnvironments}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n /> */\n }\n </div>\n {this.#renderFooter()}\n </Host>\n );\n }\n}\n\nexport type RestoreVersionData = {\n fromVersionName: string;\n fromVersionGuid: string;\n toVersionGuid: string;\n toVersionName: string;\n syncEnvironments: boolean;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-restore-version.entry.js","mappings":"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","names":[],"sources":["src/components/restore-version/restore-version.scss?tag=gx-ide-restore-version&encapsulation=shadow","src/components/restore-version/restore-version.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.main-container {\n display: grid;\n grid-template-rows: max-content max-content max-content;\n gap: var(--mer-spacing--md);\n}\n\n.versions-container {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n\n .button-icon-only {\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}\n\n.giu-static-pill-icon-and-text {\n background-color: var(--mer-surface__elevation--02);\n}\n","import {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n Component,\n Element,\n getAssetPath,\n h,\n Host,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\nimport { Locale } from \"../../common/locale\";\nimport { KBVersion } from \"../team-dev/version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst SHOW_MORE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n});\n\nconst VERSION_FROZEN_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version-frozen\"\n});\n\nconst VERSION_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version\"\n});\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n\n// Uncomment this when the sync environments feature is available\n// const CHECKBOX_CHECKED_VALUE = \"true\";\n\n@Component({\n tag: \"gx-ide-restore-version\",\n styleUrl: \"restore-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/restore-version\"]\n})\nexport class GxIdeRestoreVersion {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/restore-version/shortcuts.json`\n );\n @Element() el: HTMLGxIdeRestoreVersionElement;\n\n /**\n * Indicates if the environments should be synchronized.\n */\n @State() syncEnvironments: boolean = false;\n\n /**\n * Input value for the source version selector.\n */\n @State() selectedSourceVersionName: string = \"\";\n\n /**\n * Selected source version from version selector.\n */\n @State() selectedSourceVersion: KBVersion[] = [];\n\n /**\n * Combo box model for the versions selector.\n */\n @State() versionsComboBoxModel: ComboBoxModel = [];\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector.\n */\n @Prop() readonly selectSourceVersionCallback!: () => Promise<KBVersion[]>;\n\n /**\n * Callback invoked by pressing the Confirm button.\n */\n @Prop() readonly confirmCallback!: (\n restoreVersionData: RestoreVersionData\n ) => Promise<void>;\n\n /**\n * Callback invoked by pressing the Cancel button.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The target version to which the restore will be made.\n */\n @Prop() readonly toVersionInfo!: KBVersion;\n\n /**\n * List of versions to show in the versions combo box.\n */\n @Prop() readonly versions!: KBVersion[];\n @Watch(\"versions\")\n versionsChanged() {\n this.#versionsToComboBoxItemModel(this.versions);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#versionsToComboBoxItemModel(this.versions || []);\n }\n\n #confirmHandler = async () => {\n const restoreVersionData = {\n toVersionGuid: this.toVersionInfo.guid,\n toVersionName: this.toVersionInfo.name,\n fromVersionGuid: this.versions.find(\n version => version.name === this.selectedSourceVersionName\n ).guid,\n fromVersionName: this.selectedSourceVersionName,\n syncEnvironments: this.syncEnvironments\n };\n await this.confirmCallback(restoreVersionData);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n #versionsToComboBoxItemModel = (versions: KBVersion[]) => {\n this.versionsComboBoxModel = versions.map(version => ({\n caption: version.name,\n value: version.guid,\n startImgSrc: version.isFrozen\n ? VERSION_FROZEN_OBJECT_ICON\n : VERSION_OBJECT_ICON\n }));\n };\n\n #handleComboBoxInput = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n this.selectedSourceVersionName = event.detail as string;\n };\n // Uncomment this when the sync environments feature is available\n // #handleCheckBoxValueChange = (\n // event: ChCheckboxCustomEvent<any> | InputEvent\n // ) => {\n // this.syncEnvironments = event.detail === CHECKBOX_CHECKED_VALUE;\n // };\n\n #selectSourceVersionHandler = async () => {\n this.selectedSourceVersion = await this.selectSourceVersionCallback();\n this.selectedSourceVersionName = this.selectedSourceVersion[0].name;\n };\n\n #renderFooter = () => {\n const disableConfirmButton =\n !this.selectedSourceVersionName ||\n !this.versionsComboBoxModel.some(\n v => v.caption === this.selectedSourceVersionName\n );\n return (\n <footer class=\"footer control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n id=\"cancel-button\"\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.footer.cancel}\n </button>\n\n <button\n id=\"confirm-button\"\n class=\"button-primary\"\n onClick={this.#confirmHandler}\n disabled={disableConfirmButton}\n >\n {this.#componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n\n <div class=\"main-container spacing-body\">\n <div>\n <p class=\"giu-static-pill-icon-and-text\">\n <ch-image\n class=\"icon-md\"\n type=\"mask\"\n src={VERSION_ICON}\n ></ch-image>\n <span>{`${this.#componentLocale.descriptions.pill} - ${this.toVersionInfo.name}`}</span>\n </p>\n </div>\n <p class=\"body-regular-m\">\n {this.#componentLocale.descriptions.summary}\n </p>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"versions-combo-box\">\n {this.#componentLocale.labels.fromVersion}\n </label>\n <div class=\"versions-container\">\n <ch-combo-box-render\n class=\"combo-box\"\n id=\"versions-combo-box\"\n model={this.versionsComboBoxModel}\n placeholder={this.#componentLocale.placeHolders.fromVersion}\n value={this.selectedSourceVersionName}\n suggest={true}\n onInput={this.#handleComboBoxInput}\n />\n <button\n id=\"select-version-button\"\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectSourceVersionHandler}\n >\n <ch-image src={SHOW_MORE_ICON} class=\"icon-sm\"></ch-image>\n </button>\n </div>\n </div>\n\n {\n // Uncomment this when the sync environments feature is available\n /* <ch-checkbox\n class=\"checkbox\"\n caption={this.#componentLocale.buttons.syncEnvironments}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n /> */\n }\n </div>\n {this.#renderFooter()}\n </Host>\n );\n }\n}\n\nexport type RestoreVersionData = {\n fromVersionName: string;\n fromVersionGuid: string;\n toVersionGuid: string;\n toVersionName: string;\n syncEnvironments: boolean;\n};\n"],"version":3}
|
|
@@ -247,7 +247,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
247
247
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
248
248
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
249
249
|
};
|
|
250
|
-
var _GxIdeSelectKbItems__componentLocale, _GxIdeSelectKbItems_chShortcutsEl, _GxIdeSelectKbItems_selectedNodesIds, _GxIdeSelectKbItems_shortcutsSrc, _GxIdeSelectKbItems_updatedModelList, _GxIdeSelectKbItems_viewItemsAsModel, _GxIdeSelectKbItems_treeViewRenderEl, _GxIdeSelectKbItems_cancelHandler, _GxIdeSelectKbItems_checkedItemsChangeHandler, _GxIdeSelectKbItems_confirmHandler, _GxIdeSelectKbItems_contextMenuHandler, _GxIdeSelectKbItems_executeDialogAction, _GxIdeSelectKbItems_patternSearchValueChangedHandler, _GxIdeSelectKbItems_renderActionButtons, _GxIdeSelectKbItems_renderFooter, _GxIdeSelectKbItems_selectedItemsChangeHandler, _GxIdeSelectKbItems_toggleAndSelectNodesInModelItems, _GxIdeSelectKbItems_toggleCheckedNodesInModelItems, _GxIdeSelectKbItems_updateViews, _GxIdeSelectKbItems_viewItemsAsChangedHandler, _GxIdeSelectKbItems_toggleCheckboxesChangedHandler, _GxIdeSelectKbItems_scrollIntoActiveVersionNode;
|
|
250
|
+
var _GxIdeSelectKbItems_instances, _GxIdeSelectKbItems__componentLocale, _GxIdeSelectKbItems_chShortcutsEl, _GxIdeSelectKbItems_selectedNodesIds, _GxIdeSelectKbItems_shortcutsSrc, _GxIdeSelectKbItems_updatedModelList, _GxIdeSelectKbItems_viewItemsAsModel, _GxIdeSelectKbItems_treeViewRenderEl, _GxIdeSelectKbItems_loadItems, _GxIdeSelectKbItems_cancelHandler, _GxIdeSelectKbItems_checkedItemsChangeHandler, _GxIdeSelectKbItems_confirmHandler, _GxIdeSelectKbItems_contextMenuHandler, _GxIdeSelectKbItems_executeDialogAction, _GxIdeSelectKbItems_patternSearchValueChangedHandler, _GxIdeSelectKbItems_renderActionButtons, _GxIdeSelectKbItems_renderFooter, _GxIdeSelectKbItems_selectedItemsChangeHandler, _GxIdeSelectKbItems_toggleAndSelectNodesInModelItems, _GxIdeSelectKbItems_toggleCheckedNodesInModelItems, _GxIdeSelectKbItems_updateViews, _GxIdeSelectKbItems_viewItemsAsChangedHandler, _GxIdeSelectKbItems_toggleCheckboxesChangedHandler, _GxIdeSelectKbItems_scrollIntoActiveVersionNode;
|
|
251
251
|
const CSS_BUNDLES = [
|
|
252
252
|
"resets/box-sizing",
|
|
253
253
|
"chameleon/scrollbar",
|
|
@@ -269,6 +269,7 @@ const TOGGLE_CHECKBOXES_CHECKED_VALUE = "on";
|
|
|
269
269
|
const GxIdeSelectKbItems = class {
|
|
270
270
|
constructor(hostRef) {
|
|
271
271
|
registerInstance(this, hostRef);
|
|
272
|
+
_GxIdeSelectKbItems_instances.add(this);
|
|
272
273
|
_GxIdeSelectKbItems__componentLocale.set(this, void 0);
|
|
273
274
|
_GxIdeSelectKbItems_chShortcutsEl.set(this, void 0);
|
|
274
275
|
_GxIdeSelectKbItems_selectedNodesIds.set(this, []);
|
|
@@ -407,14 +408,14 @@ const GxIdeSelectKbItems = class {
|
|
|
407
408
|
_GxIdeSelectKbItems_toggleCheckboxesChangedHandler.set(this, (event) => {
|
|
408
409
|
this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;
|
|
409
410
|
});
|
|
410
|
-
_GxIdeSelectKbItems_scrollIntoActiveVersionNode.set(this, () => {
|
|
411
|
+
_GxIdeSelectKbItems_scrollIntoActiveVersionNode.set(this, async () => {
|
|
411
412
|
var _a;
|
|
412
413
|
const doScrollIntoView = __classPrivateFieldGet(this, _GxIdeSelectKbItems_treeViewRenderEl, "f") && ((_a = this.activeItemNode) === null || _a === void 0 ? void 0 : _a.path);
|
|
413
414
|
if (doScrollIntoView) {
|
|
414
|
-
__classPrivateFieldGet(this, _GxIdeSelectKbItems_treeViewRenderEl, "f").scrollIntoVisible(this.activeItemNode.path);
|
|
415
|
+
await __classPrivateFieldGet(this, _GxIdeSelectKbItems_treeViewRenderEl, "f").scrollIntoVisible(this.activeItemNode.path);
|
|
415
416
|
}
|
|
416
417
|
if (this.activeItemCallback) {
|
|
417
|
-
this.activeItemCallback();
|
|
418
|
+
await this.activeItemCallback();
|
|
418
419
|
}
|
|
419
420
|
});
|
|
420
421
|
this.activeItemNode = undefined;
|
|
@@ -426,6 +427,7 @@ const GxIdeSelectKbItems = class {
|
|
|
426
427
|
this.nodeVersionsListTreeModel = [];
|
|
427
428
|
this.searchPatternValue = null;
|
|
428
429
|
this.toggleCheckboxes = undefined;
|
|
430
|
+
this.itemsList = [];
|
|
429
431
|
this.activeItemCallback = undefined;
|
|
430
432
|
this.cancelCallback = undefined;
|
|
431
433
|
this.checkboxType = undefined;
|
|
@@ -434,21 +436,15 @@ const GxIdeSelectKbItems = class {
|
|
|
434
436
|
this.confirmCallback = undefined;
|
|
435
437
|
this.dialogActions = [];
|
|
436
438
|
this.itemContextMenuCallback = undefined;
|
|
437
|
-
this.
|
|
439
|
+
this.loadItemsCallback = undefined;
|
|
438
440
|
this.showToggleCheckboxes = true;
|
|
439
441
|
this.multiSelection = false;
|
|
440
442
|
this.singleChecks = false;
|
|
441
443
|
this.showActiveItemLink = false;
|
|
444
|
+
this.useLoader = true;
|
|
442
445
|
this.selectionChanged = undefined;
|
|
443
446
|
}
|
|
444
|
-
watchNodeListHandler(newItemsList) {
|
|
445
|
-
__classPrivateFieldGet(this, _GxIdeSelectKbItems_updateViews, "f").call(this, newItemsList);
|
|
446
|
-
// Check and update activeItem
|
|
447
|
-
this.activeItemNode = findFirstActiveNode(newItemsList);
|
|
448
|
-
this.loading = false;
|
|
449
|
-
}
|
|
450
447
|
async componentWillLoad() {
|
|
451
|
-
this.loading = true;
|
|
452
448
|
__classPrivateFieldSet(this, _GxIdeSelectKbItems__componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
453
449
|
this.toggleCheckboxes = this.showToggleCheckboxes;
|
|
454
450
|
__classPrivateFieldSet(this, _GxIdeSelectKbItems_viewItemsAsModel, [
|
|
@@ -459,6 +455,10 @@ const GxIdeSelectKbItems = class {
|
|
|
459
455
|
this.dialogActions.length > 0 ||
|
|
460
456
|
!!this.cancelCallback ||
|
|
461
457
|
!!this.confirmCallback;
|
|
458
|
+
__classPrivateFieldGet(this, _GxIdeSelectKbItems_instances, "m", _GxIdeSelectKbItems_loadItems).call(this);
|
|
459
|
+
}
|
|
460
|
+
async reloadItems() {
|
|
461
|
+
await __classPrivateFieldGet(this, _GxIdeSelectKbItems_instances, "m", _GxIdeSelectKbItems_loadItems).call(this);
|
|
462
462
|
}
|
|
463
463
|
/**
|
|
464
464
|
* Suspends or reactivates the shortcuts
|
|
@@ -503,7 +503,7 @@ const GxIdeSelectKbItems = class {
|
|
|
503
503
|
"header__second-row": true,
|
|
504
504
|
"header__second-row--one-row": !this.showActiveItemLink
|
|
505
505
|
} }, h("ch-edit", { class: "input", placeholder: __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").header.searchPatternPlaceholder, startImgSrc: SYSTEM_SEARCH_ICON, onInput: __classPrivateFieldGet(this, _GxIdeSelectKbItems_patternSearchValueChangedHandler, "f"), accessibleName: "search pattern" }), this.activeItemNode && this.showActiveItemLink && (h("div", { class: "active-item" }, h("span", { class: "active-item__icon-container" }, h("ch-image", { class: "icon-md active-item__icon", src: this.activeItemNode.iconStart ||
|
|
506
|
-
ACTIVE_ITEM_DEFAULT_ICON, containerRef: null })), __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").header.activeItem, h("button", { class: "active-item__link", onClick: __classPrivateFieldGet(this, _GxIdeSelectKbItems_scrollIntoActiveVersionNode, "f") }, this.activeItemNode.caption))))), h("div", { class: "spacing-body-inline-start trees" }, this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").loader.description, show: true })) : (h("ch-tree-view-render", { class: "tree-view", model: this.nodesVersionsViewType === "tree"
|
|
506
|
+
ACTIVE_ITEM_DEFAULT_ICON, containerRef: null })), __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").header.activeItem, h("button", { class: "active-item__link", onClick: __classPrivateFieldGet(this, _GxIdeSelectKbItems_scrollIntoActiveVersionNode, "f") }, this.activeItemNode.caption))))), h("div", { class: "spacing-body-inline-start trees" }, this.useLoader && this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeSelectKbItems__componentLocale, "f").loader.description, show: true })) : (h("ch-tree-view-render", { class: "tree-view", model: this.nodesVersionsViewType === "tree"
|
|
507
507
|
? this.nodeVersionsListTreeModel
|
|
508
508
|
: this.nodeListFlattenedTreeModel, "show-lines": this.nodesVersionsViewType === "tree" ? "all" : "none", expandableButton: this.nodesVersionsViewType === "tree" ? "decorative" : "no", onItemContextmenu: __classPrivateFieldGet(this, _GxIdeSelectKbItems_contextMenuHandler, "f"), onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeSelectKbItems_checkedItemsChangeHandler, "f"), onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeSelectKbItems_selectedItemsChangeHandler, "f"), expandOnClick: this.expandOnClick, multiSelection: this.multiSelection, filter: this.searchPatternValue, filterType: "caption", toggleCheckboxes: this.toggleCheckboxes, ref: (el) => {
|
|
509
509
|
__classPrivateFieldSet(this, _GxIdeSelectKbItems_treeViewRenderEl, el, "f");
|
|
@@ -511,11 +511,22 @@ const GxIdeSelectKbItems = class {
|
|
|
511
511
|
}
|
|
512
512
|
static get assetsDirs() { return ["gx-ide-assets/select-kb-items"]; }
|
|
513
513
|
get el() { return getElement(this); }
|
|
514
|
-
static get watchers() { return {
|
|
515
|
-
"itemsList": ["watchNodeListHandler"]
|
|
516
|
-
}; }
|
|
517
514
|
};
|
|
518
|
-
_GxIdeSelectKbItems__componentLocale = new WeakMap(), _GxIdeSelectKbItems_chShortcutsEl = new WeakMap(), _GxIdeSelectKbItems_selectedNodesIds = new WeakMap(), _GxIdeSelectKbItems_shortcutsSrc = new WeakMap(), _GxIdeSelectKbItems_updatedModelList = new WeakMap(), _GxIdeSelectKbItems_viewItemsAsModel = new WeakMap(), _GxIdeSelectKbItems_treeViewRenderEl = new WeakMap(), _GxIdeSelectKbItems_cancelHandler = new WeakMap(), _GxIdeSelectKbItems_checkedItemsChangeHandler = new WeakMap(), _GxIdeSelectKbItems_confirmHandler = new WeakMap(), _GxIdeSelectKbItems_contextMenuHandler = new WeakMap(), _GxIdeSelectKbItems_executeDialogAction = new WeakMap(), _GxIdeSelectKbItems_patternSearchValueChangedHandler = new WeakMap(), _GxIdeSelectKbItems_renderActionButtons = new WeakMap(), _GxIdeSelectKbItems_renderFooter = new WeakMap(), _GxIdeSelectKbItems_selectedItemsChangeHandler = new WeakMap(), _GxIdeSelectKbItems_toggleAndSelectNodesInModelItems = new WeakMap(), _GxIdeSelectKbItems_toggleCheckedNodesInModelItems = new WeakMap(), _GxIdeSelectKbItems_updateViews = new WeakMap(), _GxIdeSelectKbItems_viewItemsAsChangedHandler = new WeakMap(), _GxIdeSelectKbItems_toggleCheckboxesChangedHandler = new WeakMap(), _GxIdeSelectKbItems_scrollIntoActiveVersionNode = new WeakMap()
|
|
515
|
+
_GxIdeSelectKbItems__componentLocale = new WeakMap(), _GxIdeSelectKbItems_chShortcutsEl = new WeakMap(), _GxIdeSelectKbItems_selectedNodesIds = new WeakMap(), _GxIdeSelectKbItems_shortcutsSrc = new WeakMap(), _GxIdeSelectKbItems_updatedModelList = new WeakMap(), _GxIdeSelectKbItems_viewItemsAsModel = new WeakMap(), _GxIdeSelectKbItems_treeViewRenderEl = new WeakMap(), _GxIdeSelectKbItems_cancelHandler = new WeakMap(), _GxIdeSelectKbItems_checkedItemsChangeHandler = new WeakMap(), _GxIdeSelectKbItems_confirmHandler = new WeakMap(), _GxIdeSelectKbItems_contextMenuHandler = new WeakMap(), _GxIdeSelectKbItems_executeDialogAction = new WeakMap(), _GxIdeSelectKbItems_patternSearchValueChangedHandler = new WeakMap(), _GxIdeSelectKbItems_renderActionButtons = new WeakMap(), _GxIdeSelectKbItems_renderFooter = new WeakMap(), _GxIdeSelectKbItems_selectedItemsChangeHandler = new WeakMap(), _GxIdeSelectKbItems_toggleAndSelectNodesInModelItems = new WeakMap(), _GxIdeSelectKbItems_toggleCheckedNodesInModelItems = new WeakMap(), _GxIdeSelectKbItems_updateViews = new WeakMap(), _GxIdeSelectKbItems_viewItemsAsChangedHandler = new WeakMap(), _GxIdeSelectKbItems_toggleCheckboxesChangedHandler = new WeakMap(), _GxIdeSelectKbItems_scrollIntoActiveVersionNode = new WeakMap(), _GxIdeSelectKbItems_instances = new WeakSet(), _GxIdeSelectKbItems_loadItems = async function _GxIdeSelectKbItems_loadItems() {
|
|
516
|
+
try {
|
|
517
|
+
this.loading = true;
|
|
518
|
+
this.itemsList = await this.loadItemsCallback();
|
|
519
|
+
__classPrivateFieldGet(this, _GxIdeSelectKbItems_updateViews, "f").call(this, this.itemsList);
|
|
520
|
+
// Check and update activeItem
|
|
521
|
+
this.activeItemNode = findFirstActiveNode(this.itemsList);
|
|
522
|
+
}
|
|
523
|
+
catch (error) {
|
|
524
|
+
console.error("Error loading items:", error);
|
|
525
|
+
}
|
|
526
|
+
finally {
|
|
527
|
+
this.loading = false;
|
|
528
|
+
}
|
|
529
|
+
};
|
|
519
530
|
GxIdeSelectKbItems.style = selectKbItemsCss;
|
|
520
531
|
|
|
521
532
|
export { GxIdeSelectKbItems as gx_ide_select_kb_items };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-select-kb-items.entry.js","mappings":"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","names":[],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected,\n order: item.order\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n",":host {\n --search-input-max-inline-size: 400px;\n display: grid;\n block-size: 100%;\n}\n:host(:not(.has-footer)) {\n grid-template-rows: max-content 1fr;\n}\n:host(.has-footer) {\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header.has-active-item {\n grid-area: header;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n &__first-row,\n &__second-row {\n display: grid;\n grid-auto-flow: column;\n }\n &__first-row {\n column-gap: var(--field-group__column-gap);\n grid-auto-columns: max-content;\n }\n &__second-row {\n column-gap: 12px;\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size)) max-content;\n\n &--one-row {\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size));\n }\n }\n}\n\n.active-item {\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.active-item {\n &__icon-container {\n display: contents;\n }\n &__icon {\n pointer-events: none; // We do not want the icon to change the colors, since the clickable area is the caption only\n }\n &__link {\n text-decoration: underline;\n // TODO: There should be a class in Merucry to apply link styles\n color: var(--mer-text__primary);\n cursor: pointer;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n }\n}\n\n.dummy-control-block-size {\n // WA: Make as tall as a regular contorl (ie.: a input, a combo-box) in order to\n // make the label vertically aligned with this control.\n block-size: 32px;\n}\n\n.trees {\n position: relative;\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n #viewItemsAsModel: RadioGroupItemModel[];\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n this.loading = false;\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * This define if the checks are unique or not\n */\n @Prop() readonly singleChecks?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.loading = true;\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n let checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n if (node.item.checked) {\n checkedNodesIds.push(node.item.id);\n }\n });\n\n if (this.singleChecks) {\n // Detect the last change by comparing previous and new state\n let lastCheckedId: string | null = null;\n // If there are more in the new state, it was a check; if less, it was an uncheck\n if (checkedNodesIds.length > this.checkedNodesIds.length) {\n // Find the newly checked item\n lastCheckedId =\n checkedNodesIds.find(id => !this.checkedNodesIds.includes(id)) ||\n null;\n } else if (checkedNodesIds.length < this.checkedNodesIds.length) {\n // Find the unchecked item (not used in single check, but kept for clarity)\n lastCheckedId =\n this.checkedNodesIds.find(id => !checkedNodesIds.includes(id)) ||\n null;\n }\n\n // Only allow one if multiChecks is false\n if (this.singleChecks && checkedNodesIds.length > 1) {\n // If we detected the last checked, keep it; otherwise, keep the first\n checkedNodesIds = lastCheckedId\n ? [lastCheckedId]\n : [checkedNodesIds[0]];\n // Uncheck the others\n this.#treeViewRenderEl.updateItemsProperties(\n Array.from(e.detail.keys()).filter(id => id !== checkedNodesIds[0]),\n { checked: false }\n );\n }\n }\n\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\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 <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type?: ItemType;\n order?: number;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-select-kb-items.entry.js","mappings":"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","names":[],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected,\n order: item.order\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n",":host {\n --search-input-max-inline-size: 400px;\n display: grid;\n block-size: 100%;\n}\n:host(:not(.has-footer)) {\n grid-template-rows: max-content 1fr;\n}\n:host(.has-footer) {\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header.has-active-item {\n grid-area: header;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n &__first-row,\n &__second-row {\n display: grid;\n grid-auto-flow: column;\n }\n &__first-row {\n column-gap: var(--field-group__column-gap);\n grid-auto-columns: max-content;\n }\n &__second-row {\n column-gap: 12px;\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size)) max-content;\n\n &--one-row {\n grid-template-columns: minmax(150px, var(--search-input-max-inline-size));\n }\n }\n}\n\n.active-item {\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n}\n.active-item {\n &__icon-container {\n display: contents;\n }\n &__icon {\n pointer-events: none; // We do not want the icon to change the colors, since the clickable area is the caption only\n }\n &__link {\n text-decoration: underline;\n // TODO: There should be a class in Merucry to apply link styles\n color: var(--mer-text__primary);\n cursor: pointer;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n }\n}\n\n.dummy-control-block-size {\n // WA: Make as tall as a regular contorl (ie.: a input, a combo-box) in order to\n // make the label vertically aligned with this control.\n block-size: 32px;\n}\n\n.trees {\n position: relative;\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n #viewItemsAsModel: RadioGroupItemModel[];\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Represents the itemLis list model\n */\n @State() itemsList: ItemNode[] = [];\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback to load the items list model\n */\n @Prop() readonly loadItemsCallback!: () => Promise<ItemNode[]>;\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * This define if the checks are unique or not\n */\n @Prop() readonly singleChecks?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Defines whether to show a loader while loading items\n */\n @Prop() readonly useLoader?: boolean = true;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n\n this.#loadItems();\n }\n\n @Method()\n async reloadItems() {\n await this.#loadItems();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n async #loadItems() {\n try {\n this.loading = true;\n this.itemsList = await this.loadItemsCallback();\n this.#updateViews(this.itemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(this.itemsList);\n } catch (error) {\n console.error(\"Error loading items:\", error);\n } finally {\n this.loading = false;\n }\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n let checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n if (node.item.checked) {\n checkedNodesIds.push(node.item.id);\n }\n });\n\n if (this.singleChecks) {\n // Detect the last change by comparing previous and new state\n let lastCheckedId: string | null = null;\n // If there are more in the new state, it was a check; if less, it was an uncheck\n if (checkedNodesIds.length > this.checkedNodesIds.length) {\n // Find the newly checked item\n lastCheckedId =\n checkedNodesIds.find(id => !this.checkedNodesIds.includes(id)) ||\n null;\n } else if (checkedNodesIds.length < this.checkedNodesIds.length) {\n // Find the unchecked item (not used in single check, but kept for clarity)\n lastCheckedId =\n this.checkedNodesIds.find(id => !checkedNodesIds.includes(id)) ||\n null;\n }\n\n // Only allow one if multiChecks is false\n if (this.singleChecks && checkedNodesIds.length > 1) {\n // If we detected the last checked, keep it; otherwise, keep the first\n checkedNodesIds = lastCheckedId\n ? [lastCheckedId]\n : [checkedNodesIds[0]];\n // Uncheck the others\n this.#treeViewRenderEl.updateItemsProperties(\n Array.from(e.detail.keys()).filter(id => id !== checkedNodesIds[0]),\n { checked: false }\n );\n }\n }\n\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = async () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n await this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n await this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\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 <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.useLoader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n guid?: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type?: ItemType;\n order?: number;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
1
|
+
import { r as registerInstance, g as getAssetPath, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
2
2
|
import { g as getIconPath } from './assets-manager-7d6fc08f.js';
|
|
3
3
|
import './mer-animated-dots-75d88f7e.js';
|
|
4
4
|
import 'lit';
|
|
@@ -27,7 +27,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
|
|
|
27
27
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
28
28
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
29
29
|
};
|
|
30
|
-
var _GxIdeServerSelector__componentLocale, _GxIdeServerSelector_chGridAllServersEl, _GxIdeServerSelector_serverUrlEL, _GxIdeServerSelector_serverFriendlyNameEL, _GxIdeServerSelector_updatedServerName, _GxIdeServerSelector_serverNameEditElsMap, _GxIdeServerSelector_versionsSelect, _GxIdeServerSelector_cancelHandler, _GxIdeServerSelector_confirmHandler, _GxIdeServerSelector_evaluateTooltipRender, _GxIdeServerSelector_initializeValidatableControls, _GxIdeServerSelector_filterValueChangedHandler, _GxIdeServerSelector_inputHandler, _GxIdeServerSelector_handleRecentlyUsedCardClick, _GxIdeServerSelector_handleDeleteServer, _GxIdeServerSelector_onServerNameInput, _GxIdeServerSelector_onServerNameChange, _GxIdeServerSelector_enableConfirmButton, _GxIdeServerSelector_onRecentlyUsedDoubleClickHandler, _GxIdeServerSelector_onServersRowClickHandler, _GxIdeServerSelector_handleServerSelection, _GxIdeServerSelector_connectionTypeChangedHandler, _GxIdeServerSelector_sortTabularGridColumnCallback, _GxIdeServerSelector_renderTabularGridColumnSet, _GxIdeServerSelector_renderTooltip, _GxIdeServerSelector_renderServerNameErrorMessage, _GxIdeServerSelector_renderTabularGridCommonCells, _GxIdeServerSelector_renderAllServersGrid, _GxIdeServerSelector_renderIcon, _GxIdeServerSelector_renderFooter, _GxIdeServerSelector_renderRecentlyUsed, _GxIdeServerSelector_renderAllServers;
|
|
30
|
+
var _GxIdeServerSelector__componentLocale, _GxIdeServerSelector_chGridAllServersEl, _GxIdeServerSelector_serverUrlEL, _GxIdeServerSelector_serverFriendlyNameEL, _GxIdeServerSelector_updatedServerName, _GxIdeServerSelector_serverNameEditElsMap, _GxIdeServerSelector_versionsSelect, _GxIdeServerSelector_shortcutsSrc, _GxIdeServerSelector_cancelHandler, _GxIdeServerSelector_confirmHandler, _GxIdeServerSelector_evaluateTooltipRender, _GxIdeServerSelector_initializeValidatableControls, _GxIdeServerSelector_filterValueChangedHandler, _GxIdeServerSelector_inputHandler, _GxIdeServerSelector_handleRecentlyUsedCardClick, _GxIdeServerSelector_handleDeleteServer, _GxIdeServerSelector_onServerNameInput, _GxIdeServerSelector_onServerNameChange, _GxIdeServerSelector_enableConfirmButton, _GxIdeServerSelector_onRecentlyUsedDoubleClickHandler, _GxIdeServerSelector_onServersRowClickHandler, _GxIdeServerSelector_handleServerSelection, _GxIdeServerSelector_connectionTypeChangedHandler, _GxIdeServerSelector_sortTabularGridColumnCallback, _GxIdeServerSelector_renderTabularGridColumnSet, _GxIdeServerSelector_renderTooltip, _GxIdeServerSelector_renderServerNameErrorMessage, _GxIdeServerSelector_renderTabularGridCommonCells, _GxIdeServerSelector_renderAllServersGrid, _GxIdeServerSelector_renderIcon, _GxIdeServerSelector_renderFooter, _GxIdeServerSelector_renderRecentlyUsed, _GxIdeServerSelector_renderAllServers;
|
|
31
31
|
const CSS_BUNDLES = [
|
|
32
32
|
"resets/box-sizing",
|
|
33
33
|
"utils/form--full",
|
|
@@ -79,6 +79,7 @@ const GxIdeServerSelector = class {
|
|
|
79
79
|
_GxIdeServerSelector_updatedServerName.set(this, void 0);
|
|
80
80
|
_GxIdeServerSelector_serverNameEditElsMap.set(this, new Map());
|
|
81
81
|
_GxIdeServerSelector_versionsSelect.set(this, []);
|
|
82
|
+
_GxIdeServerSelector_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/server-selector/shortcuts.json`));
|
|
82
83
|
_GxIdeServerSelector_cancelHandler.set(this, () => {
|
|
83
84
|
this.cancelCallback();
|
|
84
85
|
});
|
|
@@ -227,7 +228,7 @@ const GxIdeServerSelector = class {
|
|
|
227
228
|
} })) : (serverData.serverName)),
|
|
228
229
|
h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, serverData.serverUrl, __classPrivateFieldGet(this, _GxIdeServerSelector_renderTooltip, "f").call(this, serverData.serverUrl)),
|
|
229
230
|
h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, serverData.gxServerUsername),
|
|
230
|
-
h("ch-tabular-grid-cell", { class: "tabular-grid-cell", onClick: () => __classPrivateFieldGet(this, _GxIdeServerSelector_handleDeleteServer, "f").call(this, serverData) }, h("button", { class: "button-tertiary button-icon-only", "aria-label": __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").actions.deleteServer, disabled: serverData.accessLevel === "public" }, h("ch-image", { disabled: serverData.accessLevel === "public", class: "icon-md delete-server-icon", src: DELETE_ICON })))
|
|
231
|
+
h("ch-tabular-grid-cell", { class: "tabular-grid-cell", onClick: () => __classPrivateFieldGet(this, _GxIdeServerSelector_handleDeleteServer, "f").call(this, serverData) }, h("button", { id: "delete-button", class: "button-tertiary button-icon-only", "aria-label": __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").actions.deleteServer, disabled: serverData.accessLevel === "public" }, h("ch-image", { disabled: serverData.accessLevel === "public", class: "icon-md delete-server-icon", src: DELETE_ICON })))
|
|
231
232
|
];
|
|
232
233
|
});
|
|
233
234
|
_GxIdeServerSelector_renderAllServersGrid.set(this, () => {
|
|
@@ -254,10 +255,10 @@ const GxIdeServerSelector = class {
|
|
|
254
255
|
"spacing-body-block": true
|
|
255
256
|
} }, isSelectionMode && (h("p", { class: "body-italic-m" }, "Selected: ", this.selectedServerName)), h("div", { class: "buttons-spacer" }, h("button", {
|
|
256
257
|
// cancel button
|
|
257
|
-
class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeServerSelector_cancelHandler, "f")
|
|
258
|
+
id: "cancel-button", class: "button-secondary", onClick: __classPrivateFieldGet(this, _GxIdeServerSelector_cancelHandler, "f")
|
|
258
259
|
}, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").footer.cancel), h("button", {
|
|
259
260
|
// confirm button
|
|
260
|
-
class: "button-primary", onClick: this.enableConfirmButton && __classPrivateFieldGet(this, _GxIdeServerSelector_confirmHandler, "f"), disabled: !this.enableConfirmButton
|
|
261
|
+
id: "confirm-button", class: "button-primary", onClick: this.enableConfirmButton && __classPrivateFieldGet(this, _GxIdeServerSelector_confirmHandler, "f"), disabled: !this.enableConfirmButton
|
|
261
262
|
}, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").footer.confirm))));
|
|
262
263
|
});
|
|
263
264
|
_GxIdeServerSelector_renderRecentlyUsed.set(this, () => {
|
|
@@ -267,7 +268,7 @@ const GxIdeServerSelector = class {
|
|
|
267
268
|
"layout": true,
|
|
268
269
|
"layout--cols-3": this.recentlyUsedServersData.length >= 3,
|
|
269
270
|
"layout--cols-2": this.recentlyUsedServersData.length <= 2
|
|
270
|
-
} }, this.recentlyUsedServersData.map((server) => (h("button", { class: {
|
|
271
|
+
} }, this.recentlyUsedServersData.map((server, index) => (h("button", { id: "recently-used-server-" + index, class: {
|
|
271
272
|
"layout__panel": true,
|
|
272
273
|
"recently-used-card": true,
|
|
273
274
|
"recently-used-card--selected": this.selectedRecentlyUsedId === server.id
|
|
@@ -336,7 +337,7 @@ const GxIdeServerSelector = class {
|
|
|
336
337
|
"widget elevation-1": true,
|
|
337
338
|
"new-connection": this.selectedConnectionType === "new",
|
|
338
339
|
"recently-used-empty": this.recentlyUsedServersData.length === 0
|
|
339
|
-
} }, h("ch-theme", { model: CSS_BUNDLES }), h("main", { class: "section" }, h("header", { class: "header spacing-body-block-start spacing-body-inline" }, h("div", { class: "field-group" }, h("label", { class: "body-regular-m text-neutral-gray-400" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").header.title), h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeServerSelector_versionsSelect, "f"), onChange: __classPrivateFieldGet(this, _GxIdeServerSelector_connectionTypeChangedHandler, "f"), value: __classPrivateFieldGet(this, _GxIdeServerSelector_versionsSelect, "f")[0].value }), this.selectedConnectionType === "select" && (h("ch-edit", { class: "input search-server", id: "server-name-search", startImgSrc: SEARCH_ICON, onInput: __classPrivateFieldGet(this, _GxIdeServerSelector_filterValueChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").placeholders.searchServers, accessibleName: "search server", type: "search" })))), this.selectedConnectionType === "select" && [
|
|
340
|
+
} }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeServerSelector_shortcutsSrc, "f") }), h("main", { class: "section" }, h("header", { class: "header spacing-body-block-start spacing-body-inline" }, h("div", { class: "field-group" }, h("label", { class: "body-regular-m text-neutral-gray-400" }, __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").header.title), h("ch-radio-group-render", { class: "radio-group", model: __classPrivateFieldGet(this, _GxIdeServerSelector_versionsSelect, "f"), onChange: __classPrivateFieldGet(this, _GxIdeServerSelector_connectionTypeChangedHandler, "f"), value: __classPrivateFieldGet(this, _GxIdeServerSelector_versionsSelect, "f")[0].value }), this.selectedConnectionType === "select" && (h("ch-edit", { class: "input search-server", id: "server-name-search", startImgSrc: SEARCH_ICON, onInput: __classPrivateFieldGet(this, _GxIdeServerSelector_filterValueChangedHandler, "f"), placeholder: __classPrivateFieldGet(this, _GxIdeServerSelector__componentLocale, "f").placeholders.searchServers, accessibleName: "search server", type: "search" })))), this.selectedConnectionType === "select" && [
|
|
340
341
|
__classPrivateFieldGet(this, _GxIdeServerSelector_renderRecentlyUsed, "f").call(this),
|
|
341
342
|
__classPrivateFieldGet(this, _GxIdeServerSelector_renderAllServers, "f").call(this)
|
|
342
343
|
], 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", {
|
|
@@ -353,7 +354,7 @@ const GxIdeServerSelector = class {
|
|
|
353
354
|
"serversData": ["serversDataChanged"]
|
|
354
355
|
}; }
|
|
355
356
|
};
|
|
356
|
-
_GxIdeServerSelector__componentLocale = new WeakMap(), _GxIdeServerSelector_chGridAllServersEl = new WeakMap(), _GxIdeServerSelector_serverUrlEL = new WeakMap(), _GxIdeServerSelector_serverFriendlyNameEL = new WeakMap(), _GxIdeServerSelector_updatedServerName = new WeakMap(), _GxIdeServerSelector_serverNameEditElsMap = new WeakMap(), _GxIdeServerSelector_versionsSelect = 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_handleRecentlyUsedCardClick = new WeakMap(), _GxIdeServerSelector_handleDeleteServer = new WeakMap(), _GxIdeServerSelector_onServerNameInput = new WeakMap(), _GxIdeServerSelector_onServerNameChange = new WeakMap(), _GxIdeServerSelector_enableConfirmButton = new WeakMap(), _GxIdeServerSelector_onRecentlyUsedDoubleClickHandler = new WeakMap(), _GxIdeServerSelector_onServersRowClickHandler = new WeakMap(), _GxIdeServerSelector_handleServerSelection = new WeakMap(), _GxIdeServerSelector_connectionTypeChangedHandler = new WeakMap(), _GxIdeServerSelector_sortTabularGridColumnCallback = new WeakMap(), _GxIdeServerSelector_renderTabularGridColumnSet = new WeakMap(), _GxIdeServerSelector_renderTooltip = new WeakMap(), _GxIdeServerSelector_renderServerNameErrorMessage = new WeakMap(), _GxIdeServerSelector_renderTabularGridCommonCells = new WeakMap(), _GxIdeServerSelector_renderAllServersGrid = new WeakMap(), _GxIdeServerSelector_renderIcon = new WeakMap(), _GxIdeServerSelector_renderFooter = new WeakMap(), _GxIdeServerSelector_renderRecentlyUsed = new WeakMap(), _GxIdeServerSelector_renderAllServers = new WeakMap();
|
|
357
|
+
_GxIdeServerSelector__componentLocale = new WeakMap(), _GxIdeServerSelector_chGridAllServersEl = new WeakMap(), _GxIdeServerSelector_serverUrlEL = new WeakMap(), _GxIdeServerSelector_serverFriendlyNameEL = new WeakMap(), _GxIdeServerSelector_updatedServerName = new WeakMap(), _GxIdeServerSelector_serverNameEditElsMap = new WeakMap(), _GxIdeServerSelector_versionsSelect = new WeakMap(), _GxIdeServerSelector_shortcutsSrc = 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_handleRecentlyUsedCardClick = new WeakMap(), _GxIdeServerSelector_handleDeleteServer = new WeakMap(), _GxIdeServerSelector_onServerNameInput = new WeakMap(), _GxIdeServerSelector_onServerNameChange = new WeakMap(), _GxIdeServerSelector_enableConfirmButton = new WeakMap(), _GxIdeServerSelector_onRecentlyUsedDoubleClickHandler = new WeakMap(), _GxIdeServerSelector_onServersRowClickHandler = new WeakMap(), _GxIdeServerSelector_handleServerSelection = new WeakMap(), _GxIdeServerSelector_connectionTypeChangedHandler = new WeakMap(), _GxIdeServerSelector_sortTabularGridColumnCallback = new WeakMap(), _GxIdeServerSelector_renderTabularGridColumnSet = new WeakMap(), _GxIdeServerSelector_renderTooltip = new WeakMap(), _GxIdeServerSelector_renderServerNameErrorMessage = new WeakMap(), _GxIdeServerSelector_renderTabularGridCommonCells = new WeakMap(), _GxIdeServerSelector_renderAllServersGrid = new WeakMap(), _GxIdeServerSelector_renderIcon = new WeakMap(), _GxIdeServerSelector_renderFooter = new WeakMap(), _GxIdeServerSelector_renderRecentlyUsed = new WeakMap(), _GxIdeServerSelector_renderAllServers = new WeakMap();
|
|
357
358
|
GxIdeServerSelector.style = serverSelectorCss;
|
|
358
359
|
|
|
359
360
|
export { GxIdeServerSelector as gx_ide_server_selector };
|