@genexus/genexus-ide-ui 0.0.109 → 0.0.111

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 (191) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/{gx-ide-add-module-servers.cjs.entry.js → gx-ide-edit-module-server.cjs.entry.js} +6 -6
  3. package/dist/cjs/{gx-ide-add-module-servers.cjs.entry.js.map → gx-ide-edit-module-server.cjs.entry.js.map} +1 -1
  4. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +70 -0
  5. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +142 -63
  9. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +5 -10
  11. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +1 -1
  13. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/{gx-ide-empty-state_2.cjs.entry.js → gxg-card_2.cjs.entry.js} +121 -63
  15. package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -0
  16. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +1 -0
  17. package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gxg-ide-loader.cjs.entry.js +4 -15
  19. package/dist/cjs/gxg-ide-loader.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gxg-tab_4.cjs.entry.js +1 -1
  21. package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/collection-manifest.json +1 -2
  24. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +370 -29
  25. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +4 -99
  26. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js.map +1 -1
  27. package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
  28. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  29. package/dist/collection/components/modules/{edit-module-servers/edit-module-servers.js → edit-module-server/edit-module-server.js} +12 -12
  30. package/dist/collection/components/modules/{add-module-servers/add-module-servers.js.map → edit-module-server/edit-module-server.js.map} +1 -1
  31. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +10 -4
  32. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +43 -22
  33. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +167 -63
  34. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  35. package/dist/collection/components/modules/types.js.map +1 -1
  36. package/dist/components/combo-box.js +2 -1
  37. package/dist/components/combo-box.js.map +1 -1
  38. package/dist/components/container.js +2 -2
  39. package/dist/components/form-checkbox.js +1 -1
  40. package/dist/components/form-radio-group.js +1 -1
  41. package/dist/components/form-text.js +1 -1
  42. package/dist/components/form-textarea.js +1 -1
  43. package/dist/components/form.js +1 -1
  44. package/dist/components/gx-ide-ai-assistant.js +1 -1
  45. package/dist/components/gx-ide-bpm-app-declaration.js +2 -2
  46. package/dist/components/gx-ide-create-kb-from-server.js +2 -2
  47. package/dist/components/gx-ide-dashboard-home.js +2 -2
  48. package/dist/components/gx-ide-data-selector.js +2 -2
  49. package/dist/components/gx-ide-edit-module-server.d.ts +11 -0
  50. package/dist/components/{gx-ide-add-module-servers.js → gx-ide-edit-module-server.js} +13 -13
  51. package/dist/components/{gx-ide-add-module-servers.js.map → gx-ide-edit-module-server.js.map} +1 -1
  52. package/dist/components/gx-ide-empty-state2.js +2 -2
  53. package/dist/components/gx-ide-import-from-design.js +2 -2
  54. package/dist/components/gx-ide-kb-manager-export.js +2 -2
  55. package/dist/components/gx-ide-kb-manager-import.js +3 -3
  56. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  57. package/dist/components/gx-ide-manage-module-references.js +173 -90
  58. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  59. package/dist/components/gx-ide-new-environment.js +2 -2
  60. package/dist/components/gx-ide-new-kb.js +2 -2
  61. package/dist/components/gx-ide-new-object.js +2 -2
  62. package/dist/components/gx-ide-object-selector.js +2 -2
  63. package/dist/components/gx-ide-references.js +2 -2
  64. package/dist/components/gx-ide-share-kb.js +2 -2
  65. package/dist/components/gx-ide-start-page.js +2 -2
  66. package/dist/components/gx-ide-status-buttons2.js +6 -16
  67. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  68. package/dist/components/gx-ide-team-dev-commit.js +2 -2
  69. package/dist/components/gx-ide-team-dev-select-recent-comment.js +2 -2
  70. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
  71. package/dist/components/gx-ide-team-dev-update-to-revision.js +2 -2
  72. package/dist/components/gx-ide-team-dev-update.js +2 -2
  73. package/dist/components/gx-ide-template.js +2 -2
  74. package/dist/components/gx-ide-title.js +1 -1
  75. package/dist/components/gx-ide-top-bar.js +1 -1
  76. package/dist/components/gx-ide-ww-images.js +2 -2
  77. package/dist/components/gxg-container.js +1 -1
  78. package/dist/components/gxg-form-checkbox-group2.js +1 -1
  79. package/dist/components/gxg-menu-slim-list.js +1 -1
  80. package/dist/components/gxg-title.js +1 -1
  81. package/dist/components/gxg-top-state-bar2.js +1 -1
  82. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  83. package/dist/components/ide-loader.js +7 -16
  84. package/dist/components/ide-loader.js.map +1 -1
  85. package/dist/components/list-box.js +1 -1
  86. package/dist/components/list-selector.js +1 -1
  87. package/dist/components/recent-news.js +2 -2
  88. package/dist/components/suggest.js +1 -1
  89. package/dist/components/tabs.js +1 -1
  90. package/dist/components/tabs.js.map +1 -1
  91. package/dist/components/title-editable.js +1 -1
  92. package/dist/components/title.js +31 -32
  93. package/dist/components/title.js.map +1 -1
  94. package/dist/components/title2.js +32 -31
  95. package/dist/components/title2.js.map +1 -1
  96. package/dist/esm/genexus-ide-ui.js +1 -1
  97. package/dist/esm/{gx-ide-add-module-servers.entry.js → gx-ide-edit-module-server.entry.js} +6 -6
  98. package/dist/esm/{gx-ide-add-module-servers.entry.js.map → gx-ide-edit-module-server.entry.js.map} +1 -1
  99. package/dist/esm/gx-ide-empty-state.entry.js +66 -0
  100. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -0
  101. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  102. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  103. package/dist/esm/gx-ide-manage-module-references.entry.js +142 -63
  104. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  105. package/dist/esm/gx-ide-status-buttons.entry.js +5 -10
  106. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -1
  107. package/dist/esm/gxg-buttons-container_2.entry.js +1 -1
  108. package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -1
  109. package/dist/esm/{gx-ide-empty-state_2.entry.js → gxg-card_2.entry.js} +122 -64
  110. package/dist/{cjs/gx-ide-empty-state_2.cjs.entry.js.map → esm/gxg-card_2.entry.js.map} +1 -1
  111. package/dist/esm/gxg-combo-box_2.entry.js +1 -0
  112. package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
  113. package/dist/esm/gxg-ide-loader.entry.js +4 -15
  114. package/dist/esm/gxg-ide-loader.entry.js.map +1 -1
  115. package/dist/esm/gxg-tab_4.entry.js +1 -1
  116. package/dist/esm/gxg-tab_4.entry.js.map +1 -1
  117. package/dist/esm/loader.js +1 -1
  118. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -3
  119. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  120. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  121. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +10 -4
  122. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js → p-00704c36.entry.js} +6 -6
  123. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js.map → p-00704c36.entry.js.map} +1 -1
  124. package/dist/genexus-ide-ui/p-5ca7da19.entry.js +94 -0
  125. package/dist/genexus-ide-ui/p-5ca7da19.entry.js.map +1 -0
  126. package/dist/genexus-ide-ui/{p-41ac8e60.entry.js → p-5fe20f47.entry.js} +2 -2
  127. package/dist/genexus-ide-ui/p-5fe20f47.entry.js.map +1 -0
  128. package/dist/genexus-ide-ui/{p-adaf7aff.entry.js → p-713ad05d.entry.js} +185 -109
  129. package/dist/genexus-ide-ui/p-713ad05d.entry.js.map +1 -0
  130. package/dist/genexus-ide-ui/{p-40121554.entry.js → p-9f9fda93.entry.js} +172 -120
  131. package/dist/genexus-ide-ui/p-9f9fda93.entry.js.map +1 -0
  132. package/dist/genexus-ide-ui/{p-ee9f4e20.entry.js → p-bc04fcaa.entry.js} +7 -15
  133. package/dist/genexus-ide-ui/p-bc04fcaa.entry.js.map +1 -0
  134. package/dist/genexus-ide-ui/{p-5a5d3e19.entry.js → p-c9cceb40.entry.js} +1 -4
  135. package/dist/genexus-ide-ui/p-c9cceb40.entry.js.map +1 -0
  136. package/dist/genexus-ide-ui/{p-e9e4482b.entry.js → p-decf86d4.entry.js} +114 -127
  137. package/dist/genexus-ide-ui/p-decf86d4.entry.js.map +1 -0
  138. package/dist/genexus-ide-ui/{p-045a084f.entry.js → p-f37ec5b8.entry.js} +2 -1
  139. package/dist/genexus-ide-ui/p-f37ec5b8.entry.js.map +1 -0
  140. package/dist/genexus-ide-ui/{p-a46794f4.entry.js → p-f91c432e.entry.js} +3 -3
  141. package/dist/genexus-ide-ui/{p-a46794f4.entry.js.map → p-f91c432e.entry.js.map} +1 -1
  142. package/dist/node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css +3 -0
  143. package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +1 -0
  144. package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +32 -34
  145. package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +0 -20
  146. package/dist/types/components/modules/{add-module-servers/add-module-servers.d.ts → edit-module-server/edit-module-server.d.ts} +2 -2
  147. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +20 -8
  148. package/dist/types/components/modules/types.d.ts +5 -4
  149. package/dist/types/components.d.ts +85 -199
  150. package/package.json +3 -3
  151. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js +0 -98
  152. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js.map +0 -1
  153. package/dist/cjs/gxg-title-editable.cjs.entry.js +0 -128
  154. package/dist/cjs/gxg-title-editable.cjs.entry.js.map +0 -1
  155. package/dist/collection/components/modules/add-module-servers/add-module-servers.js +0 -251
  156. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +0 -11
  157. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +0 -3
  158. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +0 -3
  159. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.css +0 -560
  160. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js.map +0 -1
  161. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +0 -11
  162. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +0 -3
  163. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +0 -3
  164. package/dist/components/gx-ide-add-module-servers.d.ts +0 -11
  165. package/dist/components/gx-ide-edit-module-servers.d.ts +0 -11
  166. package/dist/components/gx-ide-edit-module-servers.js +0 -186
  167. package/dist/components/gx-ide-edit-module-servers.js.map +0 -1
  168. package/dist/esm/gx-ide-edit-module-servers.entry.js +0 -94
  169. package/dist/esm/gx-ide-edit-module-servers.entry.js.map +0 -1
  170. package/dist/esm/gx-ide-empty-state_2.entry.js.map +0 -1
  171. package/dist/esm/gxg-title-editable.entry.js +0 -124
  172. package/dist/esm/gxg-title-editable.entry.js.map +0 -1
  173. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +0 -11
  174. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +0 -3
  175. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +0 -3
  176. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +0 -11
  177. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +0 -3
  178. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +0 -3
  179. package/dist/genexus-ide-ui/p-045a084f.entry.js.map +0 -1
  180. package/dist/genexus-ide-ui/p-36544e00.entry.js +0 -138
  181. package/dist/genexus-ide-ui/p-36544e00.entry.js.map +0 -1
  182. package/dist/genexus-ide-ui/p-40121554.entry.js.map +0 -1
  183. package/dist/genexus-ide-ui/p-41ac8e60.entry.js.map +0 -1
  184. package/dist/genexus-ide-ui/p-5a5d3e19.entry.js.map +0 -1
  185. package/dist/genexus-ide-ui/p-adaf7aff.entry.js.map +0 -1
  186. package/dist/genexus-ide-ui/p-b7d0697f.entry.js +0 -138
  187. package/dist/genexus-ide-ui/p-b7d0697f.entry.js.map +0 -1
  188. package/dist/genexus-ide-ui/p-e9e4482b.entry.js.map +0 -1
  189. package/dist/genexus-ide-ui/p-ee9f4e20.entry.js.map +0 -1
  190. package/dist/types/components/modules/edit-module-servers/edit-module-servers.d.ts +0 -60
  191. /package/dist/collection/components/modules/{add-module-servers/add-module-servers.css → edit-module-server/edit-module-server.css} +0 -0
@@ -6,9 +6,28 @@ export class GxManageModuleReferences {
6
6
  constructor() {
7
7
  this.renderedFirstTime = false;
8
8
  // 9.LOCAL METHODS //
9
+ this.updateModulesSelectedVersion = (modulesAll) => {
10
+ if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {
11
+ // the server has changed. clear the updateModulesSelectedVersion
12
+ this.modulesSelectedVersion.clear();
13
+ modulesAll.forEach(module => {
14
+ this.modulesSelectedVersion.set(module.id, module.versions[module.versions.length - 1].id);
15
+ });
16
+ }
17
+ else {
18
+ // the server has't changed. only add the module to the map, if it is a new module.
19
+ modulesAll.forEach(module => {
20
+ const newModule = this.modulesSelectedVersion.get(module.id) === undefined;
21
+ if (newModule) {
22
+ this.modulesSelectedVersion.set(module.id, module.versions[0].id);
23
+ }
24
+ });
25
+ }
26
+ this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;
27
+ };
9
28
  this.getActionFromCurrentModuleVersion = () => {
10
- const selected = this.selectedModule.versions.find(({ id }) => id === this.selectedModule.currentVersion);
11
- return selected.action;
29
+ const action = this.getModuleData(this.selectedModule, "action");
30
+ return action || "install";
12
31
  };
13
32
  /**
14
33
  * Callback invoked to get the progress when module is performing an action
@@ -23,25 +42,35 @@ export class GxManageModuleReferences {
23
42
  /**
24
43
  * Used for changing the selected module
25
44
  */
26
- this.handleModuleChange = (row) => {
27
- const foundModule = this.modulesAll.find(item => item.id === row.rowsId[0]);
28
- this.selectedModule = foundModule;
45
+ this.handleModuleChange = (event) => {
46
+ const selectedModuleId = event.detail.rowsId[0];
47
+ const foundModule = this.modulesAll.find(item => item.id === selectedModuleId);
48
+ if (foundModule) {
49
+ this.selectedModule = foundModule;
50
+ }
29
51
  };
30
52
  /**
31
53
  * Change the server selected value in response to callbackServerSelected callback
32
54
  */
33
55
  this.serverSelectedCallbackHandler = async (id) => {
34
- const resolvedObjects = await this.serverSelectedCallback(id);
35
- this.selectedServerId = id;
36
- this.modulesAll = [...resolvedObjects];
37
- this.filterModulesByType("browse");
38
- this.selectedModule = this.filteredModules[0];
56
+ if (this.serverSelectedCallback) {
57
+ this.loadingServer = true;
58
+ const resolvedObjects = await this.serverSelectedCallback(id);
59
+ this.selectedServerId = id;
60
+ this.modulesAll = [...resolvedObjects];
61
+ this.filterModulesByType("browse");
62
+ this.selectedModule = this.filteredModules[0];
63
+ this.loadingServer = false;
64
+ }
39
65
  };
40
66
  this.handleFilterChange = (value) => {
41
67
  const trimmedValue = value.trim();
42
68
  if (trimmedValue) {
43
69
  const lowerCaseValue = trimmedValue.toLowerCase();
44
- this.filteredModules = this.modulesAll.filter(module => module.name.toLowerCase().includes(lowerCaseValue));
70
+ this.filteredModules = this.modulesAll.filter(module => {
71
+ const selectedVersionName = this.getModuleData(module, "name");
72
+ return selectedVersionName === null || selectedVersionName === void 0 ? void 0 : selectedVersionName.toLowerCase().includes(lowerCaseValue);
73
+ });
45
74
  }
46
75
  else {
47
76
  this.filteredModules = this.modulesAll;
@@ -51,8 +80,12 @@ export class GxManageModuleReferences {
51
80
  * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
52
81
  */
53
82
  this.executeActionCallbackHandler = async (module) => {
54
- const actionCompleted = await this.executeActionCallback(this.selectedServerId, module.id, this.getActionFromCurrentModuleVersion(), this.onProgress);
55
- this.actionCompleted = actionCompleted;
83
+ if (this.executeActionCallback) {
84
+ console.log("hey!");
85
+ const moduleSelectedVersionId = this.modulesSelectedVersion.get(module.id);
86
+ const actionCompleted = await this.executeActionCallback(this.selectedServerId, module.id, moduleSelectedVersionId, this.getActionFromCurrentModuleVersion(), this.onProgress);
87
+ this.actionCompleted = actionCompleted;
88
+ }
56
89
  };
57
90
  this.filterModulesByType = (type) => {
58
91
  // browse
@@ -62,42 +95,16 @@ export class GxManageModuleReferences {
62
95
  // installed
63
96
  else if (type === "installed") {
64
97
  this.filteredModules = this.modulesAll.filter((module) => {
65
- const versionData = module.versions.find(version => {
66
- return version.id === module.currentVersion;
67
- });
68
- return (versionData &&
69
- (versionData.action === "restore" || versionData.action === "update"));
98
+ // if the module has a currentVersion (not undefined) it means it is installed
99
+ return module.currentVersion;
70
100
  });
71
101
  }
72
102
  else if (type === "updates") {
73
103
  this.filteredModules = this.modulesAll.filter((module) => {
74
- const versionData = module.versions.find(version => {
75
- return version.id === module.currentVersion;
76
- });
77
- return versionData && versionData.action === "update";
104
+ return module.versions.find(version => version.action === "update");
78
105
  });
79
106
  }
80
107
  };
81
- this.moduleMenuSelectionChangedHandler = async (e) => {
82
- const itemId = e.detail[0].itemId;
83
- if (itemId === "add") {
84
- if (this.addServerCallback) {
85
- await this.addServerCallback();
86
- }
87
- }
88
- else if (itemId === "edit") {
89
- console.log(this.modulesList.value);
90
- }
91
- else if (itemId === "upload") {
92
- console.log("upload");
93
- }
94
- };
95
- this.renderMenu = () => {
96
- return (h("gx-ide-list-selector", { onSelectionChanged: this.moduleMenuSelectionChangedHandler, class: "modules__menu", type: "single-selection", listName: "module-menu", ellipsis: true, style: {
97
- left: this.moduleMenuLeftPosition,
98
- top: this.moduleMenuTopPosition
99
- } }, h("gx-ide-list-selector-item", { itemId: "add", itemValue: "Add", icon: "gemini-tools/add" }), h("gx-ide-list-selector-item", { itemId: "edit", itemValue: "Edit", icon: "gemini-tools/edit" }), h("gx-ide-list-selector-item", { itemId: "upload", itemValue: "Upload from file", icon: "gemini-tools/file" })));
100
- };
101
108
  this.showModuleMenu = async (e) => {
102
109
  if (this.serverContextMenuCallback) {
103
110
  const buttonBoundingClientRect = e.target.getBoundingClientRect();
@@ -108,35 +115,87 @@ export class GxManageModuleReferences {
108
115
  });
109
116
  }
110
117
  };
118
+ this.getModuleData = (module, dataType) => {
119
+ const selectedVersionId = this.modulesSelectedVersion.get(module.id);
120
+ let selectedVersion;
121
+ let selectedVersionData;
122
+ if (selectedVersionId) {
123
+ selectedVersion = module.versions.find(version => version.id === selectedVersionId);
124
+ }
125
+ if (selectedVersion) {
126
+ selectedVersionData = selectedVersion[dataType];
127
+ }
128
+ return selectedVersionData;
129
+ };
111
130
  this.renderModulesGrid = () => {
112
- return (h("gxg-grid", { noBorder: true, fullHeight: true }, h("ch-grid", { rowSelectionMode: "single", part: "ch-grid-pending-commits", class: "no-border",
113
- /* TODO: El error es aqui ya que se esta enviando el valor del row Id correspondiente a la primera carga del grid con el primer server */
114
- onSelectionChanged: (row) => this.handleModuleChange(row.detail) }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, size: "min-content" }), h("ch-grid-column", { settingable: false }), h("ch-grid-column", { settingable: false, size: "min-content" })), this.filteredModules.map((item) => (h("ch-grid-row", { rowid: item.id, key: item.id, selected: this.selectedModule && this.selectedModule.id === item.id }, h("ch-grid-cell", null, h("gxg-icon", { type: "objects/module", color: "auto", size: "small" })), h("ch-grid-cell", { class: "grid-cell-module__info" }, h("span", { class: "grid-cell-module__name" }, item.name), h("span", { class: "grid-cell-module__description" }, item.description)), h("ch-grid-cell", null, this.selectedModule && this.selectedModule.id === item.id ? (h("gxg-button", { disabled: !this.actionCompleted, fit: true, part: "module-action", onClick: () => {
131
+ return (h("gxg-grid", { noBorder: true, fullHeight: true }, h("ch-grid", { rowSelectionMode: "single", part: "ch-grid-pending-commits", class: "servers-detail no-border", onSelectionChanged: this.handleModuleChange }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, size: "min-content" }), h("ch-grid-column", { settingable: false }), h("ch-grid-column", { settingable: false, size: "min-content" })), this.filteredModules.map((module) => (h("ch-grid-row", { rowid: module.id, key: module.id, selected: this.selectedModule && this.selectedModule.id === module.id }, h("ch-grid-cell", null, h("gxg-icon", { type: "objects/module", color: this.moduleVersionIconColor(module), size: "small" })), h("ch-grid-cell", { class: "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-grid-cell", null, this.selectedModule && this.selectedModule.id === module.id ? (h("gxg-button", { disabled: !this.actionCompleted ||
132
+ this.getModuleData(module, "action") === "incompatible" ||
133
+ this.getModuleData(module, "action") === "not-installable", fit: true, part: "module-action", onClick: () => {
115
134
  this.actionCompleted = false;
116
135
  this.closeProgressBar = false;
117
- this.executeActionCallbackHandler(item);
136
+ this.executeActionCallbackHandler(module);
118
137
  } }, this.getActionFromCurrentModuleVersion())) : null)))))));
119
138
  };
120
- this.moduleIconColor = () => {
121
- return this.getActionFromCurrentModuleVersion() === "install"
122
- ? "mercury-primary-disabled"
123
- : "mercury-primary";
139
+ this.renderEmptyStateModules = () => {
140
+ return (h("gx-ide-empty-state", { stateIcon: "mercury/filters", stateTitle: this._componentLocale.modules.noModulesFilter }));
141
+ };
142
+ this.moduleVersionIconColor = (module) => {
143
+ const moduleAction = this.getModuleData(module, "action");
144
+ if (moduleAction === "not-installable" || moduleAction === "incompatible") {
145
+ return "warning";
146
+ }
147
+ else if (moduleAction === "install") {
148
+ return "mercury-primary-disabled";
149
+ }
150
+ else {
151
+ return "mercury-primary";
152
+ }
124
153
  };
125
154
  /* module details/information renders*/
126
155
  this.renderModuleName = () => {
127
- return (h("gxg-title", { part: "module-info__name", type: "title-05" }, h("div", { class: "module-info__name" }, h("gxg-icon", { type: "objects/module", color: this.moduleIconColor() }), this.selectedModule.name)));
156
+ return (h("gxg-title", { part: "module-info__name", type: "title-05" }, h("div", { class: "module-info__name" }, h("gxg-icon", { type: "objects/module", color: this.moduleVersionIconColor(this.selectedModule) }), this.getModuleData(this.selectedModule, "name"))));
157
+ };
158
+ this.renderModuleAlertMessage = () => {
159
+ const alertMessage = this.getModuleData(this.selectedModule, "alertMessage");
160
+ if (alertMessage) {
161
+ return h("p", { class: "module-info__alert-message" }, alertMessage);
162
+ }
128
163
  };
129
164
  this.renderModuleAction = () => {
130
- return this.getActionFromCurrentModuleVersion() === "install" ? (h("div", { class: "module-info__action-container" }, h("gxg-text", { part: "not-installed" }, this._componentLocale.modulesInformation.moduleProperties
131
- .notInstalled))) : (h("div", { class: "module-info__action-container module-info__action-container--installed" }, h("gxg-text", { part: "installed" }, ` ${this._componentLocale.modulesInformation.moduleProperties.installedVersion} : ${this.selectedModule.currentVersion}`)));
165
+ const action = this.getActionFromCurrentModuleVersion();
166
+ let actionDescription;
167
+ let cssClass = "module-info__action-container";
168
+ if (action === "restore" || action === "update") {
169
+ actionDescription =
170
+ this._componentLocale.modulesInformation.moduleProperties.installed;
171
+ cssClass += ` module-info__action-container--installed`;
172
+ }
173
+ else if (action === "incompatible" || action === "not-installable") {
174
+ actionDescription = "Can not be installed";
175
+ }
176
+ else {
177
+ actionDescription =
178
+ this._componentLocale.modulesInformation.moduleProperties.notInstalled;
179
+ }
180
+ return (h("div", { class: cssClass }, h("gxg-text", { part: "module-info__action" }, actionDescription)));
132
181
  };
133
182
  this.moduleVersionsValueChangedHandler = (e) => {
134
- const moduleId = e.detail;
135
- this.selectedModule = Object.assign(Object.assign({}, this.selectedModule), { currentVersion: moduleId });
183
+ const versionId = e.detail;
184
+ this.updateSelectedModuleVersion(versionId);
185
+ };
186
+ this.moduleVersionsItemChangedHandler = (e) => {
187
+ const versionId = e.detail.value;
188
+ this.updateSelectedModuleVersion(versionId);
189
+ };
190
+ this.updateSelectedModuleVersion = (versionId) => {
191
+ if (versionId) {
192
+ this.selectedModule = Object.assign(Object.assign({}, this.selectedModule), { currentVersion: versionId });
193
+ this.modulesSelectedVersion.set(this.selectedModule.id, versionId);
194
+ }
136
195
  };
137
196
  this.renderModuleVersions = () => {
138
- return (h("div", { part: "available-versions" }, h("gxg-combo-box", { id: "versions-combo-box", "disable-filter": true, value: this.selectedModule.versions[0]["id"], part: "module-versions", "display-validation-styles": true, "display-validation-message": true, label: this._componentLocale.modulesInformation.moduleProperties
139
- .availableVersions, labelPosition: "start", centerLabel: true, ref: el => (this.modulesList = el), onValueChanged: this.moduleVersionsValueChangedHandler }, this.selectedModule.versions.map(item => (h("gxg-combo-box-item", { value: item.id, onItemSelected: () => (this.selectedModule = Object.assign(Object.assign({}, this.selectedModule), { currentVersion: item.id })) }, item.id))))));
197
+ 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
198
+ .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))))));
140
199
  };
141
200
  this.selectedButtonChangedHandler = (e) => {
142
201
  const type = e.detail.replace("btn-", "");
@@ -169,18 +228,31 @@ export class GxManageModuleReferences {
169
228
  progress: 0,
170
229
  state: "in-progress"
171
230
  };
231
+ this.modulesSelectedVersion = new Map();
172
232
  this.actionCompleted = true;
173
233
  this.closeProgressBar = true;
174
234
  this.progressValue = 0;
175
235
  this.progressState = "in-progress";
236
+ this.loadingServer = false;
237
+ this.displayTitle = false;
176
238
  this.servers = [];
177
239
  this.serverSelectedCallback = undefined;
178
240
  this.executeActionCallback = undefined;
179
241
  this.addServerCallback = undefined;
180
242
  this.serverContextMenuCallback = undefined;
181
243
  }
244
+ modulesAllWatcher(modulesAll) {
245
+ this.updateModulesSelectedVersion(modulesAll);
246
+ }
247
+ loadingServerHandler(loading) {
248
+ if (loading) {
249
+ this.loaderEl.show = true;
250
+ }
251
+ else {
252
+ this.loaderEl.show = false;
253
+ }
254
+ }
182
255
  // 6.COMPONENT LIFECYCLE EVENTS //
183
- async componentDidLoad() { }
184
256
  componentDidRender() {
185
257
  if (!this.renderedFirstTime) {
186
258
  this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
@@ -189,6 +261,8 @@ export class GxManageModuleReferences {
189
261
  }
190
262
  async componentWillLoad() {
191
263
  this._componentLocale = await Locale.getComponentStrings(this.el);
264
+ }
265
+ async componentDidLoad() {
192
266
  await this.serverSelectedCallbackHandler(this.servers[0].id);
193
267
  }
194
268
  // 7.LISTENERS //
@@ -206,10 +280,14 @@ export class GxManageModuleReferences {
206
280
  render() {
207
281
  return (h(Host, { class: {
208
282
  "gx-ide-component": true
209
- } }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noAboveFooterPadding: true, noBorderAboveFooter: this.closeProgressBar, noContentPadding: true, part: "servers", containerTitle: this._componentLocale.componentName }, 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)))), h("span", { class: "modules__menu-container" }, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.showModuleMenu }), this.renderMenu()))), h("gxg-form-text", { label: this._componentLocale.modules.searchModules, labelPosition: "above", centerLabel: false, onValueChanged: (event) => {
283
+ } }, 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)))), h("span", { class: "modules__menu-container" }, h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/show-more-horizontal", onClick: this.showModuleMenu }))))), 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: (event) => {
210
284
  this.handleFilterChange(event.detail);
211
- } }), h("gxg-buttons-container", { reduced: true, fullWidth: true, class: "modules__browser", onSelectedButtonChanged: this.selectedButtonChangedHandler }, h("gxg-button", { id: "btn-browse", selected: true }, this._componentLocale.modules.tabs.browse), h("gxg-button", { id: "btn-installed" }, this._componentLocale.modules.tabs.installed), h("gxg-button", { id: "btn-updates" }, this._componentLocale.modules.tabs.updates))), this.renderModulesGrid()), this.selectedModule ? (h("div", { class: "module-info" }, h("header", { class: "module-info__header" }, this.renderModuleName(), this.renderModuleAction(), this.renderModuleVersions()), h("div", { class: "module-info__properties gxg-scrollbar" }, renderModuleDataProperties(this.selectedModule.properties)))) : null), h("gxg-top-state-bar", { slot: "footer-above", part: "progress-bar", stateType: this.progressState, noBorder: true, caption: this.selectedModuleAction.message ||
212
- this._componentLocale.progressDefaultCaption, progress: this.progressValue, active: !this.actionCompleted || !this.closeProgressBar, autoClose: false, withClose: true, closedCallback: this.progressBarCloseHandler })))));
285
+ }, 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
286
+ .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
287
+ ? this.renderModulesGrid()
288
+ : this.renderEmptyStateModules()))), this.selectedModule ? (h("div", { class: "module-info" }, h("header", { class: "module-info__header" }, this.renderModuleName(), this.renderModuleAlertMessage(), this.renderModuleAction(), this.renderModuleVersions()), h("div", { class: "module-info__properties gxg-scrollbar" }, renderModuleDataProperties(this.getModuleData(this.selectedModule, "properties"))))) : (h("gx-ide-empty-state", { class: "recent-objects__empty-state", stateIcon: "objects/module", stateTitle: this._componentLocale.modulesInformation.emptyState.title, stateDescription: this._componentLocale.modulesInformation.emptyState
289
+ .description }))), h("gxg-top-state-bar", { slot: "footer-above", part: "progress-bar", stateType: this.progressState, noBorder: true, caption: this.selectedModuleAction.message ||
290
+ this._componentLocale.progressBar.defaultCaption, progress: this.progressValue, active: !this.actionCompleted || !this.closeProgressBar, autoClose: false, withClose: true, 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" })));
213
291
  }
214
292
  static get is() { return "gx-ide-manage-module-references"; }
215
293
  static get encapsulation() { return "shadow"; }
@@ -226,6 +304,24 @@ export class GxManageModuleReferences {
226
304
  static get assetsDirs() { return ["gx-ide-assets/manage-module-references"]; }
227
305
  static get properties() {
228
306
  return {
307
+ "displayTitle": {
308
+ "type": "boolean",
309
+ "mutable": false,
310
+ "complexType": {
311
+ "original": "false",
312
+ "resolved": "boolean",
313
+ "references": {}
314
+ },
315
+ "required": false,
316
+ "optional": false,
317
+ "docs": {
318
+ "tags": [],
319
+ "text": "If true it displays the component title on the header"
320
+ },
321
+ "attribute": "display-title",
322
+ "reflect": false,
323
+ "defaultValue": "false"
324
+ },
229
325
  "servers": {
230
326
  "type": "unknown",
231
327
  "mutable": false,
@@ -274,7 +370,7 @@ export class GxManageModuleReferences {
274
370
  "mutable": false,
275
371
  "complexType": {
276
372
  "original": "ExecuteActionCallback",
277
- "resolved": "(serverId: string, moduleId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: topStateBarType) => void) => Promise<boolean>",
373
+ "resolved": "(serverId: string, moduleId: string, moduleVersionId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: topStateBarType) => void) => Promise<boolean>",
278
374
  "references": {
279
375
  "ExecuteActionCallback": {
280
376
  "location": "local",
@@ -341,10 +437,12 @@ export class GxManageModuleReferences {
341
437
  "selectedModule": {},
342
438
  "selectedServerId": {},
343
439
  "selectedModuleAction": {},
440
+ "modulesSelectedVersion": {},
344
441
  "actionCompleted": {},
345
442
  "closeProgressBar": {},
346
443
  "progressValue": {},
347
- "progressState": {}
444
+ "progressState": {},
445
+ "loadingServer": {}
348
446
  };
349
447
  }
350
448
  static get events() {
@@ -389,6 +487,12 @@ export class GxManageModuleReferences {
389
487
  static get elementRef() { return "el"; }
390
488
  static get watchers() {
391
489
  return [{
490
+ "propName": "modulesAll",
491
+ "methodName": "modulesAllWatcher"
492
+ }, {
493
+ "propName": "loadingServer",
494
+ "methodName": "loadingServerHandler"
495
+ }, {
392
496
  "propName": "modulesAll",
393
497
  "methodName": "onPropValueChange"
394
498
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"manage-module-references.js","sourceRoot":"","sources":["../../../../src/components/modules/manage-module-references/manage-module-references.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ItemData } from \"../../../components/_helpers/list-selector/list-selector-item/list-selector-item\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private modulesList!: HTMLGxgComboBoxElement;\n private moduleMenuLeftPosition: string;\n private moduleMenuTopPosition: string;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * 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.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentDidLoad() {}\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n await this.serverSelectedCallbackHandler(this.servers[0].id);\n }\n\n // 7.LISTENERS //\n\n @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const selected = this.selectedModule.versions.find(\n ({ id }) => id === this.selectedModule.currentVersion\n );\n return selected.action;\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (row: any) => {\n const foundModule = this.modulesAll.find(item => item.id === row.rowsId[0]);\n this.selectedModule = foundModule;\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any) => {\n const resolvedObjects = await this.serverSelectedCallback(id);\n\n this.selectedServerId = id;\n\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n };\n private handleFilterChange = (value: string) => {\n const trimmedValue = value.trim();\n\n if (trimmedValue) {\n const lowerCaseValue = trimmedValue.toLowerCase();\n this.filteredModules = this.modulesAll.filter(module =>\n module.name.toLowerCase().includes(lowerCaseValue)\n );\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n private executeActionCallbackHandler = async (module: ModuleData) => {\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n this.actionCompleted = actionCompleted;\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n const versionData: ModuleVersionData = module.versions.find(version => {\n return version.id === module.currentVersion;\n });\n return (\n versionData &&\n (versionData.action === \"restore\" || versionData.action === \"update\")\n );\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n const versionData: ModuleVersionData = module.versions.find(version => {\n return version.id === module.currentVersion;\n });\n return versionData && versionData.action === \"update\";\n });\n }\n };\n\n private moduleMenuSelectionChangedHandler = async (\n e: CustomEvent<ItemData[]>\n ) => {\n const itemId = e.detail[0].itemId;\n if (itemId === \"add\") {\n if (this.addServerCallback) {\n await this.addServerCallback();\n }\n } else if (itemId === \"edit\") {\n console.log(this.modulesList.value);\n } else if (itemId === \"upload\") {\n console.log(\"upload\");\n }\n };\n\n private renderMenu = () => {\n return (\n <gx-ide-list-selector\n onSelectionChanged={this.moduleMenuSelectionChangedHandler}\n class=\"modules__menu\"\n type=\"single-selection\"\n listName=\"module-menu\"\n ellipsis\n style={{\n left: this.moduleMenuLeftPosition,\n top: this.moduleMenuTopPosition\n }}\n >\n <gx-ide-list-selector-item\n itemId=\"add\"\n itemValue=\"Add\"\n icon=\"gemini-tools/add\"\n ></gx-ide-list-selector-item>\n <gx-ide-list-selector-item\n itemId=\"edit\"\n itemValue=\"Edit\"\n icon=\"gemini-tools/edit\"\n ></gx-ide-list-selector-item>\n <gx-ide-list-selector-item\n itemId=\"upload\"\n itemValue=\"Upload from file\"\n icon=\"gemini-tools/file\"\n ></gx-ide-list-selector-item>\n </gx-ide-list-selector>\n );\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private renderModulesGrid = (): Element => {\n return (\n <gxg-grid noBorder fullHeight>\n <ch-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"no-border\"\n /* TODO: El error es aqui ya que se esta enviando el valor del row Id correspondiente a la primera carga del grid con el primer server */\n onSelectionChanged={(row: any) => this.handleModuleChange(row.detail)}\n >\n <ch-grid-columnset>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n\n <ch-grid-column settingable={false}></ch-grid-column>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n </ch-grid-columnset>\n\n {this.filteredModules.map((item: ModuleData) => (\n <ch-grid-row\n rowid={item.id}\n key={item.id}\n selected={\n this.selectedModule && this.selectedModule.id === item.id\n }\n >\n <ch-grid-cell>\n <gxg-icon\n type=\"objects/module\"\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </ch-grid-cell>\n <ch-grid-cell class=\"grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">{item.name}</span>\n <span class=\"grid-cell-module__description\">\n {item.description}\n </span>\n </ch-grid-cell>\n\n <ch-grid-cell>\n {this.selectedModule && this.selectedModule.id === item.id ? (\n <gxg-button\n disabled={!this.actionCompleted}\n fit\n part=\"module-action\"\n onClick={() => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(item);\n }}\n >\n {this.getActionFromCurrentModuleVersion()}\n </gxg-button>\n ) : null}\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n private moduleIconColor = (): Color => {\n return this.getActionFromCurrentModuleVersion() === \"install\"\n ? \"mercury-primary-disabled\"\n : \"mercury-primary\";\n };\n\n /* module details/information renders*/\n private renderModuleName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleIconColor()}\n ></gxg-icon>\n {this.selectedModule.name}\n </div>\n </gxg-title>\n );\n };\n private renderModuleAction = () => {\n return this.getActionFromCurrentModuleVersion() === \"install\" ? (\n <div class=\"module-info__action-container\">\n <gxg-text part=\"not-installed\">\n {\n this._componentLocale.modulesInformation.moduleProperties\n .notInstalled\n }\n </gxg-text>\n </div>\n ) : (\n <div class=\"module-info__action-container module-info__action-container--installed\">\n <gxg-text part=\"installed\">\n {` ${this._componentLocale.modulesInformation.moduleProperties.installedVersion} : ${this.selectedModule.currentVersion}`}\n </gxg-text>\n </div>\n );\n };\n\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const moduleId = e.detail;\n this.selectedModule = {\n ...this.selectedModule,\n currentVersion: moduleId\n };\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.selectedModule.versions[0][\"id\"]}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n ref={el => (this.modulesList = el as HTMLGxgComboBoxElement)}\n onValueChanged={this.moduleVersionsValueChangedHandler}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={() =>\n (this.selectedModule = {\n ...this.selectedModule,\n currentVersion: item.id\n })\n }\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId);\n };\n\n private progressBarCloseHandler = () => {\n setTimeout(() => {\n this.actionCompleted = true;\n this.closeProgressBar = true;\n // reset\n this.progressValue = 0;\n this.progressState = \"in-progress\";\n }, 400);\n // delay to force the footer line disappear after the top-state-bar has been closed.\n };\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host\n class={{\n \"gx-ide-component\": true\n }}\n >\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noAboveFooterPadding\n noBorderAboveFooter={this.closeProgressBar}\n noContentPadding\n part=\"servers\"\n containerTitle={this._componentLocale.componentName}\n >\n {/* Servers*/}\n <main class=\"main\">\n <div class=\"modules__container\">\n <header class=\"modules__header\">\n <div class=\"modules__combo-container\">\n <gxg-label>\n {this._componentLocale.modules.selectServer}\n </gxg-label>\n <div class=\"modules__combo\">\n <gxg-combo-box\n disableFilter\n onValueChanged={this.serverValueChangedHandler}\n >\n {this.servers.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.serverItemSelectedHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n <span class=\"modules__menu-container\">\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.showModuleMenu}\n ></gxg-button>\n {this.renderMenu()}\n </span>\n </div>\n </div>\n <gxg-form-text\n label={this._componentLocale.modules.searchModules}\n labelPosition=\"above\"\n centerLabel={false}\n onValueChanged={(event: any) => {\n this.handleFilterChange(event.detail);\n }}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={this.selectedButtonChangedHandler}\n >\n <gxg-button id=\"btn-browse\" selected>\n {this._componentLocale.modules.tabs.browse}\n </gxg-button>\n <gxg-button id=\"btn-installed\">\n {this._componentLocale.modules.tabs.installed}\n </gxg-button>\n <gxg-button id=\"btn-updates\">\n {this._componentLocale.modules.tabs.updates}\n </gxg-button>\n </gxg-buttons-container>\n </header>\n\n {/* modules grid*/}\n {this.renderModulesGrid()}\n </div>\n\n {/* Module Information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderModuleName()}\n {this.renderModuleAction()}\n {this.renderModuleVersions()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(this.selectedModule.properties)}\n </div>\n </div>\n ) : null}\n </main>\n\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressDefaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n autoClose={false}\n withClose\n closedCallback={this.progressBarCloseHandler}\n ></gxg-top-state-bar>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: topStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (id: string) => Promise<ModuleData[]>;\n\nexport type AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"]}
1
+ {"version":3,"file":"manage-module-references.js","sourceRoot":"","sources":["../../../../src/components/modules/manage-module-references/manage-module-references.tsx"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,OAAO,EAEP,MAAM,EACN,KAAK,EACL,KAAK,EACN,MAAM,eAAe,CAAC;AAcvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAShD,MAAM,OAAO,wBAAwB;;QAO3B,sBAAiB,GAAG,KAAK,CAAC;QAmHlC,qBAAqB;QAEb,iCAA4B,GAAG,CAAC,UAAwB,EAAE,EAAE;YAClE,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,kCAAkC,EAAE;gBACrE,iEAAiE;gBACjE,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;gBACpC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC1B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC7B,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,mFAAmF;gBACnF,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC1B,MAAM,SAAS,GACb,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;oBAC3D,IAAI,SAAS,EAAE;wBACb,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;qBACnE;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClE,CAAC,CAAC;QAEM,sCAAiC,GAAG,GAAqB,EAAE;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAC/B,IAAI,CAAC,cAAc,EACnB,QAAQ,CACW,CAAC;YACtB,OAAO,MAAM,IAAI,SAAS,CAAC;QAC7B,CAAC,CAAC;QAEF;;WAEG;QACK,eAAU,GAAG,CACnB,OAAe,EACf,QAAgB,EAChB,KAAsB,EAChB,EAAE;YACR,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,oBAAoB,qBAAQ,IAAI,CAAE,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;YACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QACvD,CAAC,CAAC;QAEF,sBAAsB;QAEtB;;WAEG;QACK,uBAAkB,GAAG,CAC3B,KAA+C,EAC/C,EAAE;YACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACtC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,gBAAgB,CACrC,CAAC;YACF,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;aACnC;QACH,CAAC,CAAC;QAEF;;WAEG;QACK,kCAA6B,GAAG,KAAK,EAAE,EAAO,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;QACH,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;YAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAElC,IAAI,YAAY,EAAE;gBAChB,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAC5C,MAAM,EACN,MAAM,CACG,CAAC;oBACZ,OAAO,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;aACxC;QACH,CAAC,CAAC;QAEF;;WAEG;QACK,iCAA4B,GAAG,KAAK,EAAE,MAAkB,EAAE,EAAE;YAClE,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC7D,MAAM,CAAC,EAAE,CACV,CAAC;gBACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACtD,IAAI,CAAC,gBAAgB,EACrB,MAAM,CAAC,EAAE,EACT,uBAAuB,EACvB,IAAI,CAAC,iCAAiC,EAAE,EACxC,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;aACxC;QACH,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,IAAsB,EAAE,EAAE;YACvD,SAAS;YACT,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;aACxC;YACD,YAAY;iBACP,IAAI,IAAI,KAAK,WAAW,EAAE;gBAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAkB,EAAE,EAAE;oBACnE,8EAA8E;oBAC9E,OAAO,MAAM,CAAC,cAAc,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAkB,EAAE,EAAE;oBACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,KAAK,EAAE,CAAa,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAClC,MAAM,wBAAwB,GAC5B,CAAC,CAAC,MACH,CAAC,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,yBAAyB,CAAC;oBACnC,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBAClC,OAAO,EAAE,wBAAwB,CAAC,CAAC;oBACnC,OAAO,EAAE,wBAAwB,CAAC,CAAC;iBACpC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,CACtB,MAAkB,EAClB,QAAiC,EACU,EAAE;YAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,eAAe,CAAC;YACpB,IAAI,mBAAmB,CAAC;YACxB,IAAI,iBAAiB,EAAE;gBACrB,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CACpC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,iBAAiB,CAC5C,CAAC;aACH;YACD,IAAI,eAAe,EAAE;gBACnB,mBAAmB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;aACjD;YACD,OAAO,mBAAmB,CAAC;QAC7B,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAY,EAAE;YACxC,OAAO,CACL,gBAAU,QAAQ,QAAC,UAAU;gBAC3B,eACE,gBAAgB,EAAC,QAAQ,EACzB,IAAI,EAAC,yBAAyB,EAC9B,KAAK,EAAC,0BAA0B,EAChC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAE3C;wBACE,sBACE,WAAW,EAAE,KAAK,EAClB,IAAI,EAAC,aAAa,GACF;wBAElB,sBAAgB,WAAW,EAAE,KAAK,GAAmB;wBACrD,sBACE,WAAW,EAAE,KAAK,EAClB,IAAI,EAAC,aAAa,GACF,CACA;oBAEnB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAkB,EAAE,EAAE,CAAC,CAChD,mBACE,KAAK,EAAE,MAAM,CAAC,EAAE,EAChB,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,QAAQ,EACN,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;wBAG7D;4BACE,gBACE,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAC1C,IAAI,EAAC,OAAO,GACF,CACC;wBACf,oBAAc,KAAK,EAAC,wBAAwB;4BAC1C,YAAM,KAAK,EAAC,wBAAwB,IACjC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9B;4BACP,YAAM,KAAK,EAAC,+BAA+B,IACxC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CACrC,CACM;wBAEf,wBACG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,kBACE,QAAQ,EACN,CAAC,IAAI,CAAC,eAAe;gCACrB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,cAAc;gCACvD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,iBAAiB,EAE5D,GAAG,QACH,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gCAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gCAC9B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;4BAC5C,CAAC,IAEA,IAAI,CAAC,iCAAiC,EAAE,CAC9B,CACd,CAAC,CAAC,CAAC,IAAI,CACK,CACH,CACf,CAAC,CACM,CACD,CACZ,CAAC;QACJ,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;YACrC,OAAO,CACL,0BACE,SAAS,EAAC,iBAAiB,EAC3B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,GACrC,CACvB,CAAC;QACJ,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAAC,MAAkB,EAAS,EAAE;YAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,YAAY,KAAK,iBAAiB,IAAI,YAAY,KAAK,cAAc,EAAE;gBACzE,OAAO,SAAS,CAAC;aAClB;iBAAM,IAAI,YAAY,KAAK,SAAS,EAAE;gBACrC,OAAO,0BAA0B,CAAC;aACnC;iBAAM;gBACL,OAAO,iBAAiB,CAAC;aAC1B;QACH,CAAC,CAAC;QAEF,uCAAuC;QAC/B,qBAAgB,GAAG,GAAG,EAAE;YAC9B,OAAO,CACL,iBAAW,IAAI,EAAC,mBAAmB,EAAC,IAAI,EAAC,UAAU;gBACjD,WAAK,KAAK,EAAC,mBAAmB;oBAC5B,gBACE,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,GAC7C;oBACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAC5C,CACI,CACb,CAAC;QACJ,CAAC,CAAC;QACM,6BAAwB,GAAG,GAAG,EAAE;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACrC,IAAI,CAAC,cAAc,EACnB,cAAc,CACf,CAAC;YACF,IAAI,YAAY,EAAE;gBAChB,OAAO,SAAG,KAAK,EAAC,4BAA4B,IAAE,YAAY,CAAK,CAAC;aACjE;QACH,CAAC,CAAC;QACM,uBAAkB,GAAG,GAAG,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,iCAAiC,EAAE,CAAC;YACxD,IAAI,iBAAiB,CAAC;YACtB,IAAI,QAAQ,GAAG,+BAA+B,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE;gBAC/C,iBAAiB;oBACf,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBACtE,QAAQ,IAAI,2CAA2C,CAAC;aACzD;iBAAM,IAAI,MAAM,KAAK,cAAc,IAAI,MAAM,KAAK,iBAAiB,EAAE;gBACpE,iBAAiB,GAAG,sBAAsB,CAAC;aAC5C;iBAAM;gBACL,iBAAiB;oBACf,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC;aAC1E;YACD,OAAO,CACL,WAAK,KAAK,EAAE,QAAQ;gBAClB,gBAAU,IAAI,EAAC,qBAAqB,IAAE,iBAAiB,CAAY,CAC/D,CACP,CAAC;QACJ,CAAC,CAAC;QAEM,sCAAiC,GAAG,CAAC,CAAmB,EAAE,EAAE;YAClE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC,CAAC;QACM,qCAAgC,GAAG,CAAC,CAAmB,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC,CAAC;QACM,gCAA2B,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC1D,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,cAAc,mCACd,IAAI,CAAC,cAAc,KACtB,cAAc,EAAE,SAAS,GAC1B,CAAC;gBACF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;aACpE;QACH,CAAC,CAAC;QAEM,yBAAoB,GAAG,GAAG,EAAE;YAClC,OAAO,CACL,WAAK,IAAI,EAAC,oBAAoB;gBAC5B,qBACE,EAAE,EAAC,oBAAoB,0BAEvB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EACpD,IAAI,EAAC,iBAAiB,yEAGtB,KAAK,EACH,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB;yBACtD,iBAAiB,EAEtB,aAAa,EAAC,OAAO,EACrB,WAAW,QACX,cAAc,EAAE,IAAI,CAAC,iCAAiC,EACtD,QAAQ,EAAE,IAAI,CAAC,aAAa,IAE3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACxC,0BACE,KAAK,EAAE,IAAI,CAAC,EAAE,EACd,cAAc,EAAE,IAAI,CAAC,gCAAgC,IAEpD,IAAI,CAAC,EAAE,CACW,CACtB,CAAC,CACY,CACZ,CACP,CAAC;QACJ,CAAC,CAAC;QAEM,iCAA4B,GAAG,CAAC,CAAsB,EAAE,EAAE;YAChE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAqB,CAAC;YAC9D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAClC,CAKE,EACF,EAAE;YACF,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAAC,CAAmB,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;YACrC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ;gBACR,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACrC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,oFAAoF;QACtF,CAAC,CAAC;0BAtekC,EAAE;+BAKG,EAAE;;;oCAGC;YAC1C,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,aAAa;SACrB;sCACsD,IAAI,GAAG,EAAE;+BACrC,IAAI;gCACH,IAAI;6BACC,CAAC;6BACQ,aAAa;6BAC9B,KAAK;4BAeE,KAAK;uBAKU,EAAE;;;;;;IApCjD,iBAAiB,CAAC,UAAwB;QACxC,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAgBD,oBAAoB,CAAC,OAAgB;QACnC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;SAC5B;IACH,CAAC;IAyCD,kCAAkC;IAElC,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,iBAAiB;IAGjB,iBAAiB,CAAC,cAA4B;QAC5C,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAE1B;;OAEG;IAEH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAmYD,0BAA0B;IAE1B,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,kBAAkB,EAAE,IAAI;aACzB;YAED,WAAK,KAAK,EAAC,qBAAqB;gBAC9B,wBACE,gBAAgB,QAChB,oBAAoB,QACpB,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,EAC1C,IAAI,EAAC,SAAS,EACd,cAAc,EACZ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;oBAIhE,YAAM,KAAK,EAAC,MAAM;wBAChB,WAAK,KAAK,EAAC,oBAAoB;4BAC7B,cAAQ,KAAK,EAAC,iBAAiB;gCAC7B,WAAK,KAAK,EAAC,0BAA0B;oCACnC,qBACG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CACjC;oCACZ,WAAK,KAAK,EAAC,gBAAgB;wCACzB,qBACE,aAAa,QACb,cAAc,EAAE,IAAI,CAAC,yBAAyB,IAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACxB,0BACE,KAAK,EAAE,IAAI,CAAC,EAAE,EACd,cAAc,EAAE,IAAI,CAAC,yBAAyB,IAE7C,IAAI,CAAC,IAAI,CACS,CACtB,CAAC,CACY;wCAChB,YAAM,KAAK,EAAC,yBAAyB;4CACnC,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,mCAAmC,EACxC,OAAO,EAAE,IAAI,CAAC,cAAc,GAChB,CACT,CACH,CACF,CACC;4BAET,WAAK,KAAK,EAAC,eAAe;gCACxB,WAAK,KAAK,EAAC,sBAAsB;oCAC/B,qBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAClD,aAAa,EAAC,OAAO,EACrB,WAAW,EAAE,KAAK,EAClB,cAAc,EAAE,CAAC,KAAU,EAAE,EAAE;4CAC7B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wCACxC,CAAC,EACD,QAAQ,EAAE,IAAI,CAAC,aAAa,GACb;oCACjB,6BACE,OAAO,QACP,SAAS,QACT,KAAK,EAAC,kBAAkB,EACxB,uBAAuB,EACrB,IAAI,CAAC,4BAA4B;wCAGnC,kBACE,EAAE,EAAC,YAAY,EACf,QAAQ,QACR,QAAQ,EAAE,IAAI,CAAC,aAAa,IAE3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAC3C;wCACb,kBACE,EAAE,EAAC,eAAe,EAClB,QAAQ,EAAE,IAAI,CAAC,aAAa,IAG1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB;6CAC3C,SAAS,CAEH;wCACb,kBACE,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,IAAI,CAAC,aAAa,IAE3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAC5C,CACS,CACpB;gCAEN,WACE,KAAK,EAAC,gBAAgB,EACtB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,EAAoB,CAAC,IAErD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;oCAC9B,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;oCAC1B,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAC9B,CACF,CACF;wBAGL,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CACrB,WAAK,KAAK,EAAC,aAAa;4BACtB,cAAQ,KAAK,EAAC,qBAAqB;gCAChC,IAAI,CAAC,gBAAgB,EAAE;gCACvB,IAAI,CAAC,wBAAwB,EAAE;gCAC/B,IAAI,CAAC,kBAAkB,EAAE;gCACzB,IAAI,CAAC,oBAAoB,EAAE,CACrB;4BACT,WAAK,KAAK,EAAC,uCAAuC,IAC/C,0BAA0B,CACzB,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,cAAc,EACnB,YAAY,CACW,CAC1B,CACG,CACF,CACP,CAAC,CAAC,CAAC,CACF,0BACE,KAAK,EAAC,6BAA6B,EACnC,SAAS,EAAC,gBAAgB,EAC1B,UAAU,EACR,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAE3D,gBAAgB,EACd,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU;iCAChD,WAAW,GAEI,CACvB,CACI;oBAEP,yBACE,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,QAAQ,QACR,OAAO,EACL,IAAI,CAAC,oBAAoB,CAAC,OAAO;4BACjC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,cAAc,EAElD,QAAQ,EAAE,IAAI,CAAC,aAAa,EAC5B,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,gBAAgB,EACvD,SAAS,EAAE,KAAK,EAChB,SAAS,QACT,cAAc,EAAE,IAAI,CAAC,uBAAuB,GACzB,CACJ,CACf;YACN,sBACE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAClD,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAA6B,CAAC,EAC1D,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,YAAY,EAAC,WAAW,GACR,CACb,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { ChGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModulePropertyData,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* selectedServerIdOnModulesAllUpdate is updated every time modulesAll is modified, in order to determine if the server is the same or not.*/\n private selectedServerIdOnModulesAllUpdate: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllWatcher(modulesAll: ModuleData[]) {\n this.updateModulesSelectedVersion(modulesAll);\n }\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersion: Map<string, string> = new Map();\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n @State() loadingServer = false;\n @Watch(\"loadingServer\")\n loadingServerHandler(loading: boolean) {\n if (loading) {\n this.loaderEl.show = true;\n } else {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * 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.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.serverSelectedCallbackHandler(this.servers[0].id);\n }\n\n // 7.LISTENERS //\n\n @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private updateModulesSelectedVersion = (modulesAll: ModuleData[]) => {\n if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {\n // the server has changed. clear the updateModulesSelectedVersion\n this.modulesSelectedVersion.clear();\n modulesAll.forEach(module => {\n this.modulesSelectedVersion.set(\n module.id,\n module.versions[module.versions.length - 1].id\n );\n });\n } else {\n // the server has't changed. only add the module to the map, if it is a new module.\n modulesAll.forEach(module => {\n const newModule =\n this.modulesSelectedVersion.get(module.id) === undefined;\n if (newModule) {\n this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n }\n });\n }\n this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;\n };\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.getModuleData(\n this.selectedModule,\n \"action\"\n ) as ModuleActionType;\n return action || \"install\";\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<ChGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n const foundModule = this.modulesAll.find(\n item => item.id === selectedModuleId\n );\n if (foundModule) {\n this.selectedModule = foundModule;\n }\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id);\n this.selectedServerId = id;\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n this.loadingServer = false;\n }\n };\n\n private handleFilterChange = (value: string) => {\n const trimmedValue = value.trim();\n\n if (trimmedValue) {\n const lowerCaseValue = trimmedValue.toLowerCase();\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(lowerCaseValue);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n private executeActionCallbackHandler = async (module: ModuleData) => {\n if (this.executeActionCallback) {\n console.log(\"hey!\");\n const moduleSelectedVersionId = this.modulesSelectedVersion.get(\n module.id\n );\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n this.actionCompleted = actionCompleted;\n }\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private getModuleData = (\n module: ModuleData,\n dataType: keyof ModuleVersionData\n ): string | ModulePropertyData[] | undefined => {\n const selectedVersionId = this.modulesSelectedVersion.get(module.id);\n let selectedVersion;\n let selectedVersionData;\n if (selectedVersionId) {\n selectedVersion = module.versions.find(\n version => version.id === selectedVersionId\n );\n }\n if (selectedVersion) {\n selectedVersionData = selectedVersion[dataType];\n }\n return selectedVersionData;\n };\n\n private renderModulesGrid = (): Element => {\n return (\n <gxg-grid noBorder fullHeight>\n <ch-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-grid-columnset>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n\n <ch-grid-column settingable={false}></ch-grid-column>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n </ch-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-grid-row\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-grid-cell>\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(module)}\n size=\"small\"\n ></gxg-icon>\n </ch-grid-cell>\n <ch-grid-cell class=\"grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">\n {this.getModuleData(module, \"name\")}\n </span>\n <span class=\"grid-cell-module__description\">\n {this.getModuleData(module, \"description\")}\n </span>\n </ch-grid-cell>\n\n <ch-grid-cell>\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <gxg-button\n disabled={\n !this.actionCompleted ||\n this.getModuleData(module, \"action\") === \"incompatible\" ||\n this.getModuleData(module, \"action\") === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={() => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\n }}\n >\n {this.getActionFromCurrentModuleVersion()}\n </gxg-button>\n ) : null}\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIcon=\"mercury/filters\"\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (module: ModuleData): Color => {\n const moduleAction = this.getModuleData(module, \"action\");\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (moduleAction === \"install\") {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n };\n\n /* module details/information renders*/\n private renderModuleName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule)}\n ></gxg-icon>\n {this.getModuleData(this.selectedModule, \"name\")}\n </div>\n </gxg-title>\n );\n };\n private renderModuleAlertMessage = () => {\n const alertMessage = this.getModuleData(\n this.selectedModule,\n \"alertMessage\"\n );\n if (alertMessage) {\n return <p class=\"module-info__alert-message\">{alertMessage}</p>;\n }\n };\n private renderModuleAction = () => {\n const action = this.getActionFromCurrentModuleVersion();\n let actionDescription;\n let cssClass = \"module-info__action-container\";\n if (action === \"restore\" || action === \"update\") {\n actionDescription =\n this._componentLocale.modulesInformation.moduleProperties.installed;\n cssClass += ` module-info__action-container--installed`;\n } else if (action === \"incompatible\" || action === \"not-installable\") {\n actionDescription = \"Can not be installed\";\n } else {\n actionDescription =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{actionDescription}</gxg-text>\n </div>\n );\n };\n\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail;\n this.updateSelectedModuleVersion(versionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail.value;\n this.updateSelectedModuleVersion(versionId);\n };\n private updateSelectedModuleVersion = (versionId: string) => {\n if (versionId) {\n this.selectedModule = {\n ...this.selectedModule,\n currentVersion: versionId\n };\n this.modulesSelectedVersion.set(this.selectedModule.id, versionId);\n }\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.getModuleData(this.selectedModule, \"id\")}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n onValueChanged={this.moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.moduleVersionsItemChangedHandler}\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId);\n };\n\n private progressBarCloseHandler = () => {\n setTimeout(() => {\n this.actionCompleted = true;\n this.closeProgressBar = true;\n // reset\n this.progressValue = 0;\n this.progressState = \"in-progress\";\n }, 400);\n // delay to force the footer line disappear after the top-state-bar has been closed.\n };\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host\n class={{\n \"gx-ide-component\": true\n }}\n >\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noBorderAboveFooter={this.closeProgressBar}\n part=\"servers\"\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* Servers*/}\n <main class=\"main\">\n <div class=\"modules__container\">\n <header class=\"modules__header\">\n <div class=\"modules__combo-container\">\n <gxg-label>\n {this._componentLocale.modules.selectServer}\n </gxg-label>\n <div class=\"modules__combo\">\n <gxg-combo-box\n disableFilter\n onValueChanged={this.serverValueChangedHandler}\n >\n {this.servers.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.serverItemSelectedHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n <span class=\"modules__menu-container\">\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.showModuleMenu}\n ></gxg-button>\n </span>\n </div>\n </div>\n </header>\n\n <div class=\"modules__main\">\n <div class=\"modules__main-header\">\n <gxg-form-text\n label={this._componentLocale.modules.searchModules}\n labelPosition=\"above\"\n centerLabel={false}\n onValueChanged={(event: any) => {\n this.handleFilterChange(event.detail);\n }}\n disabled={this.loadingServer}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={\n this.selectedButtonChangedHandler\n }\n >\n <gxg-button\n id=\"btn-browse\"\n selected\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"btn-installed\"\n disabled={this.loadingServer}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"btn-updates\"\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.updates}\n </gxg-button>\n </gxg-buttons-container>\n </div>\n {/* modules grid*/}\n <div\n class=\"grid-container\"\n ref={el => (this.serversDetail = el as HTMLDivElement)}\n >\n {this.filteredModules.length > 0\n ? this.renderModulesGrid()\n : this.renderEmptyStateModules()}\n </div>\n </div>\n </div>\n\n {/* Module Information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderModuleName()}\n {this.renderModuleAlertMessage()}\n {this.renderModuleAction()}\n {this.renderModuleVersions()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.getModuleData(\n this.selectedModule,\n \"properties\"\n ) as ModulePropertyData[]\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIcon=\"objects/module\"\n stateTitle={\n this._componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this._componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </main>\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n autoClose={false}\n withClose\n closedCallback={this.progressBarCloseHandler}\n ></gxg-top-state-bar>\n </gx-ide-container>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.servers.loading}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n container={this.serversDetail}\n borderRadius=\"0 0 0 8px\"\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n moduleVersionId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: topStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (id: string) => Promise<ModuleData[]>;\n\nexport type AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/modules/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ModuleServerData = {\n type: \"remote\" | \"local\";\n id: string;\n name: string;\n source?: string;\n authenticated?: boolean;\n};\n\nexport type ModuleServerType = {\n id: string;\n name: string;\n type: \"local\" | \"remote\";\n authenticated: boolean;\n};\n\nexport type ModuleData = {\n id: string;\n name: string;\n description?: string;\n versions?: ModuleVersionData[];\n currentVersion?: string;\n properties?: ModulePropertyData[];\n};\n\nexport type ModuleActionType = \"install\" | \"restore\" | \"update\";\n\nexport type ModuleFilterType = \"browse\" | \"installed\" | \"updates\";\n\nexport type ModulePropertyData = {\n name: string;\n value?: string | string[];\n inline?: boolean;\n};\n\nexport type ModuleServerFullData = ModuleServerData & {\n user?: string;\n password?: string;\n};\n\nexport type ModuleVersionData = {\n id: string;\n action: ModuleActionType;\n};\n\nexport type EditServerModuleResult = {\n success: boolean;\n message: string;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/modules/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ModuleServerData = {\n type: \"remote\" | \"local\";\n id: string;\n name: string;\n source?: string;\n authenticated?: boolean;\n};\n\nexport type ModuleServerType = {\n id: string;\n name: string;\n type: \"local\" | \"remote\";\n authenticated: boolean;\n};\n\nexport type ModuleData = {\n id: string;\n\n versions?: ModuleVersionData[];\n currentVersion?: string;\n};\n\nexport type ModuleActionType =\n | \"install\"\n | \"restore\"\n | \"update\"\n | \"not-installable\"\n | \"incompatible\";\n\nexport type ModuleFilterType = \"browse\" | \"installed\" | \"updates\";\n\nexport type ModulePropertyData = {\n name: string;\n value?: string | string[];\n inline?: boolean;\n};\n\nexport type ModuleServerFullData = ModuleServerData & {\n user?: string;\n password?: string;\n};\n\nexport type ModuleVersionData = {\n id: string;\n name: string;\n description?: string;\n action: ModuleActionType;\n properties?: ModulePropertyData[];\n alertMessage?: string;\n};\n\nexport type EditServerModuleResult = {\n success: boolean;\n message: string;\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { f as formMessageLogic, a as formTooltipLogic } from './form.js';
2
+ import { a as formMessageLogic, f as formTooltipLogic } from './form.js';
3
3
  import { K as KeyboardKeys } from './types.js';
4
4
  import { e as exportParts } from './export-parts.js';
5
5
  import { s as state } from './store.js';
@@ -435,6 +435,7 @@ const GxgComboBox = /*@__PURE__*/ proxyCustomElement(class GxgComboBox extends H
435
435
  *********************************/
436
436
  itemSelectedHandler(event) {
437
437
  this.value = event.detail.value;
438
+ this.prevEmittedValue = this.value;
438
439
  this.inputText.focus();
439
440
  }
440
441
  itemDidLoadHandler() {