@genexus/genexus-ide-ui 1.1.21 → 1.1.22
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-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +6 -9
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +345 -177
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +13 -36
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +17 -13
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-30f109a4.js → helpers-b30b36b4.js} +2 -2
- package/dist/cjs/{helpers-30f109a4.js.map → helpers-b30b36b4.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/utilities-6118dc24.js +78 -0
- package/dist/cjs/utilities-6118dc24.js.map +1 -0
- package/dist/collection/common/helpers.js +1 -1
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.css +6 -6
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js +5 -8
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +48 -665
- package/dist/collection/components/team-dev/commit/commit.js +407 -251
- package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +20 -3
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +20 -3
- package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -3
- package/dist/collection/components/team-dev/commit/helpers.js +10 -0
- package/dist/collection/components/team-dev/commit/helpers.js.map +1 -0
- package/dist/collection/components/team-dev/common/types.js +2 -0
- package/dist/collection/components/team-dev/common/types.js.map +1 -0
- package/dist/collection/components/team-dev/common/utilities.js +67 -0
- package/dist/collection/components/team-dev/common/utilities.js.map +1 -0
- package/dist/collection/components/team-dev/history/history.css +6 -0
- package/dist/collection/components/team-dev/history/history.js +11 -34
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/components/team-dev/update/update.js +4 -10
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +6 -9
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +369 -191
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +12 -35
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +16 -12
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/helpers.js +1 -1
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/utilities.js +75 -0
- package/dist/components/utilities.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +6 -9
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +345 -177
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +13 -36
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +17 -13
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/{helpers-10479d69.js → helpers-a4f16ffb.js} +2 -2
- package/dist/esm/{helpers-10479d69.js.map → helpers-a4f16ffb.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/utilities-6fdb43e4.js +75 -0
- package/dist/esm/utilities-6fdb43e4.js.map +1 -0
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +20 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +20 -3
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +20 -3
- package/dist/genexus-ide-ui/{p-b465f29d.entry.js → p-012cfb1d.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-0f8a8202.js +87 -0
- package/dist/genexus-ide-ui/p-0f8a8202.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3b5a4e2e.entry.js → p-11b8f81d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-82878950.entry.js → p-19d197c5.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-667965d3.entry.js → p-72b5d3e4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-74a0cb25.entry.js → p-810ad95f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ac131847.entry.js → p-863ef4de.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3fbc5a02.entry.js → p-884e0ed9.entry.js} +97 -104
- package/dist/genexus-ide-ui/p-884e0ed9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9ddea83b.js → p-957046fd.js} +2 -2
- package/dist/genexus-ide-ui/p-957046fd.js.map +1 -0
- package/dist/genexus-ide-ui/p-ca706700.entry.js +484 -0
- package/dist/genexus-ide-ui/p-ca706700.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-d4ef0c35.entry.js +683 -0
- package/dist/genexus-ide-ui/p-d4ef0c35.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-75a5c51f.entry.js → p-fa52a417.entry.js} +153 -149
- package/dist/genexus-ide-ui/p-fa52a417.entry.js.map +1 -0
- package/dist/types/common/types.d.ts +0 -1
- package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +1 -4
- package/dist/types/components/team-dev/commit/commit.d.ts +53 -70
- package/dist/types/components/team-dev/commit/helpers.d.ts +4 -0
- package/dist/types/components/team-dev/common/types.d.ts +1 -0
- package/dist/types/components/team-dev/common/utilities.d.ts +25 -0
- package/dist/types/components/team-dev/history/history.d.ts +1 -1
- package/dist/types/components/team-dev/update/update.d.ts +2 -1
- package/dist/types/components.d.ts +7 -15
- package/package.json +1 -1
- package/dist/cjs/render-combo-items-e774f796.js +0 -18
- package/dist/cjs/render-combo-items-e774f796.js.map +0 -1
- package/dist/components/render-combo-items.js +0 -16
- package/dist/components/render-combo-items.js.map +0 -1
- package/dist/esm/render-combo-items-e9c8df5e.js +0 -16
- package/dist/esm/render-combo-items-e9c8df5e.js.map +0 -1
- package/dist/genexus-ide-ui/p-34fd4875.entry.js +0 -573
- package/dist/genexus-ide-ui/p-34fd4875.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3fbc5a02.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-60e39b2f.entry.js +0 -541
- package/dist/genexus-ide-ui/p-60e39b2f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-75a5c51f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
- package/dist/genexus-ide-ui/p-f549f6e1.js +0 -17
- package/dist/genexus-ide-ui/p-f549f6e1.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-b465f29d.entry.js.map → p-012cfb1d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3b5a4e2e.entry.js.map → p-11b8f81d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-82878950.entry.js.map → p-19d197c5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-667965d3.entry.js.map → p-72b5d3e4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-74a0cb25.entry.js.map → p-810ad95f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ac131847.entry.js.map → p-863ef4de.entry.js.map} +0 -0
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
import { r as t, h as i, H as e, a } from "./p-25a9f1d7.js";
|
|
2
|
+
|
|
3
|
+
import { g as s } from "./p-2987a259.js";
|
|
4
|
+
|
|
5
|
+
import { c as r } from "./p-13738332.js";
|
|
6
|
+
|
|
7
|
+
import { f as l } from "./p-957046fd.js";
|
|
8
|
+
|
|
9
|
+
import { L as n } from "./p-311eedf3.js";
|
|
10
|
+
|
|
11
|
+
import { r as o, a as c } from "./p-0f8a8202.js";
|
|
12
|
+
|
|
13
|
+
const mapObjectTypeToComboBoxItemModel = t => t.map((t => ({
|
|
14
|
+
value: t.id,
|
|
15
|
+
caption: t.name,
|
|
16
|
+
startImgSrc: t.icon
|
|
17
|
+
})));
|
|
18
|
+
|
|
19
|
+
const hasActiveNode = t => {
|
|
20
|
+
if (t.active) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (Array.isArray(t.nodes)) {
|
|
24
|
+
return t.nodes.some(hasActiveNode);
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const hasActiveVersionInList = t => t.some(hasActiveNode);
|
|
30
|
+
|
|
31
|
+
const d = '.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}:host{display:grid;grid-template-columns:max-content 1fr;block-size:100%;overflow:auto}.sidebar{background-color:transparent !important;border-inline-end:var(--section-common-border)}.sidebar::part(expand-button){border-radius:var(--control__border-radius)}gx-ide-select-kb-items{--search-input-max-inline-size:300px;opacity:0;transition:opacity var(--mer-timing--fast)}gx-ide-select-kb-items.sidebar-expanded{opacity:1}ch-tabular-grid.tabular-grid--empty::part(main){overflow:hidden}ch-tabular-grid-rowset-empty{position:relative}.main{display:grid;grid-template-rows:max-content 1fr;grid-row-gap:var(--mer-spacing--sm);overflow:auto}.main__header{display:grid}.main__content{position:relative;overflow:auto;display:grid;grid-template-rows:1fr max-content 2fr;grid-row-gap:var(--mer-spacing--sm)}.tabular-grid{overflow:auto}.search-filter{display:grid;grid-template-columns:1fr max-content max-content;gap:var(--gx-ide-grid-column-gap)}.action-buttons{justify-self:flex-end}.filters-grid{display:grid;grid-template-columns:repeat(6, 1fr);grid-template-areas:"from from to to type type" "user user user revision revision revision";grid-gap:var(--gx-ide-grid-column-gap);padding-block-start:var(--mer-spacing--sm)}.filters-container{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--mer-timing--fast)}.filters-container-visible{grid-template-rows:1fr}.filters-container>div{overflow:hidden}.field-from{grid-area:from}.field-to{grid-area:to}.field-type{grid-area:type}.field-user{grid-area:user}.field-revision{grid-area:revision}.commits-grid ch-tabular-grid-cell:is(:nth-child(2)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;min-inline-size:200px}.affected-objects-grid ch-tabular-grid-cell:is(:nth-child(5)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;min-inline-size:200px}';
|
|
32
|
+
|
|
33
|
+
var h = undefined && undefined.__classPrivateFieldGet || function(t, i, e, a) {
|
|
34
|
+
if (e === "a" && !a) throw new TypeError("Private accessor was defined without a getter");
|
|
35
|
+
if (typeof i === "function" ? t !== i || !a : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
36
|
+
return e === "m" ? a : e === "a" ? a.call(t) : a ? a.value : i.get(t);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var u = undefined && undefined.__classPrivateFieldSet || function(t, i, e, a, s) {
|
|
40
|
+
if (a === "m") throw new TypeError("Private method is not writable");
|
|
41
|
+
if (a === "a" && !s) throw new TypeError("Private accessor was defined without a setter");
|
|
42
|
+
if (typeof i === "function" ? t !== i || !s : !i.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
43
|
+
return a === "a" ? s.call(t, e) : s ? s.value = e : i.set(t, e), e;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var f, m, g, p, b, v, w, y, x, k, _, M, W, C, j, z, T, E, F;
|
|
47
|
+
|
|
48
|
+
const I = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/spacing", "utils/typography", "chameleon/scrollbar", "components/tabular-grid", "components/accordion", "components/sidebar" ];
|
|
49
|
+
|
|
50
|
+
const L = s({
|
|
51
|
+
category: "window-tools",
|
|
52
|
+
name: "filter",
|
|
53
|
+
colorType: "primary"
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const A = s({
|
|
57
|
+
category: "window-tools",
|
|
58
|
+
name: "filter",
|
|
59
|
+
colorType: "on-surface"
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
const D = s({
|
|
63
|
+
category: "gemini-tools",
|
|
64
|
+
name: "reset",
|
|
65
|
+
colorType: "primary"
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const S = s({
|
|
69
|
+
category: "gemini-tools",
|
|
70
|
+
name: "search",
|
|
71
|
+
colorType: "on-surface"
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const $ = class {
|
|
75
|
+
constructor(e) {
|
|
76
|
+
t(this, e);
|
|
77
|
+
f.set(this, void 0);
|
|
78
|
+
m.set(this, []);
|
|
79
|
+
g.set(this, void 0);
|
|
80
|
+
p.set(this, void 0);
|
|
81
|
+
b.set(this, void 0);
|
|
82
|
+
v.set(this, void 0);
|
|
83
|
+
w.set(this, void 0);
|
|
84
|
+
y.set(this, void 0);
|
|
85
|
+
x.set(this, void 0);
|
|
86
|
+
k.set(this, void 0);
|
|
87
|
+
_.set(this, (async t => {
|
|
88
|
+
var i;
|
|
89
|
+
this.loading = true;
|
|
90
|
+
const e = {
|
|
91
|
+
search: h(this, b, "f").value ? h(this, b, "f").value : "",
|
|
92
|
+
from: h(this, g, "f").value ? new Date(h(this, g, "f").value) : null,
|
|
93
|
+
to: h(this, v, "f").value ? new Date(h(this, v, "f").value) : null,
|
|
94
|
+
revision: h(this, p, "f").value ? h(this, p, "f").value : "",
|
|
95
|
+
user: h(this, y, "f").value ? h(this, y, "f").value : "",
|
|
96
|
+
type: h(this, w, "f").value === "all" ? "" : h(this, w, "f").value
|
|
97
|
+
};
|
|
98
|
+
this.objects = await this.loadCallback(e, t);
|
|
99
|
+
await h(this, M, "f").call(this, (i = this.objects[0]) === null || i === void 0 ? void 0 : i.id);
|
|
100
|
+
this.loading = false;
|
|
101
|
+
}));
|
|
102
|
+
M.set(this, (async t => {
|
|
103
|
+
if (t) {
|
|
104
|
+
this.historyDetail = await this.loadDetailCallback(t);
|
|
105
|
+
this.historyDetail.title = h(this, F, "f").call(this, this.historyDetail.title);
|
|
106
|
+
this.selectedRevisionId = t;
|
|
107
|
+
} else {
|
|
108
|
+
this.historyDetail = null;
|
|
109
|
+
}
|
|
110
|
+
}));
|
|
111
|
+
W.set(this, (() => {
|
|
112
|
+
if (h(this, k, "f")) {
|
|
113
|
+
h(this, k, "f").addEventListener("contextmenu", (t => {
|
|
114
|
+
t.preventDefault();
|
|
115
|
+
t.stopPropagation();
|
|
116
|
+
h(this, C, "f").call(this, t);
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}));
|
|
120
|
+
C.set(this, (async t => {
|
|
121
|
+
this.gridContextMenuCallback({
|
|
122
|
+
selection: [ this.selectedRevisionId ],
|
|
123
|
+
clientX: t.clientX,
|
|
124
|
+
clientY: t.clientY
|
|
125
|
+
});
|
|
126
|
+
}));
|
|
127
|
+
j.set(this, (() => {
|
|
128
|
+
this.filtersHidden = !this.filtersHidden;
|
|
129
|
+
}));
|
|
130
|
+
z.set(this, (() => {
|
|
131
|
+
var t;
|
|
132
|
+
const e = ((t = this.objects) === null || t === void 0 ? void 0 : t.length) === 0 || !this.objects;
|
|
133
|
+
return i("ch-tabular-grid", {
|
|
134
|
+
class: {
|
|
135
|
+
"commits-grid": true,
|
|
136
|
+
"tabular-grid": true,
|
|
137
|
+
"tabular-grid--empty": e
|
|
138
|
+
},
|
|
139
|
+
onSelectionChanged: t => {
|
|
140
|
+
this.objects.length > 0 && h(this, M, "f").call(this, t.detail.rowsId[0]);
|
|
141
|
+
},
|
|
142
|
+
ref: t => {
|
|
143
|
+
var i;
|
|
144
|
+
if (t && h(this, k, "f") !== t) {
|
|
145
|
+
u(this, k, t, "f");
|
|
146
|
+
h(this, W, "f").call(this);
|
|
147
|
+
if (this.objects.length > 0) {
|
|
148
|
+
h(this, k, "f").selectRow((i = this.objects[0]) === null || i === void 0 ? void 0 : i.id, true);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}, i("ch-tabular-grid-columnset", {
|
|
153
|
+
class: "tabular-grid-column-set"
|
|
154
|
+
}, i("ch-tabular-grid-column", {
|
|
155
|
+
"column-name": h(this, f, "f").mainGrid.columns.id,
|
|
156
|
+
"column-name-position": "text",
|
|
157
|
+
class: "tabular-grid-column",
|
|
158
|
+
settingable: false,
|
|
159
|
+
size: "max-content"
|
|
160
|
+
}), i("ch-tabular-grid-column", {
|
|
161
|
+
"column-name": h(this, f, "f").mainGrid.columns.comment,
|
|
162
|
+
"column-name-position": "text",
|
|
163
|
+
class: "tabular-grid-column",
|
|
164
|
+
settingable: false,
|
|
165
|
+
size: "1fr"
|
|
166
|
+
}), i("ch-tabular-grid-column", {
|
|
167
|
+
"column-name": h(this, f, "f").mainGrid.columns.user,
|
|
168
|
+
"column-name-position": "text",
|
|
169
|
+
class: "tabular-grid-column",
|
|
170
|
+
settingable: false,
|
|
171
|
+
size: "max-content"
|
|
172
|
+
}), i("ch-tabular-grid-column", {
|
|
173
|
+
"column-name": h(this, f, "f").mainGrid.columns.commitDate,
|
|
174
|
+
"column-name-position": "text",
|
|
175
|
+
class: "tabular-grid-column",
|
|
176
|
+
settingable: false,
|
|
177
|
+
size: "max-content"
|
|
178
|
+
})), this.objects.length > 0 ? i("ch-tabular-grid-rowset", {
|
|
179
|
+
class: "tabular-grid-rowset"
|
|
180
|
+
}, this.objects.map((t => i("ch-tabular-grid-row", {
|
|
181
|
+
rowid: t.id,
|
|
182
|
+
key: t.id,
|
|
183
|
+
class: "tabular-grid-row"
|
|
184
|
+
}, i("ch-tabular-grid-cell", {
|
|
185
|
+
class: "tabular-grid-cell"
|
|
186
|
+
}, t.id), i("ch-tabular-grid-cell", {
|
|
187
|
+
class: "tabular-grid-cell"
|
|
188
|
+
}, t.comment), i("ch-tabular-grid-cell", {
|
|
189
|
+
class: "tabular-grid-cell"
|
|
190
|
+
}, t.user), i("ch-tabular-grid-cell", {
|
|
191
|
+
class: "tabular-grid-cell"
|
|
192
|
+
}, `${l(t.commitDate, "date-time")}`))))) : i("ch-tabular-grid-rowset", {
|
|
193
|
+
class: "tabular-grid-rowset"
|
|
194
|
+
}, i("ch-tabular-grid-rowset-empty", null, i("gx-ide-empty-state", {
|
|
195
|
+
stateTitle: h(this, f, "f").emptyRevisionsText,
|
|
196
|
+
isAnimated: true
|
|
197
|
+
}))), i("ch-tabular-grid-row", {
|
|
198
|
+
class: "tabular-grid-row"
|
|
199
|
+
}));
|
|
200
|
+
}));
|
|
201
|
+
T.set(this, (() => {
|
|
202
|
+
var t;
|
|
203
|
+
const e = this.historyDetail ? this.historyDetail.objects : [];
|
|
204
|
+
const a = ((t = this.historyDetail) === null || t === void 0 ? void 0 : t.objects.length) === 0 || !this.historyDetail;
|
|
205
|
+
return i("ch-tabular-grid", {
|
|
206
|
+
class: {
|
|
207
|
+
"affected-objects-grid": true,
|
|
208
|
+
"tabular-grid": true,
|
|
209
|
+
"tabular-grid--empty": a
|
|
210
|
+
}
|
|
211
|
+
}, i("ch-tabular-grid-columnset", {
|
|
212
|
+
class: "tabular-grid-column-set"
|
|
213
|
+
}, i("ch-tabular-grid-column", {
|
|
214
|
+
"column-name": h(this, f, "f").affectedObjectsGrid.columns.name,
|
|
215
|
+
"column-name-position": "text",
|
|
216
|
+
class: "tabular-grid-column",
|
|
217
|
+
settingable: false,
|
|
218
|
+
size: r.tabularGrid.colSize.maxContent
|
|
219
|
+
}), i("ch-tabular-grid-column", {
|
|
220
|
+
"column-name": h(this, f, "f").affectedObjectsGrid.columns.types,
|
|
221
|
+
"column-name-position": "text",
|
|
222
|
+
class: "tabular-grid-column",
|
|
223
|
+
settingable: false,
|
|
224
|
+
size: r.tabularGrid.colSize.maxContent
|
|
225
|
+
}), i("ch-tabular-grid-column", {
|
|
226
|
+
"column-name": h(this, f, "f").affectedObjectsGrid.columns.description,
|
|
227
|
+
"column-name-position": "text",
|
|
228
|
+
class: "tabular-grid-column",
|
|
229
|
+
settingable: false,
|
|
230
|
+
size: r.tabularGrid.colSize.auto
|
|
231
|
+
}), i("ch-tabular-grid-column", {
|
|
232
|
+
"column-name": h(this, f, "f").affectedObjectsGrid.columns.action,
|
|
233
|
+
"column-name-position": "text",
|
|
234
|
+
class: "tabular-grid-column",
|
|
235
|
+
settingable: false,
|
|
236
|
+
size: r.tabularGrid.colSize.maxContent
|
|
237
|
+
})), this.historyDetail && this.historyDetail.objects.length > 0 ? i("ch-tabular-grid-rowset", {
|
|
238
|
+
class: "tabular-grid-rowset"
|
|
239
|
+
}, e.map((t => i("ch-tabular-grid-row", {
|
|
240
|
+
class: "tabular-grid-row"
|
|
241
|
+
}, i("ch-tabular-grid-cell", {
|
|
242
|
+
class: "tabular-grid-cell"
|
|
243
|
+
}, t.name), i("ch-tabular-grid-cell", {
|
|
244
|
+
class: "tabular-grid-cell"
|
|
245
|
+
}, o(t.type)), i("ch-tabular-grid-cell", {
|
|
246
|
+
class: "tabular-grid-cell"
|
|
247
|
+
}, t.description), i("ch-tabular-grid-cell", {
|
|
248
|
+
class: "tabular-grid-cell"
|
|
249
|
+
}, c(t.state)))))) : i("ch-tabular-grid-rowset", {
|
|
250
|
+
class: "tabular-grid-rowset"
|
|
251
|
+
}, i("ch-tabular-grid-rowset-empty", null, i("gx-ide-empty-state", {
|
|
252
|
+
stateIconSrc: A,
|
|
253
|
+
stateTitle: h(this, f, "f").emptyHistoryDetailText,
|
|
254
|
+
isAnimated: true
|
|
255
|
+
}))), i("ch-tabular-grid-row", {
|
|
256
|
+
class: "tabular-grid-row"
|
|
257
|
+
}));
|
|
258
|
+
}));
|
|
259
|
+
E.set(this, (() => this.loading && i("div", {
|
|
260
|
+
class: "main__content scrollable"
|
|
261
|
+
}, i("gx-ide-loader", {
|
|
262
|
+
loaderTitle: h(this, f, "f").loader.title,
|
|
263
|
+
show: true,
|
|
264
|
+
description: h(this, f, "f").loader.description
|
|
265
|
+
}))));
|
|
266
|
+
F.set(this, (t => {
|
|
267
|
+
const i = t.split(" - ");
|
|
268
|
+
const e = new Date(i[1]);
|
|
269
|
+
const a = l(e, "date-time");
|
|
270
|
+
return `${i[0]} - ${a} - ${i[2]}`;
|
|
271
|
+
}));
|
|
272
|
+
this.historyDetail = undefined;
|
|
273
|
+
this.objects = [];
|
|
274
|
+
this.isFirstLoad = true;
|
|
275
|
+
this.sidebarExpanded = true;
|
|
276
|
+
this.filtersHidden = true;
|
|
277
|
+
this.loading = true;
|
|
278
|
+
this.selectedRevisionId = undefined;
|
|
279
|
+
this.hasActiveVersion = false;
|
|
280
|
+
this.types = undefined;
|
|
281
|
+
this.itemContextMenuCallback = undefined;
|
|
282
|
+
this.gridContextMenuCallback = undefined;
|
|
283
|
+
this.selectedVersionId = undefined;
|
|
284
|
+
this.versions = [];
|
|
285
|
+
this.loadCallback = undefined;
|
|
286
|
+
this.loadDetailCallback = undefined;
|
|
287
|
+
this.selectedVersionChangeCallback = undefined;
|
|
288
|
+
}
|
|
289
|
+
async selectedVersionIdChanged(t) {
|
|
290
|
+
var i;
|
|
291
|
+
this.selectedVersionId = t;
|
|
292
|
+
// Reset filters
|
|
293
|
+
h(this, b, "f").value = null;
|
|
294
|
+
h(this, g, "f").value = null;
|
|
295
|
+
h(this, v, "f").value = null;
|
|
296
|
+
h(this, p, "f").value = null;
|
|
297
|
+
h(this, y, "f").value = null;
|
|
298
|
+
h(this, w, "f").value = (i = h(this, m, "f")[0]) === null || i === void 0 ? void 0 : i.value;
|
|
299
|
+
await h(this, _, "f").call(this, t);
|
|
300
|
+
}
|
|
301
|
+
async versionsListChanged(t) {
|
|
302
|
+
this.versions = t;
|
|
303
|
+
this.hasActiveVersion = hasActiveVersionInList(t);
|
|
304
|
+
if (t.length > 0 && this.selectedVersionId && this.isFirstLoad) {
|
|
305
|
+
await h(this, _, "f").call(this, this.selectedVersionId);
|
|
306
|
+
this.isFirstLoad = false;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
async componentWillLoad() {
|
|
310
|
+
u(this, f, await n.getComponentStrings(this.el), "f");
|
|
311
|
+
u(this, m, mapObjectTypeToComboBoxItemModel(this.types), "f");
|
|
312
|
+
}
|
|
313
|
+
async componentDidLoad() {
|
|
314
|
+
h(this, x, "f").addEventListener("expandedChange", (t => {
|
|
315
|
+
this.sidebarExpanded = t.detail;
|
|
316
|
+
}));
|
|
317
|
+
}
|
|
318
|
+
render() {
|
|
319
|
+
var t;
|
|
320
|
+
return i(e, {
|
|
321
|
+
class: "widget"
|
|
322
|
+
}, i("ch-theme", {
|
|
323
|
+
model: I
|
|
324
|
+
}), i("ch-sidebar", {
|
|
325
|
+
ref: t => u(this, x, t, "f"),
|
|
326
|
+
class: "sidebar",
|
|
327
|
+
expanded: this.sidebarExpanded,
|
|
328
|
+
expandButtonCollapseAccessibleName: h(this, f, "f").sidebar.collapseAriaLabel,
|
|
329
|
+
expandButtonExpandAccessibleName: h(this, f, "f").sidebar.expandAriaLabel,
|
|
330
|
+
showExpandButton: true
|
|
331
|
+
}, i("gx-ide-select-kb-items", {
|
|
332
|
+
class: {
|
|
333
|
+
"sidebar-expanded": this.sidebarExpanded,
|
|
334
|
+
"has-active-version": this.hasActiveVersion
|
|
335
|
+
},
|
|
336
|
+
checkboxType: "none",
|
|
337
|
+
itemsList: this.versions,
|
|
338
|
+
expandOnClick: false,
|
|
339
|
+
selectionChanged: this.selectedVersionChangeCallback,
|
|
340
|
+
itemContextMenuCallback: this.itemContextMenuCallback
|
|
341
|
+
})), i("main", {
|
|
342
|
+
class: "main spacing-body-block-start spacing-body-inline"
|
|
343
|
+
}, i("div", {
|
|
344
|
+
class: "main__header"
|
|
345
|
+
}, i("div", {
|
|
346
|
+
class: "search-filter"
|
|
347
|
+
}, i("div", {
|
|
348
|
+
class: "field field-inline"
|
|
349
|
+
}, i("label", {
|
|
350
|
+
class: "label",
|
|
351
|
+
htmlFor: "search"
|
|
352
|
+
}, h(this, f, "f").filters.search), i("ch-edit", {
|
|
353
|
+
value: "",
|
|
354
|
+
class: "input",
|
|
355
|
+
startImgSrc: S,
|
|
356
|
+
part: "search",
|
|
357
|
+
id: "search",
|
|
358
|
+
ref: t => u(this, b, t, "f")
|
|
359
|
+
})), i("button", {
|
|
360
|
+
id: "filter-toggle-button",
|
|
361
|
+
class: "button-teritary button-icon-only",
|
|
362
|
+
"aria-label": h(this, f, "f").searchFilter.filterAriaLabel,
|
|
363
|
+
"aria-expanded": this.filtersHidden ? "false" : "true",
|
|
364
|
+
"aria-controls": "filters-container",
|
|
365
|
+
onClick: () => h(this, j, "f").call(this)
|
|
366
|
+
}, i("ch-image", {
|
|
367
|
+
class: "icon-md",
|
|
368
|
+
src: L
|
|
369
|
+
})), i("button", {
|
|
370
|
+
class: "button-teritary button-icon-only",
|
|
371
|
+
"aria-label": h(this, f, "f").searchFilter.reloadAriaLabel,
|
|
372
|
+
onClick: () => h(this, _, "f").call(this, this.selectedVersionId),
|
|
373
|
+
part: h(this, f, "f").searchFilter.reloadAriaLabel
|
|
374
|
+
}, i("ch-image", {
|
|
375
|
+
class: "icon-md",
|
|
376
|
+
src: D
|
|
377
|
+
}))), i("div", {
|
|
378
|
+
id: "filters-container",
|
|
379
|
+
"aria-labelledby": "filter-toggle-button",
|
|
380
|
+
class: {
|
|
381
|
+
"filters-container-visible": !this.filtersHidden,
|
|
382
|
+
"filters-container": true
|
|
383
|
+
},
|
|
384
|
+
inert: this.filtersHidden,
|
|
385
|
+
hidden: this.filtersHidden
|
|
386
|
+
}, i("div", null, i("div", {
|
|
387
|
+
class: "filters-grid"
|
|
388
|
+
}, i("div", {
|
|
389
|
+
class: "field field-block field-from"
|
|
390
|
+
}, i("label", {
|
|
391
|
+
class: "label",
|
|
392
|
+
htmlFor: "from"
|
|
393
|
+
}, h(this, f, "f").filters.from), i("ch-edit", {
|
|
394
|
+
value: "",
|
|
395
|
+
class: "input",
|
|
396
|
+
type: "date",
|
|
397
|
+
part: "from",
|
|
398
|
+
id: "from",
|
|
399
|
+
ref: t => u(this, g, t, "f")
|
|
400
|
+
})), i("div", {
|
|
401
|
+
class: "field field-block field-to"
|
|
402
|
+
}, i("label", {
|
|
403
|
+
class: "label",
|
|
404
|
+
htmlFor: "to"
|
|
405
|
+
}, h(this, f, "f").filters.to), i("ch-edit", {
|
|
406
|
+
value: "",
|
|
407
|
+
class: "input",
|
|
408
|
+
type: "date",
|
|
409
|
+
id: "to",
|
|
410
|
+
ref: t => u(this, v, t, "f")
|
|
411
|
+
})), i("div", {
|
|
412
|
+
class: "field field-block field-type"
|
|
413
|
+
}, i("label", {
|
|
414
|
+
class: "label",
|
|
415
|
+
htmlFor: "type"
|
|
416
|
+
}, h(this, f, "f").filters.type), i("ch-combo-box-render", {
|
|
417
|
+
accessibleName: "types",
|
|
418
|
+
class: "combo-box",
|
|
419
|
+
part: "type",
|
|
420
|
+
model: h(this, m, "f"),
|
|
421
|
+
value: (t = h(this, m, "f")[0]) === null || t === void 0 ? void 0 : t.value,
|
|
422
|
+
ref: t => u(this, w, t, "f")
|
|
423
|
+
})), i("div", {
|
|
424
|
+
class: "field field-block field-user"
|
|
425
|
+
}, i("label", {
|
|
426
|
+
class: "label",
|
|
427
|
+
htmlFor: "user"
|
|
428
|
+
}, h(this, f, "f").filters.user), i("ch-edit", {
|
|
429
|
+
value: "",
|
|
430
|
+
part: "user",
|
|
431
|
+
class: "input",
|
|
432
|
+
id: "user",
|
|
433
|
+
ref: t => u(this, y, t, "f")
|
|
434
|
+
})), i("div", {
|
|
435
|
+
class: "field field-block field-revision"
|
|
436
|
+
}, i("label", {
|
|
437
|
+
class: "label",
|
|
438
|
+
htmlFor: "revision"
|
|
439
|
+
}, h(this, f, "f").filters.revision), i("ch-edit", {
|
|
440
|
+
value: "",
|
|
441
|
+
part: "revision",
|
|
442
|
+
class: "input",
|
|
443
|
+
id: "revision",
|
|
444
|
+
ref: t => u(this, p, t, "f")
|
|
445
|
+
})))))), h(this, E, "f").call(this), !this.loading && i("div", {
|
|
446
|
+
class: "main__content scrollable"
|
|
447
|
+
}, h(this, z, "f").call(this), i("div", {
|
|
448
|
+
class: "field field-block"
|
|
449
|
+
}, i("label", {
|
|
450
|
+
class: "label",
|
|
451
|
+
htmlFor: "comment-area"
|
|
452
|
+
}, this.historyDetail ? this.historyDetail.title : null), i("ch-edit", {
|
|
453
|
+
class: "input comment-text-area",
|
|
454
|
+
value: this.historyDetail ? this.historyDetail.comment : null,
|
|
455
|
+
multiline: true,
|
|
456
|
+
autoGrow: true,
|
|
457
|
+
readonly: true,
|
|
458
|
+
part: "comment-area",
|
|
459
|
+
id: "comment-area"
|
|
460
|
+
})), h(this, T, "f").call(this))));
|
|
461
|
+
}
|
|
462
|
+
static get assetsDirs() {
|
|
463
|
+
return [ "gx-ide-assets/team-dev-history" ];
|
|
464
|
+
}
|
|
465
|
+
get el() {
|
|
466
|
+
return a(this);
|
|
467
|
+
}
|
|
468
|
+
static get watchers() {
|
|
469
|
+
return {
|
|
470
|
+
selectedVersionId: [ "selectedVersionIdChanged" ],
|
|
471
|
+
versions: [ "versionsListChanged" ]
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
f = new WeakMap, m = new WeakMap, g = new WeakMap, p = new WeakMap, b = new WeakMap,
|
|
477
|
+
v = new WeakMap, w = new WeakMap, y = new WeakMap, x = new WeakMap, k = new WeakMap,
|
|
478
|
+
_ = new WeakMap, M = new WeakMap, W = new WeakMap, C = new WeakMap, j = new WeakMap,
|
|
479
|
+
z = new WeakMap, T = new WeakMap, E = new WeakMap, F = new WeakMap;
|
|
480
|
+
|
|
481
|
+
$.style = d;
|
|
482
|
+
|
|
483
|
+
export { $ as gx_ide_team_dev_history };
|
|
484
|
+
//# sourceMappingURL=p-ca706700.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","revisionId","historyDetail","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","selectedRevisionId","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","selectedVersionId","versionsListChanged","newVersionsList","versions","hasActiveVersion","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(newSelectedVersionId: string) {\n this.selectedVersionId = newSelectedVersionId;\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (versionId: string): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(obj.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\nexport type ObjectState = \"Inserted\" | \"Modified\" | \"Deleted\";\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":"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"}
|