@genexus/genexus-ide-ui 1.1.40 → 1.1.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +12 -28
  3. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +20 -4
  5. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +99 -238
  7. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +60 -10
  9. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -9
  11. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js +43 -0
  14. package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js.map +1 -0
  15. package/dist/cjs/tabular-grid-render-4350dbaf.js +223 -0
  16. package/dist/cjs/tabular-grid-render-4350dbaf.js.map +1 -0
  17. package/dist/cjs/uncheck-ignored-77ca69fe.js +43 -0
  18. package/dist/cjs/uncheck-ignored-77ca69fe.js.map +1 -0
  19. package/dist/collection/common/chameleon/tabular-grid-column-sort.js +39 -0
  20. package/dist/collection/common/chameleon/tabular-grid-column-sort.js.map +1 -0
  21. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +18 -4
  22. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  23. package/dist/collection/components/team-dev/server-selector/server-selector.css +18 -14
  24. package/dist/collection/components/team-dev/server-selector/server-selector.js +11 -27
  25. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  26. package/dist/collection/components/team-dev/update/update.css +1 -0
  27. package/dist/collection/components/team-dev/update/update.js +62 -9
  28. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  29. package/dist/collection/components/team-dev/version-control/commit/commit.css +1 -0
  30. package/dist/collection/components/team-dev/version-control/commit/commit.js +79 -20
  31. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  32. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js +21 -0
  33. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js.map +1 -0
  34. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +13 -3
  35. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -1
  36. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js +18 -0
  37. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js.map +1 -0
  38. package/dist/collection/components/ww-files/ww-files.js +1 -9
  39. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  40. package/dist/components/gx-ide-server-selector.js +12 -28
  41. package/dist/components/gx-ide-server-selector.js.map +1 -1
  42. package/dist/components/gx-ide-team-dev-bring-changes.js +18 -4
  43. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  44. package/dist/components/gx-ide-team-dev-commit.js +78 -221
  45. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  46. package/dist/components/gx-ide-team-dev-update.js +61 -10
  47. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  48. package/dist/components/gx-ide-ww-files.js +1 -9
  49. package/dist/components/gx-ide-ww-files.js.map +1 -1
  50. package/dist/components/tabular-grid-column-sort.js +41 -0
  51. package/dist/components/tabular-grid-column-sort.js.map +1 -0
  52. package/dist/components/tabular-grid-render.js +216 -0
  53. package/dist/components/tabular-grid-render.js.map +1 -0
  54. package/dist/components/uncheck-ignored.js +40 -0
  55. package/dist/components/uncheck-ignored.js.map +1 -0
  56. package/dist/esm/genexus-ide-ui.js +1 -1
  57. package/dist/esm/gx-ide-server-selector.entry.js +12 -28
  58. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  59. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +20 -4
  60. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  61. package/dist/esm/gx-ide-team-dev-commit.entry.js +81 -220
  62. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  63. package/dist/esm/gx-ide-team-dev-update.entry.js +60 -10
  64. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  65. package/dist/esm/gx-ide-ww-files.entry.js +1 -9
  66. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  67. package/dist/esm/loader.js +1 -1
  68. package/dist/esm/tabular-grid-column-sort-1d503b27.js +41 -0
  69. package/dist/esm/tabular-grid-column-sort-1d503b27.js.map +1 -0
  70. package/dist/esm/tabular-grid-render-f7eb612b.js +216 -0
  71. package/dist/esm/tabular-grid-render-f7eb612b.js.map +1 -0
  72. package/dist/esm/uncheck-ignored-4ba48c9e.js +40 -0
  73. package/dist/esm/uncheck-ignored-4ba48c9e.js.map +1 -0
  74. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  75. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  76. package/dist/genexus-ide-ui/p-02fb496a.js +36 -0
  77. package/dist/genexus-ide-ui/p-02fb496a.js.map +1 -0
  78. package/dist/genexus-ide-ui/{p-970e89ac.entry.js → p-4b06b578.entry.js} +100 -115
  79. package/dist/genexus-ide-ui/p-4b06b578.entry.js.map +1 -0
  80. package/dist/genexus-ide-ui/{p-34447b77.entry.js → p-4e3ad78d.entry.js} +261 -234
  81. package/dist/genexus-ide-ui/p-4e3ad78d.entry.js.map +1 -0
  82. package/dist/genexus-ide-ui/p-77c2e69d.js +314 -0
  83. package/dist/genexus-ide-ui/p-77c2e69d.js.map +1 -0
  84. package/dist/genexus-ide-ui/{p-9b8a8487.entry.js → p-8c867f9a.entry.js} +159 -167
  85. package/dist/genexus-ide-ui/p-8c867f9a.entry.js.map +1 -0
  86. package/dist/genexus-ide-ui/p-a7883e6b.entry.js +691 -0
  87. package/dist/genexus-ide-ui/p-a7883e6b.entry.js.map +1 -0
  88. package/dist/genexus-ide-ui/p-c9b9e260.js +36 -0
  89. package/dist/genexus-ide-ui/p-c9b9e260.js.map +1 -0
  90. package/dist/genexus-ide-ui/{p-42f37527.entry.js → p-e1a2550e.entry.js} +351 -289
  91. package/dist/genexus-ide-ui/p-e1a2550e.entry.js.map +1 -0
  92. package/dist/types/common/chameleon/tabular-grid-column-sort.d.ts +4 -0
  93. package/dist/types/components/team-dev/update/update.d.ts +6 -0
  94. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +15 -13
  95. package/dist/types/components/team-dev/version-control/common/are-sets-equal.d.ts +12 -0
  96. package/dist/types/components/team-dev/version-control/common/tabular-grid-render.d.ts +13 -1
  97. package/dist/types/components/team-dev/version-control/common/uncheck-ignored.d.ts +13 -0
  98. package/dist/types/components/ww-files/ww-files.d.ts +0 -1
  99. package/package.json +1 -1
  100. package/dist/genexus-ide-ui/p-34447b77.entry.js.map +0 -1
  101. package/dist/genexus-ide-ui/p-42f37527.entry.js.map +0 -1
  102. package/dist/genexus-ide-ui/p-723d25ae.entry.js +0 -912
  103. package/dist/genexus-ide-ui/p-723d25ae.entry.js.map +0 -1
  104. package/dist/genexus-ide-ui/p-970e89ac.entry.js.map +0 -1
  105. package/dist/genexus-ide-ui/p-9b8a8487.entry.js.map +0 -1
@@ -0,0 +1,691 @@
1
+ import { h as t, r as i, H as e, a as s } from "./p-97107ecc.js";
2
+
3
+ import { L as r } from "./p-311eedf3.js";
4
+
5
+ import { u as a, a as n } from "./p-c9b9e260.js";
6
+
7
+ import { A as o, a as l, I as d, r as c, b as h, C as p } from "./p-77c2e69d.js";
8
+
9
+ import { s as f } from "./p-02fb496a.js";
10
+
11
+ import "./p-401bfc97.js";
12
+
13
+ import "./p-a24571ca.js";
14
+
15
+ import "./p-8c15538c.js";
16
+
17
+ import "./p-edcd0022.js";
18
+
19
+ import "./p-9a03ac9f.js";
20
+
21
+ /**
22
+ * Filters a grid selection to only include rows from the given source ("pending" or "ignored").
23
+ * Rows from the other category are unselected.
24
+ *
25
+ * @param {SourceType} gridSource - The source category of the selection.
26
+ * @param {string[]} selectedRowsIds - The currently selected row IDs.
27
+ * @returns {string[]} Filtered row IDs belonging to the specified source.
28
+ */ const clearGridSelection = (t, i, e, s, r) => {
29
+ let a = [];
30
+ if (i.length > 1 && t === "pending") {
31
+ i.forEach((async t => {
32
+ if (s.has(t)) {
33
+ await r.selectRow(t, false);
34
+ } else {
35
+ a.push(t);
36
+ }
37
+ }));
38
+ } else if (i.length > 1 && t === "ignored") {
39
+ i.forEach((async t => {
40
+ if (e.has(t)) {
41
+ await r.selectRow(t, false);
42
+ } else {
43
+ a.push(t);
44
+ }
45
+ }));
46
+ } else {
47
+ a = i;
48
+ }
49
+ return a;
50
+ };
51
+
52
+ const headerDetail = (i = "text", e, s, r, a) => t("div", {
53
+ class: {
54
+ [a]: true,
55
+ "field field-block": true
56
+ }
57
+ }, t("span", {
58
+ class: "detail__label body-semi-bold-s"
59
+ }, e), i === "text" ? t("p", {
60
+ class: "body-regular-s"
61
+ }, s) : t("button", {
62
+ class: "detail__link body-regular-s",
63
+ onClick: r
64
+ }, s));
65
+
66
+ const headerTitle = (i, e) => t("h2", {
67
+ class: {
68
+ [e]: true,
69
+ "header__title subtitle-semi-bold-s": true
70
+ }
71
+ }, i);
72
+
73
+ const changesetToComboBoxModel = t => {
74
+ if (!t) return [];
75
+ return t.map((t => ({
76
+ value: t.id,
77
+ caption: t.name === "All" ? "All Changesets" : t.label || t.name || ""
78
+ })));
79
+ };
80
+
81
+ const foldersToComboBoxModel = t => t.map((t => ({
82
+ value: t.name,
83
+ caption: t.name === "All" ? "All Modules" : t.label || t.name || ""
84
+ })));
85
+
86
+ const typesToComboBoxItemModel = t => t.map((t => ({
87
+ value: t.id,
88
+ caption: t.name === "All" ? "All Types" : t.name || "",
89
+ startImgSrc: t.icon
90
+ })));
91
+
92
+ const m = '.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__version{padding-inline-start:24px}.filter,.filter-secondary>div{display:grid;gap:12px}:host{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr;--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s)}.section{display:grid;display:contents}.header__details{display:grid;row-gap:var(--mer-spacing--md);grid-auto-columns:max-content;grid-auto-rows:max-content;margin-block-end:var(--mer-spacing--lg)}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.filter__combo{max-block-size:minmax(0, 200px)}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0;--elevation-background-color:var(--mer-surface__elevation--01)}.empty-state{block-size:100%}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden;pointer-events:none}.tabular-grid{border-radius:4px;overflow:hidden}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid .button-action-custom-selector{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid.empty-result::part(main){overflow:hidden}.messages-list{margin:0;padding:0;list-style:none;max-inline-size:800px;padding:8px 0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--3xs)}.message-description{line-height:1.5;display:flex;align-items:center;gap:8px}.message-icon{flex-shrink:0}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--update,.pill--pending{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--ignored{--pill-background-color:var(--mer-surface__elevation--02);--pill-color:var(--mer-text__on-disabled);--pill-border-color:var(--mer-border-color__primary--disabled)}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--commited{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.spinner-caption::before{display:inline-block;content:"";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}.custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.header__details{grid-template-areas:"detail-heading-gx . . ." "detail-genexus-server detail-knowledge-base detail-version detail-last-full-update"}.detail__heading-genexus-server{grid-area:detail-heading-gx}.detail__genexus-server{grid-area:detail-genexus-server}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__version{grid-area:detail-version}.filter-container{container-type:inline-size;box-sizing:border-box;display:grid;column-gap:12px;grid-template-areas:"filter-primary filter-toggle-button filter-action-buttons" "filter-secondary . ." "comments comments comments";grid-template-columns:minmax(0, max-content) max-content 1fr}.filter-primary{grid-area:filter-primary;grid-template-columns:minmax(0, 200px) minmax(0, 200px) minmax(0, 200px)}.filter-container>:nth-child(2){grid-area:filter-toggle-button}.filter-container>:nth-child(3){grid-area:filter-action-buttons;justify-content:end}.filter__toggle-secondary-filter-btn{grid-area:filter-toggle-button}.filter__buttons{grid-area:filter-buttons;margin-inline-start:auto}.filter-secondary{display:grid;grid-template-rows:0fr;grid-area:filter-secondary;transition:grid-template-rows var(--mer-timing--fast)}.filter-secondary--visible{grid-template-rows:1fr}.filter-secondary>div{display:grid;overflow:hidden;font-size:0;grid-template-columns:repeat(3, minmax(0, 200px))}.filter-secondary>div>.combo-box,.comments{margin-block-start:12px}.comments{grid-area:comments}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:minmax(0, 200px);inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}';
93
+
94
+ var g = undefined && undefined.__classPrivateFieldGet || function(t, i, e, s) {
95
+ if (e === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
96
+ if (typeof i === "function" ? t !== i || !s : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
97
+ return e === "m" ? s : e === "a" ? s.call(t) : s ? s.value : i.get(t);
98
+ };
99
+
100
+ var u = undefined && undefined.__classPrivateFieldSet || function(t, i, e, s, r) {
101
+ if (s === "m") throw new TypeError("Private method is not writable");
102
+ if (s === "a" && !r) throw new TypeError("Private accessor was defined without a setter");
103
+ if (typeof i === "function" ? t !== i || !r : !i.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
104
+ return s === "a" ? r.call(t, e) : r ? r.value = e : i.set(t, e), e;
105
+ };
106
+
107
+ var b, v, _, w, y, x, k, M, C, j, W, S, z, I, A, T, O, N, E, L, P, D, R, F, G, H, U;
108
+
109
+ const X = "filters-secondary-container";
110
+
111
+ const Y = "filter-toggle-button";
112
+
113
+ const $ = [ "resets/box-sizing", "components/tabular-grid", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
114
+
115
+ const q = class {
116
+ constructor(t) {
117
+ i(this, t);
118
+ /**
119
+ * The component hard-coded strings translations.
120
+ */
121
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
122
+ b.set(this, void 0);
123
+ /**
124
+ * The ComboBoxModel for "Local State" filter.
125
+ */ v.set(this, void 0);
126
+ /**
127
+ * Used to determine if pendingItemsCheckedCallback callback has to be
128
+ * called or not. It should be ignored if the grid checkboxes state is
129
+ * changed programmatically, by setting markRow to false once the object
130
+ * has been successfully updated, for example.
131
+ */ _.set(this, true);
132
+ /**
133
+ * A reference to the tablar grid. Used to call methods.
134
+ */ w.set(this, void 0);
135
+ // commit related
136
+ y.set(this, (() => {
137
+ g(this, k, "f").call(this, [ ...this.markedObjectsSet ]);
138
+ }));
139
+ x.set(this, (t => async () => {
140
+ const i = new Map(this.objectsStatusMap);
141
+ i.set(t, "commiting");
142
+ this.objectsStatusMap = i;
143
+ g(this, k, "f").call(this, [ t ]);
144
+ }));
145
+ k.set(this, (async t => {
146
+ if (this.commentsValue.length === 0) {
147
+ // A comment is required to commit.
148
+ this.commentInputHasError = true;
149
+ return;
150
+ }
151
+ this.commentInputHasError = false;
152
+ this.commiting = true;
153
+ t.forEach((t => {
154
+ this.objectsStatusMap.set(t, "commiting");
155
+ }));
156
+ const i = await this.commitCallback(t, this.commentsValue);
157
+ i.forEach((async t => {
158
+ const i = t.messages;
159
+ if (i.length) {
160
+ this.objectsMessagesDataMap.set(t.id, t.messages);
161
+ } else {
162
+ // clear messages
163
+ this.objectsMessagesDataMap.delete(t.id);
164
+ }
165
+ if (t.result === "commited") {
166
+ // Apply a new Set to "alreadyCommitedObjectsIdsSet" in order for the Watch to fire.
167
+ this.alreadyCommitedObjectsIdsSet = new Set([ ...this.alreadyCommitedObjectsIdsSet, t.id ]);
168
+ this.objectsStatusMap.set(t.id, "commited");
169
+ await g(this, w, "f").markRow(t.id, false);
170
+ } else {
171
+ this.objectsStatusMap.set(t.id, "pending");
172
+ }
173
+ }));
174
+ this.commiting = false;
175
+ }));
176
+ // handlers
177
+ M.set(this, (async t => {
178
+ const i = t.detail.rowsId;
179
+ this.markedObjectsSet = new Set(i.filter((t => !this.alreadyCommitedObjectsIdsSet.has(t))));
180
+ if (g(this, _, "f")) {
181
+ g(this, L, "f").call(this, t);
182
+ }
183
+ }));
184
+ C.set(this, (async t => {
185
+ const i = t.detail.rowsId;
186
+ const e = i[0];
187
+ const s = this.pendingIdsSet.has(e) ? "pending" : "ignored";
188
+ const r = clearGridSelection(s, i, this.pendingIdsSet, this.ignoredIdsSet, g(this, w, "f"));
189
+ await this.selectCallback(s, r);
190
+ }));
191
+ j.set(this, (t => {
192
+ this.commentsValue = t.detail;
193
+ if (this.commentsValue.length && this.commentInputHasError) {
194
+ // remove error style and tooltip
195
+ this.commentInputHasError = false;
196
+ }
197
+ }));
198
+ // filter related
199
+ W.set(this, (() => {
200
+ this.pendingObjectsAfterFilter = g(this, S, "f").call(this, this.pendingAndIgnored.pendingForCommit);
201
+ this.ignoredObjectsAfterFilter = g(this, S, "f").call(this, this.pendingAndIgnored.ignoredObjects);
202
+ }));
203
+ S.set(this, (t => {
204
+ let i = t;
205
+ // name or description
206
+ if (this.searchValue.length) {
207
+ i = i.filter((t => {
208
+ const i = t.name.toLowerCase().includes(this.searchValue.toLowerCase());
209
+ const e = t.description.toLowerCase().includes(this.searchValue.toLowerCase());
210
+ return i || e;
211
+ }));
212
+ }
213
+ // status
214
+ if (this.selectedState && this.selectedState !== o) {
215
+ i = i.filter((t => t.state === this.selectedState));
216
+ }
217
+ return i;
218
+ }));
219
+ z.set(this, (() => {
220
+ if (
221
+ // this.selectedChangeset !== ALL_VALUE ||
222
+ this.selectedFolder !== o) {
223
+ this.filterSecondaryHasConditions = true;
224
+ } else {
225
+ this.filterSecondaryHasConditions = false;
226
+ }
227
+ }));
228
+ I.set(this, (() => {
229
+ this.filterSecondaryIsHidden = !this.filterSecondaryIsHidden;
230
+ }));
231
+ A.set(this, (t => {
232
+ this.searchValue = t.detail.trim();
233
+ g(this, W, "f").call(this);
234
+ }));
235
+ T.set(this, (t => {
236
+ this.selectedType = t.detail;
237
+ g(this, D, "f").call(this);
238
+ }));
239
+ O.set(this, (t => {
240
+ this.selectedState = t.detail;
241
+ g(this, W, "f").call(this);
242
+ }));
243
+ // changeset is a WIP.
244
+ // #changesetChangedHandler = (event: CustomEvent<string> | InputEvent) => {
245
+ // this.selectedChangeset = event.detail as string;
246
+ // this.#loadData();
247
+ // this.#evaluateSecondaryFilterHasConditions();
248
+ // };
249
+ N.set(this, (t => {
250
+ this.selectedFolder = t.detail;
251
+ g(this, D, "f").call(this);
252
+ g(this, z, "f").call(this);
253
+ }));
254
+ // #categoryChangedHandler = (event: CustomEvent<string> | InputEvent) => {
255
+ // this.selectedCategory = event.detail as string;
256
+ // this.#loadData();
257
+ // this.#evaluateSecondaryFilterHasConditions();
258
+ // };
259
+ E.set(this, (() => async t => {
260
+ t.preventDefault();
261
+ t.stopPropagation();
262
+ const i = await g(this, w, "f").getSelectedRows();
263
+ const e = i[0];
264
+ const s = this.pendingIdsSet.has(e) ? "pending" : "ignored";
265
+ await this.objectsContextMenuCallback(s, {
266
+ selection: i,
267
+ clientX: t.detail.clientX,
268
+ clientY: t.detail.clientY
269
+ });
270
+ }));
271
+ // other methods
272
+ L.set(this, (async t => {
273
+ u(this, _, false, "f");
274
+ const i = t.detail.addedRowsId;
275
+ const e = t.detail.removedRowsId;
276
+ const s = await this.pendingItemsCheckedCallback({
277
+ itemsChecked: i,
278
+ itemsUnchecked: e
279
+ });
280
+ if (s === undefined) {
281
+ // undo check/uncheck
282
+ await g(this, F, "f").call(this, i, e);
283
+ } else {
284
+ await g(this, G, "f").call(this, s);
285
+ }
286
+ u(this, _, true, "f");
287
+ }));
288
+ P.set(this, (() => {
289
+ this.pendingAndIgnored.pendingForCommit.forEach((t => {
290
+ const i = "pending";
291
+ this.objectsStatusMap.set(t.id, i);
292
+ }));
293
+ this.pendingAndIgnored.ignoredObjects.forEach((t => {
294
+ const i = "ignored";
295
+ this.objectsStatusMap.set(t.id, i);
296
+ }));
297
+ }));
298
+ D.set(this, (async () => {
299
+ this.loading = true;
300
+ this.pendingAndIgnored = await this.loadCallback({
301
+ search: this.searchValue,
302
+ type: this.selectedType,
303
+ changeset: this.selectedChangeset,
304
+ folder: this.selectedFolder,
305
+ category: this.selectedCategory
306
+ });
307
+ this.loading = false;
308
+ // Is is required to mark/check all objects after loadCallback.
309
+ // this.#markPendingObjects();
310
+ }));
311
+ /**
312
+ * Marks all pending objects that have not been committed yet.
313
+ *
314
+ * Iterates through all pending object IDs and adds them to the marked objects set
315
+ * if they are not already in the committed objects set. This effectively identifies
316
+ * and marks all the pending objects that still need to be processed.
317
+ **/ R.set(this, (() => {
318
+ for (const t of this.pendingIdsSet) {
319
+ if (!this.alreadyCommitedObjectsIdsSet.has(t)) {
320
+ this.markedObjectsSet = new Set([ ...this.markedObjectsSet, t ]);
321
+ }
322
+ }
323
+ }));
324
+ // render methods
325
+ F.set(this, (async (t, i) => {
326
+ if (g(this, w, "f")) {
327
+ for (const i of t) {
328
+ await g(this, w, "f").markRow(i, false);
329
+ }
330
+ for (const t of i) {
331
+ await g(this, w, "f").markRow(t, true);
332
+ }
333
+ }
334
+ }));
335
+ G.set(this, (async t => {
336
+ if (g(this, w, "f")) {
337
+ const i = t.itemsToCheck;
338
+ const e = t.itemsToUncheck;
339
+ // check
340
+ for (const t of i) {
341
+ await g(this, w, "f").markRow(t, true);
342
+ }
343
+ // uncheck
344
+ for (const t of e) {
345
+ await g(this, w, "f").markRow(t, false);
346
+ }
347
+ }
348
+ }));
349
+ H.set(this, (t => {
350
+ const i = t.detail.columnId;
351
+ let e;
352
+ let s = "string";
353
+ if (i === p.type) {
354
+ e = "name";
355
+ // the type name
356
+ s = "object";
357
+ } else if (i === p.modifiedOn || i === p.lastSynchronized) {
358
+ s = "dateString";
359
+ }
360
+ this.pendingObjectsAfterFilter = [ ...f(t, this.pendingObjectsAfterFilter, s, e) ];
361
+ this.ignoredObjectsAfterFilter = [ ...f(t, this.ignoredObjectsAfterFilter, s, e) ];
362
+ }));
363
+ /**
364
+ * WA: Ignored objects must always remain unchecked.
365
+ * Because `tabular-grid` selects all rows when the checkbox column is toggled,
366
+ * we need to manually unselect the ignored IDs. // TODO: Move this function
367
+ * to common
368
+ */ U.set(this, (async t => {
369
+ const i = t.detail;
370
+ if (i) {
371
+ const t = await g(this, w, "f").getMarkedRows();
372
+ const i = t.filter((t => this.ignoredIdsSet.has(t)));
373
+ if (i.length) {
374
+ a(i, g(this, w, "f"));
375
+ }
376
+ }
377
+ }));
378
+ this.allPendingAreCommited = false;
379
+ this.alreadyCommitedObjectsIdsSet = new Set([]);
380
+ this.ignoredIdsSet = new Set([]);
381
+ this.pendingIdsSet = new Set([]);
382
+ this.markedObjectsSet = new Set([]);
383
+ this.objectsStatusMap = new Map;
384
+ this.objectsMessagesDataMap = new Map;
385
+ this.atLeastOneObjectIsChecked = false;
386
+ this.commentInputHasError = false;
387
+ this.commiting = false;
388
+ this.filterSecondaryIsHidden = true;
389
+ this.filterSecondaryHasConditions = false;
390
+ this.loading = true;
391
+ this.changesetsComboBoxModel = undefined;
392
+ this.pendingObjectsAfterFilter = [];
393
+ this.ignoredObjectsAfterFilter = [];
394
+ this.typesComboBoxModel = [];
395
+ this.pendingAndIgnored = {
396
+ pendingForCommit: [],
397
+ ignoredObjects: []
398
+ };
399
+ this.commentsValue = "";
400
+ this.searchValue = "";
401
+ this.selectedType = undefined;
402
+ this.selectedState = o;
403
+ this.selectedChangeset = undefined;
404
+ this.selectedFolder = undefined;
405
+ this.selectedCategory = undefined;
406
+ this.foldersComboBoxModel = undefined;
407
+ this.commitCallback = undefined;
408
+ this.objectsContextMenuCallback = undefined;
409
+ this.loadCallback = undefined;
410
+ this.openServerCallback = undefined;
411
+ this.pendingItemsCheckedCallback = undefined;
412
+ this.selectCallback = undefined;
413
+ this.types = undefined;
414
+ this.changeset = undefined;
415
+ this.folders = undefined;
416
+ this.updatePillAsButton = false;
417
+ this.serverDetails = undefined;
418
+ }
419
+ alreadyCommitedObjectsIdsSetChanged(t) {
420
+ const i = n(t, this.pendingIdsSet);
421
+ this.allPendingAreCommited = i && this.pendingIdsSet.size > 0;
422
+ }
423
+ markedObjectsSetChanged(t) {
424
+ this.atLeastOneObjectIsChecked = t.size > 0;
425
+ }
426
+ objectsStatusMapChanged(t) {
427
+ const i = [ ...t.entries() ].find((([, t]) => t === "commiting"));
428
+ if (!i) {
429
+ this.commiting = false;
430
+ }
431
+ }
432
+ pendingAndIgnoredChanged(t) {
433
+ var i, e;
434
+ // clear previous state
435
+ this.pendingIdsSet.clear();
436
+ // before pendingIdsSet.add
437
+ this.ignoredIdsSet.clear();
438
+ // before ignoredIdsSet.add
439
+ this.objectsMessagesDataMap = new Map;
440
+ this.alreadyCommitedObjectsIdsSet = new Set;
441
+ this.commentInputHasError = false;
442
+ this.markedObjectsSet = new Set;
443
+ // before #markPendingObjects
444
+ (i = t.pendingForCommit) === null || i === void 0 ? void 0 : i.forEach((t => {
445
+ this.pendingIdsSet.add(t.id);
446
+ }));
447
+ (e = t.ignoredObjects) === null || e === void 0 ? void 0 : e.forEach((t => {
448
+ this.ignoredIdsSet.add(t.id);
449
+ }));
450
+ g(this, R, "f").call(this);
451
+ // after pendingIdsSet.add and ignoredIdsSet.add
452
+ g(this, P, "f").call(this);
453
+ // after pendingIdsSet.add and ignoredIdsSet.add
454
+ g(this, W, "f").call(this);
455
+ }
456
+ typesChanged(t) {
457
+ this.typesComboBoxModel = typesToComboBoxItemModel(t);
458
+ }
459
+ changesetChanged(t) {
460
+ this.changesetsComboBoxModel = changesetToComboBoxModel(t);
461
+ }
462
+ folderChanged(t) {
463
+ this.foldersComboBoxModel = foldersToComboBoxModel(t);
464
+ }
465
+ async componentWillLoad() {
466
+ u(this, b, await r.getComponentStrings(this.el), "f");
467
+ // Initiate "actions" combo box filter
468
+ u(this, v, [ {
469
+ caption: g(this, b, "f").states.all,
470
+ value: o
471
+ }, {
472
+ caption: g(this, b, "f").states.inserted,
473
+ value: "inserted"
474
+ }, {
475
+ caption: g(this, b, "f").states.modified,
476
+ value: "modified"
477
+ }, {
478
+ caption: g(this, b, "f").states.conflicted,
479
+ value: "conflicted"
480
+ }, {
481
+ caption: g(this, b, "f").states.deleted,
482
+ value: "deleted"
483
+ } ], "f");
484
+ // intialize combo-box models
485
+ this.typesComboBoxModel = typesToComboBoxItemModel(this.types);
486
+ this.selectedType = this.typesComboBoxModel[0].value;
487
+ this.selectedState = g(this, v, "f")[0].value;
488
+ this.changesetChanged(this.changeset);
489
+ this.selectedChangeset = this.changesetsComboBoxModel.length > 0 ? this.changesetsComboBoxModel[0].value : o;
490
+ this.folderChanged(this.folders);
491
+ this.selectedFolder = this.foldersComboBoxModel && this.foldersComboBoxModel.length > 0 ? this.foldersComboBoxModel[0].value : o;
492
+ // this.categoryChanged(this.categories);
493
+ // this.selectedCategory =
494
+ // this.categoriesComboBoxModel.length > 0
495
+ // ? this.categoriesComboBoxModel[0].value
496
+ // : ALL_VALUE;
497
+ g(this, z, "f").call(this);
498
+ }
499
+ async componentDidLoad() {
500
+ await g(this, D, "f").call(this);
501
+ // initialize "allPendingAreCommited"
502
+ this.alreadyCommitedObjectsIdsSetChanged(this.alreadyCommitedObjectsIdsSet);
503
+ }
504
+ /**
505
+ * Used by the host to instruct the component to force a data reload in the grids.
506
+ */ async reload() {
507
+ await g(this, D, "f").call(this);
508
+ }
509
+ render() {
510
+ const i = this.commiting || this.loading;
511
+ const s = this.pendingObjectsAfterFilter.length === 0 && this.ignoredObjectsAfterFilter.length === 0;
512
+ const r = this.filterSecondaryHasConditions ? d.filterWithConditions : d.filter;
513
+ const a = this.atLeastOneObjectIsChecked && this.commentsValue.length > 0 && !this.allPendingAreCommited;
514
+ return t(e, {
515
+ class: "widget"
516
+ }, t("ch-theme", {
517
+ model: $
518
+ }), t("section", {
519
+ class: "section"
520
+ }, t("header", {
521
+ class: {
522
+ [l.HEADER]: true
523
+ }
524
+ }, t("div", {
525
+ // header details
526
+ class: {
527
+ [l.HEADER_DETAILS]: true
528
+ }
529
+ }, headerTitle(g(this, b, "f").commitDetail.title),
530
+ // genexus server
531
+ headerDetail("link", g(this, b, "f").commitDetail.genexusServer, this.serverDetails ? this.serverDetails.serverUrl : "", this.openServerCallback, "detail__genexus-server"),
532
+ // knowledge base
533
+ headerDetail("text", g(this, b, "f").commitDetail.knowledgeBase, this.serverDetails ? this.serverDetails.kbName : "", undefined, "detail__knowledge-base"),
534
+ // version
535
+ headerDetail("text", g(this, b, "f").commitDetail.version, this.serverDetails ? this.serverDetails.versionName : "", undefined, "detail__version"))), t("div", {
536
+ class: "filter-container spacing-body-inline"
537
+ }, t("div", {
538
+ class: {
539
+ [l.FILTER]: true,
540
+ "filter-primary": true
541
+ }
542
+ }, t("ch-edit", {
543
+ // searchch-edit
544
+ class: "input filter__combo",
545
+ disabled: i,
546
+ startImgSrc: d.search,
547
+ accessibleName: g(this, b, "f").filter.searchAccessibleName,
548
+ placeholder: g(this, b, "f").filter.searchPlaceholder,
549
+ type: "search",
550
+ onInput: g(this, A, "f")
551
+ }), t("ch-combo-box-render", {
552
+ // types
553
+ class: "combo-box filter__combo",
554
+ disabled: i,
555
+ model: this.typesComboBoxModel,
556
+ value: this.selectedType,
557
+ accessibleName: g(this, b, "f").filter.typeAccesibleName,
558
+ placeholder: g(this, b, "f").filter.typePlaceholder,
559
+ onInput: g(this, T, "f")
560
+ }), t("ch-combo-box-render", {
561
+ // local states
562
+ class: "combo-box filter__combo",
563
+ disabled: i,
564
+ model: g(this, v, "f"),
565
+ value: this.selectedState,
566
+ onInput: g(this, O, "f"),
567
+ accessibleName: g(this, b, "f").filter.localStateAccesibleName,
568
+ placeholder: g(this, b, "f").filter.localStatePlaceholder
569
+ })), t("button", {
570
+ // toggle secondary filter button
571
+ id: Y,
572
+ class: "button-secondary button-icon-only",
573
+ disabled: i,
574
+ "aria-label": g(this, b, "f").filter.secondaryFilterAriaLabel,
575
+ "aria-expanded": this.filterSecondaryIsHidden ? "false" : "true",
576
+ "aria-controls": X,
577
+ onClick: g(this, I, "f"),
578
+ title: g(this, b, "f").filter.secondaryFilterAriaLabel
579
+ }, t("ch-image", {
580
+ class: "icon-md",
581
+ src: r
582
+ })), t("div", {
583
+ class: "buttons-spacer"
584
+ }, t("button", {
585
+ // reload button
586
+ class: "button-secondary button-icon-and-text",
587
+ disabled: i,
588
+ onClick: g(this, D, "f")
589
+ }, t("ch-image", {
590
+ class: "icon-md",
591
+ src: d.refresh
592
+ }), g(this, b, "f").filter.reload), t("button", {
593
+ // commit button
594
+ class: "button-primary",
595
+ disabled: !a || i,
596
+ onClick: g(this, y, "f")
597
+ }, g(this, b, "f").filter.commit)), t("div", {
598
+ // secondary filter
599
+ id: X,
600
+ "aria-labelledby": Y,
601
+ class: {
602
+ [l.FILTER]: true,
603
+ "filter-secondary": true,
604
+ "filter-secondary--visible": !this.filterSecondaryIsHidden
605
+ },
606
+ inert: this.filterSecondaryIsHidden,
607
+ hidden: this.filterSecondaryIsHidden
608
+ }, t("div", null, t("ch-combo-box-render", {
609
+ // folder
610
+ class: "combo-box",
611
+ disabled: i,
612
+ model: this.foldersComboBoxModel,
613
+ value: this.selectedFolder,
614
+ onInput: g(this, N, "f"),
615
+ accessibleName: g(this, b, "f").filter.folderAccesibleName,
616
+ placeholder: g(this, b, "f").filter.folderPlaceholder
617
+ }))), t("ch-edit", {
618
+ // commit comments
619
+ class: "input comments",
620
+ multiline: true,
621
+ autoGrow: true,
622
+ placeholder: g(this, b, "f").commitCommentPlaceholder,
623
+ onInput: g(this, j, "f")
624
+ })), t("div", {
625
+ class: l.MAIN
626
+ }, !this.loading ? t("ch-tabular-grid", {
627
+ class: {
628
+ "tabular-grid": true,
629
+ "objects-tabular-grid": true,
630
+ "disabled-custom-selector": this.commiting,
631
+ "empty-result": s
632
+ },
633
+ keyboardNavigationMode: "focus",
634
+ rowSelectionMode: "multiple",
635
+ onSelectionChanged: g(this, C, "f"),
636
+ onRowMarkingChanged: g(this, M, "f"),
637
+ onRowContextMenu: g(this, E, "f").call(this),
638
+ ref: t => u(this, w, t, "f")
639
+ }, c([ "action" ], s, g(this, H, "f"), g(this, U, "f"), g(this, b, "f"), !this.allPendingAreCommited), !s ? [ t("ch-tabular-grid-rowset", {
640
+ class: "tabular-grid-rowset"
641
+ }, t("ch-tabular-grid-rowset-legend", {
642
+ class: "tabular-grid-rowset-legend"
643
+ }, g(this, b, "f").objects.pendingCommits), h("pending", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.alreadyCommitedObjectsIdsSet, this.markedObjectsSet, this.objectsMessagesDataMap, this.updatePillAsButton, g(this, x, "f"), this.objectsStatusMap, this.searchValue, g(this, b, "f"))), t("ch-tabular-grid-rowset", {
644
+ class: "tabular-grid-rowset"
645
+ }, t("ch-tabular-grid-rowset-legend", {
646
+ class: "tabular-grid-rowset-legend"
647
+ }, g(this, b, "f").objects.ignoredObjects), h("ignored", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.alreadyCommitedObjectsIdsSet, this.markedObjectsSet, this.objectsMessagesDataMap, this.updatePillAsButton, g(this, x, "f"), this.objectsStatusMap, this.searchValue, g(this, b, "f"))) ] : null, t("ch-tabular-grid-rowset", {
648
+ class: "tabular-grid-rowset"
649
+ }, s && t("ch-tabular-grid-rowset-empty", null, t("gx-ide-empty-state", {
650
+ class: "empty-state",
651
+ isAnimated: true,
652
+ stateIconSrc: d.filter,
653
+ stateTitle: "No object matched your filter"
654
+ })))) : t("gx-ide-loader", {
655
+ cancelLabel: g(this, b, "f").loader.cancelLabel,
656
+ loaderTitle: g(this, b, "f").loader.title,
657
+ description: g(this, b, "f").loader.description,
658
+ show: true,
659
+ class: "loader"
660
+ }))));
661
+ }
662
+ static get assetsDirs() {
663
+ return [ "gx-ide-assets/team-dev-commit" ];
664
+ }
665
+ get el() {
666
+ return s(this);
667
+ }
668
+ static get watchers() {
669
+ return {
670
+ alreadyCommitedObjectsIdsSet: [ "alreadyCommitedObjectsIdsSetChanged" ],
671
+ markedObjectsSet: [ "markedObjectsSetChanged" ],
672
+ objectsStatusMap: [ "objectsStatusMapChanged" ],
673
+ pendingAndIgnored: [ "pendingAndIgnoredChanged" ],
674
+ types: [ "typesChanged" ],
675
+ changeset: [ "changesetChanged" ],
676
+ folders: [ "folderChanged" ]
677
+ };
678
+ }
679
+ };
680
+
681
+ b = new WeakMap, v = new WeakMap, _ = new WeakMap, w = new WeakMap, y = new WeakMap,
682
+ x = new WeakMap, k = new WeakMap, M = new WeakMap, C = new WeakMap, j = new WeakMap,
683
+ W = new WeakMap, S = new WeakMap, z = new WeakMap, I = new WeakMap, A = new WeakMap,
684
+ T = new WeakMap, O = new WeakMap, N = new WeakMap, E = new WeakMap, L = new WeakMap,
685
+ P = new WeakMap, D = new WeakMap, R = new WeakMap, F = new WeakMap, G = new WeakMap,
686
+ H = new WeakMap, U = new WeakMap;
687
+
688
+ q.style = m;
689
+
690
+ export { q as gx_ide_team_dev_commit };
691
+ //# sourceMappingURL=p-a7883e6b.entry.js.map