@genexus/genexus-ide-ui 0.0.108 → 0.0.110

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 (265) hide show
  1. package/dist/cjs/ch-dropdown_2.cjs.entry.js +1 -1
  2. package/dist/cjs/ch-dropdown_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ch-grid_8.cjs.entry.js +339 -321
  4. package/dist/cjs/ch-grid_8.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ch-icon_5.cjs.entry.js +3 -1
  6. package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -1
  8. package/dist/cjs/ch-suggest_4.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ch-tree-view_5.cjs.entry.js +41 -20
  10. package/dist/cjs/ch-tree-view_5.cjs.entry.js.map +1 -1
  11. package/dist/cjs/{common-103f62f6.js → common-2e355c7d.js} +31 -1
  12. package/dist/cjs/common-2e355c7d.js.map +1 -0
  13. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  14. package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +47 -4
  15. package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
  16. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  17. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js +98 -0
  19. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js.map +1 -0
  20. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +70 -0
  21. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -0
  22. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +311 -0
  26. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -0
  27. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  30. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +76 -0
  31. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -0
  32. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  33. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +184 -0
  34. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -0
  35. package/dist/cjs/{gx-ide-empty-state_2.cjs.entry.js → gxg-card_2.cjs.entry.js} +121 -63
  36. package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -0
  37. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +1 -0
  38. package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gxg-ide-loader.cjs.entry.js +4 -15
  40. package/dist/cjs/gxg-ide-loader.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gxg-tab_4.cjs.entry.js +1 -1
  42. package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
  43. package/dist/cjs/loader.cjs.js +1 -1
  44. package/dist/collection/collection-manifest.json +2 -0
  45. package/dist/collection/common/common.js +21 -0
  46. package/dist/collection/common/common.js.map +1 -1
  47. package/dist/collection/components/_helpers/container/container.css +6 -0
  48. package/dist/collection/components/_helpers/container/container.js +40 -0
  49. package/dist/collection/components/_helpers/container/container.js.map +1 -1
  50. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  51. package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
  52. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +370 -29
  53. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +4 -99
  54. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js.map +1 -1
  55. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  56. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
  57. package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
  58. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  59. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.css +560 -0
  60. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js +251 -0
  61. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js.map +1 -0
  62. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
  63. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
  64. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
  65. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +35 -0
  66. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
  67. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
  68. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +744 -0
  69. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +501 -0
  70. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -0
  71. package/dist/collection/components/modules/types.js +2 -0
  72. package/dist/collection/components/modules/types.js.map +1 -0
  73. package/dist/collection/pages/assets/common.js +7 -0
  74. package/dist/components/buttons-container.js +8 -3
  75. package/dist/components/buttons-container.js.map +1 -1
  76. package/dist/components/card.js.map +1 -1
  77. package/dist/components/ch-grid-column2.js +4 -1
  78. package/dist/components/ch-grid-column2.js.map +1 -1
  79. package/dist/components/ch-grid2.js +342 -322
  80. package/dist/components/ch-grid2.js.map +1 -1
  81. package/dist/components/combo-box.js +1 -0
  82. package/dist/components/combo-box.js.map +1 -1
  83. package/dist/components/common.js +30 -1
  84. package/dist/components/common.js.map +1 -1
  85. package/dist/components/container.js +7 -1
  86. package/dist/components/container.js.map +1 -1
  87. package/dist/components/dropdown.js +1 -1
  88. package/dist/components/dropdown.js.map +1 -1
  89. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  90. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  91. package/dist/components/gx-ide-edit-module-servers.d.ts +11 -0
  92. package/dist/components/gx-ide-edit-module-servers.js +186 -0
  93. package/dist/components/gx-ide-edit-module-servers.js.map +1 -0
  94. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  95. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  96. package/dist/components/gx-ide-manage-module-references.d.ts +11 -0
  97. package/dist/components/gx-ide-manage-module-references.js +515 -0
  98. package/dist/components/gx-ide-manage-module-references.js.map +1 -0
  99. package/dist/components/gx-ide-status-buttons2.js +5 -15
  100. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  101. package/dist/components/gxg-top-state-bar2.js +17 -8
  102. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  103. package/dist/components/icon2.js +3 -1
  104. package/dist/components/icon2.js.map +1 -1
  105. package/dist/components/ide-loader.js +6 -15
  106. package/dist/components/ide-loader.js.map +1 -1
  107. package/dist/components/suggest.js +1 -1
  108. package/dist/components/suggest.js.map +1 -1
  109. package/dist/components/tabs.js +1 -1
  110. package/dist/components/tabs.js.map +1 -1
  111. package/dist/components/tree-view-item.js +8 -2
  112. package/dist/components/tree-view-item.js.map +1 -1
  113. package/dist/components/tree-view2.js +32 -15
  114. package/dist/components/tree-view2.js.map +1 -1
  115. package/dist/esm/ch-dropdown_2.entry.js +1 -1
  116. package/dist/esm/ch-dropdown_2.entry.js.map +1 -1
  117. package/dist/esm/ch-grid_8.entry.js +339 -321
  118. package/dist/esm/ch-grid_8.entry.js.map +1 -1
  119. package/dist/esm/ch-icon_5.entry.js +3 -1
  120. package/dist/esm/ch-icon_5.entry.js.map +1 -1
  121. package/dist/esm/ch-suggest_4.entry.js +1 -1
  122. package/dist/esm/ch-suggest_4.entry.js.map +1 -1
  123. package/dist/esm/ch-tree-view_5.entry.js +41 -20
  124. package/dist/esm/ch-tree-view_5.entry.js.map +1 -1
  125. package/dist/esm/{common-f2983db2.js → common-aaad5759.js} +31 -2
  126. package/dist/esm/common-aaad5759.js.map +1 -0
  127. package/dist/esm/genexus-ide-ui.js +1 -1
  128. package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container_3.entry.js} +47 -5
  129. package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
  130. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  131. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  132. package/dist/esm/gx-ide-edit-module-servers.entry.js +94 -0
  133. package/dist/esm/gx-ide-edit-module-servers.entry.js.map +1 -0
  134. package/dist/esm/gx-ide-empty-state.entry.js +66 -0
  135. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -0
  136. package/dist/esm/gx-ide-import-from-design.entry.js +1 -1
  137. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  138. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  139. package/dist/esm/gx-ide-manage-module-references.entry.js +307 -0
  140. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -0
  141. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  142. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  143. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  144. package/dist/esm/gx-ide-status-buttons.entry.js +72 -0
  145. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -0
  146. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  147. package/dist/esm/gxg-buttons-container_2.entry.js +179 -0
  148. package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -0
  149. package/dist/esm/{gx-ide-empty-state_2.entry.js → gxg-card_2.entry.js} +122 -64
  150. package/dist/{cjs/gx-ide-empty-state_2.cjs.entry.js.map → esm/gxg-card_2.entry.js.map} +1 -1
  151. package/dist/esm/gxg-combo-box_2.entry.js +1 -0
  152. package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
  153. package/dist/esm/gxg-ide-loader.entry.js +4 -15
  154. package/dist/esm/gxg-ide-loader.entry.js.map +1 -1
  155. package/dist/esm/gxg-tab_4.entry.js +1 -1
  156. package/dist/esm/gxg-tab_4.entry.js.map +1 -1
  157. package/dist/esm/loader.js +1 -1
  158. package/dist/genexus-ide-ui/genexus-ide-ui.css +9 -6
  159. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  160. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  161. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
  162. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
  163. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
  164. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +35 -0
  165. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
  166. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
  167. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js → p-00704c36.entry.js} +6 -6
  168. package/dist/genexus-ide-ui/{p-b7bc3c0c.entry.js.map → p-00704c36.entry.js.map} +1 -1
  169. package/dist/genexus-ide-ui/{p-2c1f414f.entry.js → p-0c0c3f1d.entry.js} +53 -53
  170. package/dist/genexus-ide-ui/{p-2c1f414f.entry.js.map → p-0c0c3f1d.entry.js.map} +1 -1
  171. package/dist/genexus-ide-ui/{p-b571e9c0.entry.js → p-0df39b62.entry.js} +5 -2
  172. package/dist/genexus-ide-ui/{p-b571e9c0.entry.js.map → p-0df39b62.entry.js.map} +1 -1
  173. package/dist/genexus-ide-ui/{p-419b2877.entry.js → p-1cb2d0df.entry.js} +80 -47
  174. package/dist/genexus-ide-ui/p-1cb2d0df.entry.js.map +1 -0
  175. package/dist/genexus-ide-ui/p-350f49ac.js +101 -0
  176. package/dist/genexus-ide-ui/p-350f49ac.js.map +1 -0
  177. package/dist/genexus-ide-ui/{p-ca7233a5.entry.js → p-39337325.entry.js} +81 -10
  178. package/dist/genexus-ide-ui/p-39337325.entry.js.map +1 -0
  179. package/dist/genexus-ide-ui/{p-001e085a.entry.js → p-51e86542.entry.js} +2 -2
  180. package/dist/genexus-ide-ui/p-5ca7da19.entry.js +94 -0
  181. package/dist/genexus-ide-ui/p-5ca7da19.entry.js.map +1 -0
  182. package/dist/genexus-ide-ui/p-5fe20f47.entry.js +211 -0
  183. package/dist/genexus-ide-ui/p-5fe20f47.entry.js.map +1 -0
  184. package/dist/genexus-ide-ui/{p-d14b5546.entry.js → p-6f5b13a7.entry.js} +4 -2
  185. package/dist/genexus-ide-ui/{p-d14b5546.entry.js.map → p-6f5b13a7.entry.js.map} +1 -1
  186. package/dist/genexus-ide-ui/p-713ad05d.entry.js +441 -0
  187. package/dist/genexus-ide-ui/p-713ad05d.entry.js.map +1 -0
  188. package/dist/genexus-ide-ui/{p-94015503.entry.js → p-786e5448.entry.js} +374 -380
  189. package/dist/genexus-ide-ui/p-786e5448.entry.js.map +1 -0
  190. package/dist/genexus-ide-ui/{p-40121554.entry.js → p-9f9fda93.entry.js} +172 -120
  191. package/dist/genexus-ide-ui/p-9f9fda93.entry.js.map +1 -0
  192. package/dist/genexus-ide-ui/{p-afce38d4.entry.js → p-b2099890.entry.js} +2 -2
  193. package/dist/genexus-ide-ui/{p-513ec2ad.entry.js → p-b4e526d6.entry.js} +2 -2
  194. package/dist/genexus-ide-ui/p-b7d0697f.entry.js +138 -0
  195. package/dist/genexus-ide-ui/p-b7d0697f.entry.js.map +1 -0
  196. package/dist/genexus-ide-ui/{p-ee9f4e20.entry.js → p-bc04fcaa.entry.js} +7 -15
  197. package/dist/genexus-ide-ui/p-bc04fcaa.entry.js.map +1 -0
  198. package/dist/genexus-ide-ui/{p-8e8bb528.entry.js → p-c14b6b77.entry.js} +2 -2
  199. package/dist/genexus-ide-ui/{p-8e8bb528.entry.js.map → p-c14b6b77.entry.js.map} +1 -1
  200. package/dist/genexus-ide-ui/{p-5a5d3e19.entry.js → p-c9cceb40.entry.js} +1 -4
  201. package/dist/genexus-ide-ui/p-c9cceb40.entry.js.map +1 -0
  202. package/dist/genexus-ide-ui/{p-2c733995.entry.js → p-d5903356.entry.js} +2 -2
  203. package/dist/genexus-ide-ui/{p-e9e4482b.entry.js → p-decf86d4.entry.js} +114 -127
  204. package/dist/genexus-ide-ui/p-decf86d4.entry.js.map +1 -0
  205. package/dist/genexus-ide-ui/{p-05102700.entry.js → p-df72101e.entry.js} +2 -2
  206. package/dist/genexus-ide-ui/{p-045a084f.entry.js → p-f37ec5b8.entry.js} +2 -1
  207. package/dist/genexus-ide-ui/p-f37ec5b8.entry.js.map +1 -0
  208. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +28 -28
  209. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -2
  210. package/dist/node_modules/@genexus/gemini/dist/collection/components/buttons-container/buttons-container.css +11 -0
  211. package/dist/node_modules/@genexus/gemini/dist/collection/components/ide-loader/ide-loader.css +3 -0
  212. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +1 -0
  213. package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +1 -0
  214. package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +51 -62
  215. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +37 -54
  216. package/dist/types/common/common.d.ts +2 -0
  217. package/dist/types/components/_helpers/container/container.d.ts +8 -0
  218. package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +0 -20
  219. package/dist/types/components/modules/edit-module-servers/edit-module-servers.d.ts +60 -0
  220. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +110 -0
  221. package/dist/types/components/modules/types.d.ts +41 -0
  222. package/dist/types/components.d.ts +226 -80
  223. package/package.json +3 -3
  224. package/dist/cjs/common-103f62f6.js.map +0 -1
  225. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
  226. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +0 -187
  227. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js.map +0 -1
  228. package/dist/cjs/gxg-buttons-container.cjs.entry.js +0 -65
  229. package/dist/cjs/gxg-buttons-container.cjs.entry.js.map +0 -1
  230. package/dist/cjs/gxg-title-editable.cjs.entry.js +0 -128
  231. package/dist/cjs/gxg-title-editable.cjs.entry.js.map +0 -1
  232. package/dist/cjs/gxg-title.cjs.entry.js +0 -47
  233. package/dist/cjs/gxg-title.cjs.entry.js.map +0 -1
  234. package/dist/esm/common-f2983db2.js.map +0 -1
  235. package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
  236. package/dist/esm/gx-ide-empty-state_2.entry.js.map +0 -1
  237. package/dist/esm/gx-ide-status-buttons_2.entry.js +0 -182
  238. package/dist/esm/gx-ide-status-buttons_2.entry.js.map +0 -1
  239. package/dist/esm/gxg-buttons-container.entry.js +0 -61
  240. package/dist/esm/gxg-buttons-container.entry.js.map +0 -1
  241. package/dist/esm/gxg-title-editable.entry.js +0 -124
  242. package/dist/esm/gxg-title-editable.entry.js.map +0 -1
  243. package/dist/esm/gxg-title.entry.js +0 -43
  244. package/dist/esm/gxg-title.entry.js.map +0 -1
  245. package/dist/genexus-ide-ui/p-045a084f.entry.js.map +0 -1
  246. package/dist/genexus-ide-ui/p-40121554.entry.js.map +0 -1
  247. package/dist/genexus-ide-ui/p-419b2877.entry.js.map +0 -1
  248. package/dist/genexus-ide-ui/p-5a5d3e19.entry.js.map +0 -1
  249. package/dist/genexus-ide-ui/p-67406b36.entry.js +0 -71
  250. package/dist/genexus-ide-ui/p-67406b36.entry.js.map +0 -1
  251. package/dist/genexus-ide-ui/p-67ea84e8.js +0 -74
  252. package/dist/genexus-ide-ui/p-67ea84e8.js.map +0 -1
  253. package/dist/genexus-ide-ui/p-94015503.entry.js.map +0 -1
  254. package/dist/genexus-ide-ui/p-ca7233a5.entry.js.map +0 -1
  255. package/dist/genexus-ide-ui/p-cf5c3c10.entry.js +0 -270
  256. package/dist/genexus-ide-ui/p-cf5c3c10.entry.js.map +0 -1
  257. package/dist/genexus-ide-ui/p-d50b5b9a.entry.js +0 -67
  258. package/dist/genexus-ide-ui/p-d50b5b9a.entry.js.map +0 -1
  259. package/dist/genexus-ide-ui/p-e9e4482b.entry.js.map +0 -1
  260. package/dist/genexus-ide-ui/p-ee9f4e20.entry.js.map +0 -1
  261. /package/dist/genexus-ide-ui/{p-001e085a.entry.js.map → p-51e86542.entry.js.map} +0 -0
  262. /package/dist/genexus-ide-ui/{p-afce38d4.entry.js.map → p-b2099890.entry.js.map} +0 -0
  263. /package/dist/genexus-ide-ui/{p-513ec2ad.entry.js.map → p-b4e526d6.entry.js.map} +0 -0
  264. /package/dist/genexus-ide-ui/{p-2c733995.entry.js.map → p-d5903356.entry.js.map} +0 -0
  265. /package/dist/genexus-ide-ui/{p-05102700.entry.js.map → p-df72101e.entry.js.map} +0 -0
@@ -0,0 +1,441 @@
1
+ import { r as e, c as t, h as i, H as r, g as o } from "./p-48217969.js";
2
+
3
+ import { a } from "./p-350f49ac.js";
4
+
5
+ import { L as s } from "./p-74d59062.js";
6
+
7
+ const l = ':root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}p,ul{font-size:var(--font-size-lg);margin:0}p{line-height:1.6em}.header{align-items:center;grid-template-columns:1fr auto;grid-template-rows:1fr}.main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:100%;overflow:auto}ch-grid-columnset{display:none}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--xxxs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-container{height:100%;overflow:auto}.grid-container gx-ide-empty-state{height:100%}.servers-container{display:none;height:100%}.servers-container__header{display:flex;align-items:center;justify-content:space-between;padding:var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding) 0 var(--gxg-list-box-main__padding)}.servers-container__header gxg-button{width:100%}.modules__header{padding:var(--gxg-list-box-main__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo-container{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo{display:flex;flex-direction:row;gap:var(--mer-spacing--xs)}.modules__combo gxg-combo-box{flex:1}.modules__container{border-inline-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main-header{display:flex;padding:var(--mer-spacing--xs);flex-direction:column;gap:var(--mer-spacing--xs)}.module-info{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.module-info__name{display:flex;align-items:center;gap:var(--mer-spacing--sm);--ds-icon-size-box--regular:24px;--ds-icon-size--regular:24px;font-weight:var(--mer-font__weight--bold)}.module-info__header{padding:var(--gx-ide-container__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs);border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__action-container{display:flex;flex-direction:row;align-items:center;gap:var(--mer-spacing--xs)}.module-info__action-container:before{content:"";width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border-radius:50%;display:block;background-color:var(--mer-icon__primary--disabled)}.module-info__action-container--installed:before{background-color:var(--mer-icon__primary)}.module-info__alert-message{margin-block-start:var(--mer-spacing--xxs);background-color:var(--mer-color__tinted-yellow--5);color:var(--mer-text__on-elevation);border:var(--mer-border__width--sm) solid var(--mer-border-color__warning);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--xs) var(--mer-spacing--md)}.module-info__divider{width:calc(100% - var(--gx-ide-container__padding) * 4);padding:0 var(--gx-ide-container__padding);margin:0 auto;border:0;border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__properties{display:flex;flex-direction:column;padding:var(--gx-ide-container__padding);gap:var(--mer-spacing--xs);overflow:auto}.md-property{display:grid;gap:var(--mer-spacing--xs)}.md-property--inline{grid-template-columns:auto 1fr}.md-property__key{font-weight:var(--font-weight-bold);max-width:150px}.md-property__value{font-size:var(--mer-font__size--xxs)}.md-property__key>*,.md-property__value>*{display:inline-block}.md-property__list{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.md-property__list>ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--xxs);margin-inline-start:var(--mer-spacing--xs)}.md-property__list>ul li{position:relative;padding-inline-start:12px;line-height:var(--ds-base-font-line-height--comfortable)}.md-property__list>ul li::before{content:"";position:absolute;left:0;top:7px;display:inline-block;width:var(--mer-spacing--xxs);height:var(--mer-spacing--xxs);background-color:var(--mer-text__on-surface)}.md-property,.md-property__list{border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);padding-block-end:var(--mer-spacing--xs)}.md-property:last-child,.md-property__list:last-child{border-block-end:0;padding-block-end:0}gxg-ide-loader{border-radius:var(--mer-border__radius--md)}';
8
+
9
+ const n = class {
10
+ constructor(r) {
11
+ e(this, r);
12
+ this.componentDidRenderFirstTime = t(this, "componentDidRenderFirstTime", 7);
13
+ this.renderedFirstTime = false;
14
+ // 9.LOCAL METHODS //
15
+ this.updateModulesSelectedVersion = e => {
16
+ if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {
17
+ // the server has changed. clear the updateModulesSelectedVersion
18
+ this.modulesSelectedVersion.clear();
19
+ e.forEach((e => {
20
+ this.modulesSelectedVersion.set(e.id, e.versions[e.versions.length - 1].id);
21
+ }));
22
+ } else {
23
+ // the server has't changed. only add the module to the map, if it is a new module.
24
+ e.forEach((e => {
25
+ const t = this.modulesSelectedVersion.get(e.id) === undefined;
26
+ if (t) {
27
+ this.modulesSelectedVersion.set(e.id, e.versions[0].id);
28
+ }
29
+ }));
30
+ }
31
+ this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;
32
+ };
33
+ this.getActionFromCurrentModuleVersion = () => {
34
+ const e = this.getModuleData(this.selectedModule, "action");
35
+ return e || "install";
36
+ };
37
+ /**
38
+ * Callback invoked to get the progress when module is performing an action
39
+ */ this.onProgress = (e, t, i) => {
40
+ const r = {
41
+ message: e,
42
+ progress: t,
43
+ state: i
44
+ };
45
+ this.selectedModuleAction = Object.assign({}, r);
46
+ this.progressValue = this.selectedModuleAction.progress;
47
+ this.progressState = this.selectedModuleAction.state;
48
+ };
49
+ // 10.LOCAL METHODS //
50
+ /**
51
+ * Used for changing the selected module
52
+ */ this.handleModuleChange = e => {
53
+ const t = e.detail.rowsId[0];
54
+ const i = this.modulesAll.find((e => e.id === t));
55
+ if (i) {
56
+ this.selectedModule = i;
57
+ }
58
+ };
59
+ /**
60
+ * Change the server selected value in response to callbackServerSelected callback
61
+ */ this.serverSelectedCallbackHandler = async e => {
62
+ if (this.serverSelectedCallback) {
63
+ this.loadingServer = true;
64
+ const t = await this.serverSelectedCallback(e);
65
+ this.selectedServerId = e;
66
+ this.modulesAll = [ ...t ];
67
+ this.filterModulesByType("browse");
68
+ this.selectedModule = this.filteredModules[0];
69
+ this.loadingServer = false;
70
+ }
71
+ };
72
+ this.handleFilterChange = e => {
73
+ const t = e.trim();
74
+ if (t) {
75
+ const e = t.toLowerCase();
76
+ this.filteredModules = this.modulesAll.filter((t => {
77
+ const i = this.getModuleData(t, "name");
78
+ return i === null || i === void 0 ? void 0 : i.toLowerCase().includes(e);
79
+ }));
80
+ } else {
81
+ this.filteredModules = this.modulesAll;
82
+ }
83
+ };
84
+ /**
85
+ * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
86
+ */ this.executeActionCallbackHandler = async e => {
87
+ if (this.executeActionCallback) {
88
+ console.log("hey!");
89
+ const t = this.modulesSelectedVersion.get(e.id);
90
+ const i = await this.executeActionCallback(this.selectedServerId, e.id, t, this.getActionFromCurrentModuleVersion(), this.onProgress);
91
+ this.actionCompleted = i;
92
+ }
93
+ };
94
+ this.filterModulesByType = e => {
95
+ // browse
96
+ if (e === "browse") {
97
+ this.filteredModules = this.modulesAll;
98
+ }
99
+ // installed
100
+ else if (e === "installed") {
101
+ this.filteredModules = this.modulesAll.filter((e => e.currentVersion));
102
+ } else if (e === "updates") {
103
+ this.filteredModules = this.modulesAll.filter((e => e.versions.find((e => e.action === "update"))));
104
+ }
105
+ };
106
+ this.showModuleMenu = async e => {
107
+ if (this.serverContextMenuCallback) {
108
+ const t = e.target.getBoundingClientRect();
109
+ await this.serverContextMenuCallback({
110
+ selection: [ this.selectedServerId ],
111
+ clientX: t.x,
112
+ clientY: t.y
113
+ });
114
+ }
115
+ };
116
+ this.getModuleData = (e, t) => {
117
+ const i = this.modulesSelectedVersion.get(e.id);
118
+ let r;
119
+ let o;
120
+ if (i) {
121
+ r = e.versions.find((e => e.id === i));
122
+ }
123
+ if (r) {
124
+ o = r[t];
125
+ }
126
+ return o;
127
+ };
128
+ this.renderModulesGrid = () => i("gxg-grid", {
129
+ noBorder: true,
130
+ fullHeight: true
131
+ }, i("ch-grid", {
132
+ rowSelectionMode: "single",
133
+ part: "ch-grid-pending-commits",
134
+ class: "servers-detail no-border",
135
+ onSelectionChanged: this.handleModuleChange
136
+ }, i("ch-grid-columnset", null, i("ch-grid-column", {
137
+ settingable: false,
138
+ size: "min-content"
139
+ }), i("ch-grid-column", {
140
+ settingable: false
141
+ }), i("ch-grid-column", {
142
+ settingable: false,
143
+ size: "min-content"
144
+ })), this.filteredModules.map((e => i("ch-grid-row", {
145
+ rowid: e.id,
146
+ key: e.id,
147
+ selected: this.selectedModule && this.selectedModule.id === e.id
148
+ }, i("ch-grid-cell", null, i("gxg-icon", {
149
+ type: "objects/module",
150
+ color: this.moduleVersionIconColor(e),
151
+ size: "small"
152
+ })), i("ch-grid-cell", {
153
+ class: "grid-cell-module__info"
154
+ }, i("span", {
155
+ class: "grid-cell-module__name"
156
+ }, this.getModuleData(e, "name")), i("span", {
157
+ class: "grid-cell-module__description"
158
+ }, this.getModuleData(e, "description"))), i("ch-grid-cell", null, this.selectedModule && this.selectedModule.id === e.id ? i("gxg-button", {
159
+ disabled: !this.actionCompleted || this.getModuleData(e, "action") === "incompatible" || this.getModuleData(e, "action") === "not-installable",
160
+ fit: true,
161
+ part: "module-action",
162
+ onClick: () => {
163
+ this.actionCompleted = false;
164
+ this.closeProgressBar = false;
165
+ this.executeActionCallbackHandler(e);
166
+ }
167
+ }, this.getActionFromCurrentModuleVersion()) : null))))));
168
+ this.renderEmptyStateModules = () => i("gx-ide-empty-state", {
169
+ stateIcon: "mercury/filters",
170
+ stateTitle: this._componentLocale.modules.noModulesFilter
171
+ });
172
+ this.moduleVersionIconColor = e => {
173
+ const t = this.getModuleData(e, "action");
174
+ if (t === "not-installable" || t === "incompatible") {
175
+ return "warning";
176
+ } else if (t === "install") {
177
+ return "mercury-primary-disabled";
178
+ } else {
179
+ return "mercury-primary";
180
+ }
181
+ };
182
+ /* module details/information renders*/ this.renderModuleName = () => i("gxg-title", {
183
+ part: "module-info__name",
184
+ type: "title-05"
185
+ }, i("div", {
186
+ class: "module-info__name"
187
+ }, i("gxg-icon", {
188
+ type: "objects/module",
189
+ color: this.moduleVersionIconColor(this.selectedModule)
190
+ }), this.getModuleData(this.selectedModule, "name")));
191
+ this.renderModuleAlertMessage = () => {
192
+ const e = this.getModuleData(this.selectedModule, "alertMessage");
193
+ if (e) {
194
+ return i("p", {
195
+ class: "module-info__alert-message"
196
+ }, e);
197
+ }
198
+ };
199
+ this.renderModuleAction = () => {
200
+ const e = this.getActionFromCurrentModuleVersion();
201
+ let t;
202
+ let r = "module-info__action-container";
203
+ if (e === "restore" || e === "update") {
204
+ t = this._componentLocale.modulesInformation.moduleProperties.installed;
205
+ r += ` module-info__action-container--installed`;
206
+ } else if (e === "incompatible" || e === "not-installable") {
207
+ t = "Can not be installed";
208
+ } else {
209
+ t = this._componentLocale.modulesInformation.moduleProperties.notInstalled;
210
+ }
211
+ return i("div", {
212
+ class: r
213
+ }, i("gxg-text", {
214
+ part: "module-info__action"
215
+ }, t));
216
+ };
217
+ this.moduleVersionsValueChangedHandler = e => {
218
+ const t = e.detail;
219
+ this.updateSelectedModuleVersion(t);
220
+ };
221
+ this.moduleVersionsItemChangedHandler = e => {
222
+ const t = e.detail.value;
223
+ this.updateSelectedModuleVersion(t);
224
+ };
225
+ this.updateSelectedModuleVersion = e => {
226
+ if (e) {
227
+ this.selectedModule = Object.assign(Object.assign({}, this.selectedModule), {
228
+ currentVersion: e
229
+ });
230
+ this.modulesSelectedVersion.set(this.selectedModule.id, e);
231
+ }
232
+ };
233
+ this.renderModuleVersions = () => i("div", {
234
+ part: "available-versions"
235
+ }, i("gxg-combo-box", {
236
+ id: "versions-combo-box",
237
+ "disable-filter": true,
238
+ value: this.getModuleData(this.selectedModule, "id"),
239
+ part: "module-versions",
240
+ "display-validation-styles": true,
241
+ "display-validation-message": true,
242
+ label: this._componentLocale.modulesInformation.moduleProperties.availableVersions,
243
+ labelPosition: "start",
244
+ centerLabel: true,
245
+ onValueChanged: this.moduleVersionsValueChangedHandler,
246
+ disabled: this.loadingServer
247
+ }, this.selectedModule.versions.map((e => i("gxg-combo-box-item", {
248
+ value: e.id,
249
+ onItemSelected: this.moduleVersionsItemChangedHandler
250
+ }, e.id)))));
251
+ this.selectedButtonChangedHandler = e => {
252
+ const t = e.detail.replace("btn-", "");
253
+ this.filterModulesByType(t);
254
+ };
255
+ this.serverItemSelectedHandler = e => {
256
+ const t = e.detail.value;
257
+ this.serverSelectedCallbackHandler(t);
258
+ };
259
+ this.serverValueChangedHandler = e => {
260
+ const t = e.detail;
261
+ this.serverSelectedCallbackHandler(t);
262
+ };
263
+ this.progressBarCloseHandler = () => {
264
+ setTimeout((() => {
265
+ this.actionCompleted = true;
266
+ this.closeProgressBar = true;
267
+ // reset
268
+ this.progressValue = 0;
269
+ this.progressState = "in-progress";
270
+ }), 400);
271
+ // delay to force the footer line disappear after the top-state-bar has been closed.
272
+ };
273
+ this.modulesAll = [];
274
+ this.filteredModules = [];
275
+ this.selectedModule = undefined;
276
+ this.selectedServerId = undefined;
277
+ this.selectedModuleAction = {
278
+ message: "",
279
+ progress: 0,
280
+ state: "in-progress"
281
+ };
282
+ this.modulesSelectedVersion = new Map;
283
+ this.actionCompleted = true;
284
+ this.closeProgressBar = true;
285
+ this.progressValue = 0;
286
+ this.progressState = "in-progress";
287
+ this.loadingServer = false;
288
+ this.displayTitle = false;
289
+ this.servers = [];
290
+ this.serverSelectedCallback = undefined;
291
+ this.executeActionCallback = undefined;
292
+ this.addServerCallback = undefined;
293
+ this.serverContextMenuCallback = undefined;
294
+ }
295
+ modulesAllWatcher(e) {
296
+ this.updateModulesSelectedVersion(e);
297
+ }
298
+ loadingServerHandler(e) {
299
+ if (e) {
300
+ this.loaderEl.show = true;
301
+ } else {
302
+ this.loaderEl.show = false;
303
+ }
304
+ }
305
+ // 6.COMPONENT LIFECYCLE EVENTS //
306
+ componentDidRender() {
307
+ if (!this.renderedFirstTime) {
308
+ this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
309
+ this.renderedFirstTime = true;
310
+ }
311
+ }
312
+ async componentWillLoad() {
313
+ this._componentLocale = await s.getComponentStrings(this.el);
314
+ }
315
+ async componentDidLoad() {
316
+ await this.serverSelectedCallbackHandler(this.servers[0].id);
317
+ }
318
+ // 7.LISTENERS //
319
+ onPropValueChange(e) {
320
+ this.filteredModules = [ ...e ];
321
+ }
322
+ // 8.PUBLIC METHODS API //
323
+ /**
324
+ * validate
325
+ */
326
+ async validate() {
327
+ return true;
328
+ }
329
+ // 11.RENDER() FUNCTION //
330
+ render() {
331
+ return i(r, {
332
+ class: {
333
+ "gx-ide-component": true
334
+ }
335
+ }, i("div", {
336
+ class: "gx-ide-main-wrapper"
337
+ }, i("gx-ide-container", {
338
+ noContentPadding: true,
339
+ noAboveFooterPadding: true,
340
+ noBorderAboveFooter: this.closeProgressBar,
341
+ part: "servers",
342
+ containerTitle: this.displayTitle ? this._componentLocale.componentName : null
343
+ }, i("main", {
344
+ class: "main"
345
+ }, i("div", {
346
+ class: "modules__container"
347
+ }, i("header", {
348
+ class: "modules__header"
349
+ }, i("div", {
350
+ class: "modules__combo-container"
351
+ }, i("gxg-label", null, this._componentLocale.modules.selectServer), i("div", {
352
+ class: "modules__combo"
353
+ }, i("gxg-combo-box", {
354
+ disableFilter: true,
355
+ onValueChanged: this.serverValueChangedHandler
356
+ }, this.servers.map((e => i("gxg-combo-box-item", {
357
+ value: e.id,
358
+ onItemSelected: this.serverItemSelectedHandler
359
+ }, e.name)))), i("span", {
360
+ class: "modules__menu-container"
361
+ }, i("gxg-button", {
362
+ type: "secondary-icon-only",
363
+ icon: "gemini-tools/show-more-horizontal",
364
+ onClick: this.showModuleMenu
365
+ }))))), i("div", {
366
+ class: "modules__main"
367
+ }, i("div", {
368
+ class: "modules__main-header"
369
+ }, i("gxg-form-text", {
370
+ label: this._componentLocale.modules.searchModules,
371
+ labelPosition: "above",
372
+ centerLabel: false,
373
+ onValueChanged: e => {
374
+ this.handleFilterChange(e.detail);
375
+ },
376
+ disabled: this.loadingServer
377
+ }), i("gxg-buttons-container", {
378
+ reduced: true,
379
+ fullWidth: true,
380
+ class: "modules__browser",
381
+ onSelectedButtonChanged: this.selectedButtonChangedHandler
382
+ }, i("gxg-button", {
383
+ id: "btn-browse",
384
+ selected: true,
385
+ disabled: this.loadingServer
386
+ }, this._componentLocale.modules.buttonsContainer.browse), i("gxg-button", {
387
+ id: "btn-installed",
388
+ disabled: this.loadingServer
389
+ }, this._componentLocale.modules.buttonsContainer.installed), i("gxg-button", {
390
+ id: "btn-updates",
391
+ disabled: this.loadingServer
392
+ }, this._componentLocale.modules.buttonsContainer.updates))), i("div", {
393
+ class: "grid-container",
394
+ ref: e => this.serversDetail = e
395
+ }, this.filteredModules.length > 0 ? this.renderModulesGrid() : this.renderEmptyStateModules()))), this.selectedModule ? i("div", {
396
+ class: "module-info"
397
+ }, i("header", {
398
+ class: "module-info__header"
399
+ }, this.renderModuleName(), this.renderModuleAlertMessage(), this.renderModuleAction(), this.renderModuleVersions()), i("div", {
400
+ class: "module-info__properties gxg-scrollbar"
401
+ }, a(this.getModuleData(this.selectedModule, "properties")))) : i("gx-ide-empty-state", {
402
+ class: "recent-objects__empty-state",
403
+ stateIcon: "objects/module",
404
+ stateTitle: this._componentLocale.modulesInformation.emptyState.title,
405
+ stateDescription: this._componentLocale.modulesInformation.emptyState.description
406
+ })), i("gxg-top-state-bar", {
407
+ slot: "footer-above",
408
+ part: "progress-bar",
409
+ stateType: this.progressState,
410
+ noBorder: true,
411
+ caption: this.selectedModuleAction.message || this._componentLocale.progressBar.defaultCaption,
412
+ progress: this.progressValue,
413
+ active: !this.actionCompleted || !this.closeProgressBar,
414
+ autoClose: false,
415
+ withClose: true,
416
+ closedCallback: this.progressBarCloseHandler
417
+ }))), i("gxg-ide-loader", {
418
+ loaderTitle: this._componentLocale.servers.loading,
419
+ ref: e => this.loaderEl = e,
420
+ container: this.serversDetail,
421
+ borderRadius: "0 0 0 8px"
422
+ }));
423
+ }
424
+ static get assetsDirs() {
425
+ return [ "gx-ide-assets/manage-module-references" ];
426
+ }
427
+ get el() {
428
+ return o(this);
429
+ }
430
+ static get watchers() {
431
+ return {
432
+ modulesAll: [ "modulesAllWatcher", "onPropValueChange" ],
433
+ loadingServer: [ "loadingServerHandler" ]
434
+ };
435
+ }
436
+ };
437
+
438
+ n.style = l;
439
+
440
+ export { n as gx_ide_manage_module_references };
441
+ //# sourceMappingURL=p-713ad05d.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["manageModuleReferencesCss","GxManageModuleReferences","this","renderedFirstTime","updateModulesSelectedVersion","modulesAll","selectedServerId","selectedServerIdOnModulesAllUpdate","modulesSelectedVersion","clear","forEach","module","set","id","versions","length","newModule","get","undefined","getActionFromCurrentModuleVersion","action","getModuleData","selectedModule","onProgress","message","progress","state","data","selectedModuleAction","Object","assign","progressValue","progressState","handleModuleChange","event","selectedModuleId","detail","rowsId","foundModule","find","item","serverSelectedCallbackHandler","async","serverSelectedCallback","loadingServer","resolvedObjects","filterModulesByType","filteredModules","handleFilterChange","value","trimmedValue","trim","lowerCaseValue","toLowerCase","filter","selectedVersionName","includes","executeActionCallbackHandler","executeActionCallback","console","log","moduleSelectedVersionId","actionCompleted","type","currentVersion","version","showModuleMenu","e","serverContextMenuCallback","buttonBoundingClientRect","target","getBoundingClientRect","selection","clientX","x","clientY","y","dataType","selectedVersionId","selectedVersion","selectedVersionData","renderModulesGrid","h","noBorder","fullHeight","rowSelectionMode","part","class","onSelectionChanged","settingable","size","map","rowid","key","selected","color","moduleVersionIconColor","disabled","fit","onClick","closeProgressBar","renderEmptyStateModules","stateIcon","stateTitle","_componentLocale","modules","noModulesFilter","moduleAction","renderModuleName","renderModuleAlertMessage","alertMessage","renderModuleAction","actionDescription","cssClass","modulesInformation","moduleProperties","installed","notInstalled","moduleVersionsValueChangedHandler","versionId","updateSelectedModuleVersion","moduleVersionsItemChangedHandler","renderModuleVersions","label","availableVersions","labelPosition","centerLabel","onValueChanged","onItemSelected","selectedButtonChangedHandler","replace","serverItemSelectedHandler","serverId","serverValueChangedHandler","progressBarCloseHandler","setTimeout","Map","modulesAllWatcher","loadingServerHandler","loading","loaderEl","show","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","servers","onPropValueChange","newModulesData","validate","render","Host","noContentPadding","noAboveFooterPadding","noBorderAboveFooter","containerTitle","displayTitle","selectServer","disableFilter","name","icon","searchModules","reduced","fullWidth","onSelectedButtonChanged","buttonsContainer","browse","updates","ref","serversDetail","renderModuleDataProperties","emptyState","title","stateDescription","description","slot","stateType","caption","progressBar","defaultCaption","active","autoClose","withClose","closedCallback","loaderTitle","container","borderRadius"],"sources":["src/components/modules/manage-module-references/manage-module-references.scss?tag=gx-ide-manage-module-references&encapsulation=shadow","src/components/modules/manage-module-references/manage-module-references.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n/*--- General ---*/\np,\nul {\n font-size: var(--font-size-lg);\n margin: 0;\n}\np {\n line-height: 1.6em;\n}\n/*--- Header ---*/\n.header {\n align-items: center;\n grid-template-columns: 1fr auto;\n grid-template-rows: 1fr;\n}\n.main {\n display: grid;\n //grid-template-columns: 1fr 2fr 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n height: 100%;\n overflow: auto;\n}\nch-grid-columnset {\n display: none;\n}\n.grid-cell-module {\n &__info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--mer-spacing--xxxs);\n }\n &__name {\n font-weight: var(--mer-font__weight--bold);\n }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n}\n\n/*--- Servers Container ---*/\n.grid-container {\n height: 100%;\n overflow: auto;\n gx-ide-empty-state {\n height: 100%;\n }\n}\n.servers-container {\n display: none;\n height: 100%;\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding)\n 0 var(--gxg-list-box-main__padding);\n\n gxg-button {\n width: 100%;\n }\n }\n}\n\n/*--- Modules (Header) ---*/\n.modules {\n &__header {\n padding: var(--gxg-list-box-main__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__combo-container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__combo {\n gxg-combo-box {\n flex: 1;\n }\n display: flex;\n flex-direction: row;\n gap: var(--mer-spacing--xs);\n }\n &__container {\n border-inline-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n }\n &__main {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &-header {\n display: flex;\n padding: var(--mer-spacing--xs);\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n }\n}\n\n/*--- Module Info ---*/\n.module-info {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &__name {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n --ds-icon-size-box--regular: 24px;\n --ds-icon-size--regular: 24px;\n font-weight: var(--mer-font__weight--bold);\n }\n\n &__header {\n padding: var(--gx-ide-container__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n\n &__action-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--mer-spacing--xs);\n &:before {\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n display: block;\n background-color: var(--mer-icon__primary--disabled);\n }\n &--installed:before {\n background-color: var(--mer-icon__primary);\n }\n }\n\n &__alert-message {\n margin-block-start: var(--mer-spacing--xxs);\n background-color: var(--mer-color__tinted-yellow--5);\n color: var(--mer-text__on-elevation);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__warning);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--md);\n }\n\n &__divider {\n width: calc(100% - var(--gx-ide-container__padding) * 4);\n padding: 0 var(--gx-ide-container__padding);\n margin: 0 auto;\n border: 0;\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n &__properties {\n display: flex;\n flex-direction: column;\n padding: var(--gx-ide-container__padding);\n gap: var(--mer-spacing--xs);\n overflow: auto;\n }\n}\n\n.md-property {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &--inline {\n grid-template-columns: auto 1fr;\n }\n &--block {\n }\n &__key {\n font-weight: var(--font-weight-bold);\n max-width: 150px;\n }\n &__value {\n font-size: var(--mer-font__size--xxs);\n }\n &__key,\n &__value {\n > * {\n display: inline-block;\n }\n }\n &__list {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n > ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xxs);\n margin-inline-start: var(--mer-spacing--xs);\n\n li {\n position: relative;\n padding-inline-start: 12px;\n line-height: var(--ds-base-font-line-height--comfortable);\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 7px;\n display: inline-block;\n width: var(--mer-spacing--xxs);\n height: var(--mer-spacing--xxs);\n background-color: var(--mer-text__on-surface);\n }\n }\n }\n }\n}\n\n.md-property,\n.md-property__list {\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n padding-block-end: var(--mer-spacing--xs);\n\n &:last-child {\n border-block-end: 0;\n padding-block-end: 0;\n }\n}\n\ngxg-ide-loader {\n border-radius: var(--mer-border__radius--md);\n}\n","/* 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"],"mappings":"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"}