@genexus/genexus-ide-ui 1.0.1 → 1.0.2

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 (614) hide show
  1. package/dist/cjs/assets-manager-64c42a1e.js +14669 -0
  2. package/dist/cjs/assets-manager-64c42a1e.js.map +1 -0
  3. package/dist/cjs/{common-a9c44141.js → common-d21da2fc.js} +2 -2
  4. package/dist/cjs/{common-a9c44141.js.map → common-d21da2fc.js.map} +1 -1
  5. package/dist/cjs/{config-8246d533.js → config-7499aff7.js} +21 -1
  6. package/dist/cjs/config-7499aff7.js.map +1 -0
  7. package/dist/cjs/constants-96a42315.js.map +1 -1
  8. package/dist/cjs/genexus-ide-ui.cjs.js +2 -2
  9. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +2 -2
  10. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +3 -3
  12. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +6 -7
  14. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +3 -3
  16. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +3 -3
  18. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +4 -4
  20. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +3 -3
  22. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +4 -4
  24. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +3 -3
  26. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-card.cjs.entry.js +2 -2
  28. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +5 -5
  30. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -1
  32. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +6 -6
  33. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +24 -9
  35. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +4 -5
  37. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-design-import.cjs.entry.js +4 -4
  39. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +2 -2
  42. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +11 -50
  44. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +78 -53
  46. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +3 -3
  48. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +3 -3
  50. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +4 -4
  52. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +2 -2
  54. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-loader.cjs.entry.js +32 -47
  56. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +24 -5
  58. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +24 -5
  60. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +6 -7
  62. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +6 -6
  64. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-new-object.cjs.entry.js +3 -3
  66. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +208 -218
  68. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +119 -70
  70. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-references.cjs.entry.js +4 -4
  72. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -6
  74. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-start-page.cjs.entry.js +131 -125
  76. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  78. package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +1 -1
  79. package/dist/cjs/gx-ide-switcher.cjs.entry.js +1 -1
  80. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +7 -8
  81. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  82. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +4 -4
  83. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  84. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +4 -5
  85. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  86. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +3 -3
  87. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  88. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +6 -7
  89. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  90. package/dist/cjs/gx-ide-template.cjs.entry.js +3 -3
  91. package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
  92. package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
  93. package/dist/cjs/gx-ide-top-bar.cjs.entry.js +1 -1
  94. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +3 -3
  95. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  96. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +7 -8
  97. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  98. package/dist/cjs/{helpers-cef3dd1f.js → helpers-be14ea67.js} +34 -5
  99. package/dist/cjs/helpers-be14ea67.js.map +1 -0
  100. package/dist/cjs/{index-13ec56b2.js → index-b87e3ee0.js} +10 -4
  101. package/dist/cjs/index-b87e3ee0.js.map +1 -0
  102. package/dist/cjs/loader.cjs.js +2 -2
  103. package/dist/cjs/{render-combo-items-7cf25644.js → render-combo-items-9d83241b.js} +2 -2
  104. package/dist/cjs/{render-combo-items-7cf25644.js.map → render-combo-items-9d83241b.js.map} +1 -1
  105. package/dist/cjs/{render-list-item-859d6b85.js → render-list-item-353de5ee.js} +2 -2
  106. package/dist/cjs/{render-list-item-859d6b85.js.map → render-list-item-353de5ee.js.map} +1 -1
  107. package/dist/cjs/{render-suggest-5159c128.js → render-suggest-cd69493a.js} +2 -2
  108. package/dist/cjs/{render-suggest-5159c128.js.map → render-suggest-cd69493a.js.map} +1 -1
  109. package/dist/collection/collection-manifest.json +1 -1
  110. package/dist/collection/common/config.js +20 -0
  111. package/dist/collection/common/config.js.map +1 -1
  112. package/dist/collection/common/constants.js.map +1 -1
  113. package/dist/collection/common/helpers.js +31 -3
  114. package/dist/collection/common/helpers.js.map +1 -1
  115. package/dist/collection/common/types.js.map +1 -1
  116. package/dist/collection/components/_helpers/card/card.css +108 -0
  117. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +638 -16
  118. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +17 -111
  119. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
  120. package/dist/collection/components/_helpers/entity-selector/entity-selector.css +21 -386
  121. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +90 -142
  122. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  123. package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +6 -0
  124. package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +0 -0
  125. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +23 -38
  126. package/dist/collection/components/_helpers/ide-loader/ide-loader.js +68 -125
  127. package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
  128. package/dist/collection/components/_helpers/list-selector/list-selector.css +108 -0
  129. package/dist/collection/components/_starting-template/template.css +108 -0
  130. package/dist/collection/components/ai-assistant/ai-assistant.css +108 -0
  131. package/dist/collection/components/ai-assistant/ai-message.css +2 -2
  132. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +148 -0
  133. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +1 -2
  134. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
  135. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +108 -0
  136. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +108 -0
  137. package/dist/collection/components/bpm/import-files/bpm-import-files.css +108 -0
  138. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +108 -0
  139. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +108 -0
  140. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +108 -0
  141. package/dist/collection/components/connect-gx-server/connect-gx-server.css +108 -0
  142. package/dist/collection/components/connect-gx-server/connect-gx-server.js +1 -1
  143. package/dist/collection/components/connect-gx-server/connect-gx-server.js.map +1 -1
  144. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +108 -0
  145. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  146. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
  147. package/dist/collection/components/dashboard-home/dashboard-home.css +108 -0
  148. package/dist/collection/components/dashboard-home/dashboard-home.js +21 -6
  149. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  150. package/dist/collection/components/data-selector/data-selector.css +108 -0
  151. package/dist/collection/components/data-selector/data-selector.js +1 -2
  152. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  153. package/dist/collection/components/design-import/design-import.css +108 -0
  154. package/dist/collection/components/design-import/design-import.js +1 -1
  155. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +108 -0
  156. package/dist/collection/components/kb-manager-export/helpers.js.map +1 -1
  157. package/dist/collection/components/kb-manager-export/kb-manager-export.css +108 -0
  158. package/dist/collection/components/kb-manager-export/kb-manager-export.js +3 -3
  159. package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
  160. package/dist/collection/components/kb-manager-import/kb-manager-import.css +157 -0
  161. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +108 -0
  162. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +108 -0
  163. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +21 -2
  164. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  165. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +21 -2
  166. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
  167. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +108 -0
  168. package/dist/collection/components/new-environment/new-environment.css +108 -0
  169. package/dist/collection/components/new-environment/new-environment.js +1 -1
  170. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  171. package/dist/collection/components/new-kb/new-kb.css +108 -0
  172. package/dist/collection/components/new-kb/new-kb.js +1 -1
  173. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  174. package/dist/collection/components/new-object/new-object.css +108 -0
  175. package/dist/collection/components/new-object/new-object.js +2 -2
  176. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -0
  177. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +4 -1
  178. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/shortcuts.json +2 -2
  179. package/dist/collection/components/object-selector/helpers.js +13 -0
  180. package/dist/collection/components/object-selector/helpers.js.map +1 -0
  181. package/dist/collection/components/object-selector/object-selector.css +199 -50
  182. package/dist/collection/components/object-selector/object-selector.js +299 -375
  183. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  184. package/dist/collection/components/references/references.css +108 -0
  185. package/dist/collection/components/share-kb/share-kb.css +108 -0
  186. package/dist/collection/components/share-kb/share-kb.js +1 -1
  187. package/dist/collection/components/share-kb/share-kb.js.map +1 -1
  188. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -4
  189. package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +15 -5
  190. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +13 -3
  191. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +15 -5
  192. package/dist/collection/components/start-page/recent-news.css +136 -42
  193. package/dist/collection/components/start-page/recent-news.js +141 -73
  194. package/dist/collection/components/start-page/recent-news.js.map +1 -1
  195. package/dist/collection/components/start-page/start-page.css +186 -29
  196. package/dist/collection/components/start-page/start-page.js +184 -171
  197. package/dist/collection/components/start-page/start-page.js.map +1 -1
  198. package/dist/collection/components/team-dev/commit/commit.css +148 -0
  199. package/dist/collection/components/team-dev/commit/commit.js +2 -3
  200. package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
  201. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +108 -0
  202. package/dist/collection/components/team-dev/update/update.css +148 -0
  203. package/dist/collection/components/team-dev/update/update.js +1 -2
  204. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  205. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +108 -0
  206. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -2
  207. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
  208. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +108 -0
  209. package/dist/collection/components/wf-settings/wf-settings.css +108 -0
  210. package/dist/collection/components/ww-images/ww-images.css +150 -2
  211. package/dist/collection/components/ww-images/ww-images.js +3 -4
  212. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  213. package/dist/components/ai-message.js +1 -1
  214. package/dist/components/ai-message.js.map +1 -1
  215. package/dist/components/assets-manager.js +14667 -0
  216. package/dist/components/assets-manager.js.map +1 -0
  217. package/dist/components/bpm-objects-selector.js +1 -1
  218. package/dist/components/bpm-objects-selector.js.map +1 -1
  219. package/dist/components/config.js +20 -0
  220. package/dist/components/config.js.map +1 -1
  221. package/dist/components/constants.js.map +1 -1
  222. package/dist/components/entity-selector.js +79 -57
  223. package/dist/components/entity-selector.js.map +1 -1
  224. package/dist/components/gx-ide-ai-assistant.js +1 -1
  225. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  226. package/dist/components/gx-ide-bpm-app-declaration.js +2 -3
  227. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  228. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  229. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  230. package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
  231. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  232. package/dist/components/gx-ide-bpm-import-files.js +1 -1
  233. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  234. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  235. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  236. package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
  237. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  238. package/dist/components/gx-ide-card.js +1 -1
  239. package/dist/components/gx-ide-card.js.map +1 -1
  240. package/dist/components/gx-ide-connect-gx-server.js +2 -2
  241. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  242. package/dist/components/gx-ide-create-kb-from-server.js +2 -2
  243. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  244. package/dist/components/gx-ide-dashboard-home.js +25 -16
  245. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  246. package/dist/components/gx-ide-data-selector.js +2 -3
  247. package/dist/components/gx-ide-data-selector.js.map +1 -1
  248. package/dist/components/gx-ide-design-import.js +1 -1
  249. package/dist/components/gx-ide-design-import.js.map +1 -1
  250. package/dist/components/gx-ide-edit-module-server.js +1 -1
  251. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  252. package/dist/components/gx-ide-empty-state2.js +13 -63
  253. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  254. package/dist/components/gx-ide-gam-installation-settings.js +1 -1
  255. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  256. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  257. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  258. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  259. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  260. package/dist/components/gx-ide-manage-module-references-v2.js +22 -3
  261. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  262. package/dist/components/gx-ide-manage-module-references.js +22 -3
  263. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  264. package/dist/components/gx-ide-new-environment.js +2 -3
  265. package/dist/components/gx-ide-new-environment.js.map +1 -1
  266. package/dist/components/gx-ide-new-kb.js +2 -2
  267. package/dist/components/gx-ide-new-kb.js.map +1 -1
  268. package/dist/components/gx-ide-new-object.js +1 -1
  269. package/dist/components/gx-ide-new-object.js.map +1 -1
  270. package/dist/components/gx-ide-object-selector.js +224 -243
  271. package/dist/components/gx-ide-object-selector.js.map +1 -1
  272. package/dist/components/gx-ide-references.js +1 -1
  273. package/dist/components/gx-ide-references.js.map +1 -1
  274. package/dist/components/gx-ide-share-kb.js +2 -2
  275. package/dist/components/gx-ide-share-kb.js.map +1 -1
  276. package/dist/components/gx-ide-start-page.js +149 -133
  277. package/dist/components/gx-ide-start-page.js.map +1 -1
  278. package/dist/components/gx-ide-team-dev-commit.js +4 -5
  279. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  280. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  281. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  282. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -3
  283. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  284. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  285. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  286. package/dist/components/gx-ide-team-dev-update.js +3 -4
  287. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  288. package/dist/components/gx-ide-template.js +1 -1
  289. package/dist/components/gx-ide-template.js.map +1 -1
  290. package/dist/components/gx-ide-wf-settings.js +1 -1
  291. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  292. package/dist/components/gx-ide-ww-images.js +4 -5
  293. package/dist/components/gx-ide-ww-images.js.map +1 -1
  294. package/dist/components/helpers.js +32 -4
  295. package/dist/components/helpers.js.map +1 -1
  296. package/dist/components/ide-loader.js +36 -56
  297. package/dist/components/ide-loader.js.map +1 -1
  298. package/dist/components/list-selector.js +1 -1
  299. package/dist/components/list-selector.js.map +1 -1
  300. package/dist/components/recent-news.js +132 -73
  301. package/dist/components/recent-news.js.map +1 -1
  302. package/dist/esm/assets-manager-120996e9.js +14667 -0
  303. package/dist/esm/assets-manager-120996e9.js.map +1 -0
  304. package/dist/esm/{common-8826f536.js → common-31ac2b05.js} +2 -2
  305. package/dist/esm/{common-8826f536.js.map → common-31ac2b05.js.map} +1 -1
  306. package/dist/esm/{config-a492e15e.js → config-6cfbb06f.js} +21 -1
  307. package/dist/esm/config-6cfbb06f.js.map +1 -0
  308. package/dist/esm/constants-f9193da7.js.map +1 -1
  309. package/dist/esm/genexus-ide-ui.js +3 -3
  310. package/dist/esm/gx-ide-ai-assistant.entry.js +2 -2
  311. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  312. package/dist/esm/gx-ide-ai-message.entry.js +3 -3
  313. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  314. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +6 -7
  315. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  316. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +3 -3
  317. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  318. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +3 -3
  319. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  320. package/dist/esm/gx-ide-bpm-import-files.entry.js +4 -4
  321. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  322. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +3 -3
  323. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  324. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +4 -4
  325. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  326. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +3 -3
  327. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  328. package/dist/esm/gx-ide-card.entry.js +2 -2
  329. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  330. package/dist/esm/gx-ide-connect-gx-server.entry.js +4 -4
  331. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  332. package/dist/esm/gx-ide-container_2.entry.js +1 -1
  333. package/dist/esm/gx-ide-create-kb-from-server.entry.js +4 -4
  334. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  335. package/dist/esm/gx-ide-dashboard-home.entry.js +24 -9
  336. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  337. package/dist/esm/gx-ide-data-selector.entry.js +4 -5
  338. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  339. package/dist/esm/gx-ide-design-import.entry.js +4 -4
  340. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  341. package/dist/esm/gx-ide-directory-selector.entry.js +1 -1
  342. package/dist/esm/gx-ide-edit-module-server.entry.js +2 -2
  343. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  344. package/dist/esm/gx-ide-empty-state.entry.js +11 -50
  345. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  346. package/dist/esm/gx-ide-entity-selector.entry.js +78 -53
  347. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  348. package/dist/esm/gx-ide-gam-installation-settings.entry.js +3 -3
  349. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  350. package/dist/esm/gx-ide-kb-manager-export.entry.js +3 -3
  351. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  352. package/dist/esm/gx-ide-kb-manager-import.entry.js +4 -4
  353. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  354. package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
  355. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  356. package/dist/esm/gx-ide-loader.entry.js +32 -47
  357. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  358. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +24 -5
  359. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  360. package/dist/esm/gx-ide-manage-module-references.entry.js +24 -5
  361. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  362. package/dist/esm/gx-ide-new-environment.entry.js +5 -6
  363. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  364. package/dist/esm/gx-ide-new-kb.entry.js +5 -5
  365. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  366. package/dist/esm/gx-ide-new-object.entry.js +3 -3
  367. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  368. package/dist/esm/gx-ide-object-selector.entry.js +208 -218
  369. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  370. package/dist/esm/gx-ide-recent-news.entry.js +119 -70
  371. package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
  372. package/dist/esm/gx-ide-references.entry.js +4 -4
  373. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  374. package/dist/esm/gx-ide-share-kb.entry.js +5 -5
  375. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  376. package/dist/esm/gx-ide-start-page.entry.js +131 -125
  377. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  378. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  379. package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
  380. package/dist/esm/gx-ide-switcher.entry.js +1 -1
  381. package/dist/esm/gx-ide-team-dev-commit.entry.js +7 -8
  382. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  383. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +4 -4
  384. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  385. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +4 -5
  386. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  387. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +3 -3
  388. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  389. package/dist/esm/gx-ide-team-dev-update.entry.js +6 -7
  390. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  391. package/dist/esm/gx-ide-template.entry.js +3 -3
  392. package/dist/esm/gx-ide-template.entry.js.map +1 -1
  393. package/dist/esm/gx-ide-test.entry.js +1 -1
  394. package/dist/esm/gx-ide-top-bar.entry.js +1 -1
  395. package/dist/esm/gx-ide-wf-settings.entry.js +3 -3
  396. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  397. package/dist/esm/gx-ide-ww-images.entry.js +7 -8
  398. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  399. package/dist/esm/{helpers-0a23ab69.js → helpers-05c62775.js} +34 -6
  400. package/dist/esm/helpers-05c62775.js.map +1 -0
  401. package/dist/esm/{index-2f305780.js → index-27c691bc.js} +10 -4
  402. package/dist/esm/index-27c691bc.js.map +1 -0
  403. package/dist/esm/loader.js +3 -3
  404. package/dist/esm/{render-combo-items-42fe0712.js → render-combo-items-b5465c1d.js} +2 -2
  405. package/dist/esm/{render-combo-items-42fe0712.js.map → render-combo-items-b5465c1d.js.map} +1 -1
  406. package/dist/esm/{render-list-item-ae730365.js → render-list-item-06286d62.js} +2 -2
  407. package/dist/esm/{render-list-item-ae730365.js.map → render-list-item-06286d62.js.map} +1 -1
  408. package/dist/esm/{render-suggest-90759f0b.js → render-suggest-3543434c.js} +2 -2
  409. package/dist/esm/{render-suggest-90759f0b.js.map → render-suggest-3543434c.js.map} +1 -1
  410. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +3 -3
  411. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  412. package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +6 -0
  413. package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json +0 -0
  414. package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +0 -0
  415. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -0
  416. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +4 -1
  417. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/shortcuts.json +2 -2
  418. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -4
  419. package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +15 -5
  420. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +13 -3
  421. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +15 -5
  422. package/dist/genexus-ide-ui/{p-52037fb7.entry.js → p-02c7b423.entry.js} +74 -74
  423. package/dist/genexus-ide-ui/p-02c7b423.entry.js.map +1 -0
  424. package/dist/genexus-ide-ui/{p-7fe1ceb9.entry.js → p-03a88768.entry.js} +4 -4
  425. package/dist/genexus-ide-ui/{p-c585f865.entry.js → p-03b4b814.entry.js} +178 -180
  426. package/dist/genexus-ide-ui/p-03b4b814.entry.js.map +1 -0
  427. package/dist/genexus-ide-ui/{p-fa07dd86.entry.js → p-04875060.entry.js} +99 -99
  428. package/dist/genexus-ide-ui/{p-309544a8.js → p-07b9c2d4.js} +2 -2
  429. package/dist/genexus-ide-ui/{p-fc6040c7.entry.js → p-09cc20b1.entry.js} +2 -2
  430. package/dist/genexus-ide-ui/{p-328fc42f.entry.js → p-0bddf199.entry.js} +110 -89
  431. package/dist/genexus-ide-ui/p-0bddf199.entry.js.map +1 -0
  432. package/dist/genexus-ide-ui/{p-ff934271.entry.js → p-0f7b7541.entry.js} +46 -48
  433. package/dist/genexus-ide-ui/p-0f7b7541.entry.js.map +1 -0
  434. package/dist/genexus-ide-ui/p-13feb5cf.js.map +1 -1
  435. package/dist/genexus-ide-ui/{p-9265eb8d.js → p-14e6ef41.js} +52 -24
  436. package/dist/genexus-ide-ui/p-14e6ef41.js.map +1 -0
  437. package/dist/genexus-ide-ui/p-15ab148b.entry.js +683 -0
  438. package/dist/genexus-ide-ui/{p-8be06716.entry.js → p-2073deab.entry.js} +30 -30
  439. package/dist/genexus-ide-ui/{p-14d3afaf.entry.js → p-2238f5b3.entry.js} +43 -26
  440. package/dist/genexus-ide-ui/p-2238f5b3.entry.js.map +1 -0
  441. package/dist/genexus-ide-ui/{p-947149d1.entry.js → p-28456a97.entry.js} +16 -16
  442. package/dist/genexus-ide-ui/{p-df7151fa.entry.js → p-33434d7d.entry.js} +170 -172
  443. package/dist/genexus-ide-ui/p-33434d7d.entry.js.map +1 -0
  444. package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js → p-3b5b6908.entry.js} +2 -2
  445. package/dist/genexus-ide-ui/{p-caa3c8b1.entry.js → p-43cfd06b.entry.js} +37 -37
  446. package/dist/genexus-ide-ui/p-43cfd06b.entry.js.map +1 -0
  447. package/dist/genexus-ide-ui/p-44a2f835.entry.js +506 -0
  448. package/dist/genexus-ide-ui/p-44a2f835.entry.js.map +1 -0
  449. package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js → p-48723dcd.entry.js} +8 -8
  450. package/dist/genexus-ide-ui/{p-4f0b6507.entry.js → p-4a0e3c34.entry.js} +74 -74
  451. package/dist/genexus-ide-ui/p-4a0e3c34.entry.js.map +1 -0
  452. package/dist/genexus-ide-ui/{p-df2e4696.entry.js → p-51771269.entry.js} +115 -94
  453. package/dist/genexus-ide-ui/p-51771269.entry.js.map +1 -0
  454. package/dist/genexus-ide-ui/{p-61e2d60e.entry.js → p-51ea74a5.entry.js} +52 -52
  455. package/dist/genexus-ide-ui/p-537dfb63.entry.js +318 -0
  456. package/dist/genexus-ide-ui/p-54f34df2.entry.js +154 -0
  457. package/dist/genexus-ide-ui/p-54f34df2.entry.js.map +1 -0
  458. package/dist/genexus-ide-ui/{p-06cb63b5.entry.js → p-60b5aa38.entry.js} +3 -3
  459. package/dist/genexus-ide-ui/{p-03c0d269.entry.js → p-69a83248.entry.js} +2 -2
  460. package/dist/genexus-ide-ui/p-6df9fab1.js +14666 -0
  461. package/dist/genexus-ide-ui/p-6df9fab1.js.map +1 -0
  462. package/dist/genexus-ide-ui/{p-6b5adc13.entry.js → p-73a98f20.entry.js} +13 -13
  463. package/dist/genexus-ide-ui/{p-f744e80f.entry.js → p-73afc989.entry.js} +22 -22
  464. package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js → p-77239013.entry.js} +18 -18
  465. package/dist/genexus-ide-ui/{p-fc55b26e.entry.js → p-7ac25fc3.entry.js} +2 -2
  466. package/dist/genexus-ide-ui/{p-357b287c.entry.js → p-7ca8ed4b.entry.js} +54 -54
  467. package/dist/genexus-ide-ui/p-8050e61d.entry.js +228 -0
  468. package/dist/genexus-ide-ui/p-8050e61d.entry.js.map +1 -0
  469. package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js → p-82649b9b.entry.js} +47 -47
  470. package/dist/genexus-ide-ui/{p-9c1b4eb9.js → p-8cf892b5.js} +23 -3
  471. package/dist/genexus-ide-ui/p-8cf892b5.js.map +1 -0
  472. package/dist/genexus-ide-ui/{p-b01eccc2.entry.js → p-8ee27085.entry.js} +4 -4
  473. package/dist/genexus-ide-ui/{p-cad2b413.entry.js → p-92e46b5d.entry.js} +37 -37
  474. package/dist/genexus-ide-ui/{p-c6f0f199.entry.js → p-941cdab8.entry.js} +57 -59
  475. package/dist/genexus-ide-ui/p-941cdab8.entry.js.map +1 -0
  476. package/dist/genexus-ide-ui/p-957341c7.entry.js +210 -0
  477. package/dist/genexus-ide-ui/p-957341c7.entry.js.map +1 -0
  478. package/dist/genexus-ide-ui/{p-dc02927a.entry.js → p-969e4799.entry.js} +68 -70
  479. package/dist/genexus-ide-ui/p-969e4799.entry.js.map +1 -0
  480. package/dist/genexus-ide-ui/{p-4dbaf435.entry.js → p-a1f28f2b.entry.js} +45 -45
  481. package/dist/genexus-ide-ui/{p-6b1fe886.entry.js → p-a88e14f8.entry.js} +153 -156
  482. package/dist/genexus-ide-ui/p-a88e14f8.entry.js.map +1 -0
  483. package/dist/genexus-ide-ui/{p-c147291f.js → p-aaed592c.js} +12 -5
  484. package/dist/genexus-ide-ui/p-aaed592c.js.map +1 -0
  485. package/dist/genexus-ide-ui/{p-0b854804.js → p-af836892.js} +9 -9
  486. package/dist/genexus-ide-ui/{p-ce59fefc.entry.js → p-b984f974.entry.js} +54 -56
  487. package/dist/genexus-ide-ui/p-b984f974.entry.js.map +1 -0
  488. package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js → p-c79243c8.entry.js} +2 -2
  489. package/dist/genexus-ide-ui/p-cb0e11db.entry.js +73 -0
  490. package/dist/genexus-ide-ui/p-cb0e11db.entry.js.map +1 -0
  491. package/dist/genexus-ide-ui/{p-0c8c6cc3.entry.js → p-d0f99e7f.entry.js} +41 -41
  492. package/dist/genexus-ide-ui/p-d0f99e7f.entry.js.map +1 -0
  493. package/dist/genexus-ide-ui/{p-f9cd47ba.entry.js → p-d40d8792.entry.js} +31 -112
  494. package/dist/genexus-ide-ui/p-d40d8792.entry.js.map +1 -0
  495. package/dist/genexus-ide-ui/{p-9e5fa97a.entry.js → p-dbfddffd.entry.js} +2 -2
  496. package/dist/genexus-ide-ui/{p-5bf67436.js → p-e8bdf9dc.js} +2 -2
  497. package/dist/genexus-ide-ui/{p-853dacf5.entry.js → p-ed72073c.entry.js} +42 -42
  498. package/dist/genexus-ide-ui/p-ed72073c.entry.js.map +1 -0
  499. package/dist/genexus-ide-ui/{p-01885db6.entry.js → p-edc4f1dc.entry.js} +5 -5
  500. package/dist/genexus-ide-ui/{p-7e2ea144.entry.js → p-ee3161f8.entry.js} +28 -28
  501. package/dist/genexus-ide-ui/{p-3ce32466.entry.js → p-f1f6b028.entry.js} +31 -31
  502. package/dist/genexus-ide-ui/{p-13c68ced.js → p-f831f30b.js} +2 -2
  503. package/dist/genexus-ide-ui/{p-97fba685.entry.js → p-f9aafa8f.entry.js} +24 -24
  504. package/dist/types/common/config.d.ts +19 -0
  505. package/dist/types/common/constants.d.ts +5 -4
  506. package/dist/types/common/helpers.d.ts +9 -0
  507. package/dist/types/common/types.d.ts +1 -3
  508. package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +4 -22
  509. package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +12 -31
  510. package/dist/types/components/_helpers/ide-loader/ide-loader.d.ts +11 -28
  511. package/dist/types/components/dashboard-home/dashboard-home.d.ts +1 -0
  512. package/dist/types/components/kb-manager-export/helpers.d.ts +2 -1
  513. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +1 -5
  514. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +1 -0
  515. package/dist/types/components/modules/manage-module-references-v2/manage-module-references-v2.d.ts +1 -0
  516. package/dist/types/components/object-selector/helpers.d.ts +4 -0
  517. package/dist/types/components/object-selector/object-selector.d.ts +28 -82
  518. package/dist/types/components/start-page/recent-news.d.ts +16 -12
  519. package/dist/types/components/start-page/start-page.d.ts +42 -18
  520. package/dist/types/components.d.ts +47 -158
  521. package/package.json +5 -5
  522. package/dist/cjs/config-8246d533.js.map +0 -1
  523. package/dist/cjs/form-validation-40aa8527.js +0 -24
  524. package/dist/cjs/form-validation-40aa8527.js.map +0 -1
  525. package/dist/cjs/grid-99bca82a.js +0 -16
  526. package/dist/cjs/grid-99bca82a.js.map +0 -1
  527. package/dist/cjs/helpers-cef3dd1f.js.map +0 -1
  528. package/dist/cjs/index-13ec56b2.js.map +0 -1
  529. package/dist/collection/common/form-validation.js +0 -19
  530. package/dist/collection/common/form-validation.js.map +0 -1
  531. package/dist/collection/common/grid.js +0 -11
  532. package/dist/collection/common/grid.js.map +0 -1
  533. package/dist/collection/common/interfaces.js +0 -4
  534. package/dist/collection/common/interfaces.js.map +0 -1
  535. package/dist/components/form-validation.js +0 -22
  536. package/dist/components/form-validation.js.map +0 -1
  537. package/dist/components/grid.js +0 -14
  538. package/dist/components/grid.js.map +0 -1
  539. package/dist/esm/config-a492e15e.js.map +0 -1
  540. package/dist/esm/form-validation-9367af5a.js +0 -22
  541. package/dist/esm/form-validation-9367af5a.js.map +0 -1
  542. package/dist/esm/grid-55fe9537.js +0 -14
  543. package/dist/esm/grid-55fe9537.js.map +0 -1
  544. package/dist/esm/helpers-0a23ab69.js.map +0 -1
  545. package/dist/esm/index-2f305780.js.map +0 -1
  546. package/dist/genexus-ide-ui/p-00095d68.js +0 -20
  547. package/dist/genexus-ide-ui/p-00095d68.js.map +0 -1
  548. package/dist/genexus-ide-ui/p-0c8c6cc3.entry.js.map +0 -1
  549. package/dist/genexus-ide-ui/p-14d3afaf.entry.js.map +0 -1
  550. package/dist/genexus-ide-ui/p-328fc42f.entry.js.map +0 -1
  551. package/dist/genexus-ide-ui/p-41326e89.entry.js +0 -184
  552. package/dist/genexus-ide-ui/p-41326e89.entry.js.map +0 -1
  553. package/dist/genexus-ide-ui/p-4c52f542.entry.js +0 -97
  554. package/dist/genexus-ide-ui/p-4c52f542.entry.js.map +0 -1
  555. package/dist/genexus-ide-ui/p-4f0b6507.entry.js.map +0 -1
  556. package/dist/genexus-ide-ui/p-52037fb7.entry.js.map +0 -1
  557. package/dist/genexus-ide-ui/p-6b1fe886.entry.js.map +0 -1
  558. package/dist/genexus-ide-ui/p-6d9841c4.entry.js +0 -94
  559. package/dist/genexus-ide-ui/p-6d9841c4.entry.js.map +0 -1
  560. package/dist/genexus-ide-ui/p-6ecf34b8.entry.js +0 -493
  561. package/dist/genexus-ide-ui/p-6ecf34b8.entry.js.map +0 -1
  562. package/dist/genexus-ide-ui/p-720702e4.js +0 -13
  563. package/dist/genexus-ide-ui/p-720702e4.js.map +0 -1
  564. package/dist/genexus-ide-ui/p-853dacf5.entry.js.map +0 -1
  565. package/dist/genexus-ide-ui/p-9265eb8d.js.map +0 -1
  566. package/dist/genexus-ide-ui/p-9c1b4eb9.js.map +0 -1
  567. package/dist/genexus-ide-ui/p-a5c15051.entry.js +0 -318
  568. package/dist/genexus-ide-ui/p-c147291f.js.map +0 -1
  569. package/dist/genexus-ide-ui/p-c585f865.entry.js.map +0 -1
  570. package/dist/genexus-ide-ui/p-c6f0f199.entry.js.map +0 -1
  571. package/dist/genexus-ide-ui/p-ca73836a.entry.js +0 -683
  572. package/dist/genexus-ide-ui/p-caa3c8b1.entry.js.map +0 -1
  573. package/dist/genexus-ide-ui/p-ce59fefc.entry.js.map +0 -1
  574. package/dist/genexus-ide-ui/p-dc02927a.entry.js.map +0 -1
  575. package/dist/genexus-ide-ui/p-df2e4696.entry.js.map +0 -1
  576. package/dist/genexus-ide-ui/p-df7151fa.entry.js.map +0 -1
  577. package/dist/genexus-ide-ui/p-f66a086d.entry.js +0 -146
  578. package/dist/genexus-ide-ui/p-f66a086d.entry.js.map +0 -1
  579. package/dist/genexus-ide-ui/p-f9cd47ba.entry.js.map +0 -1
  580. package/dist/genexus-ide-ui/p-ff934271.entry.js.map +0 -1
  581. package/dist/types/common/form-validation.d.ts +0 -2
  582. package/dist/types/common/grid.d.ts +0 -10
  583. /package/dist/{types/common/interfaces.d.ts → collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json} +0 -0
  584. /package/dist/genexus-ide-ui/{p-7fe1ceb9.entry.js.map → p-03a88768.entry.js.map} +0 -0
  585. /package/dist/genexus-ide-ui/{p-fa07dd86.entry.js.map → p-04875060.entry.js.map} +0 -0
  586. /package/dist/genexus-ide-ui/{p-309544a8.js.map → p-07b9c2d4.js.map} +0 -0
  587. /package/dist/genexus-ide-ui/{p-fc6040c7.entry.js.map → p-09cc20b1.entry.js.map} +0 -0
  588. /package/dist/genexus-ide-ui/{p-ca73836a.entry.js.map → p-15ab148b.entry.js.map} +0 -0
  589. /package/dist/genexus-ide-ui/{p-8be06716.entry.js.map → p-2073deab.entry.js.map} +0 -0
  590. /package/dist/genexus-ide-ui/{p-947149d1.entry.js.map → p-28456a97.entry.js.map} +0 -0
  591. /package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js.map → p-3b5b6908.entry.js.map} +0 -0
  592. /package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js.map → p-48723dcd.entry.js.map} +0 -0
  593. /package/dist/genexus-ide-ui/{p-61e2d60e.entry.js.map → p-51ea74a5.entry.js.map} +0 -0
  594. /package/dist/genexus-ide-ui/{p-a5c15051.entry.js.map → p-537dfb63.entry.js.map} +0 -0
  595. /package/dist/genexus-ide-ui/{p-06cb63b5.entry.js.map → p-60b5aa38.entry.js.map} +0 -0
  596. /package/dist/genexus-ide-ui/{p-03c0d269.entry.js.map → p-69a83248.entry.js.map} +0 -0
  597. /package/dist/genexus-ide-ui/{p-6b5adc13.entry.js.map → p-73a98f20.entry.js.map} +0 -0
  598. /package/dist/genexus-ide-ui/{p-f744e80f.entry.js.map → p-73afc989.entry.js.map} +0 -0
  599. /package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js.map → p-77239013.entry.js.map} +0 -0
  600. /package/dist/genexus-ide-ui/{p-fc55b26e.entry.js.map → p-7ac25fc3.entry.js.map} +0 -0
  601. /package/dist/genexus-ide-ui/{p-357b287c.entry.js.map → p-7ca8ed4b.entry.js.map} +0 -0
  602. /package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js.map → p-82649b9b.entry.js.map} +0 -0
  603. /package/dist/genexus-ide-ui/{p-b01eccc2.entry.js.map → p-8ee27085.entry.js.map} +0 -0
  604. /package/dist/genexus-ide-ui/{p-cad2b413.entry.js.map → p-92e46b5d.entry.js.map} +0 -0
  605. /package/dist/genexus-ide-ui/{p-4dbaf435.entry.js.map → p-a1f28f2b.entry.js.map} +0 -0
  606. /package/dist/genexus-ide-ui/{p-0b854804.js.map → p-af836892.js.map} +0 -0
  607. /package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js.map → p-c79243c8.entry.js.map} +0 -0
  608. /package/dist/genexus-ide-ui/{p-9e5fa97a.entry.js.map → p-dbfddffd.entry.js.map} +0 -0
  609. /package/dist/genexus-ide-ui/{p-5bf67436.js.map → p-e8bdf9dc.js.map} +0 -0
  610. /package/dist/genexus-ide-ui/{p-01885db6.entry.js.map → p-edc4f1dc.entry.js.map} +0 -0
  611. /package/dist/genexus-ide-ui/{p-7e2ea144.entry.js.map → p-ee3161f8.entry.js.map} +0 -0
  612. /package/dist/genexus-ide-ui/{p-3ce32466.entry.js.map → p-f1f6b028.entry.js.map} +0 -0
  613. /package/dist/genexus-ide-ui/{p-13c68ced.js.map → p-f831f30b.js.map} +0 -0
  614. /package/dist/genexus-ide-ui/{p-97fba685.entry.js.map → p-f9aafa8f.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["connectGxServerCss","GxIdeConnectGxServer","this","renderedFirstTime","renderServerUrls","_a","serverUrls","length","map","serverUrl","h","continueWithGxServerHandler","event","displayLoginControls","detail","value","evaluateDisplayLoginControls","enableUserLogged","connectHandler","connectCallback","serverURLEl","continueWithGeneXusAccount","continueWithGeneXusAccountEl","checked","user","userNameEl","password","passwordEl","then","formSubmitResult","console","log","formSubmitValidation","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","class","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","label","main","disableFilter","enableCustomServer","defaultConnectionData","ref","toolTip","tooltip","continueWithGxAccount","onChange","disabled","userName","labelPosition","_b","_c","slot","type","cancel","onClick","connect"],"sources":["src/components/connect-gx-server/connect-gx-server.scss?tag=gx-ide-connect-gx-server&encapsulation=shadow","src/components/connect-gx-server/connect-gx-server.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n\n.user-details-container {\n display: flex;\n gap: var(--gx-ide-form-items-gap);\n}\n\n.wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { formSubmitValidation } from \"../../common/form-validation\";\nimport { ConnectionResultData } from \"../../common/types\";\n\n@Component({\n tag: \"gx-ide-connect-gx-server\",\n styleUrl: \"connect-gx-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/connect-gx-server\"]\n})\nexport class GxIdeConnectGxServer {\n // 1.OWN PROPERTIES //\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: HTMLGxIdeConnectGxServerElement;\n\n private serverURLEl!: HTMLGxgComboBoxElement;\n private userNameEl!: HTMLGxgFormTextElement;\n private passwordEl!: HTMLGxgFormTextElement;\n private continueWithGeneXusAccountEl!: HTMLGxgFormCheckboxElement;\n\n // 3.STATE() VARIABLES //\n\n //\n @State() displayLoginControls: boolean = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Array of cataloged server URLs\n */\n @Prop() readonly serverUrls: string[];\n\n /**\n * 'true' if the user should be allowed to manually enter a server URL in serverUrls.\n */\n @Prop() readonly enableCustomServer: boolean = false;\n\n /**\n * Initial user values for the case in which the user returns to the login modal after a successful authentication.\n */\n @Prop() readonly defaultConnectionData?: GXServerConnectionDefault;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly enableUserLogged: boolean = false;\n\n /**\n * If 'true', shows the enabled and checked 'Continue with GX Account' checkbox. If 'false', shows the checkbox unchecked and disabled, and displays the options to enter username and password directly. Even if 'true', allow the user to deselect the checkbox and enter username and password.\n */\n @Prop() readonly connectCallback: (\n data: GXServerConnectionData\n ) => Promise<ConnectionResultData>;\n\n /**\n * Callback that allows canceling the server connection process.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateDisplayLoginControls();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private renderServerUrls = (): HTMLGxgComboBoxItemElement[] => {\n if (this.serverUrls?.length) {\n return this.serverUrls.map(serverUrl => {\n return <gxg-combo-box-item>{serverUrl}</gxg-combo-box-item>;\n });\n }\n return [];\n };\n\n private continueWithGxServerHandler = (\n event: CustomEvent<{ id: string; value: boolean; disabled?: boolean }>\n ) => {\n this.displayLoginControls = !event.detail.value;\n };\n\n private evaluateDisplayLoginControls = () => {\n if (this.enableUserLogged) {\n this.displayLoginControls = false;\n } else {\n this.displayLoginControls = true;\n }\n };\n\n private connectHandler = () => {\n if (this.connectCallback) {\n this.connectCallback({\n serverUrl: this.serverURLEl.value,\n continueWithGeneXusAccount: this.continueWithGeneXusAccountEl.checked,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n }).then((formSubmitResult: ConnectionResultData) => {\n console.log(formSubmitResult);\n formSubmitValidation(formSubmitResult, this);\n });\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"wrapper\">\n {/* server url */}\n <gxg-combo-box\n label={this._componentLocale.main.serverUrl}\n disableFilter={!this.enableCustomServer}\n value={this.defaultConnectionData?.serverUrl}\n ref={el => (this.serverURLEl = el as HTMLGxgComboBoxElement)}\n toolTip={config.tooltip}\n >\n {this.renderServerUrls()}\n </gxg-combo-box>\n\n {/* continue with GeneXus account */}\n <gxg-form-checkbox\n label={this._componentLocale.main.continueWithGxAccount}\n onChange={this.continueWithGxServerHandler}\n checked={this.enableUserLogged}\n disabled={!this.enableUserLogged}\n ref={el =>\n (this.continueWithGeneXusAccountEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n\n {this.displayLoginControls ? (\n <div class=\"user-details-container\">\n {/* username */}\n <gxg-form-text\n label={this._componentLocale.main.userName}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.user}\n ref={el => (this.userNameEl = el as HTMLGxgFormTextElement)}\n toolTip={config.tooltip}\n ></gxg-form-text>\n {/* password */}\n <gxg-form-text\n label={this._componentLocale.main.password}\n labelPosition=\"above\"\n disabled={!this.displayLoginControls}\n value={this.defaultConnectionData?.password}\n ref={el => (this.passwordEl = el as HTMLGxgFormTextElement)}\n password\n toolTip={config.tooltip}\n ></gxg-form-text>\n </div>\n ) : null}\n </div>\n\n {/* cancel and connect buttons */}\n <gxg-button slot=\"footer-end\" type=\"outlined\">\n {this._componentLocale.main.cancel}\n </gxg-button>\n <gxg-button slot=\"footer-end\" onClick={this.connectHandler}>\n {this._componentLocale.main.connect}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GXServerConnectionDefault = {\n serverUrl: string;\n user: string;\n password: string;\n};\n\nexport type GXServerConnectionData = GXServerConnectionDefault & {\n continueWithGeneXusAccount: boolean;\n};\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAqB;;MCwBdC,IAAoB;;;;IAOvBC,KAAAC,oBAAoB;;;;QAoFpBD,KAAAE,mBAAmB;;MACzB,KAAIC,IAAAH,KAAKI,gBAAU,QAAAD,WAAA,aAAAA,EAAEE,QAAQ;QAC3B,OAAOL,KAAKI,WAAWE,KAAIC,KAClBC,EAAA,4BAAqBD;;MAGhC,OAAO;AAAE;IAGHP,KAAAS,8BACNC;MAEAV,KAAKW,wBAAwBD,EAAME,OAAOC;AAAK;IAGzCb,KAAAc,+BAA+B;MACrC,IAAId,KAAKe,kBAAkB;QACzBf,KAAKW,uBAAuB;aACvB;QACLX,KAAKW,uBAAuB;;;IAIxBX,KAAAgB,iBAAiB;MACvB,IAAIhB,KAAKiB,iBAAiB;QACxBjB,KAAKiB,gBAAgB;UACnBV,WAAWP,KAAKkB,YAAYL;UAC5BM,4BAA4BnB,KAAKoB,6BAA6BC;UAC9DC,MAAMtB,KAAKuB,WAAWV;UACtBW,UAAUxB,KAAKyB,WAAWZ;WACzBa,MAAMC;UACPC,QAAQC,IAAIF;UACZG,EAAqBH,GAAkB3B;AAAK;;;gCAtGT;wBAOT;;8BAUe;;4BAUF;;;;;EAuB7C,uBAAM+B;IACJ/B,KAAKgC,yBAAyBC,EAAOC,oBAAoBlC,KAAKmC;IAC9DnC,KAAKc;;EAGP,kBAAAsB;IACE,KAAKpC,KAAKC,mBAAmB;MAC3BD,KAAKqC,4BAA4BC,KAC/BtC,KAAKgC,iBAAiBO;MAExBvC,KAAKC,oBAAoB;;;;EAiD7B,MAAAuC;;IACE,OACEhC,EAACiC,GAAI;MAACC,OAAM;OACVlC,EAAA;MAAKkC,OAAM;OACTlC,EAAA;MACEmC,gBACE3C,KAAK4C,eAAe5C,KAAKgC,iBAAiBO,gBAAgB;MAE5DM,eAAeC,EAAOC,eAAeF;OAErCrC,EAAA;MAAKkC,OAAM;OAETlC,EAAA;MACEwC,OAAOhD,KAAKgC,iBAAiBiB,KAAK1C;MAClC2C,gBAAgBlD,KAAKmD;MACrBtC,QAAOV,IAAAH,KAAKoD,2BAAqB,QAAAjD,WAAA,aAAAA,EAAEI;MACnC8C,KAAKlB,KAAOnC,KAAKkB,cAAciB;MAC/BmB,SAASR,EAAOS;OAEfvD,KAAKE,qBAIRM,EAAA;MACEwC,OAAOhD,KAAKgC,iBAAiBiB,KAAKO;MAClCC,UAAUzD,KAAKS;MACfY,SAASrB,KAAKe;MACd2C,WAAW1D,KAAKe;MAChBsC,KAAKlB,KACFnC,KAAKoB,+BACJe;QAILnC,KAAKW,uBACJH,EAAA;MAAKkC,OAAM;OAETlC,EAAA;MACEwC,OAAOhD,KAAKgC,iBAAiBiB,KAAKU;MAClCC,eAAc;MACdF,WAAW1D,KAAKW;MAChBE,QAAOgD,IAAA7D,KAAKoD,2BAAqB,QAAAS,WAAA,aAAAA,EAAEvC;MACnC+B,KAAKlB,KAAOnC,KAAKuB,aAAaY;MAC9BmB,SAASR,EAAOS;QAGlB/C,EAAA;MACEwC,OAAOhD,KAAKgC,iBAAiBiB,KAAKzB;MAClCoC,eAAc;MACdF,WAAW1D,KAAKW;MAChBE,QAAOiD,IAAA9D,KAAKoD,2BAAqB,QAAAU,WAAA,aAAAA,EAAEtC;MACnC6B,KAAKlB,KAAOnC,KAAKyB,aAAaU;MAC9BX,UAAQ;MACR8B,SAASR,EAAOS;UAGlB,OAIN/C,EAAA;MAAYuD,MAAK;MAAaC,MAAK;OAChChE,KAAKgC,iBAAiBiB,KAAKgB,SAE9BzD,EAAA;MAAYuD,MAAK;MAAaG,SAASlE,KAAKgB;OACzChB,KAAKgC,iBAAiBiB,KAAKkB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["dataSelectorCss","CSS_BUNDLES","GxIdeDataSelector","this","renderedFirstTime","shortcutsSrc","getAssetPath","loaderCancelCallbackHandler","async","cancelCallbackHandler","getObjects","filters","pattern","_a","filterPatternEl","value","object","_c","_b","filterObjectEl","id","loadItemsCallback","loader","loading","loaderEl","show","then","items","objects","selectedObjectsIds","deselectAll","editCallbackHandler","e","stopPropagation","editCallback","result","confirmCallbackHandler","confirmCallback","cancelCallback","chGridEl","selectAllRows","newVariableCallbackHandler","newVariableCallback","response","listenChanges","addEventListener","ev","detail","rowsId","chGridKeyDownHandler","key","hostKeyPressHandler","renderFilter","h","part","class","displayTitle","slot","labelPosition","noMargin","_componentLocale","filter","ref","el","debounce","selectEntityCallback","selectObjectCallback","renderObjects","rowSelectionMode","selectionType","onKeyDown","settingable","size","gridCommon","colSize","minContent","tableHead","name","auto","dataType","description","sort","a","b","nameA","toLowerCase","nameB","map","obj","rowid","onDblClick","src","type","chGridRowsetEmptyEl","evaluateLoading","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","container","focus","componentDidRender","componentDidRenderFirstTime","componentName","suspendShortcuts","gxgShortcutsEl","suspend","validate","isValid","render","Host","onKeyPress","model","containerTitle","noContentPadding","noAboveFooterPadding","noHeadingPadding","headingPaddingTop","noHeadingBorder","slimmerFooter","config","gxIdeContainer","onClick","footer","btnNew","disabled","length","btnEdit","btnCancel","btnConfirm","cancelLabel","loaderTitle","title"],"sources":["src/components/data-selector/data-selector.scss?tag=gx-ide-data-selector&encapsulation=shadow","src/components/data-selector/data-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--color-background);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--spacing-comp-03);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-areas:\n \"pattern-label pattern-input pattern-input pattern-input\"\n \"object-label object-input object-input object-input\";\n\n .pattern-label {\n grid-area: pattern-label;\n }\n .pattern-input {\n grid-area: pattern-input;\n }\n .object-label {\n grid-area: object-label;\n }\n .object-input {\n grid-area: object-input;\n }\n\n &--no-title {\n border-top: 0;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --spacing-comp-02: var(--spacing-comp-03);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--spacing-comp-01);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n\ngx-ide-container.loading::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n getAssetPath,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\n\nimport { EntityData } from \"../../common/types\";\nimport { gridCommon } from \"../../common/grid\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\n// Best performance bundle\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@Component({\n tag: \"gx-ide-data-selector\",\n styleUrl: \"data-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/data-selector\"]\n})\nexport class GxIdeDataSelector {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDataSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterObjectEl!: HTMLGxIdeEntitySelectorElement;\n private chGridEl!: HTMLChTabularGridElement;\n private chGridRowsetEmptyEl!: HTMLChTabularGridRowsetEmptyElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ItemData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * True if loadItemsCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = true;\n @Watch(\"loading\")\n evaluateLoading(loading: boolean) {\n this.loaderEl.show = loading;\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 * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Single if multiple object selection is not allowed. Default is multiple\n */\n @Prop() readonly selectionType: \"single\" | \"multiple\" = \"multiple\";\n\n /**\n * Callback invoked when the action is executed in the Object filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectObjectCallback: SelectObjectCallback;\n\n /**\n * Callback invoked when user press edit button. Receives the first selected element id as parameter\n */\n @Prop() readonly editCallback: EditCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadItemsCallback!: LoadItemsCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newVariableCallback!: NewVariableCallback;\n\n /**\n * Callback invoked when the user presses the 'OK' button\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\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 /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.focus();\n this.evaluateLoading(this.loading);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n this.loaderEl.container = this.chGridRowsetEmptyEl;\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n const filters: FiltersData = {\n pattern: this.filterPatternEl?.value,\n object: this.filterObjectEl?.value?.id\n };\n if (this.loadItemsCallback) {\n if (this.loader) {\n this.loading = true;\n this.loaderEl.show = true;\n }\n this.loadItemsCallback(filters).then((items: ItemData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loading = false;\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private editCallbackHandler = async (e: MouseEvent): Promise<void> => {\n e.stopPropagation();\n if (this.editCallback && this.selectedObjectsIds[0]) {\n const result = await this.editCallback(this.selectedObjectsIds[0]);\n if (result) {\n this.getObjects();\n }\n }\n };\n\n private confirmCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.confirmCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as HTMLChTabularGridElement).selectAllRows(false);\n };\n\n private newVariableCallbackHandler = async () => {\n if (this.newVariableCallback) {\n const response = await this.newVariableCallback();\n if (response) {\n this.getObjects();\n }\n }\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n\n /* object*/\n this.filterObjectEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.confirmCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-label labelPosition=\"start\" class=\"pattern-label\" noMargin>\n {this._componentLocale.filter.pattern}\n </gxg-label>\n <gxg-form-text\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n class=\"pattern-input\"\n part=\"filter-pattern\"\n debounce\n ></gxg-form-text>\n\n <gxg-label labelPosition=\"start\" class=\"object-label\" noMargin>\n {this._componentLocale.filter.object}\n </gxg-label>\n <gx-ide-entity-selector\n selectEntityCallback={this.selectObjectCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterObjectEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"object-input\"\n ></gx-ide-entity-selector>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n rowSelectionMode={this.selectionType}\n ref={(el: HTMLChTabularGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.minContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this._componentLocale.tableHead.dataType}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {!this.loading ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ItemData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n onDblClick={this.confirmCallbackHandler}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image\n src={\n obj.type === \"attribute\"\n ? \"objects/attribute\"\n : \"objects-parts/variables\"\n }\n class=\"icon-md\"\n ></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.dataType}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n ref={(el: HTMLChTabularGridRowsetEmptyElement) =>\n (this.chGridRowsetEmptyEl = el)\n }\n ></ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n class={{ loading: this.loading }}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n {/* footer */}\n {/* button new... */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.newVariableCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button edit */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.editCallbackHandler}\n part=\"gxg-button gxg-button--edit\"\n disabled={this.selectedObjectsIds.length === 0}\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnEdit}\n </gxg-button>\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.confirmCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type NewVariableCallback = () => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectObjectCallback = () => Promise<EntityData | undefined>;\n\nexport type EditCallback = (id: string) => Promise<boolean>;\n\nexport type ConfirmCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadItemsCallback = (filters: FiltersData) => Promise<ItemData[]>;\n\nexport type FiltersData = {\n pattern?: string;\n object?: string;\n};\n\nexport type ItemData = {\n type: ItemType;\n id: string;\n name: string;\n dataType: string;\n description: string;\n};\n\nexport type ItemType = \"variable\" | \"attribute\";\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAkB;;0BCwBxB;MAAMC,IAA8B,EAClC,qBACA,cACA,gBACA,oBACA,qBACA,uBACA,mBACA;;MAQWC,IAAiB;;;;;IAOpBC,KAAAC,oBAAoB;IACpBD,KAAAE,eAAeC,EACrB;;QAkJMH,KAAAI,8BAA8BC;MACpCL,KAAKM;AAAuB;IAGtBN,KAAAO,aAAa;;MACnB,MAAMC,IAAuB;QAC3BC,UAASC,IAAAV,KAAKW,qBAAe,QAAAD,WAAA,aAAAA,EAAEE;QAC/BC,SAAQC,KAAAC,IAAAf,KAAKgB,oBAAc,QAAAD,WAAA,aAAAA,EAAEH,WAAK,QAAAE,WAAA,aAAAA,EAAEG;;MAEtC,IAAIjB,KAAKkB,mBAAmB;QAC1B,IAAIlB,KAAKmB,QAAQ;UACfnB,KAAKoB,UAAU;UACfpB,KAAKqB,SAASC,OAAO;;QAEvBtB,KAAKkB,kBAAkBV,GAASe,MAAMC;UACpC,IAAIA,GAAO;YACTxB,KAAKyB,UAAUD;;UAEjBxB,KAAK0B,qBAAqB;UAC1B1B,KAAK2B;UACL,IAAI3B,KAAKmB,QAAQ;YACfnB,KAAKoB,UAAU;YACfpB,KAAKqB,SAASC,OAAO;;;;;IAMrBtB,KAAA4B,sBAAsBvB,MAAOwB;MACnCA,EAAEC;MACF,IAAI9B,KAAK+B,gBAAgB/B,KAAK0B,mBAAmB,IAAI;QACnD,MAAMM,UAAehC,KAAK+B,aAAa/B,KAAK0B,mBAAmB;QAC/D,IAAIM,GAAQ;UACVhC,KAAKO;;;;IAKHP,KAAAiC,yBAA0BJ;MAChCA,EAAEC;MACF9B,KAAKkC,gBAAgBlC,KAAK0B;AAAmB;IAGvC1B,KAAAM,wBAAwB;MAC9BN,KAAKmC;AAAgB;IAGfnC,KAAA2B,cAAc;MACnB3B,KAAKoC,SAAsCC,cAAc;AAAM;IAG1DrC,KAAAsC,6BAA6BjC;MACnC,IAAIL,KAAKuC,qBAAqB;QAC5B,MAAMC,UAAiBxC,KAAKuC;QAC5B,IAAIC,GAAU;UACZxC,KAAKO;;;;IAKHP,KAAAyC,gBAAgBpC;;MAEtBL,KAAKW,gBAAgB+B,iBAAiB,iBAAgB;QACpD1C,KAAKO;AAAY;uBAInBP,KAAKgB,eAAe0B,iBAAiB,iBAAgB;QACnD1C,KAAKO;AAAY;;YAGnBP,KAAKoC,SAASM,iBAAiB,qBAAqBC;QAClD3C,KAAK0B,qBAAqBiB,EAAGC,OAAOC;AAAM;AAC1C;IAGI7C,KAAA8C,uBAAwBjB;MAC9B,IAAIA,EAAEkB,QAAQ,SAAS;QACrB/C,KAAKiC,uBAAuBJ;;;IAIxB7B,KAAAgD,sBAAuBnB;;MAE7B,IAAIA,EAAEkB,QAAQ,SAAS;QACrBlB,EAAEC;;;;QAME9B,KAAAiD,eAAe,MAEnBC,EAAA;MACEC,MAAK;MACLC,OAAO;QACL,eAAe;QACf,0BAA0BpD,KAAKqD;;MAEjCC,MAAK;OAELJ,EAAA;MAAWK,eAAc;MAAQH,OAAM;MAAgBI,UAAQ;OAC5DxD,KAAKyD,iBAAiBC,OAAOjD,UAEhCyC,EAAA;MACES,KAAMC,KACH5D,KAAKW,kBAAkBiD;MAE1BR,OAAM;MACND,MAAK;MACLU,UAAQ;QAGVX,EAAA;MAAWK,eAAc;MAAQH,OAAM;MAAeI,UAAQ;OAC3DxD,KAAKyD,iBAAiBC,OAAO7C,SAEhCqC,EAAA;MACEY,sBAAsB9D,KAAK+D;MAC3BJ,KAAMC,KACH5D,KAAKgB,iBAAiB4C;MAEzBR,OAAM;;IAMNpD,KAAAgE,gBAAgB,MAEpBd,EAAA;MACEE,OAAM;MACNa,kBAAkBjE,KAAKkE;MACvBP,KAAMC,KAAkC5D,KAAKoC,WAAWwB;MACxDO,WAAWnE,KAAK8C;MAChBK,MAAK;OAELD,EAAA;MAA2BE,OAAM;OAC/BF,EAAA;MAAA,wBACuB;MACrBkB,aAAa;MACbC,MAAMC,EAAWC,QAAQC;MACzBpB,OAAM;QAERF,EAAA;MAAA,eACelD,KAAKyD,iBAAiBgB,UAAUC;MAAI,wBAC5B;MACrBN,aAAa;MACbC,MAAMC,EAAWC,QAAQI;MACzBvB,OAAM;QAERF,EAAA;MAAA,eACelD,KAAKyD,iBAAiBgB,UAAUG;MAAQ,wBAChC;MACrBR,aAAa;MACbC,MAAMC,EAAWC,QAAQI;MACzBvB,OAAM;QAERF,EAAA;MAAA,eACelD,KAAKyD,iBAAiBgB,UAAUI;MAAW,wBACnC;MACrBT,aAAa;MACbC,MAAMC,EAAWC,QAAQI;MACzBvB,OAAM;UAGRpD,KAAKoB,UACL8B,EAAA;MAAwBE,OAAM;OAC3BpD,KAAKyB,QACHqD,MAAK,CAACC,GAAGC;MACR,MAAMC,IAAQF,EAAEL,KAAKQ,eACnBC,IAAQH,EAAEN,KAAKQ;MACjB,IAAID,IAAQE,GAAO;QACjB,QAAQ;;MAEV,IAAIF,IAAQE,GAAO;QACjB,OAAO;;MAET,OAAO;AAAC,QAETC,KAAKC,KACJnC,EAAA;MACEoC,OAAOD,EAAIpE;MACXsE,YAAYvF,KAAKiC;MACjBmB,OAAM;OAENF,EAAA;MAAsBE,OAAM;OAC1BF,EAAA;MACEsC,KACEH,EAAII,SAAS,cACT,sBACA;MAENrC,OAAM;SAGVF,EAAA;MAAsBE,OAAM;OACzBiC,EAAIX,OAEPxB,EAAA;MAAsBE,OAAM;OACzBiC,EAAIT,WAEP1B,EAAA;MAAsBE,OAAM;OACzBiC,EAAIR,mBAMf3B,EAAA;MAAwBE,OAAM;OAC5BF,EAAA;MACES,KAAMC,KACH5D,KAAK0F,sBAAsB9B;;mBAjVX;8BAKS;mBAKZ;wBAWI;kBAKN;yBAK8B;;;;;;;;EAnBxD,eAAA+B,CAAgBvE;IACdpB,KAAKqB,SAASC,OAAOF;;;EAgEvB,uBAAMwE;IACJ5F,KAAKyD,yBAAyBoC,EAAOC,oBAAoB9F,KAAK4D;IAC9D5D,KAAK+F,sBAAsBC,KAAK;;EAGlC,gBAAAC;IACEjG,KAAKyC;IACLzC,KAAKqB,SAAS6E,YAAYlG,KAAKoC;IAC/BpC,KAAKO;IACLP,KAAKW,gBAAgBwF;IACrBnG,KAAK2F,gBAAgB3F,KAAKoB;;EAG5B,kBAAAgF;IACE,KAAKpG,KAAKC,mBAAmB;MAC3BD,KAAKqG,4BAA4BL,KAC/BhG,KAAKyD,iBAAiB6C;MAExBtG,KAAKC,oBAAoB;;IAE3BD,KAAKqB,SAAS6E,YAAYlG,KAAK0F;;;;;;;EAUjC,sBAAMa,CAAiBA;IACrB,IAAIA,GAAkB;MACpBvG,KAAKwG,eAAeC,UAAU;WACzB;MACLzG,KAAKwG,eAAeC,UAAU;;;;;SAQlC,cAAMC;IACJ,MAAMC,IAAU;IAChB,OAAOA;;;EAmOT,MAAAC;IACE,OACE1D,EAAC2D,GAAI;MAACzD,OAAM;MAAmB0D,YAAY9G,KAAKgD;OAC9CE,EAAA;MAAU6D,OAAOjH;QACjBoD,EAAA;MAAKE,OAAM;OACTF,EAAA;MACE8D,gBACEhH,KAAKqD,eAAerD,KAAKyD,iBAAiB6C,gBAAgB;MAE5DW,kBAAgB;MAChBC,sBAAoB;MACpBC,kBAAgB;MAChBC,mBAAiB;MACjBC,iBAAe;MACfC,eAAeC,EAAOC,eAAeF;MACrClE,OAAO;QAAEhC,SAASpB,KAAKoB;;OAEtBpB,KAAKiD,gBACLjD,KAAKgE,iBAINd,EAAA;MACEuC,MAAK;MACLgC,SAASzH,KAAKsC;MACda,MAAK;MACLG,MAAK;OAEJtD,KAAKyD,iBAAiBiE,OAAOC,SAGhCzE,EAAA;MACEuC,MAAK;MACLgC,SAASzH,KAAK4B;MACduB,MAAK;MACLyE,UAAU5H,KAAK0B,mBAAmBmG,WAAW;MAC7CvE,MAAK;OAEJtD,KAAKyD,iBAAiBiE,OAAOI,UAGhC5E,EAAA;MACEuC,MAAK;MACLgC,SAASzH,KAAKM;MACd6C,MAAK;MACLG,MAAK;OAEJtD,KAAKyD,iBAAiBiE,OAAOK,YAGhC7E,EAAA;MACEuC,MAAK;MACLgC,SAASzH,KAAKiC;MACdkB,MAAK;MACLG,MAAK;OAEJtD,KAAKyD,iBAAiBiE,OAAOM,eAIpC9E,EAAA;MACEsC,KAAKxF,KAAKE;MACVyD,KAAMC,KACH5D,KAAKwG,iBAAiB5C;QAI1B5D,KAAKmB,SACJ+B,EAAA;MACE+E,aAAajI,KAAKyD,iBAAiBtC,OAAO8G;MAC1CC,aAAalI,KAAKyD,iBAAiBtC,OAAOgH;MAC1CxE,KAAKC,KAAO5D,KAAKqB,WAAWuC;MAC5BzB,gBAAgBnC,KAAKI;SAErB"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["convertSuggestedApplicationsToSuggestItems","suggestedApplications","suggestData","suggestItems","suggestLists","length","suggestList","label","items","forEach","suggestedApplication","suggestItem","value","description","icon","push","bpmAppDeclarationCss","CSS_BUNDLES","GxIdeBpmAppDeclaration","this","renderedFirstTime","shortcutsSrc","getAssetPath","listenApplicationSelected","async","applicationSuggestEl","addEventListener","e","getDataMappingCallbackHandler","detail","applicationSuggestValueChangedHandler","suggestApplicationsCallback","then","result","catch","applicationName","application","getDataMappingCallback","selectApplicationCallbackHandler","callbackResult","selectApplicationCallback","confirmCallbackHandler","confirmCallback","cancelCallbackHandler","cancelCallback","selectMappingCallbackHandler","parameter","selectMappingCallback","newRelevantData","dataIndex","applicationState","mappings","findIndex","mapping","found","relevantDataOptions","find","option","relevantData","Object","assign","dataOptionsToComboItems","gxOptions","id","_componentLocale","dataMappings","emptyOption","relevantOption","gxOption","clearApplicationHandler","undefined","renderDataMappingsGrid","h","class","part","columnName","_a","typeIcon","firstColName","firstColNameParameter","settingable","size","gridCommon","colSize","common","secondColName","sortable","auto","map","obj","index","rowId","access","disableFilter","renderComboItems","type","onClick","watchApplicationHandler","newApplication","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","model","noContentPadding","noAboveFooterPadding","noHeadingBorder","slimmerFooter","config","gxIdeContainer","containerTitle","displayTitle","slot","name","onValueChanged","ref","renderSuggestLists","title","buttons","cancelButton","confirmButton","src"],"sources":["src/components/bpm/application-declaration/helpers.ts","src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: grid;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-application-declaration\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// temporary styles until que update controls with chameleon + mercury:\n\ngx-ide-container::part(content) {\n display: grid;\n}\n\ngxg-combo-box::part(input-input) {\n border: none;\n background-color: transparent;\n top: 2px;\n}\n\n// WA\n.tabular-grid-cell:nth-child(2) {\n padding: 0 !important;\n display: grid;\n align-items: stretch;\n justify-content: stretch;\n --ds-focus-border-width: none;\n}\n.tabular-grid-cell:nth-child(3) {\n padding: 0 !important;\n align-items: center !important;\n justify-content: center !important;\n}\n.tabular-grid {\n overflow: auto;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../../common/render-suggest\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { gridCommon } from \"../../../common/grid\";\nimport { GxOption } 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-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-application-declaration\"\n part=\"ch-grid-data-mappings\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowId={index + obj.parameter}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${obj.access}: ${obj.parameter}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ?? []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n {this.renderDataMappingsGrid()}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["manageModuleReferencesCss","CSS_BUNDLES","GxManageModuleReferences","this","renderedFirstTime","updateModulesSelectedVersion","modulesAll","selectedServerId","selectedServerIdOnModulesAllUpdate","modulesSelectedVersion","clear","forEach","module","set","id","versions","length","newModule","get","undefined","getActionFromCurrentModuleVersion","action","getModuleData","selectedModule","onProgress","message","progress","state","data","selectedModuleAction","Object","assign","progressValue","progressState","handleModuleChange","event","selectedModuleId","detail","rowsId","foundModule","find","item","serverSelectedCallbackHandler","async","reload","serverSelectedCallback","loadingServer","resolvedObjects","filterModulesByType","filteredModules","handleFilterChange","value","trim","toLowerCase","filter","selectedVersionName","includes","handleFilterChangeHandler","e","executeActionCallbackHandler","executeActionCallback","moduleSelectedVersionId","actionCompleted","type","currentVersion","version","showModuleMenu","serverContextMenuCallback","buttonBoundingClientRect","target","getBoundingClientRect","selection","clientX","x","clientY","y","dataType","selectedVersionId","selectedVersion","selectedVersionData","moduleActionHandler","closeProgressBar","renderModulesGrid","h","rowSelectionMode","part","class","onSelectionChanged","settingable","size","map","rowid","key","selected","moduleVersionIconColor","color","disabled","fit","onClick","renderEmptyStateModules","stateIcon","stateTitle","_componentLocale","modules","noModulesFilter","moduleAction","moduleCurrentVersion","renderVersionName","renderVersionWarningMessage","warningMessage","renderInstalledVersion","caption","cssClass","modulesInformation","moduleProperties","installed","notInstalled","moduleVersionsValueChangedHandler","versionId","updateSelectedModuleVersion","moduleVersionsItemChangedHandler","reRenderCounter","renderModuleVersions","label","availableVersions","labelPosition","centerLabel","onValueChanged","onItemSelected","selectedButtonChangedHandler","replace","serverItemSelectedHandler","serverId","serverValueChangedHandler","progressBarCloseHandler","setTimeout","reloadServer","Map","modulesAllWatcher","loadingServerHandler","loading","loaderEl","show","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","servers","onPropValueChange","newModulesData","validate","render","Host","model","noContentPadding","noAboveFooterPadding","noBorderAboveFooter","containerTitle","displayTitle","selectServer","disableFilter","name","showServerCommands","icon","searchModules","reduced","fullWidth","onSelectedButtonChanged","buttonsContainer","browse","updates","ref","serversDetail","renderModuleDataProperties","emptyState","title","stateDescription","description","slot","stateType","noBorder","progressBar","defaultCaption","active","closeType","closedCallback","loaderTitle","container","borderRadius"],"sources":["src/components/modules/manage-module-references/manage-module-references.scss?tag=gx-ide-manage-module-references&encapsulation=shadow","src/components/modules/manage-module-references/manage-module-references.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n/*--- General ---*/\np,\nul {\n font-size: var(--font-size-lg);\n margin: 0;\n}\np {\n line-height: 1.6em;\n}\n/*--- Header ---*/\n.header {\n align-items: center;\n grid-template-columns: 1fr auto;\n grid-template-rows: 1fr;\n}\n.main {\n display: grid;\n //grid-template-columns: 1fr 2fr 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n height: 100%;\n overflow: auto;\n}\nch-grid-columnset {\n display: none;\n}\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 }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n}\n\n/*--- Servers Container ---*/\n.grid-container {\n height: 100%;\n overflow: auto;\n gx-ide-empty-state {\n height: 100%;\n }\n}\n.servers-container {\n display: none;\n height: 100%;\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding)\n 0 var(--gxg-list-box-main__padding);\n\n gxg-button {\n width: 100%;\n }\n }\n}\n\n/*--- Modules (Header) ---*/\n.modules {\n &__header {\n padding: var(--gxg-list-box-main__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__combo-container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__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 Method,\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 } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModulePropertyData,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\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\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* selectedServerIdOnModulesAllUpdate is updated every time modulesAll is modified, in order to determine if the server is the same or not.*/\n private selectedServerIdOnModulesAllUpdate: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllWatcher(modulesAll: ModuleData[]) {\n this.updateModulesSelectedVersion(modulesAll);\n }\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersion: Map<string, string> = new Map();\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n @State() loadingServer = false;\n @State() reRenderCounter: number = 0;\n @Watch(\"loadingServer\")\n loadingServerHandler(loading: boolean) {\n if (loading) {\n this.loaderEl.show = true;\n } else {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\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 @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private updateModulesSelectedVersion = (modulesAll: ModuleData[]) => {\n if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {\n // the server has changed. clear the updateModulesSelectedVersion\n this.modulesSelectedVersion.clear();\n modulesAll.forEach(module => {\n // this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n this.modulesSelectedVersion.set(\n module.id,\n module.versions[module.versions.length - 1].id\n );\n });\n } else {\n // the server has't changed. only add the module to the map, if it is a new module.\n modulesAll.forEach(module => {\n const newModule =\n this.modulesSelectedVersion.get(module.id) === undefined;\n if (newModule) {\n this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n }\n });\n }\n this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;\n };\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.getModuleData(\n this.selectedModule,\n \"action\"\n ) as ModuleActionType;\n return action || \"install\";\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n const foundModule = this.modulesAll.find(\n item => item.id === selectedModuleId\n );\n if (foundModule) {\n this.selectedModule = foundModule;\n }\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any, reload: boolean) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id, reload);\n this.selectedServerId = id;\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n this.loadingServer = false;\n }\n };\n\n private handleFilterChange = (value: string) => {\n value = value.trim().toLowerCase();\n if (value) {\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(value);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n private handleFilterChangeHandler = (e: CustomEvent<string>) => {\n const value = e.detail;\n return this.handleFilterChange(value);\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 const moduleSelectedVersionId = this.modulesSelectedVersion.get(\n module.id\n );\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n this.actionCompleted = actionCompleted;\n }\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private getModuleData = (\n module: ModuleData,\n dataType: keyof ModuleVersionData\n ): string | ModulePropertyData[] | undefined => {\n const selectedVersionId = this.modulesSelectedVersion.get(module.id);\n let selectedVersion;\n let selectedVersionData;\n if (selectedVersionId) {\n selectedVersion = module.versions.find(\n version => version.id === selectedVersionId\n );\n }\n if (selectedVersion) {\n selectedVersionData = selectedVersion[dataType];\n }\n return selectedVersionData;\n };\n\n private moduleActionHandler = (module: ModuleData) => () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\n };\n\n private renderModulesGrid = (): Element => {\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 class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-icon\n type=\"objects/module\"\n data-action={this.moduleVersionIconColor(module)}\n color={this.moduleVersionIconColor(module)}\n size=\"small\"\n ></gxg-icon>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">\n {this.getModuleData(module, \"name\")}\n </span>\n <span class=\"grid-cell-module__description\">\n {this.getModuleData(module, \"description\")}\n </span>\n </ch-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 this.getModuleData(module, \"action\") === \"incompatible\" ||\n this.getModuleData(module, \"action\") === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler(module)}\n >\n {this.getActionFromCurrentModuleVersion()}\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 stateIcon=\"mercury/filters\"\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (module: ModuleData): Color => {\n const moduleAction = this.getModuleData(module, \"action\");\n const moduleCurrentVersion = module.currentVersion;\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\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 {/* <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule)}\n ></gxg-icon> */}\n {this.getModuleData(this.selectedModule, \"name\")}\n </div>\n </gxg-title>\n );\n };\n\n private renderVersionWarningMessage = () => {\n const warningMessage = this.getModuleData(\n this.selectedModule,\n \"warningMessage\"\n );\n if (warningMessage) {\n return <p class=\"module-info__alert-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 private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail;\n this.updateSelectedModuleVersion(versionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail.value;\n this.updateSelectedModuleVersion(versionId);\n };\n private updateSelectedModuleVersion = (versionId: string) => {\n if (versionId) {\n this.modulesSelectedVersion.set(this.selectedModule.id, versionId);\n this.reRenderCounter++;\n }\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.getModuleData(this.selectedModule, \"id\")}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n onValueChanged={this.moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.moduleVersionsItemChangedHandler}\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\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 private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\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 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.handleFilterChangeHandler}\n disabled={this.loadingServer}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={\n this.selectedButtonChangedHandler\n }\n >\n <gxg-button\n id=\"btn-browse\"\n selected\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"btn-installed\"\n disabled={this.loadingServer}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"btn-updates\"\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.updates}\n </gxg-button>\n </gxg-buttons-container>\n </div>\n {/* modules grid*/}\n <div\n class=\"grid-container\"\n ref={el => (this.serversDetail = el as HTMLDivElement)}\n >\n {this.filteredModules.length > 0\n ? this.renderModulesGrid()\n : this.renderEmptyStateModules()}\n </div>\n </div>\n </div>\n\n {/* Module version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderVersionName()}\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {/* {this.renderNotInstallable()} */}\n {this.renderVersionWarningMessage()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.getModuleData(\n this.selectedModule,\n \"properties\"\n ) as ModulePropertyData[]\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIcon=\"objects/module\"\n stateTitle={\n this._componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this._componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </main>\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n 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 ></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 AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["updateCss","CSS_BUNDLES","GxIdeTeamDevUpdate","this","loadDataCalledFirstTime","renderedFirstTime","onRowContextMenuHandler","grid","async","ev","objectsContextMenuCallback","preventDefault","stopPropagation","selection","chGridPendingForUpdateEl","getSelectedRows","chGridIgnoredObjectsEl","chGridResultsEl","clientX","detail","clientY","markAllPendingToUpdateRows","markAllRows","gridOnSelectionChangedCallbackHandler","selectCallback","rowsId","genexusServerUrlHandler","_a","updateFrom","serverUrl","window","open","renderOptions","h","class","part","containerTitle","_componentLocale","options","titleType","contentBorderEnd","noContentPadding","type","listName","readonly","noListBorder","icon","itemId","itemValue","undefined","onClick","knowledgeBase","kbName","version","versionName","lastFullUpdate","formatDate","scope","labelPosition","center","noMargin","objects","bold","objectScopeText","value","scopeData","toLocaleLowerCase","objectsScope","changeBtn","revision","revisionScopeText","latest","revisionScope","label","kbProperties","renderFilter","centerLabel","filter","pattern","ref","el","filterPatternEl","onInput","loadData","disabled","types","filterTypeEl","onValueChanged","id","renderComboItems","renderData","displayBorderTop","slot","displayBorder","tabs","pendingForUpdate","tab","key","isSelected","ignoredObjects","results","gxgTabButtonResultsEl","noPadding","renderPendingForUpdate","renderIgnoredObjects","renderResults","onRowContextMenu","onSelectionChanged","settingable","sortable","richRowSelector","richRowSelectorMode","size","gridCommon","colSize","maxContent","columnName","tableHead","name","description","commonDouble","modifiedOn","status","action","updateData","map","obj","rowid","src","typeIcon","renderIconState","state","notes","updateResultData","renderIconResult","result","messages","msg","msgType","text","color","filters","showFilter","isLoading","loadCallback","update","updateCallback","pendingForUpdateMarked","getMarkedRows","then","tabButtonClick","objectsScopeCallback","objectData","revisionScopeCallback","revisionData","pendingForUpdatesRowMarkingChangedHandler","e","removeEventListener","addedRowsIds","addedRowsId","removedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","revertPendingCommitsCheckboxes","togglePendingCommitsCheckboxes","addEventListener","itemsToToggle","itemsToCheck","itemsToUncheck","rowId","markRow","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","reload","render","Host","model","slimmerFooter","config","gxIdeContainer","displayTitle","footer","btnUpdate"],"sources":["src/components/team-dev/update/update.scss?tag=gx-ide-team-dev-update&encapsulation=shadow","src/components/team-dev/update/update.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: block;\n}\n\n/*--- Options Wrapper ---*/\n.options-wrapper {\n display: grid;\n grid-template-columns: 2fr 1fr;\n grid-column-gap: 0;\n grid-row-gap: 0;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n\n .genexus-server {\n cursor: pointer;\n &:hover {\n background-color: var(--ds-item-background-color--hover);\n }\n }\n .scope {\n font-family: inherit;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n .row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--mer-spacing--xs);\n .value {\n font-style: italic;\n }\n }\n }\n}\n\n/*--- Filter ---*/\n.filter-row {\n padding: 0 var(--gx-ide-container__padding) 0 var(--gx-ide-container__padding);\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-row-gap);\n .combo {\n flex: 1;\n }\n}\n\n/* Data Grid*/\n.data-grid {\n grid-template-columns: repeat(3, 1fr);\n // max-height: 300px;\n // overflow-y: auto;\n > :nth-child(1) {\n grid-area: 1 / 1 / 2 / 2;\n }\n > :nth-child(2) {\n grid-area: 1 / 2 / 2 / 4;\n }\n}\n.data-panel-grid {\n grid-template-columns: repeat(2, 1fr);\n}\n.data-preview {\n img {\n max-width: 100%;\n }\n}\n.data-max-height {\n max-height: 300px;\n overflow-y: auto;\n}\n\n/* Footer Actions */\n.actions {\n justify-content: flex-end;\n}\n\n.no-border {\n border: 0;\n}\n\n.bold {\n font-weight: bold;\n}\n\n/*--- Results ---*/\nch-grid-rowset-empty {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--xs);\n}\n\ngxg-tab::part(container) {\n line-height: unset;\n}\n.tabular-grid {\n block-size: 100%;\n}\n\ngx-ide-container::part(content) {\n overflow: hidden;\n}\n\n// apply ellipsis on description column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-pending-update\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 6\n )\n);\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-results\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 6\n )\n);\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color as GxgIconColor } from \"@genexus/gemini/dist/types/components/icon/icon\";\nimport {\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\n\nimport {\n ObjectState,\n ObjectType,\n ContextMenuInfo,\n ItemsCheckedState,\n ItemsCheckedResult,\n ResultState\n} from \"../../../common/types\";\nimport { gridCommon } from \"../../../common/grid\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { formatDate } from \"../../../common/helpers\";\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-team-dev-update\",\n styleUrl: \"update.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-update\"]\n})\nexport class GxIdeTeamDevUpdate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private loadDataCalledFirstTime = false; // pending for update grid checkboxes, should be checked, after loadData has loaded objects for the first time.\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevUpdateElement;\n\n /* References needed to collect data */\n // private optionKbPropertiesEl!: HTMLGxgFormCheckboxElement;\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private chGridPendingForUpdateEl!: HTMLChGridElement;\n private chGridIgnoredObjectsEl!: HTMLChGridElement;\n private chGridResultsEl!: HTMLChGridElement;\n private gxgTabButtonResultsEl!: HTMLGxgTabButtonElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * For show or hide advanced filters\n */\n @State() objectScopeText = \"all\";\n\n /**\n * The tab that is currently open\n */\n @State() openTab: \"pending\" | \"ignored\" | \"results\" = \"pending\";\n\n /**\n * For show or hide advanced filters\n */\n @State() revisionScopeText: string = undefined;\n\n /**\n * For show or hide advanced filters\n */\n @State() showFilter = false;\n\n /**\n * The data loaded for populate the grids\n */\n @State() updateData: UpdateData = {\n pendingForUpdate: [],\n ignoredObjects: []\n };\n\n /**\n * The data receive after user update\n */\n @State() updateResultData: UpdateResultData[] = [];\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly gridContextMenuCallback!: GridContextMenuCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer to call when the user makes a partial selection from button Change of Scope group.\n */\n @Prop() readonly objectsScopeCallback!: () => Promise<\"all\" | \"partial\">;\n\n /**\n * This is a function provided by the developer to call when the user clicked in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * This is a function provided by the developer to call when the user wants to select the revision to work on.\n */\n @Prop() readonly revisionScopeCallback!: () => Promise<string | undefined>;\n\n /**\n * Callback that should be invoked when the user activates the context menu on any of the grids. It receives the internal IDs of the selected elements and in which grid the event occurred. It should prevent the default browser context menu from appearing\n */\n @Prop() readonly objectsContextMenuCallback!: ObjectsContextMenuCallback;\n\n /**\n * Callback that should be invoked when the user selects rows from the grids\n */\n @Prop() readonly selectCallback: UpdateSelectCallback;\n\n /**\n * Possibly values for the filter type\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n @Prop() readonly updateCallback!: UpdateCallback;\n\n /**\n * Information to show in the container of group 'Update From'\n */\n @Prop() readonly updateFrom: UpdateFromData;\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() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n async componentDidLoad() {\n await this.loadData();\n this.filterPatternEl.focus();\n }\n\n async componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n\n if (this.loadDataCalledFirstTime) {\n // call this method only once\n await this.markAllPendingToUpdateRows();\n // attach \"rowMarkingChanged\" after rows have been checked for the first time.\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n this.loadDataCalledFirstTime = false;\n }\n }\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * The method used by the host to instruct the component to force a data reload in the grids.\n */\n @Method()\n async reload() {\n this.loadData();\n }\n\n // 9.LOCAL METHODS //\n\n private onRowContextMenuHandler =\n (grid: UpdateSourceType) =>\n async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n if (this.objectsContextMenuCallback) {\n ev.preventDefault();\n ev.stopPropagation();\n let selection: string[] = [];\n if (grid === \"pending\") {\n selection = await this.chGridPendingForUpdateEl.getSelectedRows();\n } else if (grid === \"ignored\") {\n selection = await this.chGridIgnoredObjectsEl.getSelectedRows();\n } else if (grid === \"results\") {\n selection = await this.chGridResultsEl.getSelectedRows();\n }\n await this.objectsContextMenuCallback(grid, {\n selection: selection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n };\n\n private markAllPendingToUpdateRows = () => {\n this.chGridPendingForUpdateEl.markAllRows();\n };\n\n private gridOnSelectionChangedCallbackHandler =\n (grid: UpdateSourceType) =>\n async (ev: CustomEvent<TabularGridSelectionChangedEvent>) => {\n if (this.selectCallback) {\n await this.selectCallback(grid, ev.detail.rowsId);\n }\n };\n\n private genexusServerUrlHandler = () => {\n if (this.updateFrom?.serverUrl) {\n window.open(this.updateFrom.serverUrl);\n }\n };\n\n private renderOptions = (): Element => {\n return (\n <div class=\"options-wrapper\">\n {/* genexus server*/}\n <gx-ide-container\n part=\"options-update-from\"\n containerTitle={this._componentLocale.options.updateFrom}\n titleType=\"secondary\"\n contentBorderEnd\n noContentPadding\n >\n <gx-ide-list-selector\n type=\"single-selection\"\n listName=\"commit-recent-messages\"\n readonly\n noListBorder\n >\n {/* genexus server*/}\n <gx-ide-list-selector-item\n icon=\"window-tools/genexus-cloud\"\n itemId=\"genexus-server\"\n itemValue={undefined}\n class=\"genexus-server\"\n onClick={this.genexusServerUrlHandler}\n >\n {`${this._componentLocale.options.updateFrom}:`}\n <gxg-text type=\"text-link\">\n {this.updateFrom ? this.updateFrom.serverUrl : \"\"}\n </gxg-text>\n </gx-ide-list-selector-item>\n\n {/* knowledge base*/}\n <gx-ide-list-selector-item\n icon=\"general/knowledge-base\"\n itemId=\"knowledge-base\"\n itemValue={`${this._componentLocale.options.knowledgeBase}: ${\n this.updateFrom ? this.updateFrom.kbName : \"\"\n }`}\n ></gx-ide-list-selector-item>\n\n {/* version */}\n <gx-ide-list-selector-item\n icon=\"general/version\"\n itemId=\"version\"\n itemValue={`${this._componentLocale.options.version}: ${\n this.updateFrom ? this.updateFrom.versionName : \"\"\n }`}\n ></gx-ide-list-selector-item>\n\n {/* last full update */}\n <gx-ide-list-selector-item\n icon=\"window-tools/last-changes-view\"\n itemId=\"last-full-update\"\n itemValue={`${\n this._componentLocale.options.lastFullUpdate\n }:${formatDate(this.updateFrom.lastFullUpdate)}`}\n ></gx-ide-list-selector-item>\n </gx-ide-list-selector>\n </gx-ide-container>\n\n {/* scope*/}\n <gx-ide-container\n part=\"options-scope\"\n containerTitle={this._componentLocale.options.scope}\n titleType=\"secondary\"\n >\n <div class=\"scope\">\n {/* Objects*/}\n <div class=\"row\">\n <gxg-label labelPosition=\"start\" center noMargin>\n {this._componentLocale.options.objects}:\n </gxg-label>\n <span\n class={{\n bold: this.objectScopeText === \"partial\",\n value: true\n }}\n >\n {\n this._componentLocale.options.scopeData.objects[\n this.objectScopeText.toLocaleLowerCase()\n ]\n }\n </span>\n <gxg-text\n type=\"text-link\"\n onClick={this.objectsScope}\n part=\"gxg-button gxg-button--scope-objects-change\"\n >\n {this._componentLocale.options.changeBtn}\n </gxg-text>\n </div>\n\n {/* Revision */}\n <div class=\"row\">\n <gxg-label labelPosition=\"start\" center noMargin>\n {this._componentLocale.options.revision}:\n </gxg-label>\n <span\n class={{\n bold: this.revisionScopeText !== undefined,\n value: true\n }}\n >\n {this.revisionScopeText === undefined\n ? this._componentLocale.options.scopeData.revision.latest\n : this.revisionScopeText}\n </span>\n <gxg-text\n type=\"text-link\"\n onClick={this.revisionScope}\n part=\"gxg-button gxg-button--scope-revision-change\"\n >\n {this._componentLocale.options.changeBtn}\n </gxg-text>\n </div>\n\n {/* Kb Properties */}\n <div class=\"row\">\n <gxg-form-checkbox\n label={this._componentLocale.options.kbProperties}\n class=\"align-center\"\n part=\"option-kb-properties\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </gx-ide-container>\n </div>\n );\n };\n\n private renderFilter = (): Element => {\n return (\n <div\n class={{\n \"filter-row\": true\n }}\n >\n {/* pattern*/}\n <gxg-form-text\n label-position=\"start\"\n centerLabel\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-pattern\"\n onInput={this.loadData}\n class=\"combo\"\n ></gxg-form-text>\n\n {/* type */}\n <gxg-combo-box\n label-position=\"start\"\n centerLabel\n disable-filter\n label={this._componentLocale.filter.type}\n disabled={!this.types}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n onValueChanged={this.loadData}\n part=\"filter-type\"\n value={this.types[0].id}\n class=\"combo\"\n >\n {renderComboItems(this.types)}\n </gxg-combo-box>\n\n {/* load data */}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--reload\"\n class=\"button\"\n ></gxg-button>\n </div>\n );\n };\n\n private renderData = (): Element => {\n return (\n <gx-ide-container\n part=\"data-container\"\n noContentPadding\n class=\"gxi-overflow-auto\"\n displayBorderTop\n >\n <gxg-tabs id=\"dataTabs\" part=\"data-tabs\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.pendingForUpdate}\n tab=\"pendingForUpdate\"\n key=\"pendingForUpdate\"\n isSelected={true}\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.ignoredObjects}\n tab=\"ignoredObjects\"\n key=\"ignoredObjects\"\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.results}\n tab=\"results\"\n key=\"results\"\n ref={(el: HTMLGxgTabButtonElement) =>\n (this.gxgTabButtonResultsEl = el)\n }\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab\n tab=\"pendingForUpdate\"\n key=\"pendingForUpdate\"\n noPadding\n isSelected={true}\n >\n {this.renderPendingForUpdate()}\n </gxg-tab>\n <gxg-tab tab=\"ignoredObjects\" key=\"ignoredObjects\" noPadding>\n {this.renderIgnoredObjects()}\n </gxg-tab>\n <gxg-tab tab=\"results\" key=\"results\" noPadding>\n {this.renderResults()}\n </gxg-tab>\n </gxg-tabs>\n </gx-ide-container>\n );\n };\n\n private renderPendingForUpdate = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-pending-update\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridPendingForUpdateEl = el)\n }\n part=\"ch-tabular-grid-pending-for-updates\"\n onRowContextMenu={this.onRowContextMenuHandler(\"pending\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"pending\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n column-type=\"rich\"\n richRowSelector\n richRowSelectorMode=\"mark\"\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\n settingable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.description}\n settingable={false}\n size={gridCommon.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.modifiedOn}\n settingable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.status}\n settingable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.action}\n settingable={false}\n size={gridCommon.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.updateData.pendingForUpdate.map((obj: ModifiedObject) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector\n class=\"tabular-grid-cell\"\n ></ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedOn)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.status}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.action}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderIgnoredObjects = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridIgnoredObjectsEl = el)\n }\n part=\"ch-grid-ignored-objects\"\n onRowContextMenu={this.onRowContextMenuHandler(\"ignored\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"ignored\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n size=\"min-content\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n size=\"1fr\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\n settingable={false}\n size=\"1fr\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.updateData.ignoredObjects.map((obj: ModifiedObject) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderResults = (): HTMLChTabularGridElement => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-results\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) => (this.chGridResultsEl = el)}\n part=\"ch-tabular-grid-results\"\n onRowContextMenu={this.onRowContextMenuHandler(\"results\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"results\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n column-type=\"tree\"\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n settingable={false}\n sortable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.name}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.type}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.description}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.notes}\n settingable={false}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.updateResultData.map((obj: UpdateResultData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconResult(obj.result)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.typeIcon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.notes}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-rowset>\n {obj.messages.map(msg => {\n let msgType;\n switch (msg.type) {\n case \"info\":\n msgType = \"text-alert-info\";\n break;\n case \"success\":\n msgType = \"text-alert-success\";\n break;\n case \"warning\":\n msgType = \"text-alert-warning\";\n break;\n case \"error\":\n msgType = \"text-alert-error\";\n break;\n }\n return (\n <ch-tabular-grid-rowset-empty>\n <gxg-text type={msgType as any}>{msg.text}</gxg-text>\n </ch-tabular-grid-rowset-empty>\n );\n })}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderIconState = (state: ObjectState): Element => {\n let type: string;\n\n switch (state) {\n case \"modified\":\n type = \"gx-server/changes-commit-pending\";\n break;\n case \"inserted\":\n type = \"gx-server/new\";\n break;\n case \"deleted\":\n type = \"gx-server/delete\";\n break;\n case \"conflicted\":\n type = \"gx-server/conflict\";\n break;\n }\n return <ch-image class=\"icon-md\" src={type}></ch-image>;\n };\n\n private renderIconResult = (result: ResultState): Element => {\n let type: string;\n let color: GxgIconColor;\n switch (result) {\n case \"info\":\n type = \"gemini-tools/notice\";\n color = \"primary-active\";\n break;\n case \"success\":\n type = \"gemini-tools/success\";\n color = \"success\";\n break;\n case \"warning\":\n type = \"gemini-tools/warning\";\n color = \"warning\";\n break;\n case \"error\":\n type = \"gemini-tools/error\";\n color = \"error\";\n break;\n }\n return <gxg-icon type={type} color={color}></gxg-icon>;\n };\n\n private loadData = async (): Promise<void> => {\n const filters: FiltersData = {\n pattern: this.showFilter ? this.filterPatternEl.value : null,\n type: this.showFilter ? this.filterTypeEl.value : null\n };\n // this.updateData = null;\n this.isLoading = true;\n this.updateData = await this.loadCallback(filters);\n this.isLoading = false;\n if (!this.loadDataCalledFirstTime) {\n /* this allows checking the pending commits checkboxes on first load*/\n this.loadDataCalledFirstTime = true;\n }\n };\n\n private update = async (): Promise<void> => {\n if (this.updateCallback) {\n const pendingForUpdateMarked =\n await this.chGridPendingForUpdateEl.getMarkedRows();\n this.updateCallback(pendingForUpdateMarked).then(\n (updateResultData: UpdateResultData[]) => {\n this.updateResultData = updateResultData;\n this.gxgTabButtonResultsEl.tabButtonClick();\n }\n );\n }\n };\n\n private objectsScope = (): void => {\n if (this.objectsScopeCallback) {\n this.objectsScopeCallback().then(objectData => {\n if (objectData) {\n this.objectScopeText = objectData;\n }\n });\n }\n };\n\n private revisionScope = (): void => {\n if (this.revisionScopeCallback) {\n this.revisionScopeCallback().then(revisionData => {\n this.revisionScopeText = revisionData;\n });\n }\n };\n\n private pendingForUpdatesRowMarkingChangedHandler = async (\n e: CustomEvent<TabularGridMarkingChangedEvent>\n ): Promise<void> => {\n // remove \"rowMarkingChanged\" until checkboxes have been added/removed on togglePendingCommitsCheckboxes, to prevent loops.\n this.chGridPendingForUpdateEl.removeEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n if (this.chGridPendingForUpdateEl) {\n const addedRowsIds = e.detail.addedRowsId;\n const removedRowsId = e.detail.removedRowsId;\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\n if (pendingItemCheckedResult === undefined) {\n // undo check/uncheck\n await this.revertPendingCommitsCheckboxes(addedRowsIds, removedRowsId);\n } else {\n await this.togglePendingCommitsCheckboxes(pendingItemCheckedResult);\n }\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n }\n this.chGridPendingForUpdateEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingForUpdatesRowMarkingChangedHandler\n );\n };\n\n private togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.chGridPendingForUpdateEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.chGridPendingForUpdateEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.chGridPendingForUpdateEl.markRow(rowId, false);\n }\n }\n };\n\n private revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.chGridPendingForUpdateEl) {\n for (const rowId of addedRowsIds) {\n await this.chGridPendingForUpdateEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.chGridPendingForUpdateEl.markRow(rowId, true);\n }\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderTop\n noContentPadding\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderFilter()}\n {this.renderData()}\n\n <gxg-button\n id=\"button-update\"\n type=\"primary-text-only\"\n onClick={this.update}\n part=\"gxg-button gxg-button--update\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnUpdate}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadCallback = (filters: FiltersData) => Promise<UpdateData>;\n\nexport type UpdateCallback = (\n selection: string[]\n) => Promise<UpdateResultData[]>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type UpdateSelectCallback = (\n grid: UpdateSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type UpdateSourceType = \"pending\" | \"ignored\" | \"results\";\n\nexport type GridContextMenuCallback = (\n selection: string[],\n grid: \"update\" | \"ignored\" | \"results\"\n) => Promise<void>;\n\nexport type ObjectsContextMenuCallback = (\n source: UpdateSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ConfirmCallback = (data: any) => Promise<boolean>;\n\nexport interface UpdateFromData {\n serverUrl: string;\n kbName: string;\n versionName: string;\n lastFullUpdate: Date;\n}\nexport interface FiltersData {\n pattern: string;\n type: string;\n}\nexport interface UpdateData {\n pendingForUpdate: ModifiedObject[];\n ignoredObjects: ModifiedObject[];\n}\nexport interface ModifiedObject {\n id: string;\n typeIcon: string;\n state?: ObjectState;\n name: string;\n type: string;\n description?: string;\n modifiedOn?: Date;\n status?: string;\n action?: string;\n}\nexport interface UpdateResultData {\n id: string;\n result: ResultState;\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: string;\n description: string;\n notes: string;\n messages: MessageData[];\n}\n\nexport interface MessageData {\n type: \"info\" | \"success\" | \"warning\" | \"error\";\n text: string;\n}\n"],"mappings":"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"}
@@ -1,146 +0,0 @@
1
- import { r as e, h as t, H as r, g as a } from "./p-c147291f.js";
2
-
3
- import { L as o } from "./p-74d59062.js";
4
-
5
- const i = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}:host{display:block;box-shadow:none;height:100%;overflow:hidden;padding-bottom:2px;box-sizing:border-box}.news-container{display:flex;flex-direction:column;gap:var(--gx-ide-articles-gap)}.news-container p:first-child{margin-top:0}.news-container p:last-child{margin-bottom:0}gxg-card.section{height:100% !important;overflow:auto;border-bottom:2px solid var(--gray-00)}gxg-ide-loader::part(loader-wrapper){border-radius:var(--gxg-card-section_border-radius);overflow:hidden}.gxg-card-container{height:100%;overflow:auto}.gx-ide-message{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm)}.gx-ide-message--hidden{display:none}gx-ide-title{max-width:250px}.news-article{transition:200ms opacity;opacity:0}.news-article.visible{opacity:1}";
6
-
7
- const s = class {
8
- constructor(r) {
9
- e(this, r);
10
- this.newsRendered = false;
11
- this.setTimeOutNewsDelay = 75;
12
- // 7.LISTENERS //
13
- // 8.PUBLIC METHODS API //
14
- // 9.LOCAL METHODS //
15
- this.evaluateNewsDisplay = () => {
16
- if (!this.newsRendered && this.news.length > 0 && this.newsContainerEl !== undefined) {
17
- this.displayNews();
18
- this.newsRendered = true;
19
- }
20
- };
21
- this.displayNews = () => {
22
- if (this.newsContainerEl !== undefined) {
23
- const e = Array.from(this.newsContainerEl.querySelectorAll("gxg-card"));
24
- e.forEach((e => {
25
- setTimeout((() => {
26
- e.classList.add("visible");
27
- }), this.setTimeOutNewsDelay);
28
- this.setTimeOutNewsDelay += 75;
29
- }));
30
- }
31
- };
32
- this.attachLoaderEvents = () => {
33
- this.loaderEl.addEventListener("loaderFinished", (() => {
34
- if (this.news.length === 0) {
35
- this.newsLoadFailed = true;
36
- } else {
37
- this.newsLoadFailed = false;
38
- }
39
- }));
40
- };
41
- this.getNews = async () => {
42
- this.loaderEl.show = true;
43
- if (this.getNewsCallback) {
44
- const e = await this.getNewsCallback();
45
- this.loaderEl.show = false;
46
- if (e && e.length > 0) {
47
- this.news = e;
48
- this.newsLoadFailed = false;
49
- } else {
50
- this.newsLoadFailed = true;
51
- }
52
- }
53
- };
54
- this.openNewsHandler = e => async () => {
55
- if (this.openNewsCallback) {
56
- await this.openNewsCallback(e);
57
- }
58
- }
59
- // 9.LOCAL METHODS -> RENDERS //
60
- ;
61
- this.renderNews = e => {
62
- if (e.id && e.title) {
63
- return t("gxg-card", {
64
- id: e.id,
65
- key: e.id,
66
- cardType: "article",
67
- cardTitle: e.title,
68
- icon: "gx-test/test-results",
69
- iconColor: "auto",
70
- actionable: true,
71
- onClick: this.openNewsHandler(e.id),
72
- titleSemibold: true,
73
- noHeaderBorder: true,
74
- class: "news-article"
75
- }, e.body ? t("p", null, e.body) : null);
76
- }
77
- return null;
78
- };
79
- this.news = [];
80
- this.newsLoadFailed = false;
81
- this.getNewsCallback = undefined;
82
- this.openNewsCallback = undefined;
83
- }
84
- watchNewsHandler() {
85
- this.displayNews();
86
- }
87
- // 5.EVENTS (EMIT) //
88
- // 6.COMPONENT LIFECYCLE METHODS //
89
- async componentWillLoad() {
90
- this._componentLocale = await o.getComponentStrings(this.el);
91
- }
92
- componentDidLoad() {
93
- this.getNews();
94
- this.attachLoaderEvents();
95
- }
96
- componentDidRender() {
97
- this.evaluateNewsDisplay();
98
- }
99
- // 10.RENDER() FUNCTION //
100
- render() {
101
- var e;
102
- return t(r, null, t("gxg-card", {
103
- class: "section",
104
- cardType: "section",
105
- cardTitle: this._componentLocale.recentNews.title
106
- }, this.news.length > 0 ? t("div", {
107
- class: "news-container",
108
- ref: e => this.newsContainerEl = e
109
- }, (e = this.news) === null || e === void 0 ? void 0 : e.map((e => this.renderNews(e)))) : t("div", {
110
- class: {
111
- "gx-ide-message": true,
112
- "gx-ide-message--hidden": !this.newsLoadFailed
113
- }
114
- }, t("gx-ide-title", {
115
- alignment: "center"
116
- }, this._componentLocale.recentNews.newsNotFetched), t("gxg-button", {
117
- onClick: this.getNews
118
- }, this._componentLocale.recentNews.tryAgainButtonLabel), t("gxg-text", {
119
- type: "text-link",
120
- href: "https://www.genexus.com/en/news",
121
- target: "_blank"
122
- }, this._componentLocale.recentNews.readThemOnline))), t("gxg-ide-loader", {
123
- abortTime: 8e3,
124
- container: this.el,
125
- loaderTitle: this._componentLocale.loader.title,
126
- description: "Hang on please",
127
- ref: e => this.loaderEl = e
128
- }));
129
- }
130
- static get assetsDirs() {
131
- return [ "gx-ide-assets/recent-news" ];
132
- }
133
- get el() {
134
- return a(this);
135
- }
136
- static get watchers() {
137
- return {
138
- news: [ "watchNewsHandler" ]
139
- };
140
- }
141
- };
142
-
143
- s.style = i;
144
-
145
- export { s as gx_ide_recent_news };
146
- //# sourceMappingURL=p-f66a086d.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["recentNewsCss","GxIdeRecentNews","this","newsRendered","setTimeOutNewsDelay","evaluateNewsDisplay","news","length","newsContainerEl","undefined","displayNews","Array","from","querySelectorAll","forEach","setTimeout","classList","add","attachLoaderEvents","loaderEl","addEventListener","newsLoadFailed","getNews","async","show","getNewsCallback","newsResult","openNewsHandler","newsId","openNewsCallback","renderNews","id","title","h","key","cardType","cardTitle","icon","iconColor","actionable","onClick","titleSemibold","noHeaderBorder","class","body","watchNewsHandler","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidLoad","componentDidRender","render","Host","recentNews","ref","_a","map","singleNews","alignment","newsNotFetched","tryAgainButtonLabel","type","href","target","readThemOnline","abortTime","container","loaderTitle","loader","description"],"sources":["src/components/start-page/recent-news.scss?tag=gx-ide-recent-news&encapsulation=shadow","src/components/start-page/recent-news.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n box-shadow: none;\n height: 100%;\n overflow: hidden;\n padding-bottom: 2px;\n box-sizing: border-box;\n}\n.news-container {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-articles-gap);\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n}\ngxg-card.section {\n height: 100% !important;\n overflow: auto;\n border-bottom: 2px solid var(--gray-00);\n}\ngxg-ide-loader::part(loader-wrapper) {\n border-radius: var(--gxg-card-section_border-radius);\n overflow: hidden;\n}\n.gxg-card-container {\n height: 100%;\n overflow: auto;\n}\n.gx-ide-message {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n\n &--hidden {\n display: none;\n }\n}\ngx-ide-title {\n max-width: 250px;\n}\n.news-article {\n transition: 200ms opacity;\n opacity: 0;\n\n &.visible {\n opacity: 1;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { NewsData, GetNewsCallback, OpenNewsCallback } from \"./start-page\";\n\n@Component({\n tag: \"gx-ide-recent-news\",\n styleUrl: \"recent-news.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/recent-news\"]\n})\nexport class GxIdeRecentNews {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeRecentNewsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private newsContainerEl: HTMLDivElement;\n private newsRendered = false;\n private setTimeOutNewsDelay = 75;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The list of news\n */\n @State() news: NewsData[] = [];\n @Watch(\"news\")\n watchNewsHandler() {\n this.displayNews();\n }\n\n /**\n * True if news couldn't be loaded\n */\n @State() newsLoadFailed = false;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback: GetNewsCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback: OpenNewsCallback;\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.getNews();\n this.attachLoaderEvents();\n }\n\n componentDidRender() {\n this.evaluateNewsDisplay();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateNewsDisplay = () => {\n if (\n !this.newsRendered &&\n this.news.length > 0 &&\n this.newsContainerEl !== undefined\n ) {\n this.displayNews();\n this.newsRendered = true;\n }\n };\n\n private displayNews = () => {\n if (this.newsContainerEl !== undefined) {\n const news = Array.from(\n this.newsContainerEl.querySelectorAll(\"gxg-card\")\n );\n news.forEach(news => {\n setTimeout(() => {\n news.classList.add(\"visible\");\n }, this.setTimeOutNewsDelay);\n this.setTimeOutNewsDelay += 75;\n });\n }\n };\n\n private attachLoaderEvents = () => {\n this.loaderEl.addEventListener(\"loaderFinished\", () => {\n if (this.news.length === 0) {\n this.newsLoadFailed = true;\n } else {\n this.newsLoadFailed = false;\n }\n });\n };\n\n private getNews = async () => {\n this.loaderEl.show = true;\n if (this.getNewsCallback) {\n const newsResult = await this.getNewsCallback();\n this.loaderEl.show = false;\n if (newsResult && newsResult.length > 0) {\n this.news = newsResult;\n this.newsLoadFailed = false;\n } else {\n this.newsLoadFailed = true;\n }\n }\n };\n\n private openNewsHandler = (newsId: string) => async () => {\n if (this.openNewsCallback) {\n await this.openNewsCallback(newsId);\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderNews = (news: NewsData): HTMLGxgCardElement | null => {\n if (news.id && news.title) {\n return (\n <gxg-card\n id={news.id}\n key={news.id}\n cardType=\"article\"\n cardTitle={news.title}\n icon=\"gx-test/test-results\"\n iconColor=\"auto\"\n actionable\n onClick={this.openNewsHandler(news.id)}\n titleSemibold\n noHeaderBorder\n class=\"news-article\"\n >\n {news.body ? <p>{news.body}</p> : null}\n </gxg-card>\n );\n }\n return null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <gxg-card\n class=\"section\"\n cardType=\"section\"\n cardTitle={this._componentLocale.recentNews.title}\n >\n {this.news.length > 0 ? (\n <div\n class=\"news-container\"\n ref={el => (this.newsContainerEl = el as HTMLDivElement)}\n >\n {this.news?.map(singleNews => {\n return this.renderNews(singleNews);\n })}\n </div>\n ) : (\n <div\n class={{\n \"gx-ide-message\": true,\n \"gx-ide-message--hidden\": !this.newsLoadFailed\n }}\n >\n <gx-ide-title alignment=\"center\">\n {this._componentLocale.recentNews.newsNotFetched}\n </gx-ide-title>\n <gxg-button onClick={this.getNews}>\n {this._componentLocale.recentNews.tryAgainButtonLabel}\n </gxg-button>\n <gxg-text\n type=\"text-link\"\n href=\"https://www.genexus.com/en/news\"\n target=\"_blank\"\n >\n {this._componentLocale.recentNews.readThemOnline}\n </gxg-text>\n </div>\n )}\n </gxg-card>\n <gxg-ide-loader\n abortTime={8000}\n container={this.el}\n loaderTitle={this._componentLocale.loader.title}\n description=\"Hang on please\"\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAgB;;MCaTC,IAAe;;;IA2BlBC,KAAAC,eAAe;IACfD,KAAAE,sBAAsB;;;;QAqDtBF,KAAAG,sBAAsB;MAC5B,KACGH,KAAKC,gBACND,KAAKI,KAAKC,SAAS,KACnBL,KAAKM,oBAAoBC,WACzB;QACAP,KAAKQ;QACLR,KAAKC,eAAe;;;IAIhBD,KAAAQ,cAAc;MACpB,IAAIR,KAAKM,oBAAoBC,WAAW;QACtC,MAAMH,IAAOK,MAAMC,KACjBV,KAAKM,gBAAgBK,iBAAiB;QAExCP,EAAKQ,SAAQR;UACXS,YAAW;YACTT,EAAKU,UAAUC,IAAI;AAAU,cAC5Bf,KAAKE;UACRF,KAAKE,uBAAuB;AAAE;;;IAK5BF,KAAAgB,qBAAqB;MAC3BhB,KAAKiB,SAASC,iBAAiB,mBAAkB;QAC/C,IAAIlB,KAAKI,KAAKC,WAAW,GAAG;UAC1BL,KAAKmB,iBAAiB;eACjB;UACLnB,KAAKmB,iBAAiB;;;AAExB;IAGInB,KAAAoB,UAAUC;MAChBrB,KAAKiB,SAASK,OAAO;MACrB,IAAItB,KAAKuB,iBAAiB;QACxB,MAAMC,UAAmBxB,KAAKuB;QAC9BvB,KAAKiB,SAASK,OAAO;QACrB,IAAIE,KAAcA,EAAWnB,SAAS,GAAG;UACvCL,KAAKI,OAAOoB;UACZxB,KAAKmB,iBAAiB;eACjB;UACLnB,KAAKmB,iBAAiB;;;;IAKpBnB,KAAAyB,kBAAmBC,KAAmBL;MAC5C,IAAIrB,KAAK2B,kBAAkB;cACnB3B,KAAK2B,iBAAiBD;;;;;IAMxB1B,KAAA4B,aAAcxB;MACpB,IAAIA,EAAKyB,MAAMzB,EAAK0B,OAAO;QACzB,OACEC,EAAA;UACEF,IAAIzB,EAAKyB;UACTG,KAAK5B,EAAKyB;UACVI,UAAS;UACTC,WAAW9B,EAAK0B;UAChBK,MAAK;UACLC,WAAU;UACVC,YAAU;UACVC,SAAStC,KAAKyB,gBAAgBrB,EAAKyB;UACnCU,eAAa;UACbC,gBAAc;UACdC,OAAM;WAELrC,EAAKsC,OAAOX,EAAA,WAAI3B,EAAKsC,QAAY;;MAIxC,OAAO;AAAI;gBA3He;0BASF;;;;EAP1B,gBAAAC;IACE3C,KAAKQ;;;;EAwBP,uBAAMoC;IACJ5C,KAAK6C,yBAAyBC,EAAOC,oBAAoB/C,KAAKgD;;EAGhE,gBAAAC;IACEjD,KAAKoB;IACLpB,KAAKgB;;EAGP,kBAAAkC;IACElD,KAAKG;;;EA2FP,MAAAgD;;IACE,OACEpB,EAACqB,GAAI,MACHrB,EAAA;MACEU,OAAM;MACNR,UAAS;MACTC,WAAWlC,KAAK6C,iBAAiBQ,WAAWvB;OAE3C9B,KAAKI,KAAKC,SAAS,IAClB0B,EAAA;MACEU,OAAM;MACNa,KAAKN,KAAOhD,KAAKM,kBAAkB0C;QAElCO,IAAAvD,KAAKI,UAAI,QAAAmD,WAAA,aAAAA,EAAEC,KAAIC,KACPzD,KAAK4B,WAAW6B,QAI3B1B,EAAA;MACEU,OAAO;QACL,kBAAkB;QAClB,2BAA2BzC,KAAKmB;;OAGlCY,EAAA;MAAc2B,WAAU;OACrB1D,KAAK6C,iBAAiBQ,WAAWM,iBAEpC5B,EAAA;MAAYO,SAAStC,KAAKoB;OACvBpB,KAAK6C,iBAAiBQ,WAAWO,sBAEpC7B,EAAA;MACE8B,MAAK;MACLC,MAAK;MACLC,QAAO;OAEN/D,KAAK6C,iBAAiBQ,WAAWW,mBAK1CjC,EAAA;MACEkC,WAAW;MACXC,WAAWlE,KAAKgD;MAChBmB,aAAanE,KAAK6C,iBAAiBuB,OAAOtC;MAC1CuC,aAAY;MACZf,KAAKN,KAAOhD,KAAKiB,WAAW+B"}