@genexus/genexus-ide-ui 1.1.58 → 1.1.59

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 (338) hide show
  1. package/dist/cjs/{config-df6ba4e9.js → config-3bb95f39.js} +3 -2
  2. package/dist/cjs/config-3bb95f39.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 +2 -2
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +2 -2
  9. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +2 -2
  11. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +2 -2
  13. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
  15. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +2 -2
  17. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  30. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
  32. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  34. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  39. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-name-picker.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  42. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  44. package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
  45. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  46. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
  47. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  48. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +160 -75
  50. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  52. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
  53. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  54. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  55. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  56. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +2 -2
  57. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
  59. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  60. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  61. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
  62. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-test.cjs.entry.js +14 -65
  64. package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +2 -2
  66. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
  68. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
  69. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
  70. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  71. package/dist/cjs/loader.cjs.js +1 -1
  72. package/dist/cjs/{tabular-grid-render-7cf3815d.js → tabular-grid-render-ce935a84.js} +2 -2
  73. package/dist/cjs/{tabular-grid-render-7cf3815d.js.map → tabular-grid-render-ce935a84.js.map} +1 -1
  74. package/dist/collection/common/config.js +2 -1
  75. package/dist/collection/common/config.js.map +1 -1
  76. package/dist/collection/components/_helpers/card/card.css +24 -0
  77. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +24 -0
  78. package/dist/collection/components/_helpers/list-selector/list-selector.css +24 -0
  79. package/dist/collection/components/_test/test.css +610 -0
  80. package/dist/collection/components/_test/test.js +10 -64
  81. package/dist/collection/components/_test/test.js.map +1 -1
  82. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +24 -0
  83. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +24 -0
  84. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +24 -0
  85. package/dist/collection/components/bpm/import-files/bpm-import-files.css +24 -0
  86. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +24 -0
  87. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +24 -0
  88. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +24 -0
  89. package/dist/collection/components/deployment-tool/deployment-tool.css +24 -0
  90. package/dist/collection/components/file-uploader/file-uploader.css +24 -0
  91. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +24 -0
  92. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +24 -0
  93. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +24 -0
  94. package/dist/collection/components/references/references.css +24 -0
  95. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +13 -13
  96. package/dist/collection/components/team-dev/history/history.css +13 -0
  97. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +24 -0
  98. package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.en.json +7 -0
  99. package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +7 -0
  100. package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.zh.json +7 -0
  101. package/dist/collection/components/team-dev/server-selector/server-selector.css +82 -18
  102. package/dist/collection/components/team-dev/server-selector/server-selector.js +229 -86
  103. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  104. package/dist/collection/components/team-dev/update/update.css +13 -0
  105. package/dist/collection/components/team-dev/version-control/commit/commit.css +13 -0
  106. package/dist/collection/components/wf-settings/wf-settings.css +24 -0
  107. package/dist/collection/components/ww-images/ww-images.css +24 -0
  108. package/dist/components/bpm-objects-selector.js +1 -1
  109. package/dist/components/bpm-objects-selector.js.map +1 -1
  110. package/dist/components/config.js +2 -1
  111. package/dist/components/config.js.map +1 -1
  112. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  113. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  114. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  115. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  116. package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
  117. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  118. package/dist/components/gx-ide-bpm-import-files.js +1 -1
  119. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  120. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  121. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  122. package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
  123. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  124. package/dist/components/gx-ide-card.js +1 -1
  125. package/dist/components/gx-ide-card.js.map +1 -1
  126. package/dist/components/gx-ide-deployment-tool.js +1 -1
  127. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  128. package/dist/components/gx-ide-edit-module-server.js +1 -1
  129. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  130. package/dist/components/gx-ide-empty-state2.js +1 -1
  131. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  132. package/dist/components/gx-ide-file-uploader.js +1 -1
  133. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  134. package/dist/components/gx-ide-gam-installation-settings.js +1 -1
  135. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  136. package/dist/components/gx-ide-manage-module-references.js +1 -1
  137. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  138. package/dist/components/gx-ide-references.js +1 -1
  139. package/dist/components/gx-ide-references.js.map +1 -1
  140. package/dist/components/gx-ide-server-selector.js +167 -78
  141. package/dist/components/gx-ide-server-selector.js.map +1 -1
  142. package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
  143. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  144. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  145. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  146. package/dist/components/gx-ide-team-dev-history.js +1 -1
  147. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  148. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  149. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  150. package/dist/components/gx-ide-team-dev-update.js +1 -1
  151. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  152. package/dist/components/gx-ide-test.js +13 -65
  153. package/dist/components/gx-ide-test.js.map +1 -1
  154. package/dist/components/gx-ide-wf-settings.js +1 -1
  155. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  156. package/dist/components/gx-ide-ww-images.js +1 -1
  157. package/dist/components/gx-ide-ww-images.js.map +1 -1
  158. package/dist/components/list-selector.js +1 -1
  159. package/dist/components/list-selector.js.map +1 -1
  160. package/dist/esm/{config-9eaeb14b.js → config-5a775b7a.js} +3 -2
  161. package/dist/esm/config-5a775b7a.js.map +1 -0
  162. package/dist/esm/genexus-ide-ui.js +1 -1
  163. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +2 -2
  164. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  165. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +2 -2
  166. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  167. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +2 -2
  168. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  169. package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -2
  170. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  171. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +2 -2
  172. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  173. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
  174. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  175. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +2 -2
  176. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  177. package/dist/esm/gx-ide-card.entry.js +1 -1
  178. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  179. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  180. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  181. package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
  182. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  183. package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
  184. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  186. package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
  187. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  188. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  189. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  190. package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
  191. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  192. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  193. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  194. package/dist/esm/gx-ide-json-import.entry.js +1 -1
  195. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  196. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  198. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-name-picker.entry.js +1 -1
  200. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  201. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  202. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  203. package/dist/esm/gx-ide-new-version.entry.js +1 -1
  204. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  205. package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
  206. package/dist/esm/gx-ide-references.entry.js +1 -1
  207. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  208. package/dist/esm/gx-ide-server-selector.entry.js +160 -75
  209. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  210. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  211. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +3 -3
  212. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  214. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  215. package/dist/esm/gx-ide-team-dev-history.entry.js +2 -2
  216. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
  218. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  219. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  220. package/dist/esm/gx-ide-team-dev-update.entry.js +3 -3
  221. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  222. package/dist/esm/gx-ide-test.entry.js +14 -65
  223. package/dist/esm/gx-ide-test.entry.js.map +1 -1
  224. package/dist/esm/gx-ide-wf-settings.entry.js +2 -2
  225. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  226. package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
  227. package/dist/esm/gx-ide-ww-files.entry.js +1 -1
  228. package/dist/esm/gx-ide-ww-images.entry.js +2 -2
  229. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  230. package/dist/esm/loader.js +1 -1
  231. package/dist/esm/{tabular-grid-render-11f0a55c.js → tabular-grid-render-137bd3dd.js} +2 -2
  232. package/dist/esm/{tabular-grid-render-11f0a55c.js.map → tabular-grid-render-137bd3dd.js.map} +1 -1
  233. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  234. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  235. package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.en.json +7 -0
  236. package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +7 -0
  237. package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.zh.json +7 -0
  238. package/dist/genexus-ide-ui/{p-bd280758.entry.js → p-086de552.entry.js} +2 -2
  239. package/dist/genexus-ide-ui/{p-61ce9a9f.entry.js → p-0910af1b.entry.js} +71 -71
  240. package/dist/genexus-ide-ui/{p-d0584c71.entry.js → p-1107bf84.entry.js} +2 -2
  241. package/dist/genexus-ide-ui/{p-3673759a.entry.js → p-13ca0217.entry.js} +2 -2
  242. package/dist/genexus-ide-ui/p-156fa688.entry.js +59 -0
  243. package/dist/genexus-ide-ui/p-156fa688.entry.js.map +1 -0
  244. package/dist/genexus-ide-ui/{p-3013895f.entry.js → p-1671c731.entry.js} +6 -6
  245. package/dist/genexus-ide-ui/{p-6a1431f7.entry.js → p-2c0f10bf.entry.js} +2 -2
  246. package/dist/genexus-ide-ui/{p-cc5feb47.entry.js → p-2d70b76d.entry.js} +3 -3
  247. package/dist/genexus-ide-ui/{p-fb66e72a.entry.js → p-2d989eb1.entry.js} +2 -2
  248. package/dist/genexus-ide-ui/{p-ce9ca2dd.entry.js → p-300fcfa1.entry.js} +2 -2
  249. package/dist/genexus-ide-ui/{p-41e1c129.entry.js → p-349f1622.entry.js} +2 -2
  250. package/dist/genexus-ide-ui/{p-ea79f745.entry.js → p-408eac22.entry.js} +24 -24
  251. package/dist/genexus-ide-ui/{p-22814dfd.entry.js → p-4c9cddc5.entry.js} +3 -3
  252. package/dist/genexus-ide-ui/{p-f8967408.entry.js → p-5308144e.entry.js} +11 -11
  253. package/dist/genexus-ide-ui/{p-0bb54667.entry.js → p-57c318ba.entry.js} +9 -9
  254. package/dist/genexus-ide-ui/{p-d0c43abd.entry.js → p-5b8ef529.entry.js} +3 -3
  255. package/dist/genexus-ide-ui/{p-c2ac7757.entry.js → p-6d3a4648.entry.js} +2 -2
  256. package/dist/genexus-ide-ui/{p-86b9dc50.entry.js → p-6eb0d883.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/{p-6e8c3be5.entry.js → p-74c46daf.entry.js} +33 -33
  258. package/dist/genexus-ide-ui/{p-2fabcb06.entry.js → p-7d779463.entry.js} +12 -12
  259. package/dist/genexus-ide-ui/{p-6749f088.entry.js → p-85cf50c5.entry.js} +3 -3
  260. package/dist/genexus-ide-ui/p-91497934.entry.js +542 -0
  261. package/dist/genexus-ide-ui/p-91497934.entry.js.map +1 -0
  262. package/dist/genexus-ide-ui/{p-7f689bcf.entry.js → p-93e79d19.entry.js} +2 -2
  263. package/dist/genexus-ide-ui/{p-46c9eb6a.entry.js → p-94cb4746.entry.js} +3 -3
  264. package/dist/genexus-ide-ui/{p-52ee29d3.entry.js → p-95f8ff9f.entry.js} +4 -4
  265. package/dist/genexus-ide-ui/p-95f8ff9f.entry.js.map +1 -0
  266. package/dist/genexus-ide-ui/{p-3f6709b6.entry.js → p-9adbe860.entry.js} +2 -2
  267. package/dist/genexus-ide-ui/{p-95736f92.entry.js → p-9ffa7afd.entry.js} +2 -2
  268. package/dist/genexus-ide-ui/{p-e00a8dfd.entry.js → p-a105f903.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/{p-66c5217f.js → p-a4b820e5.js} +37 -37
  270. package/dist/genexus-ide-ui/{p-327f1020.entry.js → p-ad5f63da.entry.js} +2 -2
  271. package/dist/genexus-ide-ui/{p-369e9936.entry.js → p-b0d1b217.entry.js} +85 -85
  272. package/dist/genexus-ide-ui/{p-f89807b5.entry.js → p-b1bf5be8.entry.js} +2 -2
  273. package/dist/genexus-ide-ui/{p-11f37427.entry.js → p-b7ae21bd.entry.js} +2 -2
  274. package/dist/genexus-ide-ui/{p-9a03ac9f.js → p-c5196b3b.js} +3 -2
  275. package/dist/genexus-ide-ui/p-c5196b3b.js.map +1 -0
  276. package/dist/genexus-ide-ui/{p-c71e91f2.entry.js → p-d243ee33.entry.js} +2 -2
  277. package/dist/genexus-ide-ui/{p-c1196cb0.entry.js → p-d41d52f6.entry.js} +2 -2
  278. package/dist/genexus-ide-ui/{p-3942c139.entry.js → p-d71cf7d9.entry.js} +21 -21
  279. package/dist/genexus-ide-ui/{p-146f22d0.entry.js → p-d7c133da.entry.js} +2 -2
  280. package/dist/genexus-ide-ui/{p-0da40329.entry.js → p-e8e7f960.entry.js} +4 -4
  281. package/dist/genexus-ide-ui/{p-dcb0849a.entry.js → p-ecba7aa4.entry.js} +3 -3
  282. package/dist/genexus-ide-ui/{p-3265f4c1.entry.js → p-f03930f9.entry.js} +2 -2
  283. package/dist/genexus-ide-ui/{p-87c7e303.entry.js → p-f5734cc7.entry.js} +2 -2
  284. package/dist/genexus-ide-ui/{p-78b1aa91.entry.js → p-f9bde776.entry.js} +3 -3
  285. package/dist/genexus-ide-ui/{p-2a74c476.entry.js → p-fff8902d.entry.js} +192 -192
  286. package/dist/types/common/config.d.ts +1 -0
  287. package/dist/types/components/_test/test.d.ts +0 -1
  288. package/dist/types/components/team-dev/server-selector/server-selector.d.ts +19 -10
  289. package/dist/types/components.d.ts +32 -8
  290. package/package.json +1 -1
  291. package/dist/cjs/config-df6ba4e9.js.map +0 -1
  292. package/dist/esm/config-9eaeb14b.js.map +0 -1
  293. package/dist/genexus-ide-ui/p-0d2fb794.entry.js +0 -446
  294. package/dist/genexus-ide-ui/p-0d2fb794.entry.js.map +0 -1
  295. package/dist/genexus-ide-ui/p-3b808c6f.entry.js +0 -100
  296. package/dist/genexus-ide-ui/p-3b808c6f.entry.js.map +0 -1
  297. package/dist/genexus-ide-ui/p-52ee29d3.entry.js.map +0 -1
  298. package/dist/genexus-ide-ui/p-9a03ac9f.js.map +0 -1
  299. /package/dist/genexus-ide-ui/{p-bd280758.entry.js.map → p-086de552.entry.js.map} +0 -0
  300. /package/dist/genexus-ide-ui/{p-61ce9a9f.entry.js.map → p-0910af1b.entry.js.map} +0 -0
  301. /package/dist/genexus-ide-ui/{p-d0584c71.entry.js.map → p-1107bf84.entry.js.map} +0 -0
  302. /package/dist/genexus-ide-ui/{p-3673759a.entry.js.map → p-13ca0217.entry.js.map} +0 -0
  303. /package/dist/genexus-ide-ui/{p-3013895f.entry.js.map → p-1671c731.entry.js.map} +0 -0
  304. /package/dist/genexus-ide-ui/{p-6a1431f7.entry.js.map → p-2c0f10bf.entry.js.map} +0 -0
  305. /package/dist/genexus-ide-ui/{p-cc5feb47.entry.js.map → p-2d70b76d.entry.js.map} +0 -0
  306. /package/dist/genexus-ide-ui/{p-fb66e72a.entry.js.map → p-2d989eb1.entry.js.map} +0 -0
  307. /package/dist/genexus-ide-ui/{p-ce9ca2dd.entry.js.map → p-300fcfa1.entry.js.map} +0 -0
  308. /package/dist/genexus-ide-ui/{p-41e1c129.entry.js.map → p-349f1622.entry.js.map} +0 -0
  309. /package/dist/genexus-ide-ui/{p-ea79f745.entry.js.map → p-408eac22.entry.js.map} +0 -0
  310. /package/dist/genexus-ide-ui/{p-22814dfd.entry.js.map → p-4c9cddc5.entry.js.map} +0 -0
  311. /package/dist/genexus-ide-ui/{p-f8967408.entry.js.map → p-5308144e.entry.js.map} +0 -0
  312. /package/dist/genexus-ide-ui/{p-0bb54667.entry.js.map → p-57c318ba.entry.js.map} +0 -0
  313. /package/dist/genexus-ide-ui/{p-d0c43abd.entry.js.map → p-5b8ef529.entry.js.map} +0 -0
  314. /package/dist/genexus-ide-ui/{p-c2ac7757.entry.js.map → p-6d3a4648.entry.js.map} +0 -0
  315. /package/dist/genexus-ide-ui/{p-86b9dc50.entry.js.map → p-6eb0d883.entry.js.map} +0 -0
  316. /package/dist/genexus-ide-ui/{p-6e8c3be5.entry.js.map → p-74c46daf.entry.js.map} +0 -0
  317. /package/dist/genexus-ide-ui/{p-2fabcb06.entry.js.map → p-7d779463.entry.js.map} +0 -0
  318. /package/dist/genexus-ide-ui/{p-6749f088.entry.js.map → p-85cf50c5.entry.js.map} +0 -0
  319. /package/dist/genexus-ide-ui/{p-7f689bcf.entry.js.map → p-93e79d19.entry.js.map} +0 -0
  320. /package/dist/genexus-ide-ui/{p-46c9eb6a.entry.js.map → p-94cb4746.entry.js.map} +0 -0
  321. /package/dist/genexus-ide-ui/{p-3f6709b6.entry.js.map → p-9adbe860.entry.js.map} +0 -0
  322. /package/dist/genexus-ide-ui/{p-95736f92.entry.js.map → p-9ffa7afd.entry.js.map} +0 -0
  323. /package/dist/genexus-ide-ui/{p-e00a8dfd.entry.js.map → p-a105f903.entry.js.map} +0 -0
  324. /package/dist/genexus-ide-ui/{p-66c5217f.js.map → p-a4b820e5.js.map} +0 -0
  325. /package/dist/genexus-ide-ui/{p-327f1020.entry.js.map → p-ad5f63da.entry.js.map} +0 -0
  326. /package/dist/genexus-ide-ui/{p-369e9936.entry.js.map → p-b0d1b217.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-f89807b5.entry.js.map → p-b1bf5be8.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-11f37427.entry.js.map → p-b7ae21bd.entry.js.map} +0 -0
  329. /package/dist/genexus-ide-ui/{p-c71e91f2.entry.js.map → p-d243ee33.entry.js.map} +0 -0
  330. /package/dist/genexus-ide-ui/{p-c1196cb0.entry.js.map → p-d41d52f6.entry.js.map} +0 -0
  331. /package/dist/genexus-ide-ui/{p-3942c139.entry.js.map → p-d71cf7d9.entry.js.map} +0 -0
  332. /package/dist/genexus-ide-ui/{p-146f22d0.entry.js.map → p-d7c133da.entry.js.map} +0 -0
  333. /package/dist/genexus-ide-ui/{p-0da40329.entry.js.map → p-e8e7f960.entry.js.map} +0 -0
  334. /package/dist/genexus-ide-ui/{p-dcb0849a.entry.js.map → p-ecba7aa4.entry.js.map} +0 -0
  335. /package/dist/genexus-ide-ui/{p-3265f4c1.entry.js.map → p-f03930f9.entry.js.map} +0 -0
  336. /package/dist/genexus-ide-ui/{p-87c7e303.entry.js.map → p-f5734cc7.entry.js.map} +0 -0
  337. /package/dist/genexus-ide-ui/{p-78b1aa91.entry.js.map → p-f9bde776.entry.js.map} +0 -0
  338. /package/dist/genexus-ide-ui/{p-2a74c476.entry.js.map → p-fff8902d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"gx-ide-team-dev-update.entry.js","mappings":"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","names":[],"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 pointer-events: none;\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 TabularGridColumnSelectorClickedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport uncheckIgnoredObjects from \"../version-control/common/uncheck-ignored\";\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\";\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\nimport areSetsEqual from \"../version-control/common/are-sets-equal\";\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 @Watch(\"alreadyUpdatedObjectsIdsSet\")\n alreadyUpdatedObjectsIdsSetChanged(newUpdatedObjectsIdsSet: Set<string>) {\n const pendingIdsSetAndUpdatedIdsSetAreEqual = areSetsEqual(\n newUpdatedObjectsIdsSet,\n this.pendingIdsSet\n );\n\n this.allPendingAreUpdated =\n pendingIdsSetAndUpdatedIdsSetAreEqual && this.pendingIdsSet.size > 0;\n }\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 * A boolean that indicates if all the pending objects, have been updated\n * already.\n */\n @State() allPendingAreUpdated: boolean = false;\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.pendingIdsSet.clear(); // before pendingIdsSet.add\n this.ignoredIdsSet.clear(); // before pendingIdsSet.add\n this.objectsMessagesDataMap = new Map();\n this.alreadyUpdatedObjectsIdsSet = new Set();\n this.markedObjectsSet = new Set(); // before #markPendingObjects\n\n this.pendingAndIgnored.pendingForUpdate.forEach(pending => {\n this.pendingIdsSet.add(pending.id);\n });\n\n this.pendingAndIgnored.ignoredObjects.forEach(ignored => {\n this.ignoredIdsSet.add(ignored.id);\n });\n\n this.#markPendingObjects(); // after pendingIdsSet.add and ignoredIdsSet.add\n this.#setInitialObjectsStatus(); // after pendingIdsSet.add and ignoredIdsSet.add\n\n this.#applyClientFilter();\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 // initialize \"allPendingAreUpdated\"\n this.alreadyUpdatedObjectsIdsSetChanged(this.alreadyUpdatedObjectsIdsSet);\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 = new Set(\n this.alreadyUpdatedObjectsIdsSet\n ).add(objectResult.id);\n\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.type\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\n try {\n this.loading = true;\n this.objectsMessagesDataMap.clear();\n\n this.pendingAndIgnored = await this.loadCallback(filters, forceLoad);\n this.#setInitialObjectsStatus();\n\n // Is is required to mark/check all objects after loadCallback.\n this.#markPendingObjects();\n } catch (error) {\n // Error handling for update operation\n } finally {\n this.loading = false;\n }\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 #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.lastSynchronized) {\n dateType = \"dateString\";\n }\n\n this.pendingObjectsAfterActionFilter = [\n ...sortTabularGridColumn(\n e,\n this.pendingObjectsAfterActionFilter,\n dateType,\n objectProperty\n )\n ];\n this.ignoredObjectsAfterActionFilter = [\n ...sortTabularGridColumn(\n e,\n this.ignoredObjectsAfterActionFilter,\n dateType,\n objectProperty\n )\n ];\n };\n\n /**\n * WA: Ignored objects must always remain unchecked.\n * Because `tabular-grid` selects all rows when the checkbox column is toggled,\n * we need to manually unselect the ignored IDs. // TODO: Move this function\n * to common\n */\n #columnSelectorClickedCallback = async (\n e: CustomEvent<TabularGridColumnSelectorClickedEvent>\n ) => {\n const allRowsChecked = e.detail;\n if (allRowsChecked) {\n const markedRowsIds =\n await this.#chGridPendingForUpdateEl.getMarkedRows();\n const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {\n return this.ignoredIdsSet.has(rowId);\n });\n if (ignoredMarkedRowsIds.length) {\n uncheckIgnoredObjects(\n ignoredMarkedRowsIds,\n this.#chGridPendingForUpdateEl\n );\n }\n }\n };\n\n render() {\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={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={!this.allPendingAreUpdated}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n onColumnSelectorClicked={\n this.#columnSelectorClickedCallback\n }\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.modifiedOn}\n columnName={this.#componentLocale.objects.modifiedOn}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={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={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={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"],"version":3}
1
+ {"file":"gx-ide-team-dev-update.entry.js","mappings":"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","names":[],"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 pointer-events: none;\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 TabularGridColumnSelectorClickedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport uncheckIgnoredObjects from \"../version-control/common/uncheck-ignored\";\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\";\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\nimport areSetsEqual from \"../version-control/common/are-sets-equal\";\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 @Watch(\"alreadyUpdatedObjectsIdsSet\")\n alreadyUpdatedObjectsIdsSetChanged(newUpdatedObjectsIdsSet: Set<string>) {\n const pendingIdsSetAndUpdatedIdsSetAreEqual = areSetsEqual(\n newUpdatedObjectsIdsSet,\n this.pendingIdsSet\n );\n\n this.allPendingAreUpdated =\n pendingIdsSetAndUpdatedIdsSetAreEqual && this.pendingIdsSet.size > 0;\n }\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 * A boolean that indicates if all the pending objects, have been updated\n * already.\n */\n @State() allPendingAreUpdated: boolean = false;\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.pendingIdsSet.clear(); // before pendingIdsSet.add\n this.ignoredIdsSet.clear(); // before pendingIdsSet.add\n this.objectsMessagesDataMap = new Map();\n this.alreadyUpdatedObjectsIdsSet = new Set();\n this.markedObjectsSet = new Set(); // before #markPendingObjects\n\n this.pendingAndIgnored.pendingForUpdate.forEach(pending => {\n this.pendingIdsSet.add(pending.id);\n });\n\n this.pendingAndIgnored.ignoredObjects.forEach(ignored => {\n this.ignoredIdsSet.add(ignored.id);\n });\n\n this.#markPendingObjects(); // after pendingIdsSet.add and ignoredIdsSet.add\n this.#setInitialObjectsStatus(); // after pendingIdsSet.add and ignoredIdsSet.add\n\n this.#applyClientFilter();\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 // initialize \"allPendingAreUpdated\"\n this.alreadyUpdatedObjectsIdsSetChanged(this.alreadyUpdatedObjectsIdsSet);\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 = new Set(\n this.alreadyUpdatedObjectsIdsSet\n ).add(objectResult.id);\n\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.type\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\n try {\n this.loading = true;\n this.objectsMessagesDataMap.clear();\n\n this.pendingAndIgnored = await this.loadCallback(filters, forceLoad);\n this.#setInitialObjectsStatus();\n\n // Is is required to mark/check all objects after loadCallback.\n this.#markPendingObjects();\n } catch (error) {\n // Error handling for update operation\n } finally {\n this.loading = false;\n }\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 #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.lastSynchronized) {\n dateType = \"dateString\";\n }\n\n this.pendingObjectsAfterActionFilter = [\n ...sortTabularGridColumn(\n e,\n this.pendingObjectsAfterActionFilter,\n dateType,\n objectProperty\n )\n ];\n this.ignoredObjectsAfterActionFilter = [\n ...sortTabularGridColumn(\n e,\n this.ignoredObjectsAfterActionFilter,\n dateType,\n objectProperty\n )\n ];\n };\n\n /**\n * WA: Ignored objects must always remain unchecked.\n * Because `tabular-grid` selects all rows when the checkbox column is toggled,\n * we need to manually unselect the ignored IDs. // TODO: Move this function\n * to common\n */\n #columnSelectorClickedCallback = async (\n e: CustomEvent<TabularGridColumnSelectorClickedEvent>\n ) => {\n const allRowsChecked = e.detail;\n if (allRowsChecked) {\n const markedRowsIds =\n await this.#chGridPendingForUpdateEl.getMarkedRows();\n const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {\n return this.ignoredIdsSet.has(rowId);\n });\n if (ignoredMarkedRowsIds.length) {\n uncheckIgnoredObjects(\n ignoredMarkedRowsIds,\n this.#chGridPendingForUpdateEl\n );\n }\n }\n };\n\n render() {\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={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={!this.allPendingAreUpdated}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n onColumnSelectorClicked={\n this.#columnSelectorClickedCallback\n }\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.modifiedOn}\n columnName={this.#componentLocale.objects.modifiedOn}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={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={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={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"],"version":3}
@@ -1,24 +1,12 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-b153bfd0.js';
2
+ import { g as getIconPath } from './assets-manager-7d6fc08f.js';
3
+ import './mer-animated-dots-75d88f7e.js';
4
+ import 'lit';
5
+ import 'lit/directives/when.js';
6
+ import 'lit/directives/if-defined.js';
2
7
 
3
- const testCss = ":host {\n display: block;\n}\n\nsection {\n border-top: 1px solid #ccc;\n margin-top: 300px;\n container-name: section;\n container-type: inline-size;\n}\n\ngxg-combo-box {\n opacity: 1;\n}\n\n@container section (width < 400px) {\n gxg-combo-box {\n opacity: 0.5;\n }\n}";
8
+ const testCss = ":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/* - - - - - - - - - - - - - - - - -\nNew classes for Chameleon + Mercury\n- - - - - - - - - - - - - - - - - */\n:host {\n display: grid;\n block-size: 100%;\n}\n\n.card-regular {\n background-color: var(--mer-surface__elevation--01);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--md) var(--mer-spacing--md);\n display: grid;\n}\n\n.card-small {\n background-color: var(--mer-surface__elevation--02);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n}\n.card-small--actionable:hover {\n background-color: var(--mer-color__neutral-gray--600);\n}\n.card-small--actionable:active {\n background-color: var(--mer-color__neutral-gray--650);\n}\n.card-small:focus-visible {\n outline: var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);\n outline-offset: var(--focus__outline-offset);\n}\n\n.empty-state {\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n text-align: center;\n}\n.empty-state__title, .empty-state__button, .empty-state__link {\n max-inline-size: 300px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n\n.display-contents {\n display: contents;\n}\n\n.pill-tag {\n padding: 1px 4px;\n border-radius: 2px;\n min-inline-size: 40px;\n text-align: center;\n margin-inline-end: 10px;\n font-size: 11px;\n}\n\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* Helper Classes */\n.gxi-hidden {\n display: none !important;\n}\n\n.gxi-full-height {\n height: 100%;\n}\n\n.gxi-overflow-auto {\n overflow: auto;\n}\n\n.gxi-display-flex {\n display: flex;\n}\n\n.align-start {\n display: flex;\n align-items: start;\n}\n\n.align-center {\n display: flex;\n align-items: center;\n}\n\n.align-end {\n display: flex;\n align-items: end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.justify-start {\n display: flex;\n justify-content: start;\n}\n\n.justify-center {\n display: flex;\n justify-content: center;\n}\n\n.justify-end {\n display: flex;\n justify-content: end;\n}\n\n/* Grids */\n.grid {\n display: grid;\n grid-row-gap: var(--gx-ide-grid-row-gap);\n grid-column-gap: var(--gx-ide-grid-column-gap);\n grid-template-rows: auto;\n}\n\nch-grid-cell {\n display: flex;\n}\n\nch-grid {\n overflow: auto;\n height: 100%;\n}\n\nch-grid-column {\n /*to be removed when this works inside a component with shadow: true*/\n z-index: 99;\n border-bottom: 1px solid var(--mer-color__neutral-gray--800);\n}\n\nch-grid-column:first-child {\n padding-inline-start: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-column:last-child {\n padding-inline-end: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-cell {\n --mer-spacing--xs: var(--gx-ide-container__padding);\n}\n\n/*--- Layout ---*/\n.layout {\n display: grid;\n gap: var(--mer-spacing--lg);\n box-sizing: border-box;\n}\n.layout--two-cols {\n grid-template-columns: 1fr 1fr;\n}\n.layout--space-above {\n padding-block-start: var(--mer-spacing--lg);\n}\n\n/*Gxg Tabs*/\ngxg-tabs {\n box-shadow: none;\n}\n\n/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/\n:host(.gx-ide-component) {\n height: 100% !important;\n display: flex !important;\n flex-direction: column !important;\n}\n\n/*stylize the top bar*/\n:host(:focus-within) gx-ide-top-bar::part(wrapper) {\n background-color: var(--color-secondary-enabled);\n}\n\n/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */\n.gx-ide-main-wrapper {\n color: var(--gx-ide-component-text-color);\n font-weight: var(--mer-font__weight--regular);\n font-size: var(--mer-font__size--xs);\n font-family: var(--mer-font-family--primary);\n height: 100%;\n background-color: var(--gx-ide-component-background-color);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n box-sizing: border-box;\n}\n\n/*This is the main element. This is the one that take the remaining vertical space*/\n.gx-ide-main {\n flex-grow: 1;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-main::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-main::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-main::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.gx-ide-overflow {\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-overflow::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-overflow::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-overflow::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.tree-view-primary {\n font-size: var(--mer-font__size--2xs);\n}\n\np {\n margin: 0;\n font-size: var(--mer-font__size--xxs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nNew : For Mercury\n- - - - - - - - - - - - - - - - - - */\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nPill\n- - - - - - - - - - - - - - - - - - */\n.giu-static-pill-icon-and-text, .giu-static-pill {\n background-color: var(--elevation-background-color, var(--mer-surface__elevation--01));\n padding-inline: var(--mer-spacing--xs);\n color: var(--mer-text__on-elevation);\n font-size: var(--font-size-body-s);\n line-height: 1.4;\n font-weight: var(--font-weight-regular);\n border-radius: var(--mer-border__width--lg);\n min-block-size: 25px;\n display: inline-grid;\n align-items: center;\n pointer-events: none;\n}\n\n.giu-static-pill-icon-and-text {\n display: inline-grid;\n grid-auto-flow: column;\n grid-auto-columns: max-content;\n gap: var(--mer-spacing--xs);\n}\n\n:host {\n display: block;\n}\n\nsection {\n border-top: 1px solid #ccc;\n margin-top: 300px;\n container-name: section;\n container-type: inline-size;\n}\n\ngxg-combo-box {\n opacity: 1;\n}\n\n@container section (width < 400px) {\n gxg-combo-box {\n opacity: 0.5;\n }\n}";
4
9
 
5
- var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
6
- if (kind === "a" && !f)
7
- throw new TypeError("Private accessor was defined without a getter");
8
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
9
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
- if (kind === "m")
14
- throw new TypeError("Private method is not writable");
15
- if (kind === "a" && !f)
16
- throw new TypeError("Private accessor was defined without a setter");
17
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
18
- throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
- };
21
- var _GxIdeTest_listBoxRef, _GxIdeTest_actionListModelOne, _GxIdeTest_actionListModelTwo, _GxIdeTest_modelOneButtonHandler, _GxIdeTest_modelTwoButtonHandler;
22
10
  const CSS_BUNDLES = [
23
11
  "resets/box-sizing",
24
12
  // "utils/form",
@@ -26,55 +14,17 @@ const CSS_BUNDLES = [
26
14
  // "utils/typography",
27
15
  "components/button",
28
16
  // "components/checkbox",
29
- "components/list-box"
17
+ "components/list-box",
18
+ "components/icon"
30
19
  ];
20
+ const VERSION_ICON = getIconPath({
21
+ category: "system",
22
+ name: "version",
23
+ colorType: "on-surface"
24
+ });
31
25
  const GxIdeTest = class {
32
26
  constructor(hostRef) {
33
27
  registerInstance(this, hostRef);
34
- /* THIS IS A COMPONENT FOR TESTING PURPOSES. DO WHATEVER YOU WANT.*/
35
- _GxIdeTest_listBoxRef.set(this, void 0);
36
- _GxIdeTest_actionListModelOne.set(this, [
37
- {
38
- id: "id-1-1",
39
- caption: "Item 1-1",
40
- type: "actionable"
41
- },
42
- {
43
- id: "id-1-2",
44
- caption: "Item 1-2",
45
- type: "actionable"
46
- },
47
- {
48
- id: "id-1-3",
49
- caption: "Item 1-3",
50
- type: "actionable"
51
- }
52
- ]);
53
- _GxIdeTest_actionListModelTwo.set(this, [
54
- {
55
- id: "id-2-1",
56
- caption: "Item 2-1",
57
- type: "actionable"
58
- },
59
- {
60
- id: "id-2-2",
61
- caption: "Item 2-2",
62
- type: "actionable"
63
- },
64
- {
65
- id: "id-2-3",
66
- caption: "Item 2-3",
67
- type: "actionable"
68
- }
69
- ]);
70
- _GxIdeTest_modelOneButtonHandler.set(this, () => {
71
- __classPrivateFieldGet(this, _GxIdeTest_listBoxRef, "f").model = [];
72
- __classPrivateFieldGet(this, _GxIdeTest_listBoxRef, "f").model = __classPrivateFieldGet(this, _GxIdeTest_actionListModelOne, "f");
73
- });
74
- _GxIdeTest_modelTwoButtonHandler.set(this, () => {
75
- __classPrivateFieldGet(this, _GxIdeTest_listBoxRef, "f").model = [];
76
- __classPrivateFieldGet(this, _GxIdeTest_listBoxRef, "f").model = __classPrivateFieldGet(this, _GxIdeTest_actionListModelTwo, "f");
77
- });
78
28
  this.name = undefined;
79
29
  this.filterOn = true;
80
30
  }
@@ -87,10 +37,9 @@ const GxIdeTest = class {
87
37
  // 9.LOCAL METHODS //
88
38
  // 10.RENDER() FUNCTION //
89
39
  render() {
90
- return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("ch-action-list-render", { class: "list-box", selection: "single", model: __classPrivateFieldGet(this, _GxIdeTest_actionListModelOne, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTest_listBoxRef, el, "f")) }), h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeTest_modelOneButtonHandler, "f") }, "set model one"), h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeTest_modelTwoButtonHandler, "f") }, "set model two")));
40
+ return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("span", { class: "giu-static-pill-icon-and-text giu-static-pill-icon-and-text--version" }, h("ch-image", { class: "icon-md", type: "mask", src: VERSION_ICON }), "V4.3")));
91
41
  }
92
42
  };
93
- _GxIdeTest_listBoxRef = new WeakMap(), _GxIdeTest_actionListModelOne = new WeakMap(), _GxIdeTest_actionListModelTwo = new WeakMap(), _GxIdeTest_modelOneButtonHandler = new WeakMap(), _GxIdeTest_modelTwoButtonHandler = new WeakMap();
94
43
  GxIdeTest.style = testCss;
95
44
 
96
45
  export { GxIdeTest as gx_ide_test };
@@ -1 +1 @@
1
- {"file":"gx-ide-test.entry.js","mappings":";;AAAA,MAAM,OAAO,GAAG,2RAA2R;;;;;;;;;;;;;;;;;;;ACM3S,MAAM,WAAW,GAAmB;IAClC,mBAAmB;;;;IAInB,mBAAmB;;IAEnB,qBAAqB;CACtB,CAAC;MAOW,SAAS;;;;QAEpB,wCAA4C;QAC5C,wCAA6C;YAC3C;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;SACF,EAAC;QAEF,wCAA6C;YAC3C;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;aACnB;SACF,EAAC;QAEF,2CAAyB;YACvB,uBAAA,IAAI,6BAAY,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,uBAAA,IAAI,6BAAY,CAAC,KAAK,GAAG,uBAAA,IAAI,qCAAoB,CAAC;SACnD,EAAC;QAEF,2CAAyB;YACvB,uBAAA,IAAI,6BAAY,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,uBAAA,IAAI,6BAAY,CAAC,KAAK,GAAG,uBAAA,IAAI,qCAAoB,CAAC;SACnD,EAAC;;wBAa2B,IAAI;;;;IAMjC,iBAAiB,MAAK;;;;;;IAYtB,MAAM;QACJ,QACE,EAAC,IAAI,QACH,gBAAU,KAAK,EAAE,WAAW,GAAa,EAEzC,6BACE,KAAK,EAAC,UAAU,EAChB,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,uBAAA,IAAI,qCAAoB,EAC/B,GAAG,EAAE,CAAC,EAAiC,MACpC,uBAAA,IAAI,yBAAe,EAAmC,MAAA,CAAC,GAEnC,EACzB,cAAQ,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,uBAAA,IAAI,wCAAuB,oBAE1D,EACT,cAAQ,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,uBAAA,IAAI,wCAAuB,oBAE1D,CACJ,EACP;KACH;;;;;;;","names":[],"sources":["src/components/_test/test.scss?tag=gx-ide-test&encapsulation=shadow","src/components/_test/test.tsx"],"sourcesContent":[":host {\n display: block;\n}\nsection {\n border-top: 1px solid #ccc;\n margin-top: 300px;\n container-name: section;\n container-type: inline-size;\n}\ngxg-combo-box {\n opacity: 1;\n}\n@container section (width < 400px) {\n gxg-combo-box {\n opacity: 0.5;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ActionListItemModel } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n \"components/button\",\n // \"components/checkbox\",\n \"components/list-box\"\n];\n\n@Component({\n tag: \"gx-ide-test\",\n styleUrl: \"test.scss\",\n shadow: true\n})\nexport class GxIdeTest {\n /* THIS IS A COMPONENT FOR TESTING PURPOSES. DO WHATEVER YOU WANT.*/\n #listBoxRef!: HTMLChActionListRenderElement;\n #actionListModelOne: ActionListItemModel[] = [\n {\n id: \"id-1-1\",\n caption: \"Item 1-1\",\n type: \"actionable\"\n },\n {\n id: \"id-1-2\",\n caption: \"Item 1-2\",\n type: \"actionable\"\n },\n {\n id: \"id-1-3\",\n caption: \"Item 1-3\",\n type: \"actionable\"\n }\n ];\n\n #actionListModelTwo: ActionListItemModel[] = [\n {\n id: \"id-2-1\",\n caption: \"Item 2-1\",\n type: \"actionable\"\n },\n {\n id: \"id-2-2\",\n caption: \"Item 2-2\",\n type: \"actionable\"\n },\n {\n id: \"id-2-3\",\n caption: \"Item 2-3\",\n type: \"actionable\"\n }\n ];\n\n #modelOneButtonHandler = () => {\n this.#listBoxRef.model = [];\n this.#listBoxRef.model = this.#actionListModelOne;\n };\n\n #modelTwoButtonHandler = () => {\n this.#listBoxRef.model = [];\n this.#listBoxRef.model = this.#actionListModelTwo;\n };\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component name\n */\n @Prop() readonly name: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n // 3.STATE() VARIABLES //\n\n @State() filterOn: boolean = true;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n // 5.EVENTS (EMIT) //\n\n componentWillLoad() {}\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-action-list-render\n class=\"list-box\"\n selection=\"single\"\n model={this.#actionListModelOne}\n ref={(el: HTMLChActionListRenderElement) =>\n (this.#listBoxRef = el as HTMLChActionListRenderElement)\n }\n ></ch-action-list-render>\n <button class=\"button-primary\" onClick={this.#modelOneButtonHandler}>\n set model one\n </button>\n <button class=\"button-primary\" onClick={this.#modelTwoButtonHandler}>\n set model two\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"gx-ide-test.entry.js","mappings":";;;;;;;AAAA,MAAM,OAAO,GAAG,47hBAA47hB;;ACM58hB,MAAM,WAAW,GAAmB;IAClC,mBAAmB;;;;IAInB,mBAAmB;;IAEnB,qBAAqB;IACrB,iBAAiB;CAClB,CAAC;AAEF,MAAM,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;MAMU,SAAS;;;;wBAcS,IAAI;;;;IAMjC,iBAAiB,MAAK;;;;;;IAYtB,MAAM;QACJ,QACE,EAAC,IAAI,QACH,gBAAU,KAAK,EAAE,WAAW,GAAa,EAIzC,YAAM,KAAK,EAAC,sEAAsE,IAChF,gBAAU,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAE,YAAY,GAAa,SAE/D,CACF,EACP;KACH;;;;;;","names":[],"sources":["src/components/_test/test.scss?tag=gx-ide-test&encapsulation=shadow","src/components/_test/test.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n\n:host {\n display: block;\n}\nsection {\n border-top: 1px solid #ccc;\n margin-top: 300px;\n container-name: section;\n container-type: inline-size;\n}\ngxg-combo-box {\n opacity: 1;\n}\n@container section (width < 400px) {\n gxg-combo-box {\n opacity: 0.5;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n \"components/button\",\n // \"components/checkbox\",\n \"components/list-box\",\n \"components/icon\"\n];\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n@Component({\n tag: \"gx-ide-test\",\n styleUrl: \"test.scss\",\n shadow: true\n})\nexport class GxIdeTest {\n /* THIS IS A COMPONENT FOR TESTING PURPOSES. DO WHATEVER YOU WANT.*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component name\n */\n @Prop() readonly name: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n // 3.STATE() VARIABLES //\n\n @State() filterOn: boolean = true;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n // 5.EVENTS (EMIT) //\n\n componentWillLoad() {}\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n {/* <span class=\"giu-static-pill\">Hola</span> */}\n\n <span class=\"giu-static-pill-icon-and-text giu-static-pill-icon-and-text--version\">\n <ch-image class=\"icon-md\" type=\"mask\" src={VERSION_ICON}></ch-image>\n V4.3\n </span>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-b153bfd0.js';
2
- import { c as config } from './config-9eaeb14b.js';
2
+ import { c as config } from './config-5a775b7a.js';
3
3
  import { L as Locale } from './locale-e5107fad.js';
4
4
 
5
- const wfSettingsCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.options{max-width:50%;display:flex;flex-direction:column;gap:var(--gx-ide-form-items-gap)}.message-item{display:flex;align-items:start;gap:var(--mer-spacing--xs)}";
5
+ const wfSettingsCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}.giu-static-pill-icon-and-text,.giu-static-pill{background-color:var(--elevation-background-color, var(--mer-surface__elevation--01));padding-inline:var(--mer-spacing--xs);color:var(--mer-text__on-elevation);font-size:var(--font-size-body-s);line-height:1.4;font-weight:var(--font-weight-regular);border-radius:var(--mer-border__width--lg);min-block-size:25px;display:inline-grid;align-items:center;pointer-events:none}.giu-static-pill-icon-and-text{display:inline-grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:var(--mer-spacing--xs)}:host{display:block}.options{max-width:50%;display:flex;flex-direction:column;gap:var(--gx-ide-form-items-gap)}.message-item{display:flex;align-items:start;gap:var(--mer-spacing--xs)}";
6
6
 
7
7
  const GxIdeWFSettings = class {
8
8
  constructor(hostRef) {