@genexus/genexus-ide-ui 1.1.6 → 1.1.7
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-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +58 -14
- package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +16 -9
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- 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 +270 -0
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/design-import/design-import.js +1 -1
- package/dist/collection/components/design-import/design-import.js.map +1 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
- package/dist/collection/components/new-version/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
- package/dist/collection/components/new-version/new-version.css +4 -0
- package/dist/collection/components/new-version/new-version.js +124 -18
- package/dist/collection/components/new-version/new-version.js.map +1 -1
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
- package/dist/collection/components/select-kb-items/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
- package/dist/collection/components/select-kb-items/select-kb-items.css +22 -27
- package/dist/collection/components/select-kb-items/select-kb-items.js +34 -8
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.js +2 -2
- package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
- package/dist/collection/components/team-dev/history/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
- package/dist/collection/components/team-dev/history/helpers.js +22 -0
- package/dist/collection/components/team-dev/history/helpers.js.map +1 -0
- package/dist/collection/components/team-dev/history/history.css +124 -0
- package/dist/collection/components/team-dev/history/history.js +448 -0
- package/dist/collection/components/team-dev/history/history.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-design-import.js +1 -1
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-new-version.js +65 -15
- package/dist/components/gx-ide-new-version.js.map +1 -1
- package/dist/components/gx-ide-select-kb-items.js +1 -507
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +2 -2
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.d.ts +11 -0
- package/dist/components/gx-ide-team-dev-history.js +322 -0
- package/dist/components/gx-ide-team-dev-history.js.map +1 -0
- package/dist/components/select-kb-items.js +520 -0
- package/dist/components/select-kb-items.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +58 -14
- package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +16 -9
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +266 -0
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.en.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.ja.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/new-version/langs/new-version.lang.zh.json +3 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.en.json +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.ja.json +1 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-kb-items/langs/select-kb-items.lang.zh.json +1 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.en.json +42 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.ja.json +42 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-history/langs/team-dev-history.lang.zh.json +42 -0
- package/dist/genexus-ide-ui/{p-48062d23.entry.js → p-0acf517c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-48062d23.entry.js.map → p-0acf517c.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-d2107cb2.entry.js → p-34fd4875.entry.js} +3 -18
- package/dist/genexus-ide-ui/p-34fd4875.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-74715731.entry.js +541 -0
- package/dist/genexus-ide-ui/p-74715731.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-80c1ddc3.entry.js +218 -0
- package/dist/genexus-ide-ui/p-80c1ddc3.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9fa1200f.entry.js → p-a8d0b62e.entry.js} +139 -125
- package/dist/genexus-ide-ui/p-a8d0b62e.entry.js.map +1 -0
- package/dist/types/components/new-version/new-version.d.ts +27 -1
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +8 -0
- package/dist/types/components/team-dev/history/helpers.d.ts +7 -0
- package/dist/types/components/team-dev/history/history.d.ts +109 -0
- package/dist/types/components.d.ts +141 -18
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-9fa1200f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c91af626.entry.js +0 -149
- package/dist/genexus-ide-ui/p-c91af626.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-d2107cb2.entry.js.map +0 -1
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { r as e, h as t, H as s, a as i } from "./p-25a9f1d7.js";
|
|
2
|
-
|
|
3
|
-
import { L as n } from "./p-311eedf3.js";
|
|
4
|
-
|
|
5
|
-
const o = ":host{display:grid;block-size:100%;grid-template-rows:1fr max-content}.field-group{grid-auto-rows:max-content}.main{overflow:auto}.section{display:contents}";
|
|
6
|
-
|
|
7
|
-
var a = undefined && undefined.__classPrivateFieldSet || function(e, t, s, i, n) {
|
|
8
|
-
if (i === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (i === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof t === "function" ? e !== t || !n : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return i === "a" ? n.call(e, s) : n ? n.value = s : t.set(e, s), s;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
var r = undefined && undefined.__classPrivateFieldGet || function(e, t, s, i) {
|
|
15
|
-
if (s === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
16
|
-
if (typeof t === "function" ? e !== t || !i : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
17
|
-
return s === "m" ? i : s === "a" ? i.call(e) : i ? i.value : t.get(e);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
var c, d, l, h, f, u;
|
|
21
|
-
|
|
22
|
-
const p = [ "resets/box-sizing", "utils/form", "utils/spacing", "utils/layout", "chameleon/scrollbar", "components/checkbox", "components/button", "components/edit" ];
|
|
23
|
-
|
|
24
|
-
// ch-checkbox
|
|
25
|
-
const w = "on";
|
|
26
|
-
|
|
27
|
-
const v = "set-new-version-as-active";
|
|
28
|
-
|
|
29
|
-
const m = class {
|
|
30
|
-
constructor(t) {
|
|
31
|
-
e(this, t);
|
|
32
|
-
/**
|
|
33
|
-
* The component hard-coded strings translations.
|
|
34
|
-
*/
|
|
35
|
-
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
36
|
-
c.set(this, void 0);
|
|
37
|
-
d.set(this, (e => {
|
|
38
|
-
const t = e.target;
|
|
39
|
-
if (t.id === v) {
|
|
40
|
-
this.setNewVersionAsActive = e.detail === w;
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
l.set(this, (e => {
|
|
44
|
-
this.versionName = e.detail;
|
|
45
|
-
}));
|
|
46
|
-
h.set(this, (e => {
|
|
47
|
-
this.versionDescription = e.detail;
|
|
48
|
-
}));
|
|
49
|
-
f.set(this, (async () => {
|
|
50
|
-
this.cancelCallback();
|
|
51
|
-
}));
|
|
52
|
-
u.set(this, (async () => {
|
|
53
|
-
const e = {
|
|
54
|
-
versionName: this.versionName,
|
|
55
|
-
versionDescription: this.versionDescription,
|
|
56
|
-
setNewVersionAsActive: this.setNewVersionAsActive
|
|
57
|
-
};
|
|
58
|
-
this.createCallback(e);
|
|
59
|
-
}));
|
|
60
|
-
this.versionName = undefined;
|
|
61
|
-
this.versionDescription = undefined;
|
|
62
|
-
this.setNewVersionAsActive = false;
|
|
63
|
-
this.cancelCallback = undefined;
|
|
64
|
-
this.createCallback = undefined;
|
|
65
|
-
this.defaultInputValues = undefined;
|
|
66
|
-
}
|
|
67
|
-
defaultInputValuesChanged(e) {
|
|
68
|
-
this.versionName = e === null || e === void 0 ? void 0 : e.versionName;
|
|
69
|
-
this.versionDescription = e === null || e === void 0 ? void 0 : e.versionDescription;
|
|
70
|
-
}
|
|
71
|
-
async componentWillLoad() {
|
|
72
|
-
a(this, c, await n.getComponentStrings(this.el), "f");
|
|
73
|
-
this.defaultInputValuesChanged(this.defaultInputValues);
|
|
74
|
-
}
|
|
75
|
-
render() {
|
|
76
|
-
const e = !this.versionName || this.versionName.length === 0;
|
|
77
|
-
return t(s, {
|
|
78
|
-
class: "widget"
|
|
79
|
-
}, t("ch-theme", {
|
|
80
|
-
model: p
|
|
81
|
-
}), t("section", {
|
|
82
|
-
class: "section"
|
|
83
|
-
}, t("div", {
|
|
84
|
-
class: "main scrollable field-group spacing-body"
|
|
85
|
-
}, t("div", {
|
|
86
|
-
class: "field field-block"
|
|
87
|
-
}, t("label", {
|
|
88
|
-
class: "label",
|
|
89
|
-
htmlFor: "version-name"
|
|
90
|
-
}, r(this, c, "f").labels.name), t("ch-edit", {
|
|
91
|
-
type: "text",
|
|
92
|
-
id: "version-name",
|
|
93
|
-
class: "input",
|
|
94
|
-
placeholder: r(this, c, "f").placeHolders.name,
|
|
95
|
-
value: this.versionName,
|
|
96
|
-
onInput: r(this, l, "f")
|
|
97
|
-
})), t("div", {
|
|
98
|
-
class: "field field-block"
|
|
99
|
-
}, t("label", {
|
|
100
|
-
class: "label",
|
|
101
|
-
htmlFor: "version-description"
|
|
102
|
-
}, r(this, c, "f").labels.description), t("ch-edit", {
|
|
103
|
-
type: "text",
|
|
104
|
-
id: "version-description",
|
|
105
|
-
class: "input",
|
|
106
|
-
placeholder: r(this, c, "f").placeHolders.description,
|
|
107
|
-
value: this.versionDescription,
|
|
108
|
-
onInput: r(this, h, "f")
|
|
109
|
-
})), t("div", {
|
|
110
|
-
class: "field field-inline"
|
|
111
|
-
}, t("ch-checkbox", {
|
|
112
|
-
class: "checkbox",
|
|
113
|
-
id: "set-new-version-as-active",
|
|
114
|
-
checkedValue: w,
|
|
115
|
-
onInput: r(this, d, "f"),
|
|
116
|
-
caption: r(this, c, "f").labels.setActive
|
|
117
|
-
}))), t("footer", {
|
|
118
|
-
class: "control-footer-with-border spacing-body"
|
|
119
|
-
}, t("div", {
|
|
120
|
-
class: "buttons-spacer"
|
|
121
|
-
}, t("button", {
|
|
122
|
-
class: "button-secondary",
|
|
123
|
-
onClick: r(this, f, "f")
|
|
124
|
-
}, r(this, c, "f").buttons.cancel), t("button", {
|
|
125
|
-
class: "button-primary",
|
|
126
|
-
onClick: r(this, u, "f"),
|
|
127
|
-
disabled: e
|
|
128
|
-
}, r(this, c, "f").buttons.create)))));
|
|
129
|
-
}
|
|
130
|
-
static get assetsDirs() {
|
|
131
|
-
return [ "gx-ide-assets/new-version" ];
|
|
132
|
-
}
|
|
133
|
-
get el() {
|
|
134
|
-
return i(this);
|
|
135
|
-
}
|
|
136
|
-
static get watchers() {
|
|
137
|
-
return {
|
|
138
|
-
defaultInputValues: [ "defaultInputValuesChanged" ]
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
c = new WeakMap, d = new WeakMap, l = new WeakMap, h = new WeakMap, f = new WeakMap,
|
|
144
|
-
u = new WeakMap;
|
|
145
|
-
|
|
146
|
-
m.style = o;
|
|
147
|
-
|
|
148
|
-
export { m as gx_ide_new_version };
|
|
149
|
-
//# sourceMappingURL=p-c91af626.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["newVersionCss","CSS_BUNDLES","CHECKED_VALUE","SET_NEW_VERSION_AS_ACTIVE_ID","GxIdeNewVersion","_GxIdeNewVersion_componentLocale","set","this","_GxIdeNewVersion_handleCheckBoxValueChange","event","target","id","setNewVersionAsActive","detail","_GxIdeNewVersion_handleNameValueChange","versionName","_GxIdeNewVersion_handleDescriptionValueChange","versionDescription","_GxIdeNewVersion_cancelClickHandler","async","cancelCallback","_GxIdeNewVersion_createClickHandler","newVersionData","createCallback","defaultInputValuesChanged","newDefaultInputValues","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","defaultInputValues","render","createButtonDisabled","length","h","Host","class","model","htmlFor","__classPrivateFieldGet","labels","name","type","placeholder","placeHolders","value","onInput","description","checkedValue","caption","setActive","onClick","buttons","cancel","disabled","create"],"sources":["src/components/new-version/new-version.scss?tag=gx-ide-new-version&encapsulation=shadow","src/components/new-version/new-version.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.field-group {\n grid-auto-rows: max-content;\n}\n\n.main {\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n","import { Component, Host, Prop, Element, State, h, Watch } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ChCheckboxCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/spacing\",\n \"utils/layout\",\n \"chameleon/scrollbar\",\n \"components/checkbox\",\n \"components/button\",\n \"components/edit\"\n];\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\nconst SET_NEW_VERSION_AS_ACTIVE_ID = \"set-new-version-as-active\";\n\n@Component({\n tag: \"gx-ide-new-version\",\n styleUrl: \"new-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/new-version\"]\n})\nexport class GxIdeNewVersion {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeNewVersionElement;\n\n /**\n * The version selected name\n */\n @State() versionName: string;\n\n /**\n * The version selected description\n */\n @State() versionDescription: string;\n\n /**\n * Checkbox value to set the new version as active\n */\n @State() setNewVersionAsActive: boolean = false;\n\n /**\n * Callback that must be invoked when the 'Cancel' button is pressed.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create' button is pressed.\n */\n @Prop() readonly createCallback: (\n newVersionData: NewVersionData\n ) => Promise<void>;\n\n /**\n * This property is used to set the initial values of the input fields when the component is loaded.\n */\n @Prop() readonly defaultInputValues: NewVersionData;\n @Watch(\"defaultInputValues\")\n defaultInputValuesChanged(newDefaultInputValues: NewVersionData) {\n this.versionName = newDefaultInputValues?.versionName;\n this.versionDescription = newDefaultInputValues?.versionDescription;\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.defaultInputValuesChanged(this.defaultInputValues);\n }\n\n #handleCheckBoxValueChange = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n const target = event.target as HTMLInputElement;\n if (target.id === SET_NEW_VERSION_AS_ACTIVE_ID) {\n this.setNewVersionAsActive = event.detail === CHECKED_VALUE;\n }\n };\n\n #handleNameValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionName = event.detail as string;\n };\n\n #handleDescriptionValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.versionDescription = event.detail as string;\n };\n\n #cancelClickHandler = async () => {\n this.cancelCallback();\n };\n\n #createClickHandler = async () => {\n const newVersionData: NewVersionData = {\n versionName: this.versionName,\n versionDescription: this.versionDescription,\n setNewVersionAsActive: this.setNewVersionAsActive\n };\n this.createCallback(newVersionData);\n };\n\n render() {\n const createButtonDisabled =\n !this.versionName || this.versionName.length === 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <div class=\"main scrollable field-group spacing-body\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-name\">\n {this.#componentLocale.labels.name}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-name\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.name}\n value={this.versionName}\n onInput={this.#handleNameValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"version-description\">\n {this.#componentLocale.labels.description}\n </label>\n <ch-edit\n type=\"text\"\n id=\"version-description\"\n class=\"input\"\n placeholder={this.#componentLocale.placeHolders.description}\n value={this.versionDescription}\n onInput={this.#handleDescriptionValueChange}\n ></ch-edit>\n </div>\n <div class=\"field field-inline\">\n <ch-checkbox\n class=\"checkbox\"\n id=\"set-new-version-as-active\"\n checkedValue={CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n caption={this.#componentLocale.labels.setActive}\n ></ch-checkbox>\n </div>\n </div>\n\n <footer class=\"control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n onClick={this.#cancelClickHandler}\n >\n {this.#componentLocale.buttons.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n onClick={this.#createClickHandler}\n disabled={createButtonDisabled}\n >\n {this.#componentLocale.buttons.create}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NewVersionData = {\n versionName: string;\n versionDescription: string;\n setNewVersionAsActive?: boolean;\n};\n"],"mappings":";;;;AAAA,MAAMA,IAAgB;;;;;;;;;;;;;;;;;ACMtB,MAAMC,IAA8B,EAClC,qBACA,cACA,iBACA,gBACA,uBACA,uBACA,qBACA;;cAIF;MAAMC,IAAgB;;AACtB,MAAMC,IAA+B;;MAQxBC,IAAe;;;;;;;QAK1BC,EAAAC,IAAAC,WAAA;IA8CAC,EAAAF,IAAAC,OACEE;MAEA,MAAMC,IAASD,EAAMC;MACrB,IAAIA,EAAOC,OAAOR,GAA8B;QAC9CI,KAAKK,wBAAwBH,EAAMI,WAAWX;;;IAIlDY,EAAAR,IAAAC,OAA0BE;MACxBF,KAAKQ,cAAcN,EAAMI;AAAgB;IAG3CG,EAAAV,IAAAC,OAAiCE;MAC/BF,KAAKU,qBAAqBR,EAAMI;AAAgB;IAGlDK,EAAAZ,IAAAC,OAAsBY;MACpBZ,KAAKa;AAAgB;IAGvBC,EAAAf,IAAAC,OAAsBY;MACpB,MAAMG,IAAiC;QACrCP,aAAaR,KAAKQ;QAClBE,oBAAoBV,KAAKU;QACzBL,uBAAuBL,KAAKK;;MAE9BL,KAAKgB,eAAeD;AAAe;;;iCAxDK;;;;;EAmB1C,yBAAAE,CAA0BC;IACxBlB,KAAKQ,cAAcU,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBV;IAC1CR,KAAKU,qBAAqBQ,MAAqB,QAArBA,WAAqB,aAArBA,EAAuBR;;EAGnD,uBAAMS;IACJC,EAAApB,MAAIF,SAA0BuB,EAAOC,oBAAoBtB,KAAKuB,KAAG;IACjEvB,KAAKiB,0BAA0BjB,KAAKwB;;EAiCtC,MAAAC;IACE,MAAMC,KACH1B,KAAKQ,eAAeR,KAAKQ,YAAYmB,WAAW;IAEnD,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOrC;QACjBkC,EAAA;MAASE,OAAM;OACbF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOC,OAEhCP,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaH;MAChDI,OAAOvC,KAAKQ;MACZgC,SAASP,EAAAjC,MAAIO,GAAA;SAGjBqB,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BC,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOO,cAEhCb,EAAA;MACEQ,MAAK;MACLhC,IAAG;MACH0B,OAAM;MACNO,aAAaJ,EAAAjC,MAAIF,GAAA,KAAkBwC,aAAaG;MAChDF,OAAOvC,KAAKU;MACZ8B,SAASP,EAAAjC,MAAIS,GAAA;SAGjBmB,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACN1B,IAAG;MACHsC,cAAc/C;MACd6C,SAASP,EAAAjC,MAAIC,GAAA;MACb0C,SAASV,EAAAjC,MAAIF,GAAA,KAAkBoC,OAAOU;UAK5ChB,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIW,GAAA;OAEZsB,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQC,SAGjCnB,EAAA;MACEE,OAAM;MACNe,SAASZ,EAAAjC,MAAIc,GAAA;MACbkC,UAAUtB;OAETO,EAAAjC,MAAIF,GAAA,KAAkBgD,QAAQG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["commitCss","CSS_BUNDLES","GxIdeTeamDevCommit","this","loadDataCalledFirstTime","renderedFirstTime","conditionToCommit","async","commitComment","commitCommentEl","value","length","pendingChecked","chGridPendingCommitsEl","getMarkedRows","commitButtonEnabled","markAllPendingCommitsRows","markAllRows","togglePendingCommitsCheckboxes","itemsToToggle","itemsToCheck","itemsToUncheck","rowId","markRow","revertPendingCommitsCheckboxes","addedRowsIds","removedRowsId","renderIconState","state","icon","h","src","class","pendingCommitsRowMarkingChangedHandler","e","removeEventListener","detail","addedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","addEventListener","objectsOnContextMenuCallbackHandler","grid","ev","preventDefault","stopPropagation","selection","selectedRowsId","chGridIgnoredObjectsEl","getSelectedRows","objectsContextMenuCallback","clientX","clientY","gridOnSelectionChangedCallbackHandler","selectCallback","rowsId","renderPendingCommitsGrid","rowSelectionMode","ref","el","part","onRowContextMenu","onSelectionChanged","columnType","richRowSelector","richRowSelectorMode","settingable","sortable","size","config","tabularGrid","colSize","maxContent","columnName","commonDouble","pendingCommits","map","obj","rowid","id","iconType","name","type","description","formatDate","modifiedOn","module","localState","lastSynchronized","user","renderIgnoredObjectsGrid","ignoredObjects","selected","getRecentCommentHandler","getRecentCommentCallback","response","comment","commitCallbackHandler","then","pendingCommitsCheckedIds","commitCallback","loadData","filtersData","pattern","patternEl","changeSet","changeSetEl","folder","foldersEl","category","categoriesEl","typesEl","evaluateFilterConditions","loadCallback","pending","ignored","toggleFiltersHandler","filtersHidden","filterHasConditions","componentWillLoad","_componentLocale","Locale","getComponentStrings","componentDidLoad","componentDidLoadEvent","emit","focus","componentDidRender","componentDidRenderFirstTime","componentName","reload","render","Host","model","noContentPadding","noHeadingPadding","headingPaddingTop","containerTitle","displayTitle","slimmerFooter","gxIdeContainer","noHeadingBorder","slot","labelPosition","noMargin","header","commentLabel","onClick","recentCommentsButton","height","singleLine","onInput","placeholder","commentPlaceholder","filtersMenu","patternLabel","changesetLabel","onValueChanged","renderComboItems","typeLabel","types","folderLabel","folders","categoryLabel","categories","displayBorder","tabs","tab","flex","disabled","footer","commitButton"],"sources":["src/components/team-dev/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/commit/commit.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: block;\n}\n/*--- Header ---*/\n.header {\n border-top: 1px solid var(--gx-ide-container-border-color);\n display: flex;\n flex-direction: column;\n > * {\n padding: var(--gx-ide-container__padding);\n }\n &__first-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -3px;\n .commit-label {\n flex: none;\n }\n .commit-textarea {\n flex: none;\n }\n &__right-col {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n }\n }\n &__second-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n }\n .filters-outer-wrapper {\n display: grid;\n padding: 0;\n grid-template-rows: 1fr;\n transition: grid-template-rows 200ms;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n &--hidden {\n grid-template-rows: 0fr;\n }\n }\n .filters-inner-wrapper {\n overflow: hidden;\n }\n &__third-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n display: grid;\n column-gap: var(--gx-ide-grid-column-gap);\n row-gap: var(--gx-ide-grid-row-gap);\n grid-template-columns: auto 1fr auto 1fr;\n grid-template-areas:\n \"pattern-label pattern-form-text pattern-form-text pattern-form-text\"\n \"changeset-label changeset-combo type-label type-combo\"\n \"folder-label folder-combo category-label category-combo\";\n\n .pattern-label {\n grid-area: pattern-label;\n }\n .pattern-form-text {\n grid-area: pattern-form-text;\n }\n .changeset-label {\n grid-area: changeset-label;\n }\n .changeset-combo {\n grid-area: changeset-combo;\n }\n .type-label {\n grid-area: type-label;\n }\n .type-combo {\n grid-area: type-combo;\n }\n .folder-label {\n grid-area: folder-label;\n }\n .folder-combo {\n grid-area: folder-combo;\n }\n .category-label {\n grid-area: category-label;\n }\n .category-combo {\n grid-area: category-combo;\n }\n }\n}\n/*--- Main ---*/\n.main {\n height: 100%;\n}\n.grid-container {\n padding: 0;\n}\nch-grid {\n height: auto;\n}\n\ngxg-tab::part(container) {\n line-height: unset;\n}\n\n.tabular-grid {\n block-size: 100%;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-td-commit\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 6\n )\n);\n\n/*--- WA to be removed after gx-ide-container is removed ---*/\ngx-ide-container::part(content) {\n overflow: hidden;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Method,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport {\n GxOption,\n ObjectState,\n ContextMenuInfo,\n ObjectType,\n ItemsCheckedState,\n ItemsCheckedResult\n} from \"../../../common/types\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { formatDate } from \"../../../common/helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tabular-grid\"\n];\n@Component({\n tag: \"gx-ide-team-dev-commit\",\n styleUrl: \"commit.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-commit\"]\n})\nexport class GxIdeTeamDevCommit {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private loadDataCalledFirstTime = false; // pending commits grid checkboxes, should be checked, after loadData has loaded commits for the first time.\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n // filters\n private patternEl!: HTMLGxgFormTextElement;\n private changeSetEl!: HTMLGxgComboBoxElement;\n private typesEl!: HTMLGxgComboBoxElement;\n private foldersEl!: HTMLGxgComboBoxElement;\n private categoriesEl!: HTMLGxgComboBoxElement;\n // other\n private chGridPendingCommitsEl!: HTMLChGridElement;\n private chGridIgnoredObjectsEl!: HTMLChGridElement;\n private commitCommentEl!: HTMLGxgFormTextareaElement;\n\n // 3.STATE() VARIABLES //\n\n @State() filtersHidden = true;\n @State() comment = \"\";\n @State() pendingCommits: ModifiedObjectData[] = [];\n @State() ignoredObjects: ModifiedObjectData[] = [];\n @State() commitButtonEnabled = false;\n @State() filterHasConditions = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Possible values for ChangeSet filter\n */\n @Prop() readonly changeSet: GxOption[];\n\n /**\n * Possible values for Type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Possible values for Folders filter\n */\n @Prop() readonly folders: GxOption[];\n\n /**\n * Possible values for Categories filter\n */\n @Prop() readonly categories: GxOption[];\n\n /**\n * Callback invoked when user press Recent Comments button.\n */\n @Prop() readonly getRecentCommentCallback: GetRecentComment;\n\n /**\n * Callback invoked when user wants to reload the grid\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Callback that should be invoked when the user selects rows from the grids\n */\n @Prop() readonly selectCallback: CommitSelectCallback;\n\n /**\n * Callback invoked when user check/uncheck any item from the 'Pending to Commit' grid\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Callback that must be invoked when user activate the context menu in any of the grids\n */\n @Prop() readonly objectsContextMenuCallback: ObjectsContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.loadData();\n this.loadDataCalledFirstTime = true;\n this.componentDidLoadEvent.emit(true);\n this.conditionToCommit();\n this.commitCommentEl.focus();\n }\n\n async componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n\n if (this.loadDataCalledFirstTime) {\n // call this method only once\n await this.markAllPendingCommitsRows();\n // attach \"rowMarkingChanged\" after rows have been checked for the first time.\n this.chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n this.loadDataCalledFirstTime = false;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * The method used by the Host to instruct the component to force a data refresh in the grids.\n */\n @Method()\n async reload(): Promise<void> {\n this.loadData();\n }\n\n // 9.LOCAL METHODS //\n\n private conditionToCommit = async () => {\n const commitComment = !!this.commitCommentEl.value.length;\n const pendingChecked = await this.chGridPendingCommitsEl.getMarkedRows();\n if (commitComment && pendingChecked.length > 0) {\n this.commitButtonEnabled = true;\n } else {\n this.commitButtonEnabled = false;\n }\n };\n\n private markAllPendingCommitsRows = () => {\n this.chGridPendingCommitsEl.markAllRows();\n };\n\n private togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.chGridPendingCommitsEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.chGridPendingCommitsEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.chGridPendingCommitsEl.markRow(rowId, false);\n }\n }\n };\n\n private revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.chGridPendingCommitsEl) {\n for (const rowId of addedRowsIds) {\n await this.chGridPendingCommitsEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.chGridPendingCommitsEl.markRow(rowId, true);\n }\n }\n };\n\n private renderIconState = (state: ObjectState): HTMLChImageElement => {\n let icon: string;\n switch (state) {\n case \"inserted\":\n icon = \"gx-server/new\";\n break;\n case \"modified\":\n icon = \"gx-server/changes-commit-pending\";\n break;\n case \"deleted\":\n icon = \"gx-server/delete\";\n break;\n case \"conflicted\":\n icon = \"gx-server/conflict\";\n break;\n }\n return <ch-image src={icon} class=\"icon-md\"></ch-image>;\n };\n\n private pendingCommitsRowMarkingChangedHandler = async (\n e: CustomEvent<TabularGridMarkingChangedEvent>\n ): Promise<void> => {\n // remove \"rowMarkingChanged\" until checkboxes have been added/removed on togglePendingCommitsCheckboxes, to prevent loops.\n this.chGridPendingCommitsEl.removeEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n if (this.chGridPendingCommitsEl) {\n const addedRowsIds = e.detail.addedRowsId;\n const removedRowsId = e.detail.removedRowsId;\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\n if (pendingItemCheckedResult === undefined) {\n // undo check/uncheck\n await this.revertPendingCommitsCheckboxes(addedRowsIds, removedRowsId);\n } else {\n await this.togglePendingCommitsCheckboxes(pendingItemCheckedResult);\n }\n this.conditionToCommit();\n this.chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n }\n };\n\n private objectsOnContextMenuCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n let selection: string[] = [];\n if (grid === \"commit\") {\n selection = ev.detail.selectedRowsId;\n } else if (grid === \"ignored\") {\n selection = await this.chGridIgnoredObjectsEl.getSelectedRows();\n }\n if (this.objectsContextMenuCallback) {\n await this.objectsContextMenuCallback(grid, {\n selection: selection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n };\n\n private gridOnSelectionChangedCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridSelectionChangedEvent>) => {\n if (this.selectCallback) {\n await this.selectCallback(grid, ev.detail.rowsId);\n }\n };\n\n /* pending commits grid render*/\n private renderPendingCommitsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-td-commit\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridPendingCommitsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"commit\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"commit\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnType=\"rich\"\n richRowSelector\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"State\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Name\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Type\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Modified On\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"User\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.pendingCommits.map((obj: ModifiedObjectData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector\n class=\"tabular-grid-cell\"\n ></ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.iconType} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\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 {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 {`${formatDate(obj.modifiedOn)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\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-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n /* ignored objects grid render*/\n private renderIgnoredObjectsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridIgnoredObjectsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"ignored\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"ignored\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"TypeIcon\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Name\"\n settingable={false}\n sortable\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Type\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Modified On\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"User\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.ignoredObjects.map((obj: ModifiedObjectData) => (\n <ch-tabular-grid-row rowid={obj.id} selected class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.iconType} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\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 {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 {`${formatDate(obj.modifiedOn)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\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-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private getRecentCommentHandler = async () => {\n if (this.getRecentCommentCallback) {\n const response = await this.getRecentCommentCallback();\n if (response) {\n this.comment = response;\n }\n }\n };\n\n private commitCallbackHandler = async () => {\n const commitCommentEl = this.commitCommentEl.value;\n this.chGridPendingCommitsEl\n .getMarkedRows()\n .then(async pendingCommitsCheckedIds => {\n await this.commitCallback(pendingCommitsCheckedIds, commitCommentEl);\n /* returns boolean*/\n });\n };\n\n private loadData = async (): Promise<void> => {\n const filtersData: FiltersData = {\n pattern: this.patternEl.value,\n changeSet: this.changeSetEl.value,\n folder: this.foldersEl.value,\n category: this.categoriesEl.value,\n type: this.typesEl.value\n };\n\n this.evaluateFilterConditions();\n\n // this.pendingCommits = null;\n // this.ignoredObjects = null;\n\n return await this.loadCallback(filtersData).then(\n async ({ pending, ignored }) => {\n this.pendingCommits = pending;\n this.ignoredObjects = ignored;\n }\n );\n };\n\n private toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n private evaluateFilterConditions = () => {\n if (\n this.patternEl.value ||\n this.changeSetEl.value ||\n this.typesEl.value ||\n this.foldersEl.value ||\n this.categoriesEl.value\n ) {\n this.filterHasConditions = true;\n } else {\n this.filterHasConditions = false;\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n noHeadingBorder\n >\n <div class=\"header\" slot=\"header\">\n <div class=\"header__first-row\">\n <div class=\"header__first-row__left-col\">\n <gxg-label\n part=\"commit-label\"\n labelPosition=\"start\"\n class=\"commit-label\"\n noMargin\n >\n {this._componentLocale.header.commentLabel}\n </gxg-label>\n </div>\n <div class=\"header__first-row__right-col\">\n {/* filter button*/}\n <gxg-button\n onClick={this.toggleFiltersHandler}\n type=\"secondary-icon-only\"\n icon={\n this.filterHasConditions\n ? \"window-tools/filter-conditions\"\n : \"window-tools/filter\"\n }\n part=\"gxg-button gxg-button--show-filter\"\n class=\"filter-btn\"\n ></gxg-button>\n\n {/* reset button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--reload\"\n class=\"reset-btn\"\n ></gxg-button>\n\n {/* recen comments button*/}\n <gxg-button\n class=\"header-button\"\n type=\"outlined\"\n part=\"location\"\n onClick={this.getRecentCommentHandler}\n >\n {this._componentLocale.header.recentCommentsButton}\n </gxg-button>\n </div>\n </div>\n <div class=\"header__second-row\">\n {/* commit comment textarea*/}\n <gxg-form-textarea\n height=\"90px\"\n value={this.comment}\n ref={(el: HTMLGxgFormTextareaElement) =>\n (this.commitCommentEl = el)\n }\n singleLine\n onInput={this.conditionToCommit}\n placeholder={this._componentLocale.header.commentPlaceholder}\n part=\"comment\"\n class=\"commit-textarea\"\n ></gxg-form-textarea>\n </div>\n <div\n class={{\n \"filters-outer-wrapper\": true,\n \"filters-outer-wrapper--hidden\": this.filtersHidden\n }}\n >\n <div\n class={{\n \"filters-inner-wrapper\": true\n }}\n >\n <div\n class={{\n \"header__third-row\": true\n }}\n >\n {/* pattern*/}\n <gxg-label\n part=\"pattern-label\"\n labelPosition=\"start\"\n class=\"pattern-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.patternLabel}\n </gxg-label>\n <gxg-form-text\n disable-filter\n value=\"\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.patternEl = el as HTMLGxgFormTextElement)\n }\n display-validation-styles\n display-validation-message\n part=\"pattern-form-text\"\n class=\"pattern-form-text\"\n onInput={this.loadData}\n ></gxg-form-text>\n\n {/* changeset */}\n <gxg-label\n part=\"changeset-label\"\n labelPosition=\"start\"\n class=\"changeset-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.changesetLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.changeSet[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.changeSetEl = el as HTMLGxgComboBoxElement)\n }\n part=\"changeset-combo\"\n class=\"changeset-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.changeSet)}\n </gxg-combo-box>\n\n {/* type */}\n <gxg-label\n part=\"type-label\"\n labelPosition=\"start\"\n class=\"type-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.typeLabel}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n value={this.types[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.typesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"type-combo\"\n class=\"type-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.types)}\n </gxg-combo-box>\n\n {/* folder */}\n <gxg-label\n part=\"folder-label\"\n labelPosition=\"start\"\n class=\"folder-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.folderLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.folders[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.foldersEl = el as HTMLGxgComboBoxElement)\n }\n part=\"folder-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.folders)}\n </gxg-combo-box>\n\n {/* category */}\n <gxg-label\n part=\"category-label\"\n labelPosition=\"start\"\n class=\"category-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.categoryLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.categories[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.categoriesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"category-combo\"\n class=\"category-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.categories)}\n </gxg-combo-box>\n </div>\n </div>\n </div>\n </div>\n <main class=\"main\">\n <gx-ide-container noContentPadding class=\"grid-container\">\n <div class=\"tabs-container gxi-full-height\">\n <gxg-tabs class=\"gxg-tabs\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`}\n tab=\"pending-commits\"\n is-selected\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`}\n tab=\"ignored-objects\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab tab=\"pending-commits\" no-padding flex>\n {this.renderPendingCommitsGrid()}\n </gxg-tab>\n <gxg-tab tab=\"ignored-objects\" no-padding flex>\n {this.renderIgnoredObjectsGrid()}\n </gxg-tab>\n </gxg-tabs>\n </div>\n </gx-ide-container>\n </main>\n\n {/* footer */}\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.commitCallbackHandler}\n part=\"commit-button\"\n disabled={!this.commitButtonEnabled}\n >\n {this._componentLocale.footer.commitButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GetRecentComment = () => Promise<string | undefined>;\n\nexport type LoadCallback = (filters: FiltersData) => Promise<CommitData>;\n\nexport type CommitCallback = (\n selection: string[],\n commitCommentEl: string\n) => Promise<boolean>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type CommitSelectCallback = (\n grid: CommitSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type ItemCheckedCallback = (\n checkedItemIds: string[]\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type ObjectsContextMenuCallback = (\n grid: CommitSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type CommitSourceType = \"commit\" | \"ignored\";\n\nexport type CommitData = {\n pending: ModifiedObjectData[];\n ignored: ModifiedObjectData[];\n};\n\nexport type ModifiedObjectData = {\n id: string;\n name: string;\n iconType: string;\n state: ObjectState;\n type: string;\n description: string;\n modifiedOn: Date;\n module: string;\n localState: ObjectState;\n lastSynchronized: Date;\n user: string;\n};\n\nexport type FiltersData = {\n pattern: string;\n changeSet: string;\n type: string;\n folder: string;\n category: string;\n};\n"],"mappings":"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"}
|