@genexus/genexus-ide-ui 1.0.46 → 1.0.48

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 (305) hide show
  1. package/dist/cjs/MERCURY_ASSETS-fbc83c8c.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-fbc83c8c.js.map +1 -0
  3. package/dist/cjs/{config-b21feeee.js → config-6a768514.js} +3 -3
  4. package/dist/cjs/config-6a768514.js.map +1 -0
  5. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  6. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  16. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +19 -17
  17. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +2 -2
  20. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +2 -2
  21. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-design-import.cjs.entry.js +4 -4
  23. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +3 -3
  30. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-loader.cjs.entry.js +2 -2
  32. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  34. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
  37. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +5 -5
  38. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +5 -5
  40. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -2
  42. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +3 -3
  44. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  46. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +1 -1
  47. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  48. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
  49. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -2
  50. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-start-page.cjs.entry.js +8 -8
  52. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  54. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  55. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  56. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  57. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  58. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  59. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  61. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +3 -3
  62. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/collection/common/config.js +2 -2
  66. package/dist/collection/common/config.js.map +1 -1
  67. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +1 -1
  68. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
  69. package/dist/collection/components/_helpers/ide-loader/ide-loader.js +2 -2
  70. package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
  71. package/dist/collection/components/current-user-info/current-user-info.css +16 -5
  72. package/dist/collection/components/current-user-info/current-user-info.js +38 -15
  73. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  74. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -2
  75. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -2
  76. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -2
  77. package/dist/collection/components/data-type-selector/data-type-selector.js +1 -1
  78. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  79. package/dist/collection/components/design-import/design-import.js +2 -2
  80. package/dist/collection/components/design-import/design-import.js.map +1 -1
  81. package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -2
  82. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  83. package/dist/collection/components/navigation-report/navigation-report.js +1 -1
  84. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
  85. package/dist/collection/components/new-environment/new-environment.js +4 -4
  86. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  87. package/dist/collection/components/new-kb/new-kb.js +3 -3
  88. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  89. package/dist/collection/components/new-object/new-object.js +1 -1
  90. package/dist/collection/components/new-object/new-object.js.map +1 -1
  91. package/dist/collection/components/object-selector/object-selector.js +1 -1
  92. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  93. package/dist/collection/components/select-user-team/select-user-team.js +1 -1
  94. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  95. package/dist/collection/components/sign-in-team/sign-in-team.js +2 -2
  96. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  97. package/dist/collection/components/start-page/start-page.js +7 -7
  98. package/dist/collection/components/start-page/start-page.js.map +1 -1
  99. package/dist/collection/components/ww-attributes/ww-attributes.js +1 -1
  100. package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
  101. package/dist/components/MERCURY_ASSETS.js +2 -2
  102. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  103. package/dist/components/config.js +2 -2
  104. package/dist/components/config.js.map +1 -1
  105. package/dist/components/gx-ide-current-user-info.js +19 -16
  106. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  107. package/dist/components/gx-ide-data-type-selector.js +1 -1
  108. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  109. package/dist/components/gx-ide-design-import.js +2 -2
  110. package/dist/components/gx-ide-design-import.js.map +1 -1
  111. package/dist/components/gx-ide-empty-state2.js +1 -1
  112. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  113. package/dist/components/gx-ide-kb-manager-import.js +2 -2
  114. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  115. package/dist/components/gx-ide-navigation-report.js +1 -1
  116. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  117. package/dist/components/gx-ide-new-environment.js +4 -4
  118. package/dist/components/gx-ide-new-environment.js.map +1 -1
  119. package/dist/components/gx-ide-new-kb.js +3 -3
  120. package/dist/components/gx-ide-new-kb.js.map +1 -1
  121. package/dist/components/gx-ide-new-object.js +1 -1
  122. package/dist/components/gx-ide-new-object.js.map +1 -1
  123. package/dist/components/gx-ide-object-selector.js +1 -1
  124. package/dist/components/gx-ide-object-selector.js.map +1 -1
  125. package/dist/components/gx-ide-select-user-team.js +1 -1
  126. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  127. package/dist/components/gx-ide-sign-in-team.js +2 -2
  128. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  129. package/dist/components/gx-ide-start-page.js +7 -7
  130. package/dist/components/gx-ide-start-page.js.map +1 -1
  131. package/dist/components/gx-ide-ww-attributes.js +1 -1
  132. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  133. package/dist/components/ide-loader.js +2 -2
  134. package/dist/components/ide-loader.js.map +1 -1
  135. package/dist/esm/MERCURY_ASSETS-91a1db9c.js +7 -0
  136. package/dist/esm/MERCURY_ASSETS-91a1db9c.js.map +1 -0
  137. package/dist/esm/{config-ed1f26d7.js → config-1ef9d75a.js} +3 -3
  138. package/dist/{cjs/config-b21feeee.js.map → esm/config-1ef9d75a.js.map} +1 -1
  139. package/dist/esm/genexus-ide-ui.js +1 -1
  140. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  141. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  142. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  143. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  144. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  145. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  146. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  147. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  148. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  149. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  150. package/dist/esm/gx-ide-current-user-info.entry.js +19 -17
  151. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  152. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  153. package/dist/esm/gx-ide-data-selector.entry.js +2 -2
  154. package/dist/esm/gx-ide-data-type-selector.entry.js +2 -2
  155. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  156. package/dist/esm/gx-ide-design-import.entry.js +4 -4
  157. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  158. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  159. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  160. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  161. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  162. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  163. package/dist/esm/gx-ide-kb-manager-import.entry.js +3 -3
  164. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  165. package/dist/esm/gx-ide-loader.entry.js +2 -2
  166. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  167. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  168. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  169. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  170. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  171. package/dist/esm/gx-ide-new-environment.entry.js +5 -5
  172. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  173. package/dist/esm/gx-ide-new-kb.entry.js +5 -5
  174. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  175. package/dist/esm/gx-ide-new-object.entry.js +2 -2
  176. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  177. package/dist/esm/gx-ide-object-selector.entry.js +3 -3
  178. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  179. package/dist/esm/gx-ide-references.entry.js +1 -1
  180. package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
  181. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  182. package/dist/esm/gx-ide-share-kb.entry.js +2 -2
  183. package/dist/esm/gx-ide-sign-in-team.entry.js +2 -2
  184. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-start-page.entry.js +8 -8
  186. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  187. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  188. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  189. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  190. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  191. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  192. package/dist/esm/gx-ide-template.entry.js +1 -1
  193. package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
  194. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  195. package/dist/esm/gx-ide-ww-attributes.entry.js +3 -3
  196. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  198. package/dist/esm/loader.js +1 -1
  199. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  200. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  201. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -2
  202. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -2
  203. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -2
  204. package/dist/genexus-ide-ui/{p-6747cc1e.entry.js → p-0c60c76f.entry.js} +5 -5
  205. package/dist/genexus-ide-ui/{p-78b90603.js → p-13738332.js} +3 -3
  206. package/dist/genexus-ide-ui/{p-78b90603.js.map → p-13738332.js.map} +1 -1
  207. package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js → p-18317dd7.entry.js} +5 -5
  208. package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js.map → p-18317dd7.entry.js.map} +1 -1
  209. package/dist/genexus-ide-ui/{p-617e65ca.js → p-1986d34d.js} +2190 -20
  210. package/dist/genexus-ide-ui/p-1986d34d.js.map +1 -0
  211. package/dist/genexus-ide-ui/{p-793248c8.entry.js → p-1e44952c.entry.js} +2 -2
  212. package/dist/genexus-ide-ui/{p-f50076d3.entry.js → p-1feae6ef.entry.js} +2 -2
  213. package/dist/genexus-ide-ui/{p-092609aa.entry.js → p-22d8de70.entry.js} +2 -2
  214. package/dist/genexus-ide-ui/{p-bb9df26f.entry.js → p-27a2429c.entry.js} +2 -2
  215. package/dist/genexus-ide-ui/{p-3637528d.entry.js → p-2b1634e7.entry.js} +2 -2
  216. package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js → p-2dcfa6ef.entry.js} +32 -32
  217. package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js.map → p-2dcfa6ef.entry.js.map} +1 -1
  218. package/dist/genexus-ide-ui/{p-b04a0ae3.entry.js → p-2e043c76.entry.js} +3 -3
  219. package/dist/genexus-ide-ui/{p-b04a0ae3.entry.js.map → p-2e043c76.entry.js.map} +1 -1
  220. package/dist/genexus-ide-ui/{p-d18718c7.entry.js → p-307e47a1.entry.js} +2 -2
  221. package/dist/genexus-ide-ui/{p-a7027cf7.entry.js → p-37a2e9ac.entry.js} +2 -2
  222. package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js → p-4621ec24.entry.js} +2 -2
  223. package/dist/genexus-ide-ui/{p-efebc74b.entry.js → p-4f6d120f.entry.js} +3 -3
  224. package/dist/genexus-ide-ui/{p-efebc74b.entry.js.map → p-4f6d120f.entry.js.map} +1 -1
  225. package/dist/genexus-ide-ui/{p-2b658e35.entry.js → p-4f815835.entry.js} +2 -2
  226. package/dist/genexus-ide-ui/{p-64e09524.entry.js → p-64e05f19.entry.js} +39 -39
  227. package/dist/genexus-ide-ui/p-64e05f19.entry.js.map +1 -0
  228. package/dist/genexus-ide-ui/{p-5619120d.entry.js → p-64f2a9f4.entry.js} +4 -4
  229. package/dist/genexus-ide-ui/{p-5619120d.entry.js.map → p-64f2a9f4.entry.js.map} +1 -1
  230. package/dist/genexus-ide-ui/{p-10da0eee.entry.js → p-6d8b4f96.entry.js} +2 -2
  231. package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js → p-7153555f.entry.js} +12 -12
  232. package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js.map → p-7153555f.entry.js.map} +1 -1
  233. package/dist/genexus-ide-ui/{p-faea4a40.entry.js → p-846c67a1.entry.js} +2 -2
  234. package/dist/genexus-ide-ui/{p-7754ae2e.entry.js → p-86b0cf22.entry.js} +52 -52
  235. package/dist/genexus-ide-ui/{p-7754ae2e.entry.js.map → p-86b0cf22.entry.js.map} +1 -1
  236. package/dist/genexus-ide-ui/{p-75ed87db.entry.js → p-8cebb078.entry.js} +2 -2
  237. package/dist/genexus-ide-ui/{p-1693a2d1.entry.js → p-92c51f3e.entry.js} +20 -20
  238. package/dist/genexus-ide-ui/{p-ab653cc2.entry.js → p-9dbe2323.entry.js} +2 -2
  239. package/dist/genexus-ide-ui/{p-ab653cc2.entry.js.map → p-9dbe2323.entry.js.map} +1 -1
  240. package/dist/genexus-ide-ui/{p-48cc3f73.entry.js → p-9e34f166.entry.js} +3 -3
  241. package/dist/genexus-ide-ui/{p-48cc3f73.entry.js.map → p-9e34f166.entry.js.map} +1 -1
  242. package/dist/genexus-ide-ui/{p-0a690a6b.entry.js → p-9e78c60c.entry.js} +2 -2
  243. package/dist/genexus-ide-ui/{p-a9d67992.entry.js → p-a1c5775d.entry.js} +3 -3
  244. package/dist/genexus-ide-ui/{p-a27c088d.entry.js → p-a40648dc.entry.js} +41 -39
  245. package/dist/genexus-ide-ui/p-a40648dc.entry.js.map +1 -0
  246. package/dist/genexus-ide-ui/{p-fc61a10f.entry.js → p-a837de2e.entry.js} +2 -2
  247. package/dist/genexus-ide-ui/{p-0f08bb20.entry.js → p-a8739942.entry.js} +18 -18
  248. package/dist/genexus-ide-ui/p-a8739942.entry.js.map +1 -0
  249. package/dist/genexus-ide-ui/{p-c0e184da.entry.js → p-aa324232.entry.js} +2 -2
  250. package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js → p-af05e095.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-de797eeb.entry.js → p-b5fa3116.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-c7e6222b.entry.js → p-c1162623.entry.js} +55 -55
  253. package/dist/genexus-ide-ui/{p-c7e6222b.entry.js.map → p-c1162623.entry.js.map} +1 -1
  254. package/dist/genexus-ide-ui/{p-5dfd773c.entry.js → p-d9c27591.entry.js} +2 -2
  255. package/dist/genexus-ide-ui/{p-e5712f63.entry.js → p-e2a87cd7.entry.js} +2 -2
  256. package/dist/genexus-ide-ui/{p-6c1928d2.entry.js → p-e36d7f5c.entry.js} +3 -3
  257. package/dist/genexus-ide-ui/{p-6c1928d2.entry.js.map → p-e36d7f5c.entry.js.map} +1 -1
  258. package/dist/genexus-ide-ui/{p-47e31aba.entry.js → p-e4bbec21.entry.js} +3 -3
  259. package/dist/genexus-ide-ui/{p-c2274796.entry.js → p-e4bd955a.entry.js} +2 -2
  260. package/dist/genexus-ide-ui/{p-d5aa2525.entry.js → p-ec2cb326.entry.js} +2 -2
  261. package/dist/genexus-ide-ui/{p-2137f5fa.entry.js → p-ec6129c7.entry.js} +14 -14
  262. package/dist/genexus-ide-ui/{p-2137f5fa.entry.js.map → p-ec6129c7.entry.js.map} +1 -1
  263. package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js → p-f1cc5d30.entry.js} +2 -2
  264. package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js → p-f252dd07.entry.js} +3 -3
  265. package/dist/genexus-ide-ui/{p-6563141c.entry.js → p-f827b9b8.entry.js} +2 -2
  266. package/dist/types/components/current-user-info/current-user-info.d.ts +9 -0
  267. package/dist/types/components.d.ts +10 -2
  268. package/package.json +5 -5
  269. package/dist/cjs/MERCURY_ASSETS-27fcab57.js +0 -9
  270. package/dist/cjs/MERCURY_ASSETS-27fcab57.js.map +0 -1
  271. package/dist/esm/MERCURY_ASSETS-845caae6.js +0 -7
  272. package/dist/esm/MERCURY_ASSETS-845caae6.js.map +0 -1
  273. package/dist/esm/config-ed1f26d7.js.map +0 -1
  274. package/dist/genexus-ide-ui/p-0f08bb20.entry.js.map +0 -1
  275. package/dist/genexus-ide-ui/p-617e65ca.js.map +0 -1
  276. package/dist/genexus-ide-ui/p-64e09524.entry.js.map +0 -1
  277. package/dist/genexus-ide-ui/p-a27c088d.entry.js.map +0 -1
  278. /package/dist/genexus-ide-ui/{p-6747cc1e.entry.js.map → p-0c60c76f.entry.js.map} +0 -0
  279. /package/dist/genexus-ide-ui/{p-793248c8.entry.js.map → p-1e44952c.entry.js.map} +0 -0
  280. /package/dist/genexus-ide-ui/{p-f50076d3.entry.js.map → p-1feae6ef.entry.js.map} +0 -0
  281. /package/dist/genexus-ide-ui/{p-092609aa.entry.js.map → p-22d8de70.entry.js.map} +0 -0
  282. /package/dist/genexus-ide-ui/{p-bb9df26f.entry.js.map → p-27a2429c.entry.js.map} +0 -0
  283. /package/dist/genexus-ide-ui/{p-3637528d.entry.js.map → p-2b1634e7.entry.js.map} +0 -0
  284. /package/dist/genexus-ide-ui/{p-d18718c7.entry.js.map → p-307e47a1.entry.js.map} +0 -0
  285. /package/dist/genexus-ide-ui/{p-a7027cf7.entry.js.map → p-37a2e9ac.entry.js.map} +0 -0
  286. /package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js.map → p-4621ec24.entry.js.map} +0 -0
  287. /package/dist/genexus-ide-ui/{p-2b658e35.entry.js.map → p-4f815835.entry.js.map} +0 -0
  288. /package/dist/genexus-ide-ui/{p-10da0eee.entry.js.map → p-6d8b4f96.entry.js.map} +0 -0
  289. /package/dist/genexus-ide-ui/{p-faea4a40.entry.js.map → p-846c67a1.entry.js.map} +0 -0
  290. /package/dist/genexus-ide-ui/{p-75ed87db.entry.js.map → p-8cebb078.entry.js.map} +0 -0
  291. /package/dist/genexus-ide-ui/{p-1693a2d1.entry.js.map → p-92c51f3e.entry.js.map} +0 -0
  292. /package/dist/genexus-ide-ui/{p-0a690a6b.entry.js.map → p-9e78c60c.entry.js.map} +0 -0
  293. /package/dist/genexus-ide-ui/{p-a9d67992.entry.js.map → p-a1c5775d.entry.js.map} +0 -0
  294. /package/dist/genexus-ide-ui/{p-fc61a10f.entry.js.map → p-a837de2e.entry.js.map} +0 -0
  295. /package/dist/genexus-ide-ui/{p-c0e184da.entry.js.map → p-aa324232.entry.js.map} +0 -0
  296. /package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js.map → p-af05e095.entry.js.map} +0 -0
  297. /package/dist/genexus-ide-ui/{p-de797eeb.entry.js.map → p-b5fa3116.entry.js.map} +0 -0
  298. /package/dist/genexus-ide-ui/{p-5dfd773c.entry.js.map → p-d9c27591.entry.js.map} +0 -0
  299. /package/dist/genexus-ide-ui/{p-e5712f63.entry.js.map → p-e2a87cd7.entry.js.map} +0 -0
  300. /package/dist/genexus-ide-ui/{p-47e31aba.entry.js.map → p-e4bbec21.entry.js.map} +0 -0
  301. /package/dist/genexus-ide-ui/{p-c2274796.entry.js.map → p-e4bd955a.entry.js.map} +0 -0
  302. /package/dist/genexus-ide-ui/{p-d5aa2525.entry.js.map → p-ec2cb326.entry.js.map} +0 -0
  303. /package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js.map → p-f1cc5d30.entry.js.map} +0 -0
  304. /package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js.map → p-f252dd07.entry.js.map} +0 -0
  305. /package/dist/genexus-ide-ui/{p-6563141c.entry.js.map → p-f827b9b8.entry.js.map} +0 -0
@@ -36,8 +36,8 @@ const config = {
36
36
  /* The amount of milliseconds for any control that supports debounce */
37
37
  inputDebounce: 500,
38
38
  headingsClasses: {
39
- cardRegular: "heading-3",
40
- cardSmall: "text-body-regular-m"
39
+ cardRegular: "subtitle-regular-s",
40
+ cardSmall: "body-regular-m"
41
41
  },
42
42
  utilityClasses: {
43
43
  opacityZero: "opacity-0",
@@ -1 +1 @@
1
- {"file":"config.js","mappings":"AAEA;MACa,MAAM,GAAG;;IAEpB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;SACnB;KACF;IACD,cAAc,EAAE;QACd,aAAa,EAAE,IAAI;KACpB;IACD,WAAW,EAAE;QACX,OAAO,EAAE;YACP,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,oBAAoB;YAC5B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,OAAO;SACrB;KACF;IACD,MAAM,EAAE;;QAEN,OAAO,EAAE,IAAI;KACd;IACD,eAAe,EAAE;QACf,UAAU,EAAE,eAAiC;QAC7C,WAAW,EAAE,cAAgC;QAC7C,KAAK,EAAE,GAAG;KACX;;IAED,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE;QACf,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,qBAAqB;KACjC;IACD,cAAc,EAAE;QACd,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,aAAa;KAC1B;;;;;","names":[],"sources":["src/common/config.ts"],"sourcesContent":["import { ChPopoverAlign } from \"@genexus/chameleon-controls-library\";\n\n/* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/\nexport const config = {\n // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.\n tooltip: true,\n gxgMessage: {\n common: {\n type: \"text-regular\",\n textAlign: \"center\",\n padding: \"m\",\n maxWidth: \"250px\",\n minHeight: \"300px\"\n }\n },\n gxIdeContainer: {\n slimmerFooter: true\n },\n tabularGrid: {\n colSize: {\n minContent: \"min-content\",\n maxContent: \"max-content\",\n auto: \"auto\",\n common: \"minmax(100px, 1fr)\",\n commonDouble: \"minmax(150px, 2fr)\",\n description: \"250px\"\n }\n },\n loader: {\n /* The amount of milliseconds the loader will display, before abort because of timeout*/\n timeout: 4000\n },\n tooltipSettings: {\n blockAlign: \"outside-start\" as ChPopoverAlign,\n inlineAlign: \"inside-start\" as ChPopoverAlign,\n delay: 200\n },\n /* The amount of milliseconds for any control that supports debounce */\n inputDebounce: 500,\n headingsClasses: {\n cardRegular: \"heading-3\",\n cardSmall: \"text-body-regular-m\"\n },\n utilityClasses: {\n opacityZero: \"opacity-0\",\n exactMatch: \"exact-match\"\n }\n};\n\n/* - - - - - - - - - - - - - - - - \nch-tree-view-render\n- - - - - - - - - - - - - - - - */\nexport const getImagePathTreeViewCallback = (imageSrc: string) =>\n `./assets/icons/${imageSrc}.svg#enabled`;\n"],"version":3}
1
+ {"file":"config.js","mappings":"AAEA;MACa,MAAM,GAAG;;IAEpB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;SACnB;KACF;IACD,cAAc,EAAE;QACd,aAAa,EAAE,IAAI;KACpB;IACD,WAAW,EAAE;QACX,OAAO,EAAE;YACP,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,oBAAoB;YAC5B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,OAAO;SACrB;KACF;IACD,MAAM,EAAE;;QAEN,OAAO,EAAE,IAAI;KACd;IACD,eAAe,EAAE;QACf,UAAU,EAAE,eAAiC;QAC7C,WAAW,EAAE,cAAgC;QAC7C,KAAK,EAAE,GAAG;KACX;;IAED,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE;QACf,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,gBAAgB;KAC5B;IACD,cAAc,EAAE;QACd,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,aAAa;KAC1B;;;;;","names":[],"sources":["src/common/config.ts"],"sourcesContent":["import { ChPopoverAlign } from \"@genexus/chameleon-controls-library\";\n\n/* The purpose of config is to provide a simple way to change options/settings that are generally applied on all the components*/\nexport const config = {\n // tooltip is a property that exists on some gemini controls. When set to true, it will display the error/warning/success message (if any) by using a tooltip, instead of displaying the message under the control. The tooltip prevents changes on the component total height, which is desired.\n tooltip: true,\n gxgMessage: {\n common: {\n type: \"text-regular\",\n textAlign: \"center\",\n padding: \"m\",\n maxWidth: \"250px\",\n minHeight: \"300px\"\n }\n },\n gxIdeContainer: {\n slimmerFooter: true\n },\n tabularGrid: {\n colSize: {\n minContent: \"min-content\",\n maxContent: \"max-content\",\n auto: \"auto\",\n common: \"minmax(100px, 1fr)\",\n commonDouble: \"minmax(150px, 2fr)\",\n description: \"250px\"\n }\n },\n loader: {\n /* The amount of milliseconds the loader will display, before abort because of timeout*/\n timeout: 4000\n },\n tooltipSettings: {\n blockAlign: \"outside-start\" as ChPopoverAlign,\n inlineAlign: \"inside-start\" as ChPopoverAlign,\n delay: 200\n },\n /* The amount of milliseconds for any control that supports debounce */\n inputDebounce: 500,\n headingsClasses: {\n cardRegular: \"subtitle-regular-s\",\n cardSmall: \"body-regular-m\"\n },\n utilityClasses: {\n opacityZero: \"opacity-0\",\n exactMatch: \"exact-match\"\n }\n};\n\n/* - - - - - - - - - - - - - - - - \nch-tree-view-render\n- - - - - - - - - - - - - - - - */\nexport const getImagePathTreeViewCallback = (imageSrc: string) =>\n `./assets/icons/${imageSrc}.svg#enabled`;\n"],"version":3}
@@ -49,7 +49,7 @@ const limitFullName = (fullName) => {
49
49
  }
50
50
  };
51
51
 
52
- const currentUserInfoCss = "@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{display:inline-grid;justify-items:end;block-size:100%}.user-login__button{all:unset;display:grid;grid-template-columns:max-content max-content max-content;align-items:center;gap:var(--mer-spacing--sm);block-size:auto;cursor:pointer}.user-login__details{display:grid;grid-template-rows:max-content max-content;gap:var(--mer-spacing--3xs);justify-items:end}.user-login__name{font-weight:var(--mer-font__weight--medium);font-size:var(--mer-font__size--3xs);color:var(--mer-text__on-elevation)}.user-login__organization{font-weight:var(--mer-font__weight--light);font-size:var(--mer-font__size--4xs);color:var(--mer-text__neutral)}.user-login__name,.user-login__organization{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:120px;display:inline-block}.user-login__avatar{font-size:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;block-size:var(--mer-spacing--lg);inline-size:var(--mer-spacing--lg);color:var(--mer-text__on-elevation);border-radius:50%;background-color:var(--mer-color__tinted-primary--10);border:var(--mer-border__width--sm) solid var(--mer-color__primary--200)}.user-login__footer{display:flex;flex-direction:column;gap:var(--mer-spacing--2xs)}.agreement-link{text-decoration:underline;cursor:pointer}";
52
+ const currentUserInfoCss = "@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{display:inline-grid;justify-items:end;block-size:100%}.dropdown::part(expandable-button){display:grid;grid-template-columns:max-content max-content max-content;align-items:center;gap:var(--mer-spacing--sm);block-size:auto;cursor:pointer}.user-login__details{display:grid;grid-template-rows:max-content max-content;gap:var(--mer-spacing--3xs);justify-items:end}.user-login__name{font-weight:var(--mer-font__weight--medium);font-size:var(--mer-font__size--3xs);color:var(--mer-text__on-elevation)}.user-login__organization{font-weight:var(--mer-font__weight--light);font-size:var(--mer-font__size--4xs);color:var(--mer-text__neutral)}.user-login__name,.user-login__organization{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:120px;display:inline-block}.user-login__avatar{font-size:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;block-size:var(--mer-spacing--lg);inline-size:var(--mer-spacing--lg);color:var(--mer-text__on-elevation);border-radius:50%;background-color:var(--mer-color__tinted-primary--10);border:var(--mer-border__width--sm) solid var(--mer-color__primary--200)}.user-login__footer{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.user-login__footer :where(button,a){all:unset;display:inline-flex;align-items:center;user-select:none;touch-action:manipulation;cursor:pointer}.user-login__footer button:disabled{pointer-events:none}.user-login__footer .agreement-link{text-decoration:underline;cursor:pointer;}";
53
53
 
54
54
  var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
55
55
  if (kind === "m")
@@ -105,15 +105,16 @@ const GxIdeNewEnvironment = /*@__PURE__*/ proxyCustomElement(class GxIdeNewEnvir
105
105
  // this.changeModeCallback(this.#mode);
106
106
  // }
107
107
  // };
108
- _GxIdeNewEnvironment_dropDownitemClickHandler.set(this, (_event, _target, itemId) => {
109
- if (itemId === MY_ACCOUNT_ID) ;
110
- else if (itemId === CHANGE_TEAM_ID) {
108
+ _GxIdeNewEnvironment_dropDownitemClickHandler.set(this, (event) => {
109
+ const id = event.detail.id;
110
+ if (id === MY_ACCOUNT_ID) ;
111
+ else if (id === CHANGE_TEAM_ID) {
111
112
  this.changeTeamCallback();
112
113
  }
113
- else if (itemId === SIGN_OUT_ID) {
114
+ else if (id === SIGN_OUT_ID) {
114
115
  this.signOutCallback();
115
116
  }
116
- else if (itemId === LANGUAGE_ID) {
117
+ else if (id === LANGUAGE_ID) {
117
118
  this.changeLanguageCallback();
118
119
  }
119
120
  });
@@ -123,6 +124,7 @@ const GxIdeNewEnvironment = /*@__PURE__*/ proxyCustomElement(class GxIdeNewEnvir
123
124
  this.changeTeamCallback = undefined;
124
125
  this.changeLanguageCallback = undefined;
125
126
  this.changeModeCallback = undefined;
127
+ this.menuAlign = undefined;
126
128
  this.signOutCallback = undefined;
127
129
  this.termsCallback = undefined;
128
130
  this.privacyCallback = undefined;
@@ -138,25 +140,25 @@ const GxIdeNewEnvironment = /*@__PURE__*/ proxyCustomElement(class GxIdeNewEnvir
138
140
  // },
139
141
  {
140
142
  id: CHANGE_TEAM_ID,
141
- caption: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").changeTeamLabel,
142
- showSeparator: false
143
+ caption: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").changeTeamLabel
143
144
  },
144
145
  {
145
146
  id: SIGN_OUT_ID,
146
- caption: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").signOutLabel,
147
- showSeparator: true
147
+ caption: __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").signOutLabel
148
+ },
149
+ {
150
+ type: "separator"
151
+ },
152
+ {
153
+ type: "slot",
154
+ id: "agreement"
148
155
  }
149
- // {
150
- // id: LANGUAGE_ID,
151
- // caption: this.#componentLocale.languageLabel,
152
- // showSeparator: true
153
- // }
154
156
  ], "f");
155
157
  }
156
158
  render() {
157
159
  var _a, _b;
158
160
  const userName = limitFullName((_a = this.userInfo) === null || _a === void 0 ? void 0 : _a.name);
159
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-dropdown-render", { class: "dropdown", model: __classPrivateFieldGet(this, _GxIdeNewEnvironment_menuDropdownModel, "f"), position: "InsideEnd_OutsideEnd", itemClickCallback: __classPrivateFieldGet(this, _GxIdeNewEnvironment_dropDownitemClickHandler, "f") }, h("button", { class: "user-login__button", ref: el => (__classPrivateFieldSet(this, _GxIdeNewEnvironment_userLoginButton, el, "f")), slot: "action" }, h("div", { class: "user-login__details" }, userName ? (h("span", { class: "user-login__name" }, userName)) : null, ((_b = this.userInfo) === null || _b === void 0 ? void 0 : _b.team) ? (h("span", { class: "user-login__organization" }, this.userInfo.team)) : null), h("div", { class: "user-login__avatar" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_initials, "f")), h("ch-image", { src: CHEVRON_DOWN_ICON, class: "icon-md", containerRef: __classPrivateFieldGet(this, _GxIdeNewEnvironment_userLoginButton, "f") })), h("div", { class: "user-login__footer footer-slot", slot: "footer" }, h("span", { class: "text-body-regular-s agreement-link", onClick: this.termsCallback }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").termsAndConditionsText), h("span", { class: "text-body-regular-s agreement-link", onClick: this.privacyCallback }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").privacyPolicyText)))));
161
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-action-menu-render", { class: "dropdown user-login__button", model: __classPrivateFieldGet(this, _GxIdeNewEnvironment_menuDropdownModel, "f"), inlineAlign: "inside-end", blockAlign: "outside-end", onButtonClick: __classPrivateFieldGet(this, _GxIdeNewEnvironment_dropDownitemClickHandler, "f") }, h("div", { class: "user-login__details" }, userName ? h("span", { class: "user-login__name" }, userName) : null, ((_b = this.userInfo) === null || _b === void 0 ? void 0 : _b.team) ? (h("span", { class: "user-login__organization" }, this.userInfo.team)) : null), h("div", { class: "user-login__avatar" }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_initials, "f")), h("ch-image", { src: CHEVRON_DOWN_ICON, class: "icon-md", containerRef: __classPrivateFieldGet(this, _GxIdeNewEnvironment_userLoginButton, "f") }), h("div", { class: "user-login__footer footer-slot", slot: "agreement" }, h("button", { class: "body-regular-s agreement-link", onClick: this.termsCallback }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").termsAndConditionsCaption), h("button", { class: "body-regular-s\tagreement-link", onClick: this.privacyCallback }, __classPrivateFieldGet(this, _GxIdeNewEnvironment_componentLocale, "f").privacyPolicyCaption)))));
160
162
  }
161
163
  static get assetsDirs() { return ["gx-ide-assets/current-user-info"]; }
162
164
  get el() { return this; }
@@ -167,6 +169,7 @@ const GxIdeNewEnvironment = /*@__PURE__*/ proxyCustomElement(class GxIdeNewEnvir
167
169
  "changeTeamCallback": [16],
168
170
  "changeLanguageCallback": [16],
169
171
  "changeModeCallback": [16],
172
+ "menuAlign": [16],
170
173
  "signOutCallback": [16],
171
174
  "termsCallback": [16],
172
175
  "privacyCallback": [16],
@@ -1 +1 @@
1
- {"file":"gx-ide-current-user-info.js","mappings":"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","names":[],"sources":["src/components/current-user-info/helpers.tsx","src/components/current-user-info/current-user-info.scss?tag=gx-ide-current-user-info&encapsulation=shadow","src/components/current-user-info/current-user-info.tsx"],"sourcesContent":["/**\n * Returns initials from the first two words of a name. Returns \"X\" for invalid input.\n *\n * @param name - The full name string.\n * @returns Initials of the first two words, or \"X\" if invalid.\n *\n * Example:\n * getInitialsFromName(\"John Doe\") -> \"JD\"\n * getInitialsFromName(\"Jane\") -> \"J\"\n * getInitialsFromName(\"\") -> \"X\"\n */\nexport const getInitialsFromName = (name: string): string | null => {\n if (typeof name !== \"string\" || name.trim() === \"\") {\n return \"X\";\n }\n\n const nameData = name.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (nameData.length === 1) {\n return nameData[0][0].toUpperCase();\n } else {\n return `${nameData[0][0].toUpperCase()}${nameData[1][0].toUpperCase()}`;\n }\n};\n\n/**\n * Limits the full name to the first two words. Returns null for invalid input.\n *\n * @param fullName - The full name string to be limited.\n * @returns The first two words of the full name, or null if invalid.\n *\n * Example:\n * limitFullName(\"John Doe Smith\") -> \"John Doe\"\n * limitFullName(\"Jane\") -> \"Jane\"\n * limitFullName(\"\") -> null\n */\nexport const limitFullName = (fullName: string): string | null => {\n if (typeof fullName !== \"string\" || fullName.trim() === \"\") {\n return null;\n }\n\n const fullNameData = fullName.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (fullNameData.length === 1) {\n return fullNameData[0];\n } else {\n return `${fullNameData[0]} ${fullNameData[1]}`;\n }\n};\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: inline-grid;\n justify-items: end;\n block-size: 100%;\n}\n\n.user-login {\n &__button {\n all: unset;\n display: grid;\n grid-template-columns: max-content max-content max-content;\n align-items: center;\n gap: var(--mer-spacing--sm);\n block-size: auto;\n cursor: pointer;\n }\n &__details {\n display: grid;\n grid-template-rows: max-content max-content;\n gap: var(--mer-spacing--3xs);\n justify-items: end;\n }\n &__name {\n font-weight: var(--mer-font__weight--medium);\n font-size: var(--mer-font__size--3xs);\n color: var(--mer-text__on-elevation);\n }\n &__organization {\n font-weight: var(--mer-font__weight--light);\n font-size: var(--mer-font__size--4xs);\n color: var(--mer-text__neutral);\n }\n &__name,\n &__organization {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-inline-size: 120px;\n display: inline-block;\n }\n &__avatar {\n font-size: 9px;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--mer-spacing--lg);\n inline-size: var(--mer-spacing--lg);\n color: var(--mer-text__on-elevation);\n border-radius: 50%;\n background-color: var(--mer-color__tinted-primary--10);\n border: var(--mer-border__width--sm) solid var(--mer-color__primary--200);\n }\n\n &__footer {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n }\n}\n\n.agreement-link {\n text-decoration: underline;\n cursor: pointer;\n}\n","/* STENCIL IMPORTS */\nimport { Component, Element, Host, Prop, State, h } from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { getInitialsFromName, limitFullName } from \"./helpers\";\nimport { DropdownModel } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"components/switch\",\n \"components/icon\",\n \"components/dropdown\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"navigation\",\n name: \"chevron-down\",\n colorType: \"neutral\"\n});\n\nconst MY_ACCOUNT_ID = \"my-account\";\nconst CHANGE_TEAM_ID = \"change-team\";\nconst SIGN_OUT_ID = \"sign-out\";\nconst LANGUAGE_ID = \"language\";\n\n@Component({\n tag: \"gx-ide-current-user-info\",\n styleUrl: \"current-user-info.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/current-user-info\"]\n})\nexport class GxIdeNewEnvironment {\n #componentLocale: any;\n #initials: string = \"\";\n // #mode: Mode;\n #menuDropdownModel: DropdownModel;\n\n @Element() el: HTMLGxIdeCurrentUserInfoElement;\n #userLoginButton: HTMLButtonElement;\n\n @State() showMenu: boolean = false;\n\n /**\n * User data\n */\n @Prop() readonly userInfo: UserInfo;\n\n /**\n * Callback executed when the user click \"My Account\" link\n */\n @Prop() readonly myAccountCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"change team\" link\n */\n @Prop() readonly changeTeamCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"Language\" link\n */\n @Prop() readonly changeLanguageCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user switch the \"Mode\" status\n */\n @Prop() readonly changeModeCallback!: (mode: Mode) => Promise<void>;\n\n /**\n * Callback executed when the user click \"Sign Out\" link\n */\n @Prop() readonly signOutCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initials = getInitialsFromName(this.userInfo.name);\n this.#menuDropdownModel = [\n // {\n // id: MY_ACCOUNT_ID,\n // caption: this.#componentLocale.myAccountLabel,\n // showSeparator: false\n // },\n {\n id: CHANGE_TEAM_ID,\n caption: this.#componentLocale.changeTeamLabel,\n showSeparator: false\n },\n {\n id: SIGN_OUT_ID,\n caption: this.#componentLocale.signOutLabel,\n showSeparator: true\n }\n // {\n // id: LANGUAGE_ID,\n // caption: this.#componentLocale.languageLabel,\n // showSeparator: true\n // }\n ];\n }\n\n // #handleModeSwitch = () => {\n // this.#mode = this.#mode === \"dark\" ? \"light\" : \"dark\";\n // if (this.changeModeCallback) {\n // this.changeModeCallback(this.#mode);\n // }\n // };\n\n #dropDownitemClickHandler = (\n _event: UIEvent,\n _target: string,\n itemId: string\n ): void => {\n if (itemId === MY_ACCOUNT_ID) {\n // this.myAccountCallback();\n } else if (itemId === CHANGE_TEAM_ID) {\n this.changeTeamCallback();\n } else if (itemId === SIGN_OUT_ID) {\n this.signOutCallback();\n } else if (itemId === LANGUAGE_ID) {\n this.changeLanguageCallback();\n }\n };\n\n render() {\n const userName = limitFullName(this.userInfo?.name);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-dropdown-render\n class=\"dropdown\"\n model={this.#menuDropdownModel}\n position=\"InsideEnd_OutsideEnd\"\n itemClickCallback={this.#dropDownitemClickHandler}\n >\n <button\n class=\"user-login__button\"\n ref={el => (this.#userLoginButton = el as HTMLButtonElement)}\n slot=\"action\"\n >\n <div class=\"user-login__details\">\n {userName ? (\n <span class=\"user-login__name\">{userName}</span>\n ) : null}\n {this.userInfo?.team ? (\n <span class=\"user-login__organization\">\n {this.userInfo.team}\n </span>\n ) : null}\n </div>\n\n <div class=\"user-login__avatar\">{this.#initials}</div>\n <ch-image\n src={CHEVRON_DOWN_ICON}\n class=\"icon-md\"\n containerRef={this.#userLoginButton}\n ></ch-image>\n </button>\n <div class=\"user-login__footer footer-slot\" slot=\"footer\">\n <span\n class=\"text-body-regular-s agreement-link\"\n onClick={this.termsCallback}\n >\n {this.#componentLocale.termsAndConditionsText}\n </span>\n <span\n class=\"text-body-regular-s agreement-link\"\n onClick={this.privacyCallback}\n >\n {this.#componentLocale.privacyPolicyText}\n </span>\n </div>\n </ch-dropdown-render>\n </Host>\n );\n }\n}\n\nexport type UserInfo = {\n name: string;\n team: string;\n};\n\nexport type Mode = \"dark\" | \"light\";\n"],"version":3}
1
+ {"file":"gx-ide-current-user-info.js","mappings":"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","names":[],"sources":["src/components/current-user-info/helpers.tsx","src/components/current-user-info/current-user-info.scss?tag=gx-ide-current-user-info&encapsulation=shadow","src/components/current-user-info/current-user-info.tsx"],"sourcesContent":["/**\n * Returns initials from the first two words of a name. Returns \"X\" for invalid input.\n *\n * @param name - The full name string.\n * @returns Initials of the first two words, or \"X\" if invalid.\n *\n * Example:\n * getInitialsFromName(\"John Doe\") -> \"JD\"\n * getInitialsFromName(\"Jane\") -> \"J\"\n * getInitialsFromName(\"\") -> \"X\"\n */\nexport const getInitialsFromName = (name: string): string | null => {\n if (typeof name !== \"string\" || name.trim() === \"\") {\n return \"X\";\n }\n\n const nameData = name.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (nameData.length === 1) {\n return nameData[0][0].toUpperCase();\n } else {\n return `${nameData[0][0].toUpperCase()}${nameData[1][0].toUpperCase()}`;\n }\n};\n\n/**\n * Limits the full name to the first two words. Returns null for invalid input.\n *\n * @param fullName - The full name string to be limited.\n * @returns The first two words of the full name, or null if invalid.\n *\n * Example:\n * limitFullName(\"John Doe Smith\") -> \"John Doe\"\n * limitFullName(\"Jane\") -> \"Jane\"\n * limitFullName(\"\") -> null\n */\nexport const limitFullName = (fullName: string): string | null => {\n if (typeof fullName !== \"string\" || fullName.trim() === \"\") {\n return null;\n }\n\n const fullNameData = fullName.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (fullNameData.length === 1) {\n return fullNameData[0];\n } else {\n return `${fullNameData[0]} ${fullNameData[1]}`;\n }\n};\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: inline-grid;\n justify-items: end;\n block-size: 100%;\n}\n\n.dropdown::part(expandable-button) {\n display: grid;\n grid-template-columns: max-content max-content max-content;\n align-items: center;\n gap: var(--mer-spacing--sm);\n block-size: auto;\n cursor: pointer;\n}\n.user-login {\n &__details {\n display: grid;\n grid-template-rows: max-content max-content;\n gap: var(--mer-spacing--3xs);\n justify-items: end;\n }\n &__name {\n font-weight: var(--mer-font__weight--medium);\n font-size: var(--mer-font__size--3xs);\n color: var(--mer-text__on-elevation);\n }\n &__organization {\n font-weight: var(--mer-font__weight--light);\n font-size: var(--mer-font__size--4xs);\n color: var(--mer-text__neutral);\n }\n &__name,\n &__organization {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-inline-size: 120px;\n display: inline-block;\n }\n &__avatar {\n font-size: 9px;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--mer-spacing--lg);\n inline-size: var(--mer-spacing--lg);\n color: var(--mer-text__on-elevation);\n border-radius: 50%;\n background-color: var(--mer-color__tinted-primary--10);\n border: var(--mer-border__width--sm) solid var(--mer-color__primary--200);\n }\n\n &__footer {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n @include button-reset();\n\n .agreement-link {\n text-decoration: underline;\n cursor: pointer; /* Ensure it still looks clickable */\n }\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Element, Host, Prop, State, h } from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { getInitialsFromName, limitFullName } from \"./helpers\";\nimport {\n ActionMenuItemActionableModel,\n ActionMenuModel,\n ChActionMenuRenderCustomEvent,\n ChPopoverAlign\n} from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"components/switch\",\n \"components/icon\",\n \"components/dropdown\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"navigation\",\n name: \"chevron-down\",\n colorType: \"neutral\"\n});\n\nconst MY_ACCOUNT_ID = \"my-account\";\nconst CHANGE_TEAM_ID = \"change-team\";\nconst SIGN_OUT_ID = \"sign-out\";\nconst LANGUAGE_ID = \"language\";\n\n@Component({\n tag: \"gx-ide-current-user-info\",\n styleUrl: \"current-user-info.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/current-user-info\"]\n})\nexport class GxIdeNewEnvironment {\n #componentLocale: any;\n #initials: string = \"\";\n // #mode: Mode;\n #menuDropdownModel: ActionMenuModel;\n\n @Element() el: HTMLGxIdeCurrentUserInfoElement;\n #userLoginButton: HTMLButtonElement;\n\n @State() showMenu: boolean = false;\n\n /**\n * User data\n */\n @Prop() readonly userInfo: UserInfo;\n\n /**\n * Callback executed when the user click \"My Account\" link\n */\n @Prop() readonly myAccountCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"change team\" link\n */\n @Prop() readonly changeTeamCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"Language\" link\n */\n @Prop() readonly changeLanguageCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user switch the \"Mode\" status\n */\n @Prop() readonly changeModeCallback!: (mode: Mode) => Promise<void>;\n\n /**\n * Defines the menu block and inline alignment\n */\n @Prop() readonly menuAlign: MenuAlign;\n\n /**\n * Callback executed when the user click \"Sign Out\" link\n */\n @Prop() readonly signOutCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initials = getInitialsFromName(this.userInfo.name);\n this.#menuDropdownModel = [\n // {\n // id: MY_ACCOUNT_ID,\n // caption: this.#componentLocale.myAccountLabel,\n // showSeparator: false\n // },\n {\n id: CHANGE_TEAM_ID,\n caption: this.#componentLocale.changeTeamLabel\n },\n {\n id: SIGN_OUT_ID,\n caption: this.#componentLocale.signOutLabel\n },\n {\n type: \"separator\"\n },\n {\n type: \"slot\",\n id: \"agreement\"\n }\n ];\n }\n\n // #handleModeSwitch = () => {\n // this.#mode = this.#mode === \"dark\" ? \"light\" : \"dark\";\n // if (this.changeModeCallback) {\n // this.changeModeCallback(this.#mode);\n // }\n // };\n\n #dropDownitemClickHandler = (\n event: ChActionMenuRenderCustomEvent<ActionMenuItemActionableModel>\n ): void => {\n const id = event.detail.id;\n if (id === MY_ACCOUNT_ID) {\n // this.myAccountCallback();\n } else if (id === CHANGE_TEAM_ID) {\n this.changeTeamCallback();\n } else if (id === SIGN_OUT_ID) {\n this.signOutCallback();\n } else if (id === LANGUAGE_ID) {\n this.changeLanguageCallback();\n }\n };\n\n render() {\n const userName = limitFullName(this.userInfo?.name);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-action-menu-render\n class=\"dropdown user-login__button\"\n model={this.#menuDropdownModel}\n inlineAlign=\"inside-end\"\n blockAlign=\"outside-end\"\n onButtonClick={this.#dropDownitemClickHandler}\n >\n <div class=\"user-login__details\">\n {userName ? <span class=\"user-login__name\">{userName}</span> : null}\n {this.userInfo?.team ? (\n <span class=\"user-login__organization\">{this.userInfo.team}</span>\n ) : null}\n </div>\n <div class=\"user-login__avatar\">{this.#initials}</div>\n <ch-image\n src={CHEVRON_DOWN_ICON}\n class=\"icon-md\"\n containerRef={this.#userLoginButton}\n ></ch-image>\n <div class=\"user-login__footer footer-slot\" slot=\"agreement\">\n <button\n class=\"body-regular-s agreement-link\"\n onClick={this.termsCallback}\n >\n {this.#componentLocale.termsAndConditionsCaption}\n </button>\n <button\n class=\"body-regular-s\tagreement-link\"\n onClick={this.privacyCallback}\n >\n {this.#componentLocale.privacyPolicyCaption}\n </button>\n </div>\n </ch-action-menu-render>\n </Host>\n );\n }\n}\n\nexport type MenuAlign = {\n blockAlign: ChPopoverAlign;\n inlineAlign: ChPopoverAlign;\n};\n\nexport type UserInfo = {\n name: string;\n team: string;\n};\n\nexport type Mode = \"dark\" | \"light\";\n"],"version":3}
@@ -175,7 +175,7 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
175
175
  ? "button-secondary"
176
176
  : "button-tertiary";
177
177
  return (h("button", { class: `button-icon-only ${buttonClass}`, "aria-label": category.name, title: category.name, onClick: this.selectedCategoryHandler, "data-name": category.name }, h("ch-image", { class: "icon-md", src: category.icon })));
178
- })), h("p", { class: "text-body-regular-s selected-category" }, selectedCategoryDescription)));
178
+ })), h("p", { class: "body-regular-s selected-category" }, selectedCategoryDescription)));
179
179
  });
180
180
  this.categoriesListBoxModel = [];
181
181
  this.selectedCategory = undefined;
@@ -1 +1 @@
1
- {"file":"gx-ide-data-type-selector.js","mappings":";;;;;AAMO,MAAM,0BAA0B,GAAG,CACxC,QAA8B;IAE9B,MAAM,aAAa,GAAwB;QACzC,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAC5B,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,EAAE,EAAE,IAAI,CAAC,IAAI;gBACb,qBAAqB,EAAE;oBACrB,eAAe,EAAE;wBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;qBAChC;iBACF;gBACD,IAAI,EAAE,YAAY;aACnB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAChC,SAAyB;IAEzB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK;QACnC,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,EAAE,EAAE,QAAQ,CAAC,IAAI;YACjB,qBAAqB,EAAE;gBACrB,eAAe,EAAE;oBACf,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;iBACjD;aACF;YACD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb,CAAC;KACH,CAAC,CAAC;AACL,CAAC;;AC/CD,MAAM,mBAAmB,GAAG,qXAAqX;;;;;;;;;;;;;;;;;;;ACmBjZ,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;MAQU,oBAAoB;;;;;QAC/B,yDAAuB;QACvB,wCAAoB,KAAK,EAAC;QAC1B,iEAAsE,IAAI,GAAG,EAG1E,EAAC;QAoDJ,sDAAyB,CACvB,KAAiD;;YAEjD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC;YAC7C,IAAI,SAAS,KAAK,YAAY,EAAE;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAE1C,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CACnE,eAAe,CAChB,CAAC,MAAM,CAAC,CAAC,CAAiC,CAAC;gBAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC;gBAEvC,IAAI,CAAC,wBAAwB,CAAC;oBAC5B,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBAEH,uBAAA,IAAI,qDAAyB,MAA7B,IAAI,EAA0B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;aAC3E;iBAAM,IAAI,SAAS,KAAK,OAAO,EAAE;gBAChC,uBAAA,IAAI,qDAAyB,MAA7B,IAAI,EAA0B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACtE;SACF,EAAC;QAEF,wDAA2B,CAAC,IAAY,EAAE,IAAwB;YAChE,IAAI,IAAI,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;gBACvD,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,IAAI;;oBAE1C,IAAiC,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACrD,CAAC,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CACnD,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAC3B,CAAC;gBACF,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;oBAE1B,IAAI,CAAC,2BAA2B,CAC9B,iBAAiB,CAEpB,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACnB;aACF;iBAAM,IACL,IAAI,KAAK,OAAO;gBAChB,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,IAAI,CAAC,EAChD;gBACA,MAAM,KAAK,GAAG,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CACtD,IAAI,CACkB,CAAC;gBACzB,MAAM,YAAY,mCAAQ,KAAK,KAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAE,CAAC;gBAC5D,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAChE;SACF,EAAC;QAEF,+CAAkB;YAChB,IAAI,CAAC,uBAAA,IAAI,qCAAS,EAAE;gBAClB,MAAM,4BAA4B,GAA0B,EAAE,CAAC;gBAC/D,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,MAAM,SAAS,GAAG,uBAAA,IAAI,8DAAkC,CAAC,IAAI,CAAC;gBAC9D,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,8DAAkC,CAAC,IAAI,EAAE,EAAE;oBAC/D,4BAA4B,CAAC,IAAI,CAC/B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,CAChD,CAAC;oBACF,IAAI,OAAO,KAAK,SAAS,EAAE;wBACzB,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;qBAC1D;oBACD,OAAO,EAAE,CAAC;iBACX;gBACD,IAAI,CAAC,sBAAsB,GAAG,4BAA4B,CAAC;gBAC3D,uBAAA,IAAI,iCAAY,IAAI,MAAA,CAAC;gBACrB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;aACzC;SACF,EAAC;QAEF,oDAAuB;YACrB,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC;YAC/D,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,CAAC;SACnD,EAAC;QAEM,4BAAuB,GAAG,CAAC,CAAa;YAC9C,IAAI,CAAC,gBAAgB,GAAI,CAAC,CAAC,aAAmC,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5E,MAAM,mBAAmB,GAAG;gBAC1B,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAClE,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC;YAClD,uBAAA,IAAI,iCAAY,KAAK,MAAA,CAAC;SACvB,CAAC;QAEF,6CAAgB;YACd,MAAM,oBAAoB,GACxB,IAAI,CAAC,gBAAgB,KAAK,yBAAyB;kBAC/C,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,MAAM,WAAW,GACf,IAAI,CAAC,gBAAgB,KAAK,eAAe;kBACrC,kBAAkB;kBAClB,iBAAiB,CAAC;YACxB,IAAI,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxD,IAAI,IAAI,CAAC,gBAAgB,KAAK,yBAAyB,EAAE;gBACvD,2BAA2B;oBACzB,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;aAClD;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;gBACpD,2BAA2B,GAAG,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GAAG,CAAC;aACrE;iBAAM;gBACL,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAAC;aACrD;YAED,QACE,cACE,KAAK,EAAC,sGACP,IAEC,WAAK,KAAK,EAAC,gBAAgB,IACxB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAChD,cACE,KAAK,EAAE,oBAAoB,oBAAoB,EAAE,gBACrC,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,YACpC,EAAE,EACF,OAAO,EAAE,uBAAA,IAAI,iDAAqB,IAElC,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,UAAU,GAAa,CAC/C,CACV,EACD,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,EACxC,OAAO,EAAE,uBAAA,IAAI,4CAAgB,gBACjB,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IAC1C,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,EACF,KAAK,EAAE,GAAG,uBAAA,IAAI,8CAAkB,CAAC,MAAM,IACrC,uBAAA,IAAI,8CAAkB,CAAC,UAAU,CAAC,GACpC,EAAE,UAGK,EACR,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ;gBAC3B,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB;sBACnC,kBAAkB;sBAClB,iBAAiB,CAAC;gBAExB,QACE,cACE,KAAK,EAAE,oBAAoB,WAAW,EAAE,gBAC5B,QAAQ,CAAC,IAAI,EACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,EACpB,OAAO,EAAE,IAAI,CAAC,uBAAuB,eAC1B,QAAQ,CAAC,IAAI,IAExB,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAa,CAClD,EACT;aACH,CAAC,CACE,EACN,SAAG,KAAK,EAAC,uCAAuC,IAC7C,2BAA2B,CAC1B,CACG,EACT;SACH,EAAC;sCAjNuD,EAAE;;0BAEvB,EAAE;2CACkB,EAAE;uBAC9B,IAAI;0BAKsB,SAAS;;4BA0Bf,EAAE;;IAxBlD,iBAAiB,CAAC,aAAqC;QACrD,IAAI,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,EAAE;YAC1B,OAAO;SACR;QACD,uBAAA,IAAI,8DAAkC,CAAC,KAAK,EAAE,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,QAAQ;YAC5B,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAClE,uBAAA,IAAI,8DAAkC,CAAC,GAAG,CACxC,QAAQ,CAAC,IAAI,EACb,oBAAoB,CACrB,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,uBAAA,IAAI,4CAAgB,MAApB,IAAI,CAAkB,CAAC;KACxB;IAYD,mBAAmB,CAAC,eAA+B;QACjD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;KACxE;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,0CAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;;QAEnE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzE;IAqKD,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACxC,IAAI,CAAC,OAAO,IACX,qBACE,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,KAAK,EAChD,WAAW,EAAE,uBAAA,IAAI,8CAAkB,CAAC,MAAM,CAAC,WAAW,EACtD,IAAI,SACW,KAEjB,eAAS,KAAK,EAAC,MAAM,IACnB,6BACE,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAClC,SAAS,EAAC,QAAQ,EAClB,qBAAqB,EAAE,uBAAA,IAAI,mDAAuB,GAC3B,EACxB,uBAAA,IAAI,0CAAc,MAAlB,IAAI,CAAgB,CACb,CACX,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ActionListItemType,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n ActionListItemAdditionalBase,\n ActionListItemGroup\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/list-box\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() statusInfo: StatusInfo[] = [];\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n });\n this.loading = false;\n this.#showAllObjects();\n }\n\n /**\n * Callback invoked when user select an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #handleSelectionChange = (\n event: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const eventType = event.detail[0]?.item.type;\n if (eventType === \"actionable\") {\n const name = event.detail[0].item.caption;\n\n const itemAdditionalBase = event.detail[0].item.additionalInformation[\n \"stretch-start\"\n ].center[0] as ActionListItemAdditionalBase;\n const icon = itemAdditionalBase.imgSrc;\n\n this.dataTypeSelectedCallback({\n name: name,\n icon: icon\n });\n\n this.#updateListBoxModelState(event.detail[0].item.caption, \"actionable\");\n } else if (eventType === \"group\") {\n this.#updateListBoxModelState(event.detail[0].item.caption, \"group\");\n }\n };\n\n #updateListBoxModelState = (name: string, type: ActionListItemType) => {\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n this.recentlyUsedActionListModel.forEach(item => {\n // clear selected\n (item as ActionListItemActionable).selected = false;\n });\n const selectedItemIndex = this.recentlyUsed.findIndex(\n item => item.name === name\n );\n if (selectedItemIndex !== -1) {\n (\n this.recentlyUsedActionListModel[\n selectedItemIndex\n ] as ActionListItemActionable\n ).selected = true;\n }\n } else if (\n type === \"group\" &&\n this.#categoriesActionListItemGroupMap.has(name)\n ) {\n const group = this.#categoriesActionListItemGroupMap.get(\n name\n ) as ActionListItemGroup;\n const groupUpdated = { ...group, expanded: group.expanded };\n this.#categoriesActionListItemGroupMap.set(name, groupUpdated);\n }\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start spacing-body-inline spacing-body-block scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"text-body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onSelectedItemsChange={this.#handleSelectionChange}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\ntype StatusInfo = {\n [key: string]: {\n display: boolean;\n };\n};\n\nexport type DataTypeCategoryData = {\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n name: string;\n icon: string;\n};\n\nexport type DataTypeSelectedCallback = (data: {\n name: string;\n icon: string;\n}) => Promise<void>;\n"],"version":3}
1
+ {"file":"gx-ide-data-type-selector.js","mappings":"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","names":[],"sources":["src/components/data-type-selector/helpers.ts","src/components/data-type-selector/data-type-selector.scss?tag=gx-ide-data-type-selector&encapsulation=shadow","src/components/data-type-selector/data-type-selector.tsx"],"sourcesContent":["import { DataTypeCategoryData, DataTypeData } from \"./data-type-selector\";\nimport {\n ActionListItemGroup,\n ActionListModel\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\nexport const mapCategoryToListItemGroup = (\n category: DataTypeCategoryData\n): ActionListItemGroup => {\n const categoryGroup: ActionListItemGroup = {\n caption: category.name,\n id: category.name,\n type: \"group\",\n expanded: true,\n expandable: true,\n items: category.types.map(type => {\n return {\n caption: type.name,\n id: type.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n type: \"actionable\"\n };\n })\n };\n return categoryGroup;\n};\n\nexport const mapDataTypesToList = (\n dataTypes: DataTypeData[]\n): ActionListModel => {\n return dataTypes.map((dataType, index) => {\n return {\n caption: dataType.name,\n id: dataType.name,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: dataType.icon || undefined }]\n }\n },\n type: \"actionable\",\n order: index\n };\n });\n};\n",":host {\n position: relative;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n // WA: Prevent a custom css rule on genexus-web from overriding --control__border-width value.\n // TDOO: remove this when the custom style is removed from genexus-web.\n // custom stlye is: .gx-struct-editor .tabular-grid-cell {\n // --control__border-width: 0;\n // }\n\n --control__border-width: var(--mer-border__width--sm);\n --control__border-radius: var(--mer-border__radius--sm);\n}\n\n.main {\n display: contents;\n}\n\n.selected-category {\n margin: 0;\n text-transform: capitalize;\n margin-inline-start: var(\n --mer-spacing--md\n ); // TODO: Create a semantic class in Mercury for this case.\n white-space: nowrap;\n}\n\n.footer {\n overflow: auto;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ActionListItemType,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n ActionListItemAdditionalBase,\n ActionListItemGroup\n} from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n// Gx Ide Ui\nimport { Locale } from \"../../common/locale\";\nimport { mapCategoryToListItemGroup, mapDataTypesToList } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/list-box\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ALL_CATEGORY_ID = \"all\";\nconst RECENTLY_USED_CATEGORY_ID = \"recenttly-used\";\n\nconst CLOCK_ICON = getIconPath({\n category: \"system\",\n name: \"time\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-data-type-selector\",\n styleUrl: \"data-type-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/data-type-selector\"]\n})\nexport class GxIdeKbManagerImport {\n #_componentLocale: any;\n #showAll: boolean = false;\n #categoriesActionListItemGroupMap: Map<string, ActionListItemGroup> = new Map<\n string,\n ActionListItemGroup\n >();\n\n @Element() el: HTMLGxIdeDataTypeSelectorElement;\n\n @State() categoriesListBoxModel: ActionListItemModel[] = [];\n @State() selectedCategory: string;\n @State() statusInfo: StatusInfo[] = [];\n @State() recentlyUsedActionListModel: ActionListModel = [];\n @State() loading: boolean = true;\n\n /**\n * All possible types and its category\n */\n @Prop() readonly categories: DataTypeCategoryData[] = undefined;\n @Watch(\"categories\")\n categoriesChanged(newCategories: DataTypeCategoryData[]) {\n if (!newCategories?.length) {\n return;\n }\n this.#categoriesActionListItemGroupMap.clear();\n newCategories.forEach(category => {\n const categoryListBoxModel = mapCategoryToListItemGroup(category);\n this.#categoriesActionListItemGroupMap.set(\n category.name,\n categoryListBoxModel\n );\n });\n this.loading = false;\n this.#showAllObjects();\n }\n\n /**\n * Callback invoked when user select an item type\n */\n @Prop() readonly dataTypeSelectedCallback: DataTypeSelectedCallback;\n\n /**\n * All recently used types list\n */\n @Prop() readonly recentlyUsed: DataTypeData[] = [];\n @Watch(\"recentlyUsed\")\n recentlyUsedChanged(newRecentlyUsed: DataTypeData[]) {\n this.recentlyUsedActionListModel = null;\n this.recentlyUsedActionListModel = mapDataTypesToList(newRecentlyUsed);\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n // initialize models\n this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);\n }\n\n #handleSelectionChange = (\n event: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const eventType = event.detail[0]?.item.type;\n if (eventType === \"actionable\") {\n const name = event.detail[0].item.caption;\n\n const itemAdditionalBase = event.detail[0].item.additionalInformation[\n \"stretch-start\"\n ].center[0] as ActionListItemAdditionalBase;\n const icon = itemAdditionalBase.imgSrc;\n\n this.dataTypeSelectedCallback({\n name: name,\n icon: icon\n });\n\n this.#updateListBoxModelState(event.detail[0].item.caption, \"actionable\");\n } else if (eventType === \"group\") {\n this.#updateListBoxModelState(event.detail[0].item.caption, \"group\");\n }\n };\n\n #updateListBoxModelState = (name: string, type: ActionListItemType) => {\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n this.recentlyUsedActionListModel.forEach(item => {\n // clear selected\n (item as ActionListItemActionable).selected = false;\n });\n const selectedItemIndex = this.recentlyUsed.findIndex(\n item => item.name === name\n );\n if (selectedItemIndex !== -1) {\n (\n this.recentlyUsedActionListModel[\n selectedItemIndex\n ] as ActionListItemActionable\n ).selected = true;\n }\n } else if (\n type === \"group\" &&\n this.#categoriesActionListItemGroupMap.has(name)\n ) {\n const group = this.#categoriesActionListItemGroupMap.get(\n name\n ) as ActionListItemGroup;\n const groupUpdated = { ...group, expanded: group.expanded };\n this.#categoriesActionListItemGroupMap.set(name, groupUpdated);\n }\n };\n\n #showAllObjects = () => {\n if (!this.#showAll) {\n const allCategoriesActionListModel: ActionListItemModel[] = [];\n let counter = 1;\n const mapLength = this.#categoriesActionListItemGroupMap.size;\n for (const key of this.#categoriesActionListItemGroupMap.keys()) {\n allCategoriesActionListModel.push(\n this.#categoriesActionListItemGroupMap.get(key)\n );\n if (counter !== mapLength) {\n allCategoriesActionListModel.push({ type: \"separator\" });\n }\n counter++;\n }\n this.categoriesListBoxModel = allCategoriesActionListModel;\n this.#showAll = true;\n this.selectedCategory = ALL_CATEGORY_ID;\n }\n };\n\n #showRecentlyObjects = () => {\n this.#showAll = false;\n this.categoriesListBoxModel = this.recentlyUsedActionListModel;\n this.selectedCategory = RECENTLY_USED_CATEGORY_ID;\n };\n\n private selectedCategoryHandler = (e: MouseEvent) => {\n this.selectedCategory = (e.currentTarget as HTMLButtonElement).dataset.name;\n const newSelectedCategory = [\n this.#categoriesActionListItemGroupMap.get(this.selectedCategory)\n ];\n this.categoriesListBoxModel = newSelectedCategory;\n this.#showAll = false;\n };\n\n #renderFooter = () => {\n const recentlyUsedBtnClass =\n this.selectedCategory === RECENTLY_USED_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n const allBtnClass =\n this.selectedCategory === ALL_CATEGORY_ID\n ? \"button-secondary\"\n : \"button-tertiary\";\n let selectedCategoryDescription = this.selectedCategory;\n if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {\n selectedCategoryDescription =\n this.#_componentLocale.fixedTypes.recentlyUsed;\n } else if (this.selectedCategory === ALL_CATEGORY_ID) {\n selectedCategoryDescription = this.#_componentLocale.fixedTypes.all;\n } else {\n selectedCategoryDescription = this.selectedCategory;\n }\n\n return (\n <footer\n class=\"footer control-footer control-footer-start spacing-body-inline spacing-body-block scrollable\n \"\n >\n <div class=\"buttons-spacer\">\n {this.recentlyUsed && this.recentlyUsed.length > 0 && (\n <button\n class={`button-icon-only ${recentlyUsedBtnClass}`}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.recentlyUsed\n }`}\n onClick={this.#showRecentlyObjects}\n >\n <ch-image class=\"icon-md\" src={CLOCK_ICON}></ch-image>\n </button>\n )}\n <button\n class={`button-icon-only ${allBtnClass}`}\n onClick={this.#showAllObjects}\n aria-label={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n title={`${this.#_componentLocale.select} ${\n this.#_componentLocale.fixedTypes.all\n }`}\n >\n [*]\n </button>\n {this.categories.map(category => {\n const buttonClass =\n category.name === this.selectedCategory\n ? \"button-secondary\"\n : \"button-tertiary\";\n\n return (\n <button\n class={`button-icon-only ${buttonClass}`}\n aria-label={category.name}\n title={category.name}\n onClick={this.selectedCategoryHandler}\n data-name={category.name}\n >\n <ch-image class=\"icon-md\" src={category.icon}></ch-image>\n </button>\n );\n })}\n </div>\n <p class=\"body-regular-s selected-category\">\n {selectedCategoryDescription}\n </p>\n </footer>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <section class=\"main\">\n <ch-action-list-render\n class=\"list-box\"\n model={this.categoriesListBoxModel}\n selection=\"single\"\n onSelectedItemsChange={this.#handleSelectionChange}\n ></ch-action-list-render>\n {this.#renderFooter()}\n </section>\n )}\n </Host>\n );\n }\n}\n\ntype StatusInfo = {\n [key: string]: {\n display: boolean;\n };\n};\n\nexport type DataTypeCategoryData = {\n name: string;\n icon: string;\n types: DataTypeData[];\n};\nexport type DataTypeData = {\n name: string;\n icon: string;\n};\n\nexport type DataTypeSelectedCallback = (data: {\n name: string;\n icon: string;\n}) => Promise<void>;\n"],"version":3}
@@ -558,7 +558,7 @@ const GxIdeImportFromDesign = /*@__PURE__*/ proxyCustomElement(class GxIdeImport
558
558
  _GxIdeImportFromDesign_renderMessages.set(this, () => {
559
559
  return (this.messages.length > 0 &&
560
560
  this.messages.map(message => (h("p", { class: {
561
- "text-body-regular-m": true,
561
+ "body-regular-m": true,
562
562
  "message": true,
563
563
  [`message--${message.type}`]: true
564
564
  } }, message.type, ": ", message.text))));
@@ -566,7 +566,7 @@ const GxIdeImportFromDesign = /*@__PURE__*/ proxyCustomElement(class GxIdeImport
566
566
  _GxIdeImportFromDesign_renderMain.set(this, () => {
567
567
  var _a, _b;
568
568
  if (this.isLoading || ((_a = this.designData) === null || _a === void 0 ? void 0 : _a.success) === false) {
569
- return (h("div", { class: "main main--loading scrollable", ref: (el) => (__classPrivateFieldSet(this, _GxIdeImportFromDesign_messagesList, el, "f")) }, __classPrivateFieldGet(this, _GxIdeImportFromDesign_renderMessages, "f").call(this), h("div", { class: "text-body-regular-m spacing-body" }, h("slot", { name: "messages" }))));
569
+ return (h("div", { class: "main main--loading scrollable", ref: (el) => (__classPrivateFieldSet(this, _GxIdeImportFromDesign_messagesList, el, "f")) }, __classPrivateFieldGet(this, _GxIdeImportFromDesign_renderMessages, "f").call(this), h("div", { class: "body-regular-m spacing-body" }, h("slot", { name: "messages" }))));
570
570
  }
571
571
  else if ((_b = this.designData) === null || _b === void 0 ? void 0 : _b.success) {
572
572
  return (