@genexus/genexus-ide-ui 1.1.0 → 1.1.2
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/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +347 -0
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/deployment-tool/deployment-tool.css +646 -0
- package/dist/collection/components/deployment-tool/deployment-tool.js +542 -0
- package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -0
- package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.en.json +17 -0
- package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.ja.json +17 -0
- package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.zh.json +17 -0
- package/dist/collection/components/deployment-tool/helpers.js +44 -0
- package/dist/collection/components/deployment-tool/helpers.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-deployment-tool.d.ts +11 -0
- package/dist/components/gx-ide-deployment-tool.js +387 -0
- package/dist/components/gx-ide-deployment-tool.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js +343 -0
- package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.en.json +17 -0
- package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.ja.json +17 -0
- package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.zh.json +17 -0
- package/dist/genexus-ide-ui/p-48826a6f.entry.js +393 -0
- package/dist/genexus-ide-ui/p-48826a6f.entry.js.map +1 -0
- package/dist/types/common/types.d.ts +4 -0
- package/dist/types/components/deployment-tool/deployment-tool.d.ts +89 -0
- package/dist/types/components/deployment-tool/helpers.d.ts +11 -0
- package/dist/types/components.d.ts +123 -12
- package/package.json +1 -1
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { r as t, c as e, h as a, H as i, a as r } from "./p-25a9f1d7.js";
|
|
2
|
+
|
|
3
|
+
import { L as o } from "./p-311eedf3.js";
|
|
4
|
+
|
|
5
|
+
const s = "type";
|
|
6
|
+
|
|
7
|
+
const n = "object";
|
|
8
|
+
|
|
9
|
+
const convertObjectDataToTreeItem = (t, e) => e.map((e => ({
|
|
10
|
+
id: e.id,
|
|
11
|
+
caption: e.name,
|
|
12
|
+
startImgSrc: t,
|
|
13
|
+
expanded: true,
|
|
14
|
+
leaf: true,
|
|
15
|
+
metadata: n
|
|
16
|
+
})));
|
|
17
|
+
|
|
18
|
+
const convertObjectTypeDataToTreeView = t => {
|
|
19
|
+
const e = [];
|
|
20
|
+
if (!t) {
|
|
21
|
+
return e;
|
|
22
|
+
}
|
|
23
|
+
for (const a of t) {
|
|
24
|
+
if (a.items.length > 0) {
|
|
25
|
+
e.push({
|
|
26
|
+
id: a.id,
|
|
27
|
+
caption: a.name,
|
|
28
|
+
startImgSrc: a.icon,
|
|
29
|
+
expanded: true,
|
|
30
|
+
leaf: false,
|
|
31
|
+
metadata: s,
|
|
32
|
+
items: convertObjectDataToTreeItem(a.icon, a.items)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return e;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const createArrayOfItems = (t, e) => {
|
|
40
|
+
// The resulting array with 'items' property added to each type
|
|
41
|
+
const a = e.map((e => {
|
|
42
|
+
// Filter objects that match the current type id
|
|
43
|
+
const a = t.filter((t => t.type === e.id));
|
|
44
|
+
// Return a new object type with the 'items' property
|
|
45
|
+
return Object.assign(Object.assign({}, e), {
|
|
46
|
+
items: a
|
|
47
|
+
});
|
|
48
|
+
}));
|
|
49
|
+
const i = convertObjectTypeDataToTreeView(a);
|
|
50
|
+
return i;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const l = ':root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:grid;block-size:100%;grid-template-rows:max-content 1fr max-content}.header{display:grid;padding:var(--gxg-container--padding);gap:var(--gx-ide-grid-column-gap);grid-template-columns:1fr auto;margin-block-end:var(--gx-ide-grid-row-gap)}.header :nth-child(2){align-self:self-end}.deploy-properties{display:grid;grid-auto-rows:max-content;grid-template-columns:max-content 1fr max-content;grid-template-areas:"target-types__label target-types__combo-box target-types__button-checkbox-container" "application-server__label application-server__combo-box ." ". target-type__description ." "display-name__label display-name__combo-box .";align-items:center;column-gap:var(--field__column-gap);row-gap:var(--field-group__row-gap);border-block-start:var(--section-common-border);padding-block-start:var(--mer-spacing--md)}.label.target-types{grid-area:target-types__label}#target-types{grid-area:target-types__combo-box}.target-types-button-checkbox-wrapper{grid-area:target-types__button-checkbox-container}.label.application-server{grid-area:application-server__label}#application-server{grid-area:application-server__combo-box}.target-type__description{grid-area:target-type__description}.label.display-name{grid-area:display-name__label}#display-name{grid-area:display-name__combo-box}.footer{margin-block-start:var(--gx-ide-grid-row-gap)}';
|
|
54
|
+
|
|
55
|
+
var d = undefined && undefined.__classPrivateFieldGet || function(t, e, a, i) {
|
|
56
|
+
if (a === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
57
|
+
if (typeof e === "function" ? t !== e || !i : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
58
|
+
return a === "m" ? i : a === "a" ? i.call(t) : i ? i.value : e.get(t);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var c = undefined && undefined.__classPrivateFieldSet || function(t, e, a, i, r) {
|
|
62
|
+
if (i === "m") throw new TypeError("Private method is not writable");
|
|
63
|
+
if (i === "a" && !r) throw new TypeError("Private accessor was defined without a setter");
|
|
64
|
+
if (typeof e === "function" ? t !== e || !r : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
65
|
+
return i === "a" ? r.call(t, a) : r ? r.value = a : e.set(t, a), a;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var g, f, h, b, v, p, m, u, y, x, w, k, _, z, M, W, j, T, C, I, D, E, H, O, S, L, P, F, q, R, A;
|
|
69
|
+
|
|
70
|
+
const G = [ "resets/box-sizing", "utils/form", "utils/layout", "utils/typography", "components/button", "components/checkbox", "components/edit", "components/tree-view", "components/combo-box", "components/icon", "utils/spacing" ];
|
|
71
|
+
|
|
72
|
+
const N = class {
|
|
73
|
+
constructor(i) {
|
|
74
|
+
t(this, i);
|
|
75
|
+
this.componentDidLoadEvent = e(this, "componentDidLoadEvent", 7);
|
|
76
|
+
this.componentDidRenderFirstTime = e(this, "componentDidRenderFirstTime", 7);
|
|
77
|
+
g.add(this);
|
|
78
|
+
/**
|
|
79
|
+
* The component hard-coded strings translations.
|
|
80
|
+
*/
|
|
81
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
82
|
+
f.set(this, void 0);
|
|
83
|
+
h.set(this, false);
|
|
84
|
+
b.set(this, new Map);
|
|
85
|
+
v.set(this, void 0);
|
|
86
|
+
p.set(this, void 0);
|
|
87
|
+
m.set(this, void 0);
|
|
88
|
+
u.set(this, void 0);
|
|
89
|
+
y.set(this, void 0);
|
|
90
|
+
x.set(this, void 0);
|
|
91
|
+
w.set(this, void 0);
|
|
92
|
+
k.set(this, (() => {
|
|
93
|
+
var t;
|
|
94
|
+
this.noObjects = !!(((t = this.treeModel) === null || t === void 0 ? void 0 : t.length) === 0 || !this.treeModel);
|
|
95
|
+
}));
|
|
96
|
+
_.set(this, (async t => {
|
|
97
|
+
await d(this, z, "f").call(this, t.detail);
|
|
98
|
+
d(this, W, "f").call(this);
|
|
99
|
+
}));
|
|
100
|
+
z.set(this, (async t => {
|
|
101
|
+
if (t === this.newDeploymentUnitId) {
|
|
102
|
+
await d(this, M, "f").call(this);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
c(this, v, t, "f");
|
|
106
|
+
const e = await this.getDeploymentUnitObjectsCallback(t);
|
|
107
|
+
this.addedObjects = [ ...e ];
|
|
108
|
+
this.treeModel = createArrayOfItems(this.addedObjects, this.allObjectTypes);
|
|
109
|
+
}));
|
|
110
|
+
M.set(this, (async () => {
|
|
111
|
+
if (this.createDeploymentUnitCallback) {
|
|
112
|
+
const t = await this.createDeploymentUnitCallback();
|
|
113
|
+
if (!t) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Update deployment units:
|
|
117
|
+
this.deploymentUnits.unshift(t);
|
|
118
|
+
// Update combo:
|
|
119
|
+
const e = d(this, O, "f").call(this, [ t ]);
|
|
120
|
+
d(this, x, "f").model = e.concat(d(this, x, "f").model);
|
|
121
|
+
d(this, x, "f").value = t.id;
|
|
122
|
+
// Trigger selection callback:
|
|
123
|
+
await d(this, z, "f").call(this, t.id);
|
|
124
|
+
}
|
|
125
|
+
}));
|
|
126
|
+
W.set(this, (() => {
|
|
127
|
+
if (this.optionsCallback) {
|
|
128
|
+
this.optionsCallback(d(this, x, "f").value, d(this, m, "f").value);
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
131
|
+
j.set(this, (() => {
|
|
132
|
+
const t = [ ...this.allObjectTypes ];
|
|
133
|
+
this.addedObjects.forEach((e => {
|
|
134
|
+
const a = this.allObjectTypes.find((t => t.id === e.type));
|
|
135
|
+
if (!a) {
|
|
136
|
+
t.push({
|
|
137
|
+
id: e.type,
|
|
138
|
+
name: e.type,
|
|
139
|
+
icon: ""
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}));
|
|
143
|
+
this.allObjectTypes = [ ...t ];
|
|
144
|
+
}));
|
|
145
|
+
T.set(this, (async () => {
|
|
146
|
+
if (this.addObjectsCallback) {
|
|
147
|
+
const t = await this.addObjectsCallback();
|
|
148
|
+
this.addedObjects = [ ...t, ...this.addedObjects ];
|
|
149
|
+
d(this, j, "f").call(this);
|
|
150
|
+
this.treeModel = createArrayOfItems(this.addedObjects, this.allObjectTypes);
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
C.set(this, (async () => {
|
|
154
|
+
var t, e, a;
|
|
155
|
+
const i = {
|
|
156
|
+
targetId: d(this, m, "f").value,
|
|
157
|
+
applicationServerId: (t = d(this, u, "f")) === null || t === void 0 ? void 0 : t.value,
|
|
158
|
+
displayName: (e = d(this, w, "f")) === null || e === void 0 ? void 0 : e.value,
|
|
159
|
+
generatorId: (a = d(this, y, "f")) === null || a === void 0 ? void 0 : a.value,
|
|
160
|
+
onlyPackage: d(this, p, "f") ? d(this, p, "f").value === "true" : undefined,
|
|
161
|
+
objects: this.checkedObjectsIds
|
|
162
|
+
};
|
|
163
|
+
if (this.deployCallback) {
|
|
164
|
+
this.allowDeploy = false;
|
|
165
|
+
await this.deployCallback(i);
|
|
166
|
+
this.allowDeploy = true;
|
|
167
|
+
}
|
|
168
|
+
}));
|
|
169
|
+
I.set(this, (t => {
|
|
170
|
+
const e = t.detail;
|
|
171
|
+
this.selectedDeployTargetData = this.targetTypes.find((t => t.id === e)) || null;
|
|
172
|
+
d(this, W, "f").call(this);
|
|
173
|
+
}));
|
|
174
|
+
E.set(this, (t => {
|
|
175
|
+
const e = [ ...t.detail.values() ];
|
|
176
|
+
this.checkedObjectsIds = e.filter((t => t.item.checked && t.item.metadata === n)).map((t => t.item.id));
|
|
177
|
+
}));
|
|
178
|
+
H.set(this, (() => {
|
|
179
|
+
if (this.noObjects) {
|
|
180
|
+
return a("gx-ide-empty-state", {
|
|
181
|
+
isAnimated: false,
|
|
182
|
+
stateTitle: d(this, f, "f").main.noObjectsToDisplay,
|
|
183
|
+
key: "no-objects-empty-state",
|
|
184
|
+
stateIconSrc: "objects/object"
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
return a("ch-tree-view-render", {
|
|
188
|
+
class: "tree-view",
|
|
189
|
+
model: this.treeModel,
|
|
190
|
+
dragDisabled: true,
|
|
191
|
+
dropDisabled: true,
|
|
192
|
+
toggleCheckboxes: true,
|
|
193
|
+
showLines: "last",
|
|
194
|
+
checked: true,
|
|
195
|
+
checkbox: true,
|
|
196
|
+
onCheckedItemsChange: d(this, E, "f")
|
|
197
|
+
});
|
|
198
|
+
}));
|
|
199
|
+
O.set(this, (t => t.map((t => ({
|
|
200
|
+
caption: t.name,
|
|
201
|
+
value: t.id
|
|
202
|
+
})))));
|
|
203
|
+
S.set(this, ((t, e = false) => {
|
|
204
|
+
var i;
|
|
205
|
+
const r = t.label.replace(/ /g, "-").toLowerCase();
|
|
206
|
+
const o = `label ${r}`;
|
|
207
|
+
const s = [ a("label", {
|
|
208
|
+
class: o,
|
|
209
|
+
htmlFor: r
|
|
210
|
+
}, t.label), a("ch-combo-box-render", {
|
|
211
|
+
class: "combo-box",
|
|
212
|
+
value: t.value ? t.value : (i = t.baseModel[0]) === null || i === void 0 ? void 0 : i.id,
|
|
213
|
+
model: d(this, O, "f").call(this, t.baseModel),
|
|
214
|
+
id: r,
|
|
215
|
+
ref: t.refCallback,
|
|
216
|
+
onInput: t.onInputCallback
|
|
217
|
+
}) ];
|
|
218
|
+
return e ? a("div", {
|
|
219
|
+
class: "field field-inline"
|
|
220
|
+
}, s) : s;
|
|
221
|
+
}));
|
|
222
|
+
L.set(this, (() => a("div", {
|
|
223
|
+
slot: "header",
|
|
224
|
+
class: "header control-header-with-border"
|
|
225
|
+
}, d(this, S, "f").call(this, {
|
|
226
|
+
id: "deploymentUnits",
|
|
227
|
+
baseModel: this.deploymentUnits,
|
|
228
|
+
label: d(this, f, "f").header.objectsToDeploy,
|
|
229
|
+
value: d(this, v, "f"),
|
|
230
|
+
refCallback: t => {
|
|
231
|
+
c(this, x, t, "f");
|
|
232
|
+
},
|
|
233
|
+
onInputCallback: d(this, _, "f")
|
|
234
|
+
}, true), a("button", {
|
|
235
|
+
class: "button-primary",
|
|
236
|
+
onClick: d(this, T, "f")
|
|
237
|
+
}, d(this, f, "f").main.addButton))));
|
|
238
|
+
P.set(this, (() => {
|
|
239
|
+
var t;
|
|
240
|
+
return d(this, S, "f").call(this, {
|
|
241
|
+
id: "application-servers",
|
|
242
|
+
baseModel: (t = this.selectedDeployTargetData) === null || t === void 0 ? void 0 : t.applicationServers,
|
|
243
|
+
label: d(this, f, "f").main.applicationServer,
|
|
244
|
+
refCallback: t => {
|
|
245
|
+
c(this, u, t, "f");
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}));
|
|
249
|
+
F.set(this, (() => {
|
|
250
|
+
var t;
|
|
251
|
+
return d(this, S, "f").call(this, {
|
|
252
|
+
id: "generator",
|
|
253
|
+
baseModel: (t = this.selectedDeployTargetData) === null || t === void 0 ? void 0 : t.generators,
|
|
254
|
+
label: d(this, f, "f").main.generator,
|
|
255
|
+
refCallback: t => {
|
|
256
|
+
c(this, y, t, "f");
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}));
|
|
260
|
+
q.set(this, (() => {
|
|
261
|
+
var t;
|
|
262
|
+
return [ d(this, S, "f").call(this, {
|
|
263
|
+
id: "targetTypes",
|
|
264
|
+
baseModel: this.targetTypes,
|
|
265
|
+
label: d(this, f, "f").main.targetTypes,
|
|
266
|
+
refCallback: t => {
|
|
267
|
+
c(this, m, t, "f");
|
|
268
|
+
},
|
|
269
|
+
onInputCallback: d(this, I, "f")
|
|
270
|
+
}), a("div", {
|
|
271
|
+
class: "target-types-button-checkbox-wrapper buttons-spacer"
|
|
272
|
+
}, a("button", {
|
|
273
|
+
class: "button-tertiary button-icon-only",
|
|
274
|
+
onClick: d(this, W, "f")
|
|
275
|
+
}, a("ch-image", {
|
|
276
|
+
class: "icon-md",
|
|
277
|
+
src: "system/settings/primary"
|
|
278
|
+
})), a("ch-checkbox", {
|
|
279
|
+
disabled: !((t = this.selectedDeployTargetData) === null || t === void 0 ? void 0 : t.canCreatePackage),
|
|
280
|
+
class: "checkbox",
|
|
281
|
+
caption: d(this, f, "f").main.onlyPackageLabel,
|
|
282
|
+
part: "only-package-checkbox",
|
|
283
|
+
checkedValue: "true",
|
|
284
|
+
value: "false",
|
|
285
|
+
ref: t => c(this, p, t, "f")
|
|
286
|
+
})) ];
|
|
287
|
+
}));
|
|
288
|
+
R.set(this, (() => [ a("label", {
|
|
289
|
+
class: "label display-name",
|
|
290
|
+
htmlFor: "display-name"
|
|
291
|
+
}, d(this, f, "f").main.displayName), a("ch-edit", {
|
|
292
|
+
class: "input",
|
|
293
|
+
id: "display-name",
|
|
294
|
+
ref: t => {
|
|
295
|
+
if (t) {
|
|
296
|
+
c(this, w, t, "f");
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}) ]));
|
|
300
|
+
A.set(this, (() => a("div", {
|
|
301
|
+
slot: "footer-end",
|
|
302
|
+
class: "footer control-footer-with-border"
|
|
303
|
+
}, a("button", {
|
|
304
|
+
class: "button-primary",
|
|
305
|
+
onClick: d(this, C, "f"),
|
|
306
|
+
disabled: !this.allowDeploy
|
|
307
|
+
}, d(this, f, "f").main.deployButton))));
|
|
308
|
+
this.checkedObjectsIds = [];
|
|
309
|
+
this.noObjects = undefined;
|
|
310
|
+
this.selectedDeployTargetData = null;
|
|
311
|
+
this.addedObjects = [];
|
|
312
|
+
this.allObjectTypes = undefined;
|
|
313
|
+
this.treeModel = [];
|
|
314
|
+
this.allowDeploy = true;
|
|
315
|
+
this.deploymentUnits = undefined;
|
|
316
|
+
this.targetTypes = undefined;
|
|
317
|
+
this.newDeploymentUnitId = undefined;
|
|
318
|
+
this.objectTypes = undefined;
|
|
319
|
+
this.getDeploymentUnitObjectsCallback = undefined;
|
|
320
|
+
this.optionsCallback = undefined;
|
|
321
|
+
this.deployCallback = undefined;
|
|
322
|
+
this.addObjectsCallback = undefined;
|
|
323
|
+
this.createDeploymentUnitCallback = undefined;
|
|
324
|
+
}
|
|
325
|
+
watchTreeModelHandler(t) {
|
|
326
|
+
this.noObjects = !!(t.length === 0 || !t);
|
|
327
|
+
}
|
|
328
|
+
watchObjectTypesHandler(t) {
|
|
329
|
+
d(this, g, "m", D).call(this, t);
|
|
330
|
+
}
|
|
331
|
+
async componentWillLoad() {
|
|
332
|
+
c(this, f, await o.getComponentStrings(this.el), "f");
|
|
333
|
+
this.selectedDeployTargetData = this.targetTypes[0];
|
|
334
|
+
this.allObjectTypes = [ ...this.objectTypes ];
|
|
335
|
+
d(this, k, "f").call(this);
|
|
336
|
+
d(this, g, "m", D).call(this, this.allObjectTypes);
|
|
337
|
+
if (this.deploymentUnits.length > 0) {
|
|
338
|
+
d(this, z, "f").call(this, this.deploymentUnits[0].id);
|
|
339
|
+
if (this.targetTypes.length > 0 && this.optionsCallback) {
|
|
340
|
+
this.optionsCallback(this.deploymentUnits[0].id, this.targetTypes[0].id);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
componentDidRender() {
|
|
345
|
+
if (!d(this, h, "f")) {
|
|
346
|
+
this.componentDidRenderFirstTime.emit(d(this, f, "f").componentName);
|
|
347
|
+
c(this, h, true, "f");
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
render() {
|
|
351
|
+
var t, e, r, o, s, n;
|
|
352
|
+
return a(i, {
|
|
353
|
+
class: "widget spacing-body"
|
|
354
|
+
}, a("ch-theme", {
|
|
355
|
+
model: G
|
|
356
|
+
}), d(this, L, "f").call(this), a("div", {
|
|
357
|
+
class: "container-wrapper"
|
|
358
|
+
}, d(this, H, "f").call(this)), a("div", {
|
|
359
|
+
class: "deploy-properties"
|
|
360
|
+
}, d(this, q, "f").call(this), ((e = (t = this.selectedDeployTargetData) === null || t === void 0 ? void 0 : t.applicationServers) === null || e === void 0 ? void 0 : e.length) > 0 ? d(this, P, "f").call(this) : [], ((o = (r = this.selectedDeployTargetData) === null || r === void 0 ? void 0 : r.generators) === null || o === void 0 ? void 0 : o.length) > 0 ? d(this, F, "f").call(this) : [], a("p", {
|
|
361
|
+
class: "body-italic-s target-type__description"
|
|
362
|
+
}, (s = this.selectedDeployTargetData) === null || s === void 0 ? void 0 : s.description), ((n = this.selectedDeployTargetData) === null || n === void 0 ? void 0 : n.canDefineDisplayName) ? d(this, R, "f").call(this) : []), d(this, A, "f").call(this));
|
|
363
|
+
}
|
|
364
|
+
static get assetsDirs() {
|
|
365
|
+
return [ "gx-ide-assets/deployment-tool" ];
|
|
366
|
+
}
|
|
367
|
+
get el() {
|
|
368
|
+
return r(this);
|
|
369
|
+
}
|
|
370
|
+
static get watchers() {
|
|
371
|
+
return {
|
|
372
|
+
treeModel: [ "watchTreeModelHandler" ],
|
|
373
|
+
objectTypes: [ "watchObjectTypesHandler" ]
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
f = new WeakMap, h = new WeakMap, b = new WeakMap, v = new WeakMap, p = new WeakMap,
|
|
379
|
+
m = new WeakMap, u = new WeakMap, y = new WeakMap, x = new WeakMap, w = new WeakMap,
|
|
380
|
+
k = new WeakMap, _ = new WeakMap, z = new WeakMap, M = new WeakMap, W = new WeakMap,
|
|
381
|
+
j = new WeakMap, T = new WeakMap, C = new WeakMap, I = new WeakMap, E = new WeakMap,
|
|
382
|
+
H = new WeakMap, O = new WeakMap, S = new WeakMap, L = new WeakMap, P = new WeakMap,
|
|
383
|
+
F = new WeakMap, q = new WeakMap, R = new WeakMap, A = new WeakMap, g = new WeakSet,
|
|
384
|
+
D = function _GxIdeDeploymentTool_flattenObjectTypes(t) {
|
|
385
|
+
t.forEach((t => {
|
|
386
|
+
d(this, b, "f").set(t.id, t);
|
|
387
|
+
}));
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
N.style = l;
|
|
391
|
+
|
|
392
|
+
export { N as gx_ide_deployment_tool };
|
|
393
|
+
//# sourceMappingURL=p-48826a6f.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KB_OBJECT_TYPE","KB_OBJECT","convertObjectDataToTreeItem","objectTypeIcon","objectItems","map","objectItem","id","caption","name","startImgSrc","expanded","leaf","metadata","convertObjectTypeDataToTreeView","objectTypeData","treeData","objectType","items","length","push","icon","createArrayOfItems","objectTypes","objectTypesWithItems","type","filter","object","Object","assign","treeView","deploymentToolCss","CSS_BUNDLES","GxIdeDeploymentTool","_GxIdeDeploymentTool_componentLocale","set","this","_GxIdeDeploymentTool_renderedFirstTime","_GxIdeDeploymentTool_flattenedObjectTypeData","Map","_GxIdeDeploymentTool_currentDeploymentUnitId","_GxIdeDeploymentTool_onlyPackageCheckboxEl","_GxIdeDeploymentTool_targetTypesEl","_GxIdeDeploymentTool_applicationServerEl","_GxIdeDeploymentTool_generatorEl","_GxIdeDeploymentTool_deploymentUnitsEl","_GxIdeDeploymentTool_displayNameEl","_GxIdeDeploymentTool_evaluateObjects","noObjects","_a","treeModel","_GxIdeDeploymentTool_handleGetDeploymentUnitObjectsCallback","async","ev","__classPrivateFieldGet","_GxIdeDeploymentTool_loadDeploymentUnits","call","detail","_GxIdeDeploymentTool_optionsCallbackHandler","newDeploymentUnitId","_GxIdeDeploymentTool_handleCreateDeploymentUnit","__classPrivateFieldSet","objectData","getDeploymentUnitObjectsCallback","addedObjects","allObjectTypes","createDeploymentUnitCallback","deploymentUnitData","deploymentUnits","unshift","comboModelItem","_GxIdeDeploymentTool_getComboModel","model","concat","value","optionsCallback","_GxIdeDeploymentTool_addNewTypesToModel","allTypes","forEach","addedObject","matchingType","find","_GxIdeDeploymentTool_addObjectsCallbackHandler","addObjectsCallback","objects","_GxIdeDeploymentTool_deployCallbackHandler","data","targetId","applicationServerId","displayName","_b","generatorId","_c","onlyPackage","undefined","checkedObjectsIds","deployCallback","allowDeploy","_GxIdeDeploymentTool_handleTargetTypesChange","selectedId","selectedDeployTargetData","targetTypes","targetType","_GxIdeDeploymentTool_objectsTreeCheckedItemsChangedHandler","event","allItemsWithCheckbox","values","checkedItem","item","checked","_GxIdeDeploymentTool_evaluateContentToDisplay","h","isAnimated","stateTitle","main","noObjectsToDisplay","key","stateIconSrc","class","dragDisabled","dropDisabled","toggleCheckboxes","showLines","checkbox","onCheckedItemsChange","baseCollection","obj","_GxIdeDeploymentTool_renderComboSelector","properties","withField","controlId","label","replace","toLowerCase","labelClasses","labelAndComboBox","htmlFor","baseModel","ref","refCallback","onInput","onInputCallback","_GxIdeDeploymentTool_renderHeader","slot","header","objectsToDeploy","el","onClick","addButton","_GxIdeDeploymentTool_renderApplicationServerSelector","applicationServers","applicationServer","_GxIdeDeploymentTool_renderGeneratorSelector","generators","generator","_GxIdeDeploymentTool_renderTargetSelector","src","disabled","canCreatePackage","onlyPackageLabel","part","checkedValue","_GxIdeDeploymentTool_renderDisplayNameInput","_GxIdeDeploymentTool_renderFooter","deployButton","watchTreeModelHandler","newState","watchObjectTypesHandler","_GxIdeDeploymentTool_instances","_GxIdeDeploymentTool_flattenObjectTypes","componentWillLoad","Locale","getComponentStrings","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","_d","_e","description","_f","canDefineDisplayName"],"sources":["src/components/deployment-tool/helpers.ts","src/components/deployment-tool/deployment-tool.scss?tag=gx-ide-deployment-tool&encapsulation=shadow","src/components/deployment-tool/deployment-tool.tsx"],"sourcesContent":["import { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/types\";\nimport { TypedObjectData, ObjectTypeData } from \"./deployment-tool\";\n\nconst KB_OBJECT_TYPE = \"type\";\nexport const KB_OBJECT = \"object\";\n\nconst convertObjectDataToTreeItem = (\n objectTypeIcon: string,\n objectItems: TypedObjectData[]\n) => {\n return objectItems.map(objectItem => ({\n id: objectItem.id,\n caption: objectItem.name,\n startImgSrc: objectTypeIcon,\n expanded: true,\n leaf: true,\n metadata: KB_OBJECT\n }));\n};\n\nexport const convertObjectTypeDataToTreeView = (\n objectTypeData: ObjectTypeDataWithItems[]\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!objectTypeData) {\n return treeData;\n }\n\n for (const objectType of objectTypeData) {\n if (objectType.items.length > 0) {\n treeData.push({\n id: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon,\n expanded: true,\n leaf: false,\n metadata: KB_OBJECT_TYPE,\n items: convertObjectDataToTreeItem(objectType.icon, objectType.items)\n });\n }\n }\n\n return treeData;\n};\n\nexport const createArrayOfItems = (\n objectItems: TypedObjectData[],\n objectTypes: ObjectTypeData[]\n) => {\n // The resulting array with 'items' property added to each type\n const objectTypesWithItems: ObjectTypeDataWithItems[] = objectTypes.map(\n type => {\n // Filter objects that match the current type id\n const items = objectItems.filter(object => object.type === type.id);\n\n // Return a new object type with the 'items' property\n\n return {\n ...type,\n items: items\n };\n }\n );\n const treeView = convertObjectTypeDataToTreeView(objectTypesWithItems);\n return treeView;\n};\n\nexport type ObjectTypeDataWithItems = {\n id: string;\n name: string;\n icon: string;\n items: TypedObjectData[];\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.header {\n display: grid;\n padding: var(--gxg-container--padding);\n gap: var(--gx-ide-grid-column-gap);\n grid-template-columns: 1fr auto;\n :nth-child(2) {\n align-self: self-end;\n }\n margin-block-end: var(--gx-ide-grid-row-gap);\n}\n\n// deploy properties\n.deploy-properties {\n display: grid;\n grid-auto-rows: max-content;\n grid-template-columns: max-content 1fr max-content;\n grid-template-areas:\n \"target-types__label target-types__combo-box target-types__button-checkbox-container\"\n \"application-server__label application-server__combo-box .\"\n \". target-type__description .\"\n \"display-name__label display-name__combo-box .\";\n align-items: center;\n column-gap: var(--field__column-gap);\n row-gap: var(--field-group__row-gap);\n border-block-start: var(--section-common-border);\n padding-block-start: var(--mer-spacing--md);\n}\n\n.label.target-types {\n grid-area: target-types__label;\n}\n#target-types {\n grid-area: target-types__combo-box;\n}\n.target-types-button-checkbox-wrapper {\n grid-area: target-types__button-checkbox-container;\n}\n\n.label.application-server {\n grid-area: application-server__label;\n}\n#application-server {\n grid-area: application-server__combo-box;\n}\n\n.target-type__description {\n grid-area: target-type__description;\n}\n\n.label.display-name {\n grid-area: display-name__label;\n}\n#display-name {\n grid-area: display-name__combo-box;\n}\n\n.footer {\n margin-block-start: var(--gx-ide-grid-row-gap);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n\n// Other Libraries\nimport {\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/types\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nimport { createArrayOfItems } from \"./helpers\";\n\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { KB_OBJECT } from \"./helpers\";\nimport {\n ComboBoxItemModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ChComboBoxRenderCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport { ObjectBaseData } from \"../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/icon\",\n \"utils/spacing\"\n];\n\n@Component({\n tag: \"gx-ide-deployment-tool\",\n styleUrl: \"deployment-tool.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/deployment-tool\"]\n})\nexport class GxIdeDeploymentTool {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #renderedFirstTime = false;\n #flattenedObjectTypeData: Map<string, ObjectTypeData> = new Map();\n #currentDeploymentUnitId: string | undefined;\n\n @Element() el: HTMLGxIdeDeploymentToolElement;\n #onlyPackageCheckboxEl!: HTMLChCheckboxElement;\n #targetTypesEl!: HTMLChComboBoxRenderElement;\n #applicationServerEl!: HTMLChComboBoxRenderElement;\n #generatorEl!: HTMLChComboBoxRenderElement;\n #deploymentUnitsEl!: HTMLChComboBoxRenderElement;\n #displayNameEl!: HTMLChEditElement;\n\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n @State() selectedDeployTargetData: DeployTargetData = null;\n @State() addedObjects: TypedObjectData[] = [];\n @State() allObjectTypes: ObjectTypeData[];\n @State() treeModel: TreeViewItemModel[] = [];\n @State() allowDeploy: boolean = true;\n @Watch(\"treeModel\")\n watchTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n }\n\n /**\n * Available deployment units list\n */\n @Prop() readonly deploymentUnits: ObjectBaseData[];\n\n /**\n * Available target types list\n */\n @Prop() readonly targetTypes: DeployTargetData[];\n\n /**\n * Defines id for new deployment unit option\n */\n @Prop() readonly newDeploymentUnitId: string;\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectTypeData[];\n @Watch(\"objectTypes\")\n watchObjectTypesHandler(newState: ObjectTypeData[]) {\n this.#flattenObjectTypes(newState);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop()\n readonly getDeploymentUnitObjectsCallback: GetDeploymentUnitObjectsCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n * Callback invoked when user wants to start deploy process\n */\n @Prop() readonly deployCallback: DeployCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback: AddObjectsCallback;\n\n /**\n * Callback invoked when the user wants to create a deployment unit.\n */\n @Prop() readonly createDeploymentUnitCallback: CreateDeploymentUnitCallback;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedDeployTargetData = this.targetTypes[0];\n this.allObjectTypes = [...this.objectTypes];\n this.#evaluateObjects();\n this.#flattenObjectTypes(this.allObjectTypes);\n if (this.deploymentUnits.length > 0) {\n this.#loadDeploymentUnits(this.deploymentUnits[0].id);\n\n if (this.targetTypes.length > 0 && this.optionsCallback) {\n this.optionsCallback(\n this.deploymentUnits[0].id,\n this.targetTypes[0].id\n );\n }\n }\n }\n\n componentDidRender() {\n if (!this.#renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this.#componentLocale.componentName\n );\n this.#renderedFirstTime = true;\n }\n }\n\n #evaluateObjects = () => {\n this.noObjects = !!(this.treeModel?.length === 0 || !this.treeModel);\n };\n\n #handleGetDeploymentUnitObjectsCallback = async (ev: any) => {\n await this.#loadDeploymentUnits(ev.detail);\n this.#optionsCallbackHandler();\n };\n\n #loadDeploymentUnits = async (id: string) => {\n if (id === this.newDeploymentUnitId) {\n await this.#handleCreateDeploymentUnit();\n return;\n }\n\n this.#currentDeploymentUnitId = id;\n\n const objectData = await this.getDeploymentUnitObjectsCallback(id);\n this.addedObjects = [...objectData];\n this.treeModel = createArrayOfItems(this.addedObjects, this.allObjectTypes);\n };\n\n #handleCreateDeploymentUnit = async () => {\n if (this.createDeploymentUnitCallback) {\n const deploymentUnitData = await this.createDeploymentUnitCallback();\n if (!deploymentUnitData) {\n return;\n }\n\n // Update deployment units:\n this.deploymentUnits.unshift(deploymentUnitData);\n\n // Update combo:\n const comboModelItem = this.#getComboModel([deploymentUnitData]);\n this.#deploymentUnitsEl.model = comboModelItem.concat(\n this.#deploymentUnitsEl.model\n );\n this.#deploymentUnitsEl.value = deploymentUnitData.id;\n\n // Trigger selection callback:\n await this.#loadDeploymentUnits(deploymentUnitData.id);\n }\n };\n\n #optionsCallbackHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback(\n this.#deploymentUnitsEl.value,\n this.#targetTypesEl.value\n );\n }\n };\n\n #addNewTypesToModel = () => {\n const allTypes: ObjectTypeData[] = [...this.allObjectTypes];\n\n this.addedObjects.forEach(addedObject => {\n const matchingType = this.allObjectTypes.find(\n objectType => objectType.id === addedObject.type\n );\n\n if (!matchingType) {\n allTypes.push({\n id: addedObject.type,\n name: addedObject.type,\n icon: \"\"\n });\n }\n });\n this.allObjectTypes = [...allTypes];\n };\n\n #addObjectsCallbackHandler = async () => {\n if (this.addObjectsCallback) {\n const objects: TypedObjectData[] = await this.addObjectsCallback();\n this.addedObjects = [...objects, ...this.addedObjects];\n\n this.#addNewTypesToModel();\n this.treeModel = createArrayOfItems(\n this.addedObjects,\n this.allObjectTypes\n );\n }\n };\n\n #deployCallbackHandler = async () => {\n const data: DeployData = {\n targetId: this.#targetTypesEl.value,\n applicationServerId: this.#applicationServerEl?.value,\n displayName: this.#displayNameEl?.value,\n generatorId: this.#generatorEl?.value,\n onlyPackage: this.#onlyPackageCheckboxEl\n ? this.#onlyPackageCheckboxEl.value === \"true\"\n : undefined,\n objects: this.checkedObjectsIds\n };\n\n if (this.deployCallback) {\n this.allowDeploy = false;\n await this.deployCallback(data);\n this.allowDeploy = true;\n }\n };\n\n #handleTargetTypesChange = (ev: any) => {\n const selectedId = ev.detail;\n\n this.selectedDeployTargetData =\n this.targetTypes.find(targetType => targetType.id === selectedId) || null;\n\n this.#optionsCallbackHandler();\n };\n\n #flattenObjectTypes(newState: ObjectTypeData[]) {\n newState.forEach(objectType => {\n this.#flattenedObjectTypeData.set(objectType.id, objectType);\n });\n }\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItemsWithCheckbox = [...event.detail.values()];\n\n this.checkedObjectsIds = allItemsWithCheckbox\n .filter(\n checkedItem =>\n checkedItem.item.checked && checkedItem.item.metadata === KB_OBJECT\n )\n .map(checkedItem => checkedItem.item.id);\n };\n\n #evaluateContentToDisplay = () => {\n if (this.noObjects) {\n return (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={this.#componentLocale.main.noObjectsToDisplay}\n key=\"no-objects-empty-state\"\n stateIconSrc=\"objects/object\"\n ></gx-ide-empty-state>\n );\n }\n\n return (\n <ch-tree-view-render\n class=\"tree-view\"\n model={this.treeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n showLines=\"last\"\n checked={true}\n checkbox={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n />\n );\n };\n\n #getComboModel = (baseCollection: ObjectBaseData[]): ComboBoxModel => {\n return baseCollection.map(\n obj =>\n ({\n caption: obj.name,\n value: obj.id\n } as ComboBoxItemModel)\n );\n };\n\n #renderComboSelector = (\n properties: ComboSelectorProperties,\n withField: boolean = false\n ) => {\n const controlId = properties.label.replace(/ /g, \"-\").toLowerCase();\n const labelClasses = `label ${controlId}`;\n const labelAndComboBox = [\n <label class={labelClasses} htmlFor={controlId}>\n {properties.label}\n </label>,\n <ch-combo-box-render\n class=\"combo-box\"\n value={\n properties.value ? properties.value : properties.baseModel[0]?.id\n }\n model={this.#getComboModel(properties.baseModel)}\n id={controlId}\n ref={properties.refCallback}\n onInput={properties.onInputCallback}\n />\n ];\n return withField ? (\n <div class=\"field field-inline\">{labelAndComboBox}</div>\n ) : (\n labelAndComboBox\n );\n };\n\n #renderHeader = () => {\n return (\n <div slot=\"header\" class=\"header control-header-with-border\">\n {this.#renderComboSelector(\n {\n id: \"deploymentUnits\",\n baseModel: this.deploymentUnits,\n label: this.#componentLocale.header.objectsToDeploy,\n value: this.#currentDeploymentUnitId,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#deploymentUnitsEl = el as HTMLChComboBoxRenderElement;\n },\n onInputCallback: this.#handleGetDeploymentUnitObjectsCallback\n },\n true\n )}\n\n <button\n class=\"button-primary\"\n onClick={this.#addObjectsCallbackHandler}\n >\n {this.#componentLocale.main.addButton}\n </button>\n </div>\n );\n };\n\n #renderApplicationServerSelector = () => {\n return this.#renderComboSelector({\n id: \"application-servers\",\n baseModel: this.selectedDeployTargetData?.applicationServers,\n label: this.#componentLocale.main.applicationServer,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#applicationServerEl = el as HTMLChComboBoxRenderElement;\n }\n });\n };\n\n #renderGeneratorSelector = () => {\n return this.#renderComboSelector({\n id: \"generator\",\n baseModel: this.selectedDeployTargetData?.generators,\n label: this.#componentLocale.main.generator,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#generatorEl = el as HTMLChComboBoxRenderElement;\n }\n });\n };\n\n #renderTargetSelector = () => {\n return [\n this.#renderComboSelector({\n id: \"targetTypes\",\n baseModel: this.targetTypes,\n label: this.#componentLocale.main.targetTypes,\n refCallback: (el: HTMLChComboBoxRenderElement) => {\n this.#targetTypesEl = el as HTMLChComboBoxRenderElement;\n },\n onInputCallback: this.#handleTargetTypesChange\n }),\n <div class=\"target-types-button-checkbox-wrapper buttons-spacer\">\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#optionsCallbackHandler}\n >\n <ch-image class=\"icon-md\" src=\"system/settings/primary\" />\n </button>\n <ch-checkbox\n disabled={!this.selectedDeployTargetData?.canCreatePackage}\n class=\"checkbox\"\n caption={this.#componentLocale.main.onlyPackageLabel}\n part=\"only-package-checkbox\"\n checkedValue=\"true\"\n value=\"false\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#onlyPackageCheckboxEl = el as HTMLChCheckboxElement)\n }\n />\n </div>\n ];\n };\n\n #renderDisplayNameInput = () => {\n return [\n <label class=\"label display-name\" htmlFor=\"display-name\">\n {this.#componentLocale.main.displayName}\n </label>,\n <ch-edit\n class=\"input\"\n id=\"display-name\"\n ref={(el: HTMLChEditElement) => {\n if (el) {\n this.#displayNameEl = el;\n }\n }}\n />\n ];\n };\n\n #renderFooter = () => {\n return (\n <div slot=\"footer-end\" class=\"footer control-footer-with-border\">\n <button\n class=\"button-primary\"\n onClick={this.#deployCallbackHandler}\n disabled={!this.allowDeploy}\n >\n {this.#componentLocale.main.deployButton}\n </button>\n </div>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget spacing-body\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n {this.#renderHeader()}\n\n <div class=\"container-wrapper\">{this.#evaluateContentToDisplay()}</div>\n <div class=\"deploy-properties\">\n {this.#renderTargetSelector()}\n\n {this.selectedDeployTargetData?.applicationServers?.length > 0\n ? this.#renderApplicationServerSelector()\n : []}\n\n {this.selectedDeployTargetData?.generators?.length > 0\n ? this.#renderGeneratorSelector()\n : []}\n\n <p class=\"body-italic-s target-type__description\">\n {this.selectedDeployTargetData?.description}\n </p>\n\n {this.selectedDeployTargetData?.canDefineDisplayName\n ? this.#renderDisplayNameInput()\n : []}\n </div>\n\n {this.#renderFooter()}\n </Host>\n );\n }\n}\n\ntype ComboSelectorProperties = {\n class?: string;\n id: string;\n baseModel: ObjectBaseData[];\n value?: string;\n label: string;\n refCallback: (el: HTMLChComboBoxRenderElement) => void;\n onInputCallback?: ((event: ChComboBoxRenderCustomEvent<string>) => void) &\n ((event: InputEvent) => void);\n};\n\nexport type AddObjectsCallback = () => Promise<TypedObjectData[]>;\nexport type OptionsCallback = (\n delpoymentUnitId: string,\n targetId: string\n) => Promise<void>;\nexport type GetDeploymentUnitObjectsCallback = (\n id: string\n) => Promise<TypedObjectData[]>;\n\nexport type DeployCallback = (data: DeployData) => Promise<boolean>;\n\nexport type CreateDeploymentUnitCallback = () => Promise<\n ObjectBaseData | undefined\n>;\n\nexport type ObjectTypeData = ObjectBaseData & {\n icon: string;\n};\n\nexport type DeployTargetData = ObjectBaseData & {\n canCreatePackage: boolean;\n canDefineDisplayName: boolean;\n applicationServers: ObjectBaseData[];\n generators: ObjectBaseData[];\n description: string;\n};\n\nexport type TypedObjectData = ObjectBaseData & {\n type: string;\n};\n\nexport type DeployData = {\n targetId: string;\n applicationServerId?: string;\n displayName?: string;\n generatorId?: string;\n onlyPackage: boolean;\n objects: string[];\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { EventEmitter } from "../../stencil-public-runtime";
|
|
2
|
+
import { TreeViewItemModel } from "@genexus/chameleon-controls-library/dist/types/components/tree-view/types";
|
|
3
|
+
import { ObjectBaseData } from "../../common/types";
|
|
4
|
+
export declare class GxIdeDeploymentTool {
|
|
5
|
+
#private;
|
|
6
|
+
el: HTMLGxIdeDeploymentToolElement;
|
|
7
|
+
checkedObjectsIds: string[];
|
|
8
|
+
noObjects: boolean;
|
|
9
|
+
selectedDeployTargetData: DeployTargetData;
|
|
10
|
+
addedObjects: TypedObjectData[];
|
|
11
|
+
allObjectTypes: ObjectTypeData[];
|
|
12
|
+
treeModel: TreeViewItemModel[];
|
|
13
|
+
allowDeploy: boolean;
|
|
14
|
+
watchTreeModelHandler(newState: TreeViewItemModel[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Available deployment units list
|
|
17
|
+
*/
|
|
18
|
+
readonly deploymentUnits: ObjectBaseData[];
|
|
19
|
+
/**
|
|
20
|
+
* Available target types list
|
|
21
|
+
*/
|
|
22
|
+
readonly targetTypes: DeployTargetData[];
|
|
23
|
+
/**
|
|
24
|
+
* Defines id for new deployment unit option
|
|
25
|
+
*/
|
|
26
|
+
readonly newDeploymentUnitId: string;
|
|
27
|
+
/**
|
|
28
|
+
* Array of possible object types
|
|
29
|
+
*/
|
|
30
|
+
readonly objectTypes: ObjectTypeData[];
|
|
31
|
+
watchObjectTypesHandler(newState: ObjectTypeData[]): void;
|
|
32
|
+
/**
|
|
33
|
+
* Callback invoked when the user wants to access the export options.
|
|
34
|
+
*/
|
|
35
|
+
readonly getDeploymentUnitObjectsCallback: GetDeploymentUnitObjectsCallback;
|
|
36
|
+
/**
|
|
37
|
+
* Callback invoked when the user wants to access the export options.
|
|
38
|
+
*/
|
|
39
|
+
readonly optionsCallback: OptionsCallback;
|
|
40
|
+
/**
|
|
41
|
+
* Callback invoked when user wants to start deploy process
|
|
42
|
+
*/
|
|
43
|
+
readonly deployCallback: DeployCallback;
|
|
44
|
+
/**
|
|
45
|
+
* Callback invoked when the user wants to add objects.
|
|
46
|
+
*/
|
|
47
|
+
readonly addObjectsCallback: AddObjectsCallback;
|
|
48
|
+
/**
|
|
49
|
+
* Callback invoked when the user wants to create a deployment unit.
|
|
50
|
+
*/
|
|
51
|
+
readonly createDeploymentUnitCallback: CreateDeploymentUnitCallback;
|
|
52
|
+
/**
|
|
53
|
+
* This event is emitted once just after the component is fully loaded and the first render() occurs.
|
|
54
|
+
*/
|
|
55
|
+
componentDidLoadEvent: EventEmitter<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* This event is emitted once just after the component is fully loaded and the first render() occurs
|
|
58
|
+
*/
|
|
59
|
+
componentDidRenderFirstTime: EventEmitter<boolean>;
|
|
60
|
+
componentWillLoad(): Promise<void>;
|
|
61
|
+
componentDidRender(): void;
|
|
62
|
+
render(): void;
|
|
63
|
+
}
|
|
64
|
+
export type AddObjectsCallback = () => Promise<TypedObjectData[]>;
|
|
65
|
+
export type OptionsCallback = (delpoymentUnitId: string, targetId: string) => Promise<void>;
|
|
66
|
+
export type GetDeploymentUnitObjectsCallback = (id: string) => Promise<TypedObjectData[]>;
|
|
67
|
+
export type DeployCallback = (data: DeployData) => Promise<boolean>;
|
|
68
|
+
export type CreateDeploymentUnitCallback = () => Promise<ObjectBaseData | undefined>;
|
|
69
|
+
export type ObjectTypeData = ObjectBaseData & {
|
|
70
|
+
icon: string;
|
|
71
|
+
};
|
|
72
|
+
export type DeployTargetData = ObjectBaseData & {
|
|
73
|
+
canCreatePackage: boolean;
|
|
74
|
+
canDefineDisplayName: boolean;
|
|
75
|
+
applicationServers: ObjectBaseData[];
|
|
76
|
+
generators: ObjectBaseData[];
|
|
77
|
+
description: string;
|
|
78
|
+
};
|
|
79
|
+
export type TypedObjectData = ObjectBaseData & {
|
|
80
|
+
type: string;
|
|
81
|
+
};
|
|
82
|
+
export type DeployData = {
|
|
83
|
+
targetId: string;
|
|
84
|
+
applicationServerId?: string;
|
|
85
|
+
displayName?: string;
|
|
86
|
+
generatorId?: string;
|
|
87
|
+
onlyPackage: boolean;
|
|
88
|
+
objects: string[];
|
|
89
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TreeViewItemModel } from "@genexus/chameleon-controls-library/dist/types/components/tree-view/types";
|
|
2
|
+
import { TypedObjectData, ObjectTypeData } from "./deployment-tool";
|
|
3
|
+
export declare const KB_OBJECT = "object";
|
|
4
|
+
export declare const convertObjectTypeDataToTreeView: (objectTypeData: ObjectTypeDataWithItems[]) => TreeViewItemModel[];
|
|
5
|
+
export declare const createArrayOfItems: (objectItems: TypedObjectData[], objectTypes: ObjectTypeData[]) => TreeViewItemModel[];
|
|
6
|
+
export type ObjectTypeDataWithItems = {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
icon: string;
|
|
10
|
+
items: TypedObjectData[];
|
|
11
|
+
};
|