@genexus/genexus-ide-ui 1.1.34 → 1.1.36

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 (334) hide show
  1. package/dist/cjs/{config-140f58fe.js → config-df6ba4e9.js} +2 -2
  2. package/dist/cjs/config-df6ba4e9.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +2 -2
  12. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +5 -3
  25. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +19 -30
  28. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +641 -301
  30. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +2 -2
  32. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  34. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +92 -53
  35. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +111 -36
  37. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +501 -233
  39. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
  42. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +5 -26
  43. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  45. package/dist/cjs/helpers-8fb178a2.js +30 -0
  46. package/dist/cjs/helpers-8fb178a2.js.map +1 -0
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/cjs/{utilities-11683cc0.js → utilities-0e316b39.js} +6 -6
  49. package/dist/cjs/utilities-0e316b39.js.map +1 -0
  50. package/dist/collection/collection-manifest.json +1 -1
  51. package/dist/collection/common/config.js +1 -1
  52. package/dist/collection/common/config.js.map +1 -1
  53. package/dist/collection/components/data-type-selector/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
  54. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +1 -1
  55. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +1 -1
  56. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +1 -1
  57. package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +1 -1
  58. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +3 -3
  59. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +44 -50
  60. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  61. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +1 -1
  62. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +1 -1
  63. package/dist/collection/components/team-dev/common/utilities.js +5 -5
  64. package/dist/collection/components/team-dev/common/utilities.js.map +1 -1
  65. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +1 -1
  66. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
  67. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.en.json +1 -1
  68. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +1 -1
  69. package/dist/collection/components/team-dev/connect-gx-server/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.zh.json +1 -1
  70. package/dist/collection/components/team-dev/history/history.js.map +1 -1
  71. package/dist/collection/components/team-dev/server-selector/server-selector.js +4 -2
  72. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  73. package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +49 -28
  74. package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +58 -37
  75. package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +49 -28
  76. package/dist/collection/components/team-dev/update/types.js.map +1 -0
  77. package/dist/collection/components/team-dev/update/update.css +268 -606
  78. package/dist/collection/components/team-dev/update/update.js +566 -411
  79. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  80. package/dist/collection/components/team-dev/update/utilities/actions-combo-box-model.js +2 -0
  81. package/dist/collection/components/team-dev/update/utilities/actions-combo-box-model.js.map +1 -0
  82. package/dist/collection/components/team-dev/update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +11 -11
  83. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +16 -590
  84. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +100 -78
  85. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
  86. package/dist/collection/components/team-dev/update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +5 -5
  87. package/dist/collection/components/team-dev/update-to-revision/gx-ide-assets/team-dev-update-to-revision/shortcuts.json +3 -3
  88. package/dist/collection/components/team-dev/update-to-revision/helpers.js +6 -0
  89. package/dist/collection/components/team-dev/update-to-revision/helpers.js.map +1 -0
  90. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +11 -596
  91. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.js +133 -56
  92. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.js.map +1 -1
  93. package/dist/collection/components/team-dev/version-control/commit/commit.css +344 -0
  94. package/dist/collection/components/team-dev/version-control/commit/commit.js +801 -0
  95. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -0
  96. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +78 -0
  97. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +78 -0
  98. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +78 -0
  99. package/dist/collection/components/team-dev/version-control/commit/utilities/categories-to-combo-box.js +7 -0
  100. package/dist/collection/components/team-dev/version-control/commit/utilities/categories-to-combo-box.js.map +1 -0
  101. package/dist/collection/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.js +11 -0
  102. package/dist/collection/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.js.map +1 -0
  103. package/dist/collection/components/team-dev/version-control/commit/utilities/folders-to-combo-box.js +5 -0
  104. package/dist/collection/components/team-dev/version-control/commit/utilities/folders-to-combo-box.js.map +1 -0
  105. package/dist/collection/components/team-dev/version-control/commit/utilities/types-to-combo-box.js +6 -0
  106. package/dist/collection/components/team-dev/version-control/commit/utilities/types-to-combo-box.js.map +1 -0
  107. package/dist/collection/components/team-dev/version-control/common/clear-grid-selection.js +37 -0
  108. package/dist/collection/components/team-dev/version-control/common/clear-grid-selection.js.map +1 -0
  109. package/dist/collection/components/team-dev/version-control/common/constants.js +70 -0
  110. package/dist/collection/components/team-dev/version-control/common/constants.js.map +1 -0
  111. package/dist/collection/components/team-dev/version-control/common/header-renders.js +12 -0
  112. package/dist/collection/components/team-dev/version-control/common/header-renders.js.map +1 -0
  113. package/dist/collection/components/team-dev/version-control/common/object-type-to-combo-box.js +6 -0
  114. package/dist/collection/components/team-dev/version-control/common/object-type-to-combo-box.js.map +1 -0
  115. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +112 -0
  116. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -0
  117. package/dist/collection/components/team-dev/version-control/common/types.js +2 -0
  118. package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -0
  119. package/dist/components/config.js +1 -1
  120. package/dist/components/config.js.map +1 -1
  121. package/dist/components/gx-ide-connect-gx-server.js +1 -1
  122. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  123. package/dist/components/gx-ide-server-selector.js +4 -2
  124. package/dist/components/gx-ide-server-selector.js.map +1 -1
  125. package/dist/components/gx-ide-team-dev-bring-changes.js +20 -32
  126. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  127. package/dist/components/gx-ide-team-dev-commit.js +678 -321
  128. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  129. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  130. package/dist/components/gx-ide-team-dev-update-partial-selection.js +93 -67
  131. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  132. package/dist/components/gx-ide-team-dev-update-to-revision.js +115 -51
  133. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  134. package/dist/components/gx-ide-team-dev-update.js +532 -266
  135. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  136. package/dist/components/gx-ide-ww-files.js +2 -23
  137. package/dist/components/gx-ide-ww-files.js.map +1 -1
  138. package/dist/components/helpers2.js +27 -0
  139. package/dist/components/helpers2.js.map +1 -0
  140. package/dist/components/utilities.js +5 -5
  141. package/dist/components/utilities.js.map +1 -1
  142. package/dist/esm/{config-73a57a22.js → config-9eaeb14b.js} +2 -2
  143. package/dist/esm/config-9eaeb14b.js.map +1 -0
  144. package/dist/esm/genexus-ide-ui.js +1 -1
  145. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  146. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  147. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  148. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  149. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  150. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  151. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  152. package/dist/esm/gx-ide-connect-gx-server.entry.js +2 -2
  153. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  154. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  155. package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
  156. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  157. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  158. package/dist/esm/gx-ide-json-import.entry.js +1 -1
  159. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  160. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  161. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  162. package/dist/esm/gx-ide-new-version.entry.js +1 -1
  163. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  164. package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
  165. package/dist/esm/gx-ide-server-selector.entry.js +5 -3
  166. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  167. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  168. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +19 -30
  169. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  170. package/dist/esm/gx-ide-team-dev-commit.entry.js +642 -302
  171. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  172. package/dist/esm/gx-ide-team-dev-history.entry.js +2 -2
  173. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  174. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  175. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +92 -53
  176. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  177. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +111 -36
  178. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  179. package/dist/esm/gx-ide-team-dev-update.entry.js +502 -234
  180. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  181. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  182. package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
  183. package/dist/esm/gx-ide-ww-files.entry.js +3 -24
  184. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  186. package/dist/esm/helpers-4d080d9f.js +27 -0
  187. package/dist/esm/helpers-4d080d9f.js.map +1 -0
  188. package/dist/esm/loader.js +1 -1
  189. package/dist/esm/{utilities-482e01e6.js → utilities-6624d90e.js} +6 -6
  190. package/dist/esm/utilities-6624d90e.js.map +1 -0
  191. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  192. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  193. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.en.json +1 -1
  194. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.ja.json +1 -1
  195. package/dist/genexus-ide-ui/gx-ide-assets/connect-gx-server/langs/connect-gx-server.lang.zh.json +1 -1
  196. package/dist/genexus-ide-ui/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
  197. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +1 -1
  198. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +1 -1
  199. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +1 -1
  200. package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +1 -1
  201. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +1 -1
  202. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +1 -1
  203. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +68 -29
  204. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +69 -30
  205. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +68 -29
  206. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +49 -28
  207. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +58 -37
  208. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +49 -28
  209. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +11 -11
  210. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +5 -5
  211. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/shortcuts.json +3 -3
  212. package/dist/genexus-ide-ui/p-08d90282.entry.js +178 -0
  213. package/dist/genexus-ide-ui/p-08d90282.entry.js.map +1 -0
  214. package/dist/genexus-ide-ui/{p-dc1a9bd5.entry.js → p-09a634fc.entry.js} +3 -3
  215. package/dist/genexus-ide-ui/p-09a634fc.entry.js.map +1 -0
  216. package/dist/genexus-ide-ui/{p-8c125495.entry.js → p-0ae0616f.entry.js} +2 -2
  217. package/dist/genexus-ide-ui/{p-00e51225.entry.js → p-1056dfe7.entry.js} +2 -2
  218. package/dist/genexus-ide-ui/{p-bf176329.entry.js → p-12b563fe.entry.js} +2 -2
  219. package/dist/genexus-ide-ui/{p-54946b5e.entry.js → p-159164d6.entry.js} +2 -2
  220. package/dist/genexus-ide-ui/{p-6945a7ad.entry.js → p-16a88fc3.entry.js} +6 -6
  221. package/dist/genexus-ide-ui/{p-2c6ab8f4.entry.js → p-1d044bf5.entry.js} +2 -2
  222. package/dist/genexus-ide-ui/{p-e1d947d7.entry.js → p-2ce60f4c.entry.js} +2 -2
  223. package/dist/genexus-ide-ui/p-34447b77.entry.js +603 -0
  224. package/dist/genexus-ide-ui/p-34447b77.entry.js.map +1 -0
  225. package/dist/genexus-ide-ui/{p-38f135a5.entry.js → p-3b955964.entry.js} +2 -2
  226. package/dist/genexus-ide-ui/{p-4da77239.entry.js → p-3dc5d62e.entry.js} +2 -2
  227. package/dist/genexus-ide-ui/p-42f37527.entry.js +732 -0
  228. package/dist/genexus-ide-ui/p-42f37527.entry.js.map +1 -0
  229. package/dist/genexus-ide-ui/{p-56308ae7.entry.js → p-443fc479.entry.js} +2 -2
  230. package/dist/genexus-ide-ui/{p-68ff4ac9.entry.js → p-4ef96726.entry.js} +2 -2
  231. package/dist/genexus-ide-ui/{p-a5b30dc7.entry.js → p-585fac4a.entry.js} +3 -3
  232. package/dist/genexus-ide-ui/p-585fac4a.entry.js.map +1 -0
  233. package/dist/genexus-ide-ui/{p-e06cfa27.entry.js → p-59908901.entry.js} +2 -2
  234. package/dist/genexus-ide-ui/{p-57b8dd3d.entry.js → p-5a328be1.entry.js} +2 -2
  235. package/dist/genexus-ide-ui/{p-3817c664.entry.js → p-646ddf49.entry.js} +2 -2
  236. package/dist/genexus-ide-ui/p-723d25ae.entry.js +912 -0
  237. package/dist/genexus-ide-ui/p-723d25ae.entry.js.map +1 -0
  238. package/dist/genexus-ide-ui/{p-3d7ed559.entry.js → p-730f0cd3.entry.js} +2 -2
  239. package/dist/genexus-ide-ui/{p-4c37ff28.entry.js → p-7836028c.entry.js} +2 -2
  240. package/dist/genexus-ide-ui/{p-f94cb936.entry.js → p-7adb9d1f.entry.js} +2 -2
  241. package/dist/genexus-ide-ui/p-7f091892.entry.js +222 -0
  242. package/dist/genexus-ide-ui/p-7f091892.entry.js.map +1 -0
  243. package/dist/genexus-ide-ui/{p-44e5e972.js → p-9a03ac9f.js} +2 -2
  244. package/dist/genexus-ide-ui/{p-44e5e972.js.map → p-9a03ac9f.js.map} +1 -1
  245. package/dist/genexus-ide-ui/{p-9b1550be.entry.js → p-9ad85231.entry.js} +2 -2
  246. package/dist/genexus-ide-ui/{p-212ca306.entry.js → p-9b8a8487.entry.js} +252 -273
  247. package/dist/genexus-ide-ui/p-9b8a8487.entry.js.map +1 -0
  248. package/dist/genexus-ide-ui/{p-2ee77587.js → p-a24571ca.js} +6 -6
  249. package/dist/genexus-ide-ui/p-a24571ca.js.map +1 -0
  250. package/dist/genexus-ide-ui/{p-bb0cdfe6.entry.js → p-b5d8589f.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-7fe4387b.entry.js → p-be84e15b.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-923744e7.entry.js → p-bee71b20.entry.js} +25 -23
  253. package/dist/genexus-ide-ui/p-bee71b20.entry.js.map +1 -0
  254. package/dist/genexus-ide-ui/{p-4dd3af73.entry.js → p-d01bbc7a.entry.js} +2 -2
  255. package/dist/genexus-ide-ui/{p-833ae3bf.entry.js → p-da7df3dc.entry.js} +2 -2
  256. package/dist/genexus-ide-ui/{p-9d1316d4.entry.js → p-e7738191.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/p-edcd0022.js +27 -0
  258. package/dist/genexus-ide-ui/p-edcd0022.js.map +1 -0
  259. package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +6 -9
  260. package/dist/types/components/team-dev/common/utilities.d.ts +1 -1
  261. package/dist/types/components/team-dev/history/history.d.ts +1 -1
  262. package/dist/types/components/team-dev/update/types.d.ts +1 -0
  263. package/dist/types/components/team-dev/update/update.d.ts +98 -110
  264. package/dist/types/components/team-dev/update/utilities/actions-combo-box-model.d.ts +0 -0
  265. package/dist/types/components/team-dev/update-partial-selection/update-partial-selection.d.ts +8 -25
  266. package/dist/types/components/team-dev/update-to-revision/helpers.d.ts +1 -0
  267. package/dist/types/components/team-dev/update-to-revision/update-to-revision.d.ts +8 -25
  268. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +192 -0
  269. package/dist/types/components/team-dev/version-control/commit/utilities/categories-to-combo-box.d.ts +3 -0
  270. package/dist/types/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.d.ts +3 -0
  271. package/dist/types/components/team-dev/version-control/commit/utilities/folders-to-combo-box.d.ts +3 -0
  272. package/dist/types/components/team-dev/version-control/commit/utilities/types-to-combo-box.d.ts +3 -0
  273. package/dist/types/components/team-dev/version-control/common/clear-grid-selection.d.ts +11 -0
  274. package/dist/types/components/team-dev/version-control/common/constants.d.ts +24 -0
  275. package/dist/types/components/team-dev/version-control/common/header-renders.d.ts +5 -0
  276. package/dist/types/components/team-dev/{commit/helpers.d.ts → version-control/common/object-type-to-combo-box.d.ts} +1 -2
  277. package/dist/types/components/team-dev/version-control/common/tabular-grid-render.d.ts +8 -0
  278. package/dist/types/components/team-dev/version-control/common/types.d.ts +52 -0
  279. package/dist/types/components.d.ts +113 -205
  280. package/package.json +1 -1
  281. package/dist/cjs/config-140f58fe.js.map +0 -1
  282. package/dist/cjs/utilities-11683cc0.js.map +0 -1
  283. package/dist/collection/components/team-dev/commit/commit.css +0 -100
  284. package/dist/collection/components/team-dev/commit/commit.js +0 -708
  285. package/dist/collection/components/team-dev/commit/commit.js.map +0 -1
  286. package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +0 -39
  287. package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +0 -39
  288. package/dist/collection/components/team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +0 -39
  289. package/dist/collection/components/team-dev/commit/helpers.js +0 -10
  290. package/dist/collection/components/team-dev/commit/helpers.js.map +0 -1
  291. package/dist/collection/components/team-dev/common/types.js.map +0 -1
  292. package/dist/esm/config-73a57a22.js.map +0 -1
  293. package/dist/esm/utilities-482e01e6.js.map +0 -1
  294. package/dist/genexus-ide-ui/p-0391a478.entry.js +0 -119
  295. package/dist/genexus-ide-ui/p-0391a478.entry.js.map +0 -1
  296. package/dist/genexus-ide-ui/p-212ca306.entry.js.map +0 -1
  297. package/dist/genexus-ide-ui/p-2ee77587.js.map +0 -1
  298. package/dist/genexus-ide-ui/p-69da0cd9.entry.js +0 -201
  299. package/dist/genexus-ide-ui/p-69da0cd9.entry.js.map +0 -1
  300. package/dist/genexus-ide-ui/p-8c1ee4d9.entry.js +0 -643
  301. package/dist/genexus-ide-ui/p-8c1ee4d9.entry.js.map +0 -1
  302. package/dist/genexus-ide-ui/p-923744e7.entry.js.map +0 -1
  303. package/dist/genexus-ide-ui/p-952d84f8.entry.js +0 -683
  304. package/dist/genexus-ide-ui/p-952d84f8.entry.js.map +0 -1
  305. package/dist/genexus-ide-ui/p-a5b30dc7.entry.js.map +0 -1
  306. package/dist/genexus-ide-ui/p-b2854730.entry.js +0 -641
  307. package/dist/genexus-ide-ui/p-b2854730.entry.js.map +0 -1
  308. package/dist/genexus-ide-ui/p-dc1a9bd5.entry.js.map +0 -1
  309. package/dist/types/components/team-dev/commit/commit.d.ts +0 -115
  310. package/dist/types/components/team-dev/common/types.d.ts +0 -1
  311. /package/dist/collection/components/team-dev/{common → update}/types.js +0 -0
  312. /package/dist/genexus-ide-ui/{p-8c125495.entry.js.map → p-0ae0616f.entry.js.map} +0 -0
  313. /package/dist/genexus-ide-ui/{p-00e51225.entry.js.map → p-1056dfe7.entry.js.map} +0 -0
  314. /package/dist/genexus-ide-ui/{p-bf176329.entry.js.map → p-12b563fe.entry.js.map} +0 -0
  315. /package/dist/genexus-ide-ui/{p-54946b5e.entry.js.map → p-159164d6.entry.js.map} +0 -0
  316. /package/dist/genexus-ide-ui/{p-6945a7ad.entry.js.map → p-16a88fc3.entry.js.map} +0 -0
  317. /package/dist/genexus-ide-ui/{p-2c6ab8f4.entry.js.map → p-1d044bf5.entry.js.map} +0 -0
  318. /package/dist/genexus-ide-ui/{p-e1d947d7.entry.js.map → p-2ce60f4c.entry.js.map} +0 -0
  319. /package/dist/genexus-ide-ui/{p-38f135a5.entry.js.map → p-3b955964.entry.js.map} +0 -0
  320. /package/dist/genexus-ide-ui/{p-4da77239.entry.js.map → p-3dc5d62e.entry.js.map} +0 -0
  321. /package/dist/genexus-ide-ui/{p-56308ae7.entry.js.map → p-443fc479.entry.js.map} +0 -0
  322. /package/dist/genexus-ide-ui/{p-68ff4ac9.entry.js.map → p-4ef96726.entry.js.map} +0 -0
  323. /package/dist/genexus-ide-ui/{p-e06cfa27.entry.js.map → p-59908901.entry.js.map} +0 -0
  324. /package/dist/genexus-ide-ui/{p-57b8dd3d.entry.js.map → p-5a328be1.entry.js.map} +0 -0
  325. /package/dist/genexus-ide-ui/{p-3817c664.entry.js.map → p-646ddf49.entry.js.map} +0 -0
  326. /package/dist/genexus-ide-ui/{p-3d7ed559.entry.js.map → p-730f0cd3.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-4c37ff28.entry.js.map → p-7836028c.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-f94cb936.entry.js.map → p-7adb9d1f.entry.js.map} +0 -0
  329. /package/dist/genexus-ide-ui/{p-9b1550be.entry.js.map → p-9ad85231.entry.js.map} +0 -0
  330. /package/dist/genexus-ide-ui/{p-bb0cdfe6.entry.js.map → p-b5d8589f.entry.js.map} +0 -0
  331. /package/dist/genexus-ide-ui/{p-7fe4387b.entry.js.map → p-be84e15b.entry.js.map} +0 -0
  332. /package/dist/genexus-ide-ui/{p-4dd3af73.entry.js.map → p-d01bbc7a.entry.js.map} +0 -0
  333. /package/dist/genexus-ide-ui/{p-833ae3bf.entry.js.map → p-da7df3dc.entry.js.map} +0 -0
  334. /package/dist/genexus-ide-ui/{p-9d1316d4.entry.js.map → p-e7738191.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clearGridSelection","gridSource","selectedRowsIds","pendingIdsSet","ignoredIdsSet","gridReference","filteredSelectedRowsIds","length","forEach","async","selectedRowId","has","selectRow","push","headerDetail","type","caption","description","callback","cssClass","h","class","onClick","headerTitle","changesetToComboBoxModel","changesetModel","map","changeset","value","id","name","label","foldersToComboBoxModel","foldersModel","folder","typesToComboBoxItemModel","objectTypeModel","objectType","startImgSrc","icon","ALL_VALUE","CSS_SELECTORS","HEADER","HEADER_DETAILS","FILTER","MAIN","GRID_CELL_DESCRIPTION","ICONS","add","getIconPath","category","colorType","edit","error","filter","filterWithConditions","info","refresh","search","success","substract","warning","BUTTON_ACTION_SELECTOR","renderStateCellContent","action","componentLocale","iconColor","states","deleted","inserted","modified","conflicted","src","style","backgroundColor","renderObjectStatus","objectId","objectsStatusMap","updatePillAsButton","commitSingleObject","status","get","commit","classes","pill","renderTabularGridRows","pendingObjectsAfterFilter","ignoredObjectsAfterFilter","alreadyUpdatedObjectsIdsSet","markedObjectsSet","objectsMessagesDataMap","searchValue","objects","toLowerCase","filteredRows","object","alreadyUpdated","hideCheckbox","marked","messages","key","rowid","ref","el","setAttribute","size","hiChar","renderObjectTypeWithIcon","CLASSES","formatDate","modifiedOn","module","state","lastSynchronized","message","MESSAGE_ICON","text","renderTabularGridColumns","ignoredGridColumns","gridIsEmpty","colSize","config","tabularGrid","auto","maxContent","includes","columnId","columnName","columnType","richRowSelector","richRowSelectorMode","settingable","localState","commitCss","FILTER_SECONDARY_CONTAINER_ID","FILTER_SECONDARY_BUTTON_ID","CSS_BUNDLES","GxIdeTeamDevCommit","_GxIdeTeamDevCommit_componentLocale","set","this","_GxIdeTeamDevCommit_localStatesComboBoxModel","_GxIdeTeamDevCommit_rowCheckedChangedByTheUser","_GxIdeTeamDevCommit_chGridPendingForUpdateEl","_GxIdeTeamDevCommit_commitCheckedClickedHandler","__classPrivateFieldGet","_GxIdeTeamDevCommit_commitObjectsHandler","call","_GxIdeTeamDevCommit_commitSingleObject","newobjectsStatusMap","Map","selection","commentsValue","commentInputHasError","commiting","itemToUpdate","commitResult","commitCallback","objectResult","delete","result","alreadyCommitedObjectsIdsSet","markRow","_GxIdeTeamDevCommit_rowMarkingChangedHandler","event","markedRowsIds","detail","rowsId","Set","markedObjectId","_GxIdeTeamDevCommit_updatePendingCheckedItems","_GxIdeTeamDevCommit_rowSelectionChangedHandler","firstSelectedRowId","selectCallback","_GxIdeTeamDevCommit_commentsInputHandler","_GxIdeTeamDevCommit_applyClientFilter","_GxIdeTeamDevCommit_filteredObjects","pendingAndIgnored","pendingForCommit","ignoredObjects","filtered","nameFiltered","descriptionFiltered","selectedState","_GxIdeTeamDevCommit_evaluateSecondaryFilterHasConditions","selectedFolder","filterSecondaryHasConditions","_GxIdeTeamDevCommit_toggleFiltersHandler","filterSecondaryIsHidden","_GxIdeTeamDevCommit_searchInputHandler","trim","_GxIdeTeamDevCommit_typeChangedHandler","selectedType","_GxIdeTeamDevCommit_loadData","_GxIdeTeamDevCommit_stateChangedHandler","_GxIdeTeamDevCommit_folderChanged","_GxIdeTeamDevCommit_onRowContextMenuHandler","ev","preventDefault","stopPropagation","getSelectedRows","objectsContextMenuCallback","clientX","clientY","__classPrivateFieldSet","addedRowsIds","addedRowsId","removedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","_GxIdeTeamDevCommit_revertPendingCommitsCheckboxes","_GxIdeTeamDevCommit_togglePendingCommitsCheckboxes","_GxIdeTeamDevCommit_setInitialObjectsStatus","objectsRenderedAlready","pendingObject","ignoredObject","loading","loadCallback","selectedChangeset","selectedCategory","_GxIdeTeamDevCommit_markPendingObjects","pendingId","rowId","itemsToToggle","itemsToCheck","itemsToUncheck","markedObjectsSetChanged","newMarkedObjectsSet","atLeastOneObjectIsChecked","objectsStatusMapChanged","newObjectsStatusMap","someObjectIsUpdating","entries","find","pendingAndIgnoredChanged","clear","_a","pending","_b","ignored","typesChanged","newTypes","typesComboBoxModel","changesetChanged","newChangesetOptions","changesetsComboBoxModel","folderChanged","newFolderOptions","foldersComboBoxModel","componentWillLoad","Locale","getComponentStrings","all","types","folders","componentDidLoad","reload","render","disableControls","filterIcon","commitButtonEnabled","Host","model","commitDetail","title","genexusServer","serverDetails","serverUrl","openServerCallback","knowledgeBase","kbName","version","versionName","disabled","accessibleName","searchAccessibleName","placeholder","searchPlaceholder","onInput","typeAccesibleName","typePlaceholder","localStateAccesibleName","localStatePlaceholder","secondaryFilterAriaLabel","inert","hidden","folderAccesibleName","folderPlaceholder","multiline","autoGrow","commitCommentPlaceholder","keyboardNavigationMode","rowSelectionMode","onSelectionChanged","onRowMarkingChanged","onRowContextMenu","pendingCommits","isAnimated","stateIconSrc","stateTitle","cancelLabel","loader","loaderTitle","show"],"sources":["src/components/team-dev/version-control/common/clear-grid-selection.ts","src/components/team-dev/version-control/common/header-renders.tsx","src/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/folders-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/types-to-combo-box.ts","src/components/team-dev/version-control/common/constants.ts","src/components/team-dev/version-control/common/tabular-grid-render.tsx","src/components/team-dev/version-control/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/version-control/commit/commit.tsx"],"sourcesContent":["import { SourceType } from \"./types\";\n\n/**\n * Filters a grid selection to only include rows from the given source (\"pending\" or \"ignored\").\n * Rows from the other category are unselected.\n *\n * @param {SourceType} gridSource - The source category of the selection.\n * @param {string[]} selectedRowsIds - The currently selected row IDs.\n * @returns {string[]} Filtered row IDs belonging to the specified source.\n */\nconst clearGridSelection = (\n gridSource: SourceType,\n selectedRowsIds: string[],\n pendingIdsSet: Set<string>,\n ignoredIdsSet: Set<string>,\n gridReference: HTMLChTabularGridElement\n): string[] => {\n let filteredSelectedRowsIds: string[] = [];\n if (selectedRowsIds.length > 1 && gridSource === \"pending\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (ignoredIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else if (selectedRowsIds.length > 1 && gridSource === \"ignored\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (pendingIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else {\n filteredSelectedRowsIds = selectedRowsIds;\n }\n return filteredSelectedRowsIds;\n};\n\nexport default clearGridSelection;\n","import { h, JSX } from \"@stencil/core\";\n\nconst headerDetail = (\n type: \"text\" | \"link\" = \"text\",\n caption: string,\n description: string,\n callback?: () => void,\n cssClass?: string\n): JSX.Element => {\n return (\n <div class={{ [cssClass]: true, \"field field-block\": true }}>\n <span class=\"detail__label body-semi-bold-s\">{caption}</span>\n {type === \"text\" ? (\n <p class=\"body-regular-s\">{description}</p>\n ) : (\n <button class=\"detail__link body-regular-s\" onClick={callback}>\n {description}\n </button>\n )}\n </div>\n );\n};\nexport default headerDetail;\n\nexport const headerTitle = (caption: string, cssClass?: string) => {\n return (\n <h2\n class={{ [cssClass]: true, \"header__title subtitle-semi-bold-s\": true }}\n >\n {caption}\n </h2>\n );\n};\n\nexport const headerSubtitle = (caption: string, cssClass?: string) => {\n return (\n <p\n class={{ [cssClass]: true, \"detail__title subtitle-semi-bold-xs\": true }}\n >\n {caption}\n </p>\n );\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const changesetToComboBoxModel = (\n changesetModel: GxOption[]\n): ComboBoxModel => {\n if (!changesetModel) return [];\n\n return changesetModel.map(changeset => ({\n value: changeset.id,\n caption:\n changeset.name === \"All\"\n ? \"All Changesets\"\n : changeset.label || changeset.name || \"\"\n }));\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const foldersToComboBoxModel = (\n foldersModel: GxOption[]\n): ComboBoxModel =>\n foldersModel.map(folder => ({\n value: folder.name,\n caption:\n folder.name === \"All\" ? \"All Modules\" : folder.label || folder.name || \"\"\n }));\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../../../components\";\n\nexport const typesToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name === \"All\" ? \"All Types\" : objectType.name || \"\",\n startImgSrc: objectType.icon\n }));\n","import { getIconPath } from \"@genexus/mercury\";\n\nexport const ALL_VALUE = \"All\";\nexport const ALL_MODULES = \"All Modules\";\nexport const ALL_TYPES = \"All Types\";\n\nexport const CSS_SELECTORS = {\n HEADER: \"header spacing-body-inline spacing-body-block-start field-group\",\n HEADER_DETAILS: \"header__details\",\n FILTER: \"filter\",\n MAIN: \"main spacing-body\",\n GRID_CELL_DESCRIPTION: \"tabular-grid-cell-description-custom-selector\"\n};\n\nconst ICONS = {\n add: getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n }),\n edit: getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n }),\n error: getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n }),\n filter: getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"neutral\"\n }),\n filterWithConditions: getIconPath({\n category: \"window-tools\",\n name: \"filter-conditions\",\n colorType: \"neutral\"\n }),\n info: getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-elevation\"\n }),\n refresh: getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"neutral\"\n }),\n search: getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n }),\n success: getIconPath({\n category: \"system\",\n name: \"check\",\n colorType: \"success\"\n }),\n substract: getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n }),\n warning: getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n })\n};\nexport default ICONS;\n","// stencil\nimport { h, JSX } from \"@stencil/core\";\n\n// external libraries\nimport HTMLChTabularGridRowElement from \"@genexus/chameleon-controls-library/dist/types/components/tabular-grid/row/tabular-grid-row\";\n\n// local\nimport {\n MessageData,\n ModifiedObjectData,\n SourceType,\n StatusInternal\n} from \"./types\";\nimport { ObjectState } from \"../common/types\";\nimport ICONS from \"./constants\";\nimport { renderObjectTypeWithIcon } from \"../../common/utilities\";\nimport { formatDate } from \"../../../../common/helpers\";\nimport { CSS_SELECTORS as CLASSES } from \"./constants\";\nimport { hiChar } from \"../../../ww-files/helpers\";\nimport { config } from \"../../../../common/config\";\n\nconst BUTTON_ACTION_SELECTOR = \"button-action-custom-selector\";\n\nconst renderStateCellContent = (\n action: ObjectState,\n componentLocale: any\n): JSX.Element[] | null | string => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (action === \"deleted\") {\n icon = ICONS.substract;\n caption = componentLocale.states.deleted;\n iconColor = \"--mer-icon__error\";\n } else if (action === \"inserted\") {\n icon = ICONS.add;\n caption = componentLocale.states.inserted;\n iconColor = \"--mer-icon__success\";\n } else if (action === \"modified\") {\n icon = ICONS.edit;\n caption = componentLocale.states.modified;\n iconColor = \"--mer-icon__warning\";\n } else if (action === \"conflicted\") {\n icon = ICONS.warning;\n caption = componentLocale.states.conflicted;\n iconColor = \"--mer-icon__warning\";\n } else if (!action) {\n // proably is \"ignored\"\n return null;\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n};\n\nconst renderObjectStatus = (\n objectId: string,\n objectsStatusMap: Map<string, StatusInternal>,\n updatePillAsButton: boolean,\n commitSingleObject: (objectId: string) => () => void,\n componentLocale: any\n): JSX.Element[] => {\n const status = objectsStatusMap.get(objectId);\n const caption =\n status === \"pending\" && updatePillAsButton\n ? componentLocale.status.commit\n : componentLocale.status[status];\n\n if (status === \"commiting\") {\n return <span class=\"spinner-caption\">{caption}</span>;\n }\n\n const classes = `pill pill--${status}`;\n if (updatePillAsButton && status === \"pending\") {\n return (\n <button\n class={{\n \"button-secondary\": true,\n \"button-icon-and-text\": true,\n \"pill\": true,\n \"pill--update\": true,\n [BUTTON_ACTION_SELECTOR]: true\n }}\n onClick={commitSingleObject(objectId)}\n >\n {caption}\n </button>\n );\n } else {\n return <span class={classes}>{caption}</span>;\n }\n};\n\nconst renderTabularGridRows = (\n type: SourceType,\n pendingObjectsAfterFilter: ModifiedObjectData[],\n ignoredObjectsAfterFilter: ModifiedObjectData[],\n alreadyUpdatedObjectsIdsSet: Set<string>,\n markedObjectsSet: Set<string>,\n objectsMessagesDataMap: Map<string, MessageData[]>,\n updatePillAsButton: boolean,\n commitSingleObject: (objectId: string) => () => void,\n objectsStatusMap: Map<string, StatusInternal>,\n searchValue: string,\n componentLocale: any\n): HTMLChTabularGridRowElement[] => {\n let objects: ModifiedObjectData[];\n if (type === \"pending\") {\n objects = pendingObjectsAfterFilter;\n } else if (type === \"ignored\") {\n objects = ignoredObjectsAfterFilter;\n }\n\n searchValue = searchValue.toLowerCase();\n\n const filteredRows = objects.map(object => {\n const alreadyUpdated = alreadyUpdatedObjectsIdsSet.has(object.id);\n const hideCheckbox = alreadyUpdated || type === \"ignored\";\n const marked = markedObjectsSet.has(object.id);\n const messages = objectsMessagesDataMap.get(object.id);\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={object.id}\n rowid={object.id}\n ref={(el: HTMLElement) => marked && el?.setAttribute(\"marked\", \"true\")}\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": hideCheckbox\n }}\n size=\"max-content\"\n >\n <div\n // This div is a WA to prevent the cell display:flex to\n // apply columns when hiChar is applied. hiChar creates\n // a span for every match.\n >\n {hiChar(object.name, searchValue)}\n </div>\n {/* {object.name} */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(object.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell\n class={{\n \"tabular-grid-cell\": true,\n [CLASSES.GRID_CELL_DESCRIPTION]: true\n }}\n >\n <div\n // This div is a WA to prevent the cell display:flex to\n // apply columns when hiChar is applied. hiChar creates\n // a span for every match.\n >\n {hiChar(object.description, searchValue)}\n </div>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(object.modifiedOn)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderStateCellContent(object.state, componentLocale)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(object.lastSynchronized)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {renderObjectStatus(\n object.id,\n objectsStatusMap,\n updatePillAsButton,\n commitSingleObject,\n componentLocale\n )}\n </ch-tabular-grid-cell>\n\n {messages?.length && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{\n \"tabular-grid-rowset-empty\": true\n }}\n >\n <ul class=\"messages-list\">\n {messages.map(message => {\n let MESSAGE_ICON;\n if (message.type === \"error\") {\n MESSAGE_ICON = ICONS.error;\n } else if (message.type === \"warning\") {\n MESSAGE_ICON = ICONS.warning;\n } else if (message.type === \"success\") {\n MESSAGE_ICON = ICONS.success;\n } else {\n // info\n MESSAGE_ICON = ICONS.info;\n }\n\n return (\n <li class=\"message-description\">\n <ch-image\n class=\"icon-md message-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {message.text}\n </li>\n );\n })}\n </ul>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n\n // this.objectsRenderedAlready = true;\n\n return filteredRows;\n};\n\nexport default renderTabularGridRows;\n\nexport type GridColumnType =\n | \"action\"\n | \"description\"\n | \"lastSynchronized\"\n | \"localState\"\n | \"modifiedOn\"\n | \"module\"\n | \"name\"\n | \"status\"\n | \"type\";\n\nexport type GridColumnSet = Partial<Record<GridColumnType, true>>;\n\nexport const renderTabularGridColumns = (\n ignoredGridColumns: GridColumnType[],\n gridIsEmpty: boolean = false,\n componentLocale: any\n): JSX.Element => {\n const colSize = gridIsEmpty\n ? config.tabularGrid.colSize.auto\n : config.tabularGrid.colSize.maxContent;\n\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n {!ignoredGridColumns.includes(\"name\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"name\"\n columnName={componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={true}\n richRowSelectorMode=\"mark\"\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"type\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"type\"\n columnName={componentLocale.objects.type}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"description\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"description\"\n columnName={componentLocale.objects.description}\n settingable={false}\n size={config.tabularGrid.colSize.description}\n />\n )}\n\n {!ignoredGridColumns.includes(\"modifiedOn\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"modifiedOn\"\n columnName={componentLocale.objects.modifiedOn}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"module\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"module\"\n columnName={componentLocale.objects.module}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"localState\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"localState\"\n columnName={componentLocale.objects.localState}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"lastSynchronized\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"lastSynchronized\"\n columnName={componentLocale.objects.lastSynchronized}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"action\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"action\"\n columnName={componentLocale.objects.action}\n settingable={false}\n size={colSize}\n />\n )}\n\n {!ignoredGridColumns.includes(\"status\") && (\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"status\"\n columnName={componentLocale.objects.status}\n settingable={false}\n size={gridIsEmpty ? \"auto\" : \"100px\"}\n />\n )}\n </ch-tabular-grid-columnset>\n );\n};\n","@use \"../common/common.scss\" as *;\n@import \"../../common/styles.scss\";\n@import \"../../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../../global/gx-ide-mixins.scss\";\n\n// header detail\n.header__details {\n grid-template-areas:\n \"detail-heading-gx . . .\"\n \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__heading-genexus-server {\n grid-area: detail-heading-gx;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-detail-start;\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-detail-common;\n}\n.detail__version {\n grid-area: detail-version;\n @extend %header-detail-end;\n}\n\n// filter\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n display: grid;\n column-gap: 12px;\n grid-template-areas:\n \"filter-primary filter-toggle-button filter-action-buttons\"\n \"filter-secondary . .\"\n \"comments comments comments\";\n grid-template-columns: minmax(0, max-content) max-content 1fr;\n}\n.filter {\n @extend %filter;\n}\n.filter-primary {\n grid-area: filter-primary;\n grid-template-columns: $filterControlInlineSize $filterControlInlineSize $filterControlInlineSize;\n}\n.filter-container > :nth-child(2) {\n grid-area: filter-toggle-button;\n}\n.filter-container > :nth-child(3) {\n grid-area: filter-action-buttons;\n justify-content: end;\n}\n.filter__toggle-secondary-filter-btn {\n grid-area: filter-toggle-button;\n}\n\n.filter__buttons {\n grid-area: filter-buttons;\n margin-inline-start: auto;\n}\n\n// secondary filter (hidden by default)\n.filter-secondary {\n display: grid;\n grid-template-rows: 0fr;\n grid-area: filter-secondary;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n.filter-secondary--visible {\n grid-template-rows: 1fr;\n}\n.filter-secondary > div {\n @extend %filter;\n display: grid;\n overflow: hidden;\n font-size: 0; // WA Remove unwanted additional space\n grid-template-columns: repeat(3, $filterControlInlineSize);\n}\n\n.filter-secondary > div > .combo-box,\n.comments {\n margin-block-start: $filterRowGap;\n}\n.comments {\n grid-area: comments;\n}\n\n// - - - - - - - - - - - - - -\n// WA (WORK AROUNDS)\n// - - - - - - - - - - - - - -\n\n.input-comments-container {\n position: relative;\n}\n// ch-edit for comments WA's\n// Figma design for this component displays the textarea witout border, and with a little more line-height.\n// The following styles are a temporary WA that should be brouhgt to Mercury DS.\n.input-comments {\n --control__border-color: transparent;\n padding-block: 0 !important;\n padding-inline: 0 !important;\n --line-height-tight: 1.4;\n block-size: 100%;\n background-color: var(--mer-surface);\n transition:\n var(--mer-timing--super-fast) block-size,\n var(--mer-timing--super-fast) background-color,\n var(--mer-timing--super-fast) padding-block,\n var(--mer-timing--super-fast) padding-inline;\n}\n.input-comments:focus {\n position: absolute;\n block-size: $filterControlInlineSize;\n inline-size: 100%;\n z-index: 99;\n background-color: var(--mer-surface__elevation--01);\n padding-block: var(--control__padding-block) !important;\n padding-inline: var(--control__padding-inline) !important;\n}\n","// stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n\n// external libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChEditCustomEvent,\n ComboBoxModel,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\n// local\nimport { Locale } from \"../../../../common/locale\";\nimport {\n GxOption,\n ItemsCheckedResult,\n ObjectType\n} from \"../../../../common/types\";\nimport clearGridSelection from \"../common/clear-grid-selection\";\n\nimport type {\n StateForFilter,\n StatusInternal,\n MessageData,\n ModifiedObjectData,\n CommitData,\n CommitCallback,\n ContextMenuCallback,\n LoadCallback,\n PendingItemsCheckedCallback,\n SelectCallback,\n ServerDetails,\n SourceType\n} from \"../common/types\";\n\nimport headerDetail, { headerTitle } from \"../common/header-renders\";\nimport { changesetToComboBoxModel } from \"./utilities/changeset-to-combo-box\";\nimport { foldersToComboBoxModel } from \"./utilities/folders-to-combo-box\";\nimport { typesToComboBoxItemModel } from \"./utilities/types-to-combo-box\";\nimport renderTabularGridRows, {\n renderTabularGridColumns\n} from \"../common/tabular-grid-render\";\n\nimport { CSS_SELECTORS as CLASSES, ALL_VALUE } from \"../common/constants\";\nimport ICONS from \"../common/constants\";\n\nconst FILTER_SECONDARY_CONTAINER_ID = \"filters-secondary-container\";\nconst FILTER_SECONDARY_BUTTON_ID = \"filter-toggle-button\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tabular-grid\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\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 /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n /**\n * The ComboBoxModel for \"Local State\" filter.\n */\n #localStatesComboBoxModel: { caption: string; value: StateForFilter }[];\n\n /**\n * Used to determine if pendingItemsCheckedCallback callback has to be\n * called or not. It should be ignored if the grid checkboxes state is\n * changed programmatically, by setting markRow to false once the object\n * has been successfully updated, for example.\n */\n #rowCheckedChangedByTheUser: boolean = true;\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n /**\n * A reference to the tablar grid. Used to call methods.\n */\n #chGridPendingForUpdateEl!: HTMLChTabularGridElement;\n\n // sets\n\n /**\n * A set that holds the id's of the objects that have been updated already.\n */\n @State() alreadyCommitedObjectsIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the ids of all the ignored objects. Used to quickly\n * determine if the selected rows belong to \"ignored\" or not. This\n * information is required for the ContextMenuCallback callback. This set\n * has to be updated on every loadCallback.\n */\n @State() ignoredIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the id's of all the pending objects. Used to quickly\n * determine if the selected rows belong to \"pending\" or \"igonred\". This\n * information is required for the ContextMenuCallback callback. This set\n * has to be updated after every loadCallback.\n */\n @State() pendingIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that stores the marked state of each object cell. This is\n * necessary because filtering the grid causes marked cells to lose\n * their state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>([]);\n @Watch(\"markedObjectsSet\")\n markedObjectsSetChanged(newMarkedObjectsSet: Set<string>) {\n this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;\n }\n\n // maps\n\n /**\n * A map that holds the current update objects states (\"inserted\" |\n * \"modified\" | \"modified-with-conflicts\" | \"deleted\" | \"updating\" |\n * \"update\")\n */\n @State() objectsStatusMap: Map<string, StatusInternal> = new Map();\n @Watch(\"objectsStatusMap\")\n objectsStatusMapChanged(newObjectsStatusMap: Map<string, StatusInternal>) {\n const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(\n ([, state]) => state === \"commiting\"\n );\n\n if (!someObjectIsUpdating) {\n this.commiting = false;\n }\n }\n\n /**\n * A map that holds object messages, after trying to commit ('info' |\n * 'success' | 'warning' | 'error')\n */\n @State() objectsMessagesDataMap: Map<string, MessageData[]> = new Map();\n\n // boolean\n\n /**\n * It holds a boolean indicating if at least one object from the\n * tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * A boolean to indicate if the comments input has error or not.\n */\n @State() commentInputHasError: boolean = false;\n\n /**\n * Set to true when objects are being commited. This helps disabling\n * controls until all objects are done.\n */\n @State() commiting: boolean = false;\n\n /**\n * Hides or shows the filter secondary controls\n */\n @State() filterSecondaryIsHidden = true;\n\n /**\n * Indicates if any of the filter secondary controls have a condition\n * (have a value other than default \"All\"). This changes the filter\n * toggle button icon, from \"filter\" to \"filterWithConditions\".\n */\n @State() filterSecondaryHasConditions = false;\n\n /**\n * Used to display a loader. Set to true when loadCallback is called.\n */\n @State() loading: boolean = true;\n\n /**\n * Used to mark all the grid checkboxes, only on the first render.\n */\n @State() objectsRenderedAlready: boolean = false;\n\n // models\n\n /**\n * changeset options as ComboBoxModel\n */\n @State() changesetsComboBoxModel: ComboBoxModel;\n\n /**\n * categories options as ComboBoxModel\n */\n // @State() categoriesComboBoxModel: ComboBoxModel;\n\n /**\n * Pending objects after \"action\" filter\n */\n @State() pendingObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * Ignored objects after \"action\" filter\n */\n @State() ignoredObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * The ComboBoxModel for \"Types\" filter.\n */\n @State() typesComboBoxModel: ComboBoxModel = [];\n\n /**\n * All objects (\"pending for update\" and \"ignored objects\") before\n * \"state\" filter\n */\n @State() pendingAndIgnored: CommitData = {\n pendingForCommit: [],\n ignoredObjects: []\n };\n @Watch(\"pendingAndIgnored\")\n pendingAndIgnoredChanged() {\n this.#applyClientFilter();\n this.pendingIdsSet.clear();\n this.pendingAndIgnored.pendingForCommit?.forEach(pending => {\n this.pendingIdsSet.add(pending.id);\n });\n this.ignoredIdsSet.clear();\n this.pendingAndIgnored.ignoredObjects?.forEach(ignored => {\n this.ignoredIdsSet.add(ignored.id);\n });\n }\n\n // current values\n\n /**\n * Holds the current value for the commit \"comments\"\n */\n @State() commentsValue: string = \"\";\n\n /**\n * The current search filter value.\n */\n @State() searchValue: string = \"\";\n\n /**\n * Holds the current value for the \"type\" filter\n */\n @State() selectedType: string;\n\n /**\n * Holds the current value for the \"local state\" filter\n */\n @State() selectedState: StateForFilter = ALL_VALUE;\n\n /**\n * Holds the current value for the \"changeset\" filter\n */\n @State() selectedChangeset: string;\n\n /**\n * Holds the current value for the \"folder\" filter\n */\n @State() selectedFolder: string;\n\n /**\n * Holds the current value for the \"category\" filter\n */\n @State() selectedCategory: string;\n\n /**\n * folder options as ComboBoxModel\n */\n @State() foldersComboBoxModel: ComboBoxModel;\n\n // callbacks\n\n /**\n * Invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Invoked when user activates the context menu on any of the grids.\n */\n @Prop() readonly objectsContextMenuCallback!: ContextMenuCallback;\n\n /**\n * Invoked to return the list of data types loaded from file\n * or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Invoked when user clicks in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to return information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Invoked when the user selects rows from the grid\n */\n @Prop() readonly selectCallback: SelectCallback;\n\n // models\n\n /**\n * \"types\" options for the filter.\n */\n @Prop() readonly types: ObjectType[];\n @Watch(\"types\")\n typesChanged(newTypes: ObjectType[]) {\n this.typesComboBoxModel = typesToComboBoxItemModel(newTypes);\n }\n\n /**\n * \"changeset\" options for the filter.\n */\n @Prop() readonly changeset: GxOption[];\n @Watch(\"changeset\")\n changesetChanged(newChangesetOptions: GxOption[]) {\n this.changesetsComboBoxModel =\n changesetToComboBoxModel(newChangesetOptions);\n }\n\n /**\n * \"folder\" options for the filter.\n */\n @Prop() readonly folders: GxOption[];\n @Watch(\"folders\")\n folderChanged(newFolderOptions: GxOption[]) {\n this.foldersComboBoxModel = foldersToComboBoxModel(newFolderOptions);\n }\n\n /**\n * \"category\" options for the filter.\n */\n // @Prop() readonly categories: GxOption[];\n // @Watch(\"categories\")\n // categoryChanged(newCategoryOptions: GxOption[]) {\n // this.categoriesComboBoxModel =\n // categoriesToComboBoxModel(newCategoryOptions);\n // }\n\n // boolean\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill,\n * only when the action is\n */\n @Prop() readonly updatePillAsButton: boolean = false;\n\n /**\n * Information to show in Update From group.\n */\n @Prop() readonly serverDetails: ServerDetails;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Initiate \"actions\" combo box filter\n this.#localStatesComboBoxModel = [\n {\n caption: this.#componentLocale.states.all,\n value: ALL_VALUE\n },\n {\n caption: this.#componentLocale.states.inserted,\n value: \"inserted\"\n },\n {\n caption: this.#componentLocale.states.modified,\n value: \"modified\"\n },\n {\n caption: this.#componentLocale.states.conflicted,\n value: \"conflicted\"\n },\n {\n caption: this.#componentLocale.states.deleted,\n value: \"deleted\"\n }\n ];\n\n // intialize combo-box models\n\n this.typesComboBoxModel = typesToComboBoxItemModel(this.types);\n this.selectedType = this.typesComboBoxModel[0].value;\n\n this.selectedState = this.#localStatesComboBoxModel[0].value;\n\n this.changesetChanged(this.changeset);\n this.selectedChangeset =\n this.changesetsComboBoxModel.length > 0\n ? this.changesetsComboBoxModel[0].value\n : ALL_VALUE;\n\n this.folderChanged(this.folders);\n this.selectedFolder =\n this.foldersComboBoxModel && this.foldersComboBoxModel.length > 0\n ? this.foldersComboBoxModel[0].value\n : ALL_VALUE;\n\n // this.categoryChanged(this.categories);\n // this.selectedCategory =\n // this.categoriesComboBoxModel.length > 0\n // ? this.categoriesComboBoxModel[0].value\n // : ALL_VALUE;\n\n this.#evaluateSecondaryFilterHasConditions();\n }\n\n async componentDidLoad() {\n await this.#loadData();\n }\n\n /**\n * 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 // commit related\n\n #commitCheckedClickedHandler = () => {\n this.#commitObjectsHandler([...this.markedObjectsSet]);\n };\n\n #commitSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n const newobjectsStatusMap = new Map(this.objectsStatusMap);\n newobjectsStatusMap.set(objectId, \"commiting\");\n this.objectsStatusMap = newobjectsStatusMap;\n this.#commitObjectsHandler([objectId]);\n };\n\n #commitObjectsHandler = async (selection: string[]) => {\n if (this.commentsValue.length === 0) {\n // A comment is required to commit.\n this.commentInputHasError = true;\n return;\n }\n this.commentInputHasError = false;\n this.commiting = true;\n\n selection.forEach(itemToUpdate => {\n this.objectsStatusMap.set(itemToUpdate, \"commiting\");\n });\n\n const commitResult = await this.commitCallback(\n selection,\n this.commentsValue\n );\n\n commitResult.forEach(async objectResult => {\n const messages = objectResult.messages;\n if (messages.length) {\n this.objectsMessagesDataMap.set(objectResult.id, objectResult.messages);\n } else {\n // clear messages\n this.objectsMessagesDataMap.delete(objectResult.id);\n }\n if (objectResult.result === \"commited\") {\n this.alreadyCommitedObjectsIdsSet.add(objectResult.id);\n this.objectsStatusMap.set(objectResult.id, \"commited\");\n await this.#chGridPendingForUpdateEl.markRow(objectResult.id, false);\n } else {\n this.objectsStatusMap.set(objectResult.id, \"pending\");\n }\n });\n\n this.commiting = false;\n };\n\n // handlers\n\n #rowMarkingChangedHandler = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const markedRowsIds = event.detail.rowsId;\n this.markedObjectsSet = new Set(\n markedRowsIds.filter(\n markedObjectId => !this.alreadyCommitedObjectsIdsSet.has(markedObjectId)\n )\n );\n\n if (this.#rowCheckedChangedByTheUser) {\n this.#updatePendingCheckedItems(event);\n }\n };\n\n #rowSelectionChangedHandler = async (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedRowsIds = event.detail.rowsId;\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource: SourceType = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n const filteredSelectedRowsIds = clearGridSelection(\n gridSource,\n selectedRowsIds,\n this.pendingIdsSet,\n this.ignoredIdsSet,\n this.#chGridPendingForUpdateEl\n );\n\n await this.selectCallback(gridSource, filteredSelectedRowsIds);\n };\n\n #commentsInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.commentsValue = event.detail as string;\n if (this.commentsValue.length && this.commentInputHasError) {\n // remove error style and tooltip\n this.commentInputHasError = false;\n }\n };\n\n // filter related\n\n #applyClientFilter = () => {\n this.pendingObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.pendingForCommit\n );\n this.ignoredObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.ignoredObjects\n );\n };\n\n #filteredObjects = (objects: ModifiedObjectData[]): ModifiedObjectData[] => {\n let filtered = objects;\n\n // name or description\n if (this.searchValue.length) {\n filtered = filtered.filter(object => {\n const nameFiltered = object.name\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n const descriptionFiltered = object.description\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n return nameFiltered || descriptionFiltered;\n });\n }\n\n // status\n if (this.selectedState && this.selectedState !== ALL_VALUE) {\n filtered = filtered.filter(object => object.state === this.selectedState);\n }\n\n return filtered;\n };\n\n #evaluateSecondaryFilterHasConditions = () => {\n if (\n // this.selectedChangeset !== ALL_VALUE ||\n this.selectedFolder !== ALL_VALUE\n // this.selectedCategory !== ALL_VALUE\n ) {\n this.filterSecondaryHasConditions = true;\n } else {\n this.filterSecondaryHasConditions = false;\n }\n };\n\n #toggleFiltersHandler = () => {\n this.filterSecondaryIsHidden = !this.filterSecondaryIsHidden;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).trim();\n this.#applyClientFilter();\n };\n\n #typeChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedType = event.detail as string;\n this.#loadData();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedState = event.detail as StateForFilter;\n this.#applyClientFilter();\n };\n\n // changeset is a WIP.\n // #changesetChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedChangeset = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #folderChanged = (event: CustomEvent<string> | InputEvent) => {\n this.selectedFolder = event.detail as string;\n this.#loadData();\n this.#evaluateSecondaryFilterHasConditions();\n };\n\n // #categoryChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedCategory = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #onRowContextMenuHandler =\n () => async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n const selectedRowsIds =\n await this.#chGridPendingForUpdateEl.getSelectedRows();\n\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n await this.objectsContextMenuCallback(gridSource, {\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n // other methods\n\n #updatePendingCheckedItems = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n this.#rowCheckedChangedByTheUser = false;\n const addedRowsIds = event.detail.addedRowsId;\n const removedRowsId = event.detail.removedRowsId;\n\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\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.#rowCheckedChangedByTheUser = true;\n };\n\n #setInitialObjectsStatus = (): void => {\n if (this.objectsRenderedAlready) {\n return;\n }\n this.pendingAndIgnored.pendingForCommit.forEach(pendingObject => {\n const status: StatusInternal = \"pending\";\n this.objectsStatusMap.set(pendingObject.id, status);\n });\n this.pendingAndIgnored.ignoredObjects.forEach(ignoredObject => {\n const status: StatusInternal = \"ignored\";\n this.objectsStatusMap.set(ignoredObject.id, status);\n });\n };\n\n #loadData = async (): Promise<void> => {\n this.loading = true;\n this.pendingAndIgnored = await this.loadCallback({\n search: this.searchValue,\n type: this.selectedType,\n changeset: this.selectedChangeset,\n folder: this.selectedFolder,\n category: this.selectedCategory\n });\n\n this.#setInitialObjectsStatus();\n this.loading = false;\n // Is is required to mark/check all objects after loadCallback.\n this.#markPendingObjects();\n };\n\n /**\n * Marks all pending objects that have not been committed yet.\n *\n * Iterates through all pending object IDs and adds them to the marked objects set\n * if they are not already in the committed objects set. This effectively identifies\n * and marks all the pending objects that still need to be processed.\n **/\n #markPendingObjects = () => {\n for (const pendingId of this.pendingIdsSet) {\n if (!this.alreadyCommitedObjectsIdsSet.has(pendingId)) {\n this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);\n }\n }\n };\n\n // render methods\n\n #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 #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 render() {\n const disableControls = this.commiting || this.loading;\n const gridIsEmpty =\n this.pendingObjectsAfterFilter.length === 0 &&\n this.ignoredObjectsAfterFilter.length === 0;\n\n const filterIcon = this.filterSecondaryHasConditions\n ? ICONS.filterWithConditions\n : ICONS.filter;\n\n const commitButtonEnabled =\n this.atLeastOneObjectIsChecked && this.commentsValue.length > 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class={{ [CLASSES.HEADER]: true }}>\n <div\n // header details\n class={{ [CLASSES.HEADER_DETAILS]: true }}\n >\n {headerTitle(this.#componentLocale.commitDetail.title)}\n\n {\n // genexus server\n headerDetail(\n \"link\",\n this.#componentLocale.commitDetail.genexusServer,\n this.serverDetails ? this.serverDetails.serverUrl : \"\",\n this.openServerCallback,\n \"detail__genexus-server\"\n )\n }\n\n {\n // knowledge base\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.knowledgeBase,\n this.serverDetails ? this.serverDetails.kbName : \"\",\n undefined,\n \"detail__knowledge-base\"\n )\n }\n\n {\n // version\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.version,\n this.serverDetails ? this.serverDetails.versionName : \"\",\n undefined,\n \"detail__version\"\n )\n }\n </div>\n </header>\n\n <div class=\"filter-container spacing-body-inline\">\n <div class={{ [CLASSES.FILTER]: true, \"filter-primary\": true }}>\n <ch-edit\n // searchch-edit\n class=\"input filter__combo\"\n disabled={disableControls}\n startImgSrc={ICONS.search}\n accessibleName={\n this.#componentLocale.filter.searchAccessibleName\n }\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>\n\n <ch-combo-box-render\n // types\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.typesComboBoxModel}\n value={this.selectedType}\n accessibleName={this.#componentLocale.filter.typeAccesibleName}\n placeholder={this.#componentLocale.filter.typePlaceholder}\n onInput={this.#typeChangedHandler}\n ></ch-combo-box-render>\n\n <ch-combo-box-render\n // local states\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.#localStatesComboBoxModel}\n value={this.selectedState}\n onInput={this.#stateChangedHandler}\n accessibleName={\n this.#componentLocale.filter.localStateAccesibleName\n }\n placeholder={this.#componentLocale.filter.localStatePlaceholder}\n ></ch-combo-box-render>\n </div>\n\n <button\n // toggle secondary filter button\n id={FILTER_SECONDARY_BUTTON_ID}\n class=\"button-secondary button-icon-only\"\n disabled={disableControls}\n aria-label={this.#componentLocale.filter.secondaryFilterAriaLabel}\n aria-expanded={this.filterSecondaryIsHidden ? \"false\" : \"true\"}\n aria-controls={FILTER_SECONDARY_CONTAINER_ID}\n onClick={this.#toggleFiltersHandler}\n title={this.#componentLocale.filter.secondaryFilterAriaLabel}\n >\n <ch-image class=\"icon-md\" src={filterIcon}></ch-image>\n </button>\n\n <div class=\"buttons-spacer\">\n <button\n // reload button\n class=\"button-secondary button-icon-and-text\"\n disabled={disableControls}\n onClick={this.#loadData}\n >\n <ch-image class=\"icon-md\" src={ICONS.refresh}></ch-image>\n {this.#componentLocale.filter.reload}\n </button>\n\n <button\n // commit button\n class=\"button-primary\"\n disabled={!commitButtonEnabled || disableControls}\n onClick={this.#commitCheckedClickedHandler}\n >\n {this.#componentLocale.filter.commit}\n </button>\n </div>\n\n <div\n // secondary filter\n id={FILTER_SECONDARY_CONTAINER_ID}\n aria-labelledby={FILTER_SECONDARY_BUTTON_ID}\n class={{\n [CLASSES.FILTER]: true,\n \"filter-secondary\": true,\n \"filter-secondary--visible\": !this.filterSecondaryIsHidden\n }}\n inert={this.filterSecondaryIsHidden}\n hidden={this.filterSecondaryIsHidden}\n >\n <div>\n {/* \n // changeset is a WIP.\n <ch-combo-box-render\n // changeset\n class=\"combo-box\"\n disabled={disableControls}\n model={this.changesetsComboBoxModel}\n value={this.selectedChangeset}\n onInput={this.#changesetChangedHandler}\n accessibleName={\n this.#componentLocale.filter.changesetAccesibleName\n }\n placeholder={\n this.#componentLocale.filter.changesetPlaceholder\n }\n ></ch-combo-box-render> */}\n\n <ch-combo-box-render\n // folder\n class=\"combo-box\"\n disabled={disableControls}\n model={this.foldersComboBoxModel}\n value={this.selectedFolder}\n onInput={this.#folderChanged}\n accessibleName={\n this.#componentLocale.filter.folderAccesibleName\n }\n placeholder={this.#componentLocale.filter.folderPlaceholder}\n ></ch-combo-box-render>\n\n {/* <ch-combo-box-render\n // category\n class=\"combo-box\"\n disabled={disableControls}\n model={this.categoriesComboBoxModel}\n value={this.selectedCategory}\n onInput={this.#categoryChangedHandler}\n accessibleName={\n this.#componentLocale.filter.categoryPlaceholder\n }\n placeholder={this.#componentLocale.filter.categoryPlaceholder}\n ></ch-combo-box-render> */}\n </div>\n </div>\n\n <ch-edit\n // commit comments\n class=\"input comments\"\n multiline={true}\n autoGrow={true}\n placeholder={this.#componentLocale.commitCommentPlaceholder}\n onInput={this.#commentsInputHandler}\n ></ch-edit>\n </div>\n\n <div class={CLASSES.MAIN}>\n {!this.loading ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.commiting,\n \"empty-result\": gridIsEmpty\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onSelectionChanged={this.#rowSelectionChangedHandler}\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#onRowContextMenuHandler()}\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridPendingForUpdateEl = el)\n }\n >\n {renderTabularGridColumns(\n [\"action\"],\n gridIsEmpty,\n this.#componentLocale\n )}\n\n {!gridIsEmpty\n ? [\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.pendingCommits}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"pending\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommitedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>,\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.ignoredObjects}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"ignored\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommitedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>\n ]\n : null}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {gridIsEmpty && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={ICONS.filter}\n stateTitle=\"No object matched your filter\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n )}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid>\n ) : (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n </section>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { r as e, c as t, h as r, H as a, a as o } from "./p-97107ecc.js";
2
2
 
3
- import { c as i } from "./p-44e5e972.js";
3
+ import { c as i } from "./p-9a03ac9f.js";
4
4
 
5
5
  import { L as s } from "./p-311eedf3.js";
6
6
 
@@ -157,4 +157,4 @@ const c = class {
157
157
  c.style = n;
158
158
 
159
159
  export { c as gx_ide_bpm_objects_selector };
160
- //# sourceMappingURL=p-3d7ed559.entry.js.map
160
+ //# sourceMappingURL=p-730f0cd3.entry.js.map
@@ -1,6 +1,6 @@
1
1
  import { r as e, c as r, h as t, H as a, a as o } from "./p-97107ecc.js";
2
2
 
3
- import { c as i } from "./p-44e5e972.js";
3
+ import { c as i } from "./p-9a03ac9f.js";
4
4
 
5
5
  import { L as s } from "./p-311eedf3.js";
6
6
 
@@ -106,4 +106,4 @@ const n = class {
106
106
  n.style = l;
107
107
 
108
108
  export { n as gx_ide_bpm_export_xpdl };
109
- //# sourceMappingURL=p-4c37ff28.entry.js.map
109
+ //# sourceMappingURL=p-7836028c.entry.js.map
@@ -2,7 +2,7 @@ import { r as t, h as e, H as s, a as i } from "./p-97107ecc.js";
2
2
 
3
3
  import { g as a } from "./p-401bfc97.js";
4
4
 
5
- import { c as o } from "./p-44e5e972.js";
5
+ import { c as o } from "./p-9a03ac9f.js";
6
6
 
7
7
  import { L as n } from "./p-311eedf3.js";
8
8
 
@@ -1066,4 +1066,4 @@ ut = new WeakMap, f = new WeakSet, S = function _GxIdeImportFromDesign_recursive
1066
1066
  $t.style = c;
1067
1067
 
1068
1068
  export { $t as gx_ide_design_import };
1069
- //# sourceMappingURL=p-f94cb936.entry.js.map
1069
+ //# sourceMappingURL=p-7adb9d1f.entry.js.map
@@ -0,0 +1,222 @@
1
+ import { r as t, c as e, g as a, h as i, H as s, a as r } from "./p-97107ecc.js";
2
+
3
+ import { g as o } from "./p-401bfc97.js";
4
+
5
+ import { c as n } from "./p-9a03ac9f.js";
6
+
7
+ import { L as l } from "./p-311eedf3.js";
8
+
9
+ import { f as c } from "./p-8c15538c.js";
10
+
11
+ const d = ":host{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content 1fr max-content;overflow:auto}.section{display:contents}.header{justify-content:end}.tabular-grid-main{overflow:auto;block-size:100%}.tabular-grid-main ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}";
12
+
13
+ var h = undefined && undefined.__classPrivateFieldGet || function(t, e, a, i) {
14
+ if (a === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
15
+ if (typeof e === "function" ? t !== e || !i : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
16
+ return a === "m" ? i : a === "a" ? i.call(t) : i ? i.value : e.get(t);
17
+ };
18
+
19
+ var u = undefined && undefined.__classPrivateFieldSet || function(t, e, a, i, s) {
20
+ if (i === "m") throw new TypeError("Private method is not writable");
21
+ if (i === "a" && !s) throw new TypeError("Private accessor was defined without a setter");
22
+ if (typeof e === "function" ? t !== e || !s : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
23
+ return i === "a" ? s.call(t, a) : s ? s.value = a : e.set(t, a), a;
24
+ };
25
+
26
+ var m, f, p, b, g, w, y, v, k, x, M;
27
+
28
+ const W = [ "resets/box-sizing", "components/button", "components/edit", "components/radio-group", "components/tabular-grid", "utils/form", "utils/layout", "utils/spacing", "utils/typography" ];
29
+
30
+ const j = o({
31
+ category: "gemini-tools",
32
+ name: "add-circle",
33
+ colorType: "primary"
34
+ });
35
+
36
+ const z = class {
37
+ constructor(s) {
38
+ t(this, s);
39
+ this.componentDidLoadEvent = e(this, "componentDidLoadEvent", 7);
40
+ this.componentDidRenderFirstTime = e(this, "componentDidRenderFirstTime", 7);
41
+ m.set(this, void 0);
42
+ f.set(this, false);
43
+ p.set(this, a(`./gx-ide-assets/team-dev-update-partial-selection/shortcuts.json`));
44
+ b.set(this, void 0);
45
+ g.set(this, (() => {
46
+ this.cancelCallback();
47
+ }));
48
+ w.set(this, (() => {
49
+ if (this.confirmCallback) {
50
+ const t = [];
51
+ this.selection.forEach((e => {
52
+ t.push(e.id);
53
+ }));
54
+ this.confirmCallback(t);
55
+ }
56
+ }));
57
+ y.set(this, (() => {
58
+ this.addCallback().then((t => {
59
+ if ((t === null || t === void 0 ? void 0 : t.length) > 0) {
60
+ this.selection = [ ...this.selection, ...t ];
61
+ this.selectedObjectsIds = [];
62
+ }
63
+ }));
64
+ }));
65
+ v.set(this, (() => {
66
+ h(this, b, "f").addEventListener("selectionChanged", (t => {
67
+ this.selectedObjectsIds = t.detail.rowsId;
68
+ }));
69
+ }));
70
+ k.set(this, (() => {
71
+ this.selection = [];
72
+ }));
73
+ x.set(this, (() => {
74
+ const t = this.selection.filter((t => !this.selectedObjectsIds.includes(t.id)));
75
+ this.selection = t;
76
+ this.selectedObjectsIds = [];
77
+ }));
78
+ M.set(this, (() => i("ch-tabular-grid", {
79
+ allowColumnReorder: false,
80
+ columnResizeMode: "single",
81
+ class: "tabular-grid tabular-grid-main",
82
+ "row-selection-mode": "multiple",
83
+ keyboardNavigationMode: "focus",
84
+ ref: t => u(this, b, t, "f"),
85
+ part: "ch-grid-objects"
86
+ }, i("ch-tabular-grid-columnset", {
87
+ class: "tabular-grid-column-set"
88
+ }, i("ch-tabular-grid-column", {
89
+ columnName: "",
90
+ settingable: false,
91
+ sortable: false,
92
+ size: n.tabularGrid.colSize.minContent,
93
+ class: "tabular-grid-column"
94
+ }), i("ch-tabular-grid-column", {
95
+ columnName: h(this, m, "f").tableHead.name,
96
+ settingable: false,
97
+ size: "1fr",
98
+ class: "tabular-grid-column"
99
+ }), i("ch-tabular-grid-column", {
100
+ columnName: h(this, m, "f").tableHead.type,
101
+ settingable: false,
102
+ size: "minmax(120px,auto)",
103
+ class: "tabular-grid-column"
104
+ }), i("ch-tabular-grid-column", {
105
+ columnName: h(this, m, "f").tableHead.description,
106
+ settingable: false,
107
+ size: "minmax(120px,auto)",
108
+ class: "tabular-grid-column"
109
+ }), i("ch-tabular-grid-column", {
110
+ columnName: h(this, m, "f").tableHead.modifiedOn,
111
+ settingable: false,
112
+ size: n.tabularGrid.colSize.maxContent,
113
+ class: "tabular-grid-column"
114
+ })), this.selection.map((t => i("ch-tabular-grid-row", {
115
+ rowid: t.id,
116
+ key: t.id,
117
+ class: "tabular-grid-row"
118
+ }, i("ch-tabular-grid-cell", {
119
+ class: "tabular-grid-cell"
120
+ }, i("ch-image", {
121
+ src: t.typeIcon,
122
+ class: "icon-md"
123
+ })), i("ch-tabular-grid-cell", {
124
+ class: "tabular-grid-cell"
125
+ }, t.name), i("ch-tabular-grid-cell", {
126
+ class: "tabular-grid-cell"
127
+ }, t.type), i("ch-tabular-grid-cell", {
128
+ class: "tabular-grid-cell"
129
+ }, t.description), i("ch-tabular-grid-cell", {
130
+ class: "tabular-grid-cell"
131
+ }, `${c(t.modifiedOn)}`)))))));
132
+ this.selectedObjectsIds = [];
133
+ this.addCallback = undefined;
134
+ this.cancelCallback = undefined;
135
+ this.confirmCallback = undefined;
136
+ this.selection = [];
137
+ }
138
+ componentDidLoad() {
139
+ h(this, v, "f").call(this);
140
+ }
141
+ componentDidRender() {
142
+ if (!h(this, f, "f")) {
143
+ this.componentDidRenderFirstTime.emit(h(this, m, "f").componentName);
144
+ u(this, f, true, "f");
145
+ }
146
+ }
147
+ async componentWillLoad() {
148
+ u(this, m, await l.getComponentStrings(this.el), "f");
149
+ this.componentDidLoadEvent.emit(true);
150
+ }
151
+ /**
152
+ * Validate necessary data input
153
+ */ async validate() {
154
+ const t = true;
155
+ return t;
156
+ }
157
+ render() {
158
+ const t = !(this.selectedObjectsIds.length > 0);
159
+ return i(s, {
160
+ class: "widget"
161
+ }, i("ch-theme", {
162
+ model: W
163
+ }), i("ch-shortcuts", {
164
+ src: h(this, p, "f")
165
+ }), i("section", {
166
+ class: "section"
167
+ }, i("header", {
168
+ class: "header field-group control-header header header-two-cols spacing-body-block-start spacing-body-inline"
169
+ }, i("div", {
170
+ class: "buttons-spacer"
171
+ }, i("button", {
172
+ // remove selected button
173
+ class: "button-secondary",
174
+ onClick: !t && h(this, x, "f"),
175
+ part: "remove",
176
+ disabled: t
177
+ }, h(this, m, "f").btnRemoveSelectedObjects), i("button", {
178
+ // add button
179
+ class: "button-secondary button-icon-and-text",
180
+ onClick: h(this, y, "f"),
181
+ part: "add"
182
+ }, i("ch-image", {
183
+ class: "icon-sm",
184
+ src: j
185
+ }), h(this, m, "f").btnAddObject))), h(this, M, "f").call(this), i("footer", {
186
+ class: "control-footer control-footer-space-between spacing-body-block-end spacing-body-inline"
187
+ }, i("button", {
188
+ // remove all button
189
+ class: "button-tertiary",
190
+ onClick: h(this, k, "f"),
191
+ disabled: !(this.selection.length > 0),
192
+ part: "clear"
193
+ }, h(this, m, "f").footer.btnRemoveAll), i("div", {
194
+ class: "buttons-spacer"
195
+ }, i("button", {
196
+ // cancel button
197
+ class: "button-secondary",
198
+ onClick: h(this, g, "f"),
199
+ part: "cancel"
200
+ }, h(this, m, "f").footer.btnCancel), i("button", {
201
+ // confirm button
202
+ class: "button-primary",
203
+ onClick: h(this, w, "f"),
204
+ part: "confirm"
205
+ }, h(this, m, "f").footer.btnConfirm)))));
206
+ }
207
+ static get assetsDirs() {
208
+ return [ "gx-ide-assets/team-dev-update-partial-selection" ];
209
+ }
210
+ get el() {
211
+ return r(this);
212
+ }
213
+ };
214
+
215
+ m = new WeakMap, f = new WeakMap, p = new WeakMap, b = new WeakMap, g = new WeakMap,
216
+ w = new WeakMap, y = new WeakMap, v = new WeakMap, k = new WeakMap, x = new WeakMap,
217
+ M = new WeakMap;
218
+
219
+ z.style = d;
220
+
221
+ export { z as gx_ide_team_dev_update_partial_selection };
222
+ //# sourceMappingURL=p-7f091892.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["updatePartialSelectionCss","CSS_BUNDLES","GEMINI_TOOLS_ADD_ICON","getIconPath","category","name","colorType","GxIdeTeamDevUpdatePartialSelection","_GxIdeTeamDevUpdatePartialSelection__componentLocale","set","this","_GxIdeTeamDevUpdatePartialSelection_renderedFirstTime","_GxIdeTeamDevUpdatePartialSelection_shortcutsSrc","getAssetPath","_GxIdeTeamDevUpdatePartialSelection_chGridEl","_GxIdeTeamDevUpdatePartialSelection_cancelHandler","cancelCallback","_GxIdeTeamDevUpdatePartialSelection_confirmHandler","confirmCallback","allRowsIds","selection","forEach","row","push","id","_GxIdeTeamDevUpdatePartialSelection_getObjectsHandler","addCallback","then","items","length","selectedObjectsIds","_GxIdeTeamDevUpdatePartialSelection_listenChanges","__classPrivateFieldGet","addEventListener","ev","detail","rowsId","_GxIdeTeamDevUpdatePartialSelection_removeAllHandler","_GxIdeTeamDevUpdatePartialSelection_removeSelectedObjectsHandler","filter","item","includes","_GxIdeTeamDevUpdatePartialSelection_renderObjects","h","allowColumnReorder","columnResizeMode","class","keyboardNavigationMode","ref","el","__classPrivateFieldSet","part","columnName","settingable","sortable","size","config","tabularGrid","colSize","minContent","tableHead","type","description","modifiedOn","maxContent","map","obj","rowid","key","src","typeIcon","formatDate","componentDidLoad","call","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","validate","isValid","render","buttonRemoveSelectedDisabled","Host","model","onClick","disabled","btnRemoveSelectedObjects","btnAddObject","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 \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n justify-content: end;\n}\n\n.tabular-grid-main {\n overflow: auto;\n block-size: 100%;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-main\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n","// Stencil\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n getAssetPath,\n h\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { formatDate } from \"../../../common/helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/radio-group\",\n \"components/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst GEMINI_TOOLS_ADD_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"add-circle\",\n colorType: \"primary\"\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 #_componentLocale: any;\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/team-dev-update-partial-selection/shortcuts.json`\n );\n\n @Element() el: HTMLGxIdeTeamDevUpdatePartialSelectionElement;\n\n #chGridEl!: HTMLChTabularGridElement;\n\n /**\n * Selected objects in objects table\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * Callback invoked to return a list of new objects to populate objects table.\n */\n @Prop() readonly addCallback!: AddCallback;\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 confirm action is executed passing the selected objects ids.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * Current objects selection in the grid\n */\n @Prop({ mutable: true }) selection: ObjectData[] = [];\n\n /**\n * 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 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 async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\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 #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = (): void => {\n if (this.confirmCallback) {\n const allRowsIds: string[] = [];\n this.selection.forEach(row => {\n allRowsIds.push(row.id);\n });\n\n this.confirmCallback(allRowsIds);\n }\n };\n\n #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 #listenChanges = (): void => {\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n #removeAllHandler = (): void => {\n this.selection = [];\n };\n\n #removeSelectedObjectsHandler = (): void => {\n const selection = this.selection.filter(\n item => !this.selectedObjectsIds.includes(item.id)\n );\n this.selection = selection;\n this.selectedObjectsIds = [];\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n allowColumnReorder={false}\n columnResizeMode=\"single\"\n class=\"tabular-grid tabular-grid-main\"\n row-selection-mode=\"multiple\"\n keyboardNavigationMode=\"focus\"\n ref={(el: HTMLChTabularGridElement) => (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={config.tabularGrid.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=\"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=\"minmax(120px,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=\"minmax(120px,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={config.tabularGrid.colSize.maxContent}\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 {`${formatDate(obj.modifiedOn)}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n render(): void {\n const buttonRemoveSelectedDisabled = !(this.selectedObjectsIds.length > 0);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n <section class=\"section\">\n <header class=\"header field-group control-header header header-two-cols spacing-body-block-start spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // remove selected button\n class=\"button-secondary\"\n onClick={\n !buttonRemoveSelectedDisabled &&\n this.#removeSelectedObjectsHandler\n }\n part=\"remove\"\n disabled={buttonRemoveSelectedDisabled}\n >\n {this.#_componentLocale.btnRemoveSelectedObjects}\n </button>\n\n <button\n // add button\n class=\"button-secondary button-icon-and-text\"\n onClick={this.#getObjectsHandler}\n part=\"add\"\n >\n <ch-image\n class=\"icon-sm\"\n src={GEMINI_TOOLS_ADD_ICON}\n ></ch-image>\n {this.#_componentLocale.btnAddObject}\n </button>\n </div>\n </header>\n {this.#renderObjects()}\n <footer class=\"control-footer control-footer-space-between spacing-body-block-end spacing-body-inline\">\n <button\n // remove all button\n class=\"button-tertiary\"\n onClick={this.#removeAllHandler}\n disabled={!(this.selection.length > 0)}\n part=\"clear\"\n >\n {this.#_componentLocale.footer.btnRemoveAll}\n </button>\n\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"cancel\"\n >\n {this.#_componentLocale.footer.btnCancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.#confirmHandler}\n part=\"confirm\"\n >\n {this.#_componentLocale.footer.btnConfirm}\n </button>\n </div>\n </footer>\n </section>\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":";;;;;;;;;;AAAA,MAAMA,IAA4B;;;;;;;;;;;;;;;;;ACsBlC,MAAMC,IAA8B,EAClC,qBACA,qBACA,mBACA,0BACA,2BACA,cACA,gBACA,iBACA;;AAGF,MAAMC,IAAwBC,EAAY;EACxCC,UAAU;EACVC,MAAM;EACNC,WAAW;;;MAQAC,IAAkC;;;;;IAC7CC,EAAAC,IAAAC,WAAA;IACAC,EAAAF,IAAAC,MAAqB;IACrBE,EAAAH,IAAAC,MAAgBG,EACd;IAKFC,EAAAL,IAAAC,WAAA;IA+DAK,EAAAN,IAAAC,OAAiB;MACfA,KAAKM;AAAgB;IAGvBC,EAAAR,IAAAC,OAAkB;MAChB,IAAIA,KAAKQ,iBAAiB;QACxB,MAAMC,IAAuB;QAC7BT,KAAKU,UAAUC,SAAQC;UACrBH,EAAWI,KAAKD,EAAIE;AAAG;QAGzBd,KAAKQ,gBAAgBC;;;IAIzBM,EAAAhB,IAAAC,OAAqB;MACnBA,KAAKgB,cAAcC,MAAMC;QACvB,KAAIA,MAAK,QAALA,WAAK,aAALA,EAAOC,UAAS,GAAG;UACrBnB,KAAKU,YAAY,KAAIV,KAAKU,cAAcQ;UACxClB,KAAKoB,qBAAqB;;;AAE5B;IAGJC,EAAAtB,IAAAC,OAAiB;MACfsB,EAAAtB,MAAII,GAAA,KAAWmB,iBAAiB,qBAAqBC;QACnDxB,KAAKoB,qBAAqBI,EAAGC,OAAOC;AAAM;AAC1C;IAGJC,EAAA5B,IAAAC,OAAoB;MAClBA,KAAKU,YAAY;AAAE;IAGrBkB,EAAA7B,IAAAC,OAAgC;MAC9B,MAAMU,IAAYV,KAAKU,UAAUmB,QAC/BC,MAAS9B,KAAKoB,mBAAmBW,SAASD,EAAKhB;MAEjDd,KAAKU,YAAYA;MACjBV,KAAKoB,qBAAqB;AAAE;IAG9BY,EAAAjC,IAAAC,OAAiB,MAEbiC,EAAA;MACEC,oBAAoB;MACpBC,kBAAiB;MACjBC,OAAM;MAAgC,sBACnB;MACnBC,wBAAuB;MACvBC,KAAMC,KAAkCC,EAAAxC,MAAII,GAAamC,GAAE;MAC3DE,MAAK;OAELR,EAAA;MAA2BG,OAAM;OAC/BH,EAAA;MACES,YAAW;MACXC,aAAa;MACbC,UAAU;MACVC,MAAMC,EAAOC,YAAYC,QAAQC;MACjCb,OAAM;QAERH,EAAA;MACES,YAAYpB,EAAAtB,MAAIF,GAAA,KAAmBoD,UAAUvD;MAC7CgD,aAAa;MACbE,MAAK;MACLT,OAAM;QAERH,EAAA;MACES,YAAYpB,EAAAtB,MAAIF,GAAA,KAAmBoD,UAAUC;MAC7CR,aAAa;MACbE,MAAK;MACLT,OAAM;QAERH,EAAA;MACES,YAAYpB,EAAAtB,MAAIF,GAAA,KAAmBoD,UAAUE;MAC7CT,aAAa;MACbE,MAAK;MACLT,OAAM;QAERH,EAAA;MACES,YAAYpB,EAAAtB,MAAIF,GAAA,KAAmBoD,UAAUG;MAC7CV,aAAa;MACbE,MAAMC,EAAOC,YAAYC,QAAQM;MACjClB,OAAM;SAGTpC,KAAKU,UAAU6C,KAAKC,KACnBvB,EAAA;MACEwB,OAAOD,EAAI1C;MACX4C,KAAKF,EAAI1C;MACTsB,OAAM;OAENH,EAAA;MAAsBG,OAAM;OAC1BH,EAAA;MAAU0B,KAAKH,EAAII;MAAUxB,OAAM;SAErCH,EAAA;MAAsBG,OAAM;OACzBoB,EAAI7D,OAEPsC,EAAA;MAAsBG,OAAM;OACzBoB,EAAIL,OAEPlB,EAAA;MAAsBG,OAAM;OACzBoB,EAAIJ,cAEPnB,EAAA;MAAsBG,OAAM;OACzB,GAAGyB,EAAWL,EAAIH;8BAnKS;;;;qBAoBW;;EAYnD,gBAAAS;IACExC,EAAAtB,MAAIqB,GAAA,KAAe0C,KAAnB/D;;EAGF,kBAAAgE;IACE,KAAK1C,EAAAtB,MAAIC,GAAA,MAAqB;MAC5BD,KAAKiE,4BAA4BC,KAC/B5C,EAAAtB,MAAIF,GAAA,KAAmBqE;MAEzB3B,EAAAxC,MAAIC,GAAsB,MAAI;;;EAGlC,uBAAMmE;IACJ5B,EAAAxC,MAAIF,SAA2BuE,EAAOC,oBAAoBtE,KAAKuC,KAAG;IAClEvC,KAAKuE,sBAAsBL,KAAK;;;;SAOlC,cAAMM;IACJ,MAAMC,IAAU;IAChB,OAAOA;;EAoHT,MAAAC;IACE,MAAMC,MAAiC3E,KAAKoB,mBAAmBD,SAAS;IACxE,OACEc,EAAC2C,GAAI;MAACxC,OAAM;OACVH,EAAA;MAAU4C,OAAOtF;QACjB0C,EAAA;MAAc0B,KAAKrC,EAAAtB,MAAIE,GAAA;QACvB+B,EAAA;MAASG,OAAM;OACbH,EAAA;MAAQG,OAAM;OACZH,EAAA;MAAKG,OAAM;OACTH,EAAA;;MAEEG,OAAM;MACN0C,UACGH,KACDrD,EAAAtB,MAAI4B,GAAA;MAENa,MAAK;MACLsC,UAAUJ;OAETrD,EAAAtB,MAAIF,GAAA,KAAmBkF,2BAG1B/C,EAAA;;MAEEG,OAAM;MACN0C,SAASxD,EAAAtB,MAAIe,GAAA;MACb0B,MAAK;OAELR,EAAA;MACEG,OAAM;MACNuB,KAAKnE;QAEN8B,EAAAtB,MAAIF,GAAA,KAAmBmF,iBAI7B3D,EAAAtB,MAAIgC,GAAA,KAAe+B,KAAnB/D,OACDiC,EAAA;MAAQG,OAAM;OACZH,EAAA;;MAEEG,OAAM;MACN0C,SAASxD,EAAAtB,MAAI2B,GAAA;MACboD,YAAY/E,KAAKU,UAAUS,SAAS;MACpCsB,MAAK;OAEJnB,EAAAtB,MAAIF,GAAA,KAAmBoF,OAAOC,eAGjClD,EAAA;MAAKG,OAAM;OACTH,EAAA;;MAEEG,OAAM;MACN0C,SAASxD,EAAAtB,MAAIK,GAAA;MACboC,MAAK;OAEJnB,EAAAtB,MAAIF,GAAA,KAAmBoF,OAAOE,YAGjCnD,EAAA;;MAEEG,OAAM;MACN0C,SAASxD,EAAAtB,MAAIO,GAAA;MACbkC,MAAK;OAEJnB,EAAAtB,MAAIF,GAAA,KAAmBoF,OAAOG"}
@@ -21,7 +21,7 @@ const t = {
21
21
  auto: "auto",
22
22
  common: "minmax(100px, 1fr)",
23
23
  commonDouble: "minmax(150px, 2fr)",
24
- description: "250px",
24
+ description: "minmax(300px, 1fr)",
25
25
  serverName: "150px",
26
26
  userName: "150px"
27
27
  }
@@ -48,4 +48,4 @@ const t = {
48
48
  };
49
49
 
50
50
  export { t as c };
51
- //# sourceMappingURL=p-44e5e972.js.map
51
+ //# sourceMappingURL=p-9a03ac9f.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["config","tooltip","gxgMessage","common","type","textAlign","padding","maxWidth","minHeight","gxIdeContainer","slimmerFooter","tabularGrid","colSize","minContent","maxContent","auto","commonDouble","description","serverName","userName","loader","timeout","tooltipSettings","blockAlign","inlineAlign","delay","inputDebounce","headingsClasses","cardRegular","cardSmall","utilityClasses","opacityZero","exactMatch"],"sources":["src/common/config.ts"],"sourcesContent":["import { ChPopoverAlign } from \"@genexus/chameleon-controls-library\";\n\n/* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/\nexport const config = {\n // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.\n tooltip: true,\n gxgMessage: {\n common: {\n type: \"text-regular\",\n textAlign: \"center\",\n padding: \"m\",\n maxWidth: \"250px\",\n minHeight: \"300px\"\n }\n },\n gxIdeContainer: {\n slimmerFooter: true\n },\n tabularGrid: {\n colSize: {\n minContent: \"min-content\",\n maxContent: \"max-content\",\n auto: \"auto\",\n common: \"minmax(100px, 1fr)\",\n commonDouble: \"minmax(150px, 2fr)\",\n description: \"250px\",\n serverName: \"150px\",\n userName: \"150px\"\n }\n },\n loader: {\n /* The amount of milliseconds the loader will display, before abort because of timeout*/\n timeout: 4000\n },\n tooltipSettings: {\n blockAlign: \"outside-start\" as ChPopoverAlign,\n inlineAlign: \"inside-start\" as ChPopoverAlign,\n delay: 200\n },\n /* The amount of milliseconds for any control that supports debounce */\n inputDebounce: 500,\n headingsClasses: {\n cardRegular: \"subtitle-regular-s\",\n cardSmall: \"body-regular-m\"\n },\n utilityClasses: {\n opacityZero: \"opacity-0\",\n exactMatch: \"exact-match\"\n }\n};\n\n/* - - - - - - - - - - - - - - - - \nch-tree-view-render\n- - - - - - - - - - - - - - - - */\nexport const getImagePathTreeViewCallback = (imageSrc: string) =>\n `./assets/icons/${imageSrc}.svg#enabled`;\n"],"mappings":";MAGaA,IAAS;;EAEpBC,SAAS;EACTC,YAAY;IACVC,QAAQ;MACNC,MAAM;MACNC,WAAW;MACXC,SAAS;MACTC,UAAU;MACVC,WAAW;;;EAGfC,gBAAgB;IACdC,eAAe;;EAEjBC,aAAa;IACXC,SAAS;MACPC,YAAY;MACZC,YAAY;MACZC,MAAM;MACNZ,QAAQ;MACRa,cAAc;MACdC,aAAa;MACbC,YAAY;MACZC,UAAU;;;EAGdC,QAAQ;;IAENC,SAAS;;EAEXC,iBAAiB;IACfC,YAAY;IACZC,aAAa;IACbC,OAAO;;;EAGTC,eAAe;EACfC,iBAAiB;IACfC,aAAa;IACbC,WAAW;;EAEbC,gBAAgB;IACdC,aAAa;IACbC,YAAY"}
1
+ {"version":3,"names":["config","tooltip","gxgMessage","common","type","textAlign","padding","maxWidth","minHeight","gxIdeContainer","slimmerFooter","tabularGrid","colSize","minContent","maxContent","auto","commonDouble","description","serverName","userName","loader","timeout","tooltipSettings","blockAlign","inlineAlign","delay","inputDebounce","headingsClasses","cardRegular","cardSmall","utilityClasses","opacityZero","exactMatch"],"sources":["src/common/config.ts"],"sourcesContent":["import { ChPopoverAlign } from \"@genexus/chameleon-controls-library\";\n\n/* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/\nexport const config = {\n // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.\n tooltip: true,\n gxgMessage: {\n common: {\n type: \"text-regular\",\n textAlign: \"center\",\n padding: \"m\",\n maxWidth: \"250px\",\n minHeight: \"300px\"\n }\n },\n gxIdeContainer: {\n slimmerFooter: true\n },\n tabularGrid: {\n colSize: {\n minContent: \"min-content\",\n maxContent: \"max-content\",\n auto: \"auto\",\n common: \"minmax(100px, 1fr)\",\n commonDouble: \"minmax(150px, 2fr)\",\n description: \"minmax(300px, 1fr)\",\n serverName: \"150px\",\n userName: \"150px\"\n }\n },\n loader: {\n /* The amount of milliseconds the loader will display, before abort because of timeout*/\n timeout: 4000\n },\n tooltipSettings: {\n blockAlign: \"outside-start\" as ChPopoverAlign,\n inlineAlign: \"inside-start\" as ChPopoverAlign,\n delay: 200\n },\n /* The amount of milliseconds for any control that supports debounce */\n inputDebounce: 500,\n headingsClasses: {\n cardRegular: \"subtitle-regular-s\",\n cardSmall: \"body-regular-m\"\n },\n utilityClasses: {\n opacityZero: \"opacity-0\",\n exactMatch: \"exact-match\"\n }\n};\n\n/* - - - - - - - - - - - - - - - - \nch-tree-view-render\n- - - - - - - - - - - - - - - - */\nexport const getImagePathTreeViewCallback = (imageSrc: string) =>\n `./assets/icons/${imageSrc}.svg#enabled`;\n"],"mappings":";MAGaA,IAAS;;EAEpBC,SAAS;EACTC,YAAY;IACVC,QAAQ;MACNC,MAAM;MACNC,WAAW;MACXC,SAAS;MACTC,UAAU;MACVC,WAAW;;;EAGfC,gBAAgB;IACdC,eAAe;;EAEjBC,aAAa;IACXC,SAAS;MACPC,YAAY;MACZC,YAAY;MACZC,MAAM;MACNZ,QAAQ;MACRa,cAAc;MACdC,aAAa;MACbC,YAAY;MACZC,UAAU;;;EAGdC,QAAQ;;IAENC,SAAS;;EAEXC,iBAAiB;IACfC,YAAY;IACZC,aAAa;IACbC,OAAO;;;EAGTC,eAAe;EACfC,iBAAiB;IACfC,aAAa;IACbC,WAAW;;EAEbC,gBAAgB;IACdC,aAAa;IACbC,YAAY"}
@@ -2,7 +2,7 @@ import { r as t, g as e, h as s, F as i, H as a, a as n } from "./p-97107ecc.js"
2
2
 
3
3
  import { g as o } from "./p-401bfc97.js";
4
4
 
5
- import { c as r } from "./p-44e5e972.js";
5
+ import { c as r } from "./p-9a03ac9f.js";
6
6
 
7
7
  import { v as h } from "./p-289c3290.js";
8
8
 
@@ -344,4 +344,4 @@ I = new WeakMap, P = new WeakMap, z = new WeakMap;
344
344
  F.style = c;
345
345
 
346
346
  export { F as gx_ide_create_kb_from_server };
347
- //# sourceMappingURL=p-9b1550be.entry.js.map
347
+ //# sourceMappingURL=p-9ad85231.entry.js.map