@genexus/genexus-ide-ui 1.1.61 → 1.1.62

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 (115) hide show
  1. package/dist/cjs/{common-f2540d3e.js → common-51d68918.js} +1 -31
  2. package/dist/cjs/common-51d68918.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +111 -49
  5. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +358 -266
  9. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js +141 -0
  13. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js.map +1 -0
  14. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +1 -0
  18. package/dist/collection/common/common.js +0 -21
  19. package/dist/collection/common/common.js.map +1 -1
  20. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +1 -1
  21. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  22. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  23. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  24. package/dist/collection/components/_helpers/progress-bar/progress-bar.css +210 -0
  25. package/dist/collection/components/_helpers/progress-bar/progress-bar.js +320 -0
  26. package/dist/collection/components/_helpers/progress-bar/progress-bar.js.map +1 -0
  27. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +30 -639
  28. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +179 -110
  29. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  30. package/dist/collection/components/modules/edit-module-server/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  31. package/dist/collection/components/modules/edit-module-server/helpers.js +12 -0
  32. package/dist/collection/components/modules/edit-module-server/helpers.js.map +1 -0
  33. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  34. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  35. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  36. package/dist/collection/components/modules/manage-module-references/helpers.js +32 -0
  37. package/dist/collection/components/modules/manage-module-references/helpers.js.map +1 -0
  38. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +116 -789
  39. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +378 -373
  40. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  41. package/dist/collection/testing/locale.e2e.js +1 -0
  42. package/dist/collection/testing/locale.e2e.js.map +1 -1
  43. package/dist/components/common.js +1 -30
  44. package/dist/components/common.js.map +1 -1
  45. package/dist/components/gx-ide-edit-module-server.js +118 -68
  46. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  47. package/dist/components/gx-ide-empty-state2.js +1 -1
  48. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  49. package/dist/components/gx-ide-manage-module-references.js +384 -291
  50. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  51. package/dist/components/gx-ide-progress-bar.d.ts +11 -0
  52. package/dist/components/gx-ide-progress-bar.js +8 -0
  53. package/dist/components/gx-ide-progress-bar.js.map +1 -0
  54. package/dist/components/gx-ide-ww-images.js +1 -1
  55. package/dist/components/progress-bar.js +166 -0
  56. package/dist/components/progress-bar.js.map +1 -0
  57. package/dist/esm/{common-b811a822.js → common-dc966e64.js} +2 -31
  58. package/dist/esm/common-dc966e64.js.map +1 -0
  59. package/dist/esm/genexus-ide-ui.js +1 -1
  60. package/dist/esm/gx-ide-edit-module-server.entry.js +112 -50
  61. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  63. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  64. package/dist/esm/gx-ide-manage-module-references.entry.js +359 -267
  65. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  66. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  67. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  68. package/dist/esm/gx-ide-progress-bar.entry.js +137 -0
  69. package/dist/esm/gx-ide-progress-bar.entry.js.map +1 -0
  70. package/dist/esm/gx-ide-splash.entry.js +1 -1
  71. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  74. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  75. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  76. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  77. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  78. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  79. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  80. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  81. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  82. package/dist/genexus-ide-ui/p-29ac6b13.entry.js +582 -0
  83. package/dist/genexus-ide-ui/p-29ac6b13.entry.js.map +1 -0
  84. package/dist/genexus-ide-ui/p-3a22af5d.entry.js +249 -0
  85. package/dist/genexus-ide-ui/p-3a22af5d.entry.js.map +1 -0
  86. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js +166 -0
  87. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js.map +1 -0
  88. package/dist/genexus-ide-ui/{p-84d39fc6.entry.js → p-5f7de718.entry.js} +2 -2
  89. package/dist/genexus-ide-ui/{p-84d39fc6.entry.js.map → p-5f7de718.entry.js.map} +1 -1
  90. package/dist/genexus-ide-ui/{p-f5734cc7.entry.js → p-630581df.entry.js} +2 -2
  91. package/dist/genexus-ide-ui/{p-d41d52f6.entry.js → p-70038e09.entry.js} +2 -2
  92. package/dist/genexus-ide-ui/{p-b5aadc8d.entry.js → p-8f2f8995.entry.js} +2 -2
  93. package/dist/genexus-ide-ui/{p-ae33da9a.entry.js → p-9606ebed.entry.js} +19 -19
  94. package/dist/genexus-ide-ui/p-97bbd54c.js +132 -0
  95. package/dist/genexus-ide-ui/p-97bbd54c.js.map +1 -0
  96. package/dist/types/common/common.d.ts +0 -2
  97. package/dist/types/components/_helpers/progress-bar/progress-bar.d.ts +61 -0
  98. package/dist/types/components/modules/edit-module-server/edit-module-server.d.ts +15 -30
  99. package/dist/types/components/modules/edit-module-server/helpers.d.ts +3 -0
  100. package/dist/types/components/modules/manage-module-references/helpers.d.ts +5 -0
  101. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +43 -88
  102. package/dist/types/components.d.ts +109 -42
  103. package/package.json +1 -1
  104. package/dist/cjs/common-f2540d3e.js.map +0 -1
  105. package/dist/esm/common-b811a822.js.map +0 -1
  106. package/dist/genexus-ide-ui/p-67e3486a.entry.js +0 -498
  107. package/dist/genexus-ide-ui/p-67e3486a.entry.js.map +0 -1
  108. package/dist/genexus-ide-ui/p-714b37c0.js +0 -159
  109. package/dist/genexus-ide-ui/p-714b37c0.js.map +0 -1
  110. package/dist/genexus-ide-ui/p-e13998a5.entry.js +0 -141
  111. package/dist/genexus-ide-ui/p-e13998a5.entry.js.map +0 -1
  112. /package/dist/genexus-ide-ui/{p-f5734cc7.entry.js.map → p-630581df.entry.js.map} +0 -0
  113. /package/dist/genexus-ide-ui/{p-d41d52f6.entry.js.map → p-70038e09.entry.js.map} +0 -0
  114. /package/dist/genexus-ide-ui/{p-b5aadc8d.entry.js.map → p-8f2f8995.entry.js.map} +0 -0
  115. /package/dist/genexus-ide-ui/{p-ae33da9a.entry.js.map → p-9606ebed.entry.js.map} +0 -0
@@ -5,141 +5,243 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
5
5
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
6
6
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
7
7
  };
8
- var _GxManageModuleReferences_filterIcon, _GxManageModuleReferences_moduleIcon;
9
- /* STENCIL IMPORTS */
8
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
9
+ if (kind === "m")
10
+ throw new TypeError("Private method is not writable");
11
+ if (kind === "a" && !f)
12
+ throw new TypeError("Private accessor was defined without a setter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
14
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var _GxManageModuleReferences_componentLocale, _GxManageModuleReferences_moduleVersionsMap, _GxManageModuleReferences_modulesMap, _GxManageModuleReferences_modulesJustFetched, _GxManageModuleReferences_searchModulesFilterValue, _GxManageModuleReferences_modulesGrid, _GxManageModuleReferences_progressBarEl, _GxManageModuleReferences_segmentedControlModel, _GxManageModuleReferences_clearAll, _GxManageModuleReferences_filterModules, _GxManageModuleReferences_getActionFromCurrentModuleVersion, _GxManageModuleReferences_handleFilterChangeHandler, _GxManageModuleReferences_handleModuleChange, _GxManageModuleReferences_moduleActionHandler, _GxManageModuleReferences_moduleTypeButtonClicked, _GxManageModuleReferences_moduleVersionsValueChangedHandler, _GxManageModuleReferences_onProgress, _GxManageModuleReferences_progressBarCloseHandler, _GxManageModuleReferences_reloadServer, _GxManageModuleReferences_renderEmptyStateModules, _GxManageModuleReferences_renderInstalledVersion, _GxManageModuleReferences_renderModuleVersions, _GxManageModuleReferences_renderModulesGrid, _GxManageModuleReferences_renderVersionName, _GxManageModuleReferences_renderVersionWarningMessage, _GxManageModuleReferences_serverSelectedCallbackHandler, _GxManageModuleReferences_serverValueChangedHandler, _GxManageModuleReferences_showModuleMenu;
18
+ // Stencil
10
19
  import { Host, h } from "@stencil/core";
11
20
  import { getIconPath } from "@genexus/mercury";
12
- import { renderModuleDataProperties } from "../../../common/common";
21
+ import { mapModuleServerDataToComboBoxModel, mapModuleVersionDataToComboBoxModel, renderModuleDataProperties } from "./helpers";
22
+ import { config } from "../../../common/config";
13
23
  import { Locale } from "../../../common/locale";
24
+ import { hiChar } from "../../../common/helpers";
14
25
  const CSS_BUNDLES = [
15
26
  "resets/box-sizing",
16
- // "utils/form",
17
- // "utils/layout",
18
- // "utils/typography",
19
- // "components/button",
20
- // "components/checkbox",
21
- // "components/edit",
22
- "components/tabular-grid"
27
+ "utils/form",
28
+ "utils/layout",
29
+ "utils/typography",
30
+ "components/button",
31
+ "components/icon",
32
+ "components/combo-box",
33
+ "components/edit",
34
+ "components/tabular-grid",
35
+ "components/segmented-control",
36
+ "chameleon/scrollbar",
37
+ "utils/spacing"
23
38
  ];
39
+ // icons
40
+ const SHOW_MORE_ICON = getIconPath({
41
+ category: "gemini-tools",
42
+ name: "show-more-horizontal",
43
+ colorType: "primary"
44
+ });
45
+ const RESET_ICON = getIconPath({
46
+ category: "gemini-tools",
47
+ name: "reset",
48
+ colorType: "primary"
49
+ });
50
+ const MODULE_ICON = getIconPath({
51
+ category: "objects",
52
+ name: "module"
53
+ });
54
+ const FILTER_ICON = getIconPath({
55
+ category: "system",
56
+ name: "filters",
57
+ colorType: "on-elevation"
58
+ });
59
+ const MVS = "__"; // The separator between module-id, and module-version-id
24
60
  export class GxManageModuleReferences {
25
61
  constructor() {
26
- this.renderedFirstTime = false;
27
- _GxManageModuleReferences_filterIcon.set(this, getIconPath({
28
- category: "system",
29
- name: "filters",
30
- colorType: "on-elevation"
31
- }));
32
- _GxManageModuleReferences_moduleIcon.set(this, getIconPath({
33
- category: "objects",
34
- name: "module"
35
- }));
36
- // 9.LOCAL METHODS //
37
- this.updateModulesSelectedVersion = (modulesAll) => {
38
- if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {
39
- // the server has changed. clear the updateModulesSelectedVersion
40
- this.modulesSelectedVersion.clear();
41
- modulesAll.forEach(module => {
42
- // this.modulesSelectedVersion.set(module.id, module.versions[0].id);
43
- this.modulesSelectedVersion.set(module.id, module.versions[module.versions.length - 1].id);
62
+ _GxManageModuleReferences_componentLocale.set(this, void 0);
63
+ /**
64
+ * #moduleVersionsMap maps a module version (identified as module-id + version-id), with the ModuleVersionData
65
+ */
66
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
67
+ _GxManageModuleReferences_moduleVersionsMap.set(this, new Map());
68
+ /**
69
+ * maps a module-id, with the module current installed version, and the list of versions as a ComboBoxModel representation.
70
+ */
71
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
72
+ _GxManageModuleReferences_modulesMap.set(this, new Map());
73
+ // #modulesJustFetched is used to select the current module on componentDidRender
74
+ _GxManageModuleReferences_modulesJustFetched.set(this, false);
75
+ _GxManageModuleReferences_searchModulesFilterValue.set(this, void 0);
76
+ _GxManageModuleReferences_modulesGrid.set(this, void 0);
77
+ _GxManageModuleReferences_progressBarEl.set(this, void 0);
78
+ _GxManageModuleReferences_segmentedControlModel.set(this, []);
79
+ _GxManageModuleReferences_clearAll.set(this, () => {
80
+ __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").clear();
81
+ __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").clear();
82
+ });
83
+ _GxManageModuleReferences_filterModules.set(this, () => {
84
+ let filteredModules;
85
+ // 1. Filter by type first
86
+ // browse
87
+ if (this.selectedModuleType === "browse") {
88
+ filteredModules = this.modulesAll;
89
+ }
90
+ // installed
91
+ else if (this.selectedModuleType === "installed") {
92
+ filteredModules = this.modulesAll.filter((module) => {
93
+ // if the module has a currentVersion (not undefined) it means it is installed
94
+ return module.currentVersion;
44
95
  });
45
96
  }
46
- else {
47
- // the server has't changed. only add the module to the map, if it is a new module.
48
- modulesAll.forEach(module => {
49
- const newModule = this.modulesSelectedVersion.get(module.id) === undefined;
50
- if (newModule) {
51
- this.modulesSelectedVersion.set(module.id, module.versions[0].id);
52
- }
97
+ else if (this.selectedModuleType === "updates") {
98
+ filteredModules = this.modulesAll.filter((module) => {
99
+ return module.versions.find(version => version.action === "update");
53
100
  });
54
101
  }
55
- this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;
56
- };
57
- this.getActionFromCurrentModuleVersion = () => {
58
- const action = this.getModuleData(this.selectedModule, "action");
102
+ // 2. Then filter by user input
103
+ if (__classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f")) {
104
+ filteredModules = filteredModules.filter(module => {
105
+ const moduleSelectedVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${module.id}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(module.id).currentSelectedVersion}`);
106
+ const moduleSelectedVersionName = moduleSelectedVersion.name.toLowerCase();
107
+ const moduleSelectedVersionDescription = moduleSelectedVersion.description.toLowerCase();
108
+ return ((moduleSelectedVersionName === null || moduleSelectedVersionName === void 0 ? void 0 : moduleSelectedVersionName.includes(__classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f"))) ||
109
+ (moduleSelectedVersionDescription === null || moduleSelectedVersionDescription === void 0 ? void 0 : moduleSelectedVersionDescription.includes(__classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f"))));
110
+ });
111
+ }
112
+ this.filteredModules = filteredModules;
113
+ });
114
+ _GxManageModuleReferences_getActionFromCurrentModuleVersion.set(this, () => {
115
+ const action = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${this.selectedModuleId}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion}`).action;
59
116
  return action || "install";
60
- };
117
+ });
118
+ _GxManageModuleReferences_handleFilterChangeHandler.set(this, (event) => {
119
+ const searchValue = event.detail.trim().toLowerCase();
120
+ __classPrivateFieldSet(this, _GxManageModuleReferences_searchModulesFilterValue, searchValue, "f");
121
+ __classPrivateFieldGet(this, _GxManageModuleReferences_filterModules, "f").call(this);
122
+ });
123
+ _GxManageModuleReferences_handleModuleChange.set(this, (event) => {
124
+ this.selectedModuleId = event.detail.rowsId[0];
125
+ // update selected versions comboBox model
126
+ const selectedModuleVersionsInfoArray = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).comboBoxVersionsModel;
127
+ this.selectedModuleVersions = selectedModuleVersionsInfoArray.map(versionInfo => {
128
+ return {
129
+ caption: versionInfo.value,
130
+ value: versionInfo.value
131
+ };
132
+ });
133
+ });
134
+ /**
135
+ * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
136
+ */
137
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
138
+ _GxManageModuleReferences_moduleActionHandler.set(this, (module) => async () => {
139
+ await __classPrivateFieldGet(this, _GxManageModuleReferences_progressBarEl, "f").reset(); // sets the progress bar to 0
140
+ this.executeActionCallbackInProgress = true;
141
+ this.actionInProgress = true;
142
+ const moduleSelectedVersionId = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion;
143
+ const actionSuccessful = await this.executeActionCallback(this.selectedServerId, module.id, moduleSelectedVersionId, __classPrivateFieldGet(this, _GxManageModuleReferences_getActionFromCurrentModuleVersion, "f").call(this), __classPrivateFieldGet(this, _GxManageModuleReferences_onProgress, "f"));
144
+ this.executeActionCallbackInProgress = false;
145
+ if (actionSuccessful) {
146
+ __classPrivateFieldGet(this, _GxManageModuleReferences_serverSelectedCallbackHandler, "f").call(this, this.selectedServerId, false);
147
+ }
148
+ });
149
+ _GxManageModuleReferences_moduleTypeButtonClicked.set(this, (event) => {
150
+ this.selectedModuleType = event.detail;
151
+ __classPrivateFieldGet(this, _GxManageModuleReferences_filterModules, "f").call(this);
152
+ });
153
+ _GxManageModuleReferences_moduleVersionsValueChangedHandler.set(this, (event) => {
154
+ const versionId = event.detail;
155
+ const currentModuleMapValue = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId);
156
+ currentModuleMapValue.currentSelectedVersion = versionId.toString();
157
+ __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").set(this.selectedModuleId, currentModuleMapValue);
158
+ this.reRenderCounter++;
159
+ });
61
160
  /**
62
161
  * Callback invoked to get the progress when module is performing an action
63
162
  */
64
- this.onProgress = (message, progress, state) => {
163
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
164
+ _GxManageModuleReferences_onProgress.set(this, (message, progress, state) => {
65
165
  const data = { message, progress, state };
66
166
  this.selectedModuleAction = Object.assign({}, data);
67
167
  this.progressValue = this.selectedModuleAction.progress;
68
168
  this.progressState = this.selectedModuleAction.state;
69
- };
70
- // 10.LOCAL METHODS //
71
- /**
72
- * Used for changing the selected module
73
- */
74
- this.handleModuleChange = (event) => {
75
- const selectedModuleId = event.detail.rowsId[0];
76
- const foundModule = this.modulesAll.find(item => item.id === selectedModuleId);
77
- if (foundModule) {
78
- this.selectedModule = foundModule;
169
+ });
170
+ _GxManageModuleReferences_progressBarCloseHandler.set(this, () => { });
171
+ _GxManageModuleReferences_reloadServer.set(this, () => {
172
+ __classPrivateFieldGet(this, _GxManageModuleReferences_serverSelectedCallbackHandler, "f").call(this, this.selectedServerId, true);
173
+ });
174
+ _GxManageModuleReferences_renderEmptyStateModules.set(this, () => {
175
+ return (h("gx-ide-empty-state", { isAnimated: true, stateIconSrc: FILTER_ICON, stateTitle: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.noModulesFilter }));
176
+ });
177
+ _GxManageModuleReferences_renderInstalledVersion.set(this, () => {
178
+ const currentInstalledVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentInstalledVersion;
179
+ let caption;
180
+ let cssClass = "module-info__action-container";
181
+ if (currentInstalledVersion) {
182
+ caption = `${__classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modulesInformation.moduleProperties.installed}: ${currentInstalledVersion}`;
183
+ cssClass += ` module-info__action-container--installed`;
79
184
  }
80
- };
81
- /**
82
- * Change the server selected value in response to callbackServerSelected callback
83
- */
84
- this.serverSelectedCallbackHandler = async (id, reload) => {
185
+ else {
186
+ caption =
187
+ __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modulesInformation.moduleProperties.notInstalled;
188
+ }
189
+ return (h("div", { class: cssClass }, h("p", { class: "body-regular-m" }, caption)));
190
+ });
191
+ _GxManageModuleReferences_renderModuleVersions.set(this, () => {
192
+ const currentSelectedModule = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId);
193
+ const selectedVersionValue = currentSelectedModule.currentSelectedVersion;
194
+ const moduleSelectedVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${this.selectedModuleId}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion}`);
195
+ const moduleSelectedVersionAction = moduleSelectedVersion.action;
196
+ return (h("div", { class: "field field-block available-versions" }, h("label", { class: "label", htmlFor: "available-versions" }, __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").availableVersions), h("div", { class: "buttons-spacer combo-and-button" }, h("ch-combo-box-render", { id: "available-versions", class: "combo-box versions", value: selectedVersionValue, onInput: __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsValueChangedHandler, "f"), disabled: this.loadingServer, model: this.selectedModuleVersions }), h("button", { class: "button-primary button-status", disabled: this.executeActionCallbackInProgress ||
197
+ moduleSelectedVersionAction === "incompatible" ||
198
+ moduleSelectedVersionAction === "not-installable", onClick: __classPrivateFieldGet(this, _GxManageModuleReferences_moduleActionHandler, "f").call(this, currentSelectedModule.moduleData) }, __classPrivateFieldGet(this, _GxManageModuleReferences_getActionFromCurrentModuleVersion, "f").call(this)))));
199
+ });
200
+ _GxManageModuleReferences_renderModulesGrid.set(this, () => {
201
+ return (h("ch-tabular-grid", {
202
+ // TODO: Evaluate if the tabular-grid is the right tool for this job.
203
+ rowSelectionMode: "single", part: "ch-grid-pending-commits", class: "tabular-grid scrollable", onSelectionChanged: __classPrivateFieldGet(this, _GxManageModuleReferences_handleModuleChange, "f"), ref: el => (__classPrivateFieldSet(this, _GxManageModuleReferences_modulesGrid, el, "f"))
204
+ }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { class: "tabular-grid-column", settingable: false, size: config.tabularGrid.colSize.common })), this.filteredModules.length ? (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.filteredModules.map((module) => {
205
+ const moduleIsInstalled = module.currentVersion;
206
+ const moduleSelectedVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${module.id}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(module.id).currentSelectedVersion}`);
207
+ const moduleSelectedVersionName = moduleSelectedVersion.name;
208
+ const moduleSelectedVersionDescription = moduleSelectedVersion.description;
209
+ return (h("ch-tabular-grid-row", {
210
+ // TODO: Replace tabular grid with other control, since it does not makes sense to use a grid with only one column.
211
+ class: "tabular-grid-row", rowid: module.id, key: module.id
212
+ }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, h("div", { class: "module-grid-item-info field-group" }, h("ch-image", { class: "icon-md module-icon", src: MODULE_ICON, disabled: !moduleIsInstalled }), h("div", { class: "field field-block" }, h("h6", { class: "subtitle-semi-bold-xs" }, hiChar(moduleSelectedVersionName, __classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f"))), h("p", { class: "body-regular-s" }, hiChar(moduleSelectedVersionDescription, __classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f"))))))));
213
+ }))) : (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, __classPrivateFieldGet(this, _GxManageModuleReferences_renderEmptyStateModules, "f").call(this))))));
214
+ });
215
+ /* module details/information renders*/
216
+ _GxManageModuleReferences_renderVersionName.set(this, () => {
217
+ const moduleSelectedVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${this.selectedModuleId}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion}`);
218
+ const selectedModule = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId);
219
+ const moduleIsInstalled = selectedModule.currentInstalledVersion;
220
+ return (h("div", { class: "module-info__title" }, h("ch-image", { class: "icon-md module-info__icon", src: MODULE_ICON, disabled: !moduleIsInstalled }), h("h6", { class: "subtitle-semi-bold-xs" }, moduleSelectedVersion.name)));
221
+ });
222
+ _GxManageModuleReferences_renderVersionWarningMessage.set(this, () => {
223
+ const moduleVersionWarningMessage = __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${this.selectedModuleId}${MVS}${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion}`).warningMessage;
224
+ if (moduleVersionWarningMessage) {
225
+ return (h("p", { class: "module-info__alert-message" }, moduleVersionWarningMessage));
226
+ }
227
+ });
228
+ _GxManageModuleReferences_serverSelectedCallbackHandler.set(this, async (id, reload) => {
85
229
  if (this.serverSelectedCallback) {
230
+ this.selectedServerId = id;
86
231
  this.loadingServer = true;
87
232
  const resolvedObjects = await this.serverSelectedCallback(id, reload);
88
- this.selectedServerId = id;
89
233
  this.modulesAll = [...resolvedObjects];
90
- this.filterModulesByType("browse");
91
- this.selectedModule = this.filteredModules[0];
92
234
  this.loadingServer = false;
93
235
  }
94
- };
95
- this.handleFilterChange = (value) => {
96
- value = value.trim().toLowerCase();
97
- if (value) {
98
- this.filteredModules = this.modulesAll.filter(module => {
99
- const selectedVersionName = this.getModuleData(module, "name");
100
- return selectedVersionName === null || selectedVersionName === void 0 ? void 0 : selectedVersionName.toLowerCase().includes(value);
101
- });
102
- }
103
- else {
104
- this.filteredModules = this.modulesAll;
105
- }
106
- };
107
- this.handleFilterChangeHandler = (e) => {
108
- const value = e.detail;
109
- return this.handleFilterChange(value);
110
- };
111
- /**
112
- * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
113
- */
114
- this.executeActionCallbackHandler = async (module) => {
115
- if (this.executeActionCallback) {
116
- const moduleSelectedVersionId = this.modulesSelectedVersion.get(module.id);
117
- const actionCompleted = await this.executeActionCallback(this.selectedServerId, module.id, moduleSelectedVersionId, this.getActionFromCurrentModuleVersion(), this.onProgress);
118
- if (actionCompleted) {
119
- this.serverSelectedCallbackHandler(this.selectedServerId, false);
120
- }
121
- this.actionCompleted = actionCompleted;
122
- }
123
- };
124
- this.filterModulesByType = (type) => {
125
- // browse
126
- if (type === "browse") {
127
- this.filteredModules = this.modulesAll;
128
- }
129
- // installed
130
- else if (type === "installed") {
131
- this.filteredModules = this.modulesAll.filter((module) => {
132
- // if the module has a currentVersion (not undefined) it means it is installed
133
- return module.currentVersion;
134
- });
135
- }
136
- else if (type === "updates") {
137
- this.filteredModules = this.modulesAll.filter((module) => {
138
- return module.versions.find(version => version.action === "update");
139
- });
140
- }
141
- };
142
- this.showModuleMenu = async (e) => {
236
+ });
237
+ _GxManageModuleReferences_serverValueChangedHandler.set(this, (event) => {
238
+ this.selectedModuleId = undefined; // clear selected module
239
+ __classPrivateFieldSet(this, _GxManageModuleReferences_searchModulesFilterValue, "", "f"); // clear filter
240
+ this.selectedModuleType = "browse"; // set "browse" as the default selected type
241
+ const serverId = event.detail;
242
+ __classPrivateFieldGet(this, _GxManageModuleReferences_serverSelectedCallbackHandler, "f").call(this, serverId, false);
243
+ });
244
+ _GxManageModuleReferences_showModuleMenu.set(this, async (e) => {
143
245
  if (this.serverContextMenuCallback) {
144
246
  const buttonBoundingClientRect = e.target.getBoundingClientRect();
145
247
  await this.serverContextMenuCallback({
@@ -148,181 +250,135 @@ export class GxManageModuleReferences {
148
250
  clientY: buttonBoundingClientRect.y
149
251
  });
150
252
  }
151
- };
152
- this.getModuleData = (module, dataType) => {
153
- const selectedVersionId = this.modulesSelectedVersion.get(module.id);
154
- let selectedVersion;
155
- let selectedVersionData;
156
- if (selectedVersionId) {
157
- selectedVersion = module.versions.find(version => version.id === selectedVersionId);
158
- }
159
- if (selectedVersion) {
160
- selectedVersionData = selectedVersion[dataType];
161
- }
162
- return selectedVersionData;
163
- };
164
- this.moduleActionHandler = (module) => () => {
165
- this.actionCompleted = false;
166
- this.closeProgressBar = false;
167
- this.executeActionCallbackHandler(module);
168
- };
169
- this.renderModulesGrid = () => {
170
- return (h("ch-tabular-grid", { rowSelectionMode: "single", part: "ch-grid-pending-commits", class: "tabular-grid servers-detail no-border", onSelectionChanged: this.handleModuleChange }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { class: "tabular-grid-column", settingable: false, size: "min-content" }), h("ch-tabular-grid-column", { class: "tabular-grid-column", settingable: false }), h("ch-tabular-grid-column", { class: "tabular-grid-column", settingable: false, size: "min-content" })), this.filteredModules.map((module) => (h("ch-tabular-grid-row", { class: "tabular-grid-row", rowid: module.id, key: module.id, selected: this.selectedModule && this.selectedModule.id === module.id }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, h("gxg-icon", { type: "objects/module", "data-action": this.moduleVersionIconColor(module), color: this.moduleVersionIconColor(module), size: "small" })), h("ch-tabular-grid-cell", { class: "tabular-grid-cell grid-cell-module__info" }, h("span", { class: "grid-cell-module__name" }, this.getModuleData(module, "name")), h("span", { class: "grid-cell-module__description" }, this.getModuleData(module, "description"))), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, this.selectedModule && this.selectedModule.id === module.id ? (h("div", { class: "button-wrapper" }, h("gxg-button", { disabled: !this.actionCompleted ||
171
- this.getModuleData(module, "action") === "incompatible" ||
172
- this.getModuleData(module, "action") === "not-installable", fit: true, part: "module-action", onClick: this.moduleActionHandler(module) }, this.getActionFromCurrentModuleVersion()))) : null))))));
173
- };
174
- this.renderEmptyStateModules = () => {
175
- return (h("gx-ide-empty-state", { stateIconSrc: __classPrivateFieldGet(this, _GxManageModuleReferences_filterIcon, "f"), stateTitle: this._componentLocale.modules.noModulesFilter }));
176
- };
177
- this.moduleVersionIconColor = (module) => {
178
- const moduleAction = this.getModuleData(module, "action");
179
- const moduleCurrentVersion = module.currentVersion;
180
- if (moduleAction === "not-installable" || moduleAction === "incompatible") {
181
- return "warning";
182
- }
183
- else if (!moduleCurrentVersion) {
184
- return "mercury-primary-disabled";
185
- }
186
- else {
187
- return "mercury-primary";
188
- }
189
- };
190
- /* module details/information renders*/
191
- this.renderVersionName = () => {
192
- return (h("gxg-title", { part: "module-info__name", type: "title-05" }, h("div", { class: "module-info__name" }, this.getModuleData(this.selectedModule, "name"))));
193
- };
194
- this.renderVersionWarningMessage = () => {
195
- const warningMessage = this.getModuleData(this.selectedModule, "warningMessage");
196
- if (warningMessage) {
197
- return h("p", { class: "module-info__alert-message" }, warningMessage);
198
- }
199
- };
200
- this.renderInstalledVersion = () => {
201
- const currentVersion = this.selectedModule.currentVersion;
202
- let caption;
203
- let cssClass = "module-info__action-container";
204
- if (currentVersion) {
205
- caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;
206
- cssClass += ` module-info__action-container--installed`;
207
- }
208
- else {
209
- caption =
210
- this._componentLocale.modulesInformation.moduleProperties.notInstalled;
211
- }
212
- return (h("div", { class: cssClass }, h("gxg-text", { part: "module-info__action" }, caption)));
213
- };
214
- this.moduleVersionsValueChangedHandler = (e) => {
215
- const versionId = e.detail;
216
- this.updateSelectedModuleVersion(versionId);
217
- };
218
- this.moduleVersionsItemChangedHandler = (e) => {
219
- const versionId = e.detail.value;
220
- this.updateSelectedModuleVersion(versionId);
221
- };
222
- this.updateSelectedModuleVersion = (versionId) => {
223
- if (versionId) {
224
- this.modulesSelectedVersion.set(this.selectedModule.id, versionId);
225
- this.reRenderCounter++;
226
- }
227
- };
228
- this.renderModuleVersions = () => {
229
- return (h("div", { part: "available-versions" }, h("gxg-combo-box", { id: "versions-combo-box", "disable-filter": true, value: this.getModuleData(this.selectedModule, "id"), part: "module-versions", "display-validation-styles": true, "display-validation-message": true, label: this._componentLocale.modulesInformation.moduleProperties
230
- .availableVersions, labelPosition: "start", centerLabel: true, onValueChanged: this.moduleVersionsValueChangedHandler, disabled: this.loadingServer }, this.selectedModule.versions.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.moduleVersionsItemChangedHandler }, item.id))))));
231
- };
232
- this.selectedButtonChangedHandler = (e) => {
233
- const type = e.detail.replace("btn-", "");
234
- this.filterModulesByType(type);
235
- };
236
- this.serverItemSelectedHandler = (e) => {
237
- const serverId = e.detail.value;
238
- this.serverSelectedCallbackHandler(serverId, false);
239
- };
240
- this.serverValueChangedHandler = (e) => {
241
- const serverId = e.detail;
242
- this.serverSelectedCallbackHandler(serverId, false);
243
- };
244
- this.progressBarCloseHandler = () => {
245
- setTimeout(() => {
246
- this.actionCompleted = true;
247
- this.closeProgressBar = true;
248
- // reset
249
- this.progressValue = 0;
250
- this.progressState = "in-progress";
251
- }, 400);
252
- // delay to force the footer line disappear after the top-state-bar has been closed.
253
- };
254
- this.reloadServer = () => {
255
- this.serverSelectedCallbackHandler(this.selectedServerId, true);
256
- };
257
- this.modulesAll = [];
253
+ });
254
+ this.actionInProgress = false;
255
+ this.executeActionCallbackInProgress = false;
258
256
  this.filteredModules = [];
259
- this.selectedModule = undefined;
260
- this.selectedServerId = undefined;
257
+ this.loadingServer = false;
258
+ this.modulesAll = [];
259
+ this.progressState = "in-progress";
260
+ this.progressValue = 0;
261
+ this.reRenderCounter = 0;
261
262
  this.selectedModuleAction = {
262
263
  message: "",
263
264
  progress: 0,
264
265
  state: "in-progress"
265
266
  };
266
- this.modulesSelectedVersion = new Map();
267
- this.actionCompleted = true;
268
- this.closeProgressBar = true;
269
- this.progressValue = 0;
270
- this.progressState = "in-progress";
271
- this.loadingServer = false;
272
- this.reRenderCounter = 0;
273
- this.displayTitle = false;
274
- this.servers = [];
275
- this.serverSelectedCallback = undefined;
267
+ this.selectedModuleId = undefined;
268
+ this.selectedModuleType = "browse";
269
+ this.selectedServerId = undefined;
270
+ this.selectedServerValue = undefined;
271
+ this.serversComboBoxModel = [];
272
+ this.selectedModuleVersions = [];
273
+ this.autoCloseProgressBar = false;
276
274
  this.executeActionCallback = undefined;
277
- this.addServerCallback = undefined;
278
275
  this.serverContextMenuCallback = undefined;
276
+ this.serverSelectedCallback = undefined;
277
+ this.servers = [];
279
278
  this.showServerCommands = false;
280
279
  }
281
- modulesAllWatcher(modulesAll) {
282
- this.updateModulesSelectedVersion(modulesAll);
283
- }
284
- loadingServerHandler(loading) {
285
- if (loading) {
286
- this.loaderEl.show = true;
287
- }
288
- else {
289
- this.loaderEl.show = false;
280
+ modulesAllChanged(newModules) {
281
+ let currentSelectedVersion;
282
+ if (this.selectedModuleId) {
283
+ // If this.selectedModuleId has a value, serverSelectedCallback was called
284
+ // but the server is the same. This occurs when a user action (e.g., install
285
+ // or restore) requires modules to update. The selected module and version
286
+ // remain unchanged. We must save the current version before #clearAll().
287
+ currentSelectedVersion = __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId).currentSelectedVersion;
290
288
  }
289
+ __classPrivateFieldGet(this, _GxManageModuleReferences_clearAll, "f").call(this);
290
+ newModules.forEach(module => {
291
+ let currentSelectedVersionValue = module.versions[0].id;
292
+ if (currentSelectedVersion && this.selectedModuleId === module.id) {
293
+ currentSelectedVersionValue = currentSelectedVersion;
294
+ currentSelectedVersion === undefined; // found. prevent the if in the following iteration.
295
+ }
296
+ // fulfill #modulesMap
297
+ const moduleVersionsComboBoxModel = mapModuleVersionDataToComboBoxModel(module.versions);
298
+ __classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").set(module.id, {
299
+ moduleData: module,
300
+ currentInstalledVersion: module.currentVersion,
301
+ currentSelectedVersion: currentSelectedVersionValue,
302
+ comboBoxVersionsModel: moduleVersionsComboBoxModel
303
+ });
304
+ // fulfill #moduleVersionsMap.
305
+ module.versions.forEach(version => {
306
+ const moduleVersionCombinedId = `${module.id}${MVS}${version.id}`;
307
+ __classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").set(moduleVersionCombinedId, {
308
+ id: version.id,
309
+ action: version.action,
310
+ description: version.description,
311
+ properties: version.properties,
312
+ name: version.name,
313
+ warningMessage: version.warningMessage
314
+ });
315
+ });
316
+ });
317
+ __classPrivateFieldSet(this, _GxManageModuleReferences_modulesJustFetched, true, "f");
318
+ __classPrivateFieldGet(this, _GxManageModuleReferences_filterModules, "f").call(this);
291
319
  }
292
- // 6.COMPONENT LIFECYCLE EVENTS //
293
- componentDidRender() {
294
- if (!this.renderedFirstTime) {
295
- this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
296
- this.renderedFirstTime = true;
320
+ serversChanged(newServers) {
321
+ if (newServers.length) {
322
+ this.serversComboBoxModel =
323
+ mapModuleServerDataToComboBoxModel(newServers);
324
+ this.selectedServerValue = this.serversComboBoxModel[0].value;
297
325
  }
298
326
  }
299
327
  async componentWillLoad() {
300
- this._componentLocale = await Locale.getComponentStrings(this.el);
328
+ __classPrivateFieldSet(this, _GxManageModuleReferences_componentLocale, await Locale.getComponentStrings(this.el), "f");
329
+ this.serversChanged(this.servers); // map ModuleServerData to ComboBoxModel
330
+ __classPrivateFieldSet(this, _GxManageModuleReferences_segmentedControlModel, [
331
+ {
332
+ id: "browse",
333
+ caption: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.buttonsContainer.browse
334
+ },
335
+ {
336
+ id: "installed",
337
+ caption: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.buttonsContainer.installed
338
+ },
339
+ {
340
+ id: "updates",
341
+ caption: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.buttonsContainer.updates
342
+ }
343
+ ], "f");
301
344
  }
302
345
  async componentDidLoad() {
303
- await this.serverSelectedCallbackHandler(this.servers[0].id, false);
346
+ await __classPrivateFieldGet(this, _GxManageModuleReferences_serverSelectedCallbackHandler, "f").call(this, this.servers[0].id, false);
304
347
  }
305
- // 7.LISTENERS //
306
- onPropValueChange(newModulesData) {
307
- this.filteredModules = [...newModulesData];
348
+ componentDidRender() {
349
+ if (__classPrivateFieldGet(this, _GxManageModuleReferences_modulesJustFetched, "f") && this.selectedModuleId) {
350
+ // set selected module as selected on the grid after server reload.
351
+ __classPrivateFieldGet(this, _GxManageModuleReferences_modulesGrid, "f").selectRow(this.selectedModuleId, true);
352
+ __classPrivateFieldSet(this, _GxManageModuleReferences_modulesJustFetched, false, "f");
353
+ }
308
354
  }
309
- // 8.PUBLIC METHODS API //
310
- /**
311
- * validate
312
- */
313
- async validate() {
314
- return true;
355
+ progressBarClosedHandler() {
356
+ // set it to false, to fire a re-render the next time the progress-bar is active.
357
+ this.actionInProgress = false;
315
358
  }
316
- // 11.RENDER() FUNCTION //
317
359
  render() {
318
- return (h(Host, { class: {
319
- "gx-ide-component": true
320
- } }, h("ch-theme", { model: CSS_BUNDLES }), h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noAboveFooterPadding: true, noBorderAboveFooter: this.closeProgressBar, part: "servers", containerTitle: this.displayTitle ? this._componentLocale.componentName : null }, h("main", { class: "main" }, h("div", { class: "modules__container" }, h("header", { class: "modules__header" }, h("div", { class: "modules__combo-container" }, h("gxg-label", null, this._componentLocale.modules.selectServer), h("div", { class: "modules__combo" }, h("gxg-combo-box", { disableFilter: true, onValueChanged: this.serverValueChangedHandler }, this.servers.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: this.serverItemSelectedHandler }, item.name)))), this.showServerCommands ? (h("span", { class: "modules__server-commands" }, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.showModuleMenu }))) : null, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/reset", onClick: this.reloadServer })))), h("div", { class: "modules__main" }, h("div", { class: "modules__main-header" }, h("gxg-form-text", { label: this._componentLocale.modules.searchModules, labelPosition: "above", centerLabel: false, onValueChanged: this.handleFilterChangeHandler, disabled: this.loadingServer }), h("gxg-buttons-container", { reduced: true, fullWidth: true, class: "modules__browser", onSelectedButtonChanged: this.selectedButtonChangedHandler }, h("gxg-button", { id: "btn-browse", selected: true, disabled: this.loadingServer }, this._componentLocale.modules.buttonsContainer.browse), h("gxg-button", { id: "btn-installed", disabled: this.loadingServer }, this._componentLocale.modules.buttonsContainer
321
- .installed), h("gxg-button", { id: "btn-updates", disabled: this.loadingServer }, this._componentLocale.modules.buttonsContainer.updates))), h("div", { class: "grid-container", ref: el => (this.serversDetail = el) }, this.filteredModules.length > 0
322
- ? this.renderModulesGrid()
323
- : this.renderEmptyStateModules()))), this.selectedModule ? (h("div", { class: "module-info" }, h("header", { class: "module-info__header" }, this.renderVersionName(), this.renderInstalledVersion(), this.renderModuleVersions(), this.renderVersionWarningMessage()), h("div", { class: "module-info__properties gxg-scrollbar" }, renderModuleDataProperties(this.getModuleData(this.selectedModule, "properties"))))) : (h("gx-ide-empty-state", { class: "recent-objects__empty-state", stateIconSrc: __classPrivateFieldGet(this, _GxManageModuleReferences_moduleIcon, "f"), stateTitle: this._componentLocale.modulesInformation.emptyState.title, stateDescription: this._componentLocale.modulesInformation.emptyState
324
- .description }))), h("gxg-top-state-bar", { slot: "footer-above", part: "progress-bar", stateType: this.progressState, noBorder: true, caption: this.selectedModuleAction.message ||
325
- this._componentLocale.progressBar.defaultCaption, progress: this.progressValue, active: !this.actionCompleted || !this.closeProgressBar, closeType: "not-progress", closedCallback: this.progressBarCloseHandler }))), h("gxg-ide-loader", { loaderTitle: this._componentLocale.servers.loading, ref: el => (this.loaderEl = el), container: this.serversDetail, borderRadius: "0 0 0 8px" })));
360
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "main" }, h("div", { class: "modules__container field-group" }, h("header", { class: "modules__header field-group" }, h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "servers-list" }, __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.selectServer), h("div", { class: "modules__header-controls buttons-spacer" }, h("ch-combo-box-render", {
361
+ // select server
362
+ id: "servers-list", class: "combo-box combo-box-servers", model: this.serversComboBoxModel, value: this.selectedServerValue, disabled: this.loadingServer, onInput: __classPrivateFieldGet(this, _GxManageModuleReferences_serverValueChangedHandler, "f")
363
+ }), h("div", null, this.showServerCommands && (h("button", {
364
+ // server context menu button
365
+ class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxManageModuleReferences_showModuleMenu, "f"), "aria-label": __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").showServerMenu, title: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").showServerMenu
366
+ }, h("ch-image", { src: SHOW_MORE_ICON, class: "icon-md" }))), h("button", {
367
+ // reload server selected button
368
+ class: "button-tertiary button-icon-only", onClick: __classPrivateFieldGet(this, _GxManageModuleReferences_reloadServer, "f"), "aria-label": __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").reloadModules, title: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").reloadModules
369
+ }, h("ch-image", { src: RESET_ICON, class: "icon-md" })))))), h("div", {
370
+ // Modules main
371
+ class: "modules__main"
372
+ }, h("div", { class: "modules__main-header" }, h("div", {
373
+ // search modules
374
+ class: "field field-block"
375
+ }, h("label", { class: "label", htmlFor: "search-modules" }, __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modules.searchModules), h("ch-edit", { class: "input", value: __classPrivateFieldGet(this, _GxManageModuleReferences_searchModulesFilterValue, "f"), onInput: __classPrivateFieldGet(this, _GxManageModuleReferences_handleFilterChangeHandler, "f"), disabled: this.loadingServer })), h("div", { class: "browse-modules" }, h("ch-segmented-control-render", { class: "segmented-control-filled", model: __classPrivateFieldGet(this, _GxManageModuleReferences_segmentedControlModel, "f"), selectedId: this.selectedModuleType, onSelectedItemChange: __classPrivateFieldGet(this, _GxManageModuleReferences_moduleTypeButtonClicked, "f") }))), h("div", { class: "grid-or-loader-container" }, this.loadingServer ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").servers.loading, show: true })) : (__classPrivateFieldGet(this, _GxManageModuleReferences_renderModulesGrid, "f").call(this))))), h("div", { class: "module-info field-group" }, this.selectedModuleId ? ([
376
+ h("header", { class: "module-info__header" }, __classPrivateFieldGet(this, _GxManageModuleReferences_renderVersionName, "f").call(this), __classPrivateFieldGet(this, _GxManageModuleReferences_renderInstalledVersion, "f").call(this), __classPrivateFieldGet(this, _GxManageModuleReferences_renderModuleVersions, "f").call(this), __classPrivateFieldGet(this, _GxManageModuleReferences_renderVersionWarningMessage, "f").call(this)),
377
+ h("div", { class: "module-info__properties scrollable" }, h("div", { class: "module-info__properties-inner-wrapper" }, renderModuleDataProperties(__classPrivateFieldGet(this, _GxManageModuleReferences_moduleVersionsMap, "f").get(`${this.selectedModuleId}__${__classPrivateFieldGet(this, _GxManageModuleReferences_modulesMap, "f").get(this.selectedModuleId)
378
+ .currentSelectedVersion}`).properties)))
379
+ ]) : (h("gx-ide-empty-state", { class: "recent-objects__empty-state", stateIconSrc: MODULE_ICON, stateTitle: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modulesInformation.emptyState.title, stateDescription: __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").modulesInformation.emptyState
380
+ .description }))), h("footer", { class: "footer" }, h("gx-ide-progress-bar", { class: "border-block-start", slot: "footer-above", part: "progress-bar", stateType: this.progressState, caption: this.selectedModuleAction.message ||
381
+ __classPrivateFieldGet(this, _GxManageModuleReferences_componentLocale, "f").progressBar.defaultCaption, progress: this.progressValue, active: this.actionInProgress, closeType: this.autoCloseProgressBar ? "auto-close" : "button", closedCallback: __classPrivateFieldGet(this, _GxManageModuleReferences_progressBarCloseHandler, "f"), ref: el => (__classPrivateFieldSet(this, _GxManageModuleReferences_progressBarEl, el, "f")) })))));
326
382
  }
327
383
  static get is() { return "gx-ide-manage-module-references"; }
328
384
  static get encapsulation() { return "shadow"; }
@@ -339,11 +395,11 @@ export class GxManageModuleReferences {
339
395
  static get assetsDirs() { return ["gx-ide-assets/manage-module-references"]; }
340
396
  static get properties() {
341
397
  return {
342
- "displayTitle": {
398
+ "autoCloseProgressBar": {
343
399
  "type": "boolean",
344
400
  "mutable": false,
345
401
  "complexType": {
346
- "original": "false",
402
+ "original": "boolean",
347
403
  "resolved": "boolean",
348
404
  "references": {}
349
405
  },
@@ -351,66 +407,44 @@ export class GxManageModuleReferences {
351
407
  "optional": false,
352
408
  "docs": {
353
409
  "tags": [],
354
- "text": "If true it displays the component title on the header"
410
+ "text": "If true, the progress bar will close automatically once the progress has reached 100%."
355
411
  },
356
- "attribute": "display-title",
412
+ "attribute": "auto-close-progress-bar",
357
413
  "reflect": false,
358
414
  "defaultValue": "false"
359
415
  },
360
- "servers": {
361
- "type": "unknown",
362
- "mutable": false,
363
- "complexType": {
364
- "original": "ModuleServerData[]",
365
- "resolved": "ModuleServerData[]",
366
- "references": {
367
- "ModuleServerData": {
368
- "location": "import",
369
- "path": "../types",
370
- "id": "src/components/modules/types.ts::ModuleServerData"
371
- }
372
- }
373
- },
374
- "required": false,
375
- "optional": false,
376
- "docs": {
377
- "tags": [],
378
- "text": "List of module servers currently cataloged"
379
- },
380
- "defaultValue": "[]"
381
- },
382
- "serverSelectedCallback": {
416
+ "executeActionCallback": {
383
417
  "type": "unknown",
384
418
  "mutable": false,
385
419
  "complexType": {
386
- "original": "ServerSelectedCallback",
387
- "resolved": "(id: string, reload: boolean) => Promise<ModuleData[]>",
420
+ "original": "ExecuteActionCallback",
421
+ "resolved": "(serverId: string, moduleId: string, moduleVersionId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: TopStateBarType) => void) => Promise<boolean>",
388
422
  "references": {
389
- "ServerSelectedCallback": {
423
+ "ExecuteActionCallback": {
390
424
  "location": "local",
391
425
  "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/modules/manage-module-references/manage-module-references.tsx",
392
- "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ServerSelectedCallback"
426
+ "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ExecuteActionCallback"
393
427
  }
394
428
  }
395
429
  },
396
- "required": false,
430
+ "required": true,
397
431
  "optional": false,
398
432
  "docs": {
399
433
  "tags": [],
400
- "text": "Callback invoked when a server is selected. Returns the set of modules available on that server."
434
+ "text": "Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage."
401
435
  }
402
436
  },
403
- "executeActionCallback": {
437
+ "serverContextMenuCallback": {
404
438
  "type": "unknown",
405
439
  "mutable": false,
406
440
  "complexType": {
407
- "original": "ExecuteActionCallback",
408
- "resolved": "(serverId: string, moduleId: string, moduleVersionId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: topStateBarType) => void) => Promise<boolean>",
441
+ "original": "ServerContextMenuCallback",
442
+ "resolved": "(contextMenuInfo: ContextMenuInfo) => Promise<void>",
409
443
  "references": {
410
- "ExecuteActionCallback": {
444
+ "ServerContextMenuCallback": {
411
445
  "location": "local",
412
446
  "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/modules/manage-module-references/manage-module-references.tsx",
413
- "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ExecuteActionCallback"
447
+ "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ServerContextMenuCallback"
414
448
  }
415
449
  }
416
450
  },
@@ -418,20 +452,20 @@ export class GxManageModuleReferences {
418
452
  "optional": false,
419
453
  "docs": {
420
454
  "tags": [],
421
- "text": "Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage."
455
+ "text": "Callback invoked when an element is right clicked on servers list"
422
456
  }
423
457
  },
424
- "addServerCallback": {
458
+ "serverSelectedCallback": {
425
459
  "type": "unknown",
426
460
  "mutable": false,
427
461
  "complexType": {
428
- "original": "AddServerCallback",
429
- "resolved": "() => Promise<void>",
462
+ "original": "ServerSelectedCallback",
463
+ "resolved": "(id: string, reload: boolean) => Promise<ModuleData[]>",
430
464
  "references": {
431
- "AddServerCallback": {
465
+ "ServerSelectedCallback": {
432
466
  "location": "local",
433
467
  "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/modules/manage-module-references/manage-module-references.tsx",
434
- "id": "src/components/modules/manage-module-references/manage-module-references.tsx::AddServerCallback"
468
+ "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ServerSelectedCallback"
435
469
  }
436
470
  }
437
471
  },
@@ -439,20 +473,20 @@ export class GxManageModuleReferences {
439
473
  "optional": false,
440
474
  "docs": {
441
475
  "tags": [],
442
- "text": "Callback invoked when Add button is clicked"
476
+ "text": "Callback invoked when a server is selected. Returns the set of modules available on that server."
443
477
  }
444
478
  },
445
- "serverContextMenuCallback": {
479
+ "servers": {
446
480
  "type": "unknown",
447
481
  "mutable": false,
448
482
  "complexType": {
449
- "original": "ServerContextMenuCallback",
450
- "resolved": "(contextMenuInfo: ContextMenuInfo) => Promise<void>",
483
+ "original": "ModuleServerData[]",
484
+ "resolved": "ModuleServerData[]",
451
485
  "references": {
452
- "ServerContextMenuCallback": {
453
- "location": "local",
454
- "path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/modules/manage-module-references/manage-module-references.tsx",
455
- "id": "src/components/modules/manage-module-references/manage-module-references.tsx::ServerContextMenuCallback"
486
+ "ModuleServerData": {
487
+ "location": "import",
488
+ "path": "../types",
489
+ "id": "src/components/modules/types.ts::ModuleServerData"
456
490
  }
457
491
  }
458
492
  },
@@ -460,8 +494,9 @@ export class GxManageModuleReferences {
460
494
  "optional": false,
461
495
  "docs": {
462
496
  "tags": [],
463
- "text": "Callback invoked when an element is right clicked on servers list"
464
- }
497
+ "text": "List of module servers currently cataloged"
498
+ },
499
+ "defaultValue": "[]"
465
500
  },
466
501
  "showServerCommands": {
467
502
  "type": "boolean",
@@ -475,7 +510,7 @@ export class GxManageModuleReferences {
475
510
  "optional": false,
476
511
  "docs": {
477
512
  "tags": [],
478
- "text": "Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version"
513
+ "text": "Allows you to hide the button (...) that executes serverContextMenuCallback"
479
514
  },
480
515
  "attribute": "show-server-commands",
481
516
  "reflect": false,
@@ -485,72 +520,42 @@ export class GxManageModuleReferences {
485
520
  }
486
521
  static get states() {
487
522
  return {
488
- "modulesAll": {},
523
+ "actionInProgress": {},
524
+ "executeActionCallbackInProgress": {},
489
525
  "filteredModules": {},
490
- "selectedModule": {},
491
- "selectedServerId": {},
492
- "selectedModuleAction": {},
493
- "modulesSelectedVersion": {},
494
- "actionCompleted": {},
495
- "closeProgressBar": {},
496
- "progressValue": {},
497
- "progressState": {},
498
526
  "loadingServer": {},
499
- "reRenderCounter": {}
500
- };
501
- }
502
- static get events() {
503
- return [{
504
- "method": "componentDidRenderFirstTime",
505
- "name": "componentDidRenderFirstTime",
506
- "bubbles": true,
507
- "cancelable": true,
508
- "composed": true,
509
- "docs": {
510
- "tags": [],
511
- "text": "This event is emitted once just after the component is fully loaded and the first render() occurs"
512
- },
513
- "complexType": {
514
- "original": "boolean",
515
- "resolved": "boolean",
516
- "references": {}
517
- }
518
- }];
519
- }
520
- static get methods() {
521
- return {
522
- "validate": {
523
- "complexType": {
524
- "signature": "() => Promise<boolean>",
525
- "parameters": [],
526
- "references": {
527
- "Promise": {
528
- "location": "global",
529
- "id": "global::Promise"
530
- }
531
- },
532
- "return": "Promise<boolean>"
533
- },
534
- "docs": {
535
- "text": "validate",
536
- "tags": []
537
- }
538
- }
527
+ "modulesAll": {},
528
+ "progressState": {},
529
+ "progressValue": {},
530
+ "reRenderCounter": {},
531
+ "selectedModuleAction": {},
532
+ "selectedModuleId": {},
533
+ "selectedModuleType": {},
534
+ "selectedServerId": {},
535
+ "selectedServerValue": {},
536
+ "serversComboBoxModel": {},
537
+ "selectedModuleVersions": {}
539
538
  };
540
539
  }
541
540
  static get elementRef() { return "el"; }
542
541
  static get watchers() {
543
542
  return [{
544
543
  "propName": "modulesAll",
545
- "methodName": "modulesAllWatcher"
544
+ "methodName": "modulesAllChanged"
546
545
  }, {
547
- "propName": "loadingServer",
548
- "methodName": "loadingServerHandler"
549
- }, {
550
- "propName": "modulesAll",
551
- "methodName": "onPropValueChange"
546
+ "propName": "servers",
547
+ "methodName": "serversChanged"
548
+ }];
549
+ }
550
+ static get listeners() {
551
+ return [{
552
+ "name": "progressBarClosed",
553
+ "method": "progressBarClosedHandler",
554
+ "target": undefined,
555
+ "capture": false,
556
+ "passive": false
552
557
  }];
553
558
  }
554
559
  }
555
- _GxManageModuleReferences_filterIcon = new WeakMap(), _GxManageModuleReferences_moduleIcon = new WeakMap();
560
+ _GxManageModuleReferences_componentLocale = new WeakMap(), _GxManageModuleReferences_moduleVersionsMap = new WeakMap(), _GxManageModuleReferences_modulesMap = new WeakMap(), _GxManageModuleReferences_modulesJustFetched = new WeakMap(), _GxManageModuleReferences_searchModulesFilterValue = new WeakMap(), _GxManageModuleReferences_modulesGrid = new WeakMap(), _GxManageModuleReferences_progressBarEl = new WeakMap(), _GxManageModuleReferences_segmentedControlModel = new WeakMap(), _GxManageModuleReferences_clearAll = new WeakMap(), _GxManageModuleReferences_filterModules = new WeakMap(), _GxManageModuleReferences_getActionFromCurrentModuleVersion = new WeakMap(), _GxManageModuleReferences_handleFilterChangeHandler = new WeakMap(), _GxManageModuleReferences_handleModuleChange = new WeakMap(), _GxManageModuleReferences_moduleActionHandler = new WeakMap(), _GxManageModuleReferences_moduleTypeButtonClicked = new WeakMap(), _GxManageModuleReferences_moduleVersionsValueChangedHandler = new WeakMap(), _GxManageModuleReferences_onProgress = new WeakMap(), _GxManageModuleReferences_progressBarCloseHandler = new WeakMap(), _GxManageModuleReferences_reloadServer = new WeakMap(), _GxManageModuleReferences_renderEmptyStateModules = new WeakMap(), _GxManageModuleReferences_renderInstalledVersion = new WeakMap(), _GxManageModuleReferences_renderModuleVersions = new WeakMap(), _GxManageModuleReferences_renderModulesGrid = new WeakMap(), _GxManageModuleReferences_renderVersionName = new WeakMap(), _GxManageModuleReferences_renderVersionWarningMessage = new WeakMap(), _GxManageModuleReferences_serverSelectedCallbackHandler = new WeakMap(), _GxManageModuleReferences_serverValueChangedHandler = new WeakMap(), _GxManageModuleReferences_showModuleMenu = new WeakMap();
556
561
  //# sourceMappingURL=manage-module-references.js.map