@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.
Files changed (35) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +347 -0
  3. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +1 -0
  6. package/dist/collection/common/types.js.map +1 -1
  7. package/dist/collection/components/deployment-tool/deployment-tool.css +646 -0
  8. package/dist/collection/components/deployment-tool/deployment-tool.js +542 -0
  9. package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -0
  10. package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.en.json +17 -0
  11. package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.ja.json +17 -0
  12. package/dist/collection/components/deployment-tool/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.zh.json +17 -0
  13. package/dist/collection/components/deployment-tool/helpers.js +44 -0
  14. package/dist/collection/components/deployment-tool/helpers.js.map +1 -0
  15. package/dist/collection/testing/locale.e2e.js +1 -0
  16. package/dist/collection/testing/locale.e2e.js.map +1 -1
  17. package/dist/components/gx-ide-deployment-tool.d.ts +11 -0
  18. package/dist/components/gx-ide-deployment-tool.js +387 -0
  19. package/dist/components/gx-ide-deployment-tool.js.map +1 -0
  20. package/dist/esm/genexus-ide-ui.js +1 -1
  21. package/dist/esm/gx-ide-deployment-tool.entry.js +343 -0
  22. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -0
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  25. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  26. package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.en.json +17 -0
  27. package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.ja.json +17 -0
  28. package/dist/genexus-ide-ui/gx-ide-assets/deployment-tool/langs/deployment-tool.lang.zh.json +17 -0
  29. package/dist/genexus-ide-ui/p-48826a6f.entry.js +393 -0
  30. package/dist/genexus-ide-ui/p-48826a6f.entry.js.map +1 -0
  31. package/dist/types/common/types.d.ts +4 -0
  32. package/dist/types/components/deployment-tool/deployment-tool.d.ts +89 -0
  33. package/dist/types/components/deployment-tool/helpers.d.ts +11 -0
  34. package/dist/types/components.d.ts +123 -12
  35. 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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"}
@@ -1,4 +1,8 @@
1
1
  export type GxgFormItemsArray = (HTMLGxgComboBoxItemElement | HTMLGxgFormCheckboxElement | HTMLGxgFormRadioElement)[] | null;
2
+ export type ObjectBaseData = {
3
+ id: string;
4
+ name: string;
5
+ };
2
6
  export type GxOption = {
3
7
  id: string;
4
8
  label?: string;
@@ -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
+ };