@genexus/genexus-ide-ui 1.0.45 → 1.0.47

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 (328) 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 +26 -25
  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 +3 -3
  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 +38 -11
  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 +75 -13
  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.css +1 -1
  70. package/dist/collection/components/_helpers/ide-loader/ide-loader.js +2 -2
  71. package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
  72. package/dist/collection/components/current-user-info/current-user-info.css +20 -4
  73. package/dist/collection/components/current-user-info/current-user-info.js +69 -25
  74. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  75. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -1
  76. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
  77. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
  78. package/dist/collection/components/data-type-selector/data-type-selector.js +1 -1
  79. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  80. package/dist/collection/components/design-import/design-import.js +2 -2
  81. package/dist/collection/components/design-import/design-import.js.map +1 -1
  82. package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -2
  83. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  84. package/dist/collection/components/navigation-report/navigation-report.js +1 -1
  85. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
  86. package/dist/collection/components/new-environment/new-environment.js +4 -4
  87. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  88. package/dist/collection/components/new-kb/new-kb.js +3 -3
  89. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  90. package/dist/collection/components/new-object/new-object.js +1 -1
  91. package/dist/collection/components/new-object/new-object.js.map +1 -1
  92. package/dist/collection/components/object-selector/object-selector.js +1 -1
  93. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  94. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
  95. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
  96. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
  97. package/dist/collection/components/select-user-team/helpers.js +1 -1
  98. package/dist/collection/components/select-user-team/helpers.js.map +1 -1
  99. package/dist/collection/components/select-user-team/select-user-team.css +8 -0
  100. package/dist/collection/components/select-user-team/select-user-team.js +42 -9
  101. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  102. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
  103. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
  104. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
  105. package/dist/collection/components/sign-in-team/sign-in-team.css +9 -4
  106. package/dist/collection/components/sign-in-team/sign-in-team.js +116 -15
  107. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  108. package/dist/collection/components/start-page/start-page.js +7 -7
  109. package/dist/collection/components/start-page/start-page.js.map +1 -1
  110. package/dist/collection/components/ww-attributes/ww-attributes.js +1 -1
  111. package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
  112. package/dist/components/MERCURY_ASSETS.js +2 -2
  113. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  114. package/dist/components/config.js +2 -2
  115. package/dist/components/config.js.map +1 -1
  116. package/dist/components/gx-ide-current-user-info.js +28 -25
  117. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  118. package/dist/components/gx-ide-data-type-selector.js +1 -1
  119. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  120. package/dist/components/gx-ide-design-import.js +2 -2
  121. package/dist/components/gx-ide-design-import.js.map +1 -1
  122. package/dist/components/gx-ide-empty-state2.js +1 -1
  123. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  124. package/dist/components/gx-ide-kb-manager-import.js +2 -2
  125. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  126. package/dist/components/gx-ide-navigation-report.js +1 -1
  127. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  128. package/dist/components/gx-ide-new-environment.js +4 -4
  129. package/dist/components/gx-ide-new-environment.js.map +1 -1
  130. package/dist/components/gx-ide-new-kb.js +3 -3
  131. package/dist/components/gx-ide-new-kb.js.map +1 -1
  132. package/dist/components/gx-ide-new-object.js +1 -1
  133. package/dist/components/gx-ide-new-object.js.map +1 -1
  134. package/dist/components/gx-ide-object-selector.js +1 -1
  135. package/dist/components/gx-ide-object-selector.js.map +1 -1
  136. package/dist/components/gx-ide-select-user-team.js +48 -13
  137. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  138. package/dist/components/gx-ide-sign-in-team.js +86 -15
  139. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  140. package/dist/components/gx-ide-start-page.js +7 -7
  141. package/dist/components/gx-ide-start-page.js.map +1 -1
  142. package/dist/components/gx-ide-ww-attributes.js +1 -1
  143. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  144. package/dist/components/ide-loader.js +3 -3
  145. package/dist/components/ide-loader.js.map +1 -1
  146. package/dist/esm/MERCURY_ASSETS-91a1db9c.js +7 -0
  147. package/dist/esm/MERCURY_ASSETS-91a1db9c.js.map +1 -0
  148. package/dist/esm/{config-ed1f26d7.js → config-1ef9d75a.js} +3 -3
  149. package/dist/{cjs/config-b21feeee.js.map → esm/config-1ef9d75a.js.map} +1 -1
  150. package/dist/esm/genexus-ide-ui.js +1 -1
  151. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  152. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  153. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  154. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  155. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  156. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  157. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  158. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  159. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  160. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  161. package/dist/esm/gx-ide-current-user-info.entry.js +26 -25
  162. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  163. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  164. package/dist/esm/gx-ide-data-selector.entry.js +2 -2
  165. package/dist/esm/gx-ide-data-type-selector.entry.js +2 -2
  166. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  167. package/dist/esm/gx-ide-design-import.entry.js +4 -4
  168. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  169. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  170. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  171. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  172. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  173. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  174. package/dist/esm/gx-ide-kb-manager-import.entry.js +3 -3
  175. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  176. package/dist/esm/gx-ide-loader.entry.js +3 -3
  177. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  178. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  179. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  180. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  181. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  182. package/dist/esm/gx-ide-new-environment.entry.js +5 -5
  183. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  184. package/dist/esm/gx-ide-new-kb.entry.js +5 -5
  185. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  186. package/dist/esm/gx-ide-new-object.entry.js +2 -2
  187. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  188. package/dist/esm/gx-ide-object-selector.entry.js +3 -3
  189. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  190. package/dist/esm/gx-ide-references.entry.js +1 -1
  191. package/dist/esm/gx-ide-select-user-team.entry.js +38 -11
  192. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  193. package/dist/esm/gx-ide-share-kb.entry.js +2 -2
  194. package/dist/esm/gx-ide-sign-in-team.entry.js +75 -13
  195. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  196. package/dist/esm/gx-ide-start-page.entry.js +8 -8
  197. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  198. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  199. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  200. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  201. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  202. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  203. package/dist/esm/gx-ide-template.entry.js +1 -1
  204. package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
  205. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  206. package/dist/esm/gx-ide-ww-attributes.entry.js +3 -3
  207. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  208. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  211. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  212. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -1
  213. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
  214. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
  215. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
  216. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
  217. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
  218. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
  219. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
  220. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
  221. package/dist/genexus-ide-ui/{p-6747cc1e.entry.js → p-0c60c76f.entry.js} +5 -5
  222. package/dist/genexus-ide-ui/{p-78b90603.js → p-13738332.js} +3 -3
  223. package/dist/genexus-ide-ui/{p-78b90603.js.map → p-13738332.js.map} +1 -1
  224. package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js → p-18317dd7.entry.js} +5 -5
  225. package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js.map → p-18317dd7.entry.js.map} +1 -1
  226. package/dist/genexus-ide-ui/{p-617e65ca.js → p-1986d34d.js} +2190 -20
  227. package/dist/genexus-ide-ui/p-1986d34d.js.map +1 -0
  228. package/dist/genexus-ide-ui/{p-793248c8.entry.js → p-1e44952c.entry.js} +2 -2
  229. package/dist/genexus-ide-ui/{p-f50076d3.entry.js → p-1feae6ef.entry.js} +2 -2
  230. package/dist/genexus-ide-ui/{p-092609aa.entry.js → p-22d8de70.entry.js} +2 -2
  231. package/dist/genexus-ide-ui/{p-bb9df26f.entry.js → p-27a2429c.entry.js} +2 -2
  232. package/dist/genexus-ide-ui/{p-3637528d.entry.js → p-2b1634e7.entry.js} +2 -2
  233. package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js → p-2dcfa6ef.entry.js} +32 -32
  234. package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js.map → p-2dcfa6ef.entry.js.map} +1 -1
  235. package/dist/genexus-ide-ui/p-2e043c76.entry.js +236 -0
  236. package/dist/genexus-ide-ui/p-2e043c76.entry.js.map +1 -0
  237. package/dist/genexus-ide-ui/{p-d18718c7.entry.js → p-307e47a1.entry.js} +2 -2
  238. package/dist/genexus-ide-ui/{p-a7027cf7.entry.js → p-37a2e9ac.entry.js} +2 -2
  239. package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js → p-4621ec24.entry.js} +2 -2
  240. package/dist/genexus-ide-ui/{p-6db2056c.entry.js → p-4f6d120f.entry.js} +9 -9
  241. package/dist/genexus-ide-ui/p-4f6d120f.entry.js.map +1 -0
  242. package/dist/genexus-ide-ui/{p-2b658e35.entry.js → p-4f815835.entry.js} +2 -2
  243. package/dist/genexus-ide-ui/{p-64e09524.entry.js → p-64e05f19.entry.js} +39 -39
  244. package/dist/genexus-ide-ui/p-64e05f19.entry.js.map +1 -0
  245. package/dist/genexus-ide-ui/{p-5619120d.entry.js → p-64f2a9f4.entry.js} +4 -4
  246. package/dist/genexus-ide-ui/{p-5619120d.entry.js.map → p-64f2a9f4.entry.js.map} +1 -1
  247. package/dist/genexus-ide-ui/{p-10da0eee.entry.js → p-6d8b4f96.entry.js} +2 -2
  248. package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js → p-7153555f.entry.js} +12 -12
  249. package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js.map → p-7153555f.entry.js.map} +1 -1
  250. package/dist/genexus-ide-ui/{p-faea4a40.entry.js → p-846c67a1.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-7754ae2e.entry.js → p-86b0cf22.entry.js} +52 -52
  252. package/dist/genexus-ide-ui/{p-7754ae2e.entry.js.map → p-86b0cf22.entry.js.map} +1 -1
  253. package/dist/genexus-ide-ui/{p-75ed87db.entry.js → p-8cebb078.entry.js} +2 -2
  254. package/dist/genexus-ide-ui/{p-1693a2d1.entry.js → p-92c51f3e.entry.js} +20 -20
  255. package/dist/genexus-ide-ui/{p-c9b0fd13.entry.js → p-9dbe2323.entry.js} +45 -19
  256. package/dist/genexus-ide-ui/p-9dbe2323.entry.js.map +1 -0
  257. package/dist/genexus-ide-ui/{p-48cc3f73.entry.js → p-9e34f166.entry.js} +3 -3
  258. package/dist/genexus-ide-ui/{p-48cc3f73.entry.js.map → p-9e34f166.entry.js.map} +1 -1
  259. package/dist/genexus-ide-ui/{p-0a690a6b.entry.js → p-9e78c60c.entry.js} +2 -2
  260. package/dist/genexus-ide-ui/{p-a9d67992.entry.js → p-a1c5775d.entry.js} +3 -3
  261. package/dist/genexus-ide-ui/{p-b12a5426.entry.js → p-a40648dc.entry.js} +63 -57
  262. package/dist/genexus-ide-ui/p-a40648dc.entry.js.map +1 -0
  263. package/dist/genexus-ide-ui/{p-fc61a10f.entry.js → p-a837de2e.entry.js} +2 -2
  264. package/dist/genexus-ide-ui/{p-0f08bb20.entry.js → p-a8739942.entry.js} +18 -18
  265. package/dist/genexus-ide-ui/p-a8739942.entry.js.map +1 -0
  266. package/dist/genexus-ide-ui/{p-c0e184da.entry.js → p-aa324232.entry.js} +2 -2
  267. package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js → p-af05e095.entry.js} +2 -2
  268. package/dist/genexus-ide-ui/{p-de797eeb.entry.js → p-b5fa3116.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/{p-c7e6222b.entry.js → p-c1162623.entry.js} +55 -55
  270. package/dist/genexus-ide-ui/{p-c7e6222b.entry.js.map → p-c1162623.entry.js.map} +1 -1
  271. package/dist/genexus-ide-ui/{p-5dfd773c.entry.js → p-d9c27591.entry.js} +2 -2
  272. package/dist/genexus-ide-ui/{p-e5712f63.entry.js → p-e2a87cd7.entry.js} +2 -2
  273. package/dist/genexus-ide-ui/{p-6c1928d2.entry.js → p-e36d7f5c.entry.js} +3 -3
  274. package/dist/genexus-ide-ui/{p-6c1928d2.entry.js.map → p-e36d7f5c.entry.js.map} +1 -1
  275. package/dist/genexus-ide-ui/{p-47e31aba.entry.js → p-e4bbec21.entry.js} +3 -3
  276. package/dist/genexus-ide-ui/{p-c2274796.entry.js → p-e4bd955a.entry.js} +2 -2
  277. package/dist/genexus-ide-ui/{p-d5aa2525.entry.js → p-ec2cb326.entry.js} +2 -2
  278. package/dist/genexus-ide-ui/{p-2137f5fa.entry.js → p-ec6129c7.entry.js} +14 -14
  279. package/dist/genexus-ide-ui/{p-2137f5fa.entry.js.map → p-ec6129c7.entry.js.map} +1 -1
  280. package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js → p-f1cc5d30.entry.js} +2 -2
  281. package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js → p-f252dd07.entry.js} +3 -3
  282. package/dist/genexus-ide-ui/{p-6563141c.entry.js → p-f827b9b8.entry.js} +2 -2
  283. package/dist/types/components/current-user-info/current-user-info.d.ts +15 -2
  284. package/dist/types/components/select-user-team/select-user-team.d.ts +9 -0
  285. package/dist/types/components/sign-in-team/sign-in-team.d.ts +13 -1
  286. package/dist/types/components.d.ts +39 -7
  287. package/package.json +5 -5
  288. package/dist/cjs/MERCURY_ASSETS-27fcab57.js +0 -9
  289. package/dist/cjs/MERCURY_ASSETS-27fcab57.js.map +0 -1
  290. package/dist/esm/MERCURY_ASSETS-845caae6.js +0 -7
  291. package/dist/esm/MERCURY_ASSETS-845caae6.js.map +0 -1
  292. package/dist/esm/config-ed1f26d7.js.map +0 -1
  293. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js +0 -163
  294. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js.map +0 -1
  295. package/dist/genexus-ide-ui/p-0f08bb20.entry.js.map +0 -1
  296. package/dist/genexus-ide-ui/p-617e65ca.js.map +0 -1
  297. package/dist/genexus-ide-ui/p-64e09524.entry.js.map +0 -1
  298. package/dist/genexus-ide-ui/p-6db2056c.entry.js.map +0 -1
  299. package/dist/genexus-ide-ui/p-b12a5426.entry.js.map +0 -1
  300. package/dist/genexus-ide-ui/p-c9b0fd13.entry.js.map +0 -1
  301. /package/dist/genexus-ide-ui/{p-6747cc1e.entry.js.map → p-0c60c76f.entry.js.map} +0 -0
  302. /package/dist/genexus-ide-ui/{p-793248c8.entry.js.map → p-1e44952c.entry.js.map} +0 -0
  303. /package/dist/genexus-ide-ui/{p-f50076d3.entry.js.map → p-1feae6ef.entry.js.map} +0 -0
  304. /package/dist/genexus-ide-ui/{p-092609aa.entry.js.map → p-22d8de70.entry.js.map} +0 -0
  305. /package/dist/genexus-ide-ui/{p-bb9df26f.entry.js.map → p-27a2429c.entry.js.map} +0 -0
  306. /package/dist/genexus-ide-ui/{p-3637528d.entry.js.map → p-2b1634e7.entry.js.map} +0 -0
  307. /package/dist/genexus-ide-ui/{p-d18718c7.entry.js.map → p-307e47a1.entry.js.map} +0 -0
  308. /package/dist/genexus-ide-ui/{p-a7027cf7.entry.js.map → p-37a2e9ac.entry.js.map} +0 -0
  309. /package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js.map → p-4621ec24.entry.js.map} +0 -0
  310. /package/dist/genexus-ide-ui/{p-2b658e35.entry.js.map → p-4f815835.entry.js.map} +0 -0
  311. /package/dist/genexus-ide-ui/{p-10da0eee.entry.js.map → p-6d8b4f96.entry.js.map} +0 -0
  312. /package/dist/genexus-ide-ui/{p-faea4a40.entry.js.map → p-846c67a1.entry.js.map} +0 -0
  313. /package/dist/genexus-ide-ui/{p-75ed87db.entry.js.map → p-8cebb078.entry.js.map} +0 -0
  314. /package/dist/genexus-ide-ui/{p-1693a2d1.entry.js.map → p-92c51f3e.entry.js.map} +0 -0
  315. /package/dist/genexus-ide-ui/{p-0a690a6b.entry.js.map → p-9e78c60c.entry.js.map} +0 -0
  316. /package/dist/genexus-ide-ui/{p-a9d67992.entry.js.map → p-a1c5775d.entry.js.map} +0 -0
  317. /package/dist/genexus-ide-ui/{p-fc61a10f.entry.js.map → p-a837de2e.entry.js.map} +0 -0
  318. /package/dist/genexus-ide-ui/{p-c0e184da.entry.js.map → p-aa324232.entry.js.map} +0 -0
  319. /package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js.map → p-af05e095.entry.js.map} +0 -0
  320. /package/dist/genexus-ide-ui/{p-de797eeb.entry.js.map → p-b5fa3116.entry.js.map} +0 -0
  321. /package/dist/genexus-ide-ui/{p-5dfd773c.entry.js.map → p-d9c27591.entry.js.map} +0 -0
  322. /package/dist/genexus-ide-ui/{p-e5712f63.entry.js.map → p-e2a87cd7.entry.js.map} +0 -0
  323. /package/dist/genexus-ide-ui/{p-47e31aba.entry.js.map → p-e4bbec21.entry.js.map} +0 -0
  324. /package/dist/genexus-ide-ui/{p-c2274796.entry.js.map → p-e4bd955a.entry.js.map} +0 -0
  325. /package/dist/genexus-ide-ui/{p-d5aa2525.entry.js.map → p-ec2cb326.entry.js.map} +0 -0
  326. /package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js.map → p-f1cc5d30.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js.map → p-f252dd07.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-6563141c.entry.js.map → p-f827b9b8.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["STATUS_REGEXP_KEY","CAPTION_REGEXP_KEY","mapNavigationDataToTreeView","navigationData","map","dataItem","i","id","selected","caption","name","startImgSrc","icon","parts","result","leaf","metadata","JSON","stringify","toString","navigationReportCss","CSS_BUNDLES","GxIdeNavigationReport","_GxIdeNavigationReport_componentLocale","set","this","_GxIdeNavigationReport_items","_GxIdeNavigationReport_combinedRegExp","statusPattern","navigationItemsStatusRegExpString","captionPattern","navigationItemsCaptionRegExpString","combinedPattern","navigationItemsRegExp","RegExp","_GxIdeNavigationReport_itemsSelectionChangedHandler","event","selectedItemId","_a","detail","item","itemSelectedCallback","_GxIdeNavigationReport_sortItemsCallback","subModel","sort","a","b","localeCompare","_GxIdeNavigationReport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","findIndex","state","itemId","warningIndex","successIndex","push","length","statusOptions","join","statusInfo","error","display","number","warning","success","_GxIdeNavigationReport_patternInputHandler","patternFilterValue","_GxIdeNavigationReport_handleChangedItems","newItems","__classPrivateFieldSet","reportTreeItems","errorsCount","warningsCount","successCount","forEach","metadataObject","parse","statusValue","navigationItemsStatusRegExpStringChanged","__classPrivateFieldGet","call","navigationItemsCaptionRegExpStringChanged","addItem","concat","clearItems","componentWillLoad","Locale","getComponentStrings","el","render","h","Host","class","widget","headerData","model","title","description","buttons","button","buttonIcon","buttonType","type","onClick","callback","src","htmlFor","aside","filterLabel","placeholder","filterPlaceholder","onInput","filter","filterType","onSelectedItemsChange","sortItemsCallback","filterOptions","autoExpand","hideMatchesAndShowNonMatches","errors","warnings","successes","hideMessage","compact","onSelectionChanged"],"sources":["src/components/navigation-report/helpers.ts","src/components/navigation-report/navigation-report.scss?tag=gx-ide-navigation-report&encapsulation=shadow","src/components/navigation-report/navigation-report.tsx"],"sourcesContent":["import { TreeViewModel } from \"@genexus/chameleon-controls-library\";\nimport { NavigationData, Status } from \"./navigation-report\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\nexport const CAPTION_REGEXP_KEY = \"caption\";\n\nexport const mapNavigationDataToTreeView = (\n navigationData: NavigationData[]\n): TreeViewModel =>\n navigationData.map((dataItem, i) => {\n return {\n id: dataItem.id,\n selected: i === 0,\n caption: dataItem.name,\n startImgSrc: dataItem.icon,\n parts: `tree-view-item tree-view-item--status tree-view-item--${dataItem.result}`,\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: dataItem.result.toString() as Status,\n [CAPTION_REGEXP_KEY]: dataItem.name\n })\n };\n });\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-areas:\n \"aside main\"\n \"footer footer\";\n grid-template-rows: 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n:host(.display-header-type) {\n grid-template-areas:\n \"header header\"\n \"aside main\"\n \"footer footer\";\n\n grid-template-rows: max-content 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n grid-area: header;\n display: grid;\n grid-template-columns: 1fr max-content;\n\n &__description {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &-p {\n max-inline-size: 460px;\n }\n }\n &__actions {\n flex-shrink: 0;\n }\n}\n\n// - - - - - - - - - - - - -\n// Aside & Main\n// - - - - - - - - - - - - -\n\n.aside {\n grid-area: aside;\n overflow: auto;\n border-inline-end: var(--section-common-border);\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n\n.main {\n grid-area: main;\n overflow: auto;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.footer {\n grid-area: footer;\n justify-content: flex-start;\n}\n\n// - - - - - - - - - - - - - - - - - - -\n// Tree view status custom status \"icon\"\n// - - - - - - - - - - - - - - - - - - -\n.tree-view::part(item__action tree-view-item--success),\n.tree-view::part(item__action tree-view-item--warning),\n.tree-view::part(item__action tree-view-item--error) {\n // WA custom solution for two icons\n // Because this is a one level tree, there is no risk of\n // breaking the layout with a custom padding.\n padding-inline-start: var(--mer-spacing--lg);\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n background: var(--icon__states_pill-filled_success--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--warning) {\n background: var(--icon__states_pill-filled_warning--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--error) {\n background: var(--icon__states_pill-filled_error--enabled) no-repeat;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport {\n mapNavigationDataToTreeView,\n STATUS_REGEXP_KEY,\n CAPTION_REGEXP_KEY\n} from \"./helpers\";\nimport {\n ChEditCustomEvent,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-navigation-report\",\n styleUrl: \"navigation-report.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/navigation-report\"]\n})\nexport class GxIdeNavigationReport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #items: NavigationData[] = [];\n\n @Element() el: HTMLGxIdeNavigationReportElement;\n @State() reportTreeItems: TreeViewModel = [];\n @State() navigationItemsStatusRegExpString: string = \"\";\n @Watch(\"navigationItemsStatusRegExpString\")\n navigationItemsStatusRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsCaptionRegExpString: string = \"\";\n @Watch(\"navigationItemsCaptionRegExpString\")\n navigationItemsCaptionRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsRegExp: RegExp;\n @State() confirmed = false;\n @State() headerState: \"none\" | \"create\" | \"reorganize\" = \"none\";\n\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() someStatusVisible: boolean;\n\n /**\n * The header data to display on the header.\n */\n @Prop() readonly headerData: HeaderData;\n\n /**\n * Callback invoked when user confirms data base reorganization\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels reorganization\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback to be invoked when the user closes the dialog\n */\n @Prop() readonly closeCallback: CloseCallback;\n\n /**\n * Callback invoked when a list item is selected\n */\n @Prop() readonly itemSelectedCallback: ItemSelectedCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderEvent: EventEmitter<string>;\n\n /**\n * Add a new item\n */\n @Method()\n async addItem(item: NavigationData) {\n this.#handleChangedItems(this.#items.concat([item]));\n }\n\n /**\n * Clear items\n */\n @Method()\n async clearItems() {\n this.#handleChangedItems([]);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #combinedRegExp = () => {\n const statusPattern = this.navigationItemsStatusRegExpString || \"\";\n const captionPattern = this.navigationItemsCaptionRegExpString || \"\";\n\n // Create a RegExp that combines the values from the buttons statues and the filer value.\n const combinedPattern = `${statusPattern && `(${statusPattern})`}${\n statusPattern && captionPattern ? \".*\" : \"\"\n }${captionPattern && `(${captionPattern})`}`;\n\n this.navigationItemsRegExp = new RegExp(combinedPattern, \"i\");\n };\n\n #itemsSelectionChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedItemId = event.detail[0]?.item.id;\n if (selectedItemId) {\n this.itemSelectedCallback(selectedItemId);\n }\n };\n\n #sortItemsCallback = (subModel: TreeViewModel) => {\n return subModel.sort((a, b) => a.caption.localeCompare(b.caption));\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n } else {\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n }\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n };\n\n #patternInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n const patternFilterValue = event.detail as string;\n this.navigationItemsCaptionRegExpString = `\"${CAPTION_REGEXP_KEY}\":\".*${patternFilterValue}.*\"`;\n };\n\n #handleChangedItems = (newItems: NavigationData[]) => {\n this.#items = newItems;\n this.reportTreeItems = mapNavigationDataToTreeView(newItems);\n let errorsCount: number = 0;\n let warningsCount: number = 0;\n let successCount: number = 0;\n this.reportTreeItems.forEach(item => {\n const metadataObject = JSON.parse(item.metadata);\n let statusValue;\n if (STATUS_REGEXP_KEY in metadataObject) {\n statusValue = metadataObject[STATUS_REGEXP_KEY] as Status;\n }\n\n if (statusValue && statusValue === \"error\") {\n errorsCount++;\n } else if (statusValue && statusValue === \"warning\") {\n warningsCount++;\n } else if (statusValue && statusValue === \"success\") {\n successCount++;\n }\n });\n\n this.statusInfo[\"error\"].number = errorsCount;\n this.statusInfo[\"warning\"].number = warningsCount;\n this.statusInfo[\"success\"].number = successCount;\n };\n\n render() {\n return (\n <Host\n class={{\n \"widget\": true,\n \"display-header-type\": !!this.headerData\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.headerData && (\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__description\">\n <h3 class=\"heading-3\">{this.headerData.title}</h3>\n <p class=\"text-body-regular-s header__description-p\">\n {this.headerData.description}\n </p>\n </div>\n <div class=\"header__actions\">\n <div class=\"buttons-spacer header__actions\">\n {this.headerData.buttons?.map(button => {\n const buttonIcon = button.icon;\n const buttonType: headerButtonType =\n button.type ?? \"button-primary\";\n return (\n <button\n class={{\n [buttonType]: true,\n \"button-icon-and-text\": !!buttonIcon\n }}\n onClick={button.callback}\n >\n {buttonIcon && (\n <ch-image class=\"icon-md\" src={buttonIcon}></ch-image>\n )}\n {button.caption}\n </button>\n );\n })}\n </div>\n </div>\n </header>\n )}\n\n <section class=\"aside field-group\">\n <header class=\"aside__header spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"pattern\">\n {this.#componentLocale.aside.filterLabel}\n </label>\n <ch-edit\n id=\"pattern\"\n class=\"input\"\n placeholder={this.#componentLocale.aside.filterPlaceholder}\n onInput={this.#patternInputHandler}\n ></ch-edit>\n </div>\n </header>\n <ch-tree-view-render\n class=\"tree-view\"\n show-lines=\"last\"\n filter={this.navigationItemsRegExp}\n filterType=\"metadata\"\n model={this.reportTreeItems}\n onSelectedItemsChange={this.#itemsSelectionChangedHandler}\n sortItemsCallback={this.#sortItemsCallback}\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n </section>\n <section class=\"main spacing-body\">\n <slot></slot>\n </section>\n <footer class=\"footer control-footer-with-border control-footer-start spacing-body-inline spacing-body-block-end\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NavigationData = {\n id: string;\n result: Status;\n icon: string;\n name: string;\n};\n\nexport type ConfirmCallback = () => Promise<void>;\nexport type CancelCallback = () => Promise<void>;\nexport type CloseCallback = () => Promise<void>;\nexport type ItemSelectedCallback = (id: string) => Promise<void>;\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type HeaderData = {\n title: string;\n description: string;\n buttons: HeaderButtonData[];\n};\n\nexport type HeaderButtonData = {\n caption: string;\n icon?: string;\n type?: headerButtonType;\n callback: () => Promise<void>;\n};\n\nexport type headerButtonType = \"button-primary\" | \"button-secondary\";\n\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":"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"}
1
+ {"version":3,"names":["STATUS_REGEXP_KEY","CAPTION_REGEXP_KEY","mapNavigationDataToTreeView","navigationData","map","dataItem","i","id","selected","caption","name","startImgSrc","icon","parts","result","leaf","metadata","JSON","stringify","toString","navigationReportCss","CSS_BUNDLES","GxIdeNavigationReport","_GxIdeNavigationReport_componentLocale","set","this","_GxIdeNavigationReport_items","_GxIdeNavigationReport_combinedRegExp","statusPattern","navigationItemsStatusRegExpString","captionPattern","navigationItemsCaptionRegExpString","combinedPattern","navigationItemsRegExp","RegExp","_GxIdeNavigationReport_itemsSelectionChangedHandler","event","selectedItemId","_a","detail","item","itemSelectedCallback","_GxIdeNavigationReport_sortItemsCallback","subModel","sort","a","b","localeCompare","_GxIdeNavigationReport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","findIndex","state","itemId","warningIndex","successIndex","push","length","statusOptions","join","statusInfo","error","display","number","warning","success","_GxIdeNavigationReport_patternInputHandler","patternFilterValue","_GxIdeNavigationReport_handleChangedItems","newItems","__classPrivateFieldSet","reportTreeItems","errorsCount","warningsCount","successCount","forEach","metadataObject","parse","statusValue","navigationItemsStatusRegExpStringChanged","__classPrivateFieldGet","call","navigationItemsCaptionRegExpStringChanged","addItem","concat","clearItems","componentWillLoad","Locale","getComponentStrings","el","render","h","Host","class","widget","headerData","model","title","description","buttons","button","buttonIcon","buttonType","type","onClick","callback","src","htmlFor","aside","filterLabel","placeholder","filterPlaceholder","onInput","filter","filterType","onSelectedItemsChange","sortItemsCallback","filterOptions","autoExpand","hideMatchesAndShowNonMatches","errors","warnings","successes","hideMessage","compact","onSelectionChanged"],"sources":["src/components/navigation-report/helpers.ts","src/components/navigation-report/navigation-report.scss?tag=gx-ide-navigation-report&encapsulation=shadow","src/components/navigation-report/navigation-report.tsx"],"sourcesContent":["import { TreeViewModel } from \"@genexus/chameleon-controls-library\";\nimport { NavigationData, Status } from \"./navigation-report\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\nexport const CAPTION_REGEXP_KEY = \"caption\";\n\nexport const mapNavigationDataToTreeView = (\n navigationData: NavigationData[]\n): TreeViewModel =>\n navigationData.map((dataItem, i) => {\n return {\n id: dataItem.id,\n selected: i === 0,\n caption: dataItem.name,\n startImgSrc: dataItem.icon,\n parts: `tree-view-item tree-view-item--status tree-view-item--${dataItem.result}`,\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: dataItem.result.toString() as Status,\n [CAPTION_REGEXP_KEY]: dataItem.name\n })\n };\n });\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-areas:\n \"aside main\"\n \"footer footer\";\n grid-template-rows: 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n:host(.display-header-type) {\n grid-template-areas:\n \"header header\"\n \"aside main\"\n \"footer footer\";\n\n grid-template-rows: max-content 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n grid-area: header;\n display: grid;\n grid-template-columns: 1fr max-content;\n\n &__description {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &-p {\n max-inline-size: 460px;\n }\n }\n &__actions {\n flex-shrink: 0;\n }\n}\n\n// - - - - - - - - - - - - -\n// Aside & Main\n// - - - - - - - - - - - - -\n\n.aside {\n grid-area: aside;\n overflow: auto;\n border-inline-end: var(--section-common-border);\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n\n.main {\n grid-area: main;\n overflow: auto;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.footer {\n grid-area: footer;\n justify-content: flex-start;\n}\n\n// - - - - - - - - - - - - - - - - - - -\n// Tree view status custom status \"icon\"\n// - - - - - - - - - - - - - - - - - - -\n.tree-view::part(item__action tree-view-item--success),\n.tree-view::part(item__action tree-view-item--warning),\n.tree-view::part(item__action tree-view-item--error) {\n // WA custom solution for two icons\n // Because this is a one level tree, there is no risk of\n // breaking the layout with a custom padding.\n padding-inline-start: var(--mer-spacing--lg);\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n background: var(--icon__states_pill-filled_success--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--warning) {\n background: var(--icon__states_pill-filled_warning--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--error) {\n background: var(--icon__states_pill-filled_error--enabled) no-repeat;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport {\n mapNavigationDataToTreeView,\n STATUS_REGEXP_KEY,\n CAPTION_REGEXP_KEY\n} from \"./helpers\";\nimport {\n ChEditCustomEvent,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-navigation-report\",\n styleUrl: \"navigation-report.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/navigation-report\"]\n})\nexport class GxIdeNavigationReport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #items: NavigationData[] = [];\n\n @Element() el: HTMLGxIdeNavigationReportElement;\n @State() reportTreeItems: TreeViewModel = [];\n @State() navigationItemsStatusRegExpString: string = \"\";\n @Watch(\"navigationItemsStatusRegExpString\")\n navigationItemsStatusRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsCaptionRegExpString: string = \"\";\n @Watch(\"navigationItemsCaptionRegExpString\")\n navigationItemsCaptionRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsRegExp: RegExp;\n @State() confirmed = false;\n @State() headerState: \"none\" | \"create\" | \"reorganize\" = \"none\";\n\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() someStatusVisible: boolean;\n\n /**\n * The header data to display on the header.\n */\n @Prop() readonly headerData: HeaderData;\n\n /**\n * Callback invoked when user confirms data base reorganization\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels reorganization\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback to be invoked when the user closes the dialog\n */\n @Prop() readonly closeCallback: CloseCallback;\n\n /**\n * Callback invoked when a list item is selected\n */\n @Prop() readonly itemSelectedCallback: ItemSelectedCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderEvent: EventEmitter<string>;\n\n /**\n * Add a new item\n */\n @Method()\n async addItem(item: NavigationData) {\n this.#handleChangedItems(this.#items.concat([item]));\n }\n\n /**\n * Clear items\n */\n @Method()\n async clearItems() {\n this.#handleChangedItems([]);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #combinedRegExp = () => {\n const statusPattern = this.navigationItemsStatusRegExpString || \"\";\n const captionPattern = this.navigationItemsCaptionRegExpString || \"\";\n\n // Create a RegExp that combines the values from the buttons statues and the filer value.\n const combinedPattern = `${statusPattern && `(${statusPattern})`}${\n statusPattern && captionPattern ? \".*\" : \"\"\n }${captionPattern && `(${captionPattern})`}`;\n\n this.navigationItemsRegExp = new RegExp(combinedPattern, \"i\");\n };\n\n #itemsSelectionChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedItemId = event.detail[0]?.item.id;\n if (selectedItemId) {\n this.itemSelectedCallback(selectedItemId);\n }\n };\n\n #sortItemsCallback = (subModel: TreeViewModel) => {\n return subModel.sort((a, b) => a.caption.localeCompare(b.caption));\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n } else {\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n }\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n };\n\n #patternInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n const patternFilterValue = event.detail as string;\n this.navigationItemsCaptionRegExpString = `\"${CAPTION_REGEXP_KEY}\":\".*${patternFilterValue}.*\"`;\n };\n\n #handleChangedItems = (newItems: NavigationData[]) => {\n this.#items = newItems;\n this.reportTreeItems = mapNavigationDataToTreeView(newItems);\n let errorsCount: number = 0;\n let warningsCount: number = 0;\n let successCount: number = 0;\n this.reportTreeItems.forEach(item => {\n const metadataObject = JSON.parse(item.metadata);\n let statusValue;\n if (STATUS_REGEXP_KEY in metadataObject) {\n statusValue = metadataObject[STATUS_REGEXP_KEY] as Status;\n }\n\n if (statusValue && statusValue === \"error\") {\n errorsCount++;\n } else if (statusValue && statusValue === \"warning\") {\n warningsCount++;\n } else if (statusValue && statusValue === \"success\") {\n successCount++;\n }\n });\n\n this.statusInfo[\"error\"].number = errorsCount;\n this.statusInfo[\"warning\"].number = warningsCount;\n this.statusInfo[\"success\"].number = successCount;\n };\n\n render() {\n return (\n <Host\n class={{\n \"widget\": true,\n \"display-header-type\": !!this.headerData\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.headerData && (\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__description\">\n <h3 class=\"subtitle-regular-s\">{this.headerData.title}</h3>\n <p class=\"body-regular-s header__description-p\">\n {this.headerData.description}\n </p>\n </div>\n <div class=\"header__actions\">\n <div class=\"buttons-spacer header__actions\">\n {this.headerData.buttons?.map(button => {\n const buttonIcon = button.icon;\n const buttonType: headerButtonType =\n button.type ?? \"button-primary\";\n return (\n <button\n class={{\n [buttonType]: true,\n \"button-icon-and-text\": !!buttonIcon\n }}\n onClick={button.callback}\n >\n {buttonIcon && (\n <ch-image class=\"icon-md\" src={buttonIcon}></ch-image>\n )}\n {button.caption}\n </button>\n );\n })}\n </div>\n </div>\n </header>\n )}\n\n <section class=\"aside field-group\">\n <header class=\"aside__header spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"pattern\">\n {this.#componentLocale.aside.filterLabel}\n </label>\n <ch-edit\n id=\"pattern\"\n class=\"input\"\n placeholder={this.#componentLocale.aside.filterPlaceholder}\n onInput={this.#patternInputHandler}\n ></ch-edit>\n </div>\n </header>\n <ch-tree-view-render\n class=\"tree-view\"\n show-lines=\"last\"\n filter={this.navigationItemsRegExp}\n filterType=\"metadata\"\n model={this.reportTreeItems}\n onSelectedItemsChange={this.#itemsSelectionChangedHandler}\n sortItemsCallback={this.#sortItemsCallback}\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n </section>\n <section class=\"main spacing-body\">\n <slot></slot>\n </section>\n <footer class=\"footer control-footer-with-border control-footer-start spacing-body-inline spacing-body-block-end\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NavigationData = {\n id: string;\n result: Status;\n icon: string;\n name: string;\n};\n\nexport type ConfirmCallback = () => Promise<void>;\nexport type CancelCallback = () => Promise<void>;\nexport type CloseCallback = () => Promise<void>;\nexport type ItemSelectedCallback = (id: string) => Promise<void>;\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type HeaderData = {\n title: string;\n description: string;\n buttons: HeaderButtonData[];\n};\n\nexport type HeaderButtonData = {\n caption: string;\n icon?: string;\n type?: headerButtonType;\n callback: () => Promise<void>;\n};\n\nexport type headerButtonType = \"button-primary\" | \"button-secondary\";\n\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":";;;;AAGO,MAAMA,IAAoB;;AAC1B,MAAMC,IAAqB;;AAE3B,MAAMC,8BACXC,KAEAA,EAAeC,KAAI,CAACC,GAAUC,OACrB;EACLC,IAAIF,EAASE;EACbC,UAAUF,MAAM;EAChBG,SAASJ,EAASK;EAClBC,aAAaN,EAASO;EACtBC,OAAO,yDAAyDR,EAASS;EACzEC,MAAM;EACNC,UAAUC,KAAKC,UAAU;IACvBlB,CAACA,IAAoBK,EAASS,OAAOK;IACrClB,CAACA,IAAqBI,EAASK;;;;ACnBvC,MAAMU,IAAsB;;;;;;;;;;;;;;;;;AC6B5B,MAAMC,IAA8B,EAClC,qBACA,kBACA,sBACA,wBACA,oBACA,gBACA,oBACA,iBACA;;MASWC,IAAqB;;;;;;;;QAKhCC,EAAAC,IAAAC,WAAA;IAEAC,EAAAF,IAAAC,MAA2B;IAoF3BE,EAAAH,IAAAC,OAAkB;MAChB,MAAMG,IAAgBH,KAAKI,qCAAqC;MAChE,MAAMC,IAAiBL,KAAKM,sCAAsC;;YAGlE,MAAMC,IAAkB,GAAGJ,KAAiB,IAAIA,OAC9CA,KAAiBE,IAAiB,OAAO,KACxCA,KAAkB,IAAIA;MAEzBL,KAAKQ,wBAAwB,IAAIC,OAAOF,GAAiB;AAAI;IAG/DG,EAAAX,IAAAC,OACEW;;MAEA,MAAMC,KAAiBC,IAAAF,EAAMG,OAAO,QAAE,QAAAD,WAAA,aAAAA,EAAEE,KAAKjC;MAC7C,IAAI8B,GAAgB;QAClBZ,KAAKgB,qBAAqBJ;;;IAI9BK,EAAAlB,IAAAC,OAAsBkB,KACbA,EAASC,MAAK,CAACC,GAAGC,MAAMD,EAAEpC,QAAQsC,cAAcD,EAAErC;IAG3DuC,EAAAxB,IAAAC,OACEW;MAEA,MAAMa,IAAeb,EAAMG;MAC3B,MAAMW,IAAqB;MAE3B,MAAMC,IAAaF,EAAaG,WAC9BC,KAASA,EAAMC,WAAW;MAE5B,MAAMC,IAAeN,EAAaG,WAChCC,KAASA,EAAMC,WAAW;MAE5B,MAAME,IAAeP,EAAaG,WAChCC,KAASA,EAAMC,WAAW;MAG5B,IAAIH,OAAgB,GAAG;QACrBD,EAASO,KAAK;;MAEhB,IAAIF,OAAkB,GAAG;QACvBL,EAASO,KAAK;;MAEhB,IAAID,OAAkB,GAAG;QACvBN,EAASO,KAAK;;MAGhB,IAAIP,EAASQ,QAAQ;QACnB,MAAMC,IAAgBT,EAASU,KAAK;QACpCnC,KAAKI,oCAAoC,IAAI7B,QAAwB2D;aAChE;QACLlC,KAAKI,oCAAoC,IAAI7B;;;YAI/CyB,KAAKoC,aAAa;QAChBC,OAAO;UACLC,SAASZ,OAAgB;UACzBa,QAAQvC,KAAKoC,WAAWC,MAAME;;QAEhCC,SAAS;UACPF,SAASR,OAAkB;UAC3BS,QAAQvC,KAAKoC,WAAWI,QAAQD;;QAElCE,SAAS;UACPH,SAASP,OAAkB;UAC3BQ,QAAQvC,KAAKoC,WAAWK,QAAQF;;;AAEnC;IAGHG,EAAA3C,IAAAC,OAAwBW;MACtB,MAAMgC,IAAqBhC,EAAMG;MACjCd,KAAKM,qCAAqC,IAAI9B,SAA0BmE;AAAuB;IAGjGC,EAAA7C,IAAAC,OAAuB6C;MACrBC,EAAA9C,MAAIC,GAAU4C,GAAQ;MACtB7C,KAAK+C,kBAAkBtE,4BAA4BoE;MACnD,IAAIG,IAAsB;MAC1B,IAAIC,IAAwB;MAC5B,IAAIC,IAAuB;MAC3BlD,KAAK+C,gBAAgBI,SAAQpC;QAC3B,MAAMqC,IAAiB5D,KAAK6D,MAAMtC,EAAKxB;QACvC,IAAI+D;QACJ,IAAI/E,KAAqB6E,GAAgB;UACvCE,IAAcF,EAAe7E;;QAG/B,IAAI+E,KAAeA,MAAgB,SAAS;UAC1CN;eACK,IAAIM,KAAeA,MAAgB,WAAW;UACnDL;eACK,IAAIK,KAAeA,MAAgB,WAAW;UACnDJ;;;MAIJlD,KAAKoC,WAAW,SAASG,SAASS;MAClChD,KAAKoC,WAAW,WAAWG,SAASU;MACpCjD,KAAKoC,WAAW,WAAWG,SAASW;AAAY;2BAzLR;6CACW;8CAKC;;qBAMjC;uBACoC;sBAEvB;MAChCb,OAAO;QACLC,SAAS;QACTC,QAAQ;;MAEVC,SAAS;QACPF,SAAS;QACTC,QAAQ;;MAEVE,SAAS;QACPH,SAAS;QACTC,QAAQ;;;;;;;;;;EAvBZ,wCAAAgB;IACEC,EAAAxD,MAAIE,GAAA,KAAgBuD,KAApBzD;;EAIF,yCAAA0D;IACEF,EAAAxD,MAAIE,GAAA,KAAgBuD,KAApBzD;;;;SAwDF,aAAM2D,CAAQ5C;IACZyC,EAAAxD,MAAI4C,GAAA,KAAoBa,KAAxBzD,MAAyBwD,EAAAxD,MAAIC,GAAA,KAAQ2D,OAAO,EAAC7C;;;;SAO/C,gBAAM8C;IACJL,EAAAxD,MAAI4C,GAAA,KAAoBa,KAAxBzD,MAAyB;;EAG3B,uBAAM8D;IACJhB,EAAA9C,MAAIF,SAA0BiE,EAAOC,oBAAoBhE,KAAKiE,KAAG;;EA8GnE,MAAAC;;IACE,OACEC,EAACC,GAAI;MACHC,OAAO;QACLC,QAAU;QACV,yBAAyBtE,KAAKuE;;OAGhCJ,EAAA;MAAUK,OAAO5E;QACjBuE,EAAA;MAASE,OAAM;OACZrE,KAAKuE,cACJJ,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAIE,OAAM;OAAsBrE,KAAKuE,WAAWE,QAChDN,EAAA;MAAGE,OAAM;OACNrE,KAAKuE,WAAWG,eAGrBP,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;QACRxD,IAAAb,KAAKuE,WAAWI,aAAO,QAAA9D,WAAA,aAAAA,EAAElC,KAAIiG;;MAC5B,MAAMC,IAAaD,EAAOzF;MAC1B,MAAM2F,KACJjE,IAAA+D,EAAOG,UAAI,QAAAlE,WAAA,IAAAA,IAAI;MACjB,OACEsD,EAAA;QACEE,OAAO;UACLS,CAACA,IAAa;UACd,0BAA0BD;;QAE5BG,SAASJ,EAAOK;SAEfJ,KACCV,EAAA;QAAUE,OAAM;QAAUa,KAAKL;UAEhCD,EAAO5F;AACD,YAQrBmF,EAAA;MAASE,OAAM;OACbF,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAOE,OAAM;MAAQc,SAAQ;OAC1B3B,EAAAxD,MAAIF,GAAA,KAAkBsF,MAAMC,cAE/BlB,EAAA;MACErF,IAAG;MACHuF,OAAM;MACNiB,aAAa9B,EAAAxD,MAAIF,GAAA,KAAkBsF,MAAMG;MACzCC,SAAShC,EAAAxD,MAAI0C,GAAA;UAInByB,EAAA;MACEE,OAAM;MAAW,cACN;MACXoB,QAAQzF,KAAKQ;MACbkF,YAAW;MACXlB,OAAOxE,KAAK+C;MACZ4C,uBAAuBnC,EAAAxD,MAAIU,GAAA;MAC3BkF,mBAAmBpC,EAAAxD,MAAIiB,GAAA;MACvB4E,eAAe;QACbC,YAAY;QACZC,8BAA8B;;SAIpC5B,EAAA;MAASE,OAAM;OACbF,EAAA,gBAEFA,EAAA;MAAQE,OAAM;OACZF,EAAA;MACE6B,QAAQhG,KAAKoC,WAAWC,MAAME;MAC9B0D,UAAUjG,KAAKoC,WAAWI,QAAQD;MAClC2D,WAAWlG,KAAKoC,WAAWK,QAAQF;MACnC4D,aAAW;MACXC,SAAO;MACPC,oBAAoB7C,EAAAxD,MAAIuB,GAAA"}
@@ -1,6 +1,6 @@
1
1
  import { r as e, h as t, H as s, g as i } from "./p-49712340.js";
2
2
 
3
- import { c as a } from "./p-78b90603.js";
3
+ import { c as a } from "./p-13738332.js";
4
4
 
5
5
  import { L as n } from "./p-311eedf3.js";
6
6
 
@@ -261,4 +261,4 @@ y = new WeakMap, k = new WeakMap, M = new WeakMap;
261
261
  W.style = r;
262
262
 
263
263
  export { W as gx_ide_connect_gx_server };
264
- //# sourceMappingURL=p-faea4a40.entry.js.map
264
+ //# sourceMappingURL=p-846c67a1.entry.js.map
@@ -1,6 +1,6 @@
1
1
  import { r as t, c as i, a as e, h as s, H as a, g as n } from "./p-49712340.js";
2
2
 
3
- import { c as o } from "./p-78b90603.js";
3
+ import { c as o } from "./p-13738332.js";
4
4
 
5
5
  import { L as l } from "./p-311eedf3.js";
6
6
 
@@ -38,9 +38,9 @@ const mapTypeDataToActionListModel = (t, i, e) => t.map((t => ({
38
38
  * Order the items in the same order as they come.
39
39
  */ const sortActionListDefault = t => t;
40
40
 
41
- const h = ':host{display:grid;block-size:100%}.main{display:grid;grid-template-rows:1fr max-content max-content}.categories-types-layout{grid-template-columns:1fr 1fr}.api-description-layout{padding-block:calc( var(--content-block-spacing) * 2 );display:grid;grid-template:"api-description-title api-description-title" "api-name-label api-name-control" "api-description-label api-description-control" "api-module-label api-module-control";grid-template-columns:max-content 1fr}.api-description-title{grid-area:api-description-title}.api-name-label{grid-area:api-name-label}.api-name-control{grid-area:api-name-control}.api-description-label{grid-area:api-description-label}.api-description-control{grid-area:api-description-control}.api-module-label{grid-area:api-module-label}.api-module-control{grid-area:api-module-control}';
41
+ const r = ':host{display:grid;block-size:100%}.main{display:grid;grid-template-rows:1fr max-content max-content}.categories-types-layout{grid-template-columns:1fr 1fr}.api-description-layout{padding-block:calc( var(--content-block-spacing) * 2 );display:grid;grid-template:"api-description-title api-description-title" "api-name-label api-name-control" "api-description-label api-description-control" "api-module-label api-module-control";grid-template-columns:max-content 1fr}.api-description-title{grid-area:api-description-title}.api-name-label{grid-area:api-name-label}.api-name-control{grid-area:api-name-control}.api-description-label{grid-area:api-description-label}.api-description-control{grid-area:api-description-control}.api-module-label{grid-area:api-module-label}.api-module-control{grid-area:api-module-control}';
42
42
 
43
- var r = undefined && undefined.__classPrivateFieldGet || function(t, i, e, s) {
43
+ var h = undefined && undefined.__classPrivateFieldGet || function(t, i, e, s) {
44
44
  if (e === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
45
45
  if (typeof i === "function" ? t !== i || !s : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
46
46
  return e === "m" ? s : e === "a" ? s.call(t) : s ? s.value : i.get(t);
@@ -96,25 +96,25 @@ const A = class {
96
96
  W.set(this, (async () => {
97
97
  var t, i, e;
98
98
  // validate name first
99
- const s = await this.validateNameCallback(r(this, y, "f").value);
99
+ const s = await this.validateNameCallback(h(this, y, "f").value);
100
100
  if (!!s) {
101
101
  // name is invalid
102
- r(this, L, "f").call(this, s);
102
+ h(this, L, "f").call(this, s);
103
103
  return;
104
104
  }
105
105
  const a = {
106
106
  typeId: (t = this.selectedType) === null || t === void 0 ? void 0 : t.id,
107
- name: r(this, y, "f").value,
108
- description: !r(this, g, "f") ? undefined : r(this, b, "f").value,
109
- moduleId: (e = (i = r(this, w, "f")) === null || i === void 0 ? void 0 : i.value) === null || e === void 0 ? void 0 : e.id
107
+ name: h(this, y, "f").value,
108
+ description: !h(this, g, "f") ? undefined : h(this, b, "f").value,
109
+ moduleId: (e = (i = h(this, w, "f")) === null || i === void 0 ? void 0 : i.value) === null || e === void 0 ? void 0 : e.id
110
110
  };
111
111
  const n = await this.createCallback(a);
112
- r(this, L, "f").call(this, n);
112
+ h(this, L, "f").call(this, n);
113
113
  }));
114
114
  C.set(this, (() => {
115
- if (r(this, k, "f") || r(this, g, "f")) {
115
+ if (h(this, k, "f") || h(this, g, "f")) {
116
116
  console.log("description modified by user");
117
- return r(this, b, "f").value;
117
+ return h(this, b, "f").value;
118
118
  } else {
119
119
  return this.selectedType.name;
120
120
  }
@@ -126,26 +126,26 @@ const A = class {
126
126
  */
127
127
  // eslint-disable-next-line @stencil-community/own-props-must-be-private
128
128
  j.set(this, (() => {
129
- const t = r(this, P, "f").call(this, this.defaultTypeId);
129
+ const t = h(this, P, "f").call(this, this.defaultTypeId);
130
130
  if (!t) {
131
131
  this.selectedCategory = this.typeCategories[0];
132
132
  this.selectedType = this.selectedCategory.types[0];
133
133
  }
134
134
  if (this.selectedType && this.selectedType.name.length > 0) {
135
- this.name = r(this, x, "f").call(this, this.selectedType);
135
+ this.name = h(this, x, "f").call(this, this.selectedType);
136
136
  this.description = this.selectedType.name;
137
137
  }
138
138
  }));
139
139
  S.set(this, (() => {
140
- if (r(this, k, "f")) {
141
- return r(this, y, "f").value;
140
+ if (h(this, k, "f")) {
141
+ return h(this, y, "f").value;
142
142
  } else {
143
- return r(this, x, "f").call(this, this.selectedType);
143
+ return h(this, x, "f").call(this, this.selectedType);
144
144
  }
145
145
  }));
146
146
  E.set(this, (async () => {
147
- const t = await this.validateNameCallback(r(this, y, "f").value);
148
- r(this, L, "f").call(this, t);
147
+ const t = await this.validateNameCallback(h(this, y, "f").value);
148
+ h(this, L, "f").call(this, t);
149
149
  }));
150
150
  F.set(this, (t => {
151
151
  this.description = t.detail;
@@ -153,25 +153,25 @@ const A = class {
153
153
  }));
154
154
  T.set(this, (async t => {
155
155
  const i = t.detail;
156
- if (!r(this, g, "f")) {
156
+ if (!h(this, g, "f")) {
157
157
  // Description should be equal to name, unless the description was already
158
158
  // modified by the user.
159
- r(this, b, "f").value = i;
159
+ h(this, b, "f").value = i;
160
160
  }
161
161
  c(this, k, true, "f");
162
162
  }));
163
163
  $.set(this, (async t => {
164
164
  const i = t.detail;
165
165
  const e = await this.validateNameCallback(i);
166
- r(this, L, "f").call(this, e);
166
+ h(this, L, "f").call(this, e);
167
167
  }));
168
168
  _.set(this, (() => {
169
169
  if (this.selectedType.hasModule || this.selectedType.hasFolder) {
170
- let t = r(this, p, "f").moduleFolder;
170
+ let t = h(this, p, "f").moduleFolder;
171
171
  if (!this.selectedType.hasFolder) {
172
- t = r(this, p, "f").moduleOnly;
172
+ t = h(this, p, "f").moduleOnly;
173
173
  } else if (!this.selectedType.hasModule) {
174
- t = r(this, p, "f").folderOnly;
174
+ t = h(this, p, "f").folderOnly;
175
175
  }
176
176
  return [ s("label", {
177
177
  // Module/folder
@@ -211,7 +211,7 @@ const A = class {
211
211
  z.set(this, (() => {
212
212
  if (this.selectedCategory) {
213
213
  // update model by setting the selected category
214
- r(this, u, "f").updateItemProperties(this.selectedCategory.id, {
214
+ h(this, u, "f").updateItemProperties(this.selectedCategory.id, {
215
215
  selected: true,
216
216
  type: "actionable"
217
217
  });
@@ -267,21 +267,21 @@ const A = class {
267
267
  // this.#validateInitialName();
268
268
  }
269
269
  async componentWillLoad() {
270
- r(this, j, "f").call(this);
270
+ h(this, j, "f").call(this);
271
271
  c(this, p, await l.getComponentStrings(this.el), "f");
272
272
  this.typeCategoriesChanged(this.typeCategories);
273
- r(this, d, "m", I).call(this);
273
+ h(this, d, "m", I).call(this);
274
274
  }
275
275
  componentDidLoad() {
276
- r(this, z, "f").call(this);
276
+ h(this, z, "f").call(this);
277
277
  }
278
278
  /**
279
279
  * Suspends or reactivates the shortcuts
280
280
  */ async suspendShortcuts(t) {
281
281
  if (t) {
282
- r(this, m, "f").suspend = true;
282
+ h(this, m, "f").suspend = true;
283
283
  } else {
284
- r(this, m, "f").suspend = false;
284
+ h(this, m, "f").suspend = false;
285
285
  }
286
286
  }
287
287
  render() {
@@ -291,7 +291,7 @@ const A = class {
291
291
  }, s("ch-theme", {
292
292
  model: N
293
293
  }), s("ch-shortcuts", {
294
- src: r(this, f, "f"),
294
+ src: h(this, f, "f"),
295
295
  ref: t => c(this, m, t, "f")
296
296
  }), s("section", {
297
297
  class: "main"
@@ -301,37 +301,37 @@ const A = class {
301
301
  class: "field field-block"
302
302
  }, s("label", {
303
303
  class: "label"
304
- }, r(this, p, "f").categorySelectionTitle), s("ch-action-list-render", {
304
+ }, h(this, p, "f").categorySelectionTitle), s("ch-action-list-render", {
305
305
  // #select a category
306
306
  // TODO: The "scrollable" class is a WA since the action-list currently does not support scrollbar customization
307
307
  class: "list-box",
308
308
  selection: "single",
309
309
  model: this.typeCategoriesActionListModel,
310
310
  sortItemsCallback: sortActionListDefault,
311
- onSelectedItemsChange: r(this, M, "f"),
311
+ onSelectedItemsChange: h(this, M, "f"),
312
312
  ref: t => c(this, u, t, "f")
313
313
  })), s("div", {
314
314
  class: "field field-block"
315
315
  }, s("label", {
316
316
  class: "label"
317
- }, this.selectedCategory.name ? `${this.selectedCategory.name} ${r(this, p, "f").typeSelectionTitleSuffix}` : r(this, p, "f").typeSelectionTitle), s("ch-action-list-render", {
317
+ }, this.selectedCategory.name ? `${this.selectedCategory.name} ${h(this, p, "f").typeSelectionTitleSuffix}` : h(this, p, "f").typeSelectionTitle), s("ch-action-list-render", {
318
318
  // #data management types
319
319
  // TODO: The "scrollable" class is a WA since the action-list currently does not support scrollbar customization
320
320
  class: "list-box",
321
321
  selection: "single",
322
322
  sortItemsCallback: sortActionListDefault,
323
323
  model: mapTypeDataToActionListModel(this.selectedCategory.types, this.selectedCategory.id, this.selectedType.id),
324
- onSelectedItemsChange: r(this, D, "f")
324
+ onSelectedItemsChange: h(this, D, "f")
325
325
  }))), s("section", {
326
326
  class: "api-description-layout field-group spacing-body-inline"
327
327
  }, s("h2", {
328
328
  // API Description
329
- class: "text-align-center api-description-title heading-5"
329
+ class: "text-align-center api-description-title subtitle-regular-xs\t"
330
330
  }, (t = this.selectedType) === null || t === void 0 ? void 0 : t.description), s("label", {
331
331
  // Name
332
332
  class: "label api-name-label",
333
333
  htmlFor: "name"
334
- }, r(this, p, "f").objectName), s("div", null, s("ch-edit", {
334
+ }, h(this, p, "f").objectName), s("div", null, s("ch-edit", {
335
335
  autoFocus: true,
336
336
  class: {
337
337
  input: true,
@@ -339,15 +339,15 @@ const A = class {
339
339
  "input-error": !!this.nameValidationErrorMessage
340
340
  },
341
341
  placeholder: "Name",
342
- value: r(this, S, "f").call(this),
342
+ value: h(this, S, "f").call(this),
343
343
  ref: t => c(this, y, t, "f"),
344
- onChange: r(this, $, "f"),
345
- onInput: r(this, T, "f"),
346
- onBlur: r(this, E, "f"),
344
+ onChange: h(this, $, "f"),
345
+ onInput: h(this, T, "f"),
346
+ onBlur: h(this, E, "f"),
347
347
  part: "name"
348
348
  }), this.nameValidationErrorMessage && s("ch-tooltip", {
349
349
  class: "tooltip",
350
- actionElement: r(this, y, "f"),
350
+ actionElement: h(this, y, "f"),
351
351
  blockAlign: o.tooltipSettings.blockAlign,
352
352
  inlineAlign: o.tooltipSettings.inlineAlign,
353
353
  delay: o.tooltipSettings.delay
@@ -355,31 +355,31 @@ const A = class {
355
355
  // Description
356
356
  class: "label api-description-label",
357
357
  htmlFor: "description"
358
- }, r(this, p, "f").objectDescription), s("ch-edit", {
358
+ }, h(this, p, "f").objectDescription), s("ch-edit", {
359
359
  autoFocus: true,
360
360
  class: "input api-description-control",
361
361
  placeholder: "Description",
362
- value: r(this, C, "f").call(this),
362
+ value: h(this, C, "f").call(this),
363
363
  // TODO: toolTip={config.tooltip}
364
364
  ref: t => c(this, b, t, "f"),
365
- onInput: r(this, F, "f"),
365
+ onInput: h(this, F, "f"),
366
366
  part: "description"
367
- }), r(this, _, "f").call(this)), s("footer", {
367
+ }), h(this, _, "f").call(this)), s("footer", {
368
368
  class: "footer control-footer-with-border spacing-body-inline spacing-body-block-end "
369
369
  }, s("div", {
370
370
  class: "buttons-spacer"
371
371
  }, s("button", {
372
372
  // cancel
373
373
  class: "button-secondary",
374
- onClick: r(this, v, "f"),
374
+ onClick: h(this, v, "f"),
375
375
  part: "button button-cancel"
376
- }, r(this, p, "f").footer.btnCancel), s("button", {
376
+ }, h(this, p, "f").footer.btnCancel), s("button", {
377
377
  // create
378
378
  class: "button-primary",
379
- onClick: r(this, W, "f"),
379
+ onClick: h(this, W, "f"),
380
380
  disabled: !!this.nameValidationErrorMessage,
381
381
  part: "button button-create"
382
- }, r(this, p, "f").footer.btnCreate)))));
382
+ }, h(this, p, "f").footer.btnCreate)))));
383
383
  }
384
384
  static get delegatesFocus() {
385
385
  return true;
@@ -412,7 +412,7 @@ d = new WeakSet, I = function _GxIdeNewObject_initializeSelectedTypeMap() {
412
412
  }));
413
413
  };
414
414
 
415
- A.style = h;
415
+ A.style = r;
416
416
 
417
417
  export { A as gx_ide_new_object };
418
- //# sourceMappingURL=p-7754ae2e.entry.js.map
418
+ //# sourceMappingURL=p-86b0cf22.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mapTypeCategoryDataToActionListModel","categories","map","category","id","type","additionalInformation","center","imgSrc","icon","undefined","caption","name","part","mapTypeDataToActionListModel","types","selectedCategoryId","selectedTypeId","imageSrc","selected","sortActionListDefault","subModel","newObjectCss","CSS_BUNDLES","GxIdeNewObject","_GxIdeNewObject_componentLocale","set","this","_GxIdeNewObject_shortcutsSrc","getAssetPath","_GxIdeNewObject_categoriesActionListEl","_GxIdeNewObject_chShortcutsEl","_GxIdeNewObject_descriptionEl","_GxIdeNewObject_descriptionModifiedByUser","_GxIdeNewObject_moduleFolderEl","_GxIdeNewObject_nameEl","_GxIdeNewObject_nameModifiedByUser","_GxIdeNewObject_cancelCallbackHandler","async","cancelCallback","_GxIdeNewObject_categoryOnSelectionChangedHandler","selectionEvent","selection","detail","length","selectedCategory","typeCategories","find","item","selectedType","selectedTypeMap","get","_GxIdeNewObject_createCallbackHandler","nameValidation","validateNameCallback","__classPrivateFieldGet","value","_GxIdeNewObject_validateNameHandler","call","data","typeId","_a","description","moduleId","_c","_b","result","createCallback","_GxIdeNewObject_descriptionValueHandler","console","log","_GxIdeNewObject_getNameSuggestion","replace","_GxIdeNewObject_init","defaultTypeFound","_GxIdeNewObject_setDefaultType","defaultTypeId","_GxIdeNewObject_nameValueHandler","_GxIdeNewObject_onBlurNameHandler","_GxIdeNewObject_onInputDescriptionHandler","e","__classPrivateFieldSet","_GxIdeNewObject_onInputNameHandler","_GxIdeNewObject_onNameValueChangedHandler","_GxIdeNewObject_renderModuleFolder","hasModule","hasFolder","labelDescription","moduleFolder","moduleOnly","folderOnly","h","class","htmlFor","labelPosition","parent","defaultValue","defaultParent","selectEntityCallback","selectModuleCallback","ref","el","found","outerLoop","i","j","loopTypeId","_GxIdeNewObject_setSelectedCategoryOnActionList","updateItemProperties","_GxIdeNewObject_typeOnSelectionChangedHandler","nameValidationErrorMessage","Map","typeCategoriesChanged","newValue","typeCategoriesActionListModel","connectedCallback","componentWillLoad","Locale","getComponentStrings","_GxIdeNewObject_instances","_GxIdeNewObject_initializeSelectedTypeMap","componentDidLoad","suspendShortcuts","suspend","render","Host","model","src","categorySelectionTitle","sortItemsCallback","onSelectedItemsChange","typeSelectionTitleSuffix","typeSelectionTitle","objectName","autoFocus","input","placeholder","onChange","onInput","onBlur","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","objectDescription","onClick","footer","btnCancel","disabled","btnCreate","forEach"],"sources":["src/components/new-object/helpers.tsx","src/common/chameleon-helpers.ts","src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["import { ActionListModel } from \"@genexus/chameleon-controls-library\";\nimport { TypeCategoryData } from \"../..\";\nimport { TypeData } from \"./new-object\";\n\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nexport const mapTypeCategoryDataToActionListModel = (\n categories: TypeCategoryData[]\n): ActionListModel => {\n return categories.map(category => {\n return {\n id: category.id,\n type: \"actionable\",\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: category.icon || undefined }]\n }\n },\n caption: category.name,\n part: `category-${category.id}`\n };\n });\n};\n\nexport const mapTypeDataToActionListModel = (\n types: TypeData[],\n selectedCategoryId: string,\n selectedTypeId?: string\n): ActionListModel => {\n return types.map(type => {\n return {\n id: `${type.id}`,\n type: \"actionable\",\n imageSrc: \"objects/design\",\n selected: selectedTypeId === type.id,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n caption: type.name,\n part: `type-${selectedCategoryId}-${type.id}`\n };\n });\n};\n","import { ActionListModel } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\n/**\n * Order the items in the same order as they come.\n */\nexport const sortActionListDefault = (subModel: ActionListModel) => {\n return subModel;\n};\n",":host {\n display: grid;\n block-size: 100%;\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr max-content max-content;\n}\n.categories-types-layout {\n grid-template-columns: 1fr 1fr;\n}\n.api-description-layout {\n padding-block: calc(\n var(--content-block-spacing) * 2\n ); // WA until we define a class for internal spacing.\n display: grid;\n grid-template:\n \"api-description-title api-description-title\"\n \"api-name-label api-name-control\"\n \"api-description-label api-description-control\"\n \"api-module-label api-module-control\";\n grid-template-columns: max-content 1fr;\n}\n.api-description-title {\n grid-area: api-description-title;\n}\n.api-name-label {\n grid-area: api-name-label;\n}\n.api-name-control {\n grid-area: api-name-control;\n}\n.api-description-label {\n grid-area: api-description-label;\n}\n.api-description-control {\n grid-area: api-description-control;\n}\n.api-module-label {\n grid-area: api-module-label;\n}\n.api-module-control {\n grid-area: api-module-control;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n getAssetPath,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../common/config\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { EntityData } from \"../../common/types\";\nimport {\n ActionListItemModelExtended,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n mapTypeCategoryDataToActionListModel,\n mapTypeDataToActionListModel\n} from \"./helpers\";\n\nimport { sortActionListDefault } from \"../../common/chameleon-helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/list-box\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-new-object\",\n styleUrl: \"new-object.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/new-object\"]\n})\nexport class GxIdeNewObject {\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 #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data on \"Create\" button submit */\n #categoriesActionListEl: HTMLChActionListRenderElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #descriptionEl!: HTMLChEditElement;\n #descriptionModifiedByUser = false;\n #moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n #nameEl!: HTMLChEditElement;\n #nameModifiedByUser = false;\n\n /**\n * Description of the new object\n */\n @State() description: string = undefined;\n\n /**\n * Name of the new object\n */\n @State() name: string = undefined;\n @State() nameValidationErrorMessage: string;\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n // representations of TypeCategoryData[] as ComboBoxModel.\n @State() typeCategoriesActionListModel: ActionListModel = [];\n @State() typesActionListModel: ActionListModel = [];\n\n @State() selectedTypeMap: Map<string, string> = new Map();\n\n /**\n * Allows you to define the type selected by default when instantiating the dialog.\n * Represented by the type identifier.\n */\n @Prop() readonly defaultTypeId: string;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * Array containing category list and its corresponding types\n */\n @Prop({ mutable: true }) typeCategories!: TypeCategoryData[];\n @Watch(\"typeCategories\")\n typeCategoriesChanged(newValue: TypeCategoryData[]) {\n if (newValue?.length) {\n this.typeCategoriesActionListModel = mapTypeCategoryDataToActionListModel(\n this.typeCategories\n );\n }\n }\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter\n * (button '...'). It returns the information of the selected object (id and\n * name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when you must validate a name. Returns an error message or\n * 'undefined' if the name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event emm=its the data needed to create a new object\n */\n @Event() create: EventEmitter<NewObjectData>;\n\n /**\n * This event is triggered after a validation of the object name is made.\n * Returns 'undefined' if it's valid, otherwise an error message.\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n connectedCallback() {\n // this.#validateInitialName();\n }\n\n async componentWillLoad() {\n this.#init();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.typeCategoriesChanged(this.typeCategories);\n this.#initializeSelectedTypeMap();\n }\n\n componentDidLoad() {\n this.#setSelectedCategoryOnActionList();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // - - - - - - - - - - -\n\n #cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n #categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories.find(\n category => category.id === selection[0].item.id\n );\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types.find(\n type => type.id === this.selectedTypeMap.get(selectedCategory.id)\n );\n }\n }\n }\n };\n\n #createCallbackHandler = async (): Promise<void> => {\n // validate name first\n const nameValidation: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n if (!!nameValidation) {\n // name is invalid\n this.#validateNameHandler(nameValidation);\n return;\n }\n\n const data: NewObjectData = {\n typeId: this.selectedType?.id,\n name: this.#nameEl.value,\n description: !this.#descriptionModifiedByUser\n ? undefined\n : this.#descriptionEl.value,\n moduleId: this.#moduleFolderEl?.value?.id\n };\n const result = await this.createCallback(data);\n this.#validateNameHandler(result);\n };\n\n #descriptionValueHandler = () => {\n if (this.#nameModifiedByUser || this.#descriptionModifiedByUser) {\n console.log(\"description modified by user\");\n return this.#descriptionEl.value;\n } else {\n return this.selectedType.name;\n }\n };\n\n #getNameSuggestion = (selectedType: TypeData) => {\n // Type name can include whitespaces; we need to replace all whitespaces to\n // avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n /**\n * This method defines the initial selected category and type, and it then\n * initializes the name value.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #init = () => {\n const defaultTypeFound = this.#setDefaultType(this.defaultTypeId);\n if (!defaultTypeFound) {\n this.selectedCategory = this.typeCategories[0];\n this.selectedType = this.selectedCategory.types[0];\n }\n if (this.selectedType && this.selectedType.name.length > 0) {\n this.name = this.#getNameSuggestion(this.selectedType);\n this.description = this.selectedType.name;\n }\n };\n\n /**\n * Initializes the selectedTypeMap with the defaultTypeId if it exists, otherwise\n * it initializes the selectedTypeMap with the first type of each category.\n */\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n #initializeSelectedTypeMap() {\n this.typeCategories.forEach(category => {\n if (this.defaultTypeId && category.id === this.selectedCategory.id) {\n this.selectedTypeMap.set(category.id, this.selectedType.id);\n } else {\n this.selectedTypeMap.set(category.id, category.types[0].id);\n }\n });\n }\n\n #nameValueHandler = (): string => {\n if (this.#nameModifiedByUser) {\n return this.#nameEl.value;\n } else {\n return this.#getNameSuggestion(this.selectedType);\n }\n };\n\n #onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n this.#validateNameHandler(result);\n };\n\n #onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.#descriptionModifiedByUser = true;\n };\n\n #onInputNameHandler = async (e: CustomEvent<any> | InputEvent) => {\n const name = e.detail;\n if (!this.#descriptionModifiedByUser) {\n // Description should be equal to name, unless the description was already\n // modified by the user.\n this.#descriptionEl.value = name;\n }\n this.#nameModifiedByUser = true;\n };\n\n #onNameValueChangedHandler = async (e: CustomEvent<string>) => {\n const name = e.detail;\n const result: string | undefined = await this.validateNameCallback(name);\n this.#validateNameHandler(result);\n };\n\n #renderModuleFolder = () => {\n if (this.selectedType.hasModule || this.selectedType.hasFolder) {\n let labelDescription = this.#componentLocale.moduleFolder;\n if (!this.selectedType.hasFolder) {\n labelDescription = this.#componentLocale.moduleOnly;\n } else if (!this.selectedType.hasModule) {\n labelDescription = this.#componentLocale.folderOnly;\n }\n return [\n <label\n // Module/folder\n class=\"label api-module-label\"\n htmlFor=\"module\"\n >\n {labelDescription}\n </label>,\n <gx-ide-entity-selector\n id=\"module\"\n class=\"api-module-control\"\n part=\"module\"\n labelPosition=\"none\"\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n #setDefaultType = (typeId: string | undefined): boolean => {\n if (!typeId) {\n return false;\n }\n let found = false;\n outerLoop: for (let i = 0; i < this.typeCategories.length; i++) {\n for (let j = 0; j < this.typeCategories[i].types.length; j++) {\n const loopTypeId = this.typeCategories[i].types[j].id;\n if (loopTypeId === typeId) {\n this.selectedCategory = this.typeCategories[i];\n this.selectedType = this.typeCategories[i].types[j];\n found = true;\n break outerLoop;\n }\n }\n }\n return found;\n };\n\n #setSelectedCategoryOnActionList = () => {\n if (this.selectedCategory) {\n // update model by setting the selected category\n this.#categoriesActionListEl.updateItemProperties(\n this.selectedCategory.id,\n {\n selected: true,\n type: \"actionable\"\n }\n );\n }\n };\n\n #typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n this.selectedType = this.selectedCategory.types.find(\n type => type.id === selection[0].item.id\n );\n this.selectedTypeMap.set(this.selectedCategory.id, this.selectedType.id);\n }\n };\n\n // #validateInitialName = async () => {\n // const result: string | undefined = await this.validateNameCallback(\n // this.name\n // );\n // this.#validateNameHandler(result);\n // };\n\n /**\n * If the parameter is undefined, it means the name is valid. Otherwise, if it\n * receives a string, it indicates that the name is not valid. The string is the\n * error message to display.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #validateNameHandler = (result: string | undefined): void => {\n this.nameValidationErrorMessage = result;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"main\">\n <section class=\"field-group categories-types-layout spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#componentLocale.categorySelectionTitle}\n </label>\n <ch-action-list-render\n // #select a category\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n model={this.typeCategoriesActionListModel}\n sortItemsCallback={sortActionListDefault}\n onSelectedItemsChange={this.#categoryOnSelectionChangedHandler}\n ref={(el: HTMLChActionListRenderElement) =>\n (this.#categoriesActionListEl =\n el as HTMLChActionListRenderElement)\n }\n ></ch-action-list-render>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.selectedCategory.name\n ? `${this.selectedCategory.name} ${\n this.#componentLocale.typeSelectionTitleSuffix\n }`\n : this.#componentLocale.typeSelectionTitle}\n </label>\n <ch-action-list-render\n // #data management types\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n sortItemsCallback={sortActionListDefault}\n model={mapTypeDataToActionListModel(\n this.selectedCategory.types,\n this.selectedCategory.id,\n this.selectedType.id\n )}\n onSelectedItemsChange={this.#typeOnSelectionChangedHandler}\n ></ch-action-list-render>\n </div>\n </section>\n\n <section class=\"api-description-layout field-group spacing-body-inline\">\n <h2\n // API Description\n class=\"text-align-center api-description-title heading-5\"\n >\n {this.selectedType?.description}\n </h2>\n\n <label\n // Name\n class=\"label api-name-label\"\n htmlFor=\"name\"\n >\n {this.#componentLocale.objectName}\n </label>\n <div>\n <ch-edit\n autoFocus\n class={{\n \"input\": true,\n \"api-name-control\": true,\n \"input-error\": !!this.nameValidationErrorMessage\n }}\n placeholder=\"Name\"\n value={this.#nameValueHandler()}\n ref={(el: HTMLChEditElement) =>\n (this.#nameEl = el as HTMLChEditElement)\n }\n onChange={this.#onNameValueChangedHandler}\n onInput={this.#onInputNameHandler as any}\n onBlur={this.#onBlurNameHandler}\n part=\"name\"\n ></ch-edit>\n {this.nameValidationErrorMessage && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#nameEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.nameValidationErrorMessage}\n </ch-tooltip>\n )}\n </div>\n\n <label\n // Description\n class=\"label api-description-label\"\n htmlFor=\"description\"\n >\n {this.#componentLocale.objectDescription}\n </label>\n <ch-edit\n autoFocus\n class=\"input api-description-control\"\n placeholder=\"Description\"\n value={this.#descriptionValueHandler()}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#descriptionEl = el as HTMLChEditElement)\n }\n onInput={this.#onInputDescriptionHandler as any}\n part=\"description\"\n ></ch-edit>\n\n {this.#renderModuleFolder()}\n </section>\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end \">\n <div class=\"buttons-spacer\">\n <button\n // cancel\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n disabled={!!this.nameValidationErrorMessage}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport interface NewObjectData {\n typeId: string;\n name: string;\n description: string | undefined;\n moduleId: string;\n}\n\nexport type ValidateNameCallback = (\n name: string\n) => Promise<string | undefined>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type CreateCallback = (\n data: NewObjectData\n) => Promise<string | undefined>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type TypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: TypeData[];\n};\n\nexport type TypeData = {\n id: string;\n name: string;\n icon: string;\n hasModule: boolean;\n hasFolder: boolean;\n description: string;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["mapTypeCategoryDataToActionListModel","categories","map","category","id","type","additionalInformation","center","imgSrc","icon","undefined","caption","name","part","mapTypeDataToActionListModel","types","selectedCategoryId","selectedTypeId","imageSrc","selected","sortActionListDefault","subModel","newObjectCss","CSS_BUNDLES","GxIdeNewObject","_GxIdeNewObject_componentLocale","set","this","_GxIdeNewObject_shortcutsSrc","getAssetPath","_GxIdeNewObject_categoriesActionListEl","_GxIdeNewObject_chShortcutsEl","_GxIdeNewObject_descriptionEl","_GxIdeNewObject_descriptionModifiedByUser","_GxIdeNewObject_moduleFolderEl","_GxIdeNewObject_nameEl","_GxIdeNewObject_nameModifiedByUser","_GxIdeNewObject_cancelCallbackHandler","async","cancelCallback","_GxIdeNewObject_categoryOnSelectionChangedHandler","selectionEvent","selection","detail","length","selectedCategory","typeCategories","find","item","selectedType","selectedTypeMap","get","_GxIdeNewObject_createCallbackHandler","nameValidation","validateNameCallback","__classPrivateFieldGet","value","_GxIdeNewObject_validateNameHandler","call","data","typeId","_a","description","moduleId","_c","_b","result","createCallback","_GxIdeNewObject_descriptionValueHandler","console","log","_GxIdeNewObject_getNameSuggestion","replace","_GxIdeNewObject_init","defaultTypeFound","_GxIdeNewObject_setDefaultType","defaultTypeId","_GxIdeNewObject_nameValueHandler","_GxIdeNewObject_onBlurNameHandler","_GxIdeNewObject_onInputDescriptionHandler","e","__classPrivateFieldSet","_GxIdeNewObject_onInputNameHandler","_GxIdeNewObject_onNameValueChangedHandler","_GxIdeNewObject_renderModuleFolder","hasModule","hasFolder","labelDescription","moduleFolder","moduleOnly","folderOnly","h","class","htmlFor","labelPosition","parent","defaultValue","defaultParent","selectEntityCallback","selectModuleCallback","ref","el","found","outerLoop","i","j","loopTypeId","_GxIdeNewObject_setSelectedCategoryOnActionList","updateItemProperties","_GxIdeNewObject_typeOnSelectionChangedHandler","nameValidationErrorMessage","Map","typeCategoriesChanged","newValue","typeCategoriesActionListModel","connectedCallback","componentWillLoad","Locale","getComponentStrings","_GxIdeNewObject_instances","_GxIdeNewObject_initializeSelectedTypeMap","componentDidLoad","suspendShortcuts","suspend","render","Host","model","src","categorySelectionTitle","sortItemsCallback","onSelectedItemsChange","typeSelectionTitleSuffix","typeSelectionTitle","objectName","autoFocus","input","placeholder","onChange","onInput","onBlur","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","objectDescription","onClick","footer","btnCancel","disabled","btnCreate","forEach"],"sources":["src/components/new-object/helpers.tsx","src/common/chameleon-helpers.ts","src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["import { ActionListModel } from \"@genexus/chameleon-controls-library\";\nimport { TypeCategoryData } from \"../..\";\nimport { TypeData } from \"./new-object\";\n\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nexport const mapTypeCategoryDataToActionListModel = (\n categories: TypeCategoryData[]\n): ActionListModel => {\n return categories.map(category => {\n return {\n id: category.id,\n type: \"actionable\",\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: category.icon || undefined }]\n }\n },\n caption: category.name,\n part: `category-${category.id}`\n };\n });\n};\n\nexport const mapTypeDataToActionListModel = (\n types: TypeData[],\n selectedCategoryId: string,\n selectedTypeId?: string\n): ActionListModel => {\n return types.map(type => {\n return {\n id: `${type.id}`,\n type: \"actionable\",\n imageSrc: \"objects/design\",\n selected: selectedTypeId === type.id,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n caption: type.name,\n part: `type-${selectedCategoryId}-${type.id}`\n };\n });\n};\n","import { ActionListModel } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\n/**\n * Order the items in the same order as they come.\n */\nexport const sortActionListDefault = (subModel: ActionListModel) => {\n return subModel;\n};\n",":host {\n display: grid;\n block-size: 100%;\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr max-content max-content;\n}\n.categories-types-layout {\n grid-template-columns: 1fr 1fr;\n}\n.api-description-layout {\n padding-block: calc(\n var(--content-block-spacing) * 2\n ); // WA until we define a class for internal spacing.\n display: grid;\n grid-template:\n \"api-description-title api-description-title\"\n \"api-name-label api-name-control\"\n \"api-description-label api-description-control\"\n \"api-module-label api-module-control\";\n grid-template-columns: max-content 1fr;\n}\n.api-description-title {\n grid-area: api-description-title;\n}\n.api-name-label {\n grid-area: api-name-label;\n}\n.api-name-control {\n grid-area: api-name-control;\n}\n.api-description-label {\n grid-area: api-description-label;\n}\n.api-description-control {\n grid-area: api-description-control;\n}\n.api-module-label {\n grid-area: api-module-label;\n}\n.api-module-control {\n grid-area: api-module-control;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n getAssetPath,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../common/config\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { EntityData } from \"../../common/types\";\nimport {\n ActionListItemModelExtended,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n mapTypeCategoryDataToActionListModel,\n mapTypeDataToActionListModel\n} from \"./helpers\";\n\nimport { sortActionListDefault } from \"../../common/chameleon-helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/list-box\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-new-object\",\n styleUrl: \"new-object.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/new-object\"]\n})\nexport class GxIdeNewObject {\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 #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data on \"Create\" button submit */\n #categoriesActionListEl: HTMLChActionListRenderElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #descriptionEl!: HTMLChEditElement;\n #descriptionModifiedByUser = false;\n #moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n #nameEl!: HTMLChEditElement;\n #nameModifiedByUser = false;\n\n /**\n * Description of the new object\n */\n @State() description: string = undefined;\n\n /**\n * Name of the new object\n */\n @State() name: string = undefined;\n @State() nameValidationErrorMessage: string;\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n // representations of TypeCategoryData[] as ComboBoxModel.\n @State() typeCategoriesActionListModel: ActionListModel = [];\n @State() typesActionListModel: ActionListModel = [];\n\n @State() selectedTypeMap: Map<string, string> = new Map();\n\n /**\n * Allows you to define the type selected by default when instantiating the dialog.\n * Represented by the type identifier.\n */\n @Prop() readonly defaultTypeId: string;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * Array containing category list and its corresponding types\n */\n @Prop({ mutable: true }) typeCategories!: TypeCategoryData[];\n @Watch(\"typeCategories\")\n typeCategoriesChanged(newValue: TypeCategoryData[]) {\n if (newValue?.length) {\n this.typeCategoriesActionListModel = mapTypeCategoryDataToActionListModel(\n this.typeCategories\n );\n }\n }\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter\n * (button '...'). It returns the information of the selected object (id and\n * name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when you must validate a name. Returns an error message or\n * 'undefined' if the name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event emm=its the data needed to create a new object\n */\n @Event() create: EventEmitter<NewObjectData>;\n\n /**\n * This event is triggered after a validation of the object name is made.\n * Returns 'undefined' if it's valid, otherwise an error message.\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n connectedCallback() {\n // this.#validateInitialName();\n }\n\n async componentWillLoad() {\n this.#init();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.typeCategoriesChanged(this.typeCategories);\n this.#initializeSelectedTypeMap();\n }\n\n componentDidLoad() {\n this.#setSelectedCategoryOnActionList();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // - - - - - - - - - - -\n\n #cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n #categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories.find(\n category => category.id === selection[0].item.id\n );\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types.find(\n type => type.id === this.selectedTypeMap.get(selectedCategory.id)\n );\n }\n }\n }\n };\n\n #createCallbackHandler = async (): Promise<void> => {\n // validate name first\n const nameValidation: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n if (!!nameValidation) {\n // name is invalid\n this.#validateNameHandler(nameValidation);\n return;\n }\n\n const data: NewObjectData = {\n typeId: this.selectedType?.id,\n name: this.#nameEl.value,\n description: !this.#descriptionModifiedByUser\n ? undefined\n : this.#descriptionEl.value,\n moduleId: this.#moduleFolderEl?.value?.id\n };\n const result = await this.createCallback(data);\n this.#validateNameHandler(result);\n };\n\n #descriptionValueHandler = () => {\n if (this.#nameModifiedByUser || this.#descriptionModifiedByUser) {\n console.log(\"description modified by user\");\n return this.#descriptionEl.value;\n } else {\n return this.selectedType.name;\n }\n };\n\n #getNameSuggestion = (selectedType: TypeData) => {\n // Type name can include whitespaces; we need to replace all whitespaces to\n // avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n /**\n * This method defines the initial selected category and type, and it then\n * initializes the name value.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #init = () => {\n const defaultTypeFound = this.#setDefaultType(this.defaultTypeId);\n if (!defaultTypeFound) {\n this.selectedCategory = this.typeCategories[0];\n this.selectedType = this.selectedCategory.types[0];\n }\n if (this.selectedType && this.selectedType.name.length > 0) {\n this.name = this.#getNameSuggestion(this.selectedType);\n this.description = this.selectedType.name;\n }\n };\n\n /**\n * Initializes the selectedTypeMap with the defaultTypeId if it exists, otherwise\n * it initializes the selectedTypeMap with the first type of each category.\n */\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n #initializeSelectedTypeMap() {\n this.typeCategories.forEach(category => {\n if (this.defaultTypeId && category.id === this.selectedCategory.id) {\n this.selectedTypeMap.set(category.id, this.selectedType.id);\n } else {\n this.selectedTypeMap.set(category.id, category.types[0].id);\n }\n });\n }\n\n #nameValueHandler = (): string => {\n if (this.#nameModifiedByUser) {\n return this.#nameEl.value;\n } else {\n return this.#getNameSuggestion(this.selectedType);\n }\n };\n\n #onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n this.#validateNameHandler(result);\n };\n\n #onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.#descriptionModifiedByUser = true;\n };\n\n #onInputNameHandler = async (e: CustomEvent<any> | InputEvent) => {\n const name = e.detail;\n if (!this.#descriptionModifiedByUser) {\n // Description should be equal to name, unless the description was already\n // modified by the user.\n this.#descriptionEl.value = name;\n }\n this.#nameModifiedByUser = true;\n };\n\n #onNameValueChangedHandler = async (e: CustomEvent<string>) => {\n const name = e.detail;\n const result: string | undefined = await this.validateNameCallback(name);\n this.#validateNameHandler(result);\n };\n\n #renderModuleFolder = () => {\n if (this.selectedType.hasModule || this.selectedType.hasFolder) {\n let labelDescription = this.#componentLocale.moduleFolder;\n if (!this.selectedType.hasFolder) {\n labelDescription = this.#componentLocale.moduleOnly;\n } else if (!this.selectedType.hasModule) {\n labelDescription = this.#componentLocale.folderOnly;\n }\n return [\n <label\n // Module/folder\n class=\"label api-module-label\"\n htmlFor=\"module\"\n >\n {labelDescription}\n </label>,\n <gx-ide-entity-selector\n id=\"module\"\n class=\"api-module-control\"\n part=\"module\"\n labelPosition=\"none\"\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n #setDefaultType = (typeId: string | undefined): boolean => {\n if (!typeId) {\n return false;\n }\n let found = false;\n outerLoop: for (let i = 0; i < this.typeCategories.length; i++) {\n for (let j = 0; j < this.typeCategories[i].types.length; j++) {\n const loopTypeId = this.typeCategories[i].types[j].id;\n if (loopTypeId === typeId) {\n this.selectedCategory = this.typeCategories[i];\n this.selectedType = this.typeCategories[i].types[j];\n found = true;\n break outerLoop;\n }\n }\n }\n return found;\n };\n\n #setSelectedCategoryOnActionList = () => {\n if (this.selectedCategory) {\n // update model by setting the selected category\n this.#categoriesActionListEl.updateItemProperties(\n this.selectedCategory.id,\n {\n selected: true,\n type: \"actionable\"\n }\n );\n }\n };\n\n #typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n this.selectedType = this.selectedCategory.types.find(\n type => type.id === selection[0].item.id\n );\n this.selectedTypeMap.set(this.selectedCategory.id, this.selectedType.id);\n }\n };\n\n // #validateInitialName = async () => {\n // const result: string | undefined = await this.validateNameCallback(\n // this.name\n // );\n // this.#validateNameHandler(result);\n // };\n\n /**\n * If the parameter is undefined, it means the name is valid. Otherwise, if it\n * receives a string, it indicates that the name is not valid. The string is the\n * error message to display.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #validateNameHandler = (result: string | undefined): void => {\n this.nameValidationErrorMessage = result;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"main\">\n <section class=\"field-group categories-types-layout spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#componentLocale.categorySelectionTitle}\n </label>\n <ch-action-list-render\n // #select a category\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n model={this.typeCategoriesActionListModel}\n sortItemsCallback={sortActionListDefault}\n onSelectedItemsChange={this.#categoryOnSelectionChangedHandler}\n ref={(el: HTMLChActionListRenderElement) =>\n (this.#categoriesActionListEl =\n el as HTMLChActionListRenderElement)\n }\n ></ch-action-list-render>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.selectedCategory.name\n ? `${this.selectedCategory.name} ${\n this.#componentLocale.typeSelectionTitleSuffix\n }`\n : this.#componentLocale.typeSelectionTitle}\n </label>\n <ch-action-list-render\n // #data management types\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n sortItemsCallback={sortActionListDefault}\n model={mapTypeDataToActionListModel(\n this.selectedCategory.types,\n this.selectedCategory.id,\n this.selectedType.id\n )}\n onSelectedItemsChange={this.#typeOnSelectionChangedHandler}\n ></ch-action-list-render>\n </div>\n </section>\n\n <section class=\"api-description-layout field-group spacing-body-inline\">\n <h2\n // API Description\n class=\"text-align-center api-description-title subtitle-regular-xs\t\"\n >\n {this.selectedType?.description}\n </h2>\n\n <label\n // Name\n class=\"label api-name-label\"\n htmlFor=\"name\"\n >\n {this.#componentLocale.objectName}\n </label>\n <div>\n <ch-edit\n autoFocus\n class={{\n \"input\": true,\n \"api-name-control\": true,\n \"input-error\": !!this.nameValidationErrorMessage\n }}\n placeholder=\"Name\"\n value={this.#nameValueHandler()}\n ref={(el: HTMLChEditElement) =>\n (this.#nameEl = el as HTMLChEditElement)\n }\n onChange={this.#onNameValueChangedHandler}\n onInput={this.#onInputNameHandler as any}\n onBlur={this.#onBlurNameHandler}\n part=\"name\"\n ></ch-edit>\n {this.nameValidationErrorMessage && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#nameEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.nameValidationErrorMessage}\n </ch-tooltip>\n )}\n </div>\n\n <label\n // Description\n class=\"label api-description-label\"\n htmlFor=\"description\"\n >\n {this.#componentLocale.objectDescription}\n </label>\n <ch-edit\n autoFocus\n class=\"input api-description-control\"\n placeholder=\"Description\"\n value={this.#descriptionValueHandler()}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#descriptionEl = el as HTMLChEditElement)\n }\n onInput={this.#onInputDescriptionHandler as any}\n part=\"description\"\n ></ch-edit>\n\n {this.#renderModuleFolder()}\n </section>\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end \">\n <div class=\"buttons-spacer\">\n <button\n // cancel\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n disabled={!!this.nameValidationErrorMessage}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport interface NewObjectData {\n typeId: string;\n name: string;\n description: string | undefined;\n moduleId: string;\n}\n\nexport type ValidateNameCallback = (\n name: string\n) => Promise<string | undefined>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type CreateCallback = (\n data: NewObjectData\n) => Promise<string | undefined>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type TypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: TypeData[];\n};\n\nexport type TypeData = {\n id: string;\n name: string;\n icon: string;\n hasModule: boolean;\n hasFolder: boolean;\n description: string;\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { r as e, c as t, h as r, H as i, g as a } from "./p-49712340.js";
2
2
 
3
- import { g as o } from "./p-617e65ca.js";
3
+ import { g as o } from "./p-1986d34d.js";
4
4
 
5
5
  import { r as s } from "./p-d1cb5507.js";
6
6
 
@@ -470,4 +470,4 @@ c = new WeakMap, g = new WeakMap;
470
470
  h.style = n;
471
471
 
472
472
  export { h as gx_ide_manage_module_references_v2 };
473
- //# sourceMappingURL=p-75ed87db.entry.js.map
473
+ //# sourceMappingURL=p-8cebb078.entry.js.map