@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":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","updateCss","CSS_BUNDLES","CHECKBOX_CHECKED_VALUE","CHECKBOX_UNCHECKED_VALUE","DETAIL_LABEL_CLASSES","ADD_ICON","getIconPath","category","colorType","EDITED_ICON","FILTER_ICON","SEARCH_ICON","SUBSTRACT_ICON","WARNING_ICON","ERROR_ICON","SUCCESS_ICON","INFO_ICON","REFRESH_ICON","GxIdeTeamDevUpdate","_GxIdeTeamDevUpdate_componentLocale","set","this","_GxIdeTeamDevUpdate_actionsComboBoxModel","_GxIdeTeamDevUpdate_rowCheckedChangedByTheUser","_GxIdeTeamDevUpdate_chGridPendingForUpdateEl","_GxIdeTeamDevUpdate_updateCheckedClickedHandler","async","__classPrivateFieldGet","_GxIdeTeamDevUpdate_updateObjectsHandler","call","markedObjectsSet","_GxIdeTeamDevUpdate_reloadClickedHandler","_GxIdeTeamDevUpdate_loadData","selection","__classPrivateFieldSet","updating","forEach","itemToUpdate","objectsStatusMap","updateResult","updateCallback","objectResult","messages","length","objectsMessagesDataMap","delete","result","alreadyUpdatedObjectsIdsSet","add","markRow","_GxIdeTeamDevUpdate_renderActionCellContent","action","iconColor","actions","insert","modify","modifyWithConflicts","h","class","type","src","style","backgroundColor","_GxIdeTeamDevUpdate_updateSingleObject","objectId","newobjectsStatusMap","Map","_GxIdeTeamDevUpdate_renderObjectStatus","status","get","updatePillAsButton","update","classes","onClick","_GxIdeTeamDevUpdate_renderRows","objects","pendingObjectsAfterActionFilter","ignoredObjectsAfterActionFilter","object","typeIcon","alreadyUpdated","has","hideCheckbox","marked","key","rowid","ref","el","setAttribute","size","renderObjectTypeWithIcon","description","formatDate","modifiedOn","message","MESSAGE_ICON","text","_GxIdeTeamDevUpdate_rowMarkingChangedHandler","event","markedRowsIds","detail","rowsId","Set","filter","markedObjectId","_GxIdeTeamDevUpdate_updatePendingCheckedItems","addedRowsIds","addedRowsId","removedRowsId","pendingItemCheckedResult","pendingItemsCheckedCallback","itemsChecked","itemsUnchecked","undefined","_GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes","_GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes","_GxIdeTeamDevUpdate_searchInputHandler","searchValue","_GxIdeTeamDevUpdate_actionChangedHandler","selectedAction","_GxIdeTeamDevUpdate_typeChangedHandler","selectedType","_GxIdeTeamDevUpdate_setInitialObjectsStatus","pendingAndIgnored","pendingForUpdate","pendingObject","_a","ignoredObjects","ignoredObject","forceLoad","filters","search","kbProperties","kbPropertiesChecked","loading","clear","loadCallback","_GxIdeTeamDevUpdate_markPendingObjects","pendingId","pendingIdsSet","_GxIdeTeamDevUpdate_applyClientFilter","_GxIdeTeamDevUpdate_onRowContextMenuHandler","ev","preventDefault","stopPropagation","getSelectedRows","selectedRowId","getSelectedCell","rowId","source","filteredSelection","ignoredIdsSet","selectRow","push","contextMenuCallback","clientX","clientY","itemsToToggle","itemsToCheck","itemsToUncheck","_GxIdeTeamDevUpdate_kbPropertiesChangedHandler","markedObjectsSetChanged","newMarkedObjectsSet","atLeastOneObjectIsChecked","objectsStatusMapChanged","newObjectsStatusMap","someObjectIsUpdating","entries","find","state","pendingAndIgnoredChanged","pending","ignored","componentWillLoad","Locale","getComponentStrings","allActions","types","typesComboBoxModel","componentDidLoad","reload","render","enableRichRowSelector","disableControls","gridIsEmpty","Host","model","commitDetail","title","genexusServer","openServerCallback","updateFrom","serverUrl","knowledgeBase","kbName","version","versionName","lastFullUpdate","disabled","accessibleName","searchAccessibleName","placeholder","searchPlaceholder","onInput","debounce","config","inputDebounce","typeAccesibleName","typePlaceholder","actionAccesibleName","actionPlaceholder","checkedValue","keyboardNavigationMode","rowSelectionMode","onRowMarkingChanged","onRowContextMenu","columnId","columnName","columnType","richRowSelector","richRowSelectorMode","settingable","tabularGrid","colSize","isAnimated","stateIconSrc","stateTitle","cancelLabel","loader","loaderTitle","show"],"sources":["src/components/team-dev/version-control/common/object-type-to-combo-box.ts","src/components/team-dev/update/update.scss?tag=gx-ide-team-dev-update&encapsulation=shadow","src/components/team-dev/update/update.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../../components\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\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:host {\n --pill-border-radius: 12px;\n --pill-padding-inline: 8px;\n --pill-padding-block: 2px;\n --pill-font-size: var(--font-size-body-s);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n$header-item-common-inline-padding: 24px;\n$header-item-common-separator-border: 1px solid\n var(--mer-border-color__on-elevation--01);\n\n%header-item-common {\n padding-inline: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-start {\n padding-inline-end: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-end {\n padding-inline-start: $header-item-common-inline-padding;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr max-content;\n}\n\n// header detail\n.header__detail {\n display: grid;\n row-gap: var(--mer-spacing--md);\n grid-auto-columns: max-content;\n grid-auto-rows: max-content;\n grid-template-areas:\n \"detail-heading-gx . . .\"\n \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\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-item-common-start;\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n }\n}\n.detail__link {\n align-items: start;\n color: var(--mer-text__primary);\n text-decoration: underline;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-item-common;\n}\n.detail__version {\n grid-area: detail-version;\n @extend %header-item-common;\n}\n.detail__last-full-update {\n grid-area: detail-last-full-update;\n @extend %header-item-common-end;\n}\n\n// filter\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n}\n.filter {\n display: grid;\n margin-block-start: var(--mer-spacing--lg);\n grid-template-areas: \"filter-search filter-types filter-actions filter-kb-properties filter-buttons\";\n grid-template-columns: 200px 200px 200px max-content 1fr;\n gap: 12px;\n}\n@container (max-width: 1100px) {\n .filter-container > .filter {\n grid-template-columns: 200px 200px 200px 1fr;\n grid-template-areas:\n \"filter-search filter-types filter-actions filter-buttons\"\n \"filter-kb-properties . . .\";\n grid-auto-rows: max-content;\n }\n}\n@container (max-width: 900px) {\n .filter-container > .filter {\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas:\n \"filter-search filter-types filter-actions\"\n \"filter-kb-properties filter-buttons filter-buttons\";\n grid-auto-rows: max-content;\n }\n}\n.filter__search {\n grid-area: filter-search;\n}\n.filter__types {\n grid-area: filter-types;\n}\n.filter__actions {\n grid-area: filter-actions;\n}\n.filter__kb-properties {\n grid-area: filter-kb-properties;\n}\n.filter__buttons {\n margin-inline-start: auto;\n grid-area: filter-buttons;\n}\n\n// main\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.messages-list {\n margin: 0;\n padding: 0;\n list-style: none;\n max-inline-size: 800px;\n padding: 8px 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--3xs);\n}\n.message-description {\n line-height: 1.5; // WA. Line height looks too tight.\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.message-icon {\n flex-shrink: 0;\n}\n\n.tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\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: 200px;\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\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n background-size: contain; //force icon fit container\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n &:hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n }\n &:active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n }\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n // gap not required since buttons are tertiary.\n // extra space perceived.\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions {\n // Butons are center by default, but design dictates start alignemnt\n > button {\n justify-content: start;\n }\n}\n\n// These static type of pills do not exist on Mercury yet.\n// They should be defined on Mercury. The actual pills on Mercury\n// are combo-boxes. Not what we need for this case.\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\n\n background-color: var(--pill-background-color);\n color: var(--pill-color);\n border: 1px solid var(--pill-border-color);\n inline-size: 100%;\n padding: var(--pill-padding-block) var(--pill-padding-inline);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--pill-border-radius);\n position: relative;\n font-weight: var(--font-weight-semi-bold);\n\n &--update,\n &--pending {\n --pill-background-color: var();\n --pill-color: var(--mer-color__neutral-gray--400);\n --pill-border-color: var();\n }\n &--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n }\n &--ignored {\n --pill-background-color: var(--mer-surface__elevation--02);\n --pill-color: var(--mer-text__on-disabled);\n --pill-border-color: var(--mer-border-color__primary--disabled);\n }\n &--pending {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--warning {\n --pill-background-color: var(--mer-color__tinted-yellow--5);\n --pill-color: var(--mer-border-color__warning);\n --pill-border-color: var(--mer-color__tinted-yellow--60);\n }\n &--error {\n --pill-background-color: var(--mer-color__tinted-red--5);\n --pill-color: var(--mer-border-color__error);\n --pill-border-color: var(--mer-color__tinted-red--60);\n }\n &--updated {\n --pill-background-color: var(--mer-color__tinted-green--5);\n --pill-color: var(--mer-border-color__success);\n --pill-border-color: var(--mer-color__tinted-green--60);\n }\n &--transitioning {\n // used to hide the text, before updating the caption (smooth transtion)\n --pill-color: transparent;\n }\n}\n.updating-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\n $size: 14px;\n --status-circle-color: transparent;\n --status-circle-size: $size;\n --status-circle-inset-inline-start: 14px;\n --pill-color: var(--mer-border-color__primary);\n &::before {\n display: inline-block;\n content: \"\";\n\n @include spinner(\n $size,\n var(--mer-color__primary--300),\n var(--mer-color__tinted-primary--50)\n );\n }\n}\n.tabular-grid .button-secondary {\n --control__padding-block: var(--pill-padding-block);\n --control__padding-inline: var(--pill-padding-inline);\n font-size: inherit;\n font-weight: inherit;\n /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n --grid-cell__padding-block: 4px;\n align-items: center;\n justify-content: center;\n\n // --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n pointer-events: none;\n opacity: 0.5;\n}\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n --grid-cell__padding-inline: 0;\n --grid-cell__padding-block: 0;\n}\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n block-size: 100%;\n display: block;\n background-size: 14px;\n padding-inline: 16px;\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n visibility: hidden;\n}\n\n.tabular-grid-row-actions::part(window) {\n background-color: var(--mer-surface__elevation--02) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n min-inline-size: 200px;\n}\n\n// - - - - - - - - - - - - - -\n// END OF WA\n// - - - - - - - - - - - - - -\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n JSX,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { renderObjectTypeWithIcon } from \"../common/utilities\";\nimport { formatDate } from \"../../../common/helpers\";\nimport {\n ContextMenuInfo,\n ItemsCheckedResult,\n ItemsCheckedState,\n ObjectType\n} from \"../../../common/types\";\nimport { config } from \"../../../common/config\";\nimport { mapObjectTypeToComboBoxItemModel } from \"../version-control/common/object-type-to-combo-box\";\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\nconst CHECKBOX_CHECKED_VALUE = \"true\";\nconst CHECKBOX_UNCHECKED_VALUE = \"false\";\n\nconst DETAIL_LABEL_CLASSES = \"detail__label body-semi-bold-s\";\n\n// icons\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n});\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\nconst SUBSTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n});\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\nconst SUCCESS_ICON = getIconPath({\n category: \"system\",\n name: \"check \",\n colorType: \"success\"\n});\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-elevation\"\n});\nconst REFRESH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-update\",\n styleUrl: \"update.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-update\"]\n})\nexport class GxIdeTeamDevUpdate {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #actionsComboBoxModel: { caption: string; value: ActionForFilter }[];\n\n /**\n * Used to determine if pendingItemsCheckedCallback callback has to be called or not.\n * It should be ignored if the grid checkboxes state is changed programmatically, by\n * setting markRow to false once the object has been successfully updated, for example.\n */\n #rowCheckedChangedByTheUser: boolean = true;\n\n @Element() el: HTMLGxIdeTeamDevBringChangesElement;\n\n #chGridPendingForUpdateEl!: HTMLChTabularGridElement;\n\n // - - - - - - - - - - - - -\n // States Bring Changes\n // - - - - - - - - - - - - -\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * True while commitObjects hasn't been loaded or is empty. Used to display a loader.\n */\n @State() loading: boolean = true;\n\n /**\n * The current search filter value\n */\n @State() menuContextAction: Action;\n\n /**\n * The current search filter value\n */\n @State() searchValue: string = \"\";\n\n /**\n * The current state filter value\n */\n @State() selectedAction: ActionForFilter = \"all-actions\";\n\n /**\n * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose 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 /**\n * A set that holds the id's of the objects that have been updated already.\n */\n @State() alreadyUpdatedObjectsIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the id's of all the pending objects. Used to quickly determine if the selected rows belong\n * to \"pending\" or not. This information is required for the ContextMenuCallback callback. This set has to be updated\n * on every loadCallback.\n */\n @State() pendingIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the id's of all the ignored objects. Used to quickly determine if the selected rows belong\n * to \"ignored\" or not. This information is required for the ContextMenuCallback callback. This set has to be updated\n * on every loadCallback.\n */\n @State() ignoredIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A map that holds object messages, after trying to update ('info' | ‘success’ | 'warning' | 'error')\n */\n @State() objectsMessagesDataMap: Map<string, MessageData[]> = new Map();\n\n /**\n * Set to true when objects are being mered. This helps disabling controls until all objects are done.\n */\n @State() updating: boolean = false;\n\n // - - - - - - - - - - - - -\n // State Update\n // - - - - - - - - - - - - -\n\n /**\n * The \"KB Properties\" checkbox value\n */\n @State() kbPropertiesChecked: boolean = false;\n\n /**\n * The combobox model for the types filter.\n */\n @State() typesComboBoxModel: ComboBoxModel;\n\n /**\n * The selected type\n */\n @State() selectedType: string;\n\n /**\n * A map that holds the current update objects states (\"inserted\" | \"modified\" | \"modified-with-conflicts\" | \"deleted\" | \"updating\" | \"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 === \"updating\"\n );\n\n if (!someObjectIsUpdating) {\n this.updating = false;\n }\n }\n\n // - - - - - - - - - - - - -\n // Properties Bring Changes\n // - - - - - - - - - - - - -\n\n /**\n * Callback invoked when user activates the context menu on any of the grids.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * All objects (\"pending for update\" and \"ignored objects\") before \"state\" filter\n */\n @State() pendingAndIgnored: UpdateData = {\n pendingForUpdate: [],\n ignoredObjects: []\n };\n @Watch(\"pendingAndIgnored\")\n pendingAndIgnoredChanged() {\n this.#applyClientFilter();\n this.pendingIdsSet.clear();\n this.pendingAndIgnored.pendingForUpdate.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 /**\n * Pending objects after \"action\" filter\n */\n @State() pendingObjectsAfterActionFilter: ModifiedObject[] = [];\n\n /**\n * Ignored objects after \"action\" filter\n */\n @State() ignoredObjectsAfterActionFilter: ModifiedObject[] = [];\n\n /**\n * Callback invoked to return the list of data types loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked to return information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Possible values for type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill, only when the action is\n */\n @Prop() readonly updatePillAsButton: boolean = false;\n\n // - - - - - - - - - - - - -\n // Properties Update\n // - - - - - - - - - - - - -\n\n /**\n * Callback invoked when the update process is to be started (’Update’ button).\n */\n @Prop() readonly updateCallback!: UpdateCallback;\n\n /**\n * Callback invoked when user clicks in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * Information to show in Update From group.\n */\n @Prop() readonly updateFrom: UpdateFromData;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Initiate \"actions\" combo box filter\n this.#actionsComboBoxModel = [\n {\n caption: this.#componentLocale.actions.allActions,\n value: \"all-actions\"\n },\n {\n caption: this.#componentLocale.actions.insert,\n value: \"inserted\"\n },\n {\n caption: this.#componentLocale.actions.modify,\n value: \"modified\"\n },\n {\n caption: this.#componentLocale.actions.modifyWithConflicts,\n value: \"modified-with-conflicts\"\n },\n {\n caption: this.#componentLocale.actions.delete,\n value: \"deleted\"\n }\n ];\n\n // Set type initial value\n this.selectedType = this.types[0]?.id;\n\n this.typesComboBoxModel = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n await this.#loadData(true);\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(true);\n }\n\n #updateCheckedClickedHandler = async () => {\n this.#updateObjectsHandler([...this.markedObjectsSet]);\n };\n\n #reloadClickedHandler = async () => {\n this.#loadData(true);\n };\n\n #updateObjectsHandler = async (selection: string[]) => {\n this.#rowCheckedChangedByTheUser = false;\n this.updating = true;\n\n selection.forEach(itemToUpdate => {\n this.objectsStatusMap.set(itemToUpdate, \"updating\");\n });\n\n const updateResult = await this.updateCallback(selection);\n updateResult.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 === \"updated\") {\n this.alreadyUpdatedObjectsIdsSet.add(objectResult.id);\n this.objectsStatusMap.set(objectResult.id, \"updated\");\n await this.#chGridPendingForUpdateEl.markRow(objectResult.id, false);\n } else {\n this.objectsStatusMap.set(objectResult.id, \"pending\");\n }\n });\n this.updating = false;\n };\n\n #renderActionCellContent = (\n action: Action\n ): JSX.Element[] | null | string => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (action === \"deleted\") {\n icon = SUBSTRACT_ICON;\n caption = this.#componentLocale.actions.delete;\n iconColor = \"--mer-icon__error\";\n } else if (action === \"inserted\") {\n icon = ADD_ICON;\n caption = this.#componentLocale.actions.insert;\n iconColor = \"--mer-icon__success\";\n } else if (action === \"modified\") {\n icon = EDITED_ICON;\n caption = this.#componentLocale.actions.modify;\n iconColor = \"--mer-icon__warning\";\n } else if (action === \"modified-with-conflicts\") {\n icon = WARNING_ICON;\n caption = this.#componentLocale.actions.modifyWithConflicts;\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\n #updateSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n const newobjectsStatusMap = new Map(this.objectsStatusMap);\n newobjectsStatusMap.set(objectId, \"updating\");\n this.objectsStatusMap = newobjectsStatusMap;\n this.#updateObjectsHandler([objectId]);\n };\n\n #renderObjectStatus = (objectId: string): JSX.Element[] => {\n const status = this.objectsStatusMap.get(objectId);\n\n const caption =\n status === \"pending\" && this.updatePillAsButton\n ? this.#componentLocale.status.update\n : this.#componentLocale.status[status];\n if (status === \"updating\") {\n return <span class=\"updating-spinner-caption\">{caption}</span>;\n }\n const classes = `pill pill--${status}`;\n if (this.updatePillAsButton && status === \"pending\") {\n return (\n <button\n class=\"button-secondary pill pill--update\"\n onClick={this.#updateSingleObject(objectId)}\n >\n {caption}\n </button>\n );\n } else {\n return <span class={classes}>{caption}</span>;\n }\n };\n\n #renderRows = (type: UpdateSourceType): JSX.Element[] => {\n let objects: ModifiedObject[];\n if (type === \"pending\") {\n objects = this.pendingObjectsAfterActionFilter;\n } else if (type === \"ignored\") {\n objects = this.ignoredObjectsAfterActionFilter;\n }\n\n return objects.map(object => {\n const objectType: ObjectType = {\n id: object.id,\n icon: object.typeIcon,\n name: object.name\n };\n\n const alreadyUpdated = this.alreadyUpdatedObjectsIdsSet.has(object.id);\n const hideCheckbox = alreadyUpdated || type === \"ignored\";\n\n const marked = this.markedObjectsSet.has(object.id);\n\n const messages = this.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) =>\n marked && el?.setAttribute(\"marked\", \"true\")\n }\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 {object.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(objectType)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {object.description}\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 {this.#renderActionCellContent(object.action)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {this.#renderObjectStatus(object.id)}\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 = ERROR_ICON;\n } else if (message.type === \"warning\") {\n MESSAGE_ICON = WARNING_ICON;\n } else if (message.type === \"success\") {\n MESSAGE_ICON = SUCCESS_ICON;\n } else {\n // info\n MESSAGE_ICON = INFO_ICON;\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\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.alreadyUpdatedObjectsIdsSet.has(markedObjectId)\n )\n );\n\n if (this.#rowCheckedChangedByTheUser) {\n this.#updatePendingCheckedItems(event);\n }\n };\n\n #updatePendingCheckedItems = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\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 };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = event.detail as string;\n this.#loadData();\n };\n\n // Local Methods Update\n\n #actionChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedAction = event.detail as ActionForFilter;\n this.#loadData();\n };\n\n #typeChangedHandler = async (event: CustomEvent<string> | InputEvent) => {\n this.selectedType = event.detail as string;\n this.#loadData();\n };\n\n #setInitialObjectsStatus = (): void => {\n this.pendingAndIgnored.pendingForUpdate.forEach(pendingObject => {\n const status: StatusInternal =\n (pendingObject.status as Status) ?? \"pending\";\n\n this.objectsStatusMap.set(pendingObject.id, status);\n if (status === \"updated\") {\n this.alreadyUpdatedObjectsIdsSet.add(pendingObject.id);\n }\n });\n this.pendingAndIgnored.ignoredObjects.forEach(ignoredObject => {\n const status: StatusInternal =\n (ignoredObject.status as Status) ?? \"ignored\";\n this.objectsStatusMap.set(ignoredObject.id, status);\n });\n };\n\n #loadData = async (forceLoad: boolean = false): Promise<void> => {\n const filters: FiltersData = {\n search: this.searchValue,\n type: this.selectedType,\n kbProperties: this.kbPropertiesChecked,\n action: this.selectedAction\n };\n this.loading = true;\n this.objectsMessagesDataMap.clear();\n\n this.pendingAndIgnored = await this.loadCallback(filters, forceLoad);\n this.#setInitialObjectsStatus();\n\n this.loading = false;\n\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.alreadyUpdatedObjectsIdsSet.has(pendingId)) {\n this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);\n }\n }\n };\n\n #applyClientFilter = () => {\n // this.pendingObjectsAfterActionFilter = this.#filteredObjects(\n // this.pendingAndIgnored.pendingForUpdate\n // );\n this.pendingObjectsAfterActionFilter =\n this.pendingAndIgnored.pendingForUpdate;\n // this.ignoredObjectsAfterActionFilter = this.#filteredObjects(\n // this.pendingAndIgnored.ignoredObjects\n // );\n this.ignoredObjectsAfterActionFilter =\n this.pendingAndIgnored.ignoredObjects;\n };\n\n // #filteredObjects = (objects: ModifiedObject[]): ModifiedObject[] => {\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 // return filtered;\n // };\n\n #onRowContextMenuHandler =\n () => async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n const selection = await this.#chGridPendingForUpdateEl.getSelectedRows();\n\n const selectedRowId = (\n await this.#chGridPendingForUpdateEl.getSelectedCell()\n ).rowId;\n\n const source: UpdateSourceType = this.pendingIdsSet.has(selectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n let filteredSelection: string[] = [];\n // remove selected rows from the other source, if any.\n if (selection.length > 1 && source === \"pending\") {\n selection.forEach(async selectedRowId => {\n if (this.ignoredIdsSet.has(selectedRowId)) {\n await this.#chGridPendingForUpdateEl.selectRow(\n selectedRowId,\n false\n );\n } else {\n filteredSelection.push(selectedRowId);\n }\n });\n } else if (selection.length > 1 && source === \"ignored\") {\n selection.forEach(async selectedRowId => {\n if (this.pendingIdsSet.has(selectedRowId)) {\n await this.#chGridPendingForUpdateEl.selectRow(\n selectedRowId,\n false\n );\n } else {\n filteredSelection.push(selectedRowId);\n }\n });\n } else {\n filteredSelection = selection;\n }\n\n await this.contextMenuCallback(source, {\n selection: filteredSelection,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\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 #kbPropertiesChangedHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.kbPropertiesChecked = event.detail === CHECKBOX_CHECKED_VALUE;\n this.#loadData(true);\n };\n\n render() {\n const enableRichRowSelector = true;\n const disableControls = this.updating || this.loading;\n const gridIsEmpty =\n this.pendingObjectsAfterActionFilter.length === 0 &&\n this.ignoredObjectsAfterActionFilter.length === 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body-inline spacing-body-block-start\">\n <div\n // header details\n class=\"header__detail header__detail-1\"\n >\n <p class=\"detail__heading-genexus-server subtitle-semi-bold-s\">\n {this.#componentLocale.commitDetail.title}\n </p>\n <div\n // genexus server\n class=\"detail__genexus-server field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.genexusServer}\n </span>\n <button\n class=\"detail__link body-regular-s\"\n onClick={this.openServerCallback}\n >\n {this.updateFrom ? this.updateFrom.serverUrl : \"\"}\n </button>\n </div>\n\n <div\n // knowledge base\n class=\"detail__knowledge-base field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.knowledgeBase}\n </span>\n <p class=\"body-regular-s\">\n {this.updateFrom ? this.updateFrom.kbName : \"\"}\n </p>\n </div>\n\n <div\n // version\n class=\"detail__version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.version}\n </span>\n <p class=\"body-regular-s\">\n {this.updateFrom ? this.updateFrom.versionName : \"\"}\n </p>\n </div>\n\n <div\n // last full update\n class=\"detail__last-full-update field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.lastFullUpdate}\n </span>\n <p class=\"body-regular-s\">\n {formatDate(this.updateFrom.lastFullUpdate)}\n </p>\n </div>\n </div>\n </header>\n\n <div class=\"filter-container spacing-body-inline\">\n <div class=\"filter\">\n <ch-edit\n // search\n class=\"input filter__search\"\n disabled={disableControls}\n startImgSrc={SEARCH_ICON}\n accessibleName={\n this.#componentLocale.filter.searchAccessibleName\n }\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n debounce={config.inputDebounce}\n ></ch-edit>\n\n <ch-combo-box-render\n // types\n class=\"combo-box filter__types\"\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 // actions\n class=\"combo-box filter__actions\"\n disabled={disableControls}\n model={this.#actionsComboBoxModel}\n value={this.selectedAction}\n onInput={this.#actionChangedHandler}\n accessibleName={\n this.#componentLocale.filter.actionAccesibleName\n }\n placeholder={this.#componentLocale.filter.actionPlaceholder}\n ></ch-combo-box-render>\n\n <ch-checkbox\n // kb properties\n class=\"checkbox filter__kb-properties\"\n caption={this.#componentLocale.filter.kbProperties}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n value={CHECKBOX_UNCHECKED_VALUE}\n onInput={this.#kbPropertiesChangedHandler}\n disabled={disableControls}\n />\n\n <div class=\"buttons-spacer filter__buttons\">\n <button\n // reload button\n class=\"button-secondary button-icon-and-text\"\n disabled={disableControls}\n onClick={this.#reloadClickedHandler}\n >\n <ch-image class=\"icon-md\" src={REFRESH_ICON}></ch-image>\n {this.#componentLocale.filter.reload}\n </button>\n <button\n // update button\n class=\"button-primary button-update\"\n disabled={!this.atLeastOneObjectIsChecked || disableControls}\n onClick={this.#updateCheckedClickedHandler}\n >\n {this.#componentLocale.filter.update}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"main spacing-body\">\n {!this.loading ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.updating,\n \"empty-result\": gridIsEmpty\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#onRowContextMenuHandler()}\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridPendingForUpdateEl = el)\n }\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"name\"\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={enableRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"type\"\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"description\"\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"modified-on\"\n columnName={this.#componentLocale.objects.modifiedOn}\n settingable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId=\"action\"\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n // size of this column should the enough for the largest pill, and no more.\n // this prevents layout shifts when pills state changes.\n class=\"tabular-grid-column\"\n columnId=\"status\"\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n size=\"100px\"\n />\n </ch-tabular-grid-columnset>\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.pending}\n </ch-tabular-grid-rowset-legend>\n {this.#renderRows(\"pending\")}\n </ch-tabular-grid-rowset>,\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.ignored}\n </ch-tabular-grid-rowset-legend>\n {this.#renderRows(\"ignored\")}\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={FILTER_ICON}\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\n// - - - - - - - - - - - - -\n// Types from Update\n// - - - - - - - - - - - - -\n\nexport type Status = \"pending\" | \"updated\" | \"ignored\";\n\nexport type StatusInternal = Status | \"updating\" | \"ignored\";\n\nexport type Action =\n | \"inserted\"\n | \"modified\"\n | \"modified-with-conflicts\"\n | \"deleted\";\n\ntype ActionForFilter = Action | \"all-actions\";\n\nexport type ContextMenuCallback = (\n source: UpdateSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type PendingItemsCheckedCallback = (\n pendingItemsCheckedState: ItemsCheckedState\n) => Promise<ItemsCheckedResult | undefined>;\n\nexport type UpdateSourceType = \"pending\" | \"ignored\";\n\nexport type LoadCallback = (\n filters: FiltersData,\n forceLoad: boolean\n) => Promise<UpdateData>;\n\nexport interface ModifiedObject {\n id: string;\n typeIcon: string;\n action?: Action;\n name: string;\n type: string;\n description?: string;\n modifiedOn?: Date;\n status?: Status;\n}\nexport interface UpdateData {\n pendingForUpdate: ModifiedObject[];\n ignoredObjects: ModifiedObject[];\n}\n\nexport interface FiltersData {\n search: string;\n type: string;\n kbProperties: boolean;\n action: ActionForFilter;\n}\n\nexport interface UpdateFromData {\n serverUrl: string;\n kbName: string;\n versionName: string;\n lastFullUpdate: Date;\n}\n\nexport type UpdateCallback = (\n selection: string[]\n) => Promise<UpdateResultData[]>;\n\nexport interface UpdateResultData {\n id: string;\n result: Status;\n messages: MessageData[];\n}\n\nexport interface MessageData {\n type: \"info\" | \"success\" | \"warning\" | \"error\";\n text: string;\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { r as t, h as i, H as e, a as s } from "./p-97107ecc.js";
2
2
 
3
- import { c as n } from "./p-44e5e972.js";
3
+ import { c as n } from "./p-9a03ac9f.js";
4
4
 
5
5
  import { L as o } from "./p-311eedf3.js";
6
6
 
@@ -214,4 +214,4 @@ y = new WeakMap, k = new WeakMap, M = new WeakMap, W = new WeakMap;
214
214
  E.style = l;
215
215
 
216
216
  export { E as gx_ide_curl_inspector };
217
- //# sourceMappingURL=p-56308ae7.entry.js.map
217
+ //# sourceMappingURL=p-443fc479.entry.js.map
@@ -2,7 +2,7 @@ import { r as e, c as r, h as t, H as o, a } from "./p-97107ecc.js";
2
2
 
3
3
  import { L as i } from "./p-311eedf3.js";
4
4
 
5
- import { c as s } from "./p-44e5e972.js";
5
+ import { c as s } from "./p-9a03ac9f.js";
6
6
 
7
7
  import { r as l } from "./p-790a3088.js";
8
8
 
@@ -97,4 +97,4 @@ const g = class {
97
97
  g.style = n;
98
98
 
99
99
  export { g as gx_ide_team_dev_select_recent_comment };
100
- //# sourceMappingURL=p-68ff4ac9.entry.js.map
100
+ //# sourceMappingURL=p-4ef96726.entry.js.map
@@ -2,13 +2,13 @@ import { r as t, h as i, H as e, a } from "./p-97107ecc.js";
2
2
 
3
3
  import { g as s } 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 { f as l } from "./p-8c15538c.js";
8
8
 
9
9
  import { L as n } from "./p-311eedf3.js";
10
10
 
11
- import { r as o, a as c } from "./p-2ee77587.js";
11
+ import { r as o, a as c } from "./p-a24571ca.js";
12
12
 
13
13
  const mapObjectTypeToComboBoxItemModel = t => t.map((t => ({
14
14
  value: t.id,
@@ -481,4 +481,4 @@ z = new WeakMap, T = new WeakMap, E = new WeakMap, F = new WeakMap;
481
481
  $.style = d;
482
482
 
483
483
  export { $ as gx_ide_team_dev_history };
484
- //# sourceMappingURL=p-a5b30dc7.entry.js.map
484
+ //# sourceMappingURL=p-585fac4a.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","revisionId","historyDetail","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","selectedRevisionId","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","selectedVersionId","versionsListChanged","newVersionsList","versions","hasActiveVersion","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(newSelectedVersionId: string) {\n this.selectedVersionId = newSelectedVersionId;\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (versionId: string): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\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 {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\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 {renderObjectTypeWithIcon(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 {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":";;;;;;;;;;;;AAKO,MAAMA,mCACXC,KAEAA,EAAgBC,KAAIC,MAAU;EAC5BC,OAAOD,EAAWE;EAClBC,SAASH,EAAWI;EACpBC,aAAaL,EAAWM;;;AAW5B,MAAMC,gBAAiBC;EACrB,IAAIA,EAAKC,QAAQ;IACf,OAAO;;EAET,IAAIC,MAAMC,QAAQH,EAAKI,QAAQ;IAC7B,OAAOJ,EAAKI,MAAMC,KAAKN;;EAEzB,OAAO;AAAK;;AAGP,MAAMO,yBAA0BC,KAC9BA,EAAaF,KAAKN;;ACjC3B,MAAMS,IAAa;;;;;;;;;;;;;;;;;ACqBnB,MAAMC,IAA8B,EAClC,qBACA,oBACA,gBACA,iBACA,oBACA,uBACA,2BACA,wBACA;;AAGF,MAAMC,IAAsBC,EAAY;EACtCC,UAAU;EACVhB,MAAM;EACNiB,WAAW;;;AAGb,MAAMC,IAAcH,EAAY;EAC9BC,UAAU;EACVhB,MAAM;EACNiB,WAAW;;;AAGb,MAAME,IAAaJ,EAAY;EAC7BC,UAAU;EACVhB,MAAM;EACNiB,WAAW;;;AAGb,MAAMG,IAAcL,EAAY;EAC9BC,UAAU;EACVhB,MAAM;EACNiB,WAAW;;;MASAI,IAAmB;;;IAC9BC,EAAAC,IAAAC,WAAA;IAEAC,EAAAF,IAAAC,MAA8B;IAI9BE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,WAAA;IACAI,EAAAL,IAAAC,WAAA;IACAK,EAAAN,IAAAC,WAAA;IACAM,EAAAP,IAAAC,WAAA;IACAO,EAAAR,IAAAC,WAAA;IACAQ,EAAAT,IAAAC,WAAA;IACAS,EAAAV,IAAAC,WAAA;IA8HAU,EAAAX,IAAAC,OAAyBW,MAAOC;;MAC9BZ,KAAKa,UAAU;MAEf,MAAMC,IAAuB;QAC3BC,QAAQC,EAAAhB,MAAII,GAAA,KAAW/B,QAAQ2C,EAAAhB,MAAII,GAAA,KAAW/B,QAAQ;QACtD4C,MAAMD,EAAAhB,MAAIE,GAAA,KAAS7B,QAAQ,IAAI6C,KAAKF,EAAAhB,MAAIE,GAAA,KAAS7B,SAAS;QAC1D8C,IAAIH,EAAAhB,MAAIK,GAAA,KAAOhC,QAAQ,IAAI6C,KAAKF,EAAAhB,MAAIK,GAAA,KAAOhC,SAAS;QACpD+C,UAAUJ,EAAAhB,MAAIG,GAAA,KAAa9B,QAAQ2C,EAAAhB,MAAIG,GAAA,KAAa9B,QAAQ;QAC5DgD,MAAML,EAAAhB,MAAIO,GAAA,KAASlC,QAAQ2C,EAAAhB,MAAIO,GAAA,KAASlC,QAAQ;QAChDiD,MAAMN,EAAAhB,MAAIM,GAAA,KAAUjC,UAAU,QAAQ,KAAK2C,EAAAhB,MAAIM,GAAA,KAAUjC;;MAG3D2B,KAAKuB,gBAAgBvB,KAAKwB,aAAaV,GAASF;YAC1CI,EAAAhB,MAAIyB,GAAA,KAAqBC,KAAzB1B,OAA0B2B,IAAA3B,KAAKuB,QAAQ,QAAE,QAAAI,WAAA,aAAAA,EAAErD;MACjD0B,KAAKa,UAAU;AAAK;IAGtBY,EAAA1B,IAAAC,OAAuBW,MAAOiB;MAC5B,IAAIA,GAAY;QACd5B,KAAK6B,sBAAsB7B,KAAK8B,mBAAmBF;QACnD5B,KAAK6B,cAAcE,QAAQf,EAAAhB,MAAIgC,GAAA,KAAyBN,KAA7B1B,MACzBA,KAAK6B,cAAcE;QAErB/B,KAAKiC,qBAAqBL;aACrB;QACL5B,KAAK6B,gBAAgB;;;IAIzBK,EAAAnC,IAAAC,OAAmC;MACjC,IAAIgB,EAAAhB,MAAIS,GAAA,MAAmB;QACzBO,EAAAhB,MAAIS,GAAA,KAAkB0B,iBACpB,gBACCC;UACCA,EAAGC;UACHD,EAAGE;UACHtB,EAAAhB,MAAIuC,GAAA,KAAgCb,KAApC1B,MAAqCoC;AAAG;;;IAMhDG,EAAAxC,IAAAC,OAAkCW,MAAOyB;MACvCpC,KAAKwC,wBAAwB;QAC3BC,WAAW,EAACzC,KAAKiC;QACjBS,SAASN,EAAGM;QACZC,SAASP,EAAGO;;AACZ;IAGJC,EAAA7C,IAAAC,OAAwB;MACtBA,KAAK6C,iBAAiB7C,KAAK6C;AAAa;IAG1CC,EAAA/C,IAAAC,OAAqB;;MACnB,MAAM+C,MAAmBpB,IAAA3B,KAAKuB,aAAO,QAAAI,WAAA,aAAAA,EAAEqB,YAAW,MAAMhD,KAAKuB;MAC7D,OACE0B,EAAA;QACEC,OAAO;UACL,gBAAgB;UAChB,gBAAgB;UAChB,uBAAuBH;;QAEzBI,oBAAqBf;UACnBpC,KAAKuB,QAAQyB,SAAS,KACpBhC,EAAAhB,MAAIyB,GAAA,KAAqBC,KAAzB1B,MAA0BoC,EAAGgB,OAAOC,OAAO;AAAG;QAElDC,KAAMC;;UACJ,IAAIA,KAAMvC,EAAAhB,MAAIS,GAAA,SAAsB8C,GAAI;YACtCC,EAAAxD,MAAIS,GAAoB8C,GAA8B;YAEtDvC,EAAAhB,MAAIkC,GAAA,KAAiCR,KAArC1B;YAEA,IAAIA,KAAKuB,QAAQyB,SAAS,GAAG;cAC3BhC,EAAAhB,MAAIS,GAAA,KAAkBgD,WAAU9B,IAAA3B,KAAKuB,QAAQ,QAAE,QAAAI,WAAA,aAAAA,EAAErD,IAAI;;;;SAK3D2E,EAAA;QAA2BC,OAAM;SAC/BD,EAAA;QAAA,eACejC,EAAAhB,MAAIF,GAAA,KAAmB4D,SAASC,QAAQrF;QAAE,wBAClC;QACrB4E,OAAM;QACNU,aAAa;QACbC,MAAK;UAEPZ,EAAA;QAAA,eACejC,EAAAhB,MAAIF,GAAA,KAAmB4D,SAASC,QAAQG;QAAO,wBACvC;QACrBZ,OAAM;QACNU,aAAa;QACbC,MAAK;UAEPZ,EAAA;QAAA,eACejC,EAAAhB,MAAIF,GAAA,KAAmB4D,SAASC,QAAQtC;QAAI,wBACpC;QACrB6B,OAAM;QACNU,aAAa;QACbC,MAAK;UAEPZ,EAAA;QAAA,eACejC,EAAAhB,MAAIF,GAAA,KAAmB4D,SAASC,QAAQI;QAAU,wBAC1C;QACrBb,OAAM;QACNU,aAAa;QACbC,MAAK;WAGR7D,KAAKuB,QAAQyB,SAAS,IACrBC,EAAA;QAAwBC,OAAM;SAC3BlD,KAAKuB,QAAQpD,KAAK6F,KACjBf,EAAA;QACEgB,OAAOD,EAAI1F;QACX4F,KAAKF,EAAI1F;QACT4E,OAAM;SAEND,EAAA;QAAsBC,OAAM;SACzBc,EAAI1F,KAEP2E,EAAA;QAAsBC,OAAM;SACzBc,EAAIF,UAEPb,EAAA;QAAsBC,OAAM;SACzBc,EAAI3C,OAEP4B,EAAA;QAAsBC,OAAM;SACzB,GAAGiB,EAAWH,EAAID,YAAY,sBAMvCd,EAAA;QAAwBC,OAAM;SAC5BD,EAAA,sCACEA,EAAA;QACEmB,YAAYpD,EAAAhB,MAAIF,GAAA,KAAmBuE;QACnCC,YAAY;YAMpBrB,EAAA;QAAqBC,OAAM;;AACX;IAItBqB,EAAAxE,IAAAC,OAA6B;;MAC3B,MAAMwE,IAAWxE,KAAK6B,gBAAgB7B,KAAK6B,cAAcN,UAAU;MACnE,MAAMwB,MACJpB,IAAA3B,KAAK6B,mBAAa,QAAAF,WAAA,aAAAA,EAAEJ,QAAQyB,YAAW,MAAMhD,KAAK6B;MACpD,OACEoB,EAAA;QACEC,OAAO;UACL,yBAAyB;UACzB,gBAAgB;UAChB,uBAAuBH;;SAGzBE,EAAA;QAA2BC,OAAM;SAC/BD,EAAA;QAAA,eAEIjC,EAAAhB,MAAIF,GAAA,KAAmB2E,oBAAoBd,QAAQnF;QAAI,wBAEpC;QACrB0E,OAAM;QACNU,aAAa;QACbC,MAAMa,EAAOC,YAAYC,QAAQC;UAEnC5B,EAAA;QAAA,eAEIjC,EAAAhB,MAAIF,GAAA,KAAmB2E,oBAAoBd,QAAQmB;QAAK,wBAErC;QACrB5B,OAAM;QACNU,aAAa;QACbC,MAAMa,EAAOC,YAAYC,QAAQC;UAEnC5B,EAAA;QAAA,eAEIjC,EAAAhB,MAAIF,GAAA,KAAmB2E,oBAAoBd,QAAQoB;QAAW,wBAE3C;QACrB7B,OAAM;QACNU,aAAa;QACbC,MAAMa,EAAOC,YAAYC,QAAQI;UAEnC/B,EAAA;QAAA,eAEIjC,EAAAhB,MAAIF,GAAA,KAAmB2E,oBAAoBd,QAAQsB;QAAM,wBAEtC;QACrB/B,OAAM;QACNU,aAAa;QACbC,MAAMa,EAAOC,YAAYC,QAAQC;WAGpC7E,KAAK6B,iBAAiB7B,KAAK6B,cAAcN,QAAQyB,SAAS,IACzDC,EAAA;QAAwBC,OAAM;SAC3BsB,EAASrG,KAAK6F,KACbf,EAAA;QAAqBC,OAAM;SACzBD,EAAA;QAAsBC,OAAM;SACzBc,EAAIxF,OAEPyE,EAAA;QAAsBC,OAAM;SACzBgC,EAAyBlB,EAAI1C,QAEhC2B,EAAA;QAAsBC,OAAM;SACzBc,EAAIe,cAEP9B,EAAA;QAAsBC,OAAM;SACzBiC,EAA0BnB,EAAIoB,cAMvCnC,EAAA;QAAwBC,OAAM;SAC5BD,EAAA,sCACEA,EAAA;QACEoC,cAAc3F;QACd0E,YAAYpD,EAAAhB,MAAIF,GAAA,KAAmBwF;QACnChB,YAAY;YAMpBrB,EAAA;QAAqBC,OAAM;;AACX;IAItBqC,EAAAxF,IAAAC,OAAgB,MAEZA,KAAKa,WACHoC,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEuC,aAAaxE,EAAAhB,MAAIF,GAAA,KAAmB2F,OAAO1D;MAC3C2D,MAAI;MACJX,aAAa/D,EAAAhB,MAAIF,GAAA,KAAmB2F,OAAOV;;IAOrD/C,EAAAjC,IAAAC,OAA4B+B;MAC1B,MAAM4D,IAAQ5D,EAAM6D,MAAM;MAC1B,MAAMC,IAAW,IAAI3E,KAAKyE,EAAM;MAChC,MAAMG,IAAgB3B,EAAW0B,GAAU;MAC3C,OAAO,GAAGF,EAAM,QAAQG,OAAmBH,EAAM;AAAI;;mBAnXpB;uBAKH;2BAKI;yBAKX;mBAKG;;4BAUS;;;;;oBA2CW;;;;;EAjBhD,8BAAMI,CAAyBC;;IAC7BhG,KAAKiG,oBAAoBD;;QAGzBhF,EAAAhB,MAAII,GAAA,KAAW/B,QAAQ;IACvB2C,EAAAhB,MAAIE,GAAA,KAAS7B,QAAQ;IACrB2C,EAAAhB,MAAIK,GAAA,KAAOhC,QAAQ;IACnB2C,EAAAhB,MAAIG,GAAA,KAAa9B,QAAQ;IACzB2C,EAAAhB,MAAIO,GAAA,KAASlC,QAAQ;IACrB2C,EAAAhB,MAAIM,GAAA,KAAUjC,SAAQsD,IAAAX,EAAAhB,MAAIC,GAAA,KAAQ,QAAE,QAAA0B,WAAA,aAAAA,EAAEtD;UAEhC2C,EAAAhB,MAAIU,GAAA,KAAuBgB,KAA3B1B,MAA4BgG;;EAQpC,yBAAME,CAAoBC;IACxBnG,KAAKoG,WAAWD;IAChBnG,KAAKqG,mBAAmBnH,uBAAuBiH;IAE/C,IACEA,EAAgBnD,SAAS,KACzBhD,KAAKiG,qBACLjG,KAAKsG,aACL;YACMtF,EAAAhB,MAAIU,GAAA,KAAuBgB,KAA3B1B,MAA4BA,KAAKiG;MACvCjG,KAAKsG,cAAc;;;EAoBvB,uBAAMC;IACJ/C,EAAAxD,MAAIF,SAA2B0G,EAAOC,oBAAoBzG,KAAKuD,KAAG;IAClEC,EAAAxD,MAAIC,GAAUhC,iCAAiC+B,KAAK8E,QAAM;;EAG5D,sBAAM4B;IACJ1F,EAAAhB,MAAIQ,GAAA,KAAY2B,iBACd,mBACCwE;MACC3G,KAAK4G,kBAAkBD,EAAEvD;AAAM;;EAoQrC,MAAAyD;;IACE,OACE5D,EAAC6D,GAAI;MAAC5D,OAAM;OACVD,EAAA;MAAU8D,OAAO1H;QAEjB4D,EAAA;MACEK,KAAMC,KACHC,EAAAxD,MAAIQ,GAAc+C,GAA0B;MAE/CL,OAAM;MACN8D,UAAUhH,KAAK4G;MACfK,oCACEjG,EAAAhB,MAAIF,GAAA,KAAmBoH,QAAQC;MAEjCC,kCACEpG,EAAAhB,MAAIF,GAAA,KAAmBoH,QAAQG;MAEjCC,kBAAgB;OAEhBrE,EAAA;MACEC,OAAO;QACL,oBAAoBlD,KAAK4G;QACzB,sBAAsB5G,KAAKqG;;MAE7BkB,cAAa;MACbC,WAAWxH,KAAKoG;MAChBqB,eAAe;MACfC,kBAAkB1H,KAAK2H;MACvBC,yBAAyB5H,KAAK4H;SAIlC3E,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQC,SAElCkC,EAAA;MACE5E,OAAM;MACN6E,OAAM;MACNzE,aAAamB;MACbkI,MAAK;MACLxJ,IAAG;MACHgF,KAAMC,KACHC,EAAAxD,MAAII,GAAamD,GAAuB;SAK/CN,EAAA;MACE3E,IAAG;MACH4E,OAAM;MAAkC,cAC5BlC,EAAAhB,MAAIF,GAAA,KAAmBiI,aAAaC;MAAe,iBAChDhI,KAAK6C,gBAAgB,UAAU;MAAM,iBACtC;MACdoF,SAAS,MAAMjH,EAAAhB,MAAI4C,GAAA,KAAsBlB,KAA1B1B;OAEfiD,EAAA;MAAUC,OAAM;MAAUgF,KAAK5I;SAGjC2D,EAAA;MACEC,OAAM;MAAkC,cAC5BlC,EAAAhB,MAAIF,GAAA,KAAmBiI,aAAaI;MAChDF,SAAS,MACPjH,EAAAhB,MAAIU,GAAA,KAAuBgB,KAA3B1B,MAA4BA,KAAKiG;MAEnC6B,MAAM9G,EAAAhB,MAAIF,GAAA,KAAmBiI,aAAaI;OAE1ClF,EAAA;MAAUC,OAAM;MAAUgF,KAAKvI;UAInCsD,EAAA;MACE3E,IAAG;MAAmB,mBACN;MAChB4E,OAAO;QACL,8BAA8BlD,KAAK6C;QACnC,qBAAqB;;MAEvBuF,OAAOpI,KAAK6C;MACZwF,QAAQrI,KAAK6C;OAEbI,EAAA,aACEA,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQG,OAElCgC,EAAA;MACE5E,OAAM;MACN6E,OAAM;MACN5B,MAAK;MACLwG,MAAK;MACLxJ,IAAG;MACHgF,KAAMC,KACHC,EAAAxD,MAAIE,GAAWqD,GAAuB;SAK7CN,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQK,KAElC8B,EAAA;MACE5E,OAAM;MACN6E,OAAM;MACN5B,MAAK;MACLhD,IAAG;MACHgF,KAAMC,KACHC,EAAAxD,MAAIK,GAASkD,GAAuB;SAK3CN,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQQ,OAGlC2B,EAAA;MACEqF,gBAAe;MACfpF,OAAM;MACN4E,MAAK;MACLf,OAAO/F,EAAAhB,MAAIC,GAAA;MACX5B,QAAOsD,IAAAX,EAAAhB,MAAIC,GAAA,KAAQ,QAAE,QAAA0B,WAAA,aAAAA,EAAEtD;MACvBiF,KAAMC,KACHC,EAAAxD,MAAIM,GAAYiD,GAAiC;SAKxDN,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQO,OAGlC4B,EAAA;MACE5E,OAAM;MACNyJ,MAAK;MACL5E,OAAM;MACN5E,IAAG;MACHgF,KAAMC,KACHC,EAAAxD,MAAIO,GAAWgD,GAAuB;SAK7CN,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7G,EAAAhB,MAAIF,GAAA,KAAmBgB,QAAQM,WAGlC6B,EAAA;MACE5E,OAAM;MACNyJ,MAAK;MACL5E,OAAM;MACN5E,IAAG;MACHgF,KAAMC,KACHC,EAAAxD,MAAIG,GAAeoD,GAAuB;aASxDvC,EAAAhB,MAAIuF,GAAA,KAAc7D,KAAlB1B,QAECA,KAAKa,WACLoC,EAAA;MAAKC,OAAM;OACRlC,EAAAhB,MAAI8C,GAAA,KAAmBpB,KAAvB1B,OAEDiD,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAOC,OAAM;MAAQ2E,SAAQ;OAC1B7H,KAAK6B,gBAAgB7B,KAAK6B,cAAcE,QAAQ,OAEnDkB,EAAA;MACEC,OAAM;MACN7E,OAAO2B,KAAK6B,gBAAgB7B,KAAK6B,cAAciC,UAAU;MACzDyE,WAAS;MACTC,UAAQ;MACRC,UAAU;MACVX,MAAK;MACLxJ,IAAG;SAIN0C,EAAAhB,MAAIuE,GAAA,KAA2B7C,KAA/B1B"}
@@ -2,7 +2,7 @@ import { r as e, c as t, h as i, H as a, a as r } from "./p-97107ecc.js";
2
2
 
3
3
  import { L as s } from "./p-311eedf3.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 { a as l } from "./p-8c2e9df4.js";
8
8
 
@@ -608,4 +608,4 @@ const b = class {
608
608
  b.style = h;
609
609
 
610
610
  export { b as gx_ide_ww_images };
611
- //# sourceMappingURL=p-e06cfa27.entry.js.map
611
+ //# sourceMappingURL=p-59908901.entry.js.map
@@ -1,6 +1,6 @@
1
1
  import { r, c as t, h as e, 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 l } from "./p-311eedf3.js";
6
6
 
@@ -131,4 +131,4 @@ const n = class {
131
131
  n.style = s;
132
132
 
133
133
  export { n as gx_ide_bpm_timer_duration };
134
- //# sourceMappingURL=p-57b8dd3d.entry.js.map
134
+ //# sourceMappingURL=p-5a328be1.entry.js.map
@@ -4,7 +4,7 @@ import { g as l } from "./p-401bfc97.js";
4
4
 
5
5
  import { L as o } from "./p-311eedf3.js";
6
6
 
7
- import { c as r } from "./p-44e5e972.js";
7
+ import { c as r } from "./p-9a03ac9f.js";
8
8
 
9
9
  import { f as n } from "./p-8c15538c.js";
10
10
 
@@ -522,4 +522,4 @@ L = new WeakMap, K = new WeakMap, V = new WeakMap, A = new WeakMap, B = new Weak
522
522
  O.style = d;
523
523
 
524
524
  export { O as gx_ide_object_selector };
525
- //# sourceMappingURL=p-3817c664.entry.js.map
525
+ //# sourceMappingURL=p-646ddf49.entry.js.map