@genexus/genexus-ide-ui 1.1.70 → 1.1.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{utilities-25be3069.js → constants-a2ac1812.js} +70 -1
- package/dist/cjs/constants-a2ac1812.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +7 -8
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js +5 -4
- package/dist/cjs/gx-ide-restore-version.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +28 -17
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +8 -7
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +6 -5
- package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +21 -21
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +25 -78
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{tabular-grid-render-c0e0738c.js → tabular-grid-render-37b7153b.js} +12 -86
- package/dist/cjs/tabular-grid-render-37b7153b.js.map +1 -0
- package/dist/collection/components/restore-version/gx-ide-assets/restore-version/shortcuts.json +15 -0
- package/dist/collection/components/restore-version/restore-version.js +6 -5
- package/dist/collection/components/restore-version/restore-version.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js +75 -28
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js +7 -6
- package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js.map +1 -1
- package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +8 -9
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
- package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +2 -2
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
- package/dist/collection/components/team-dev/history/history.css +3 -0
- package/dist/collection/components/team-dev/history/history.js +52 -91
- package/dist/collection/components/team-dev/history/history.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/shortcuts.json +15 -0
- package/dist/collection/components/team-dev/server-selector/server-selector.js +9 -7
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/collection/components/team-dev/share-kb/gx-ide-assets/share-kb/shortcuts.json +1 -1
- package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -2
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/components/{utilities.js → constants2.js} +68 -2
- package/dist/components/constants2.js.map +1 -0
- package/dist/components/gx-ide-connect-gx-server.js +8 -9
- package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +2 -2
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-restore-version.js +6 -5
- package/dist/components/gx-ide-restore-version.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +9 -8
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +2 -2
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +7 -6
- package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +2 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +24 -85
- package/dist/components/gx-ide-team-dev-history.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/select-kb-items.js +32 -20
- package/dist/components/select-kb-items.js.map +1 -1
- package/dist/components/tabular-grid-render.js +2 -72
- package/dist/components/tabular-grid-render.js.map +1 -1
- package/dist/esm/{utilities-efeffb76.js → constants-31612239.js} +68 -2
- package/dist/esm/constants-31612239.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +8 -9
- package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-restore-version.entry.js +6 -5
- package/dist/esm/gx-ide-restore-version.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +28 -17
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +9 -8
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +2 -2
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +7 -6
- package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js +5 -5
- package/dist/esm/gx-ide-team-dev-history.entry.js +25 -78
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{tabular-grid-render-c868fa55.js → tabular-grid-render-d06826a5.js} +3 -74
- package/dist/esm/tabular-grid-render-d06826a5.js.map +1 -0
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/shortcuts.json +6 -1
- package/dist/genexus-ide-ui/gx-ide-assets/restore-version/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/share-kb/shortcuts.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/p-025c9aa4.entry.js +239 -0
- package/dist/genexus-ide-ui/p-025c9aa4.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-082015be.js +244 -0
- package/dist/{esm/tabular-grid-render-c868fa55.js.map → genexus-ide-ui/p-082015be.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-972dc777.entry.js → p-1351412d.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-8897c6de.entry.js → p-2d6228e8.entry.js} +201 -194
- package/dist/genexus-ide-ui/p-2d6228e8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-32b37b3d.js +163 -0
- package/dist/genexus-ide-ui/p-32b37b3d.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a543dfdb.entry.js → p-451994e8.entry.js} +104 -95
- package/dist/genexus-ide-ui/p-451994e8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-85cf50c5.entry.js → p-74f8bd45.entry.js} +78 -132
- package/dist/genexus-ide-ui/p-74f8bd45.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c3cc759d.entry.js → p-8dedbcd9.entry.js} +64 -58
- package/dist/genexus-ide-ui/p-8dedbcd9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js → p-92a027bc.entry.js} +33 -33
- package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js → p-941f470f.entry.js} +3 -1
- package/dist/genexus-ide-ui/{p-9ffa7afd.entry.js.map → p-941f470f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-93e79d19.entry.js → p-ac79f7e8.entry.js} +59 -57
- package/dist/genexus-ide-ui/{p-93e79d19.entry.js.map → p-ac79f7e8.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js → p-c256dc59.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-5e56280c.entry.js → p-eeeb3d52.entry.js} +199 -192
- package/dist/genexus-ide-ui/p-eeeb3d52.entry.js.map +1 -0
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +12 -3
- package/dist/types/components/team-dev/history/history.d.ts +3 -12
- package/dist/types/components.d.ts +22 -20
- package/package.json +1 -1
- package/dist/cjs/tabular-grid-render-c0e0738c.js.map +0 -1
- package/dist/cjs/utilities-25be3069.js.map +0 -1
- package/dist/components/utilities.js.map +0 -1
- package/dist/esm/utilities-efeffb76.js.map +0 -1
- package/dist/genexus-ide-ui/p-22bdcf23.js +0 -322
- package/dist/genexus-ide-ui/p-22bdcf23.js.map +0 -1
- package/dist/genexus-ide-ui/p-5e56280c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-85cf50c5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8897c6de.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a105f903.entry.js +0 -234
- package/dist/genexus-ide-ui/p-a105f903.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a543dfdb.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c3cc759d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-db6c6085.js +0 -95
- package/dist/genexus-ide-ui/p-db6c6085.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-972dc777.entry.js.map → p-1351412d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6ee5d68e.entry.js.map → p-92a027bc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e2fd2c24.entry.js.map → p-c256dc59.entry.js.map} +0 -0
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./p-9b9ccd0c.js";
|
|
2
|
-
|
|
3
|
-
import { g as l } from "./p-d42e842b.js";
|
|
4
|
-
|
|
5
|
-
import "./p-d4ecd3bb.js";
|
|
6
|
-
|
|
7
|
-
import "lit";
|
|
8
|
-
|
|
9
|
-
import "lit/directives/when.js";
|
|
10
|
-
|
|
11
|
-
import "lit/directives/if-defined.js";
|
|
12
|
-
|
|
13
|
-
import { r } from "./p-db6c6085.js";
|
|
14
|
-
|
|
15
|
-
import { f as a } from "./p-5bab65ea.js";
|
|
16
|
-
|
|
17
|
-
import { h as t } from "./p-9663f418.js";
|
|
18
|
-
|
|
19
|
-
import { c as o } from "./p-c5196b3b.js";
|
|
20
|
-
|
|
21
|
-
const s = "All";
|
|
22
|
-
|
|
23
|
-
const c = {
|
|
24
|
-
HEADER: "header spacing-body-inline spacing-body-block-start",
|
|
25
|
-
HEADER_DETAILS: "header__details",
|
|
26
|
-
FILTER: "filter",
|
|
27
|
-
MAIN: "main spacing-body",
|
|
28
|
-
GRID_CELL_DESCRIPTION: "tabular-grid-cell-description-custom-selector"
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const n = {
|
|
32
|
-
add: l({
|
|
33
|
-
category: "system",
|
|
34
|
-
name: "add",
|
|
35
|
-
colorType: "on-elevation"
|
|
36
|
-
}),
|
|
37
|
-
edit: l({
|
|
38
|
-
category: "system",
|
|
39
|
-
name: "edit",
|
|
40
|
-
colorType: "on-elevation"
|
|
41
|
-
}),
|
|
42
|
-
error: l({
|
|
43
|
-
category: "system",
|
|
44
|
-
name: "error",
|
|
45
|
-
colorType: "error"
|
|
46
|
-
}),
|
|
47
|
-
filter: l({
|
|
48
|
-
category: "window-tools",
|
|
49
|
-
name: "filter",
|
|
50
|
-
colorType: "neutral"
|
|
51
|
-
}),
|
|
52
|
-
filterWithConditions: l({
|
|
53
|
-
category: "window-tools",
|
|
54
|
-
name: "filter-conditions",
|
|
55
|
-
colorType: "neutral"
|
|
56
|
-
}),
|
|
57
|
-
info: l({
|
|
58
|
-
category: "system",
|
|
59
|
-
name: "information",
|
|
60
|
-
colorType: "on-elevation"
|
|
61
|
-
}),
|
|
62
|
-
refresh: l({
|
|
63
|
-
category: "gemini-tools",
|
|
64
|
-
name: "reset",
|
|
65
|
-
colorType: "neutral"
|
|
66
|
-
}),
|
|
67
|
-
search: l({
|
|
68
|
-
category: "system",
|
|
69
|
-
name: "search",
|
|
70
|
-
colorType: "on-elevation"
|
|
71
|
-
}),
|
|
72
|
-
success: l({
|
|
73
|
-
category: "system",
|
|
74
|
-
name: "check",
|
|
75
|
-
colorType: "success"
|
|
76
|
-
}),
|
|
77
|
-
substract: l({
|
|
78
|
-
category: "system",
|
|
79
|
-
name: "substract",
|
|
80
|
-
colorType: "on-elevation"
|
|
81
|
-
}),
|
|
82
|
-
warning: l({
|
|
83
|
-
category: "system",
|
|
84
|
-
name: "warning",
|
|
85
|
-
colorType: "warning"
|
|
86
|
-
})
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
// stencil
|
|
90
|
-
const i = "button-action-custom-selector";
|
|
91
|
-
|
|
92
|
-
const u = {
|
|
93
|
-
action: "action",
|
|
94
|
-
description: "description",
|
|
95
|
-
lastSynchronized: "lastSynchronized",
|
|
96
|
-
localState: "localState",
|
|
97
|
-
modifiedOn: "modifiedOn",
|
|
98
|
-
module: "module",
|
|
99
|
-
name: "name",
|
|
100
|
-
status: "status",
|
|
101
|
-
type: "type"
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const renderStateCellContent = (l, r) => {
|
|
105
|
-
let a;
|
|
106
|
-
let t;
|
|
107
|
-
let o;
|
|
108
|
-
if (l === "deleted") {
|
|
109
|
-
a = n.substract;
|
|
110
|
-
t = r.states.deleted;
|
|
111
|
-
o = "--mer-icon__error";
|
|
112
|
-
} else if (l === "inserted") {
|
|
113
|
-
a = n.add;
|
|
114
|
-
t = r.states.inserted;
|
|
115
|
-
o = "--mer-icon__success";
|
|
116
|
-
} else if (l === "modified") {
|
|
117
|
-
a = n.edit;
|
|
118
|
-
t = r.states.modified;
|
|
119
|
-
o = "--mer-icon__warning";
|
|
120
|
-
} else if (l === "conflicted") {
|
|
121
|
-
a = n.warning;
|
|
122
|
-
t = r.states.conflicted;
|
|
123
|
-
o = "--mer-icon__warning";
|
|
124
|
-
} else if (!l) {
|
|
125
|
-
// proably is "ignored"
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
return e("span", {
|
|
129
|
-
class: "custom-icon-text-wrapper"
|
|
130
|
-
}, e("ch-image", {
|
|
131
|
-
type: "mask",
|
|
132
|
-
class: "icon-md",
|
|
133
|
-
src: a,
|
|
134
|
-
style: {
|
|
135
|
-
backgroundColor: `var(${o})`
|
|
136
|
-
}
|
|
137
|
-
}), `${t}`);
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
const renderObjectStatus = (l, r, a, t, o) => {
|
|
141
|
-
const s = r.get(l);
|
|
142
|
-
const c = s === "pending" && a ? o.status.commit : o.status[s];
|
|
143
|
-
if (s === "committing") {
|
|
144
|
-
return e("span", {
|
|
145
|
-
class: "spinner-caption"
|
|
146
|
-
}, c);
|
|
147
|
-
}
|
|
148
|
-
const n = `pill pill--${s}`;
|
|
149
|
-
if (a && s === "pending") {
|
|
150
|
-
return e("button", {
|
|
151
|
-
class: {
|
|
152
|
-
"button-secondary": true,
|
|
153
|
-
"button-icon-and-text": true,
|
|
154
|
-
pill: true,
|
|
155
|
-
"pill--update": true,
|
|
156
|
-
[i]: true
|
|
157
|
-
},
|
|
158
|
-
onClick: t(l)
|
|
159
|
-
}, c);
|
|
160
|
-
} else {
|
|
161
|
-
return e("span", {
|
|
162
|
-
class: n
|
|
163
|
-
}, c);
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const renderTabularGridRows = (l, o, s, i, u, d, m, g, b, p, f) => {
|
|
168
|
-
let y;
|
|
169
|
-
if (l === "pending") {
|
|
170
|
-
y = o;
|
|
171
|
-
} else if (l === "ignored") {
|
|
172
|
-
y = s;
|
|
173
|
-
}
|
|
174
|
-
p = p.toLowerCase();
|
|
175
|
-
const h = y.map((o => {
|
|
176
|
-
const s = i.has(o.id);
|
|
177
|
-
const y = s || l === "ignored";
|
|
178
|
-
const h = u.has(o.id);
|
|
179
|
-
const w = d.get(o.id);
|
|
180
|
-
return e("ch-tabular-grid-row", {
|
|
181
|
-
class: "tabular-grid-row",
|
|
182
|
-
key: o.id,
|
|
183
|
-
rowid: o.id,
|
|
184
|
-
ref: e => h && (e === null || e === void 0 ? void 0 : e.setAttribute("marked", "true"))
|
|
185
|
-
}, e("ch-tabular-grid-cell", {
|
|
186
|
-
"cell-type": "rich",
|
|
187
|
-
"row-selector": "true",
|
|
188
|
-
class: {
|
|
189
|
-
"tabular-grid-cell": true,
|
|
190
|
-
"no-checkbox-custom-selector": y
|
|
191
|
-
},
|
|
192
|
-
size: "max-content"
|
|
193
|
-
}, e("div", null, t(o.name, p))), e("ch-tabular-grid-cell", {
|
|
194
|
-
class: "tabular-grid-cell"
|
|
195
|
-
}, r(o.type)), e("ch-tabular-grid-cell", {
|
|
196
|
-
class: {
|
|
197
|
-
"tabular-grid-cell": true,
|
|
198
|
-
[c.GRID_CELL_DESCRIPTION]: true
|
|
199
|
-
}
|
|
200
|
-
}, e("div", null, t(o.description, p))), e("ch-tabular-grid-cell", {
|
|
201
|
-
class: "tabular-grid-cell"
|
|
202
|
-
}, a(o.modifiedOn)), e("ch-tabular-grid-cell", {
|
|
203
|
-
class: "tabular-grid-cell"
|
|
204
|
-
}, o.module), e("ch-tabular-grid-cell", {
|
|
205
|
-
class: "tabular-grid-cell"
|
|
206
|
-
}, renderStateCellContent(o.state, f)), e("ch-tabular-grid-cell", {
|
|
207
|
-
class: "tabular-grid-cell"
|
|
208
|
-
}, a(o.lastSynchronized)), e("ch-tabular-grid-cell", {
|
|
209
|
-
class: "tabular-grid-cell tabular-grid-cell--for-pill"
|
|
210
|
-
}, renderObjectStatus(o.id, b, m, g, f)), (w === null || w === void 0 ? void 0 : w.length) && e("ch-tabular-grid-rowset", {
|
|
211
|
-
class: "tabular-grid-rowset"
|
|
212
|
-
}, e("ch-tabular-grid-rowset-empty", {
|
|
213
|
-
class: {
|
|
214
|
-
"tabular-grid-rowset-empty": true
|
|
215
|
-
}
|
|
216
|
-
}, e("ul", {
|
|
217
|
-
class: "messages-list"
|
|
218
|
-
}, w.map((l => {
|
|
219
|
-
let r;
|
|
220
|
-
if (l.type === "error") {
|
|
221
|
-
r = n.error;
|
|
222
|
-
} else if (l.type === "warning") {
|
|
223
|
-
r = n.warning;
|
|
224
|
-
} else if (l.type === "success") {
|
|
225
|
-
r = n.success;
|
|
226
|
-
} else {
|
|
227
|
-
// info
|
|
228
|
-
r = n.info;
|
|
229
|
-
}
|
|
230
|
-
return e("li", {
|
|
231
|
-
class: "message-description"
|
|
232
|
-
}, e("ch-image", {
|
|
233
|
-
class: "icon-md message-icon",
|
|
234
|
-
src: r
|
|
235
|
-
}), l.text);
|
|
236
|
-
}))))));
|
|
237
|
-
}));
|
|
238
|
-
return h;
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
const renderTabularGridColumns = (l, r = false, a, t, s, c) => {
|
|
242
|
-
const n = r ? o.tabularGrid.colSize.auto : o.tabularGrid.colSize.maxContent;
|
|
243
|
-
return e("ch-tabular-grid-columnset", {
|
|
244
|
-
class: "tabular-grid-column-set"
|
|
245
|
-
}, !l.includes("name") && e("ch-tabular-grid-column", {
|
|
246
|
-
class: "tabular-grid-column",
|
|
247
|
-
columnId: u.name,
|
|
248
|
-
columnName: s.objects.name,
|
|
249
|
-
columnType: "rich",
|
|
250
|
-
richRowSelector: c,
|
|
251
|
-
richRowSelectorMode: "mark",
|
|
252
|
-
settingable: false,
|
|
253
|
-
sortable: true,
|
|
254
|
-
onColumnSortChanged: a,
|
|
255
|
-
onColumnSelectorClicked: t,
|
|
256
|
-
size: n
|
|
257
|
-
}), !l.includes("type") && e("ch-tabular-grid-column", {
|
|
258
|
-
class: "tabular-grid-column",
|
|
259
|
-
columnId: u.type,
|
|
260
|
-
columnName: s.objects.type,
|
|
261
|
-
settingable: false,
|
|
262
|
-
sortable: true,
|
|
263
|
-
onColumnSortChanged: a,
|
|
264
|
-
size: n
|
|
265
|
-
}), !l.includes("description") && e("ch-tabular-grid-column", {
|
|
266
|
-
class: "tabular-grid-column",
|
|
267
|
-
columnId: u.description,
|
|
268
|
-
columnName: s.objects.description,
|
|
269
|
-
settingable: false,
|
|
270
|
-
sortable: true,
|
|
271
|
-
onColumnSortChanged: a,
|
|
272
|
-
size: o.tabularGrid.colSize.description
|
|
273
|
-
}), !l.includes("modifiedOn") && e("ch-tabular-grid-column", {
|
|
274
|
-
class: "tabular-grid-column",
|
|
275
|
-
columnId: u.modifiedOn,
|
|
276
|
-
columnName: s.objects.modifiedOn,
|
|
277
|
-
sortable: true,
|
|
278
|
-
onColumnSortChanged: a,
|
|
279
|
-
settingable: false,
|
|
280
|
-
size: n
|
|
281
|
-
}), !l.includes("module") && e("ch-tabular-grid-column", {
|
|
282
|
-
class: "tabular-grid-column",
|
|
283
|
-
columnId: u.module,
|
|
284
|
-
columnName: s.objects.module,
|
|
285
|
-
sortable: true,
|
|
286
|
-
onColumnSortChanged: a,
|
|
287
|
-
settingable: false,
|
|
288
|
-
size: n
|
|
289
|
-
}), !l.includes("localState") && e("ch-tabular-grid-column", {
|
|
290
|
-
class: "tabular-grid-column",
|
|
291
|
-
columnId: u.localState,
|
|
292
|
-
columnName: s.objects.localState,
|
|
293
|
-
sortable: false,
|
|
294
|
-
settingable: false,
|
|
295
|
-
size: n
|
|
296
|
-
}), !l.includes("lastSynchronized") && e("ch-tabular-grid-column", {
|
|
297
|
-
class: "tabular-grid-column",
|
|
298
|
-
columnId: u.lastSynchronized,
|
|
299
|
-
columnName: s.objects.lastSynchronized,
|
|
300
|
-
settingable: false,
|
|
301
|
-
sortable: true,
|
|
302
|
-
onColumnSortChanged: a,
|
|
303
|
-
size: n
|
|
304
|
-
}), !l.includes("action") && e("ch-tabular-grid-column", {
|
|
305
|
-
class: "tabular-grid-column",
|
|
306
|
-
columnId: u.action,
|
|
307
|
-
columnName: s.objects.action,
|
|
308
|
-
sortable: false,
|
|
309
|
-
settingable: false,
|
|
310
|
-
size: n
|
|
311
|
-
}), !l.includes("status") && e("ch-tabular-grid-column", {
|
|
312
|
-
class: "tabular-grid-column",
|
|
313
|
-
columnId: u.status,
|
|
314
|
-
columnName: s.objects.status,
|
|
315
|
-
sortable: false,
|
|
316
|
-
settingable: false,
|
|
317
|
-
size: r ? "auto" : "100px"
|
|
318
|
-
}));
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
export { s as A, u as C, n as I, c as a, renderTabularGridRows as b, renderTabularGridColumns as r };
|
|
322
|
-
//# sourceMappingURL=p-22bdcf23.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ALL_VALUE","CSS_SELECTORS","HEADER","HEADER_DETAILS","FILTER","MAIN","GRID_CELL_DESCRIPTION","ICONS","add","getIconPath","category","name","colorType","edit","error","filter","filterWithConditions","info","refresh","search","success","substract","warning","BUTTON_ACTION_SELECTOR","COLUMNS_IDS","action","description","lastSynchronized","localState","modifiedOn","module","status","type","renderStateCellContent","componentLocale","icon","caption","iconColor","states","deleted","inserted","modified","conflicted","h","class","src","style","backgroundColor","renderObjectStatus","objectId","objectsStatusMap","updatePillAsButton","commitSingleObject","get","commit","classes","pill","onClick","renderTabularGridRows","pendingObjectsAfterFilter","ignoredObjectsAfterFilter","alreadyUpdatedObjectsIdsSet","markedObjectsSet","objectsMessagesDataMap","searchValue","objects","toLowerCase","filteredRows","map","object","alreadyUpdated","has","id","hideCheckbox","marked","messages","key","rowid","ref","el","setAttribute","size","hiChar","renderObjectTypeWithIcon","CLASSES","formatDate","state","length","message","MESSAGE_ICON","text","renderTabularGridColumns","ignoredGridColumns","gridIsEmpty","sortTabularGridColumnCallback","columnSelectorClickedCallback","showRichRowSelector","colSize","config","tabularGrid","auto","maxContent","includes","columnId","columnName","columnType","richRowSelector","richRowSelectorMode","settingable","sortable","onColumnSortChanged","onColumnSelectorClicked"],"sources":["src/components/team-dev/version-control/common/constants.ts","src/components/team-dev/version-control/common/tabular-grid-render.tsx"],"sourcesContent":["import { getIconPath } from \"@genexus/mercury\";\n\nexport const ALL_VALUE = \"All\";\nexport const ALL_MODULES = \"All Modules\";\nexport const ALL_TYPES = \"All Types\";\n\nexport const CSS_SELECTORS = {\n HEADER: \"header spacing-body-inline spacing-body-block-start\",\n HEADER_DETAILS: \"header__details\",\n FILTER: \"filter\",\n MAIN: \"main spacing-body\",\n GRID_CELL_DESCRIPTION: \"tabular-grid-cell-description-custom-selector\"\n};\n\nconst ICONS = {\n add: getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n }),\n edit: getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n }),\n error: getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n }),\n filter: getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"neutral\"\n }),\n filterWithConditions: getIconPath({\n category: \"window-tools\",\n name: \"filter-conditions\",\n colorType: \"neutral\"\n }),\n info: getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-elevation\"\n }),\n refresh: getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"neutral\"\n }),\n search: getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n }),\n success: getIconPath({\n category: \"system\",\n name: \"check\",\n colorType: \"success\"\n }),\n substract: getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n }),\n warning: getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n })\n};\nexport default ICONS;\n","// stencil\nimport { h, JSX } from \"@stencil/core\";\n\n// external libraries\nimport HTMLChTabularGridRowElement from \"@genexus/chameleon-controls-library/dist/types/components/tabular-grid/row/tabular-grid-row\";\n\n// local\nimport {\n MessageData,\n ModifiedObjectData,\n SourceType,\n StatusInternal\n} from \"./types\";\nimport { ObjectState } from \"../common/types\";\nimport ICONS from \"./constants\";\nimport { renderObjectTypeWithIcon } from \"../../common/utilities\";\nimport { formatDate } from \"../../../../common/helpers\";\nimport { CSS_SELECTORS as CLASSES } from \"./constants\";\nimport { hiChar } from \"../../../ww-files/helpers\";\nimport { config } from \"../../../../common/config\";\nimport {\n TabularGridColumnSelectorClickedEvent,\n TabularGridColumnSortChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nconst BUTTON_ACTION_SELECTOR = \"button-action-custom-selector\";\nexport const COLUMNS_IDS = {\n action: \"action\",\n description: \"description\",\n lastSynchronized: \"lastSynchronized\",\n localState: \"localState\",\n modifiedOn: \"modifiedOn\",\n module: \"module\",\n name: \"name\",\n status: \"status\",\n type: \"type\"\n};\n\nconst renderStateCellContent = (\n action: ObjectState,\n componentLocale: any\n): JSX.Element[] | null | string => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (action === \"deleted\") {\n icon = ICONS.substract;\n caption = componentLocale.states.deleted;\n iconColor = \"--mer-icon__error\";\n } else if (action === \"inserted\") {\n icon = ICONS.add;\n caption = componentLocale.states.inserted;\n iconColor = \"--mer-icon__success\";\n } else if (action === \"modified\") {\n icon = ICONS.edit;\n caption = componentLocale.states.modified;\n iconColor = \"--mer-icon__warning\";\n } else if (action === \"conflicted\") {\n icon = ICONS.warning;\n caption = componentLocale.states.conflicted;\n iconColor = \"--mer-icon__warning\";\n } else if (!action) {\n // proably is \"ignored\"\n return null;\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n};\n\nconst renderObjectStatus = (\n objectId: string,\n objectsStatusMap: Map<string, StatusInternal>,\n updatePillAsButton: boolean,\n commitSingleObject: (objectId: string) => () => void,\n componentLocale: any\n): JSX.Element[] => {\n const status = objectsStatusMap.get(objectId);\n const caption =\n status === \"pending\" && updatePillAsButton\n ? componentLocale.status.commit\n : componentLocale.status[status];\n\n if (status === \"committing\") {\n return <span class=\"spinner-caption\">{caption}</span>;\n }\n\n const classes = `pill pill--${status}`;\n if (updatePillAsButton && status === \"pending\") {\n return (\n <button\n class={{\n \"button-secondary\": true,\n \"button-icon-and-text\": true,\n \"pill\": true,\n \"pill--update\": true,\n [BUTTON_ACTION_SELECTOR]: true\n }}\n onClick={commitSingleObject(objectId)}\n >\n {caption}\n </button>\n );\n } else {\n return <span class={classes}>{caption}</span>;\n }\n};\n\nconst renderTabularGridRows = (\n type: SourceType,\n pendingObjectsAfterFilter: ModifiedObjectData[],\n ignoredObjectsAfterFilter: ModifiedObjectData[],\n alreadyUpdatedObjectsIdsSet: Set<string>,\n markedObjectsSet: Set<string>,\n objectsMessagesDataMap: Map<string, MessageData[]>,\n updatePillAsButton: boolean,\n commitSingleObject: (objectId: string) => () => void,\n objectsStatusMap: Map<string, StatusInternal>,\n searchValue: string,\n componentLocale: any\n): HTMLChTabularGridRowElement[] => {\n let objects: ModifiedObjectData[];\n if (type === \"pending\") {\n objects = pendingObjectsAfterFilter;\n } else if (type === \"ignored\") {\n objects = ignoredObjectsAfterFilter;\n }\n\n searchValue = searchValue.toLowerCase();\n\n const filteredRows = objects.map(object => {\n const alreadyUpdated = alreadyUpdatedObjectsIdsSet.has(object.id);\n const hideCheckbox = alreadyUpdated || type === \"ignored\";\n const marked = markedObjectsSet.has(object.id);\n const messages = objectsMessagesDataMap.get(object.id);\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={object.id}\n rowid={object.id}\n ref={(el: HTMLElement) => marked && el?.setAttribute(\"marked\", \"true\")}\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": hideCheckbox\n }}\n size=\"max-content\"\n >\n <div\n // This div is a WA to prevent the cell display:flex to\n // apply columns when hiChar is applied. hiChar creates\n // a span for every match.\n >\n {hiChar(object.name, searchValue)}\n </div>\n {/* {object.name} */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(object.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell\n class={{\n \"tabular-grid-cell\": true,\n [CLASSES.GRID_CELL_DESCRIPTION]: true\n }}\n >\n <div\n // This div is a WA to prevent the cell display:flex to\n // apply columns when hiChar is applied. hiChar creates\n // a span for every match.\n >\n {hiChar(object.description, searchValue)}\n </div>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(object.modifiedOn)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderStateCellContent(object.state, componentLocale)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(object.lastSynchronized)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {renderObjectStatus(\n object.id,\n objectsStatusMap,\n updatePillAsButton,\n commitSingleObject,\n componentLocale\n )}\n </ch-tabular-grid-cell>\n\n {messages?.length && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{\n \"tabular-grid-rowset-empty\": true\n }}\n >\n <ul class=\"messages-list\">\n {messages.map(message => {\n let MESSAGE_ICON;\n if (message.type === \"error\") {\n MESSAGE_ICON = ICONS.error;\n } else if (message.type === \"warning\") {\n MESSAGE_ICON = ICONS.warning;\n } else if (message.type === \"success\") {\n MESSAGE_ICON = ICONS.success;\n } else {\n // info\n MESSAGE_ICON = ICONS.info;\n }\n\n return (\n <li class=\"message-description\">\n <ch-image\n class=\"icon-md message-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {message.text}\n </li>\n );\n })}\n </ul>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n\n return filteredRows;\n};\n\nexport default renderTabularGridRows;\n\nexport type GridColumnType =\n | \"action\"\n | \"description\"\n | \"lastSynchronized\"\n | \"localState\"\n | \"modifiedOn\"\n | \"module\"\n | \"name\"\n | \"status\"\n | \"type\";\n\nexport type GridColumnSet = Partial<Record<GridColumnType, true>>;\n\nexport const renderTabularGridColumns = (\n ignoredGridColumns: GridColumnType[],\n gridIsEmpty: boolean = false,\n sortTabularGridColumnCallback: (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => void,\n columnSelectorClickedCallback: (\n e: CustomEvent<TabularGridColumnSelectorClickedEvent>\n ) => void,\n componentLocale: any,\n showRichRowSelector: boolean\n): JSX.Element => {\n const colSize = gridIsEmpty\n ? config.tabularGrid.colSize.auto\n : config.tabularGrid.colSize.maxContent;\n\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n {!ignoredGridColumns.includes(\"name\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.name}\n columnName={componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={showRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n onColumnSelectorClicked={columnSelectorClickedCallback}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"type\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"description\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n )}\n\n {!ignoredGridColumns.includes(\"modifiedOn\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.modifiedOn}\n columnName={componentLocale.objects.modifiedOn}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"module\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.module}\n columnName={componentLocale.objects.module}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"localState\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.localState}\n columnName={componentLocale.objects.localState}\n sortable={false}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"lastSynchronized\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.lastSynchronized}\n columnName={componentLocale.objects.lastSynchronized}\n settingable={false}\n sortable={true}\n onColumnSortChanged={sortTabularGridColumnCallback}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"action\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={componentLocale.objects.action}\n sortable={false}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"status\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.status}\n columnName={componentLocale.objects.status}\n sortable={false}\n settingable={false}\n size={gridIsEmpty ? \"auto\" : \"100px\"}\n />\n )}\n </ch-tabular-grid-columnset>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["serverSelectorCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","name","colorType","LOCK_ICON","LANGUAGE_ICON","DELETE_ICON","ERROR_ICON","SEARCH_ICON","SERVER_NAME_PREFIX","GxIdeServerSelector","_GxIdeServerSelector__componentLocale","set","this","_GxIdeServerSelector_chGridAllServersEl","_GxIdeServerSelector_serverUrlEL","_GxIdeServerSelector_serverFriendlyNameEL","_GxIdeServerSelector_updatedServerName","_GxIdeServerSelector_serverNameEditElsMap","Map","_GxIdeServerSelector_versionsSelect","_GxIdeServerSelector_cancelHandler","cancelCallback","_GxIdeServerSelector_confirmHandler","async","formSubmitResult","selectedConnectionType","selectServerCallback","uri","selectedServerUri","selectedServerName","serverUrlInputValue","serverNameInputValue","validatableControls","validateControls","_GxIdeServerSelector_evaluateTooltipRender","controlReference","_b","_a","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeServerSelector_initializeValidatableControls","forEach","validatableControl","has","reference","undefined","_GxIdeServerSelector_filterValueChangedHandler","event","filterValue","detail","toLowerCase","filteredServersData","serversData","filter","item","serverName","includes","_GxIdeServerSelector_inputHandler","field","enableConfirmButton","trim","controlId","clearControlError","__classPrivateFieldGet","_GxIdeServerSelector_enableConfirmButton","call","_GxIdeServerSelector_handleRecentlyUsedCardClick","server","selectedRecentlyUsedId","selectRow","_GxIdeServerSelector_handleServerSelection","_GxIdeServerSelector_handleDeleteServer","serverData","accessLevel","result","deleteServerCallback","_GxIdeServerSelector_onServerNameInput","__classPrivateFieldSet","_GxIdeServerSelector_onServerNameChange","fieldErrors","success","updateServerCallback","Object","assign","length","_GxIdeServerSelector_onRecentlyUsedDoubleClickHandler","_GxIdeServerSelector_onServersRowClickHandler","rowId","selectedRowId","selectedServer","find","serverUrl","userName","gxServerUsername","_GxIdeServerSelector_connectionTypeChangedHandler","_GxIdeServerSelector_sortTabularGridColumnCallback","e","sortTabularGridColumn","_GxIdeServerSelector_renderTabularGridColumnSet","hideColumnName","columnId","columnName","settingable","columnNameHidden","size","tabularGrid","colSize","maxContent","resizable","sortable","onColumnSortChanged","auto","_GxIdeServerSelector_renderTooltip","text","delayLong","_GxIdeServerSelector_renderServerNameErrorMessage","errorMsg","src","_GxIdeServerSelector_renderTabularGridCommonCells","_GxIdeServerSelector_renderIcon","value","onInput","onChange","maxLength","ref","el","key","delete","onClick","actions","deleteServer","disabled","_GxIdeServerSelector_renderAllServersGrid","rowSelectionMode","allowColumnReorder","onRowClicked","map","serverNameEditKey","rowid","stateIconSrc","stateTitle","emptyConnectedServers","isAnimated","icon","_GxIdeServerSelector_renderFooter","isSelectionMode","footer","cancel","confirm","_GxIdeServerSelector_renderRecentlyUsed","renderRecentlyUsed","recentlyUsedServersData","htmlFor","recentlyUsed","title","layout","layout__panel","onDblClick","_GxIdeServerSelector_renderAllServers","allServers","serversDataChanged","newValue","componentWillLoad","Locale","getComponentStrings","caption","captions","selectServer","addServer","componentDidRender","clear","values","render","Host","model","header","startImgSrc","placeholder","placeholders","searchServers","accessibleName","type","labels"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// All Servers\n\n.tabular-grid {\n overflow: auto;\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n\n.recently-used-card {\n border: 1px solid var(--grid-cell__border-color);\n border-radius: var(--mer-border__radius--sm);\n cursor: pointer;\n\n &:hover {\n background-color: var(--mer-color__tinted-primary--5);\n }\n\n &:focus-visible {\n @include focus-outline();\n }\n\n &--selected {\n background-color: var(--mer-color__tinted-primary--10);\n border-color: var(--mer-color__tinted-primary--30);\n }\n}\n\n.recently-used-card-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n padding: 8px;\n gap: 2px;\n overflow: hidden;\n\n .text-decoration-line-underline {\n @include cell-ellipsis();\n max-width: 100%;\n text-decoration: underline;\n }\n}\n\n// All Severs tabular-grid\n\n.delete-server-icon {\n // WA: Getr and apply the marign inline value on the ch-image,\n // so that the button looks squared. This happens because the\n // button is \"tertiary\", which happens to have no padding-inline.\n // TODO: Investigate a solution that works without a WA.\n $cellBlockSize: 30.39px;\n margin-inline: calc((#{$cellBlockSize} - var(--ch-image-size)) / 2);\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX, Watch } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"neutral\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst SERVER_NAME_PREFIX = \"server-name-\";\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #_componentLocale: any;\n\n #chGridAllServersEl: HTMLChTabularGridElement;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n #updatedServerName: string | undefined;\n #serverNameEditElsMap: Map<string, HTMLChEditElement> = new Map();\n #versionsSelect: RadioGroupItemModel[] = [];\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredServersData: ServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The selected recently used server ID\n */\n @State() selectedRecentlyUsedId: string;\n\n /**\n * The list of all GX servers.\n */\n @Prop({ mutable: true }) serversData: ServerData[] = [];\n @Watch(\"serversData\")\n serversDataChanged(newValue: ServerData[]) {\n this.filteredServersData = newValue;\n }\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n /**\n * Invoked to delete a server\n */\n @Prop() readonly deleteServerCallback!: (\n serverData: ServerData\n ) => Promise<boolean>;\n\n /**\n * Invoked to update a server\n */\n @Prop() readonly updateServerCallback!: (\n serverData: ServerData\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#versionsSelect = [\n {\n value: \"select\",\n caption: this.#_componentLocale.captions.selectServer\n },\n {\n value: \"new\",\n caption: this.#_componentLocale.captions.addServer\n }\n ];\n\n this.selectedServerUri = this.serversData[0]?.serverUrl;\n this.userName = this.serversData[0]?.gxServerUsername;\n\n this.filteredServersData = this.serversData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls([\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\n ]);\n this.#serverNameEditElsMap.clear();\n }\n\n if (\n this.selectedConnectionType === \"select\" &&\n this.#serverNameEditElsMap.size > 0\n ) {\n this.#initializeValidatableControls([\n ...this.#serverNameEditElsMap.values()\n ]);\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = (validatableControls: HTMLElement[]) => {\n validatableControls.forEach(validatableControl => {\n if (\n validatableControl.id &&\n !this.validatableControls.has(validatableControl.id)\n ) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredServersData = this.serversData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = (event.detail as string).trim();\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #handleRecentlyUsedCardClick = async (server: ServerData) => {\n this.selectedRecentlyUsedId = server.id;\n await this.#chGridAllServersEl?.selectRow(server.id);\n await this.#handleServerSelection(server.id);\n };\n\n #handleDeleteServer = async (serverData: ServerData) => {\n if (serverData.accessLevel === \"private\") {\n const result = await this.deleteServerCallback(serverData);\n if (result) {\n this.selectedServerName = \"None\";\n this.enableConfirmButton = false;\n }\n }\n };\n\n #onServerNameInput = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.#updatedServerName = event.detail as string;\n };\n\n #onServerNameChange = async (serverData: ServerData) => {\n let result: FormSubmitResult = {\n fieldErrors: [],\n success: false\n };\n if (\n serverData.serverName !== this.#updatedServerName &&\n serverData.accessLevel === \"private\"\n ) {\n result = await this.updateServerCallback({\n ...serverData,\n serverName: this.#updatedServerName\n });\n }\n\n this.validatableControls = validateControls(\n result,\n this.validatableControls\n );\n\n if (result.success || serverData.serverName === this.#updatedServerName) {\n this.selectedServerName = this.#updatedServerName;\n clearControlError(\n this.validatableControls,\n `${SERVER_NAME_PREFIX}${serverData.id}`\n );\n }\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onRecentlyUsedDoubleClickHandler = (serverData: ServerData) => {\n this.#handleServerSelection(serverData.id);\n this.#confirmHandler();\n };\n\n #onServersRowClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => this.#handleServerSelection(event.detail.rowId);\n\n #handleServerSelection = async (selectedRowId: string): Promise<void> => {\n if (selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n }\n\n const selectedServer = this.serversData.find(\n server => server.id === selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.selectedRecentlyUsedId = selectedServer?.id;\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredServersData = [\n ...sortTabularGridColumn(e, this.filteredServersData, \"string\", undefined)\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Connected\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"action\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Action\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delayLong}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderServerNameErrorMessage = (errorMsg: string) => {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={ERROR_ICON}\n ></ch-image>\n {errorMsg}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n };\n\n #renderTabularGridCommonCells = (serverData: ServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(serverData.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.accessLevel === \"private\" ? (\n <ch-edit\n id={`${SERVER_NAME_PREFIX}${serverData.id}`}\n value={serverData.serverName}\n onInput={this.#onServerNameInput}\n onChange={() => this.#onServerNameChange(serverData)}\n maxLength={18}\n ref={el => {\n const key = `${SERVER_NAME_PREFIX}${serverData.id}`;\n if (el) {\n this.#serverNameEditElsMap.set(key, el as HTMLChEditElement);\n } else {\n this.#serverNameEditElsMap.delete(key);\n }\n }}\n ></ch-edit>\n ) : (\n serverData.serverName\n )}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.serverUrl}\n {this.#renderTooltip(serverData.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell\n class=\"tabular-grid-cell\"\n onClick={() => this.#handleDeleteServer(serverData)}\n >\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.actions.deleteServer}\n disabled={serverData.accessLevel === \"public\"}\n >\n <ch-image\n disabled={serverData.accessLevel === \"public\"}\n class=\"icon-md delete-server-icon\"\n src={DELETE_ICON}\n ></ch-image>\n </button>\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderAllServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridAllServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#onServersRowClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredServersData.map((serverData: ServerData) => {\n const serverNameEditKey = `${SERVER_NAME_PREFIX}${serverData.id}`;\n const hasError =\n this.validatableControls.get(serverNameEditKey)?.hasError ===\n true;\n const errorMsg =\n this.validatableControls.get(serverNameEditKey)?.message;\n\n return (\n <ch-tabular-grid-row\n rowid={serverData.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(serverData)}\n {hasError && this.#renderServerNameErrorMessage(errorMsg)}\n </ch-tabular-grid-row>\n );\n })}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n #renderRecentlyUsed = () => {\n const renderRecentlyUsed =\n this.selectedConnectionType === \"select\" &&\n this.recentlyUsedServersData.length > 0;\n\n return (\n renderRecentlyUsed && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n <div\n class={{\n \"layout\": true,\n \"layout--cols-3\": this.recentlyUsedServersData.length >= 3,\n \"layout--cols-2\": this.recentlyUsedServersData.length <= 2\n }}\n >\n {this.recentlyUsedServersData.map((server: ServerData) => (\n <button\n class={{\n \"layout__panel\": true,\n \"recently-used-card\": true,\n \"recently-used-card--selected\":\n this.selectedRecentlyUsedId === server.id\n }}\n onClick={() => this.#handleRecentlyUsedCardClick(server)}\n onDblClick={() =>\n this.#onRecentlyUsedDoubleClickHandler(server)\n }\n >\n <div class=\"recently-used-card-content\">\n <p class=\"body-regular-s text-neutral-gray-400\">\n {server.serverName}\n </p>\n <p class=\"body-regular-s text-neutral-gray-400 text-decoration-line-underline\">\n {server.serverUrl}\n </p>\n </div>\n {this.#renderTooltip(server.serverUrl)}\n </button>\n ))}\n </div>\n </div>\n )\n );\n };\n\n #renderAllServers = () => {\n return (\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderAllServersGrid()}\n </div>\n );\n };\n\n render(): void {\n return (\n <Host\n class={{\n \"widget elevation-1\": true,\n \"new-connection\": this.selectedConnectionType === \"new\",\n \"recently-used-empty\": this.recentlyUsedServersData.length === 0\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={SEARCH_ICON}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n\n {this.selectedConnectionType === \"select\" && [\n this.#renderRecentlyUsed(),\n this.#renderAllServers()\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n sessionId?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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","isRefresh","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","error","versions","historyDetail","selectedRevisionId","revisionId","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","_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","_b","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","oldSelectedVersionId","versionsListChanged","newVersionsList","hasActiveVersion","selectedVersionId","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\";\nimport { ObjectState } from \"../version-control/common/types\";\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(\n newSelectedVersionId: string,\n oldSelectedVersionId?: string\n ) {\n if (newSelectedVersionId === oldSelectedVersionId) {\n return;\n }\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, false);\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, false);\n this.isFirstLoad = false;\n } else if (newVersionsList.length === 0 && this.isFirstLoad) {\n this.loading = false;\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 (\n versionId: string,\n isRefresh: boolean\n ): 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 try {\n this.objects = await this.loadCallback(filters, versionId, isRefresh);\n await this.#getSelectedRevision(this.objects[0]?.id);\n } catch (error) {\n this.versions = [];\n this.objects = [];\n this.historyDetail = null;\n this.selectedRevisionId = null;\n } finally {\n this.loading = false;\n }\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, true)\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};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string,\n isRefresh: boolean\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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"}
|