@genexus/genexus-ide-ui 1.1.3 → 1.1.5

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 (850) hide show
  1. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +1 -0
  3. package/dist/cjs/code-render-0e9837c4.js +86 -0
  4. package/dist/cjs/code-render-0e9837c4.js.map +1 -0
  5. package/dist/cjs/{common-72f91a78.js → common-090e6d3a.js} +28 -12
  6. package/dist/cjs/common-090e6d3a.js.map +1 -0
  7. package/dist/cjs/{form-validation-178cf461.js → form-validation-ffe2b957.js} +7 -3
  8. package/dist/cjs/form-validation-ffe2b957.js.map +1 -0
  9. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  10. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +10 -16
  12. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +4 -5
  14. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +180 -168
  16. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +2 -2
  18. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +4 -6
  20. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +3 -4
  22. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +2 -2
  24. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
  26. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +2 -3
  28. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +13 -16
  30. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +3 -4
  32. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-card.cjs.entry.js +2 -2
  34. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +239 -0
  36. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
  37. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +18 -23
  38. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -2
  40. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +9 -14
  42. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +5 -7
  44. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +7 -9
  46. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -8
  48. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -8
  50. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +17 -21
  52. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-design-import.cjs.entry.js +27 -36
  54. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -2
  56. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +3 -4
  58. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +6 -9
  62. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
  64. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +63 -49
  66. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +3 -4
  68. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -8
  70. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +10 -14
  72. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +2 -2
  74. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +19 -11
  76. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +8 -9
  78. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  79. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +4 -7
  80. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
  81. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +14 -19
  82. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  83. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +34 -39
  84. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  85. package/dist/cjs/gx-ide-new-object.cjs.entry.js +6 -9
  86. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  87. package/dist/cjs/gx-ide-new-version.cjs.entry.js +3 -3
  88. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  89. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +10 -12
  90. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  91. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +8 -13
  92. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  93. package/dist/cjs/gx-ide-references.cjs.entry.js +22 -28
  94. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  95. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
  96. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  97. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +10 -17
  98. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  99. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +3 -4
  100. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  101. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -10
  102. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  103. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -3
  104. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  105. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
  106. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -8
  107. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  108. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -13
  109. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  110. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  111. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  112. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  113. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
  114. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  115. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +3 -3
  116. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  117. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +2 -2
  118. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  119. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +4 -5
  120. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  121. package/dist/cjs/gx-ide-template.cjs.entry.js +2 -2
  122. package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
  123. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +8 -11
  124. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  125. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +2 -2
  126. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  127. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +11 -18
  128. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  129. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +19 -22
  130. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  131. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +20 -9
  132. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  133. package/dist/cjs/{helpers-30f109a4.js → helpers-e5a13fa5.js} +6 -6
  134. package/dist/cjs/helpers-e5a13fa5.js.map +1 -0
  135. package/dist/cjs/index.cjs.js +2 -2
  136. package/dist/cjs/index.cjs.js.map +1 -1
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/cjs/{locale-ff30a5f3.js → locale-36b93b1b.js} +4 -4
  139. package/dist/cjs/locale-36b93b1b.js.map +1 -0
  140. package/dist/collection/collection-manifest.json +2 -1
  141. package/dist/collection/common/common.js +23 -13
  142. package/dist/collection/common/common.js.map +1 -1
  143. package/dist/collection/common/form-validation.js +7 -4
  144. package/dist/collection/common/form-validation.js.map +1 -1
  145. package/dist/collection/common/helpers.js +9 -10
  146. package/dist/collection/common/helpers.js.map +1 -1
  147. package/dist/collection/common/locale.js +3 -3
  148. package/dist/collection/common/locale.js.map +1 -1
  149. package/dist/collection/common/render-suggest.js +1 -1
  150. package/dist/collection/common/render-suggest.js.map +1 -1
  151. package/dist/collection/components/_helpers/card/card.css +9 -0
  152. package/dist/collection/components/_helpers/container/container.js +1 -2
  153. package/dist/collection/components/_helpers/container/container.js.map +1 -1
  154. package/dist/collection/components/_helpers/directory-selector/directory-selector.js +1 -2
  155. package/dist/collection/components/_helpers/directory-selector/directory-selector.js.map +1 -1
  156. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +9 -0
  157. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +2 -4
  158. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  159. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  160. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  161. package/dist/collection/components/_helpers/list-selector/list-selector.css +9 -0
  162. package/dist/collection/components/_starting-template/template.css +9 -0
  163. package/dist/collection/components/ai-assistant/ai-assistant.css +9 -0
  164. package/dist/collection/components/ai-assistant/ai-assistant.js +8 -14
  165. package/dist/collection/components/ai-assistant/ai-assistant.js.map +1 -1
  166. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +37 -27
  167. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +217 -182
  168. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
  169. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
  170. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
  171. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
  172. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +9 -0
  173. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +9 -0
  174. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -4
  175. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
  176. package/dist/collection/components/bpm/import-files/bpm-import-files.css +9 -0
  177. package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -2
  178. package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
  179. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +9 -0
  180. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +9 -0
  181. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js +1 -2
  182. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js.map +1 -1
  183. package/dist/collection/components/bpm/task-documents/helpers.js +1 -1
  184. package/dist/collection/components/bpm/task-documents/helpers.js.map +1 -1
  185. package/dist/collection/components/bpm/task-documents/task-documents.js +7 -9
  186. package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
  187. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +9 -0
  188. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js +1 -2
  189. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js.map +1 -1
  190. package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
  191. package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
  192. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
  193. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  194. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  195. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  196. package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
  197. package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
  198. package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
  199. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
  200. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
  201. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  202. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  203. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  204. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  205. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  206. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  207. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  208. package/dist/collection/components/chat/code-render.js +65 -0
  209. package/dist/collection/components/chat/code-render.js.map +1 -0
  210. package/dist/collection/components/current-user-info/current-user-info.js +2 -3
  211. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  212. package/dist/collection/components/dashboard-home/dashboard-home.css +9 -0
  213. package/dist/collection/components/dashboard-home/dashboard-home.js +2 -3
  214. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  215. package/dist/collection/components/data-selector/data-selector.css +1 -0
  216. package/dist/collection/components/data-selector/data-selector.js +2 -3
  217. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  218. package/dist/collection/components/data-type-selector/data-type-selector.js +3 -4
  219. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  220. package/dist/collection/components/deployment-tool/deployment-tool.css +9 -0
  221. package/dist/collection/components/deployment-tool/deployment-tool.js +11 -18
  222. package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -1
  223. package/dist/collection/components/deployment-tool/helpers.js +4 -1
  224. package/dist/collection/components/deployment-tool/helpers.js.map +1 -1
  225. package/dist/collection/components/design-import/design-import.js +18 -26
  226. package/dist/collection/components/design-import/design-import.js.map +1 -1
  227. package/dist/collection/components/design-import/helpers.js +1 -1
  228. package/dist/collection/components/design-import/helpers.js.map +1 -1
  229. package/dist/collection/components/file-uploader/file-uploader.css +9 -0
  230. package/dist/collection/components/file-uploader/file-uploader.js +59 -44
  231. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
  232. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +9 -0
  233. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js +1 -2
  234. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js.map +1 -1
  235. package/dist/collection/components/kb-manager-import/kb-manager-import.js +4 -7
  236. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  237. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +9 -0
  238. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +1 -2
  239. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  240. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +9 -0
  241. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +2 -2
  242. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  243. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +13 -4
  244. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
  245. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +9 -0
  246. package/dist/collection/components/navigation-report/navigation-report.js +3 -6
  247. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
  248. package/dist/collection/components/new-environment/new-environment.js +10 -15
  249. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  250. package/dist/collection/components/new-kb/new-kb.js +28 -32
  251. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  252. package/dist/collection/components/new-object/new-object.js +5 -8
  253. package/dist/collection/components/new-object/new-object.js.map +1 -1
  254. package/dist/collection/components/new-version/new-version.js +2 -2
  255. package/dist/collection/components/new-version/new-version.js.map +1 -1
  256. package/dist/collection/components/object-selector/object-selector.css +1 -0
  257. package/dist/collection/components/object-selector/object-selector.js +4 -5
  258. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  259. package/dist/collection/components/open-api-import/open-api-import.js +4 -8
  260. package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
  261. package/dist/collection/components/references/helpers.js +9 -13
  262. package/dist/collection/components/references/helpers.js.map +1 -1
  263. package/dist/collection/components/references/references.css +9 -0
  264. package/dist/collection/components/references/references.js +9 -11
  265. package/dist/collection/components/references/references.js.map +1 -1
  266. package/dist/collection/components/select-kb-items/helpers.js +5 -10
  267. package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
  268. package/dist/collection/components/select-kb-items/select-kb-items.js +1 -2
  269. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  270. package/dist/collection/components/select-user-team/helpers.js +1 -1
  271. package/dist/collection/components/select-user-team/helpers.js.map +1 -1
  272. package/dist/collection/components/select-user-team/select-user-team.js +1 -2
  273. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  274. package/dist/collection/components/sign-in-team/sign-in-team.js +1 -2
  275. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  276. package/dist/collection/components/splash/splash.js +2 -3
  277. package/dist/collection/components/splash/splash.js.map +1 -1
  278. package/dist/collection/components/start-page/start-page.js +3 -6
  279. package/dist/collection/components/start-page/start-page.js.map +1 -1
  280. package/dist/collection/components/team-dev/commit/commit.css +10 -0
  281. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +16 -21
  282. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
  283. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -8
  284. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  285. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +9 -0
  286. package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -5
  287. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
  288. package/dist/collection/components/team-dev/update/update.css +11 -0
  289. package/dist/collection/components/team-dev/update/update.js +1 -2
  290. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  291. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +9 -0
  292. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -1
  293. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
  294. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +9 -0
  295. package/dist/collection/components/welcome-page/welcome-page.js +5 -7
  296. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  297. package/dist/collection/components/wf-settings/wf-settings.css +9 -0
  298. package/dist/collection/components/ww-attributes/helpers.js +1 -2
  299. package/dist/collection/components/ww-attributes/helpers.js.map +1 -1
  300. package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
  301. package/dist/collection/components/ww-attributes/ww-attributes.js +6 -11
  302. package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
  303. package/dist/collection/components/ww-files/helpers.js +1 -2
  304. package/dist/collection/components/ww-files/helpers.js.map +1 -1
  305. package/dist/collection/components/ww-files/ww-files.css +1 -0
  306. package/dist/collection/components/ww-files/ww-files.js +16 -18
  307. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  308. package/dist/collection/components/ww-images/ww-images.css +10 -0
  309. package/dist/collection/components/ww-images/ww-images.js +16 -5
  310. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  311. package/dist/collection/index.js +1 -1
  312. package/dist/collection/index.js.map +1 -1
  313. package/dist/collection/showcase/chat-container/callbacks.js +105 -90
  314. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  315. package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
  316. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  317. package/dist/collection/testing/locale.e2e.js +4 -3
  318. package/dist/collection/testing/locale.e2e.js.map +1 -1
  319. package/dist/components/MERCURY_ASSETS.js +5 -1
  320. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  321. package/dist/components/ai-message.js +1 -2
  322. package/dist/components/ai-message.js.map +1 -1
  323. package/dist/components/bpm-objects-selector.js +1 -1
  324. package/dist/components/bpm-objects-selector.js.map +1 -1
  325. package/dist/components/chat-container.js +70 -7
  326. package/dist/components/chat-container.js.map +1 -1
  327. package/dist/components/chat-welcome.js +146 -0
  328. package/dist/components/chat-welcome.js.map +1 -0
  329. package/dist/components/code-render.js +68 -41
  330. package/dist/components/code-render.js.map +1 -1
  331. package/dist/components/common.js +27 -11
  332. package/dist/components/common.js.map +1 -1
  333. package/dist/components/container.js +1 -2
  334. package/dist/components/container.js.map +1 -1
  335. package/dist/components/entity-selector.js +3 -6
  336. package/dist/components/entity-selector.js.map +1 -1
  337. package/dist/components/file-item.js +1 -2
  338. package/dist/components/file-item.js.map +1 -1
  339. package/dist/components/form-validation.js +6 -2
  340. package/dist/components/form-validation.js.map +1 -1
  341. package/dist/components/gx-ide-ai-assistant.js +9 -15
  342. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  343. package/dist/components/gx-ide-bpm-app-declaration.js +188 -185
  344. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  345. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  346. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  347. package/dist/components/gx-ide-bpm-export-xpdl.js +3 -5
  348. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  349. package/dist/components/gx-ide-bpm-import-files.js +2 -3
  350. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  351. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  352. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  353. package/dist/components/gx-ide-bpm-sync-gam-roles.js +1 -2
  354. package/dist/components/gx-ide-bpm-sync-gam-roles.js.map +1 -1
  355. package/dist/components/gx-ide-bpm-task-documents.js +9 -12
  356. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  357. package/dist/components/gx-ide-bpm-timer-duration.js +2 -3
  358. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  359. package/dist/components/gx-ide-card.js +1 -1
  360. package/dist/components/gx-ide-card.js.map +1 -1
  361. package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
  362. package/dist/components/gx-ide-chat-welcome.js +8 -0
  363. package/dist/components/gx-ide-chat-welcome.js.map +1 -0
  364. package/dist/components/gx-ide-connect-gx-server.js +16 -21
  365. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  366. package/dist/components/gx-ide-create-kb-from-server.js +5 -10
  367. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  368. package/dist/components/gx-ide-current-user-info.js +3 -5
  369. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  370. package/dist/components/gx-ide-dashboard-home.js +4 -6
  371. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  372. package/dist/components/gx-ide-data-selector.js +4 -6
  373. package/dist/components/gx-ide-data-selector.js.map +1 -1
  374. package/dist/components/gx-ide-data-type-selector.js +4 -6
  375. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  376. package/dist/components/gx-ide-deployment-tool.js +16 -20
  377. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  378. package/dist/components/gx-ide-design-import.js +20 -29
  379. package/dist/components/gx-ide-design-import.js.map +1 -1
  380. package/dist/components/gx-ide-directory-selector.js +1 -2
  381. package/dist/components/gx-ide-directory-selector.js.map +1 -1
  382. package/dist/components/gx-ide-edit-module-server.js +2 -3
  383. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  384. package/dist/components/gx-ide-empty-state2.js +1 -1
  385. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  386. package/dist/components/gx-ide-file-uploader.js +61 -47
  387. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  388. package/dist/components/gx-ide-gam-installation-settings.js +2 -3
  389. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  390. package/dist/components/gx-ide-kb-manager-export.js +1 -2
  391. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  392. package/dist/components/gx-ide-kb-manager-import.js +5 -9
  393. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  394. package/dist/components/gx-ide-manage-module-references-v2.js +15 -7
  395. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  396. package/dist/components/gx-ide-manage-module-references.js +4 -5
  397. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  398. package/dist/components/gx-ide-navigation-report.js +3 -6
  399. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  400. package/dist/components/gx-ide-new-environment.js +10 -15
  401. package/dist/components/gx-ide-new-environment.js.map +1 -1
  402. package/dist/components/gx-ide-new-kb.js +29 -34
  403. package/dist/components/gx-ide-new-kb.js.map +1 -1
  404. package/dist/components/gx-ide-new-object.js +5 -8
  405. package/dist/components/gx-ide-new-object.js.map +1 -1
  406. package/dist/components/gx-ide-new-version.js +2 -2
  407. package/dist/components/gx-ide-new-version.js.map +1 -1
  408. package/dist/components/gx-ide-object-selector.js +6 -8
  409. package/dist/components/gx-ide-object-selector.js.map +1 -1
  410. package/dist/components/gx-ide-open-api-import.js +5 -10
  411. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  412. package/dist/components/gx-ide-references.js +19 -25
  413. package/dist/components/gx-ide-references.js.map +1 -1
  414. package/dist/components/gx-ide-sc-chat-container.js +215 -100
  415. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  416. package/dist/components/gx-ide-select-kb-items.js +7 -14
  417. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  418. package/dist/components/gx-ide-select-user-team.js +2 -3
  419. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  420. package/dist/components/gx-ide-share-kb.js +3 -7
  421. package/dist/components/gx-ide-share-kb.js.map +1 -1
  422. package/dist/components/gx-ide-sign-in-team.js +1 -2
  423. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  424. package/dist/components/gx-ide-splash.js +3 -5
  425. package/dist/components/gx-ide-splash.js.map +1 -1
  426. package/dist/components/gx-ide-start-page.js +4 -8
  427. package/dist/components/gx-ide-start-page.js.map +1 -1
  428. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  429. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  430. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  431. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  432. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
  433. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  434. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  435. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  436. package/dist/components/gx-ide-team-dev-update.js +2 -3
  437. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  438. package/dist/components/gx-ide-template.js +1 -1
  439. package/dist/components/gx-ide-template.js.map +1 -1
  440. package/dist/components/gx-ide-welcome-page.js +6 -9
  441. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  442. package/dist/components/gx-ide-wf-settings.js +1 -1
  443. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  444. package/dist/components/gx-ide-ww-attributes.js +9 -16
  445. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  446. package/dist/components/gx-ide-ww-files.js +18 -21
  447. package/dist/components/gx-ide-ww-files.js.map +1 -1
  448. package/dist/components/gx-ide-ww-images.js +17 -6
  449. package/dist/components/gx-ide-ww-images.js.map +1 -1
  450. package/dist/components/helpers.js +5 -5
  451. package/dist/components/helpers.js.map +1 -1
  452. package/dist/components/index.js.map +1 -1
  453. package/dist/components/list-selector-item.js +1 -1
  454. package/dist/components/list-selector-item.js.map +1 -1
  455. package/dist/components/list-selector.js +1 -1
  456. package/dist/components/list-selector.js.map +1 -1
  457. package/dist/components/locale.js +3 -3
  458. package/dist/components/locale.js.map +1 -1
  459. package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
  460. package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
  461. package/dist/esm/code-render-f3afd300.js +83 -0
  462. package/dist/esm/code-render-f3afd300.js.map +1 -0
  463. package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
  464. package/dist/esm/common-719c4daf.js.map +1 -0
  465. package/dist/esm/{form-validation-cd0215c6.js → form-validation-71dca8c6.js} +7 -3
  466. package/dist/esm/form-validation-71dca8c6.js.map +1 -0
  467. package/dist/esm/genexus-ide-ui.js +1 -1
  468. package/dist/esm/gx-ide-about.entry.js +1 -1
  469. package/dist/esm/gx-ide-ai-assistant.entry.js +10 -16
  470. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  471. package/dist/esm/gx-ide-ai-message.entry.js +3 -4
  472. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  473. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +181 -169
  474. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  475. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +2 -2
  476. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  477. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +4 -6
  478. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  479. package/dist/esm/gx-ide-bpm-import-files.entry.js +3 -4
  480. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  481. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +2 -2
  482. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  483. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
  484. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  485. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +2 -3
  486. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js.map +1 -1
  487. package/dist/esm/gx-ide-bpm-task-documents.entry.js +10 -13
  488. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  489. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +3 -4
  490. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  491. package/dist/esm/gx-ide-card.entry.js +2 -2
  492. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  493. package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
  494. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
  495. package/dist/esm/gx-ide-connect-gx-server.entry.js +18 -23
  496. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  497. package/dist/esm/gx-ide-container_2.entry.js +1 -2
  498. package/dist/esm/gx-ide-container_2.entry.js.map +1 -1
  499. package/dist/esm/gx-ide-create-kb-from-server.entry.js +7 -12
  500. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  501. package/dist/esm/gx-ide-current-user-info.entry.js +4 -6
  502. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  503. package/dist/esm/gx-ide-dashboard-home.entry.js +6 -8
  504. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  505. package/dist/esm/gx-ide-data-selector.entry.js +5 -7
  506. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  507. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -7
  508. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  509. package/dist/esm/gx-ide-deployment-tool.entry.js +17 -21
  510. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  511. package/dist/esm/gx-ide-design-import.entry.js +21 -30
  512. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  513. package/dist/esm/gx-ide-directory-selector.entry.js +1 -2
  514. package/dist/esm/gx-ide-directory-selector.entry.js.map +1 -1
  515. package/dist/esm/gx-ide-edit-module-server.entry.js +3 -4
  516. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  517. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  518. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  519. package/dist/esm/gx-ide-entity-selector.entry.js +4 -7
  520. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  521. package/dist/esm/gx-ide-file-item.entry.js +1 -2
  522. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  523. package/dist/esm/gx-ide-file-uploader.entry.js +62 -48
  524. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  525. package/dist/esm/gx-ide-gam-installation-settings.entry.js +3 -4
  526. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  527. package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -3
  528. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  529. package/dist/esm/gx-ide-kb-manager-import.entry.js +6 -10
  530. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  531. package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
  532. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  533. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +17 -9
  534. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  535. package/dist/esm/gx-ide-manage-module-references.entry.js +6 -7
  536. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  537. package/dist/esm/gx-ide-navigation-report.entry.js +4 -7
  538. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  539. package/dist/esm/gx-ide-new-environment.entry.js +14 -19
  540. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  541. package/dist/esm/gx-ide-new-kb.entry.js +33 -38
  542. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  543. package/dist/esm/gx-ide-new-object.entry.js +6 -9
  544. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  545. package/dist/esm/gx-ide-new-version.entry.js +3 -3
  546. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  547. package/dist/esm/gx-ide-object-selector.entry.js +8 -10
  548. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  549. package/dist/esm/gx-ide-open-api-import.entry.js +6 -11
  550. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  551. package/dist/esm/gx-ide-references.entry.js +20 -26
  552. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  553. package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
  554. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  555. package/dist/esm/gx-ide-select-kb-items.entry.js +8 -15
  556. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  557. package/dist/esm/gx-ide-select-user-team.entry.js +3 -4
  558. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  559. package/dist/esm/gx-ide-share-kb.entry.js +5 -9
  560. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  561. package/dist/esm/gx-ide-sign-in-team.entry.js +2 -3
  562. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  563. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  564. package/dist/esm/gx-ide-splash.entry.js +5 -7
  565. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  566. package/dist/esm/gx-ide-start-page.entry.js +5 -9
  567. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  568. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  569. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  570. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  571. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
  572. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  573. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +3 -3
  574. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  575. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +2 -2
  576. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  577. package/dist/esm/gx-ide-team-dev-update.entry.js +4 -5
  578. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  579. package/dist/esm/gx-ide-template.entry.js +2 -2
  580. package/dist/esm/gx-ide-template.entry.js.map +1 -1
  581. package/dist/esm/gx-ide-welcome-page.entry.js +7 -10
  582. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  583. package/dist/esm/gx-ide-wf-settings.entry.js +2 -2
  584. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  585. package/dist/esm/gx-ide-ww-attributes.entry.js +10 -17
  586. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  587. package/dist/esm/gx-ide-ww-files.entry.js +19 -22
  588. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  589. package/dist/esm/gx-ide-ww-images.entry.js +20 -9
  590. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  591. package/dist/esm/{helpers-10479d69.js → helpers-5f1c9a32.js} +6 -6
  592. package/dist/esm/helpers-5f1c9a32.js.map +1 -0
  593. package/dist/esm/index.js +2 -2
  594. package/dist/esm/index.js.map +1 -1
  595. package/dist/esm/loader.js +1 -1
  596. package/dist/esm/{locale-e5107fad.js → locale-643afe17.js} +4 -4
  597. package/dist/esm/locale-643afe17.js.map +1 -0
  598. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  599. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  600. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
  601. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
  602. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
  603. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  604. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  605. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  606. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  607. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  608. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  609. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  610. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  611. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  612. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  613. package/dist/genexus-ide-ui/index.esm.js +2 -2
  614. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  615. package/dist/genexus-ide-ui/{p-59ed3f39.entry.js → p-02fc47cd.entry.js} +3 -3
  616. package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-032b4a81.entry.js} +25 -30
  617. package/dist/genexus-ide-ui/p-032b4a81.entry.js.map +1 -0
  618. package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-0d83a34d.entry.js} +63 -69
  619. package/dist/genexus-ide-ui/p-0d83a34d.entry.js.map +1 -0
  620. package/dist/genexus-ide-ui/{p-22b8bdb1.entry.js → p-0e53f1ef.entry.js} +161 -163
  621. package/dist/genexus-ide-ui/p-0e53f1ef.entry.js.map +1 -0
  622. package/dist/genexus-ide-ui/p-11dccb8f.entry.js +309 -0
  623. package/dist/genexus-ide-ui/p-11dccb8f.entry.js.map +1 -0
  624. package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-29575656.entry.js} +85 -96
  625. package/dist/genexus-ide-ui/p-29575656.entry.js.map +1 -0
  626. package/dist/genexus-ide-ui/{p-683cb15e.entry.js → p-2be58a7a.entry.js} +3 -3
  627. package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-2dbf722d.entry.js} +77 -85
  628. package/dist/genexus-ide-ui/p-2dbf722d.entry.js.map +1 -0
  629. package/dist/genexus-ide-ui/{p-31beae9e.entry.js → p-2e90a13a.entry.js} +2 -3
  630. package/dist/genexus-ide-ui/p-2e90a13a.entry.js.map +1 -0
  631. package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-353810b8.entry.js} +99 -104
  632. package/dist/genexus-ide-ui/p-353810b8.entry.js.map +1 -0
  633. package/dist/genexus-ide-ui/{p-3b8db39e.entry.js → p-39c527ff.entry.js} +3 -3
  634. package/dist/genexus-ide-ui/p-3edbf07d.js +109 -0
  635. package/dist/genexus-ide-ui/p-3edbf07d.js.map +1 -0
  636. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
  637. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
  638. package/dist/genexus-ide-ui/{p-68969051.entry.js → p-45d2fa91.entry.js} +11 -12
  639. package/dist/genexus-ide-ui/p-45d2fa91.entry.js.map +1 -0
  640. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-460db3ff.entry.js} +11 -13
  641. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-460db3ff.entry.js.map} +1 -1
  642. package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
  643. package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
  644. package/dist/genexus-ide-ui/{p-50b22f23.entry.js → p-4d929210.entry.js} +3 -3
  645. package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js → p-501c7b1f.entry.js} +19 -22
  646. package/dist/genexus-ide-ui/p-501c7b1f.entry.js.map +1 -0
  647. package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-50eaa96d.entry.js} +99 -111
  648. package/dist/genexus-ide-ui/p-50eaa96d.entry.js.map +1 -0
  649. package/dist/genexus-ide-ui/p-51601b85.js +145 -0
  650. package/dist/genexus-ide-ui/p-51601b85.js.map +1 -0
  651. package/dist/genexus-ide-ui/{p-289c3290.js → p-549b8f0c.js} +16 -15
  652. package/dist/{esm/form-validation-cd0215c6.js.map → genexus-ide-ui/p-549b8f0c.js.map} +1 -1
  653. package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-5a42428d.entry.js} +16 -19
  654. package/dist/genexus-ide-ui/p-5a42428d.entry.js.map +1 -0
  655. package/dist/genexus-ide-ui/{p-ded7444c.entry.js → p-5da3e999.entry.js} +16 -17
  656. package/dist/genexus-ide-ui/p-5da3e999.entry.js.map +1 -0
  657. package/dist/genexus-ide-ui/{p-3ecdb582.entry.js → p-5e05f830.entry.js} +33 -39
  658. package/dist/genexus-ide-ui/p-5e05f830.entry.js.map +1 -0
  659. package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-6168d48c.entry.js} +165 -174
  660. package/dist/genexus-ide-ui/p-6168d48c.entry.js.map +1 -0
  661. package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-66d9269a.entry.js} +17 -22
  662. package/dist/genexus-ide-ui/p-66d9269a.entry.js.map +1 -0
  663. package/dist/genexus-ide-ui/{p-038c3f9b.entry.js → p-6dc05a27.entry.js} +4 -5
  664. package/dist/genexus-ide-ui/p-6dc05a27.entry.js.map +1 -0
  665. package/dist/genexus-ide-ui/{p-cd397078.entry.js → p-75e1aa31.entry.js} +5 -6
  666. package/dist/genexus-ide-ui/p-75e1aa31.entry.js.map +1 -0
  667. package/dist/genexus-ide-ui/{p-e502c2fd.entry.js → p-7782e1b8.entry.js} +56 -61
  668. package/dist/genexus-ide-ui/p-7782e1b8.entry.js.map +1 -0
  669. package/dist/genexus-ide-ui/{p-1bc2613e.entry.js → p-7cedb0f0.entry.js} +66 -69
  670. package/dist/genexus-ide-ui/p-7cedb0f0.entry.js.map +1 -0
  671. package/dist/genexus-ide-ui/{p-bac13202.entry.js → p-844b7117.entry.js} +17 -17
  672. package/dist/genexus-ide-ui/{p-311eedf3.js → p-857866f8.js} +8 -9
  673. package/dist/genexus-ide-ui/p-857866f8.js.map +1 -0
  674. package/dist/genexus-ide-ui/{p-74c81ca3.entry.js → p-8636a0bd.entry.js} +3 -3
  675. package/dist/genexus-ide-ui/{p-d095a37c.entry.js → p-8b046b4b.entry.js} +9 -10
  676. package/dist/genexus-ide-ui/p-8b046b4b.entry.js.map +1 -0
  677. package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-8f1f4126.entry.js} +10 -12
  678. package/dist/genexus-ide-ui/p-8f1f4126.entry.js.map +1 -0
  679. package/dist/genexus-ide-ui/{p-c6c955a3.entry.js → p-95f831a8.entry.js} +3 -3
  680. package/dist/genexus-ide-ui/{p-c91af626.entry.js → p-970d16ca.entry.js} +15 -15
  681. package/dist/genexus-ide-ui/{p-c91af626.entry.js.map → p-970d16ca.entry.js.map} +1 -1
  682. package/dist/genexus-ide-ui/{p-e4c2e200.entry.js → p-9a39e49c.entry.js} +6 -6
  683. package/dist/genexus-ide-ui/{p-beea29fa.entry.js → p-9a9ee1ee.entry.js} +3 -3
  684. package/dist/genexus-ide-ui/{p-961cd6c2.entry.js → p-9b238bf7.entry.js} +174 -181
  685. package/dist/genexus-ide-ui/p-9b238bf7.entry.js.map +1 -0
  686. package/dist/genexus-ide-ui/{p-54fbb568.entry.js → p-9c690c36.entry.js} +14 -17
  687. package/dist/genexus-ide-ui/p-9c690c36.entry.js.map +1 -0
  688. package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-a6029d9a.entry.js} +117 -131
  689. package/dist/genexus-ide-ui/p-a6029d9a.entry.js.map +1 -0
  690. package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-a86a8692.entry.js} +33 -39
  691. package/dist/genexus-ide-ui/p-a86a8692.entry.js.map +1 -0
  692. package/dist/genexus-ide-ui/{p-2a6683e1.entry.js → p-a8cc41e4.entry.js} +59 -62
  693. package/dist/genexus-ide-ui/p-a8cc41e4.entry.js.map +1 -0
  694. package/dist/genexus-ide-ui/{p-3d4355b4.entry.js → p-ac0438d6.entry.js} +9 -10
  695. package/dist/genexus-ide-ui/p-ac0438d6.entry.js.map +1 -0
  696. package/dist/genexus-ide-ui/{p-56331289.entry.js → p-b1833747.entry.js} +38 -45
  697. package/dist/genexus-ide-ui/p-b1833747.entry.js.map +1 -0
  698. package/dist/genexus-ide-ui/{p-6b957e82.entry.js → p-b211bca8.entry.js} +2 -2
  699. package/dist/genexus-ide-ui/{p-84618917.entry.js → p-be794132.entry.js} +229 -236
  700. package/dist/genexus-ide-ui/p-be794132.entry.js.map +1 -0
  701. package/dist/genexus-ide-ui/{p-a790c4c9.entry.js → p-bfd9066c.entry.js} +9 -9
  702. package/dist/genexus-ide-ui/p-bfd9066c.entry.js.map +1 -0
  703. package/dist/genexus-ide-ui/{p-9b5cb6b9.entry.js → p-c30b2104.entry.js} +7 -9
  704. package/dist/genexus-ide-ui/p-c30b2104.entry.js.map +1 -0
  705. package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-c5cca204.entry.js} +17 -20
  706. package/dist/genexus-ide-ui/p-c5cca204.entry.js.map +1 -0
  707. package/dist/genexus-ide-ui/p-cdf8b082.entry.js +338 -0
  708. package/dist/genexus-ide-ui/p-cdf8b082.entry.js.map +1 -0
  709. package/dist/genexus-ide-ui/{p-8f00263d.entry.js → p-d1cc4724.entry.js} +18 -13
  710. package/dist/genexus-ide-ui/p-d1cc4724.entry.js.map +1 -0
  711. package/dist/genexus-ide-ui/{p-1dd7be84.entry.js → p-daa29451.entry.js} +14 -17
  712. package/dist/genexus-ide-ui/p-daa29451.entry.js.map +1 -0
  713. package/dist/genexus-ide-ui/{p-67762237.entry.js → p-db4750ff.entry.js} +139 -148
  714. package/dist/genexus-ide-ui/p-db4750ff.entry.js.map +1 -0
  715. package/dist/genexus-ide-ui/{p-48826a6f.entry.js → p-db4f756a.entry.js} +123 -135
  716. package/dist/genexus-ide-ui/p-db4f756a.entry.js.map +1 -0
  717. package/dist/genexus-ide-ui/{p-3e936f26.entry.js → p-e1d75f00.entry.js} +3 -3
  718. package/dist/genexus-ide-ui/{p-3e936f26.entry.js.map → p-e1d75f00.entry.js.map} +1 -1
  719. package/dist/genexus-ide-ui/{p-a59a07e2.entry.js → p-e26e05c7.entry.js} +13 -19
  720. package/dist/genexus-ide-ui/p-e26e05c7.entry.js.map +1 -0
  721. package/dist/genexus-ide-ui/{p-2027c939.entry.js → p-e37e95e7.entry.js} +4 -4
  722. package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-e5571f49.entry.js} +26 -28
  723. package/dist/genexus-ide-ui/p-e5571f49.entry.js.map +1 -0
  724. package/dist/genexus-ide-ui/p-eb51429c.entry.js +317 -0
  725. package/dist/genexus-ide-ui/p-eb51429c.entry.js.map +1 -0
  726. package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-ec01c70c.entry.js} +15 -18
  727. package/dist/genexus-ide-ui/p-ec01c70c.entry.js.map +1 -0
  728. package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
  729. package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
  730. package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js → p-f2bd9044.entry.js} +2 -2
  731. package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-f315c6e0.entry.js} +12 -14
  732. package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-f315c6e0.entry.js.map} +1 -1
  733. package/dist/genexus-ide-ui/{p-0550fd5f.entry.js → p-f52bcdac.entry.js} +2 -2
  734. package/dist/genexus-ide-ui/{p-a05d4963.entry.js → p-f5879a41.entry.js} +10 -10
  735. package/dist/genexus-ide-ui/{p-a05d4963.entry.js.map → p-f5879a41.entry.js.map} +1 -1
  736. package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-f5a48b33.entry.js} +6 -9
  737. package/dist/genexus-ide-ui/p-f5a48b33.entry.js.map +1 -0
  738. package/dist/genexus-ide-ui/{p-1e8f5da5.entry.js → p-f6ceb01a.entry.js} +4 -5
  739. package/dist/genexus-ide-ui/p-f6ceb01a.entry.js.map +1 -0
  740. package/dist/types/common/common.d.ts +1 -1
  741. package/dist/types/components/bpm/application-declaration/bpm-app-declaration.d.ts +22 -44
  742. package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
  743. package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
  744. package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
  745. package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
  746. package/dist/types/components.d.ts +75 -10
  747. package/dist/types/index.d.ts +1 -1
  748. package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
  749. package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
  750. package/package.json +5 -5
  751. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
  752. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
  753. package/dist/cjs/assets-manager-7227a74b.js +0 -7
  754. package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
  755. package/dist/cjs/code-render-db7cb770.js +0 -59
  756. package/dist/cjs/code-render-db7cb770.js.map +0 -1
  757. package/dist/cjs/common-72f91a78.js.map +0 -1
  758. package/dist/cjs/form-validation-178cf461.js.map +0 -1
  759. package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
  760. package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
  761. package/dist/cjs/helpers-30f109a4.js.map +0 -1
  762. package/dist/cjs/locale-ff30a5f3.js.map +0 -1
  763. package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
  764. package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
  765. package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
  766. package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
  767. package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
  768. package/dist/components/assets-manager.js +0 -5
  769. package/dist/components/assets-manager.js.map +0 -1
  770. package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
  771. package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
  772. package/dist/esm/assets-manager-0d129105.js +0 -5
  773. package/dist/esm/assets-manager-0d129105.js.map +0 -1
  774. package/dist/esm/code-render-6cbb0e63.js +0 -56
  775. package/dist/esm/code-render-6cbb0e63.js.map +0 -1
  776. package/dist/esm/common-ccb4504a.js.map +0 -1
  777. package/dist/esm/gx-ide-chat-container.entry.js +0 -58
  778. package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
  779. package/dist/esm/helpers-10479d69.js.map +0 -1
  780. package/dist/esm/locale-e5107fad.js.map +0 -1
  781. package/dist/genexus-ide-ui/p-007173ef.entry.js.map +0 -1
  782. package/dist/genexus-ide-ui/p-038c3f9b.entry.js.map +0 -1
  783. package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
  784. package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
  785. package/dist/genexus-ide-ui/p-1bc2613e.entry.js.map +0 -1
  786. package/dist/genexus-ide-ui/p-1dd7be84.entry.js.map +0 -1
  787. package/dist/genexus-ide-ui/p-1e8f5da5.entry.js.map +0 -1
  788. package/dist/genexus-ide-ui/p-22b8bdb1.entry.js.map +0 -1
  789. package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
  790. package/dist/genexus-ide-ui/p-29a026bb.entry.js.map +0 -1
  791. package/dist/genexus-ide-ui/p-2a6683e1.entry.js.map +0 -1
  792. package/dist/genexus-ide-ui/p-311eedf3.js.map +0 -1
  793. package/dist/genexus-ide-ui/p-31beae9e.entry.js.map +0 -1
  794. package/dist/genexus-ide-ui/p-3d4355b4.entry.js.map +0 -1
  795. package/dist/genexus-ide-ui/p-3ecdb582.entry.js.map +0 -1
  796. package/dist/genexus-ide-ui/p-48826a6f.entry.js.map +0 -1
  797. package/dist/genexus-ide-ui/p-4b79c3ab.entry.js.map +0 -1
  798. package/dist/genexus-ide-ui/p-4c717aa7.entry.js.map +0 -1
  799. package/dist/genexus-ide-ui/p-4cbc8a8b.entry.js.map +0 -1
  800. package/dist/genexus-ide-ui/p-530c32aa.entry.js.map +0 -1
  801. package/dist/genexus-ide-ui/p-54fbb568.entry.js.map +0 -1
  802. package/dist/genexus-ide-ui/p-55c87f23.entry.js +0 -287
  803. package/dist/genexus-ide-ui/p-55c87f23.entry.js.map +0 -1
  804. package/dist/genexus-ide-ui/p-56331289.entry.js.map +0 -1
  805. package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
  806. package/dist/genexus-ide-ui/p-67762237.entry.js.map +0 -1
  807. package/dist/genexus-ide-ui/p-68969051.entry.js.map +0 -1
  808. package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
  809. package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
  810. package/dist/genexus-ide-ui/p-76c3fc51.entry.js.map +0 -1
  811. package/dist/genexus-ide-ui/p-833c3585.entry.js.map +0 -1
  812. package/dist/genexus-ide-ui/p-84618917.entry.js.map +0 -1
  813. package/dist/genexus-ide-ui/p-8f00263d.entry.js.map +0 -1
  814. package/dist/genexus-ide-ui/p-961cd6c2.entry.js.map +0 -1
  815. package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
  816. package/dist/genexus-ide-ui/p-9b5cb6b9.entry.js.map +0 -1
  817. package/dist/genexus-ide-ui/p-9ddea83b.js +0 -146
  818. package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
  819. package/dist/genexus-ide-ui/p-a59a07e2.entry.js.map +0 -1
  820. package/dist/genexus-ide-ui/p-a790c4c9.entry.js.map +0 -1
  821. package/dist/genexus-ide-ui/p-ba7d1472.entry.js.map +0 -1
  822. package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
  823. package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
  824. package/dist/genexus-ide-ui/p-c747afac.entry.js.map +0 -1
  825. package/dist/genexus-ide-ui/p-cd397078.entry.js.map +0 -1
  826. package/dist/genexus-ide-ui/p-d095a37c.entry.js.map +0 -1
  827. package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
  828. package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
  829. package/dist/genexus-ide-ui/p-de7f0c1f.entry.js.map +0 -1
  830. package/dist/genexus-ide-ui/p-ded7444c.entry.js.map +0 -1
  831. package/dist/genexus-ide-ui/p-e502c2fd.entry.js.map +0 -1
  832. package/dist/genexus-ide-ui/p-eea944d4.entry.js.map +0 -1
  833. package/dist/genexus-ide-ui/p-f3f35e5c.entry.js.map +0 -1
  834. package/dist/genexus-ide-ui/p-fa18a70c.entry.js.map +0 -1
  835. package/dist/genexus-ide-ui/p-fdf41406.entry.js.map +0 -1
  836. package/dist/genexus-ide-ui/p-fe490103.entry.js.map +0 -1
  837. package/dist/genexus-ide-ui/p-fecc50e4.entry.js.map +0 -1
  838. /package/dist/genexus-ide-ui/{p-59ed3f39.entry.js.map → p-02fc47cd.entry.js.map} +0 -0
  839. /package/dist/genexus-ide-ui/{p-683cb15e.entry.js.map → p-2be58a7a.entry.js.map} +0 -0
  840. /package/dist/genexus-ide-ui/{p-3b8db39e.entry.js.map → p-39c527ff.entry.js.map} +0 -0
  841. /package/dist/genexus-ide-ui/{p-50b22f23.entry.js.map → p-4d929210.entry.js.map} +0 -0
  842. /package/dist/genexus-ide-ui/{p-bac13202.entry.js.map → p-844b7117.entry.js.map} +0 -0
  843. /package/dist/genexus-ide-ui/{p-74c81ca3.entry.js.map → p-8636a0bd.entry.js.map} +0 -0
  844. /package/dist/genexus-ide-ui/{p-c6c955a3.entry.js.map → p-95f831a8.entry.js.map} +0 -0
  845. /package/dist/genexus-ide-ui/{p-e4c2e200.entry.js.map → p-9a39e49c.entry.js.map} +0 -0
  846. /package/dist/genexus-ide-ui/{p-beea29fa.entry.js.map → p-9a9ee1ee.entry.js.map} +0 -0
  847. /package/dist/genexus-ide-ui/{p-6b957e82.entry.js.map → p-b211bca8.entry.js.map} +0 -0
  848. /package/dist/genexus-ide-ui/{p-2027c939.entry.js.map → p-e37e95e7.entry.js.map} +0 -0
  849. /package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js.map → p-f2bd9044.entry.js.map} +0 -0
  850. /package/dist/genexus-ide-ui/{p-0550fd5f.entry.js.map → p-f52bcdac.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"gx-ide-kb-manager-import.js","mappings":"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","names":["GxIdeKbManagerImport"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport {\n ImportItemData,\n CategoryItemMap,\n CategoryItemMapValue,\n ObjectCategoryItemMap,\n Status\n} from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\n\n// - - - - - - - - - - - - - - - - -\n// Objects In File Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst convertImportCategoryItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\nexport const convertImportCategoryDataToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewModel => {\n const treeData: TreeViewModel = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCategory => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCategory.id,\n caption: `${importCategory.name} (${importCategory.items.length})`,\n expanded: true,\n leaf: false,\n startImgSrc: importCategory.icon,\n metadata: KB_CATEGORY,\n items: convertImportCategoryItemToTreeItem(\n importCategory.icon,\n importCategory.items\n )\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\n// - - - - - - - - - - - - - - - - -\n// Import Status Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[],\n status: Status\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: status\n })\n });\n });\n return messages;\n};\n\nconst createImportResultItem = (\n categoryData: CategoryItemMapValue,\n importItemResultData: ImportItemResultData\n): TreeViewItemModel => {\n const resultItemId = `${importItemResultData.id}-${importItemResultData.name}`;\n const importResultItem: TreeViewItemModel = {\n id: resultItemId,\n startImgSrc: categoryData.icon,\n caption: importItemResultData.name,\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultData.status}`,\n expanded: true,\n leaf: importItemResultData.messages.length === 0,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: importItemResultData.status\n }),\n items: createImportResultDataMessages(\n resultItemId,\n importItemResultData.messages,\n importItemResultData.status\n )\n };\n return importResultItem;\n};\n\n// This functions updates the \"Import Status\" model, by adding a new result item.\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n categoryItemMap: CategoryItemMap,\n objectCategoryItemMap: ObjectCategoryItemMap,\n importTreeActualState: TreeViewItemModel[]\n) => {\n const updatedImportTreeModel: TreeViewModel = [...importTreeActualState];\n\n // Use the resultItem.id to find the corresponding category in the categoryMap\n const objectCategoryId = objectCategoryItemMap.get(importItemResultData.id);\n const categoryData = categoryItemMap.get(objectCategoryId);\n\n const categoryIndex: number = updatedImportTreeModel.findIndex(\n treeItem => treeItem.id === objectCategoryId\n );\n\n if (categoryIndex === -1) {\n // category does not exists yet.\n const category: TreeViewItemModel = {\n id: objectCategoryId,\n caption: `${categoryData.name} (1)`,\n startImgSrc: `${categoryData.icon}`,\n expanded: true,\n items: [createImportResultItem(categoryData, importItemResultData)]\n };\n\n updatedImportTreeModel.push(category);\n return updatedImportTreeModel;\n }\n\n // else category already exists. Just insert the result item in the category.\n const resultItem: TreeViewItemModel = createImportResultItem(\n categoryData,\n importItemResultData\n );\n updatedImportTreeModel[categoryIndex].items = [\n ...updatedImportTreeModel[categoryIndex].items,\n resultItem\n ];\n\n // update category caption length\n const newItemsLength = updatedImportTreeModel[categoryIndex].items.length;\n updatedImportTreeModel[\n categoryIndex\n ].caption = `${categoryData.name} (${newItemsLength})`;\n\n return updatedImportTreeModel;\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template:\n \"header header\" max-content\n \"objects-in-file import-status\" 1fr\n \"footer footer\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-columns: 1fr max-content;\n grid-area: header;\n}\n\n// objects in file\n.objects-in-file__section {\n grid-area: objects-in-file;\n}\n.objects-in-file__main {\n border-inline-end: var(--section-common-border);\n grid-template-rows: 1fr max-content;\n}\n.objects-in-file__footer {\n display: grid;\n}\n\n// import status\n.import-status__section {\n grid-area: import-status;\n}\n.import-status__main {\n grid-template-rows: 1fr max-content;\n}\n.import-status__footer {\n display: flex;\n}\n.import-clear-status-btn {\n margin-inline-start: auto;\n}\n\n// objects in file & import status\n.objects-in-file__section,\n.import-status__section {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__objects-in-file,\n.control-header__import-status {\n padding-block-start: var(--mer-spacing--md);\n}\n.objects-in-file__main,\n.import-status__main {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// footer\n.footer {\n display: flex;\n grid-area: footer;\n border-block-start: var(--section-common-border);\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n // ChEditCustomEvent,\n TreeViewItemContextMenu\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryDataToTreeView,\n addImportItemResultDataItem\n} from \"./helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT, STATUS_REGEXP_KEY } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-elevation\"\n});\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst GEMINI_TOOLS_SETTINGS = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #selectedObjectsInFileIds: string[] = [];\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n #fileInputEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n #successItemsIds: Set<string> = new Set();\n #warningItemsIds: Set<string> = new Set();\n #errorItemsIds: Set<string> = new Set();\n // #categoryItemMap maps a category id, with the name and icon.\n // required for the \"import status\" tree.\n #categoryItemMap: CategoryItemMap = new Map();\n #objectCategoryItemMap: ObjectCategoryItemMap = new Map();\n\n @State() checkedObjectsIds: string[] = [];\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n @State() importStatusMessage: string;\n @State() importTreeState: TreeViewItemModel[] = [];\n @State() importedTreeFilterRegExp: RegExp;\n @Watch(\"importTreeState\")\n importTreeStateChanged() {\n // this.#filterImportedHandler();\n }\n @State() importingIsInProcess = false;\n @State() importTreeFilterList: string[] = [];\n @State() noImport: boolean;\n @State() noObjects: boolean = true;\n @State() objectsTreeModel: TreeViewItemModel[] = [];\n @State() showHiddenImportsMessage = false;\n @State() someStatusVisible: boolean;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.#evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.importedButHidden;\n }\n }\n @Watch(\"objectsTreeModel\")\n watchObjectsTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !newState || newState.length === 0;\n }\n\n /**\n * Callback invoked when user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when user wants to initiate the import process.\n */\n @Prop() readonly importCallback!: ImportCallback;\n\n /**\n * Callback invoked when user wants to load the xpz information\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)\n */\n @Prop() readonly objectContextMenuCallback!: ObjectContextMenuCallback;\n\n /**\n * Callback invoked when user wants to access the export options.\n */\n @Prop() readonly optionsCallback!: OptionsCallback;\n\n /**\n * Imported xml or xps file name\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n selectedFileChanged(newFile: File) {\n if (newFile) {\n this.#loadFileHandler(newFile);\n }\n }\n\n /**\n * Displays status buttons (error, warning, success) with minimal UI (no captions).\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * Emitted once just after the component is fully loaded.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.#fileInputEl.focus();\n }\n\n componentDidRender() {}\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n // this.#evaluateObjects();\n this.#evaluateImport();\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n this.#evaluateImportStatusMessage();\n }\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.#categoryItemMap,\n this.#objectCategoryItemMap,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.#updateStatusItemsState();\n }\n\n #cancelImportHandler = () => {\n this.cancelCallback();\n };\n\n #clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n #evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n #evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n #importObjectsHandler = async () => {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.#clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n this.importCallback(this.checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n };\n\n #loadFileHandler = async (file: File) => {\n const importedCategoryData = await this.loadCallback(file);\n this.#categoryItemMap.clear();\n this.#objectCategoryItemMap.clear();\n\n importedCategoryData.forEach(category => {\n this.#categoryItemMap.set(category.id, {\n name: category.name,\n icon: category.icon\n });\n category.items.forEach(object => {\n this.#objectCategoryItemMap.set(object.id, category.id);\n });\n });\n\n const importCategoryTreeData =\n convertImportCategoryDataToTreeView(importedCategoryData);\n this.objectsTreeModel = importCategoryTreeData;\n };\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItems = event.detail;\n const checkedItemIds: string[] = [];\n const checkedObjectsIds: string[] = [];\n allItems.forEach(item => {\n if (item.item.checked) {\n checkedItemIds.push(item.item.id);\n }\n if (item.item.checked && item.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(item.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n\n // Evaluate \"Select All / Unselect All\" checkbox state\n if (allItems.size === checkedItemIds.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItemIds.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.#selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n #objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.#selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n #optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n }\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n let pattern = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n pattern = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n }\n this.importedTreeFilterRegExp = new RegExp(pattern, \"i\");\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n\n this.#evaluateImportStatusMessage();\n };\n\n #toggleSelectionClickHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n if (this.#objectsTreeEl) {\n const checked = event.detail === CHECKBOX_ALL_CHECKED_VALUE;\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n #updateStatusItemsState = () => {\n this.#errorItemsIds.clear();\n this.#warningItemsIds.clear();\n this.#successItemsIds.clear();\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.#errorItemsIds.add(child.id);\n }\n if (child.metadata === \"warning\") {\n this.#warningItemsIds.add(child.id);\n }\n if (child.metadata === \"success\") {\n this.#successItemsIds.add(child.id);\n }\n });\n });\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header\n // header\n class=\"field-group control-header-with-border header header-two-cols spacing-body-block-start spacing-body-inline\"\n slot=\"header\"\n >\n <div\n // select a file\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#componentLocale.header.fileNameLabel}\n </label>\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileInputEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".xpz, .xml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n // select file\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#componentLocale.header.selectFileButton}\n </button>\n </div>\n </header>\n\n <section\n // objects in file\n class=\"objects-in-file__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.objectsInFile.title}\n </h2>\n\n <div class=\"field-group objects-in-file__main\">\n {!this.noObjects ? (\n <ch-tree-view-render\n // objects in file tree\n showLines=\"last\"\n class=\"tree-view\"\n model={this.objectsTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.#objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.#objectsTreeContextMenuHandler}\n ref={el =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={\n this.#componentLocale.main.objectsInFile.noObjects\n }\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-secondary\"\n onClick={this.#selectFileInputHandler}\n >\n {this.#componentLocale.main.objectsInFile.selectFile}\n </button>\n </gx-ide-empty-state>\n )}\n\n <footer class=\"field-group objects-in-file__footer spacing-body-inline\">\n <ch-checkbox\n // select all / unselect all checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox create-data-in-kb\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={\n this.#componentLocale.main.objectsInFile.selectUnselect\n }\n value={this.selectAllCheckboxValue}\n onInput={this.#toggleSelectionClickHandler}\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeModel.length === 0\n }\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // import objects button\n id=\"import-btn\"\n class=\"button-primary \"\n onClick={this.#importObjectsHandler}\n disabled={\n this.objectsTreeModel?.length === 0 ||\n this.importingIsInProcess\n }\n >\n {this.#componentLocale.main.objectsInFile.importButton}\n </button>\n\n <button\n // cancel-import button\n id=\"cancel-import-btn\"\n class=\"button-secondary \"\n onClick={this.#cancelImportHandler}\n disabled={!this.importingIsInProcess}\n part=\"cancel-import-button\"\n >\n {this.#componentLocale.main.objectsInFile.cancelButton}\n </button>\n\n <button\n // settings/options button\n id=\"select-kb-btn\"\n class=\"button-tertiary button-icon-only\"\n part=\"select-kb-btn\"\n onClick={this.#optionsHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SETTINGS}\n ></ch-image>\n </button>\n </div>\n </footer>\n </div>\n </section>\n\n <section\n // import status\n class=\"import-status__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.importStatus.title}\n </h2>\n\n <div class=\"field-group import-status__main\">\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n // import status tree\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view\"\n filter={this.importedTreeFilterRegExp}\n filterType=\"metadata\"\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.importStatusMessage}\n key=\"no-objects-empty-state\"\n ></gx-ide-empty-state>\n )}\n\n <footer class=\"import-status__footer spacing-body-inline\">\n <button\n // clear status button\n class=\"button-secondary import-clear-status-btn\"\n onClick={this.#clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n part=\"clear-status-btn\"\n >\n {this.#componentLocale.main.importStatus.clearButton}\n </button>\n </footer>\n </div>\n </section>\n\n <footer\n // footer\n class=\"footer\"\n >\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type CategoryItemMap = Map<string, CategoryItemMapValue>;\nexport type CategoryItemMapValue = { name: string; icon: string };\nexport type ObjectCategoryItemMap = Map<string, string>;\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"version":3}
1
+ {"file":"gx-ide-kb-manager-import.js","mappings":"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","names":["GxIdeKbManagerImport"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport {\n ImportItemData,\n CategoryItemMap,\n CategoryItemMapValue,\n ObjectCategoryItemMap,\n Status\n} from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\n\n// - - - - - - - - - - - - - - - - -\n// Objects In File Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst convertImportCategoryItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\nexport const convertImportCategoryDataToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewModel => {\n const treeData: TreeViewModel = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCategory => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCategory.id,\n caption: `${importCategory.name} (${importCategory.items.length})`,\n expanded: true,\n leaf: false,\n startImgSrc: importCategory.icon,\n metadata: KB_CATEGORY,\n items: convertImportCategoryItemToTreeItem(\n importCategory.icon,\n importCategory.items\n )\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\n// - - - - - - - - - - - - - - - - -\n// Import Status Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[],\n status: Status\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: status\n })\n });\n });\n return messages;\n};\n\nconst createImportResultItem = (\n categoryData: CategoryItemMapValue,\n importItemResultData: ImportItemResultData\n): TreeViewItemModel => {\n const resultItemId = `${importItemResultData.id}-${importItemResultData.name}`;\n const importResultItem: TreeViewItemModel = {\n id: resultItemId,\n startImgSrc: categoryData.icon,\n caption: importItemResultData.name,\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultData.status}`,\n expanded: true,\n leaf: importItemResultData.messages.length === 0,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: importItemResultData.status\n }),\n items: createImportResultDataMessages(\n resultItemId,\n importItemResultData.messages,\n importItemResultData.status\n )\n };\n return importResultItem;\n};\n\n// This functions updates the \"Import Status\" model, by adding a new result item.\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n categoryItemMap: CategoryItemMap,\n objectCategoryItemMap: ObjectCategoryItemMap,\n importTreeActualState: TreeViewItemModel[]\n) => {\n const updatedImportTreeModel: TreeViewModel = [...importTreeActualState];\n\n // Use the resultItem.id to find the corresponding category in the categoryMap\n const objectCategoryId = objectCategoryItemMap.get(importItemResultData.id);\n const categoryData = categoryItemMap.get(objectCategoryId);\n\n const categoryIndex: number = updatedImportTreeModel.findIndex(\n treeItem => treeItem.id === objectCategoryId\n );\n\n if (categoryIndex === -1) {\n // category does not exists yet.\n const category: TreeViewItemModel = {\n id: objectCategoryId,\n caption: `${categoryData.name} (1)`,\n startImgSrc: `${categoryData.icon}`,\n expanded: true,\n items: [createImportResultItem(categoryData, importItemResultData)]\n };\n\n updatedImportTreeModel.push(category);\n return updatedImportTreeModel;\n }\n\n // else category already exists. Just insert the result item in the category.\n const resultItem: TreeViewItemModel = createImportResultItem(\n categoryData,\n importItemResultData\n );\n updatedImportTreeModel[categoryIndex].items = [\n ...updatedImportTreeModel[categoryIndex].items,\n resultItem\n ];\n\n // update category caption length\n const newItemsLength = updatedImportTreeModel[categoryIndex].items.length;\n updatedImportTreeModel[\n categoryIndex\n ].caption = `${categoryData.name} (${newItemsLength})`;\n\n return updatedImportTreeModel;\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template:\n \"header header\" max-content\n \"objects-in-file import-status\" 1fr\n \"footer footer\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-columns: 1fr max-content;\n grid-area: header;\n}\n\n// objects in file\n.objects-in-file__section {\n grid-area: objects-in-file;\n}\n.objects-in-file__main {\n border-inline-end: var(--section-common-border);\n grid-template-rows: 1fr max-content;\n}\n.objects-in-file__footer {\n display: grid;\n}\n\n// import status\n.import-status__section {\n grid-area: import-status;\n}\n.import-status__main {\n grid-template-rows: 1fr max-content;\n}\n.import-status__footer {\n display: flex;\n}\n.import-clear-status-btn {\n margin-inline-start: auto;\n}\n\n// objects in file & import status\n.objects-in-file__section,\n.import-status__section {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__objects-in-file,\n.control-header__import-status {\n padding-block-start: var(--mer-spacing--md);\n}\n.objects-in-file__main,\n.import-status__main {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// footer\n.footer {\n display: flex;\n grid-area: footer;\n border-block-start: var(--section-common-border);\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n // ChEditCustomEvent,\n TreeViewItemContextMenu\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryDataToTreeView,\n addImportItemResultDataItem\n} from \"./helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT, STATUS_REGEXP_KEY } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-elevation\"\n});\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst GEMINI_TOOLS_SETTINGS = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #selectedObjectsInFileIds: string[] = [];\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n #fileInputEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n #successItemsIds: Set<string> = new Set();\n #warningItemsIds: Set<string> = new Set();\n #errorItemsIds: Set<string> = new Set();\n // #categoryItemMap maps a category id, with the name and icon.\n // required for the \"import status\" tree.\n #categoryItemMap: CategoryItemMap = new Map();\n #objectCategoryItemMap: ObjectCategoryItemMap = new Map();\n\n @State() checkedObjectsIds: string[] = [];\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n @State() importStatusMessage: string;\n @State() importTreeState: TreeViewItemModel[] = [];\n @State() importedTreeFilterRegExp: RegExp;\n @Watch(\"importTreeState\")\n importTreeStateChanged() {\n // this.#filterImportedHandler();\n }\n @State() importingIsInProcess = false;\n @State() importTreeFilterList: string[] = [];\n @State() noImport: boolean;\n @State() noObjects: boolean = true;\n @State() objectsTreeModel: TreeViewItemModel[] = [];\n @State() showHiddenImportsMessage = false;\n @State() someStatusVisible: boolean;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.#evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.importedButHidden;\n }\n }\n @Watch(\"objectsTreeModel\")\n watchObjectsTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !newState || newState.length === 0;\n }\n\n /**\n * Callback invoked when user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when user wants to initiate the import process.\n */\n @Prop() readonly importCallback!: ImportCallback;\n\n /**\n * Callback invoked when user wants to load the xpz information\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)\n */\n @Prop() readonly objectContextMenuCallback!: ObjectContextMenuCallback;\n\n /**\n * Callback invoked when user wants to access the export options.\n */\n @Prop() readonly optionsCallback!: OptionsCallback;\n\n /**\n * Imported xml or xps file name\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n selectedFileChanged(newFile: File) {\n if (newFile) {\n this.#loadFileHandler(newFile);\n }\n }\n\n /**\n * Displays status buttons (error, warning, success) with minimal UI (no captions).\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * Emitted once just after the component is fully loaded.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.#fileInputEl.focus();\n }\n\n componentDidRender() {}\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n // this.#evaluateObjects();\n this.#evaluateImport();\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n this.#evaluateImportStatusMessage();\n }\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.#categoryItemMap,\n this.#objectCategoryItemMap,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.#updateStatusItemsState();\n }\n\n #cancelImportHandler = () => {\n this.cancelCallback();\n };\n\n #clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n #evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n #evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n #importObjectsHandler = async () => {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.#clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n this.importCallback(this.checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n };\n\n #loadFileHandler = async (file: File) => {\n const importedCategoryData = await this.loadCallback(file);\n this.#categoryItemMap.clear();\n this.#objectCategoryItemMap.clear();\n\n importedCategoryData.forEach(category => {\n this.#categoryItemMap.set(category.id, {\n name: category.name,\n icon: category.icon\n });\n category.items.forEach(object => {\n this.#objectCategoryItemMap.set(object.id, category.id);\n });\n });\n\n const importCategoryTreeData =\n convertImportCategoryDataToTreeView(importedCategoryData);\n this.objectsTreeModel = importCategoryTreeData;\n };\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItems = event.detail;\n const checkedItemIds: string[] = [];\n const checkedObjectsIds: string[] = [];\n allItems.forEach(item => {\n if (item.item.checked) {\n checkedItemIds.push(item.item.id);\n }\n if (item.item.checked && item.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(item.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n\n // Evaluate \"Select All / Unselect All\" checkbox state\n if (allItems.size === checkedItemIds.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItemIds.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.#selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n #objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.#selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n #optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n }\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n let pattern = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n pattern = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n }\n this.importedTreeFilterRegExp = new RegExp(pattern, \"i\");\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n\n this.#evaluateImportStatusMessage();\n };\n\n #toggleSelectionClickHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n if (this.#objectsTreeEl) {\n const checked = event.detail === CHECKBOX_ALL_CHECKED_VALUE;\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n #updateStatusItemsState = () => {\n this.#errorItemsIds.clear();\n this.#warningItemsIds.clear();\n this.#successItemsIds.clear();\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.#errorItemsIds.add(child.id);\n }\n if (child.metadata === \"warning\") {\n this.#warningItemsIds.add(child.id);\n }\n if (child.metadata === \"success\") {\n this.#successItemsIds.add(child.id);\n }\n });\n });\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header\n // header\n class=\"field-group control-header-with-border header header-two-cols spacing-body-block-start spacing-body-inline\"\n slot=\"header\"\n >\n <div\n // select a file\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#componentLocale.header.fileNameLabel}\n </label>\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileInputEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".xpz, .xml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n // select file\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#componentLocale.header.selectFileButton}\n </button>\n </div>\n </header>\n\n <section\n // objects in file\n class=\"objects-in-file__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.objectsInFile.title}\n </h2>\n\n <div class=\"field-group objects-in-file__main\">\n {!this.noObjects ? (\n <ch-tree-view-render\n // objects in file tree\n showLines=\"last\"\n class=\"tree-view\"\n model={this.objectsTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.#objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.#objectsTreeContextMenuHandler}\n ref={el =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={\n this.#componentLocale.main.objectsInFile.noObjects\n }\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-secondary\"\n onClick={this.#selectFileInputHandler}\n >\n {this.#componentLocale.main.objectsInFile.selectFile}\n </button>\n </gx-ide-empty-state>\n )}\n\n <footer class=\"field-group objects-in-file__footer spacing-body-inline\">\n <ch-checkbox\n // select all / unselect all checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox create-data-in-kb\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={\n this.#componentLocale.main.objectsInFile.selectUnselect\n }\n value={this.selectAllCheckboxValue}\n onInput={this.#toggleSelectionClickHandler}\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeModel.length === 0\n }\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // import objects button\n id=\"import-btn\"\n class=\"button-primary \"\n onClick={this.#importObjectsHandler}\n disabled={\n this.objectsTreeModel?.length === 0 ||\n this.importingIsInProcess\n }\n >\n {this.#componentLocale.main.objectsInFile.importButton}\n </button>\n\n <button\n // cancel-import button\n id=\"cancel-import-btn\"\n class=\"button-secondary \"\n onClick={this.#cancelImportHandler}\n disabled={!this.importingIsInProcess}\n part=\"cancel-import-button\"\n >\n {this.#componentLocale.main.objectsInFile.cancelButton}\n </button>\n\n <button\n // settings/options button\n id=\"select-kb-btn\"\n class=\"button-tertiary button-icon-only\"\n part=\"select-kb-btn\"\n onClick={this.#optionsHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SETTINGS}\n ></ch-image>\n </button>\n </div>\n </footer>\n </div>\n </section>\n\n <section\n // import status\n class=\"import-status__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.importStatus.title}\n </h2>\n\n <div class=\"field-group import-status__main\">\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n // import status tree\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view\"\n filter={this.importedTreeFilterRegExp}\n filterType=\"metadata\"\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.importStatusMessage}\n key=\"no-objects-empty-state\"\n ></gx-ide-empty-state>\n )}\n\n <footer class=\"import-status__footer spacing-body-inline\">\n <button\n // clear status button\n class=\"button-secondary import-clear-status-btn\"\n onClick={this.#clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n part=\"clear-status-btn\"\n >\n {this.#componentLocale.main.importStatus.clearButton}\n </button>\n </footer>\n </div>\n </section>\n\n <footer\n // footer\n class=\"footer\"\n >\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type CategoryItemMap = Map<string, CategoryItemMapValue>;\nexport type CategoryItemMapValue = { name: string; icon: string };\nexport type ObjectCategoryItemMap = Map<string, string>;\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"version":3}
@@ -1,13 +1,12 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { g as getIconPath } from './assets-manager.js';
3
- import './MERCURY_ASSETS.js';
2
+ import { g as getIconPath } from './MERCURY_ASSETS.js';
4
3
  import { r as renderModuleDataProperties } from './common.js';
5
4
  import { L as Locale } from './locale.js';
6
5
  import { d as defineCustomElement$4 } from './container.js';
7
6
  import { d as defineCustomElement$3 } from './gx-ide-empty-state2.js';
8
7
  import { d as defineCustomElement$2 } from './title.js';
9
8
 
10
- const manageModuleReferencesCss = ":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)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.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-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}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}ch-grid-row[selected] gxg-icon[data-action=install]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--3xs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold);display:flex;align-items:center;gap:var(--mer-spacing--sm)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-cell-module__description{padding-inline-start:36px}.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__server-commands{display:flex;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__title{display:flex;align-items:center;gap:var(--mer-spacing--xs)}.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__action-container--uninstallable:before{background-color:var(--mer-icon__warning)}.module-info__warning-message{margin-block-start:var(--mer-spacing--2xs);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--2xs)}.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--2xs);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--2xs);height:var(--mer-spacing--2xs);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)}.button-wrapper{display:grid;align-items:center;justify-content:center}";
9
+ const manageModuleReferencesCss = ":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)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.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-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}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}ch-grid-row[selected] gxg-icon[data-action=install]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--3xs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold);display:flex;align-items:center;gap:var(--mer-spacing--sm)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-cell-module__description{padding-inline-start:36px}.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__server-commands{display:flex;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__title{display:flex;align-items:center;gap:var(--mer-spacing--xs)}.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__action-container--uninstallable:before{background-color:var(--mer-icon__warning)}.module-info__warning-message{margin-block-start:var(--mer-spacing--2xs);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--2xs)}.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--2xs);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--2xs);height:var(--mer-spacing--2xs);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)}.button-wrapper{display:grid;align-items:center;justify-content:center}";
11
10
 
12
11
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
13
12
  if (kind === "a" && !f)
@@ -51,7 +50,7 @@ const GxManageModuleReferencesV2 = /*@__PURE__*/ proxyCustomElement(class GxMana
51
50
  */
52
51
  this.onProgress = (message, progress, state) => {
53
52
  const data = { message, progress, state };
54
- this.selectedModuleAction = Object.assign({}, data);
53
+ this.selectedModuleAction = { ...data };
55
54
  this.progressValue = this.selectedModuleAction.progress;
56
55
  this.progressState = this.selectedModuleAction.state;
57
56
  };
@@ -201,13 +200,19 @@ const GxManageModuleReferencesV2 = /*@__PURE__*/ proxyCustomElement(class GxMana
201
200
  return version.id === selectedVersionId;
202
201
  });
203
202
  if (moduleSelectedVersion) {
204
- const updatedSelectedModule = Object.assign(Object.assign({}, this.selectedModule), { selectedVersion: moduleSelectedVersion });
203
+ const updatedSelectedModule = {
204
+ ...this.selectedModule,
205
+ selectedVersion: moduleSelectedVersion
206
+ };
205
207
  this.selectedModule = updatedSelectedModule;
206
208
  // update module selected in modules array as well
207
209
  const updatedModuleIndex = this.serverModulesExtended.findIndex(module => module.id === updatedSelectedModule.id);
208
210
  if (updatedModuleIndex !== -1) {
209
211
  // Update the object with new information
210
- this.serverModulesExtended[updatedModuleIndex] = Object.assign(Object.assign({}, this.serverModulesExtended[updatedModuleIndex]), updatedSelectedModule);
212
+ this.serverModulesExtended[updatedModuleIndex] = {
213
+ ...this.serverModulesExtended[updatedModuleIndex],
214
+ ...updatedSelectedModule
215
+ };
211
216
  }
212
217
  }
213
218
  };
@@ -245,7 +250,10 @@ const GxManageModuleReferencesV2 = /*@__PURE__*/ proxyCustomElement(class GxMana
245
250
  this.serverModules = await this.serverSelectedCallback(serverId, reload);
246
251
  // Save modules on Map as well to get information about modules faster
247
252
  this.serverModules.forEach(module => {
248
- const extendedModuleData = Object.assign(Object.assign({}, module), { selectedVersion: module.versions[0] });
253
+ const extendedModuleData = {
254
+ ...module,
255
+ selectedVersion: module.versions[0]
256
+ };
249
257
  // When the server retrieves the modules, the selected module is by default the first one.
250
258
  this.serverModulesExtended.push(extendedModuleData);
251
259
  // Save modules on a map as well, for faster retrieval.
@@ -1 +1 @@
1
- {"file":"gx-ide-manage-module-references-v2.js","mappings":";;;;;;;;;AAAA,MAAM,yBAAyB,GAAG,owhBAAowhB;;;;;;;;;;AC6BtyhB,MAAM,WAAW,GAAmB;IAClC,mBAAmB;;;;;;;IAOnB,yBAAyB;CAC1B,CAAC;MAQW,0BAA0B;;;;;;QAO7B,sBAAiB,GAAG,KAAK,CAAC;QAQlC,iDAAc,WAAW,CAAC;YACxB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,cAAc;SAC1B,CAAC,EAAC;QACH,iDAAc,WAAW,CAAC;YACxB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,EAAC;;;;;;;QAqGK,eAAU,GAAG,CACnB,OAAe,EACf,QAAgB,EAChB,KAAsB;YAEtB,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;SACtD,CAAC;;;;QAKM,uBAAkB,GAAG,CAC3B,KAAoD;YAEpD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;SAC7D,CAAC;QAEM,wBAAmB,GAAG,CAAC,MAAkB,KAAK;YACpD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;SAC3C,CAAC;;;;QAKM,iCAA4B,GAAG,OAAO,MAAkB;YAC9D,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;qBAC3D,eAAe,CAAC,EAAE,CAAC;gBACtB,MAAM,2BAA2B,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;qBAC/D,eAAe,CAAC,MAAM,CAAC;gBAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACtD,IAAI,CAAC,gBAAgB,EACrB,MAAM,CAAC,EAAE,EACT,uBAAuB,EACvB,2BAA2B,EAC3B,IAAI,CAAC,UAAU,CAChB,CAAC;gBACF,IAAI,eAAe,EAAE;oBACnB,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;iBAClE;gBACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC7B;SACF,CAAC;QAEM,mBAAc,GAAG,OAAO,CAAa;YAC3C,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;SACF,CAAC;QAEM,+BAA0B,GAAG,CAAC,CAAsB;YAC1D,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC/D,CAAC;QAEM,6BAAwB,GAAG;YACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM;;gBAE7C,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI;qBAC1C,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW;qBACxD,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC3C,IAAI,WAAW,CAAC;gBAChB,IAAI,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE;;oBAE1C,WAAW,GAAG,IAAI,CAAC;iBACpB;qBAAM,IAAI,IAAI,CAAC,oBAAoB,KAAK,WAAW,EAAE;oBACpD,WAAW,GAAG,CAAC,EACb,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ;wBAC1C,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,CAC5C,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE;oBAClD,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;iBAC9D;gBAED,MAAM,QAAQ,GAAG,CAAC,SAAS,IAAI,gBAAgB,KAAK,WAAW,CAAC;gBAChE,OAAO,QAAQ,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC;;QAGM,2BAAsB,GAAG;YAC/B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACzC;iBAAM;gBACL,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;aACvC;SACF,CAAC;QAEM,8BAAyB,GAAG;YAClC,QACE,uBACE,gBAAgB,EAAC,QAAQ,EACzB,IAAI,EAAC,yBAAyB,EAC9B,KAAK,EAAC,uCAAuC,EAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAE3C,iCAA2B,KAAK,EAAC,yBAAyB,IACxD,8BACE,WAAW,EAAE,KAAK,EAClB,KAAK,EAAC,qBAAqB,GACH,EAC1B,8BACE,WAAW,EAAE,KAAK,EAClB,IAAI,EAAC,aAAa,EAClB,KAAK,EAAC,qBAAqB,GACH,CACA,EAE3B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAA0B,MACzD,2BACE,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,EAE7D,KAAK,EAAC,kBAAkB,IAExB,4BAAsB,KAAK,EAAC,0CAA0C,IACpE,YAAM,KAAK,EAAC,wBAAwB,IAClC,gBACE,IAAI,EAAC,gBAAgB,iBACR,MAAM,CAAC,eAAe,CAAC,MAAM,EAC1C,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,EAC7C,IAAI,EAAC,OAAO,GACF,EACX,MAAM,CAAC,eAAe,CAAC,IAAI,CACvB,EACP,YAAM,KAAK,EAAC,+BAA+B,IACxC,MAAM,CAAC,eAAe,CAAC,WAAW,CAC9B,CACc,EAEvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAC1D,WAAK,KAAK,EAAC,gBAAgB,IACzB,kBACE,QAAQ,EACN,CAAC,IAAI,CAAC,eAAe;oBACrB,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,cAAc;oBAChD,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,iBAAiB,EAErD,GAAG,QACH,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAExC,MAAM,CAAC,eAAe,CAAC,MAAM,CACnB,CACT,IACJ,IAAI,CACa,CACH,CACvB,CAAC,CACc,EAClB;SACH,CAAC;QAEM,4BAAuB,GAAG;YAChC,QACE,0BACE,YAAY,EAAE,uBAAA,IAAI,8CAAY,EAC9B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,GACrC,EACtB;SACH,CAAC;QAEM,2BAAsB,GAAG,CAAC,QAAgB;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM;gBACxD,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,WAAW,EAAE;gBACf,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC;gBACxD,MAAM,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAAC;gBACxD,IACE,YAAY,KAAK,iBAAiB;oBAClC,YAAY,KAAK,cAAc,EAC/B;oBACA,OAAO,SAAS,CAAC;iBAClB;qBAAM,IAAI,CAAC,oBAAoB,EAAE;oBAChC,OAAO,0BAA0B,CAAC;iBACnC;qBAAM;oBACL,OAAO,iBAAiB,CAAC;iBAC1B;aACF;YAED,OAAO,iBAAiB,CAAC;SAC1B,CAAC;QAEM,sBAAiB,GAAG;YAC1B,QACE,gBACE,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAChD,EACZ;SACH,CAAC;;QAGM,sBAAiB,GAAG;YAC1B,QACE,iBAAW,IAAI,EAAC,mBAAmB,EAAC,IAAI,EAAC,UAAU,IACjD,WAAK,KAAK,EAAC,mBAAmB,IAC3B,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CACrC,CACI,EACZ;SACH,CAAC;QAEM,gCAA2B,GAAG;YACpC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC;YAC1E,IAAI,cAAc,EAAE;gBAClB,OAAO,SAAG,KAAK,EAAC,8BAA8B,IAAE,cAAc,CAAK,CAAC;aACrE;SACF,CAAC;QAEM,2BAAsB,GAAG;YAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;YAC1D,IAAI,OAAO,CAAC;YACZ,IAAI,QAAQ,GAAG,+BAA+B,CAAC;YAC/C,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;gBACtG,QAAQ,IAAI,2CAA2C,CAAC;aACzD;iBAAM;gBACL,OAAO;oBACL,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC;aAC1E;YACD,QACE,WAAK,KAAK,EAAE,QAAQ,IAClB,gBAAU,IAAI,EAAC,qBAAqB,IAAE,OAAO,CAAY,CACrD,EACN;SACH,CAAC;;QAGM,sCAAiC,GAAG,CAAC,CAAmB;YAC9D,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;SACrD,CAAC;QACM,qCAAgC,GAAG,CAAC,CAAmB;YAC7D,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;SACrD,CAAC;QACM,gCAA2B,GAAG,CAAC,iBAAyB;YAC9D,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;gBACrE,OAAO,OAAO,CAAC,EAAE,KAAK,iBAAiB,CAAC;aACzC,CAAC,CAAC;YACH,IAAI,qBAAqB,EAAE;gBACzB,MAAM,qBAAqB,mCACtB,IAAI,CAAC,cAAc,KACtB,eAAe,EAAE,qBAAqB,GACvC,CAAC;gBACF,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC;;gBAG5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAC7D,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,CACjD,CAAC;gBACF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;;oBAE7B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,mCACzC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,GAC9C,qBAAqB,CACzB,CAAC;iBACH;aACF;SACF,CAAC;QAEM,yBAAoB,GAAG;YAC7B,QACE,WAAK,IAAI,EAAC,oBAAoB,IAC5B,qBACE,EAAE,EAAC,oBAAoB,0BAEvB,KAAK,EAAC,EAAE,EACR,IAAI,EAAC,iBAAiB,yEAGtB,KAAK,EACH,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB;qBACtD,iBAAiB,EAEtB,aAAa,EAAC,OAAO,EACrB,WAAW,QACX,cAAc,EAAE,IAAI,CAAC,iCAAiC,EACtD,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,IAEpD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KACpC,0BACE,KAAK,EAAE,IAAI,CAAC,EAAE,EACd,cAAc,EAAE,IAAI,CAAC,gCAAgC,IAEpD,IAAI,CAAC,EAAE,CACW,CACtB,CAAC,CACY,CACZ,EACN;SACH,CAAC;QAEM,iCAA4B,GAAG,CAAC,CAAsB;YAC5D,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,MAA0B,CAAC;SAC1D,CAAC;;QAGM,8BAAyB,GAAG,CAClC,CAKE;YAEF,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACrD,CAAC;QACM,8BAAyB,GAAG,CAAC,CAAmB;YACtD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACrD,CAAC;QAEM,iBAAY,GAAG;YACrB,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SACjE,CAAC;;;;QAIM,kCAA6B,GAAG,OACtC,QAAa,EACb,MAAe;YAEf,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;;gBAG1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;gBAEvC,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;gBAEzE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;oBAC/B,MAAM,kBAAkB,mCACnB,MAAM,KACT,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GACpC,CAAC;;oBAEF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;oBAEpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;iBACpD,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;gBACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;SACF,CAAC;QAEM,4BAAuB,GAAG;YAChC,UAAU,CAAC;gBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;;gBAE7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;aACpC,EAAE,GAAG,CAAC,CAAC;;SAET,CAAC;wCA9d0C,EAAE;oCACI,QAAQ;6BACnB,EAAE;qCACc,EAAE;qCACF,EAAE;0BACF,IAAI,GAAG,EAAE;;;oCAIpB;YAC1C,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,aAAa;SACrB;yCACyD,IAAI,GAAG,EAAE;+BACxC,IAAI;gCACH,IAAI;6BACC,CAAC;6BACQ,aAAa;6BAC9B,KAAK;4BAeE,KAAK;uBAKU,EAAE;;;;kCAoBF,KAAK;;IAtCpD,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;KACF;;IA2CD,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;KACF;IAED,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,MAAM,gBAAgB;QACpB,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KACrE;;IA6YD,MAAM;QACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,kBAAkB,EAAE,IAAI;aACzB,IAED,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,WAAK,KAAK,EAAC,qBAAqB,IAC9B,wBACE,gBAAgB,QAChB,oBAAoB,QACpB,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,EAC1C,IAAI,EAAC,SAAS,EACd,cAAc,EACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,IAIhE,YAAM,KAAK,EAAC,MAAM,IAChB,WAAK,KAAK,EAAC,oBAAoB,IAC7B,cAAQ,KAAK,EAAC,iBAAiB,IAC7B,WAAK,KAAK,EAAC,0BAA0B,IACnC,qBACG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CACjC,EACZ,WAAK,KAAK,EAAC,gBAAgB,IACzB,qBACE,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EACrD,aAAa,QACb,cAAc,EAAE,IAAI,CAAC,yBAAyB,IAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KACpB,0BACE,KAAK,EAAE,IAAI,CAAC,EAAE,EACd,cAAc,EAAE,IAAI,CAAC,yBAAyB,IAE7C,IAAI,CAAC,IAAI,CACS,CACtB,CAAC,CACY,EACf,IAAI,CAAC,kBAAkB,IACtB,YAAM,KAAK,EAAC,0BAA0B,IACpC,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,mCAAmC,EACxC,OAAO,EAAE,IAAI,CAAC,cAAc,GAChB,CACT,IACL,IAAI,EACR,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,oBAAoB,EACzB,OAAO,EAAE,IAAI,CAAC,YAAY,GACd,CACV,CACF,CACC,EAET,WAAK,KAAK,EAAC,eAAe,IACxB,WAAK,KAAK,EAAC,sBAAsB,IAC/B,qBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAClD,aAAa,EAAC,OAAO,EACrB,WAAW,EAAE,KAAK,EAClB,cAAc,EAAE,IAAI,CAAC,0BAA0B,EAC/C,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,GACtC,EACjB,6BACE,OAAO,QACP,SAAS,QACT,KAAK,EAAC,kBAAkB,EACxB,uBAAuB,EACrB,IAAI,CAAC,4BAA4B,IAGnC,kBACE,EAAE,EAAC,QAAQ,EACX,QAAQ,QACR,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,IAEpD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAC3C,EACb,kBACE,EAAE,EAAC,WAAW,EACd,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,IAGnD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB;aAC3C,SAAS,CAEH,EACb,kBACE,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,IAEpD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAC5C,CACS,CACpB,EAEN,WACE,KAAK,EAAC,gBAAgB,EACtB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,aAAa,GAAG,EAAoB,CAAC,IAErD,IAAI,CAAC,sBAAsB,EAAE,CAC1B,CACF,CACF,EAGL,IAAI,CAAC,cAAc,IAClB,WAAK,KAAK,EAAC,aAAa,IACtB,cAAQ,KAAK,EAAC,qBAAqB,IACjC,WAAK,KAAK,EAAC,oBAAoB,IAC5B,IAAI,CAAC,iBAAiB,EAAE,EACxB,IAAI,CAAC,iBAAiB,EAAE,CACrB,EACL,IAAI,CAAC,sBAAsB,EAAE,EAC7B,IAAI,CAAC,oBAAoB,EAAE,EAC3B,IAAI,CAAC,2BAA2B,EAAE,CAC5B,EACT,WAAK,KAAK,EAAC,uCAAuC,IAC/C,0BAA0B,CACzB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,UAAU,CAC/C,CACG,CACF,KAEN,0BACE,KAAK,EAAC,6BAA6B,EACnC,YAAY,EAAE,uBAAA,IAAI,8CAAY,EAC9B,UAAU,EACR,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAE3D,gBAAgB,EACd,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU;iBAChD,WAAW,GAEI,CACvB,CACI,EAEP,yBACE,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,QAAQ,QACR,OAAO,EACL,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBACjC,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,EAAC,cAAc,EACxB,cAAc,EAAE,IAAI,CAAC,uBAAuB,GACzB,CACJ,CACf,EACN,sBACE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAClD,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,QAAQ,GAAG,EAA6B,CAAC,EAC1D,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,YAAY,EAAC,WAAW,EACxB,SAAS,EAAE,KAAK,GACA,CACb,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/modules/manage-module-references-v2/manage-module-references.scss?tag=gx-ide-manage-module-references-v2&encapsulation=shadow","src/components/modules/manage-module-references-v2/manage-module-references-v2.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}\nch-grid-row[selected] {\n gxg-icon[data-action=\"install\"] {\n //WA to improve visibility\n filter: brightness(2);\n }\n}\n.grid-cell-module {\n &__info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--mer-spacing--3xs);\n }\n &__name {\n font-weight: var(--mer-font__weight--bold);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n &__description {\n padding-inline-start: 36px;\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 &__server-commands {\n display: flex;\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 &__title {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\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 &--uninstallable:before {\n background-color: var(--mer-icon__warning);\n }\n }\n\n &__warning-message {\n margin-block-start: var(--mer-spacing--2xs);\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--2xs);\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--2xs);\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--2xs);\n height: var(--mer-spacing--2xs);\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\n.button-wrapper {\n display: grid;\n align-items: center;\n justify-content: center;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ExtendedModuleData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-manage-module-references-v2\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references-v2\"]\n})\nexport class GxManageModuleReferencesV2 {\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: HTMLGxIdeManageModuleReferencesV2Element;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n #filterIcon = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n });\n #moduleIcon = getIconPath({\n category: \"objects\",\n name: \"module\"\n });\n\n // 3.STATE() VARIABLES //\n\n // Filtering modules\n @State() searchModulesFilterValue: string = \"\";\n @State() selectedButtonFilter: ModuleFilterType = \"browse\";\n @State() serverModules: ModuleData[] = [];\n @State() serverModulesExtended: ExtendedModuleData[] = [];\n @State() filteredServerModules: ExtendedModuleData[] = [];\n @State() modulesMap: Map<string, ExtendedModuleData> = new Map();\n\n @State() selectedModule: ExtendedModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersionMap: 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 an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version\n */\n @Prop() readonly showServerCommands: boolean = false;\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, false);\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\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 /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n this.selectedModule = this.modulesMap.get(selectedModuleId);\n };\n\n private moduleActionHandler = (module: ModuleData) => () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\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 this.actionCompleted = false;\n const moduleSelectedVersionId = this.modulesMap.get(module.id)\n .selectedVersion.id;\n const moduleSelectedVersionAction = this.modulesMap.get(module.id)\n .selectedVersion.action;\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n moduleSelectedVersionAction,\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n this.actionCompleted = true;\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 searchModulesFilterHandler = (e: CustomEvent<string>) => {\n this.searchModulesFilterValue = e.detail.trim().toLowerCase();\n };\n\n private getFilteredServerModules = (): ExtendedModuleData[] => {\n return this.serverModulesExtended.filter(module => {\n // Filter conditions\n const nameMatch = module.selectedVersion.name\n .toLowerCase()\n .includes(this.searchModulesFilterValue);\n const descriptionMatch = module.selectedVersion.description\n .toLowerCase()\n .includes(this.searchModulesFilterValue);\n let actionMatch;\n if (this.selectedButtonFilter === \"browse\") {\n // If browse is selected, display all\n actionMatch = true;\n } else if (this.selectedButtonFilter === \"installed\") {\n actionMatch = !!(\n module.selectedVersion.action === \"update\" ||\n module.selectedVersion.action === \"restore\"\n );\n } else if (this.selectedButtonFilter === \"updates\") {\n actionMatch = !!(module.selectedVersion.action === \"update\");\n }\n\n const filtered = (nameMatch || descriptionMatch) && actionMatch;\n return filtered;\n });\n };\n\n // 9.LOCAL METHODS > RENDERS //\n private renderGridOrEmptyState = () => {\n this.filteredServerModules = this.getFilteredServerModules();\n if (this.filteredServerModules.length > 0) {\n return this.renderModulesVersionsGrid();\n } else {\n return this.renderEmptyStateModules();\n }\n };\n\n private renderModulesVersionsGrid = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n size=\"min-content\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredServerModules.map((module: ExtendedModuleData) => (\n <ch-tabular-grid-row\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"grid-cell-module__info tabular-grid-cell\">\n <span class=\"grid-cell-module__name\">\n <gxg-icon\n type=\"objects/module\"\n data-action={module.selectedVersion.action}\n color={this.moduleVersionIconColor(module.id)}\n size=\"small\"\n ></gxg-icon>\n {module.selectedVersion.name}\n </span>\n <span class=\"grid-cell-module__description\">\n {module.selectedVersion.description}\n </span>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <div class=\"button-wrapper\">\n <gxg-button\n disabled={\n !this.actionCompleted ||\n module.selectedVersion.action === \"incompatible\" ||\n module.selectedVersion.action === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler(module)}\n >\n {module.selectedVersion.action}\n </gxg-button>\n </div>\n ) : null}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIconSrc={this.#filterIcon}\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (moduleId: string): Color => {\n const foundModule = this.serverModulesExtended.find(module => {\n return module.id === moduleId;\n });\n if (foundModule) {\n const moduleAction = foundModule.selectedVersion.action;\n const moduleCurrentVersion = foundModule.currentVersion;\n if (\n moduleAction === \"not-installable\" ||\n moduleAction === \"incompatible\"\n ) {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n }\n\n return \"mercury-primary\";\n };\n\n private renderVersionIcon = () => {\n return (\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule.id)}\n ></gxg-icon>\n );\n };\n\n /* module details/information renders*/\n private renderVersionName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n {this.selectedModule.selectedVersion.name}\n </div>\n </gxg-title>\n );\n };\n\n private renderVersionWarningMessage = () => {\n const warningMessage = this.selectedModule.selectedVersion.warningMessage;\n if (warningMessage) {\n return <p class=\"module-info__warning-message\">{warningMessage}</p>;\n }\n };\n\n private renderInstalledVersion = () => {\n const currentVersion = this.selectedModule.currentVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentVersion) {\n caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{caption}</gxg-text>\n </div>\n );\n };\n\n // Update selected version\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const selectedVersionId = e.detail.value;\n this.updateSelectedModuleVersion(selectedVersionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const selectedVersionId = e.detail.value;\n this.updateSelectedModuleVersion(selectedVersionId);\n };\n private updateSelectedModuleVersion = (selectedVersionId: string) => {\n const moduleSelectedVersion = this.selectedModule.versions.find(version => {\n return version.id === selectedVersionId;\n });\n if (moduleSelectedVersion) {\n const updatedSelectedModule = {\n ...this.selectedModule,\n selectedVersion: moduleSelectedVersion\n };\n this.selectedModule = updatedSelectedModule;\n\n // update module selected in modules array as well\n const updatedModuleIndex = this.serverModulesExtended.findIndex(\n module => module.id === updatedSelectedModule.id\n );\n if (updatedModuleIndex !== -1) {\n // Update the object with new information\n this.serverModulesExtended[updatedModuleIndex] = {\n ...this.serverModulesExtended[updatedModuleIndex],\n ...updatedSelectedModule\n };\n }\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=\"\"\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 || !this.actionCompleted}\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 this.selectedButtonFilter = e.detail as ModuleFilterType;\n };\n\n // Update server selected\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, false);\n };\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (\n serverId: any,\n reload: boolean\n ) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n\n // clear\n this.serverModules = [];\n this.serverModulesExtended = [];\n this.filteredServerModules = [];\n this.modulesMap.clear();\n this.modulesSelectedVersionMap.clear();\n\n this.serverModules = await this.serverSelectedCallback(serverId, reload);\n // Save modules on Map as well to get information about modules faster\n this.serverModules.forEach(module => {\n const extendedModuleData = {\n ...module,\n selectedVersion: module.versions[0]\n };\n // When the server retrieves the modules, the selected module is by default the first one.\n this.serverModulesExtended.push(extendedModuleData);\n // Save modules on a map as well, for faster retrieval.\n this.modulesMap.set(module.id, extendedModuleData);\n });\n this.selectedServerId = serverId;\n this.loadingServer = false;\n }\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 <ch-theme model={CSS_BUNDLES}></ch-theme>\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 disabled={this.loadingServer || !this.actionCompleted}\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 {this.showServerCommands ? (\n <span class=\"modules__server-commands\">\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 ) : null}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\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={this.searchModulesFilterHandler}\n disabled={this.loadingServer || !this.actionCompleted}\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=\"browse\"\n selected\n disabled={this.loadingServer || !this.actionCompleted}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"installed\"\n disabled={this.loadingServer || !this.actionCompleted}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"updates\"\n disabled={this.loadingServer || !this.actionCompleted}\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.renderGridOrEmptyState()}\n </div>\n </div>\n </div>\n\n {/* Module version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n <div class=\"module-info__title\">\n {this.renderVersionIcon()}\n {this.renderVersionName()}\n </div>\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {this.renderVersionWarningMessage()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.selectedModule.selectedVersion.properties\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#moduleIcon}\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 closeType=\"not-progress\"\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 abortTime={60000}\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 = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"],"version":3}
1
+ {"file":"gx-ide-manage-module-references-v2.js","mappings":"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","names":[],"sources":["src/components/modules/manage-module-references-v2/manage-module-references.scss?tag=gx-ide-manage-module-references-v2&encapsulation=shadow","src/components/modules/manage-module-references-v2/manage-module-references-v2.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}\nch-grid-row[selected] {\n gxg-icon[data-action=\"install\"] {\n //WA to improve visibility\n filter: brightness(2);\n }\n}\n.grid-cell-module {\n &__info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--mer-spacing--3xs);\n }\n &__name {\n font-weight: var(--mer-font__weight--bold);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n &__description {\n padding-inline-start: 36px;\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 &__server-commands {\n display: flex;\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 &__title {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\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 &--uninstallable:before {\n background-color: var(--mer-icon__warning);\n }\n }\n\n &__warning-message {\n margin-block-start: var(--mer-spacing--2xs);\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--2xs);\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--2xs);\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--2xs);\n height: var(--mer-spacing--2xs);\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\n.button-wrapper {\n display: grid;\n align-items: center;\n justify-content: center;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ExtendedModuleData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-manage-module-references-v2\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references-v2\"]\n})\nexport class GxManageModuleReferencesV2 {\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: HTMLGxIdeManageModuleReferencesV2Element;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n #filterIcon = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n });\n #moduleIcon = getIconPath({\n category: \"objects\",\n name: \"module\"\n });\n\n // 3.STATE() VARIABLES //\n\n // Filtering modules\n @State() searchModulesFilterValue: string = \"\";\n @State() selectedButtonFilter: ModuleFilterType = \"browse\";\n @State() serverModules: ModuleData[] = [];\n @State() serverModulesExtended: ExtendedModuleData[] = [];\n @State() filteredServerModules: ExtendedModuleData[] = [];\n @State() modulesMap: Map<string, ExtendedModuleData> = new Map();\n\n @State() selectedModule: ExtendedModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersionMap: 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 an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version\n */\n @Prop() readonly showServerCommands: boolean = false;\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, false);\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\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 /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n this.selectedModule = this.modulesMap.get(selectedModuleId);\n };\n\n private moduleActionHandler = (module: ModuleData) => () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\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 this.actionCompleted = false;\n const moduleSelectedVersionId = this.modulesMap.get(module.id)\n .selectedVersion.id;\n const moduleSelectedVersionAction = this.modulesMap.get(module.id)\n .selectedVersion.action;\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n moduleSelectedVersionAction,\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n this.actionCompleted = true;\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 searchModulesFilterHandler = (e: CustomEvent<string>) => {\n this.searchModulesFilterValue = e.detail.trim().toLowerCase();\n };\n\n private getFilteredServerModules = (): ExtendedModuleData[] => {\n return this.serverModulesExtended.filter(module => {\n // Filter conditions\n const nameMatch = module.selectedVersion.name\n .toLowerCase()\n .includes(this.searchModulesFilterValue);\n const descriptionMatch = module.selectedVersion.description\n .toLowerCase()\n .includes(this.searchModulesFilterValue);\n let actionMatch;\n if (this.selectedButtonFilter === \"browse\") {\n // If browse is selected, display all\n actionMatch = true;\n } else if (this.selectedButtonFilter === \"installed\") {\n actionMatch = !!(\n module.selectedVersion.action === \"update\" ||\n module.selectedVersion.action === \"restore\"\n );\n } else if (this.selectedButtonFilter === \"updates\") {\n actionMatch = !!(module.selectedVersion.action === \"update\");\n }\n\n const filtered = (nameMatch || descriptionMatch) && actionMatch;\n return filtered;\n });\n };\n\n // 9.LOCAL METHODS > RENDERS //\n private renderGridOrEmptyState = () => {\n this.filteredServerModules = this.getFilteredServerModules();\n if (this.filteredServerModules.length > 0) {\n return this.renderModulesVersionsGrid();\n } else {\n return this.renderEmptyStateModules();\n }\n };\n\n private renderModulesVersionsGrid = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n size=\"min-content\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredServerModules.map((module: ExtendedModuleData) => (\n <ch-tabular-grid-row\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"grid-cell-module__info tabular-grid-cell\">\n <span class=\"grid-cell-module__name\">\n <gxg-icon\n type=\"objects/module\"\n data-action={module.selectedVersion.action}\n color={this.moduleVersionIconColor(module.id)}\n size=\"small\"\n ></gxg-icon>\n {module.selectedVersion.name}\n </span>\n <span class=\"grid-cell-module__description\">\n {module.selectedVersion.description}\n </span>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <div class=\"button-wrapper\">\n <gxg-button\n disabled={\n !this.actionCompleted ||\n module.selectedVersion.action === \"incompatible\" ||\n module.selectedVersion.action === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler(module)}\n >\n {module.selectedVersion.action}\n </gxg-button>\n </div>\n ) : null}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIconSrc={this.#filterIcon}\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (moduleId: string): Color => {\n const foundModule = this.serverModulesExtended.find(module => {\n return module.id === moduleId;\n });\n if (foundModule) {\n const moduleAction = foundModule.selectedVersion.action;\n const moduleCurrentVersion = foundModule.currentVersion;\n if (\n moduleAction === \"not-installable\" ||\n moduleAction === \"incompatible\"\n ) {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n }\n\n return \"mercury-primary\";\n };\n\n private renderVersionIcon = () => {\n return (\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule.id)}\n ></gxg-icon>\n );\n };\n\n /* module details/information renders*/\n private renderVersionName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n {this.selectedModule.selectedVersion.name}\n </div>\n </gxg-title>\n );\n };\n\n private renderVersionWarningMessage = () => {\n const warningMessage = this.selectedModule.selectedVersion.warningMessage;\n if (warningMessage) {\n return <p class=\"module-info__warning-message\">{warningMessage}</p>;\n }\n };\n\n private renderInstalledVersion = () => {\n const currentVersion = this.selectedModule.currentVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentVersion) {\n caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{caption}</gxg-text>\n </div>\n );\n };\n\n // Update selected version\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const selectedVersionId = e.detail.value;\n this.updateSelectedModuleVersion(selectedVersionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const selectedVersionId = e.detail.value;\n this.updateSelectedModuleVersion(selectedVersionId);\n };\n private updateSelectedModuleVersion = (selectedVersionId: string) => {\n const moduleSelectedVersion = this.selectedModule.versions.find(version => {\n return version.id === selectedVersionId;\n });\n if (moduleSelectedVersion) {\n const updatedSelectedModule = {\n ...this.selectedModule,\n selectedVersion: moduleSelectedVersion\n };\n this.selectedModule = updatedSelectedModule;\n\n // update module selected in modules array as well\n const updatedModuleIndex = this.serverModulesExtended.findIndex(\n module => module.id === updatedSelectedModule.id\n );\n if (updatedModuleIndex !== -1) {\n // Update the object with new information\n this.serverModulesExtended[updatedModuleIndex] = {\n ...this.serverModulesExtended[updatedModuleIndex],\n ...updatedSelectedModule\n };\n }\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=\"\"\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 || !this.actionCompleted}\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 this.selectedButtonFilter = e.detail as ModuleFilterType;\n };\n\n // Update server selected\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, false);\n };\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (\n serverId: any,\n reload: boolean\n ) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n\n // clear\n this.serverModules = [];\n this.serverModulesExtended = [];\n this.filteredServerModules = [];\n this.modulesMap.clear();\n this.modulesSelectedVersionMap.clear();\n\n this.serverModules = await this.serverSelectedCallback(serverId, reload);\n // Save modules on Map as well to get information about modules faster\n this.serverModules.forEach(module => {\n const extendedModuleData = {\n ...module,\n selectedVersion: module.versions[0]\n };\n // When the server retrieves the modules, the selected module is by default the first one.\n this.serverModulesExtended.push(extendedModuleData);\n // Save modules on a map as well, for faster retrieval.\n this.modulesMap.set(module.id, extendedModuleData);\n });\n this.selectedServerId = serverId;\n this.loadingServer = false;\n }\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 <ch-theme model={CSS_BUNDLES}></ch-theme>\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 disabled={this.loadingServer || !this.actionCompleted}\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 {this.showServerCommands ? (\n <span class=\"modules__server-commands\">\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 ) : null}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\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={this.searchModulesFilterHandler}\n disabled={this.loadingServer || !this.actionCompleted}\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=\"browse\"\n selected\n disabled={this.loadingServer || !this.actionCompleted}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"installed\"\n disabled={this.loadingServer || !this.actionCompleted}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"updates\"\n disabled={this.loadingServer || !this.actionCompleted}\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.renderGridOrEmptyState()}\n </div>\n </div>\n </div>\n\n {/* Module version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n <div class=\"module-info__title\">\n {this.renderVersionIcon()}\n {this.renderVersionName()}\n </div>\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {this.renderVersionWarningMessage()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.selectedModule.selectedVersion.properties\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#moduleIcon}\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 closeType=\"not-progress\"\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 abortTime={60000}\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 = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"],"version":3}