@genexus/genexus-ide-ui 1.0.1 → 1.0.3

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 (613) 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 +80 -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 +120 -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 +132 -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 +68 -0
  117. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +598 -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 +95 -128
  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 +68 -0
  129. package/dist/collection/components/_starting-template/template.css +68 -0
  130. package/dist/collection/components/ai-assistant/ai-assistant.css +68 -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 +68 -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 +68 -0
  136. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +68 -0
  137. package/dist/collection/components/bpm/import-files/bpm-import-files.css +68 -0
  138. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +68 -0
  139. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +68 -0
  140. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +68 -0
  141. package/dist/collection/components/connect-gx-server/connect-gx-server.css +68 -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 +68 -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 +68 -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 +68 -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 +68 -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 +68 -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 +68 -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 +77 -0
  161. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +68 -0
  162. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +68 -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 +68 -0
  168. package/dist/collection/components/new-environment/new-environment.css +68 -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 +68 -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 +68 -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 -2
  177. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +5 -2
  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 +119 -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 +68 -0
  185. package/dist/collection/components/share-kb/share-kb.css +68 -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 +96 -42
  193. package/dist/collection/components/start-page/recent-news.js +142 -73
  194. package/dist/collection/components/start-page/recent-news.js.map +1 -1
  195. package/dist/collection/components/start-page/start-page.css +146 -29
  196. package/dist/collection/components/start-page/start-page.js +185 -171
  197. package/dist/collection/components/start-page/start-page.js.map +1 -1
  198. package/dist/collection/components/team-dev/commit/commit.css +68 -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 +68 -0
  202. package/dist/collection/components/team-dev/update/update.css +68 -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 +68 -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 +68 -0
  209. package/dist/collection/components/wf-settings/wf-settings.css +68 -0
  210. package/dist/collection/components/ww-images/ww-images.css +70 -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 +82 -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 +150 -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 +133 -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 +80 -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 +120 -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 +132 -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 -2
  416. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +5 -2
  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-4f0b6507.entry.js → p-032bdefc.entry.js} +5 -5
  423. package/dist/genexus-ide-ui/p-032bdefc.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-853dacf5.entry.js → p-04421676.entry.js} +6 -6
  426. package/dist/genexus-ide-ui/p-04421676.entry.js.map +1 -0
  427. package/dist/genexus-ide-ui/{p-309544a8.js → p-07b9c2d4.js} +2 -2
  428. package/dist/genexus-ide-ui/{p-fc6040c7.entry.js → p-09cc20b1.entry.js} +2 -2
  429. package/dist/genexus-ide-ui/{p-df7151fa.entry.js → p-0ac125fc.entry.js} +24 -26
  430. package/dist/genexus-ide-ui/p-0ac125fc.entry.js.map +1 -0
  431. package/dist/genexus-ide-ui/{p-c585f865.entry.js → p-0bb18689.entry.js} +156 -158
  432. package/dist/genexus-ide-ui/p-0bb18689.entry.js.map +1 -0
  433. package/dist/genexus-ide-ui/{p-dc02927a.entry.js → p-0be068bf.entry.js} +14 -16
  434. package/dist/genexus-ide-ui/p-0be068bf.entry.js.map +1 -0
  435. package/dist/genexus-ide-ui/p-13feb5cf.js.map +1 -1
  436. package/dist/genexus-ide-ui/{p-9265eb8d.js → p-14e6ef41.js} +52 -24
  437. package/dist/genexus-ide-ui/p-14e6ef41.js.map +1 -0
  438. package/dist/genexus-ide-ui/{p-52037fb7.entry.js → p-19789aa2.entry.js} +6 -6
  439. package/dist/genexus-ide-ui/p-19789aa2.entry.js.map +1 -0
  440. package/dist/genexus-ide-ui/{p-cad2b413.entry.js → p-27fcaad7.entry.js} +35 -35
  441. package/dist/genexus-ide-ui/{p-8be06716.entry.js → p-2fd83e6c.entry.js} +27 -27
  442. package/dist/genexus-ide-ui/{p-6b1fe886.entry.js → p-33c1ddd9.entry.js} +18 -21
  443. package/dist/genexus-ide-ui/p-33c1ddd9.entry.js.map +1 -0
  444. package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js → p-38f61bea.entry.js} +7 -7
  445. package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js → p-3b5b6908.entry.js} +2 -2
  446. package/dist/genexus-ide-ui/{p-947149d1.entry.js → p-3e48e2f6.entry.js} +14 -14
  447. package/dist/genexus-ide-ui/{p-df2e4696.entry.js → p-54ee665f.entry.js} +112 -91
  448. package/dist/genexus-ide-ui/p-54ee665f.entry.js.map +1 -0
  449. package/dist/genexus-ide-ui/{p-caa3c8b1.entry.js → p-638befbe.entry.js} +20 -20
  450. package/dist/genexus-ide-ui/p-638befbe.entry.js.map +1 -0
  451. package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js → p-68810397.entry.js} +7 -7
  452. package/dist/genexus-ide-ui/{p-03c0d269.entry.js → p-69a83248.entry.js} +2 -2
  453. package/dist/genexus-ide-ui/{p-c6f0f199.entry.js → p-69edc29c.entry.js} +17 -19
  454. package/dist/genexus-ide-ui/p-69edc29c.entry.js.map +1 -0
  455. package/dist/genexus-ide-ui/{p-357b287c.entry.js → p-6da8bf60.entry.js} +14 -14
  456. package/dist/genexus-ide-ui/p-6df9fab1.js +14666 -0
  457. package/dist/genexus-ide-ui/p-6df9fab1.js.map +1 -0
  458. package/dist/genexus-ide-ui/{p-fc55b26e.entry.js → p-7ac25fc3.entry.js} +2 -2
  459. package/dist/genexus-ide-ui/{p-f744e80f.entry.js → p-7b8e41dd.entry.js} +20 -20
  460. package/dist/genexus-ide-ui/{p-9c1b4eb9.js → p-8cf892b5.js} +23 -3
  461. package/dist/genexus-ide-ui/p-8cf892b5.js.map +1 -0
  462. package/dist/genexus-ide-ui/{p-06cb63b5.entry.js → p-8da18e59.entry.js} +3 -3
  463. package/dist/genexus-ide-ui/{p-14d3afaf.entry.js → p-929dd336.entry.js} +39 -22
  464. package/dist/genexus-ide-ui/p-929dd336.entry.js.map +1 -0
  465. package/dist/genexus-ide-ui/{p-4dbaf435.entry.js → p-980f96c5.entry.js} +4 -4
  466. package/dist/genexus-ide-ui/{p-b01eccc2.entry.js → p-a04d556d.entry.js} +40 -40
  467. package/dist/genexus-ide-ui/{p-fa07dd86.entry.js → p-a3daa189.entry.js} +23 -23
  468. package/dist/genexus-ide-ui/p-a587e7ca.entry.js +155 -0
  469. package/dist/genexus-ide-ui/p-a587e7ca.entry.js.map +1 -0
  470. package/dist/genexus-ide-ui/{p-c147291f.js → p-aaed592c.js} +12 -5
  471. package/dist/genexus-ide-ui/p-aaed592c.js.map +1 -0
  472. package/dist/genexus-ide-ui/{p-a5c15051.entry.js → p-ad92d701.entry.js} +61 -61
  473. package/dist/genexus-ide-ui/{p-0b854804.js → p-af836892.js} +9 -9
  474. package/dist/genexus-ide-ui/{p-0c8c6cc3.entry.js → p-b3baa3d2.entry.js} +9 -9
  475. package/dist/genexus-ide-ui/p-b3baa3d2.entry.js.map +1 -0
  476. package/dist/genexus-ide-ui/p-b7384b06.entry.js +507 -0
  477. package/dist/genexus-ide-ui/p-b7384b06.entry.js.map +1 -0
  478. package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js → p-bb1d0ab8.entry.js} +6 -6
  479. package/dist/genexus-ide-ui/p-bbb30314.entry.js +228 -0
  480. package/dist/genexus-ide-ui/p-bbb30314.entry.js.map +1 -0
  481. package/dist/genexus-ide-ui/{p-ca73836a.entry.js → p-c64a4398.entry.js} +17 -17
  482. package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js → p-c79243c8.entry.js} +2 -2
  483. package/dist/genexus-ide-ui/p-cb0e11db.entry.js +73 -0
  484. package/dist/genexus-ide-ui/p-cb0e11db.entry.js.map +1 -0
  485. package/dist/genexus-ide-ui/{p-ff934271.entry.js → p-cd7100fa.entry.js} +24 -26
  486. package/dist/genexus-ide-ui/p-cd7100fa.entry.js.map +1 -0
  487. package/dist/genexus-ide-ui/{p-7e2ea144.entry.js → p-d178da38.entry.js} +18 -18
  488. package/dist/genexus-ide-ui/{p-97fba685.entry.js → p-d541640a.entry.js} +6 -6
  489. package/dist/genexus-ide-ui/{p-6b5adc13.entry.js → p-d9f7d2c3.entry.js} +44 -44
  490. package/dist/genexus-ide-ui/{p-9e5fa97a.entry.js → p-dbfddffd.entry.js} +2 -2
  491. package/dist/genexus-ide-ui/{p-ce59fefc.entry.js → p-e4db9c34.entry.js} +11 -13
  492. package/dist/genexus-ide-ui/p-e4db9c34.entry.js.map +1 -0
  493. package/dist/genexus-ide-ui/{p-5bf67436.js → p-e8bdf9dc.js} +2 -2
  494. package/dist/genexus-ide-ui/{p-3ce32466.entry.js → p-eb52d685.entry.js} +3 -3
  495. package/dist/genexus-ide-ui/{p-01885db6.entry.js → p-edc4f1dc.entry.js} +5 -5
  496. package/dist/genexus-ide-ui/p-f220c75a.entry.js +40 -0
  497. package/dist/genexus-ide-ui/p-f220c75a.entry.js.map +1 -0
  498. package/dist/genexus-ide-ui/{p-61e2d60e.entry.js → p-f5c02654.entry.js} +35 -35
  499. package/dist/genexus-ide-ui/{p-328fc42f.entry.js → p-f69df17d.entry.js} +108 -87
  500. package/dist/genexus-ide-ui/p-f69df17d.entry.js.map +1 -0
  501. package/dist/genexus-ide-ui/{p-13c68ced.js → p-f831f30b.js} +2 -2
  502. package/dist/genexus-ide-ui/p-f924f02a.entry.js +211 -0
  503. package/dist/genexus-ide-ui/p-f924f02a.entry.js.map +1 -0
  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 +15 -29
  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 +51 -154
  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-c147291f.js.map +0 -1
  568. package/dist/genexus-ide-ui/p-c585f865.entry.js.map +0 -1
  569. package/dist/genexus-ide-ui/p-c6f0f199.entry.js.map +0 -1
  570. package/dist/genexus-ide-ui/p-caa3c8b1.entry.js.map +0 -1
  571. package/dist/genexus-ide-ui/p-ce59fefc.entry.js.map +0 -1
  572. package/dist/genexus-ide-ui/p-dc02927a.entry.js.map +0 -1
  573. package/dist/genexus-ide-ui/p-df2e4696.entry.js.map +0 -1
  574. package/dist/genexus-ide-ui/p-df7151fa.entry.js.map +0 -1
  575. package/dist/genexus-ide-ui/p-f66a086d.entry.js +0 -146
  576. package/dist/genexus-ide-ui/p-f66a086d.entry.js.map +0 -1
  577. package/dist/genexus-ide-ui/p-f9cd47ba.entry.js +0 -121
  578. package/dist/genexus-ide-ui/p-f9cd47ba.entry.js.map +0 -1
  579. package/dist/genexus-ide-ui/p-ff934271.entry.js.map +0 -1
  580. package/dist/types/common/form-validation.d.ts +0 -2
  581. package/dist/types/common/grid.d.ts +0 -10
  582. /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
  583. /package/dist/genexus-ide-ui/{p-7fe1ceb9.entry.js.map → p-03a88768.entry.js.map} +0 -0
  584. /package/dist/genexus-ide-ui/{p-309544a8.js.map → p-07b9c2d4.js.map} +0 -0
  585. /package/dist/genexus-ide-ui/{p-fc6040c7.entry.js.map → p-09cc20b1.entry.js.map} +0 -0
  586. /package/dist/genexus-ide-ui/{p-cad2b413.entry.js.map → p-27fcaad7.entry.js.map} +0 -0
  587. /package/dist/genexus-ide-ui/{p-8be06716.entry.js.map → p-2fd83e6c.entry.js.map} +0 -0
  588. /package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js.map → p-38f61bea.entry.js.map} +0 -0
  589. /package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js.map → p-3b5b6908.entry.js.map} +0 -0
  590. /package/dist/genexus-ide-ui/{p-947149d1.entry.js.map → p-3e48e2f6.entry.js.map} +0 -0
  591. /package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js.map → p-68810397.entry.js.map} +0 -0
  592. /package/dist/genexus-ide-ui/{p-03c0d269.entry.js.map → p-69a83248.entry.js.map} +0 -0
  593. /package/dist/genexus-ide-ui/{p-357b287c.entry.js.map → p-6da8bf60.entry.js.map} +0 -0
  594. /package/dist/genexus-ide-ui/{p-fc55b26e.entry.js.map → p-7ac25fc3.entry.js.map} +0 -0
  595. /package/dist/genexus-ide-ui/{p-f744e80f.entry.js.map → p-7b8e41dd.entry.js.map} +0 -0
  596. /package/dist/genexus-ide-ui/{p-06cb63b5.entry.js.map → p-8da18e59.entry.js.map} +0 -0
  597. /package/dist/genexus-ide-ui/{p-4dbaf435.entry.js.map → p-980f96c5.entry.js.map} +0 -0
  598. /package/dist/genexus-ide-ui/{p-b01eccc2.entry.js.map → p-a04d556d.entry.js.map} +0 -0
  599. /package/dist/genexus-ide-ui/{p-fa07dd86.entry.js.map → p-a3daa189.entry.js.map} +0 -0
  600. /package/dist/genexus-ide-ui/{p-a5c15051.entry.js.map → p-ad92d701.entry.js.map} +0 -0
  601. /package/dist/genexus-ide-ui/{p-0b854804.js.map → p-af836892.js.map} +0 -0
  602. /package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js.map → p-bb1d0ab8.entry.js.map} +0 -0
  603. /package/dist/genexus-ide-ui/{p-ca73836a.entry.js.map → p-c64a4398.entry.js.map} +0 -0
  604. /package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js.map → p-c79243c8.entry.js.map} +0 -0
  605. /package/dist/genexus-ide-ui/{p-7e2ea144.entry.js.map → p-d178da38.entry.js.map} +0 -0
  606. /package/dist/genexus-ide-ui/{p-97fba685.entry.js.map → p-d541640a.entry.js.map} +0 -0
  607. /package/dist/genexus-ide-ui/{p-6b5adc13.entry.js.map → p-d9f7d2c3.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-3ce32466.entry.js.map → p-eb52d685.entry.js.map} +0 -0
  611. /package/dist/genexus-ide-ui/{p-01885db6.entry.js.map → p-edc4f1dc.entry.js.map} +0 -0
  612. /package/dist/genexus-ide-ui/{p-61e2d60e.entry.js.map → p-f5c02654.entry.js.map} +0 -0
  613. /package/dist/genexus-ide-ui/{p-13c68ced.js.map → p-f831f30b.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["commitCss","CSS_BUNDLES","GxIdeTeamDevCommit","this","loadDataCalledFirstTime","renderedFirstTime","conditionToCommit","async","commitComment","commitCommentEl","value","length","pendingChecked","chGridPendingCommitsEl","getMarkedRows","commitButtonEnabled","markAllPendingCommitsRows","markAllRows","togglePendingCommitsCheckboxes","itemsToToggle","itemsToCheck","itemsToUncheck","rowId","markRow","revertPendingCommitsCheckboxes","addedRowsIds","removedRowsId","renderIconState","state","icon","h","src","class","pendingCommitsRowMarkingChangedHandler","e","removeEventListener","detail","addedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","addEventListener","objectsOnContextMenuCallbackHandler","grid","ev","preventDefault","stopPropagation","selection","selectedRowsId","chGridIgnoredObjectsEl","getSelectedRows","objectsContextMenuCallback","clientX","clientY","gridOnSelectionChangedCallbackHandler","selectCallback","rowsId","renderPendingCommitsGrid","rowSelectionMode","ref","el","part","onRowContextMenu","onSelectionChanged","columnType","richRowSelector","richRowSelectorMode","settingable","sortable","size","gridCommon","colSize","maxContent","columnName","commonDouble","pendingCommits","map","obj","rowid","id","iconType","name","type","description","formatDate","modifiedOn","module","localState","lastSynchronized","user","renderIgnoredObjectsGrid","ignoredObjects","selected","getRecentCommentHandler","getRecentCommentCallback","response","comment","commitCallbackHandler","then","pendingCommitsCheckedIds","commitCallback","loadData","filtersData","pattern","patternEl","changeSet","changeSetEl","folder","foldersEl","category","categoriesEl","typesEl","evaluateFilterConditions","loadCallback","pending","ignored","toggleFiltersHandler","filtersHidden","filterHasConditions","componentWillLoad","_componentLocale","Locale","getComponentStrings","componentDidLoad","componentDidLoadEvent","emit","focus","componentDidRender","componentDidRenderFirstTime","componentName","reload","render","Host","model","noContentPadding","noHeadingPadding","headingPaddingTop","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","noHeadingBorder","slot","labelPosition","noMargin","header","commentLabel","onClick","recentCommentsButton","height","singleLine","onInput","placeholder","commentPlaceholder","filtersMenu","patternLabel","changesetLabel","onValueChanged","renderComboItems","typeLabel","types","folderLabel","folders","categoryLabel","categories","displayBorder","tabs","tab","flex","disabled","footer","commitButton"],"sources":["src/components/team-dev/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/commit/commit.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/*--- Header ---*/\n.header {\n border-top: 1px solid var(--gx-ide-container-border-color);\n display: flex;\n flex-direction: column;\n > * {\n padding: var(--gx-ide-container__padding);\n }\n &__first-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -3px;\n .commit-label {\n flex: none;\n }\n .commit-textarea {\n flex: none;\n }\n &__right-col {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n }\n }\n &__second-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n }\n .filters-outer-wrapper {\n display: grid;\n padding: 0;\n grid-template-rows: 1fr;\n transition: grid-template-rows 200ms;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n &--hidden {\n grid-template-rows: 0fr;\n }\n }\n .filters-inner-wrapper {\n overflow: hidden;\n }\n &__third-row {\n padding: 0 var(--gx-ide-container__padding) var(--gx-ide-container__padding)\n var(--gx-ide-container__padding);\n display: grid;\n column-gap: var(--gx-ide-grid-column-gap);\n row-gap: var(--gx-ide-grid-row-gap);\n grid-template-columns: auto 1fr auto 1fr;\n grid-template-areas:\n \"pattern-label pattern-form-text pattern-form-text pattern-form-text\"\n \"changeset-label changeset-combo type-label type-combo\"\n \"folder-label folder-combo category-label category-combo\";\n\n .pattern-label {\n grid-area: pattern-label;\n }\n .pattern-form-text {\n grid-area: pattern-form-text;\n }\n .changeset-label {\n grid-area: changeset-label;\n }\n .changeset-combo {\n grid-area: changeset-combo;\n }\n .type-label {\n grid-area: type-label;\n }\n .type-combo {\n grid-area: type-combo;\n }\n .folder-label {\n grid-area: folder-label;\n }\n .folder-combo {\n grid-area: folder-combo;\n }\n .category-label {\n grid-area: category-label;\n }\n .category-combo {\n grid-area: category-combo;\n }\n }\n}\n/*--- Main ---*/\n.main {\n height: 100%;\n}\n.grid-container {\n padding: 0;\n}\nch-grid {\n height: auto;\n}\n\ngxg-tab::part(container) {\n line-height: unset;\n}\n\n.tabular-grid {\n block-size: 100%;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-td-commit\",\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\n/*--- WA to be removed after gx-ide-container is removed ---*/\ngx-ide-container::part(content) {\n overflow: hidden;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Method,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\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\";\nimport {\n GxOption,\n ObjectState,\n ContextMenuInfo,\n ObjectType,\n ItemsCheckedState,\n ItemsCheckedResult\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@Component({\n tag: \"gx-ide-team-dev-commit\",\n styleUrl: \"commit.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-commit\"]\n})\nexport class GxIdeTeamDevCommit {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private loadDataCalledFirstTime = false; // pending commits grid checkboxes, should be checked, after loadData has loaded commits for the first time.\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n // filters\n private patternEl!: HTMLGxgFormTextElement;\n private changeSetEl!: HTMLGxgComboBoxElement;\n private typesEl!: HTMLGxgComboBoxElement;\n private foldersEl!: HTMLGxgComboBoxElement;\n private categoriesEl!: HTMLGxgComboBoxElement;\n // other\n private chGridPendingCommitsEl!: HTMLChGridElement;\n private chGridIgnoredObjectsEl!: HTMLChGridElement;\n private commitCommentEl!: HTMLGxgFormTextareaElement;\n\n // 3.STATE() VARIABLES //\n\n @State() filtersHidden = true;\n @State() comment = \"\";\n @State() pendingCommits: ModifiedObjectData[] = [];\n @State() ignoredObjects: ModifiedObjectData[] = [];\n @State() commitButtonEnabled = false;\n @State() filterHasConditions = 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 * Possible values for ChangeSet filter\n */\n @Prop() readonly changeSet: GxOption[];\n\n /**\n * Possible values for Type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Possible values for Folders filter\n */\n @Prop() readonly folders: GxOption[];\n\n /**\n * Possible values for Categories filter\n */\n @Prop() readonly categories: GxOption[];\n\n /**\n * Callback invoked when user press Recent Comments button.\n */\n @Prop() readonly getRecentCommentCallback: GetRecentComment;\n\n /**\n * Callback invoked when user wants to reload the grid\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Callback that should be invoked when the user selects rows from the grids\n */\n @Prop() readonly selectCallback: CommitSelectCallback;\n\n /**\n * Callback invoked when user check/uncheck any item from the 'Pending to Commit' grid\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Callback that must be invoked when user activate the context menu in any of the grids\n */\n @Prop() readonly objectsContextMenuCallback: ObjectsContextMenuCallback;\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 METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.loadData();\n this.loadDataCalledFirstTime = true;\n this.componentDidLoadEvent.emit(true);\n this.conditionToCommit();\n this.commitCommentEl.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.markAllPendingCommitsRows();\n // attach \"rowMarkingChanged\" after rows have been checked for the first time.\n this.chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n this.loadDataCalledFirstTime = false;\n }\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 refresh in the grids.\n */\n @Method()\n async reload(): Promise<void> {\n this.loadData();\n }\n\n // 9.LOCAL METHODS //\n\n private conditionToCommit = async () => {\n const commitComment = !!this.commitCommentEl.value.length;\n const pendingChecked = await this.chGridPendingCommitsEl.getMarkedRows();\n if (commitComment && pendingChecked.length > 0) {\n this.commitButtonEnabled = true;\n } else {\n this.commitButtonEnabled = false;\n }\n };\n\n private markAllPendingCommitsRows = () => {\n this.chGridPendingCommitsEl.markAllRows();\n };\n\n private togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.chGridPendingCommitsEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.chGridPendingCommitsEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.chGridPendingCommitsEl.markRow(rowId, false);\n }\n }\n };\n\n private revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.chGridPendingCommitsEl) {\n for (const rowId of addedRowsIds) {\n await this.chGridPendingCommitsEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.chGridPendingCommitsEl.markRow(rowId, true);\n }\n }\n };\n\n private renderIconState = (state: ObjectState): HTMLChImageElement => {\n let icon: string;\n switch (state) {\n case \"inserted\":\n icon = \"gx-server/new\";\n break;\n case \"modified\":\n icon = \"gx-server/changes-commit-pending\";\n break;\n case \"deleted\":\n icon = \"gx-server/delete\";\n break;\n case \"conflicted\":\n icon = \"gx-server/conflict\";\n break;\n }\n return <ch-image src={icon} class=\"icon-md\"></ch-image>;\n };\n\n private pendingCommitsRowMarkingChangedHandler = async (\n e: CustomEvent<TabularGridMarkingChangedEvent>\n ): Promise<void> => {\n // remove \"rowMarkingChanged\" until checkboxes have been added/removed on togglePendingCommitsCheckboxes, to prevent loops.\n this.chGridPendingCommitsEl.removeEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n if (this.chGridPendingCommitsEl) {\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.conditionToCommit();\n this.chGridPendingCommitsEl.addEventListener(\n \"rowMarkingChanged\",\n this.pendingCommitsRowMarkingChangedHandler\n );\n }\n };\n\n private objectsOnContextMenuCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n let selection: string[] = [];\n if (grid === \"commit\") {\n selection = ev.detail.selectedRowsId;\n } else if (grid === \"ignored\") {\n selection = await this.chGridIgnoredObjectsEl.getSelectedRows();\n }\n if (this.objectsContextMenuCallback) {\n await this.objectsContextMenuCallback(grid, {\n selection: selection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n };\n\n private gridOnSelectionChangedCallbackHandler =\n (grid: CommitSourceType) =>\n async (ev: CustomEvent<TabularGridSelectionChangedEvent>) => {\n if (this.selectCallback) {\n await this.selectCallback(grid, ev.detail.rowsId);\n }\n };\n\n /* pending commits grid render*/\n private renderPendingCommitsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-td-commit\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridPendingCommitsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"commit\")}\n onSelectionChanged={this.gridOnSelectionChangedCallbackHandler(\n \"commit\"\n )}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnType=\"rich\"\n richRowSelector\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"State\"\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.maxContent}\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.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Name\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Type\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={gridCommon.colSize.commonDouble}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"Modified On\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n sortable\n columnName=\"User\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.pendingCommits.map((obj: ModifiedObjectData) => (\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 {this.renderIconState(obj.state)}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.iconType} 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-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.module}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n /* ignored objects grid render*/\n private renderIgnoredObjectsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n rowSelectionMode=\"multiple\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.chGridIgnoredObjectsEl = el)\n }\n part=\"ch-grid-pending-commits\"\n onRowContextMenu={this.objectsOnContextMenuCallbackHandler(\"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 class=\"tabular-grid-column\"\n columnName=\"\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"TypeIcon\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Name\"\n settingable={false}\n sortable\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Type\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Description\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Modified On\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Module\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Local State\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"Last Synchronized\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName=\"User\"\n settingable={false}\n size={gridCommon.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.ignoredObjects.map((obj: ModifiedObjectData) => (\n <ch-tabular-grid-row rowid={obj.id} selected class=\"tabular-grid-row\">\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 <ch-image src={obj.iconType} 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-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.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.localState}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.lastSynchronized)}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private getRecentCommentHandler = async () => {\n if (this.getRecentCommentCallback) {\n const response = await this.getRecentCommentCallback();\n if (response) {\n this.comment = response;\n }\n }\n };\n\n private commitCallbackHandler = async () => {\n const commitCommentEl = this.commitCommentEl.value;\n this.chGridPendingCommitsEl\n .getMarkedRows()\n .then(async pendingCommitsCheckedIds => {\n await this.commitCallback(pendingCommitsCheckedIds, commitCommentEl);\n /* returns boolean*/\n });\n };\n\n private loadData = async (): Promise<void> => {\n const filtersData: FiltersData = {\n pattern: this.patternEl.value,\n changeSet: this.changeSetEl.value,\n folder: this.foldersEl.value,\n category: this.categoriesEl.value,\n type: this.typesEl.value\n };\n\n this.evaluateFilterConditions();\n\n // this.pendingCommits = null;\n // this.ignoredObjects = null;\n\n return await this.loadCallback(filtersData).then(\n async ({ pending, ignored }) => {\n this.pendingCommits = pending;\n this.ignoredObjects = ignored;\n }\n );\n };\n\n private toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n private evaluateFilterConditions = () => {\n if (\n this.patternEl.value ||\n this.changeSetEl.value ||\n this.typesEl.value ||\n this.foldersEl.value ||\n this.categoriesEl.value\n ) {\n this.filterHasConditions = true;\n } else {\n this.filterHasConditions = false;\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 noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n noHeadingBorder\n >\n <div class=\"header\" slot=\"header\">\n <div class=\"header__first-row\">\n <div class=\"header__first-row__left-col\">\n <gxg-label\n part=\"commit-label\"\n labelPosition=\"start\"\n class=\"commit-label\"\n noMargin\n >\n {this._componentLocale.header.commentLabel}\n </gxg-label>\n </div>\n <div class=\"header__first-row__right-col\">\n {/* filter button*/}\n <gxg-button\n onClick={this.toggleFiltersHandler}\n type=\"secondary-icon-only\"\n icon={\n this.filterHasConditions\n ? \"window-tools/filter-conditions\"\n : \"window-tools/filter\"\n }\n part=\"gxg-button gxg-button--show-filter\"\n class=\"filter-btn\"\n ></gxg-button>\n\n {/* reset button*/}\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=\"reset-btn\"\n ></gxg-button>\n\n {/* recen comments button*/}\n <gxg-button\n class=\"header-button\"\n type=\"outlined\"\n part=\"location\"\n onClick={this.getRecentCommentHandler}\n >\n {this._componentLocale.header.recentCommentsButton}\n </gxg-button>\n </div>\n </div>\n <div class=\"header__second-row\">\n {/* commit comment textarea*/}\n <gxg-form-textarea\n height=\"90px\"\n value={this.comment}\n ref={(el: HTMLGxgFormTextareaElement) =>\n (this.commitCommentEl = el)\n }\n singleLine\n onInput={this.conditionToCommit}\n placeholder={this._componentLocale.header.commentPlaceholder}\n part=\"comment\"\n class=\"commit-textarea\"\n ></gxg-form-textarea>\n </div>\n <div\n class={{\n \"filters-outer-wrapper\": true,\n \"filters-outer-wrapper--hidden\": this.filtersHidden\n }}\n >\n <div\n class={{\n \"filters-inner-wrapper\": true\n }}\n >\n <div\n class={{\n \"header__third-row\": true\n }}\n >\n {/* pattern*/}\n <gxg-label\n part=\"pattern-label\"\n labelPosition=\"start\"\n class=\"pattern-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.patternLabel}\n </gxg-label>\n <gxg-form-text\n disable-filter\n value=\"\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.patternEl = el as HTMLGxgFormTextElement)\n }\n display-validation-styles\n display-validation-message\n part=\"pattern-form-text\"\n class=\"pattern-form-text\"\n onInput={this.loadData}\n ></gxg-form-text>\n\n {/* changeset */}\n <gxg-label\n part=\"changeset-label\"\n labelPosition=\"start\"\n class=\"changeset-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.changesetLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.changeSet[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.changeSetEl = el as HTMLGxgComboBoxElement)\n }\n part=\"changeset-combo\"\n class=\"changeset-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.changeSet)}\n </gxg-combo-box>\n\n {/* type */}\n <gxg-label\n part=\"type-label\"\n labelPosition=\"start\"\n class=\"type-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.typeLabel}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n value={this.types[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.typesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"type-combo\"\n class=\"type-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.types)}\n </gxg-combo-box>\n\n {/* folder */}\n <gxg-label\n part=\"folder-label\"\n labelPosition=\"start\"\n class=\"folder-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.folderLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.folders[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.foldersEl = el as HTMLGxgComboBoxElement)\n }\n part=\"folder-combo\"\n display-validation-styles\n display-validation-message\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.folders)}\n </gxg-combo-box>\n\n {/* category */}\n <gxg-label\n part=\"category-label\"\n labelPosition=\"start\"\n class=\"category-label\"\n noMargin\n >\n {this._componentLocale.filtersMenu.categoryLabel}\n </gxg-label>\n <gxg-combo-box\n value={this.categories[0][\"id\"]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.categoriesEl = el as HTMLGxgComboBoxElement)\n }\n part=\"category-combo\"\n class=\"category-combo\"\n onValueChanged={this.loadData}\n >\n {renderComboItems(this.categories)}\n </gxg-combo-box>\n </div>\n </div>\n </div>\n </div>\n <main class=\"main\">\n <gx-ide-container noContentPadding class=\"grid-container\">\n <div class=\"tabs-container gxi-full-height\">\n <gxg-tabs class=\"gxg-tabs\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`}\n tab=\"pending-commits\"\n is-selected\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={`${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`}\n tab=\"ignored-objects\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab tab=\"pending-commits\" no-padding flex>\n {this.renderPendingCommitsGrid()}\n </gxg-tab>\n <gxg-tab tab=\"ignored-objects\" no-padding flex>\n {this.renderIgnoredObjectsGrid()}\n </gxg-tab>\n </gxg-tabs>\n </div>\n </gx-ide-container>\n </main>\n\n {/* footer */}\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.commitCallbackHandler}\n part=\"commit-button\"\n disabled={!this.commitButtonEnabled}\n >\n {this._componentLocale.footer.commitButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type GetRecentComment = () => Promise<string | undefined>;\n\nexport type LoadCallback = (filters: FiltersData) => Promise<CommitData>;\n\nexport type CommitCallback = (\n selection: string[],\n commitCommentEl: string\n) => Promise<boolean>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type CommitSelectCallback = (\n grid: CommitSourceType,\n selectionIds: string[]\n) => Promise<void>;\n\nexport type ItemCheckedCallback = (\n checkedItemIds: string[]\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type ObjectsContextMenuCallback = (\n grid: CommitSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type CommitSourceType = \"commit\" | \"ignored\";\n\nexport type CommitData = {\n pending: ModifiedObjectData[];\n ignored: ModifiedObjectData[];\n};\n\nexport type ModifiedObjectData = {\n id: string;\n name: string;\n iconType: string;\n state: ObjectState;\n type: string;\n description: string;\n modifiedOn: Date;\n module: string;\n localState: ObjectState;\n lastSynchronized: Date;\n user: string;\n};\n\nexport type FiltersData = {\n pattern: string;\n changeSet: string;\n type: string;\n folder: string;\n category: string;\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["updatePartialSelectionCss","CSS_BUNDLES","GxIdeTeamDevUpdatePartialSelection","this","renderedFirstTime","shortcutsSrc","getAssetPath","renderObjects","h","class","ref","el","chGridEl","part","columnName","settingable","sortable","size","gridCommon","colSize","minContent","_componentLocale","tableHead","name","auto","type","description","modifiedOn","selection","map","obj","rowid","id","key","src","typeIcon","toISOString","slice","getObjectsHandler","addCallback","then","items","length","selectedObjectsIds","removeSelectedObjectsHandler","filter","item","includes","confirmHandler","confirmCallback","allRowsIds","forEach","row","push","cancelHandler","cancelCallback","removeAllHandler","listenChanges","addEventListener","ev","detail","rowsId","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","componentDidRender","componentDidRenderFirstTime","componentName","validate","isValid","render","Host","model","noContentPadding","noContentGap","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","icon","onClick","btnAddObject","disabled","btnRemoveSelectedObjects","slot","footer","btnRemoveAll","btnCancel","btnConfirm"],"sources":["src/components/team-dev/update-partial-selection/update-partial-selection.scss?tag=gx-ide-team-dev-update-partial-selection&encapsulation=shadow","src/components/team-dev/update-partial-selection/update-partial-selection.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n.top-actions {\n display: flex;\n gap: var(--gx-ide-grid-column-gap);\n padding: var(--mer-spacing--xs) var(--gx-ide-container__padding);\n flex-direction: row-reverse;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n}\n\n.tabular-grid {\n block-size: 100%;\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} 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 { gridCommon } from \"../../../common/grid\";\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@Component({\n tag: \"gx-ide-team-dev-update-partial-selection\",\n styleUrl: \"update-partial-selection.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-update-partial-selection\"]\n})\nexport class GxIdeTeamDevUpdatePartialSelection {\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/team-dev-update-partial-selection/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeTeamDevUpdatePartialSelectionElement;\n\n /* References needed to collect data */\n private chGridEl!: HTMLElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\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 return a list of new objects to populate the table of objects.\n */\n @Prop() readonly addCallback!: AddCallback;\n\n /**\n * This is a function provided by the developer for execute when cancel button is pressed.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer and is invoked when the action confirm is executed passing the selected objects of the grid\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop({ mutable: true }) selection: ObjectData[] = [];\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 * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\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 }\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 /**\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 renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid\"\n row-selection-mode=\"multiple\"\n ref={(el: HTMLElement) => (this.chGridEl = el)}\n part=\"ch-grid-objects\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.minContent}\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.auto}\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.auto}\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.auto}\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.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.selection.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\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-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${obj.modifiedOn.toISOString().slice(0, 10)}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private getObjectsHandler = (): void => {\n this.addCallback().then((items: ObjectData[]) => {\n if (items?.length > 0) {\n this.selection = [...this.selection, ...items];\n this.selectedObjectsIds = [];\n }\n });\n };\n\n private removeSelectedObjectsHandler = (): void => {\n this.selection = this.selection.filter(\n item => !this.selectedObjectsIds.includes(item.id)\n );\n this.selectedObjectsIds = [];\n };\n\n private confirmHandler = (): void => {\n if (this.confirmCallback) {\n const allRowsIds: string[] = [];\n this.selection.forEach(row => {\n allRowsIds.push(row.id);\n });\n this.confirmCallback(allRowsIds);\n }\n };\n\n private cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n private removeAllHandler = (): void => {\n this.selection = [];\n };\n\n private listenChanges = (): void => {\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\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 noContentPadding\n noContentGap\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"top-actions\">\n {/* add button*/}\n <gxg-button\n id=\"button-add\"\n type=\"outlined\"\n icon=\"gemini-tools/add\"\n onClick={this.getObjectsHandler}\n part=\"add\"\n >\n {this._componentLocale.btnAddObject}\n </gxg-button>\n\n {/* remove button*/}\n <gxg-button\n id=\"button-remove\"\n type=\"secondary-text-only\"\n onClick={this.removeSelectedObjectsHandler}\n part=\"remove\"\n disabled={!(this.selectedObjectsIds.length > 0)}\n >\n {this._componentLocale.btnRemoveSelectedObjects}\n </gxg-button>\n </div>\n\n {this.renderObjects()}\n\n {/* remove all button*/}\n <gxg-button\n id=\"button-clear\"\n onClick={this.removeAllHandler}\n disabled={!(this.selection.length > 0)}\n part=\"clear\"\n slot=\"footer-start\"\n type=\"secondary-text-only\"\n >\n {this._componentLocale.footer.btnRemoveAll}\n </gxg-button>\n\n {/* cancel button*/}\n <gxg-button\n id=\"button-cancel\"\n type=\"outlined\"\n onClick={this.cancelHandler}\n part=\"cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n\n {/* confirm button*/}\n <gxg-button\n id=\"button-ok\"\n type=\"primary-text-only\"\n onClick={this.confirmHandler}\n part=\"confirm\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\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 AddCallback = () => Promise<ObjectData[]>;\nexport type CancelCallback = () => Promise<void>;\nexport type ConfirmCallback = (ids: string[]) => Promise<void>;\n\nexport interface ObjectData {\n id: string;\n typeIcon: string;\n name: string;\n type: string;\n description: string;\n modifiedOn: Date;\n}\n"],"mappings":"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"}
@@ -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":"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"}
@@ -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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"}