@genexus/genexus-ide-ui 1.1.65 → 1.1.67

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 (107) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js +66 -0
  3. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js.map +1 -0
  4. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +210 -0
  5. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +29 -28
  7. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +10 -2
  9. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js +34 -20
  11. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +9 -2
  13. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +2 -0
  16. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.css +41 -0
  17. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.js +112 -0
  18. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.js.map +1 -0
  19. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.en.json +5 -0
  20. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.ja.json +5 -0
  21. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.zh.json +5 -0
  22. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.css +27 -0
  23. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js +273 -0
  24. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js.map +1 -0
  25. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.en.json +22 -0
  26. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.ja.json +22 -0
  27. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.zh.json +22 -0
  28. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +22 -8
  29. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +69 -28
  30. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  31. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +6 -0
  32. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +6 -0
  33. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +6 -0
  34. package/dist/collection/components/team-dev/preview/team-dev-preview.css +15 -0
  35. package/dist/collection/components/team-dev/preview/team-dev-preview.js +56 -20
  36. package/dist/collection/components/team-dev/preview/team-dev-preview.js.map +1 -1
  37. package/dist/collection/components/team-dev/update/update.js +31 -2
  38. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  39. package/dist/collection/components/team-dev/version-control/commit/commit.js +33 -3
  40. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  41. package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -1
  42. package/dist/collection/testing/locale.e2e.js +3 -1
  43. package/dist/collection/testing/locale.e2e.js.map +1 -1
  44. package/dist/components/gx-ide-comments-viewer.d.ts +11 -0
  45. package/dist/components/gx-ide-comments-viewer.js +83 -0
  46. package/dist/components/gx-ide-comments-viewer.js.map +1 -0
  47. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.d.ts +11 -0
  48. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +232 -0
  49. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -0
  50. package/dist/components/gx-ide-team-dev-bring-changes.js +31 -28
  51. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  52. package/dist/components/gx-ide-team-dev-commit.js +13 -3
  53. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  54. package/dist/components/gx-ide-team-dev-preview.js +37 -21
  55. package/dist/components/gx-ide-team-dev-preview.js.map +1 -1
  56. package/dist/components/gx-ide-team-dev-update.js +12 -3
  57. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  58. package/dist/esm/genexus-ide-ui.js +1 -1
  59. package/dist/esm/gx-ide-comments-viewer.entry.js +62 -0
  60. package/dist/esm/gx-ide-comments-viewer.entry.js.map +1 -0
  61. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +206 -0
  62. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -0
  63. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +29 -28
  64. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  65. package/dist/esm/gx-ide-team-dev-commit.entry.js +10 -2
  66. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  67. package/dist/esm/gx-ide-team-dev-preview.entry.js +34 -20
  68. package/dist/esm/gx-ide-team-dev-preview.entry.js.map +1 -1
  69. package/dist/esm/gx-ide-team-dev-update.entry.js +9 -2
  70. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  71. package/dist/esm/loader.js +1 -1
  72. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  73. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  74. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.en.json +5 -0
  75. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.ja.json +5 -0
  76. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.zh.json +5 -0
  77. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.en.json +22 -0
  78. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.ja.json +22 -0
  79. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.zh.json +22 -0
  80. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +6 -0
  81. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +6 -0
  82. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +6 -0
  83. package/dist/genexus-ide-ui/p-0488759f.entry.js +82 -0
  84. package/dist/genexus-ide-ui/p-0488759f.entry.js.map +1 -0
  85. package/dist/genexus-ide-ui/p-09693b80.entry.js +274 -0
  86. package/dist/genexus-ide-ui/p-09693b80.entry.js.map +1 -0
  87. package/dist/genexus-ide-ui/{p-ab8aee7d.entry.js → p-1890d374.entry.js} +209 -181
  88. package/dist/genexus-ide-ui/p-1890d374.entry.js.map +1 -0
  89. package/dist/genexus-ide-ui/{p-3d71b287.entry.js → p-9285b6db.entry.js} +34 -28
  90. package/dist/genexus-ide-ui/p-9285b6db.entry.js.map +1 -0
  91. package/dist/genexus-ide-ui/{p-73c3f9ec.entry.js → p-c8b0004e.entry.js} +15 -9
  92. package/dist/genexus-ide-ui/p-c8b0004e.entry.js.map +1 -0
  93. package/dist/genexus-ide-ui/{p-eeae4b37.entry.js → p-e2fd2c24.entry.js} +135 -128
  94. package/dist/genexus-ide-ui/p-e2fd2c24.entry.js.map +1 -0
  95. package/dist/types/components/_helpers/comments-viewer/comments-viewer.d.ts +19 -0
  96. package/dist/types/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.d.ts +45 -0
  97. package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +9 -1
  98. package/dist/types/components/team-dev/preview/team-dev-preview.d.ts +8 -0
  99. package/dist/types/components/team-dev/update/update.d.ts +8 -0
  100. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +8 -0
  101. package/dist/types/components/team-dev/version-control/common/types.d.ts +1 -0
  102. package/dist/types/components.d.ts +94 -0
  103. package/package.json +1 -1
  104. package/dist/genexus-ide-ui/p-3d71b287.entry.js.map +0 -1
  105. package/dist/genexus-ide-ui/p-73c3f9ec.entry.js.map +0 -1
  106. package/dist/genexus-ide-ui/p-ab8aee7d.entry.js.map +0 -1
  107. package/dist/genexus-ide-ui/p-eeae4b37.entry.js.map +0 -1
@@ -14,7 +14,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
14
14
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
15
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
16
  };
17
- var _GxIdeTeamDevPreview_componentLocale, _GxIdeTeamDevPreview_isPendingReloadLocalChanges, _GxIdeTeamDevPreview_isPendingReloadRemoteChanges, _GxIdeTeamDevPreview_commitData, _GxIdeTeamDevPreview_updateData, _GxIdeTeamDevPreview_prevVersionName, _GxIdeTeamDevPreview_isTeamDevOptionsEnabled, _GxIdeTeamDevPreview_emptyStateConfig, _GxIdeTeamDevPreview_setEmptyStateConfig, _GxIdeTeamDevPreview_setTeamDevOptionsStatus, _GxIdeTeamDevPreview_loadChanges, _GxIdeTeamDevPreview_convertDataToTreeView, _GxIdeTeamDevPreview_checkedItemsChangeHandler, _GxIdeTeamDevPreview_shareKBToServerHandler, _GxIdeTeamDevPreview_createKBFromServerHandler, _GxIdeTeamDevPreview_openFullDialogHandler, _GxIdeTeamDevPreview_commitChangesHandler, _GxIdeTeamDevPreview_commitMessageInputHandler, _GxIdeTeamDevPreview_updateRemoteChangesHandler, _GxIdeTeamDevPreview_tabSelectionChangedHandler, _GxIdeTeamDevPreview_openTeamDevInfoHandler, _GxIdeTeamDevPreview_reconnectHandler, _GxIdeTeamDevPreview_renderIcon, _GxIdeTeamDevPreview_disableConfirmButton, _GxIdeTeamDevPreview_updateTabModel, _GxIdeTeamDevPreview_getEmptyStateTitle, _GxIdeTeamDevPreview_getEmptyStateDescription, _GxIdeTeamDevPreview_getEmptyStateButtonText, _GxIdeTeamDevPreview_getEmptyStateButtonHandler, _GxIdeTeamDevPreview_renderEmptyStateButton, _GxIdeTeamDevPreview_renderReloadChangesButton, _GxIdeTeamDevPreview_renderEmptyState, _GxIdeTeamDevPreview_renderTreeChanges, _GxIdeTeamDevPreview_renderConfirmButton, _GxIdeTeamDevPreview_renderLocalChanges, _GxIdeTeamDevPreview_renderRemoteChanges;
17
+ var _GxIdeTeamDevPreview_componentLocale, _GxIdeTeamDevPreview_isPendingReloadLocalChanges, _GxIdeTeamDevPreview_isPendingReloadRemoteChanges, _GxIdeTeamDevPreview_commitData, _GxIdeTeamDevPreview_updateData, _GxIdeTeamDevPreview_prevVersionName, _GxIdeTeamDevPreview_isTeamDevOptionsEnabled, _GxIdeTeamDevPreview_emptyStateConfig, _GxIdeTeamDevPreview_localChangesTreeEL, _GxIdeTeamDevPreview_remoteChangesTreeEL, _GxIdeTeamDevPreview_setEmptyStateConfig, _GxIdeTeamDevPreview_setTeamDevOptionsStatus, _GxIdeTeamDevPreview_loadChanges, _GxIdeTeamDevPreview_convertDataToTreeView, _GxIdeTeamDevPreview_checkedItemsChangeHandler, _GxIdeTeamDevPreview_shareKBToServerHandler, _GxIdeTeamDevPreview_createKBFromServerHandler, _GxIdeTeamDevPreview_openFullDialogHandler, _GxIdeTeamDevPreview_commitChangesHandler, _GxIdeTeamDevPreview_commitMessageInputHandler, _GxIdeTeamDevPreview_updateRemoteChangesHandler, _GxIdeTeamDevPreview_tabSelectionChangedHandler, _GxIdeTeamDevPreview_openTeamDevInfoHandler, _GxIdeTeamDevPreview_reconnectHandler, _GxIdeTeamDevPreview_renderIcon, _GxIdeTeamDevPreview_disableConfirmButton, _GxIdeTeamDevPreview_updateTabModel, _GxIdeTeamDevPreview_getEmptyStateTitle, _GxIdeTeamDevPreview_getEmptyStateDescription, _GxIdeTeamDevPreview_getEmptyStateButtonText, _GxIdeTeamDevPreview_getEmptyStateButtonHandler, _GxIdeTeamDevPreview_renderEmptyStateButton, _GxIdeTeamDevPreview_renderReloadChangesButton, _GxIdeTeamDevPreview_renderEmptyState, _GxIdeTeamDevPreview_renderTreeChanges, _GxIdeTeamDevPreview_renderConfirmButton, _GxIdeTeamDevPreview_renderLocalChanges, _GxIdeTeamDevPreview_renderRemoteChanges;
18
18
  import { getIconPath } from "@genexus/mercury";
19
19
  import { Fragment, h, Host } from "@stencil/core";
20
20
  import { Locale } from "../../../common/locale";
@@ -94,6 +94,8 @@ export class GxIdeTeamDevPreview {
94
94
  _GxIdeTeamDevPreview_prevVersionName.set(this, void 0);
95
95
  _GxIdeTeamDevPreview_isTeamDevOptionsEnabled.set(this, false);
96
96
  _GxIdeTeamDevPreview_emptyStateConfig.set(this, {});
97
+ _GxIdeTeamDevPreview_localChangesTreeEL.set(this, void 0);
98
+ _GxIdeTeamDevPreview_remoteChangesTreeEL.set(this, void 0);
97
99
  _GxIdeTeamDevPreview_setEmptyStateConfig.set(this, () => {
98
100
  __classPrivateFieldSet(this, _GxIdeTeamDevPreview_emptyStateConfig, {
99
101
  [TeamDevEmptyState.NoKBOpen]: {
@@ -198,7 +200,14 @@ export class GxIdeTeamDevPreview {
198
200
  endImgSrc: isLocal
199
201
  ? __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderIcon, "f").call(this, item.state)
200
202
  : __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderIcon, "f").call(this, item.action),
201
- caption: item.name,
203
+ caption: (
204
+ //WA: Used to apply different styles to the item caption and path
205
+ h("div", { style: {
206
+ display: "flex"
207
+ } }, h("span", null, item.name), h("span", { style: {
208
+ color: "var(--mer-color__neutral-gray--450)",
209
+ marginLeft: "4px"
210
+ } }, item.module))),
202
211
  leaf: true,
203
212
  parts: "change-item"
204
213
  }))
@@ -219,9 +228,15 @@ export class GxIdeTeamDevPreview {
219
228
  .map(node => node.item.id);
220
229
  if (type === "local") {
221
230
  this.localChangesCheckedNodesIds = checkedNodesIds;
231
+ __classPrivateFieldGet(this, _GxIdeTeamDevPreview_localChangesTreeEL, "f").updateItemsProperties(["root"], {
232
+ caption: `${__classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").captions.localChanges} (${this.localChangesCheckedNodesIds.length}/${this.pendingCommitChangesCount})`
233
+ });
222
234
  }
223
235
  else {
224
236
  this.remoteChangesCheckedNodesIds = checkedNodesIds;
237
+ __classPrivateFieldGet(this, _GxIdeTeamDevPreview_remoteChangesTreeEL, "f").updateItemsProperties(["root"], {
238
+ caption: `${__classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").captions.remoteChanges} (${this.remoteChangesCheckedNodesIds.length}/${this.pendingRemoteChangesCount})`
239
+ });
225
240
  }
226
241
  });
227
242
  _GxIdeTeamDevPreview_shareKBToServerHandler.set(this, async () => {
@@ -238,7 +253,6 @@ export class GxIdeTeamDevPreview {
238
253
  await this.commitCallback(this.localChangesCheckedNodesIds, this.commitMessage);
239
254
  this.commitMessage = "";
240
255
  this.committingChanges = false;
241
- await __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "local");
242
256
  });
243
257
  _GxIdeTeamDevPreview_commitMessageInputHandler.set(this, (event) => {
244
258
  this.commitMessage = event.detail || "";
@@ -248,7 +262,6 @@ export class GxIdeTeamDevPreview {
248
262
  await this.updateCallback(this.remoteChangesCheckedNodesIds);
249
263
  this.updatingChanges = false;
250
264
  this.remoteChangesCheckedNodesIds = [];
251
- await __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "remote");
252
265
  });
253
266
  _GxIdeTeamDevPreview_tabSelectionChangedHandler.set(this, async (event) => {
254
267
  this.selectedTabId = event.detail.newSelectedId;
@@ -283,12 +296,14 @@ export class GxIdeTeamDevPreview {
283
296
  return (this.loadingLocalChanges ||
284
297
  !this.commitMessage.trim().length ||
285
298
  this.localChangesCheckedNodesIds.length === 0 ||
286
- this.committingChanges);
299
+ this.committingChanges ||
300
+ this.serverOperationsDisabled);
287
301
  }
288
302
  else {
289
303
  return (this.loadingRemoteChanges ||
290
304
  this.remoteChangesCheckedNodesIds.length === 0 ||
291
- this.updatingChanges);
305
+ this.updatingChanges ||
306
+ this.serverOperationsDisabled);
292
307
  }
293
308
  });
294
309
  _GxIdeTeamDevPreview_updateTabModel.set(this, (tabId) => {
@@ -322,7 +337,7 @@ export class GxIdeTeamDevPreview {
322
337
  }
323
338
  return (h("button", { class: "button-tertiary button-icon-and-text body-regular-s refresh-button", type: "button", onClick: isLocal
324
339
  ? () => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "local")
325
- : () => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "remote"), disabled: isLoading || isConfirmationInProcess }, h("ch-image", { class: {
340
+ : () => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "remote"), disabled: isLoading || isConfirmationInProcess || this.serverOperationsDisabled }, h("ch-image", { class: {
326
341
  "icon-md": true,
327
342
  "loader-icon": isLoading
328
343
  }, src: isLoading ? LOADER_ICON : REFRESH_ICON, type: "mask" }), isLoading ? reloadingCaption : reloadCaption));
@@ -342,20 +357,12 @@ export class GxIdeTeamDevPreview {
342
357
  });
343
358
  _GxIdeTeamDevPreview_renderTreeChanges.set(this, (type) => {
344
359
  const isLocal = type === "local";
345
- let isLoading = false;
346
- let isConfirmationInProcess = false;
347
- let model;
348
360
  if (isLocal) {
349
- isLoading = this.loadingLocalChanges;
350
- isConfirmationInProcess = this.committingChanges;
351
- model = this.localChangesTreeViewModel;
361
+ return (h(Fragment, null, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderReloadChangesButton, "f").call(this, type), !this.loadingLocalChanges && !this.committingChanges && (h("ch-tree-view-render", { checkbox: true, checked: true, class: "tree-view", model: this.localChangesTreeViewModel, toggleCheckboxes: true, onCheckedItemsChange: event => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_checkedItemsChangeHandler, "f").call(this, event, type), expandableButton: "no", expandOnClick: false, ref: el => (__classPrivateFieldSet(this, _GxIdeTeamDevPreview_localChangesTreeEL, el, "f")) }))));
352
362
  }
353
363
  else {
354
- isLoading = this.loadingRemoteChanges;
355
- isConfirmationInProcess = this.updatingChanges;
356
- model = this.remoteChangesTreeViewModel;
364
+ return (h(Fragment, null, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderReloadChangesButton, "f").call(this, type), !this.loadingRemoteChanges && !this.updatingChanges && (h("ch-tree-view-render", { checkbox: true, checked: true, class: "tree-view", model: this.remoteChangesTreeViewModel, toggleCheckboxes: true, onCheckedItemsChange: event => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_checkedItemsChangeHandler, "f").call(this, event, type), expandableButton: "no", expandOnClick: false, ref: el => (__classPrivateFieldSet(this, _GxIdeTeamDevPreview_remoteChangesTreeEL, el, "f")) }))));
357
365
  }
358
- return (h(Fragment, null, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderReloadChangesButton, "f").call(this, type), !isLoading && !isConfirmationInProcess && (h("ch-tree-view-render", { checkbox: true, checked: true, class: "tree-view", model: model, toggleCheckboxes: true, onCheckedItemsChange: event => __classPrivateFieldGet(this, _GxIdeTeamDevPreview_checkedItemsChangeHandler, "f").call(this, event, type), expandableButton: "no", expandOnClick: false }))));
359
366
  });
360
367
  _GxIdeTeamDevPreview_renderConfirmButton.set(this, (type) => {
361
368
  const isLocal = type === "local";
@@ -405,6 +412,7 @@ export class GxIdeTeamDevPreview {
405
412
  this.commitMessage = "";
406
413
  this.committingChanges = false;
407
414
  this.updatingChanges = false;
415
+ this.serverOperationsDisabled = false;
408
416
  this.teamDevPreviewData = undefined;
409
417
  this.loadRemoteChangesCallback = undefined;
410
418
  this.loadLocalChangesCallback = undefined;
@@ -472,6 +480,12 @@ export class GxIdeTeamDevPreview {
472
480
  ? await __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "local")
473
481
  : await __classPrivateFieldGet(this, _GxIdeTeamDevPreview_loadChanges, "f").call(this, "remote");
474
482
  }
483
+ /**
484
+ * Used by the host to instruct the component to disable the commit/update button.
485
+ */
486
+ async disableServerOperations(value) {
487
+ this.serverOperationsDisabled = value;
488
+ }
475
489
  getEmptyStateType() {
476
490
  const { isFrozenVersion, existsGXServerSession, isKBOpen, isLinkedVersion, isLinkedKB } = this.teamDevPreviewData;
477
491
  if (!isKBOpen) {
@@ -499,7 +513,7 @@ export class GxIdeTeamDevPreview {
499
513
  return (h(Host, { class: {
500
514
  "widget": true,
501
515
  "empty-state": !__classPrivateFieldGet(this, _GxIdeTeamDevPreview_isTeamDevOptionsEnabled, "f")
502
- } }, h("ch-theme", { model: CSS_BUNDLES }), !__classPrivateFieldGet(this, _GxIdeTeamDevPreview_isTeamDevOptionsEnabled, "f") || !existsGXServerSession ? (h("gx-ide-empty-state", { isAnimated: true, stateIconSrc: ERROR_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateTitle, "f").call(this), stateDescription: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateDescription, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyStateButton, "f").call(this) && (h("button", { class: "button-primary empty-state-button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateButtonHandler, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateButtonText, "f").call(this))), h("div", null, h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").emptyState.about), h("button", { class: "button-tertiary button-icon-and-text team-dev-button body-semi-bold-s", type: "button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_openTeamDevInfoHandler, "f") }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").buttons.teamDev, h("ch-image", { class: "icon-md", src: OPEN_WINDOW_ICON, type: "mask" }))))) : (h("div", { class: "main-container" }, h("div", null, h("p", { class: "giu-static-pill-icon-and-text giu-static-pill-icon-and-text--version elevation-02" }, h("ch-image", { class: "icon-md", type: "mask", src: VERSION_ICON }), this.teamDevPreviewData.versionName)), h("ch-tab-render", { class: "tab tab-full-width-buttons scrollable border-style-none", model: this.tabModel, selectedId: this.selectedTabId, tabListPosition: "block-start", onSelectedItemChange: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_tabSelectionChangedHandler, "f") }, h("div", { class: "local-changes-container", slot: LOCAL_CHANGES_TAB }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyState, "f").call(this, "local"), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderLocalChanges, "f").call(this)), h("div", { class: "remote-changes-container", slot: REMOTE_CHANGES_TAB }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyState, "f").call(this, "remote"), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderRemoteChanges, "f").call(this))), h("footer", { class: "control-footer-with-border open-window-container" }, h("div", { class: "buttons-spacer" }, h("button", { class: "button-tertiary button-icon-and-text open-full-dialog-button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_openFullDialogHandler, "f") }, h("ch-image", { class: "icon-md", src: OPEN_WINDOW_ICON, type: "mask" }), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").footer.openFullDialog)))))));
516
+ } }, h("ch-theme", { model: CSS_BUNDLES }), !__classPrivateFieldGet(this, _GxIdeTeamDevPreview_isTeamDevOptionsEnabled, "f") || !existsGXServerSession ? (h("gx-ide-empty-state", { isAnimated: true, stateIconSrc: ERROR_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateTitle, "f").call(this), stateDescription: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateDescription, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyStateButton, "f").call(this) && (h("button", { class: "button-primary empty-state-button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateButtonHandler, "f").call(this) }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_getEmptyStateButtonText, "f").call(this))), h("div", null, h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").emptyState.about), h("button", { class: "button-tertiary button-icon-and-text team-dev-button body-semi-bold-s", type: "button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_openTeamDevInfoHandler, "f") }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").buttons.teamDev, h("ch-image", { class: "icon-md", src: OPEN_WINDOW_ICON, type: "mask" }))))) : (h("div", { class: "main-container spacing-body scrollable" }, h("div", null, h("p", { class: "giu-static-pill-icon-and-text version giu-static-pill-icon-and-text--version elevation-02" }, h("ch-image", { class: "icon-md", type: "mask", src: VERSION_ICON }), h("span", { class: "version-pill" }, this.teamDevPreviewData.versionName))), h("ch-tab-render", { class: "tab tab-full-width-buttons scrollable border-style-none", model: this.tabModel, selectedId: this.selectedTabId, tabListPosition: "block-start", onSelectedItemChange: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_tabSelectionChangedHandler, "f") }, h("div", { class: "local-changes-container", slot: LOCAL_CHANGES_TAB }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyState, "f").call(this, "local"), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderLocalChanges, "f").call(this)), h("div", { class: "remote-changes-container", slot: REMOTE_CHANGES_TAB }, __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderEmptyState, "f").call(this, "remote"), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_renderRemoteChanges, "f").call(this))), h("footer", { class: "control-footer-with-border open-window-container" }, h("div", { class: "buttons-spacer" }, h("button", { class: "button-tertiary button-icon-and-text open-full-dialog-button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevPreview_openFullDialogHandler, "f") }, h("ch-image", { class: "icon-md", src: OPEN_WINDOW_ICON, type: "mask" }), __classPrivateFieldGet(this, _GxIdeTeamDevPreview_componentLocale, "f").footer.openFullDialog)))))));
503
517
  }
504
518
  static get is() { return "gx-ide-team-dev-preview"; }
505
519
  static get encapsulation() { return "shadow"; }
@@ -737,7 +751,8 @@ export class GxIdeTeamDevPreview {
737
751
  "localChangesCheckedNodesIds": {},
738
752
  "commitMessage": {},
739
753
  "committingChanges": {},
740
- "updatingChanges": {}
754
+ "updatingChanges": {},
755
+ "serverOperationsDisabled": {}
741
756
  };
742
757
  }
743
758
  static get methods() {
@@ -767,6 +782,27 @@ export class GxIdeTeamDevPreview {
767
782
  "text": "Used by the host to reload remote or local changes",
768
783
  "tags": []
769
784
  }
785
+ },
786
+ "disableServerOperations": {
787
+ "complexType": {
788
+ "signature": "(value: boolean) => Promise<void>",
789
+ "parameters": [{
790
+ "name": "value",
791
+ "type": "boolean",
792
+ "docs": ""
793
+ }],
794
+ "references": {
795
+ "Promise": {
796
+ "location": "global",
797
+ "id": "global::Promise"
798
+ }
799
+ },
800
+ "return": "Promise<void>"
801
+ },
802
+ "docs": {
803
+ "text": "Used by the host to instruct the component to disable the commit/update button.",
804
+ "tags": []
805
+ }
770
806
  }
771
807
  };
772
808
  }
@@ -778,5 +814,5 @@ export class GxIdeTeamDevPreview {
778
814
  }];
779
815
  }
780
816
  }
781
- _GxIdeTeamDevPreview_componentLocale = new WeakMap(), _GxIdeTeamDevPreview_isPendingReloadLocalChanges = new WeakMap(), _GxIdeTeamDevPreview_isPendingReloadRemoteChanges = new WeakMap(), _GxIdeTeamDevPreview_commitData = new WeakMap(), _GxIdeTeamDevPreview_updateData = new WeakMap(), _GxIdeTeamDevPreview_prevVersionName = new WeakMap(), _GxIdeTeamDevPreview_isTeamDevOptionsEnabled = new WeakMap(), _GxIdeTeamDevPreview_emptyStateConfig = new WeakMap(), _GxIdeTeamDevPreview_setEmptyStateConfig = new WeakMap(), _GxIdeTeamDevPreview_setTeamDevOptionsStatus = new WeakMap(), _GxIdeTeamDevPreview_loadChanges = new WeakMap(), _GxIdeTeamDevPreview_convertDataToTreeView = new WeakMap(), _GxIdeTeamDevPreview_checkedItemsChangeHandler = new WeakMap(), _GxIdeTeamDevPreview_shareKBToServerHandler = new WeakMap(), _GxIdeTeamDevPreview_createKBFromServerHandler = new WeakMap(), _GxIdeTeamDevPreview_openFullDialogHandler = new WeakMap(), _GxIdeTeamDevPreview_commitChangesHandler = new WeakMap(), _GxIdeTeamDevPreview_commitMessageInputHandler = new WeakMap(), _GxIdeTeamDevPreview_updateRemoteChangesHandler = new WeakMap(), _GxIdeTeamDevPreview_tabSelectionChangedHandler = new WeakMap(), _GxIdeTeamDevPreview_openTeamDevInfoHandler = new WeakMap(), _GxIdeTeamDevPreview_reconnectHandler = new WeakMap(), _GxIdeTeamDevPreview_renderIcon = new WeakMap(), _GxIdeTeamDevPreview_disableConfirmButton = new WeakMap(), _GxIdeTeamDevPreview_updateTabModel = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateTitle = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateDescription = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateButtonText = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateButtonHandler = new WeakMap(), _GxIdeTeamDevPreview_renderEmptyStateButton = new WeakMap(), _GxIdeTeamDevPreview_renderReloadChangesButton = new WeakMap(), _GxIdeTeamDevPreview_renderEmptyState = new WeakMap(), _GxIdeTeamDevPreview_renderTreeChanges = new WeakMap(), _GxIdeTeamDevPreview_renderConfirmButton = new WeakMap(), _GxIdeTeamDevPreview_renderLocalChanges = new WeakMap(), _GxIdeTeamDevPreview_renderRemoteChanges = new WeakMap();
817
+ _GxIdeTeamDevPreview_componentLocale = new WeakMap(), _GxIdeTeamDevPreview_isPendingReloadLocalChanges = new WeakMap(), _GxIdeTeamDevPreview_isPendingReloadRemoteChanges = new WeakMap(), _GxIdeTeamDevPreview_commitData = new WeakMap(), _GxIdeTeamDevPreview_updateData = new WeakMap(), _GxIdeTeamDevPreview_prevVersionName = new WeakMap(), _GxIdeTeamDevPreview_isTeamDevOptionsEnabled = new WeakMap(), _GxIdeTeamDevPreview_emptyStateConfig = new WeakMap(), _GxIdeTeamDevPreview_localChangesTreeEL = new WeakMap(), _GxIdeTeamDevPreview_remoteChangesTreeEL = new WeakMap(), _GxIdeTeamDevPreview_setEmptyStateConfig = new WeakMap(), _GxIdeTeamDevPreview_setTeamDevOptionsStatus = new WeakMap(), _GxIdeTeamDevPreview_loadChanges = new WeakMap(), _GxIdeTeamDevPreview_convertDataToTreeView = new WeakMap(), _GxIdeTeamDevPreview_checkedItemsChangeHandler = new WeakMap(), _GxIdeTeamDevPreview_shareKBToServerHandler = new WeakMap(), _GxIdeTeamDevPreview_createKBFromServerHandler = new WeakMap(), _GxIdeTeamDevPreview_openFullDialogHandler = new WeakMap(), _GxIdeTeamDevPreview_commitChangesHandler = new WeakMap(), _GxIdeTeamDevPreview_commitMessageInputHandler = new WeakMap(), _GxIdeTeamDevPreview_updateRemoteChangesHandler = new WeakMap(), _GxIdeTeamDevPreview_tabSelectionChangedHandler = new WeakMap(), _GxIdeTeamDevPreview_openTeamDevInfoHandler = new WeakMap(), _GxIdeTeamDevPreview_reconnectHandler = new WeakMap(), _GxIdeTeamDevPreview_renderIcon = new WeakMap(), _GxIdeTeamDevPreview_disableConfirmButton = new WeakMap(), _GxIdeTeamDevPreview_updateTabModel = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateTitle = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateDescription = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateButtonText = new WeakMap(), _GxIdeTeamDevPreview_getEmptyStateButtonHandler = new WeakMap(), _GxIdeTeamDevPreview_renderEmptyStateButton = new WeakMap(), _GxIdeTeamDevPreview_renderReloadChangesButton = new WeakMap(), _GxIdeTeamDevPreview_renderEmptyState = new WeakMap(), _GxIdeTeamDevPreview_renderTreeChanges = new WeakMap(), _GxIdeTeamDevPreview_renderConfirmButton = new WeakMap(), _GxIdeTeamDevPreview_renderLocalChanges = new WeakMap(), _GxIdeTeamDevPreview_renderRemoteChanges = new WeakMap();
782
818
  //# sourceMappingURL=team-dev-preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-dev-preview.js","sourceRoot":"","sources":["../../../../src/components/team-dev/preview/team-dev-preview.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ChEditCustomEvent,\n TabModel,\n TabSelectedItemInfo,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n Component,\n Element,\n Fragment,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n Action,\n CommitCallback,\n CommitData,\n LoadLocalChangesCallback,\n LoadRemoteChangesCallback,\n ModifiedObject,\n ModifiedObjectData,\n ObjectState,\n UpdateCallback,\n UpdateData\n} from \"../version-control/common/types\";\n\nenum TeamDevEmptyState {\n NoKBOpen,\n NoConnectedKB,\n NoConnectedGXServer,\n NoLinkedVersion,\n FrozenVersion,\n None\n}\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\",\n \"components/tree-view\",\n \"components/tab\"\n];\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"success\"\n});\n\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"warning\"\n});\n\nconst SUBTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"error\"\n});\n\nconst REFRESH_ICON = getIconPath({\n category: \"system\",\n name: \"refresh\",\n colorType: \"primary\"\n});\n\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\n\nconst OPEN_WINDOW_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"open-window\",\n colorType: \"on-surface\"\n});\n\nconst LOADER_ICON = getIconPath({\n category: \"system\",\n name: \"loading\",\n colorType: \"primary\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"on-surface\"\n});\n\nconst REMOTE_CHANGES_TAB = \"remote-changes-tab\";\nconst LOCAL_CHANGES_TAB = \"local-changes-tab\";\n\n@Component({\n tag: \"gx-ide-team-dev-preview\",\n styleUrl: \"team-dev-preview.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-preview\"]\n})\nexport class GxIdeTeamDevPreview {\n #componentLocale: any;\n #isPendingReloadLocalChanges: boolean = false;\n #isPendingReloadRemoteChanges: boolean = false;\n #commitData: CommitData;\n #updateData: UpdateData;\n #prevVersionName: string;\n #isTeamDevOptionsEnabled: boolean = false;\n #emptyStateConfig: { [key: string]: any } = {};\n\n @Element() el: HTMLGxIdeTeamDevPreviewElement;\n\n @State() loadingRemoteChanges: boolean = false;\n @State() loadingLocalChanges: boolean = true;\n @State() tabModel: TabModel = [];\n\n /**\n * Currently selected tab ID\n */\n @State() selectedTabId: string = LOCAL_CHANGES_TAB;\n\n /**\n * Number of pending commit changes\n */\n @State() pendingCommitChangesCount: number = 0;\n /**\n * Number of pending remote changes\n */\n @State() pendingRemoteChangesCount: number = 0;\n\n /**\n * Represents the tree view model for remote changes\n */\n @State() remoteChangesTreeViewModel: TreeViewModel = [];\n\n /**\n * Represents the tree view model for local changes\n */\n @State() localChangesTreeViewModel: TreeViewModel = [];\n\n /**\n * Represents the selected nodes ids from remote changes tree\n */\n @State() remoteChangesCheckedNodesIds: string[] = [];\n\n /**\n * Represents the selected nodes ids from local changes tree\n */\n @State() localChangesCheckedNodesIds: string[] = [];\n\n /**\n * Commit message entered by the user\n */\n @State() commitMessage: string = \"\";\n\n /**\n * Indicates if the commit process is ongoing\n */\n @State() committingChanges: boolean = false;\n\n /**\n * Indicates if the update process is ongoing\n */\n @State() updatingChanges: boolean = false;\n\n /**\n * Data required to render the Team Dev Preview\n */\n @Prop() readonly teamDevPreviewData: TeamDevPreviewData;\n @Watch(\"teamDevPreviewData\")\n async onTeamDevPreviewDataChanged() {\n const { versionName } = this.teamDevPreviewData;\n let versionChanged = false;\n\n this.#setTeamDevOptionsStatus();\n if (this.#prevVersionName !== versionName) {\n this.#prevVersionName = versionName;\n versionChanged = true;\n }\n\n if (this.#isTeamDevOptionsEnabled && versionChanged) {\n await this.reloadChanges(\"local\");\n await this.reloadChanges(\"remote\");\n }\n }\n\n /**\n * Invoked to return the list of remote changes\n */\n @Prop() readonly loadRemoteChangesCallback!: LoadRemoteChangesCallback;\n\n /**\n * Invoked to return the list of local changes\n */\n @Prop() readonly loadLocalChangesCallback!: LoadLocalChangesCallback;\n\n /**\n * Invoked when user starts the commit process\n */\n @Prop() readonly commitCallback!: CommitCallback;\n\n /**\n * Invoked when user starts the update process\n */\n @Prop() readonly updateCallback!: UpdateCallback;\n\n /**\n * Invoked to open the full Team Dev dialog\n */\n @Prop() readonly openFullDialogCallback!: () => Promise<void>;\n\n /**\n * Invoked to share the knowledge base to the server\n */\n @Prop() readonly shareKBToServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to create a knowledge base from the server\n */\n @Prop() readonly createKBFromServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to open the Team Development information\n */\n @Prop() readonly openTeamDevInfoCallback!: () => Promise<void>;\n\n /**\n * Invoked to reconnect to GeneXus Server\n */\n @Prop() readonly reconnectCallback!: () => Promise<void>;\n\n async componentWillLoad() {\n this.#setTeamDevOptionsStatus();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.tabModel = [\n {\n id: LOCAL_CHANGES_TAB,\n name: `${this.#componentLocale.captions.localChanges}`\n },\n {\n id: REMOTE_CHANGES_TAB,\n name: `${this.#componentLocale.captions.remoteChanges}`\n }\n ];\n this.#setEmptyStateConfig();\n }\n\n async componentDidLoad() {\n if (this.#isTeamDevOptionsEnabled) {\n await this.#loadChanges(\"local\");\n this.#isPendingReloadRemoteChanges = true;\n }\n this.loadingLocalChanges = false;\n }\n\n /**\n * Used by the host to reload remote or local changes\n */\n @Method()\n async reloadChanges(type: TeamDevPreviewMode) {\n const isLocal = type === \"local\";\n const isActiveTab = isLocal\n ? this.selectedTabId === LOCAL_CHANGES_TAB\n : this.selectedTabId === REMOTE_CHANGES_TAB;\n\n if (!isActiveTab) {\n if (isLocal) {\n this.#isPendingReloadLocalChanges = true;\n } else {\n this.#isPendingReloadRemoteChanges = true;\n }\n return;\n }\n\n isLocal\n ? await this.#loadChanges(\"local\")\n : await this.#loadChanges(\"remote\");\n }\n\n #setEmptyStateConfig = () => {\n this.#emptyStateConfig = {\n [TeamDevEmptyState.NoKBOpen]: {\n title: this.#componentLocale.emptyState.noConnectedKBTitle,\n description: this.#componentLocale.emptyState.noOpenKBDescription,\n buttonText: this.#componentLocale.buttons.createKBFromServer,\n buttonHandler: this.#createKBFromServerHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoConnectedKB]: {\n title: this.#componentLocale.emptyState.noConnectedKBTitle,\n description: this.#componentLocale.emptyState.noConnectedKBDescription,\n buttonText: this.#componentLocale.buttons.shareKBToServer,\n buttonHandler: this.#shareKBToServerHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoConnectedGXServer]: {\n title: this.#componentLocale.emptyState.noConnectedGXServerTitle,\n description:\n this.#componentLocale.emptyState.noConnectedGXServerDescription,\n buttonText: this.#componentLocale.buttons.reconnect,\n buttonHandler: this.#reconnectHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoLinkedVersion]: {\n title: this.#componentLocale.emptyState.noLinkedVersionTitle,\n description:\n this.#componentLocale.emptyState.noLinkedVersionDescription,\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n },\n [TeamDevEmptyState.FrozenVersion]: {\n title: this.#componentLocale.emptyState.frozenVersionTitle,\n description: this.#componentLocale.emptyState.frozenVersionDescription,\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n },\n [TeamDevEmptyState.None]: {\n title: \"\",\n description: \"\",\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n }\n };\n };\n\n #setTeamDevOptionsStatus = () => {\n if (\n this.teamDevPreviewData.isKBOpen &&\n this.teamDevPreviewData.isLinkedKB &&\n this.teamDevPreviewData.isLinkedVersion &&\n !this.teamDevPreviewData.isFrozenVersion &&\n this.teamDevPreviewData.existsGXServerSession\n ) {\n this.#isTeamDevOptionsEnabled = true;\n return;\n }\n this.#isTeamDevOptionsEnabled = false;\n };\n\n #loadChanges = async (type: TeamDevPreviewMode) => {\n if (type === \"local\") {\n this.loadingLocalChanges = true;\n this.#commitData = await this.loadLocalChangesCallback();\n this.#convertDataToTreeView(\"local\");\n this.loadingLocalChanges = false;\n this.#isPendingReloadLocalChanges = false;\n } else {\n this.loadingRemoteChanges = true;\n this.#updateData = await this.loadRemoteChangesCallback();\n this.#convertDataToTreeView(\"remote\");\n this.loadingRemoteChanges = false;\n this.#isPendingReloadRemoteChanges = false;\n }\n };\n\n #convertDataToTreeView = (type: TeamDevPreviewMode) => {\n let rootItemName = \"\";\n let data: ModifiedObjectData[] | ModifiedObject[];\n const isLocal = type === \"local\";\n if (isLocal) {\n this.pendingCommitChangesCount =\n this.#commitData?.pendingForCommit?.length || 0;\n rootItemName = `${this.#componentLocale.captions.localChanges} (${this.pendingCommitChangesCount})`;\n data = this.#commitData.pendingForCommit;\n } else {\n this.pendingRemoteChangesCount =\n this.#updateData?.pendingForUpdate?.length || 0;\n rootItemName = `${this.#componentLocale.captions.remoteChanges} (${this.pendingRemoteChangesCount})`;\n data = this.#updateData.pendingForUpdate;\n }\n\n const treeViewModel: TreeViewModel = [\n {\n id: \"root\",\n caption: rootItemName,\n expanded: true,\n parts: \"root-item\",\n items: data?.map(item => ({\n id: item.id,\n startImgSrc: isLocal\n ? (item as ModifiedObjectData).type.icon\n : (item as ModifiedObject).typeIcon,\n endImgSrc: isLocal\n ? this.#renderIcon((item as ModifiedObjectData).state)\n : this.#renderIcon((item as ModifiedObject).action),\n caption: item.name,\n leaf: true,\n parts: \"change-item\"\n }))\n }\n ];\n\n if (isLocal) {\n this.localChangesTreeViewModel = treeViewModel;\n this.#updateTabModel(LOCAL_CHANGES_TAB);\n } else {\n this.remoteChangesTreeViewModel = treeViewModel;\n this.#updateTabModel(REMOTE_CHANGES_TAB);\n }\n };\n\n #checkedItemsChangeHandler = async (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>,\n type: TeamDevPreviewMode\n ) => {\n const checkedNodesIds = Array.from(event.detail.values())\n .filter(node => node.item.checked && node.item.id !== \"root\")\n .map(node => node.item.id);\n\n if (type === \"local\") {\n this.localChangesCheckedNodesIds = checkedNodesIds;\n } else {\n this.remoteChangesCheckedNodesIds = checkedNodesIds;\n }\n };\n\n #shareKBToServerHandler = async () => {\n await this.shareKBToServerCallback();\n };\n\n #createKBFromServerHandler = async () => {\n await this.createKBFromServerCallback();\n };\n\n #openFullDialogHandler = async () => {\n await this.openFullDialogCallback();\n };\n\n #commitChangesHandler = async () => {\n this.committingChanges = true;\n await this.commitCallback(\n this.localChangesCheckedNodesIds,\n this.commitMessage\n );\n this.commitMessage = \"\";\n this.committingChanges = false;\n await this.#loadChanges(\"local\");\n };\n\n #commitMessageInputHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.commitMessage = (event.detail as string) || \"\";\n };\n\n #updateRemoteChangesHandler = async () => {\n this.updatingChanges = true;\n await this.updateCallback(this.remoteChangesCheckedNodesIds);\n this.updatingChanges = false;\n this.remoteChangesCheckedNodesIds = [];\n await this.#loadChanges(\"remote\");\n };\n\n #tabSelectionChangedHandler = async (\n event: CustomEvent<TabSelectedItemInfo>\n ): Promise<void> => {\n this.selectedTabId = event.detail.newSelectedId;\n if (\n this.selectedTabId === LOCAL_CHANGES_TAB &&\n this.#isPendingReloadLocalChanges\n ) {\n await this.#loadChanges(\"local\");\n }\n if (\n this.selectedTabId === REMOTE_CHANGES_TAB &&\n this.#isPendingReloadRemoteChanges\n ) {\n await this.#loadChanges(\"remote\");\n }\n };\n\n #openTeamDevInfoHandler = async () => {\n await this.openTeamDevInfoCallback();\n };\n\n #reconnectHandler = async () => {\n await this.reconnectCallback();\n };\n\n #renderIcon = (value: ObjectState | Action) => {\n const iconMap = {\n \"inserted\": ADD_ICON,\n \"modified\": EDITED_ICON,\n \"deleted\": SUBTRACT_ICON,\n \"conflicted\": WARNING_ICON,\n \"modified-with-conflicts\": WARNING_ICON\n };\n return iconMap[value] || null;\n };\n\n #disableConfirmButton = (type: TeamDevPreviewMode): boolean => {\n const isLocal = type === \"local\";\n if (isLocal) {\n return (\n this.loadingLocalChanges ||\n !this.commitMessage.trim().length ||\n this.localChangesCheckedNodesIds.length === 0 ||\n this.committingChanges\n );\n } else {\n return (\n this.loadingRemoteChanges ||\n this.remoteChangesCheckedNodesIds.length === 0 ||\n this.updatingChanges\n );\n }\n };\n\n #updateTabModel = (tabId: string) => {\n this.tabModel = this.tabModel.map(tab =>\n tab.id === tabId\n ? {\n ...tab,\n name:\n tabId === LOCAL_CHANGES_TAB\n ? `${this.#componentLocale.captions.localChanges} (${this.pendingCommitChangesCount})`\n : `${this.#componentLocale.captions.remoteChanges} (${this.pendingRemoteChangesCount})`\n }\n : tab\n );\n };\n\n private getEmptyStateType(): TeamDevEmptyState {\n const {\n isFrozenVersion,\n existsGXServerSession,\n isKBOpen,\n isLinkedVersion,\n isLinkedKB\n } = this.teamDevPreviewData;\n if (!isKBOpen) {\n return TeamDevEmptyState.NoKBOpen;\n }\n if (isKBOpen && !isLinkedKB) {\n return TeamDevEmptyState.NoConnectedKB;\n }\n if (isKBOpen && isLinkedKB && !isLinkedVersion && !existsGXServerSession) {\n return TeamDevEmptyState.NoConnectedGXServer;\n }\n if (isKBOpen && isLinkedKB && !isLinkedVersion) {\n return TeamDevEmptyState.NoLinkedVersion;\n }\n if (isKBOpen && isLinkedKB && existsGXServerSession && isFrozenVersion) {\n return TeamDevEmptyState.FrozenVersion;\n }\n if (isKBOpen && isLinkedKB && !existsGXServerSession) {\n return TeamDevEmptyState.NoConnectedGXServer;\n }\n return TeamDevEmptyState.None;\n }\n\n #getEmptyStateTitle = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].title;\n\n #getEmptyStateDescription = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].description;\n\n #getEmptyStateButtonText = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].buttonText;\n\n #getEmptyStateButtonHandler = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].buttonHandler;\n\n #renderEmptyStateButton = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].showButton;\n\n #renderReloadChangesButton = (type: TeamDevPreviewMode) => {\n let isLoading = false;\n let isConfirmationInProcess = false;\n let reloadCaption;\n let reloadingCaption;\n const isLocal = type === \"local\";\n\n if (isLocal) {\n isLoading = this.loadingLocalChanges;\n isConfirmationInProcess = this.committingChanges;\n reloadCaption = this.#componentLocale.buttons.reloadLocal;\n reloadingCaption = this.#componentLocale.buttons.reloadingLocal;\n } else {\n isLoading = this.loadingRemoteChanges;\n isConfirmationInProcess = this.updatingChanges;\n reloadCaption = this.#componentLocale.buttons.reloadRemote;\n reloadingCaption = this.#componentLocale.buttons.reloadingRemote;\n }\n return (\n <button\n class=\"button-tertiary button-icon-and-text body-regular-s refresh-button\"\n type=\"button\"\n onClick={\n isLocal\n ? () => this.#loadChanges(\"local\")\n : () => this.#loadChanges(\"remote\")\n }\n disabled={isLoading || isConfirmationInProcess}\n >\n <ch-image\n class={{\n \"icon-md\": true,\n \"loader-icon\": isLoading\n }}\n src={isLoading ? LOADER_ICON : REFRESH_ICON}\n type=\"mask\"\n />\n\n {isLoading ? reloadingCaption : reloadCaption}\n </button>\n );\n };\n\n #renderEmptyState = (type: TeamDevPreviewMode) => {\n let show = false;\n let message = \"\";\n\n if (type === \"local\" && this.pendingCommitChangesCount === 0) {\n show = true;\n message = this.#componentLocale.emptyState.noLocalChanges;\n } else if (type === \"remote\" && this.pendingRemoteChangesCount === 0) {\n show = true;\n message = this.#componentLocale.emptyState.noRemoteChanges;\n }\n\n return show ? (\n <div class=\"empty-state-container\">\n <p class=\"body-regular-s\">{message}</p>\n {this.#renderReloadChangesButton(type)}\n </div>\n ) : null;\n };\n\n #renderTreeChanges = (type: TeamDevPreviewMode) => {\n const isLocal = type === \"local\";\n let isLoading = false;\n let isConfirmationInProcess = false;\n let model: TreeViewModel;\n\n if (isLocal) {\n isLoading = this.loadingLocalChanges;\n isConfirmationInProcess = this.committingChanges;\n model = this.localChangesTreeViewModel;\n } else {\n isLoading = this.loadingRemoteChanges;\n isConfirmationInProcess = this.updatingChanges;\n model = this.remoteChangesTreeViewModel;\n }\n return (\n <Fragment>\n {this.#renderReloadChangesButton(type)}\n {!isLoading && !isConfirmationInProcess && (\n <ch-tree-view-render\n checkbox\n checked\n class=\"tree-view\"\n model={model}\n toggleCheckboxes\n onCheckedItemsChange={event =>\n this.#checkedItemsChangeHandler(event, type)\n }\n expandableButton=\"no\"\n expandOnClick={false}\n />\n )}\n </Fragment>\n );\n };\n\n #renderConfirmButton = (type: TeamDevPreviewMode) => {\n const isLocal = type === \"local\";\n let isConfirmationInProcess = false;\n let id = \"\";\n if (isLocal) {\n isConfirmationInProcess = this.committingChanges;\n id = \"commit-changes-button\";\n } else {\n isConfirmationInProcess = this.updatingChanges;\n id = \"update-remote-changes-button\";\n }\n return (\n <button\n id={id}\n class={{\n \"button-primary\": true,\n \"button-icon-and-text\": isConfirmationInProcess\n }}\n type=\"button\"\n disabled={this.#disableConfirmButton(type)}\n onClick={\n isLocal\n ? this.#commitChangesHandler\n : this.#updateRemoteChangesHandler\n }\n >\n {isConfirmationInProcess && (\n <ch-image class=\"icon-md loader-icon\" src={LOADER_ICON} type=\"mask\" />\n )}\n {isConfirmationInProcess\n ? isLocal\n ? this.#componentLocale.buttons.committing\n : this.#componentLocale.buttons.updating\n : isLocal\n ? this.#componentLocale.buttons.commit\n : this.#componentLocale.buttons.update}\n </button>\n );\n };\n\n #renderLocalChanges = () => {\n if (this.pendingCommitChangesCount > 0) {\n return (\n <Fragment>\n <ch-edit\n id=\"commit-message-input\"\n class=\"input commit-message-textarea\"\n value={this.commitMessage}\n accessibleName={this.#componentLocale.accessibleNames.commitMessage}\n placeholder={this.#componentLocale.placeholders.commitMessage}\n disabled={this.loadingLocalChanges}\n onInput={this.#commitMessageInputHandler}\n multiline\n />\n {this.#renderConfirmButton(\"local\")}\n {this.#renderTreeChanges(\"local\")}\n </Fragment>\n );\n }\n };\n\n #renderRemoteChanges = () => {\n if (this.pendingRemoteChangesCount > 0) {\n return (\n <Fragment>\n {this.#renderConfirmButton(\"remote\")}\n {this.#renderTreeChanges(\"remote\")}\n </Fragment>\n );\n }\n };\n\n render() {\n const { existsGXServerSession } = this.teamDevPreviewData;\n return (\n <Host\n class={{\n \"widget\": true,\n \"empty-state\": !this.#isTeamDevOptionsEnabled\n }}\n >\n <ch-theme model={CSS_BUNDLES} />\n {!this.#isTeamDevOptionsEnabled || !existsGXServerSession ? (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={ERROR_ICON}\n stateTitle={this.#getEmptyStateTitle()}\n stateDescription={this.#getEmptyStateDescription()}\n >\n {this.#renderEmptyStateButton() && (\n <button\n class=\"button-primary empty-state-button\"\n onClick={this.#getEmptyStateButtonHandler()}\n >\n {this.#getEmptyStateButtonText()}\n </button>\n )}\n <div>\n <p class=\"body-regular-s\">\n {this.#componentLocale.emptyState.about}\n </p>\n <button\n class=\"button-tertiary button-icon-and-text team-dev-button body-semi-bold-s\"\n type=\"button\"\n onClick={this.#openTeamDevInfoHandler}\n >\n {this.#componentLocale.buttons.teamDev}\n <ch-image class=\"icon-md\" src={OPEN_WINDOW_ICON} type=\"mask\" />\n </button>\n </div>\n </gx-ide-empty-state>\n ) : (\n <div class=\"main-container\">\n <div>\n <p class=\"giu-static-pill-icon-and-text giu-static-pill-icon-and-text--version elevation-02\">\n <ch-image\n class=\"icon-md\"\n type=\"mask\"\n src={VERSION_ICON}\n ></ch-image>\n {this.teamDevPreviewData.versionName}\n </p>\n </div>\n <ch-tab-render\n class=\"tab tab-full-width-buttons scrollable border-style-none\"\n model={this.tabModel}\n selectedId={this.selectedTabId}\n tabListPosition=\"block-start\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div class=\"local-changes-container\" slot={LOCAL_CHANGES_TAB}>\n {this.#renderEmptyState(\"local\")}\n {this.#renderLocalChanges()}\n </div>\n\n <div class=\"remote-changes-container\" slot={REMOTE_CHANGES_TAB}>\n {this.#renderEmptyState(\"remote\")}\n {this.#renderRemoteChanges()}\n </div>\n </ch-tab-render>\n\n <footer class=\"control-footer-with-border open-window-container\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-tertiary button-icon-and-text open-full-dialog-button\"\n onClick={this.#openFullDialogHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={OPEN_WINDOW_ICON}\n type=\"mask\"\n />\n {this.#componentLocale.footer.openFullDialog}\n </button>\n </div>\n </footer>\n </div>\n )}\n </Host>\n );\n }\n}\n\nexport type TeamDevPreviewData = {\n versionName: string;\n isFrozenVersion: boolean;\n existsGXServerSession: boolean;\n isKBOpen: boolean;\n isLinkedVersion: boolean;\n isLinkedKB: boolean;\n};\n\nexport type TeamDevPreviewMode = \"local\" | \"remote\";\n"]}
1
+ {"version":3,"file":"team-dev-preview.js","sourceRoot":"","sources":["../../../../src/components/team-dev/preview/team-dev-preview.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ChEditCustomEvent,\n TabModel,\n TabSelectedItemInfo,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n Component,\n Element,\n Fragment,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n Action,\n CommitCallback,\n CommitData,\n LoadLocalChangesCallback,\n LoadRemoteChangesCallback,\n ModifiedObject,\n ModifiedObjectData,\n ObjectState,\n UpdateCallback,\n UpdateData\n} from \"../version-control/common/types\";\n\nenum TeamDevEmptyState {\n NoKBOpen,\n NoConnectedKB,\n NoConnectedGXServer,\n NoLinkedVersion,\n FrozenVersion,\n None\n}\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\",\n \"components/tree-view\",\n \"components/tab\"\n];\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"success\"\n});\n\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"warning\"\n});\n\nconst SUBTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"error\"\n});\n\nconst REFRESH_ICON = getIconPath({\n category: \"system\",\n name: \"refresh\",\n colorType: \"primary\"\n});\n\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\n\nconst OPEN_WINDOW_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"open-window\",\n colorType: \"on-surface\"\n});\n\nconst LOADER_ICON = getIconPath({\n category: \"system\",\n name: \"loading\",\n colorType: \"primary\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"on-surface\"\n});\n\nconst REMOTE_CHANGES_TAB = \"remote-changes-tab\";\nconst LOCAL_CHANGES_TAB = \"local-changes-tab\";\n\n@Component({\n tag: \"gx-ide-team-dev-preview\",\n styleUrl: \"team-dev-preview.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-preview\"]\n})\nexport class GxIdeTeamDevPreview {\n #componentLocale: any;\n #isPendingReloadLocalChanges: boolean = false;\n #isPendingReloadRemoteChanges: boolean = false;\n #commitData: CommitData;\n #updateData: UpdateData;\n #prevVersionName: string;\n #isTeamDevOptionsEnabled: boolean = false;\n #emptyStateConfig: { [key: string]: any } = {};\n #localChangesTreeEL: HTMLChTreeViewRenderElement;\n #remoteChangesTreeEL: HTMLChTreeViewRenderElement;\n\n @Element() el: HTMLGxIdeTeamDevPreviewElement;\n\n @State() loadingRemoteChanges: boolean = false;\n @State() loadingLocalChanges: boolean = true;\n @State() tabModel: TabModel = [];\n\n /**\n * Currently selected tab ID\n */\n @State() selectedTabId: string = LOCAL_CHANGES_TAB;\n\n /**\n * Number of pending commit changes\n */\n @State() pendingCommitChangesCount: number = 0;\n /**\n * Number of pending remote changes\n */\n @State() pendingRemoteChangesCount: number = 0;\n\n /**\n * Represents the tree view model for remote changes\n */\n @State() remoteChangesTreeViewModel: TreeViewModel = [];\n\n /**\n * Represents the tree view model for local changes\n */\n @State() localChangesTreeViewModel: TreeViewModel = [];\n\n /**\n * Represents the selected nodes ids from remote changes tree\n */\n @State() remoteChangesCheckedNodesIds: string[] = [];\n\n /**\n * Represents the selected nodes ids from local changes tree\n */\n @State() localChangesCheckedNodesIds: string[] = [];\n\n /**\n * Commit message entered by the user\n */\n @State() commitMessage: string = \"\";\n\n /**\n * Indicates if the commit process is ongoing\n */\n @State() committingChanges: boolean = false;\n\n /**\n * Indicates if the update process is ongoing\n */\n @State() updatingChanges: boolean = false;\n\n /**\n * Indicates if the server operations (commit/update) should be disabled\n */\n @State() serverOperationsDisabled: boolean = false;\n\n /**\n * Data required to render the Team Dev Preview\n */\n @Prop() readonly teamDevPreviewData: TeamDevPreviewData;\n @Watch(\"teamDevPreviewData\")\n async onTeamDevPreviewDataChanged() {\n const { versionName } = this.teamDevPreviewData;\n let versionChanged = false;\n\n this.#setTeamDevOptionsStatus();\n if (this.#prevVersionName !== versionName) {\n this.#prevVersionName = versionName;\n versionChanged = true;\n }\n\n if (this.#isTeamDevOptionsEnabled && versionChanged) {\n await this.reloadChanges(\"local\");\n await this.reloadChanges(\"remote\");\n }\n }\n\n /**\n * Invoked to return the list of remote changes\n */\n @Prop() readonly loadRemoteChangesCallback!: LoadRemoteChangesCallback;\n\n /**\n * Invoked to return the list of local changes\n */\n @Prop() readonly loadLocalChangesCallback!: LoadLocalChangesCallback;\n\n /**\n * Invoked when user starts the commit process\n */\n @Prop() readonly commitCallback!: CommitCallback;\n\n /**\n * Invoked when user starts the update process\n */\n @Prop() readonly updateCallback!: UpdateCallback;\n\n /**\n * Invoked to open the full Team Dev dialog\n */\n @Prop() readonly openFullDialogCallback!: () => Promise<void>;\n\n /**\n * Invoked to share the knowledge base to the server\n */\n @Prop() readonly shareKBToServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to create a knowledge base from the server\n */\n @Prop() readonly createKBFromServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to open the Team Development information\n */\n @Prop() readonly openTeamDevInfoCallback!: () => Promise<void>;\n\n /**\n * Invoked to reconnect to GeneXus Server\n */\n @Prop() readonly reconnectCallback!: () => Promise<void>;\n\n async componentWillLoad() {\n this.#setTeamDevOptionsStatus();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.tabModel = [\n {\n id: LOCAL_CHANGES_TAB,\n name: `${this.#componentLocale.captions.localChanges}`\n },\n {\n id: REMOTE_CHANGES_TAB,\n name: `${this.#componentLocale.captions.remoteChanges}`\n }\n ];\n this.#setEmptyStateConfig();\n }\n\n async componentDidLoad() {\n if (this.#isTeamDevOptionsEnabled) {\n await this.#loadChanges(\"local\");\n this.#isPendingReloadRemoteChanges = true;\n }\n this.loadingLocalChanges = false;\n }\n\n /**\n * Used by the host to reload remote or local changes\n */\n @Method()\n async reloadChanges(type: TeamDevPreviewMode) {\n const isLocal = type === \"local\";\n const isActiveTab = isLocal\n ? this.selectedTabId === LOCAL_CHANGES_TAB\n : this.selectedTabId === REMOTE_CHANGES_TAB;\n\n if (!isActiveTab) {\n if (isLocal) {\n this.#isPendingReloadLocalChanges = true;\n } else {\n this.#isPendingReloadRemoteChanges = true;\n }\n return;\n }\n\n isLocal\n ? await this.#loadChanges(\"local\")\n : await this.#loadChanges(\"remote\");\n }\n\n /**\n * Used by the host to instruct the component to disable the commit/update button.\n */\n @Method()\n async disableServerOperations(value: boolean) {\n this.serverOperationsDisabled = value;\n }\n\n #setEmptyStateConfig = () => {\n this.#emptyStateConfig = {\n [TeamDevEmptyState.NoKBOpen]: {\n title: this.#componentLocale.emptyState.noConnectedKBTitle,\n description: this.#componentLocale.emptyState.noOpenKBDescription,\n buttonText: this.#componentLocale.buttons.createKBFromServer,\n buttonHandler: this.#createKBFromServerHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoConnectedKB]: {\n title: this.#componentLocale.emptyState.noConnectedKBTitle,\n description: this.#componentLocale.emptyState.noConnectedKBDescription,\n buttonText: this.#componentLocale.buttons.shareKBToServer,\n buttonHandler: this.#shareKBToServerHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoConnectedGXServer]: {\n title: this.#componentLocale.emptyState.noConnectedGXServerTitle,\n description:\n this.#componentLocale.emptyState.noConnectedGXServerDescription,\n buttonText: this.#componentLocale.buttons.reconnect,\n buttonHandler: this.#reconnectHandler,\n showButton: true\n },\n [TeamDevEmptyState.NoLinkedVersion]: {\n title: this.#componentLocale.emptyState.noLinkedVersionTitle,\n description:\n this.#componentLocale.emptyState.noLinkedVersionDescription,\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n },\n [TeamDevEmptyState.FrozenVersion]: {\n title: this.#componentLocale.emptyState.frozenVersionTitle,\n description: this.#componentLocale.emptyState.frozenVersionDescription,\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n },\n [TeamDevEmptyState.None]: {\n title: \"\",\n description: \"\",\n buttonText: \"\",\n buttonHandler: undefined,\n showButton: false\n }\n };\n };\n\n #setTeamDevOptionsStatus = () => {\n if (\n this.teamDevPreviewData.isKBOpen &&\n this.teamDevPreviewData.isLinkedKB &&\n this.teamDevPreviewData.isLinkedVersion &&\n !this.teamDevPreviewData.isFrozenVersion &&\n this.teamDevPreviewData.existsGXServerSession\n ) {\n this.#isTeamDevOptionsEnabled = true;\n return;\n }\n this.#isTeamDevOptionsEnabled = false;\n };\n\n #loadChanges = async (type: TeamDevPreviewMode) => {\n if (type === \"local\") {\n this.loadingLocalChanges = true;\n this.#commitData = await this.loadLocalChangesCallback();\n this.#convertDataToTreeView(\"local\");\n this.loadingLocalChanges = false;\n this.#isPendingReloadLocalChanges = false;\n } else {\n this.loadingRemoteChanges = true;\n this.#updateData = await this.loadRemoteChangesCallback();\n this.#convertDataToTreeView(\"remote\");\n this.loadingRemoteChanges = false;\n this.#isPendingReloadRemoteChanges = false;\n }\n };\n\n #convertDataToTreeView = (type: TeamDevPreviewMode) => {\n let rootItemName = \"\";\n let data: ModifiedObjectData[] | ModifiedObject[];\n const isLocal = type === \"local\";\n if (isLocal) {\n this.pendingCommitChangesCount =\n this.#commitData?.pendingForCommit?.length || 0;\n rootItemName = `${this.#componentLocale.captions.localChanges} (${this.pendingCommitChangesCount})`;\n data = this.#commitData.pendingForCommit;\n } else {\n this.pendingRemoteChangesCount =\n this.#updateData?.pendingForUpdate?.length || 0;\n rootItemName = `${this.#componentLocale.captions.remoteChanges} (${this.pendingRemoteChangesCount})`;\n data = this.#updateData.pendingForUpdate;\n }\n\n const treeViewModel: TreeViewModel = [\n {\n id: \"root\",\n caption: rootItemName,\n expanded: true,\n parts: \"root-item\",\n items: data?.map(item => ({\n id: item.id,\n startImgSrc: isLocal\n ? (item as ModifiedObjectData).type.icon\n : (item as ModifiedObject).typeIcon,\n endImgSrc: isLocal\n ? this.#renderIcon((item as ModifiedObjectData).state)\n : this.#renderIcon((item as ModifiedObject).action),\n caption: (\n //WA: Used to apply different styles to the item caption and path\n <div\n style={{\n display: \"flex\"\n }}\n >\n <span>{item.name}</span>\n <span\n style={{\n color: \"var(--mer-color__neutral-gray--450)\",\n marginLeft: \"4px\"\n }}\n >\n {item.module}\n </span>\n </div>\n ),\n leaf: true,\n parts: \"change-item\"\n }))\n }\n ];\n\n if (isLocal) {\n this.localChangesTreeViewModel = treeViewModel;\n this.#updateTabModel(LOCAL_CHANGES_TAB);\n } else {\n this.remoteChangesTreeViewModel = treeViewModel;\n this.#updateTabModel(REMOTE_CHANGES_TAB);\n }\n };\n\n #checkedItemsChangeHandler = async (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>,\n type: TeamDevPreviewMode\n ) => {\n const checkedNodesIds = Array.from(event.detail.values())\n .filter(node => node.item.checked && node.item.id !== \"root\")\n .map(node => node.item.id);\n\n if (type === \"local\") {\n this.localChangesCheckedNodesIds = checkedNodesIds;\n this.#localChangesTreeEL.updateItemsProperties([\"root\"], {\n caption: `${this.#componentLocale.captions.localChanges} (${this.localChangesCheckedNodesIds.length}/${this.pendingCommitChangesCount})`\n });\n } else {\n this.remoteChangesCheckedNodesIds = checkedNodesIds;\n this.#remoteChangesTreeEL.updateItemsProperties([\"root\"], {\n caption: `${this.#componentLocale.captions.remoteChanges} (${this.remoteChangesCheckedNodesIds.length}/${this.pendingRemoteChangesCount})`\n });\n }\n };\n\n #shareKBToServerHandler = async () => {\n await this.shareKBToServerCallback();\n };\n\n #createKBFromServerHandler = async () => {\n await this.createKBFromServerCallback();\n };\n\n #openFullDialogHandler = async () => {\n await this.openFullDialogCallback();\n };\n\n #commitChangesHandler = async () => {\n this.committingChanges = true;\n await this.commitCallback(\n this.localChangesCheckedNodesIds,\n this.commitMessage\n );\n this.commitMessage = \"\";\n this.committingChanges = false;\n };\n\n #commitMessageInputHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.commitMessage = (event.detail as string) || \"\";\n };\n\n #updateRemoteChangesHandler = async () => {\n this.updatingChanges = true;\n await this.updateCallback(this.remoteChangesCheckedNodesIds);\n this.updatingChanges = false;\n this.remoteChangesCheckedNodesIds = [];\n };\n\n #tabSelectionChangedHandler = async (\n event: CustomEvent<TabSelectedItemInfo>\n ): Promise<void> => {\n this.selectedTabId = event.detail.newSelectedId;\n if (\n this.selectedTabId === LOCAL_CHANGES_TAB &&\n this.#isPendingReloadLocalChanges\n ) {\n await this.#loadChanges(\"local\");\n }\n if (\n this.selectedTabId === REMOTE_CHANGES_TAB &&\n this.#isPendingReloadRemoteChanges\n ) {\n await this.#loadChanges(\"remote\");\n }\n };\n\n #openTeamDevInfoHandler = async () => {\n await this.openTeamDevInfoCallback();\n };\n\n #reconnectHandler = async () => {\n await this.reconnectCallback();\n };\n\n #renderIcon = (value: ObjectState | Action) => {\n const iconMap = {\n \"inserted\": ADD_ICON,\n \"modified\": EDITED_ICON,\n \"deleted\": SUBTRACT_ICON,\n \"conflicted\": WARNING_ICON,\n \"modified-with-conflicts\": WARNING_ICON\n };\n return iconMap[value] || null;\n };\n\n #disableConfirmButton = (type: TeamDevPreviewMode): boolean => {\n const isLocal = type === \"local\";\n if (isLocal) {\n return (\n this.loadingLocalChanges ||\n !this.commitMessage.trim().length ||\n this.localChangesCheckedNodesIds.length === 0 ||\n this.committingChanges ||\n this.serverOperationsDisabled\n );\n } else {\n return (\n this.loadingRemoteChanges ||\n this.remoteChangesCheckedNodesIds.length === 0 ||\n this.updatingChanges ||\n this.serverOperationsDisabled\n );\n }\n };\n\n #updateTabModel = (tabId: string) => {\n this.tabModel = this.tabModel.map(tab =>\n tab.id === tabId\n ? {\n ...tab,\n name:\n tabId === LOCAL_CHANGES_TAB\n ? `${this.#componentLocale.captions.localChanges} (${this.pendingCommitChangesCount})`\n : `${this.#componentLocale.captions.remoteChanges} (${this.pendingRemoteChangesCount})`\n }\n : tab\n );\n };\n\n private getEmptyStateType(): TeamDevEmptyState {\n const {\n isFrozenVersion,\n existsGXServerSession,\n isKBOpen,\n isLinkedVersion,\n isLinkedKB\n } = this.teamDevPreviewData;\n if (!isKBOpen) {\n return TeamDevEmptyState.NoKBOpen;\n }\n if (isKBOpen && !isLinkedKB) {\n return TeamDevEmptyState.NoConnectedKB;\n }\n if (isKBOpen && isLinkedKB && !isLinkedVersion && !existsGXServerSession) {\n return TeamDevEmptyState.NoConnectedGXServer;\n }\n if (isKBOpen && isLinkedKB && !isLinkedVersion) {\n return TeamDevEmptyState.NoLinkedVersion;\n }\n if (isKBOpen && isLinkedKB && existsGXServerSession && isFrozenVersion) {\n return TeamDevEmptyState.FrozenVersion;\n }\n if (isKBOpen && isLinkedKB && !existsGXServerSession) {\n return TeamDevEmptyState.NoConnectedGXServer;\n }\n return TeamDevEmptyState.None;\n }\n\n #getEmptyStateTitle = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].title;\n\n #getEmptyStateDescription = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].description;\n\n #getEmptyStateButtonText = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].buttonText;\n\n #getEmptyStateButtonHandler = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].buttonHandler;\n\n #renderEmptyStateButton = () =>\n this.#emptyStateConfig[this.getEmptyStateType()].showButton;\n\n #renderReloadChangesButton = (type: TeamDevPreviewMode) => {\n let isLoading = false;\n let isConfirmationInProcess = false;\n let reloadCaption;\n let reloadingCaption;\n const isLocal = type === \"local\";\n\n if (isLocal) {\n isLoading = this.loadingLocalChanges;\n isConfirmationInProcess = this.committingChanges;\n reloadCaption = this.#componentLocale.buttons.reloadLocal;\n reloadingCaption = this.#componentLocale.buttons.reloadingLocal;\n } else {\n isLoading = this.loadingRemoteChanges;\n isConfirmationInProcess = this.updatingChanges;\n reloadCaption = this.#componentLocale.buttons.reloadRemote;\n reloadingCaption = this.#componentLocale.buttons.reloadingRemote;\n }\n return (\n <button\n class=\"button-tertiary button-icon-and-text body-regular-s refresh-button\"\n type=\"button\"\n onClick={\n isLocal\n ? () => this.#loadChanges(\"local\")\n : () => this.#loadChanges(\"remote\")\n }\n disabled={\n isLoading || isConfirmationInProcess || this.serverOperationsDisabled\n }\n >\n <ch-image\n class={{\n \"icon-md\": true,\n \"loader-icon\": isLoading\n }}\n src={isLoading ? LOADER_ICON : REFRESH_ICON}\n type=\"mask\"\n />\n\n {isLoading ? reloadingCaption : reloadCaption}\n </button>\n );\n };\n\n #renderEmptyState = (type: TeamDevPreviewMode) => {\n let show = false;\n let message = \"\";\n\n if (type === \"local\" && this.pendingCommitChangesCount === 0) {\n show = true;\n message = this.#componentLocale.emptyState.noLocalChanges;\n } else if (type === \"remote\" && this.pendingRemoteChangesCount === 0) {\n show = true;\n message = this.#componentLocale.emptyState.noRemoteChanges;\n }\n\n return show ? (\n <div class=\"empty-state-container\">\n <p class=\"body-regular-s\">{message}</p>\n {this.#renderReloadChangesButton(type)}\n </div>\n ) : null;\n };\n\n #renderTreeChanges = (type: TeamDevPreviewMode) => {\n const isLocal = type === \"local\";\n\n if (isLocal) {\n return (\n <Fragment>\n {this.#renderReloadChangesButton(type)}\n {!this.loadingLocalChanges && !this.committingChanges && (\n <ch-tree-view-render\n checkbox\n checked\n class=\"tree-view\"\n model={this.localChangesTreeViewModel}\n toggleCheckboxes\n onCheckedItemsChange={event =>\n this.#checkedItemsChangeHandler(event, type)\n }\n expandableButton=\"no\"\n expandOnClick={false}\n ref={el =>\n (this.#localChangesTreeEL = el as HTMLChTreeViewRenderElement)\n }\n />\n )}\n </Fragment>\n );\n } else {\n return (\n <Fragment>\n {this.#renderReloadChangesButton(type)}\n {!this.loadingRemoteChanges && !this.updatingChanges && (\n <ch-tree-view-render\n checkbox\n checked\n class=\"tree-view\"\n model={this.remoteChangesTreeViewModel}\n toggleCheckboxes\n onCheckedItemsChange={event =>\n this.#checkedItemsChangeHandler(event, type)\n }\n expandableButton=\"no\"\n expandOnClick={false}\n ref={el =>\n (this.#remoteChangesTreeEL = el as HTMLChTreeViewRenderElement)\n }\n />\n )}\n </Fragment>\n );\n }\n };\n\n #renderConfirmButton = (type: TeamDevPreviewMode) => {\n const isLocal = type === \"local\";\n let isConfirmationInProcess = false;\n let id = \"\";\n if (isLocal) {\n isConfirmationInProcess = this.committingChanges;\n id = \"commit-changes-button\";\n } else {\n isConfirmationInProcess = this.updatingChanges;\n id = \"update-remote-changes-button\";\n }\n return (\n <button\n id={id}\n class={{\n \"button-primary\": true,\n \"button-icon-and-text\": isConfirmationInProcess\n }}\n type=\"button\"\n disabled={this.#disableConfirmButton(type)}\n onClick={\n isLocal\n ? this.#commitChangesHandler\n : this.#updateRemoteChangesHandler\n }\n >\n {isConfirmationInProcess && (\n <ch-image class=\"icon-md loader-icon\" src={LOADER_ICON} type=\"mask\" />\n )}\n {isConfirmationInProcess\n ? isLocal\n ? this.#componentLocale.buttons.committing\n : this.#componentLocale.buttons.updating\n : isLocal\n ? this.#componentLocale.buttons.commit\n : this.#componentLocale.buttons.update}\n </button>\n );\n };\n\n #renderLocalChanges = () => {\n if (this.pendingCommitChangesCount > 0) {\n return (\n <Fragment>\n <ch-edit\n id=\"commit-message-input\"\n class=\"input commit-message-textarea\"\n value={this.commitMessage}\n accessibleName={this.#componentLocale.accessibleNames.commitMessage}\n placeholder={this.#componentLocale.placeholders.commitMessage}\n disabled={this.loadingLocalChanges}\n onInput={this.#commitMessageInputHandler}\n multiline\n />\n {this.#renderConfirmButton(\"local\")}\n {this.#renderTreeChanges(\"local\")}\n </Fragment>\n );\n }\n };\n\n #renderRemoteChanges = () => {\n if (this.pendingRemoteChangesCount > 0) {\n return (\n <Fragment>\n {this.#renderConfirmButton(\"remote\")}\n {this.#renderTreeChanges(\"remote\")}\n </Fragment>\n );\n }\n };\n\n render() {\n const { existsGXServerSession } = this.teamDevPreviewData;\n return (\n <Host\n class={{\n \"widget\": true,\n \"empty-state\": !this.#isTeamDevOptionsEnabled\n }}\n >\n <ch-theme model={CSS_BUNDLES} />\n {!this.#isTeamDevOptionsEnabled || !existsGXServerSession ? (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={ERROR_ICON}\n stateTitle={this.#getEmptyStateTitle()}\n stateDescription={this.#getEmptyStateDescription()}\n >\n {this.#renderEmptyStateButton() && (\n <button\n class=\"button-primary empty-state-button\"\n onClick={this.#getEmptyStateButtonHandler()}\n >\n {this.#getEmptyStateButtonText()}\n </button>\n )}\n <div>\n <p class=\"body-regular-s\">\n {this.#componentLocale.emptyState.about}\n </p>\n <button\n class=\"button-tertiary button-icon-and-text team-dev-button body-semi-bold-s\"\n type=\"button\"\n onClick={this.#openTeamDevInfoHandler}\n >\n {this.#componentLocale.buttons.teamDev}\n <ch-image class=\"icon-md\" src={OPEN_WINDOW_ICON} type=\"mask\" />\n </button>\n </div>\n </gx-ide-empty-state>\n ) : (\n <div class=\"main-container spacing-body scrollable\">\n <div>\n <p class=\"giu-static-pill-icon-and-text version giu-static-pill-icon-and-text--version elevation-02\">\n <ch-image\n class=\"icon-md\"\n type=\"mask\"\n src={VERSION_ICON}\n ></ch-image>\n <span class=\"version-pill\">\n {this.teamDevPreviewData.versionName}\n </span>\n </p>\n </div>\n <ch-tab-render\n class=\"tab tab-full-width-buttons scrollable border-style-none\"\n model={this.tabModel}\n selectedId={this.selectedTabId}\n tabListPosition=\"block-start\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div class=\"local-changes-container\" slot={LOCAL_CHANGES_TAB}>\n {this.#renderEmptyState(\"local\")}\n {this.#renderLocalChanges()}\n </div>\n\n <div class=\"remote-changes-container\" slot={REMOTE_CHANGES_TAB}>\n {this.#renderEmptyState(\"remote\")}\n {this.#renderRemoteChanges()}\n </div>\n </ch-tab-render>\n\n <footer class=\"control-footer-with-border open-window-container\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-tertiary button-icon-and-text open-full-dialog-button\"\n onClick={this.#openFullDialogHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={OPEN_WINDOW_ICON}\n type=\"mask\"\n />\n {this.#componentLocale.footer.openFullDialog}\n </button>\n </div>\n </footer>\n </div>\n )}\n </Host>\n );\n }\n}\n\nexport type TeamDevPreviewData = {\n versionName: string;\n isFrozenVersion: boolean;\n existsGXServerSession: boolean;\n isKBOpen: boolean;\n isLinkedVersion: boolean;\n isLinkedKB: boolean;\n};\n\nexport type TeamDevPreviewMode = \"local\" | \"remote\";\n"]}
@@ -459,6 +459,7 @@ export class GxIdeTeamDevUpdate {
459
459
  this.kbPropertiesChecked = false;
460
460
  this.typesComboBoxModel = undefined;
461
461
  this.selectedType = undefined;
462
+ this.isUpdateDisabled = false;
462
463
  this.objectsStatusMap = new Map();
463
464
  this.contextMenuCallback = undefined;
464
465
  this.pendingAndIgnored = {
@@ -544,10 +545,16 @@ export class GxIdeTeamDevUpdate {
544
545
  * Used by the host to instruct the component to force a data reload in the grids.
545
546
  */
546
547
  async reload() {
547
- __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
548
+ await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
549
+ }
550
+ /**
551
+ * Used by the host to instruct the component to disable the update button.
552
+ */
553
+ async disableUpdate(value) {
554
+ this.isUpdateDisabled = value;
548
555
  }
549
556
  render() {
550
- const disableControls = this.updating || this.loading;
557
+ const disableControls = this.updating || this.loading || this.isUpdateDisabled;
551
558
  const gridIsEmpty = this.pendingObjectsAfterActionFilter.length === 0 &&
552
559
  this.ignoredObjectsAfterActionFilter.length === 0;
553
560
  return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body-inline spacing-body-block-start" }, h("div", {
@@ -797,6 +804,7 @@ export class GxIdeTeamDevUpdate {
797
804
  "kbPropertiesChecked": {},
798
805
  "typesComboBoxModel": {},
799
806
  "selectedType": {},
807
+ "isUpdateDisabled": {},
800
808
  "objectsStatusMap": {},
801
809
  "pendingAndIgnored": {},
802
810
  "pendingObjectsAfterActionFilter": {},
@@ -821,6 +829,27 @@ export class GxIdeTeamDevUpdate {
821
829
  "text": "Used by the host to instruct the component to force a data reload in the grids.",
822
830
  "tags": []
823
831
  }
832
+ },
833
+ "disableUpdate": {
834
+ "complexType": {
835
+ "signature": "(value: boolean) => Promise<void>",
836
+ "parameters": [{
837
+ "name": "value",
838
+ "type": "boolean",
839
+ "docs": ""
840
+ }],
841
+ "references": {
842
+ "Promise": {
843
+ "location": "global",
844
+ "id": "global::Promise"
845
+ }
846
+ },
847
+ "return": "Promise<void>"
848
+ },
849
+ "docs": {
850
+ "text": "Used by the host to instruct the component to disable the update button.",
851
+ "tags": []
852
+ }
824
853
  }
825
854
  };
826
855
  }