@genexus/genexus-ide-ui 0.0.100 → 0.0.102

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 (278) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
  3. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +16 -14
  11. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-new-object.cjs.entry.js +58 -8
  29. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  31. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  33. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  39. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  45. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  47. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  48. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  49. package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
  50. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  52. package/dist/cjs/gxg-list-box_2.cjs.entry.js +9 -0
  53. package/dist/cjs/gxg-list-box_2.cjs.entry.js.map +1 -1
  54. package/dist/cjs/loader.cjs.js +1 -1
  55. package/dist/collection/components/_helpers/card/card.css +333 -26
  56. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +0 -1
  57. package/dist/collection/components/_helpers/list-selector/list-selector.css +519 -13
  58. package/dist/collection/components/_starting-template/template.css +333 -26
  59. package/dist/collection/components/ai-assistant/ai-assistant.css +333 -26
  60. package/dist/collection/components/ai-assistant/ai-message.css +0 -1
  61. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +333 -26
  62. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +333 -26
  63. package/dist/collection/components/dashboard-home/dashboard-home.css +706 -41
  64. package/dist/collection/components/dashboard-home/dashboard-home.js +51 -14
  65. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  66. package/dist/collection/components/data-selector/data-selector.css +333 -26
  67. package/dist/collection/components/import-from-design/import-from-design.css +333 -26
  68. package/dist/collection/components/kb-manager-export/kb-manager-export.css +333 -26
  69. package/dist/collection/components/kb-manager-import/kb-manager-import.css +333 -26
  70. package/dist/collection/components/new-environment/new-environment.css +333 -26
  71. package/dist/collection/components/new-kb/new-kb.css +333 -26
  72. package/dist/collection/components/new-object/new-object.css +333 -26
  73. package/dist/collection/components/new-object/new-object.js +74 -7
  74. package/dist/collection/components/new-object/new-object.js.map +1 -1
  75. package/dist/collection/components/object-selector/object-selector.css +333 -26
  76. package/dist/collection/components/references/references.css +333 -26
  77. package/dist/collection/components/share-kb/share-kb.css +333 -26
  78. package/dist/collection/components/start-page/recent-news.css +333 -26
  79. package/dist/collection/components/start-page/start-page.css +333 -26
  80. package/dist/collection/components/team-dev/commit/commit.css +333 -26
  81. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +333 -26
  82. package/dist/collection/components/team-dev/update/update.css +333 -26
  83. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +333 -26
  84. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +333 -26
  85. package/dist/collection/components/ww-images/ww-images.css +333 -26
  86. package/dist/collection/pages/assets/common.js +1 -1
  87. package/dist/components/gx-ide-ai-assistant.js +1 -1
  88. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  89. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  90. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  91. package/dist/components/gx-ide-card.js +1 -1
  92. package/dist/components/gx-ide-card.js.map +1 -1
  93. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  94. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  95. package/dist/components/gx-ide-dashboard-home.js +32 -47
  96. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  97. package/dist/components/gx-ide-data-selector.js +1 -1
  98. package/dist/components/gx-ide-data-selector.js.map +1 -1
  99. package/dist/components/gx-ide-import-from-design.js +1 -1
  100. package/dist/components/gx-ide-import-from-design.js.map +1 -1
  101. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  102. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  103. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  104. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  105. package/dist/components/gx-ide-new-environment.js +1 -1
  106. package/dist/components/gx-ide-new-environment.js.map +1 -1
  107. package/dist/components/gx-ide-new-kb.js +1 -1
  108. package/dist/components/gx-ide-new-kb.js.map +1 -1
  109. package/dist/components/gx-ide-new-object.js +59 -8
  110. package/dist/components/gx-ide-new-object.js.map +1 -1
  111. package/dist/components/gx-ide-object-selector.js +1 -1
  112. package/dist/components/gx-ide-object-selector.js.map +1 -1
  113. package/dist/components/gx-ide-references.js +1 -1
  114. package/dist/components/gx-ide-references.js.map +1 -1
  115. package/dist/components/gx-ide-share-kb.js +1 -1
  116. package/dist/components/gx-ide-share-kb.js.map +1 -1
  117. package/dist/components/gx-ide-start-page.js +1 -1
  118. package/dist/components/gx-ide-start-page.js.map +1 -1
  119. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  120. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  121. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  122. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  123. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  124. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  125. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  126. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  127. package/dist/components/gx-ide-team-dev-update.js +1 -1
  128. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  129. package/dist/components/gx-ide-template.js +1 -1
  130. package/dist/components/gx-ide-template.js.map +1 -1
  131. package/dist/components/gx-ide-ww-images.js +1 -1
  132. package/dist/components/gx-ide-ww-images.js.map +1 -1
  133. package/dist/components/list-box.js +12 -1
  134. package/dist/components/list-box.js.map +1 -1
  135. package/dist/components/list-selector.js +1 -1
  136. package/dist/components/list-selector.js.map +1 -1
  137. package/dist/components/recent-news.js +1 -1
  138. package/dist/components/recent-news.js.map +1 -1
  139. package/dist/esm/genexus-ide-ui.js +1 -1
  140. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  141. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  142. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  143. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  144. package/dist/esm/gx-ide-card.entry.js +1 -1
  145. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  146. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  147. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  148. package/dist/esm/gx-ide-dashboard-home.entry.js +16 -14
  149. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  150. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  151. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  152. package/dist/esm/gx-ide-empty-state_2.entry.js +1 -1
  153. package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -1
  154. package/dist/esm/gx-ide-import-from-design.entry.js +1 -1
  155. package/dist/esm/gx-ide-import-from-design.entry.js.map +1 -1
  156. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  157. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  158. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  159. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  160. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  161. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  162. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  163. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  164. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  165. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  166. package/dist/esm/gx-ide-new-object.entry.js +58 -8
  167. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  168. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  169. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  170. package/dist/esm/gx-ide-references.entry.js +1 -1
  171. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  172. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  173. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  174. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  175. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  176. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  177. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  178. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  179. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  180. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  181. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  182. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  183. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  184. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  185. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  186. package/dist/esm/gx-ide-template.entry.js +1 -1
  187. package/dist/esm/gx-ide-template.entry.js.map +1 -1
  188. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  189. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  190. package/dist/esm/gxg-list-box_2.entry.js +9 -0
  191. package/dist/esm/gxg-list-box_2.entry.js.map +1 -1
  192. package/dist/esm/loader.js +1 -1
  193. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  194. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  195. package/dist/genexus-ide-ui/p-05bc4d77.entry.js +598 -0
  196. package/dist/genexus-ide-ui/p-1346991a.entry.js +232 -0
  197. package/dist/genexus-ide-ui/p-1346991a.entry.js.map +1 -0
  198. package/dist/genexus-ide-ui/p-2e6da0ef.entry.js +236 -0
  199. package/dist/genexus-ide-ui/{p-8bdaef96.entry.js → p-336ee17f.entry.js} +74 -74
  200. package/dist/genexus-ide-ui/p-336ee17f.entry.js.map +1 -0
  201. package/dist/genexus-ide-ui/p-382fe6fa.entry.js +331 -0
  202. package/dist/genexus-ide-ui/p-40d52b2f.entry.js +487 -0
  203. package/dist/genexus-ide-ui/p-4a706d20.entry.js +583 -0
  204. package/dist/genexus-ide-ui/p-4bd869d3.entry.js +702 -0
  205. package/dist/genexus-ide-ui/p-5507f11d.entry.js +571 -0
  206. package/dist/genexus-ide-ui/p-5ac58299.entry.js +238 -0
  207. package/dist/genexus-ide-ui/p-5bce420c.entry.js +187 -0
  208. package/dist/genexus-ide-ui/p-5ed3968f.entry.js +183 -0
  209. package/dist/genexus-ide-ui/p-725fe015.entry.js +273 -0
  210. package/dist/genexus-ide-ui/p-72e5a0db.entry.js +111 -0
  211. package/dist/genexus-ide-ui/p-784d3d82.entry.js +119 -0
  212. package/dist/genexus-ide-ui/p-921fc4d4.entry.js +344 -0
  213. package/dist/genexus-ide-ui/p-9a333c79.entry.js +158 -0
  214. package/dist/genexus-ide-ui/p-a0180ad9.entry.js +614 -0
  215. package/dist/genexus-ide-ui/p-ac1a72d9.entry.js +344 -0
  216. package/dist/genexus-ide-ui/p-ac1a72d9.entry.js.map +1 -0
  217. package/dist/genexus-ide-ui/p-b25c9d3c.entry.js +472 -0
  218. package/dist/genexus-ide-ui/p-bddc1a7b.entry.js +305 -0
  219. package/dist/genexus-ide-ui/p-bf16cfca.entry.js +62 -0
  220. package/dist/genexus-ide-ui/{p-4e155cd5.entry.js → p-bf7c17a8.entry.js} +10 -1
  221. package/dist/genexus-ide-ui/p-bf7c17a8.entry.js.map +1 -0
  222. package/dist/genexus-ide-ui/p-d648668d.entry.js +436 -0
  223. package/dist/genexus-ide-ui/p-e0704caf.entry.js +44 -0
  224. package/dist/genexus-ide-ui/p-e0d9ab03.entry.js +257 -0
  225. package/dist/types/components/dashboard-home/dashboard-home.d.ts +8 -5
  226. package/dist/types/components/new-object/new-object.d.ts +15 -1
  227. package/dist/types/components.d.ts +24 -0
  228. package/package.json +3 -3
  229. package/dist/genexus-ide-ui/p-007a3368.entry.js +0 -158
  230. package/dist/genexus-ide-ui/p-148ec5e4.entry.js +0 -293
  231. package/dist/genexus-ide-ui/p-148ec5e4.entry.js.map +0 -1
  232. package/dist/genexus-ide-ui/p-317e4ff6.entry.js +0 -62
  233. package/dist/genexus-ide-ui/p-420a2b62.entry.js +0 -598
  234. package/dist/genexus-ide-ui/p-4e155cd5.entry.js.map +0 -1
  235. package/dist/genexus-ide-ui/p-587f3ba5.entry.js +0 -344
  236. package/dist/genexus-ide-ui/p-5ba47216.entry.js +0 -305
  237. package/dist/genexus-ide-ui/p-6397feb4.entry.js +0 -472
  238. package/dist/genexus-ide-ui/p-66b88b9b.entry.js +0 -614
  239. package/dist/genexus-ide-ui/p-75f0ba9d.entry.js +0 -273
  240. package/dist/genexus-ide-ui/p-7d719234.entry.js +0 -187
  241. package/dist/genexus-ide-ui/p-7fe9374d.entry.js +0 -238
  242. package/dist/genexus-ide-ui/p-8bdaef96.entry.js.map +0 -1
  243. package/dist/genexus-ide-ui/p-906845cd.entry.js +0 -571
  244. package/dist/genexus-ide-ui/p-9e7ea8be.entry.js +0 -44
  245. package/dist/genexus-ide-ui/p-a2805229.entry.js +0 -331
  246. package/dist/genexus-ide-ui/p-a3368c79.entry.js +0 -111
  247. package/dist/genexus-ide-ui/p-a3e07b86.entry.js +0 -240
  248. package/dist/genexus-ide-ui/p-a3e07b86.entry.js.map +0 -1
  249. package/dist/genexus-ide-ui/p-a592930e.entry.js +0 -183
  250. package/dist/genexus-ide-ui/p-ca86fe87.entry.js +0 -583
  251. package/dist/genexus-ide-ui/p-cd0c26a2.entry.js +0 -487
  252. package/dist/genexus-ide-ui/p-d4d72da2.entry.js +0 -436
  253. package/dist/genexus-ide-ui/p-e0924e3f.entry.js +0 -236
  254. package/dist/genexus-ide-ui/p-e240361a.entry.js +0 -702
  255. package/dist/genexus-ide-ui/p-e4b63012.entry.js +0 -119
  256. package/dist/genexus-ide-ui/p-ff794656.entry.js +0 -257
  257. /package/dist/genexus-ide-ui/{p-420a2b62.entry.js.map → p-05bc4d77.entry.js.map} +0 -0
  258. /package/dist/genexus-ide-ui/{p-e0924e3f.entry.js.map → p-2e6da0ef.entry.js.map} +0 -0
  259. /package/dist/genexus-ide-ui/{p-a2805229.entry.js.map → p-382fe6fa.entry.js.map} +0 -0
  260. /package/dist/genexus-ide-ui/{p-cd0c26a2.entry.js.map → p-40d52b2f.entry.js.map} +0 -0
  261. /package/dist/genexus-ide-ui/{p-ca86fe87.entry.js.map → p-4a706d20.entry.js.map} +0 -0
  262. /package/dist/genexus-ide-ui/{p-e240361a.entry.js.map → p-4bd869d3.entry.js.map} +0 -0
  263. /package/dist/genexus-ide-ui/{p-906845cd.entry.js.map → p-5507f11d.entry.js.map} +0 -0
  264. /package/dist/genexus-ide-ui/{p-7fe9374d.entry.js.map → p-5ac58299.entry.js.map} +0 -0
  265. /package/dist/genexus-ide-ui/{p-7d719234.entry.js.map → p-5bce420c.entry.js.map} +0 -0
  266. /package/dist/genexus-ide-ui/{p-a592930e.entry.js.map → p-5ed3968f.entry.js.map} +0 -0
  267. /package/dist/genexus-ide-ui/{p-75f0ba9d.entry.js.map → p-725fe015.entry.js.map} +0 -0
  268. /package/dist/genexus-ide-ui/{p-a3368c79.entry.js.map → p-72e5a0db.entry.js.map} +0 -0
  269. /package/dist/genexus-ide-ui/{p-e4b63012.entry.js.map → p-784d3d82.entry.js.map} +0 -0
  270. /package/dist/genexus-ide-ui/{p-587f3ba5.entry.js.map → p-921fc4d4.entry.js.map} +0 -0
  271. /package/dist/genexus-ide-ui/{p-007a3368.entry.js.map → p-9a333c79.entry.js.map} +0 -0
  272. /package/dist/genexus-ide-ui/{p-66b88b9b.entry.js.map → p-a0180ad9.entry.js.map} +0 -0
  273. /package/dist/genexus-ide-ui/{p-6397feb4.entry.js.map → p-b25c9d3c.entry.js.map} +0 -0
  274. /package/dist/genexus-ide-ui/{p-5ba47216.entry.js.map → p-bddc1a7b.entry.js.map} +0 -0
  275. /package/dist/genexus-ide-ui/{p-317e4ff6.entry.js.map → p-bf16cfca.entry.js.map} +0 -0
  276. /package/dist/genexus-ide-ui/{p-d4d72da2.entry.js.map → p-d648668d.entry.js.map} +0 -0
  277. /package/dist/genexus-ide-ui/{p-9e7ea8be.entry.js.map → p-e0704caf.entry.js.map} +0 -0
  278. /package/dist/genexus-ide-ui/{p-ff794656.entry.js.map → p-e0d9ab03.entry.js.map} +0 -0
@@ -19,7 +19,7 @@ import { d as defineCustomElement$4 } from './shortcuts.js';
19
19
  import { d as defineCustomElement$3 } from './title.js';
20
20
  import { d as defineCustomElement$2 } from './tooltip.js';
21
21
 
22
- const newObjectCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.main{display:grid;grid-template-rows:1fr auto;overflow:auto;height:100%}.categories-types-container{display:flex;flex-direction:row;flex-shrink:1;overflow:hidden;border-bottom:1px solid var(--gx-ide-container-border-color)}.categories-types-container .categories{flex:1}.categories-types-container .types{flex:2}.api-description{display:flex;flex-direction:column;flex-shrink:0;gap:var(--gx-ide-grid-row-gap);padding:var(--gx-ide-grid-row-gap)}.form{display:grid;grid-template-columns:minmax(95px, auto) 1fr;grid-template-areas:\"name-label name-input\" \"description-label description-input\" \"module-label module-input\";gap:var(--gx-ide-grid-row-gap);column-gap:0}.form .name-label{grid-area:\"name-label\"}.form .name-input{grid-area:\"name-input\"}.form .description-label{grid-area:\"description-label\"}.form .description-input{grid-area:\"description-input\"}.form .module-label{grid-area:\"module-label\"}.form .module-input{grid-area:\"module-input\"}";
22
+ const newObjectCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.main{display:grid;grid-template-rows:1fr auto;overflow:auto;height:100%}.categories-types-container{display:flex;flex-direction:row;flex-shrink:1;overflow:hidden;border-bottom:1px solid var(--gx-ide-container-border-color)}.categories-types-container .categories{flex:1}.categories-types-container .types{flex:2}.api-description{display:flex;flex-direction:column;flex-shrink:0;gap:var(--gx-ide-grid-row-gap);padding:var(--gx-ide-grid-row-gap)}.form{display:grid;grid-template-columns:minmax(95px, auto) 1fr;grid-template-areas:\"name-label name-input\" \"description-label description-input\" \"module-label module-input\";gap:var(--gx-ide-grid-row-gap);column-gap:0}.form .name-label{grid-area:\"name-label\"}.form .name-input{grid-area:\"name-input\"}.form .description-label{grid-area:\"description-label\"}.form .description-input{grid-area:\"description-input\"}.form .module-label{grid-area:\"module-label\"}.form .module-input{grid-area:\"module-input\"}";
23
23
 
24
24
  const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject extends HTMLElement {
25
25
  constructor() {
@@ -34,7 +34,17 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
34
34
  this.renderedFirstTime = false;
35
35
  this.shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);
36
36
  this.descriptionModifiedByUser = false;
37
+ this.nameModifiedByUser = false;
37
38
  // 9.LOCAL METHODS //
39
+ /**
40
+ * Scroll into view on both list-boxes. Only makes sense if defaultTypeId is not undefined, since otherwise in both list-boxes the initial selected item should be the first one, in which case is not needed to do scrollIntoView. Only call this method after the first render on new-object.
41
+ */
42
+ this.scrollIntoViewListBoxes = () => {
43
+ if (this.defaultTypeId) {
44
+ this.categoryListBox.scrollToSelected();
45
+ this.typeListBox.scrollToSelected();
46
+ }
47
+ };
38
48
  this.setFirstFocusableElement = () => {
39
49
  this.el.addEventListener("focus", () => {
40
50
  this.nameEl.focus();
@@ -61,19 +71,56 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
61
71
  return null;
62
72
  };
63
73
  /**
64
- * This method initializes tha name value. It depends on 'this.selectedType'
74
+ * This method defines the initial selected category and type, and it thens initializes tha name value.
65
75
  */
66
76
  this.init = () => {
67
- this.selectedCategory = this.typeCategories[0];
68
- this.selectedType = this.typeCategories[0].types[0];
77
+ const defaultTypeFound = this.setDefaultType(this.defaultTypeId);
78
+ if (!defaultTypeFound) {
79
+ this.selectedCategory = this.typeCategories[0];
80
+ this.selectedType = this.selectedCategory.types[0];
81
+ }
69
82
  if (this.selectedType && this.selectedType.name.length > 0) {
70
83
  this.name = this.getNameSuggestion(this.selectedType);
71
84
  this.description = this.selectedType.name;
72
85
  }
73
86
  };
87
+ this.setDefaultType = (typeId) => {
88
+ if (!typeId) {
89
+ return false;
90
+ }
91
+ let found = false;
92
+ outerLoop: for (let i = 0; i < this.typeCategories.length; i++) {
93
+ for (let j = 0; j < this.typeCategories[i].types.length; j++) {
94
+ const loopTypeId = this.typeCategories[i].types[j].id;
95
+ if (loopTypeId === typeId) {
96
+ this.selectedCategory = this.typeCategories[i];
97
+ this.selectedType = this.typeCategories[i].types[j];
98
+ found = true;
99
+ break outerLoop;
100
+ }
101
+ }
102
+ }
103
+ return found;
104
+ };
74
105
  this.getNameSuggestion = (selectedType) => {
75
- //Type name can include whitespaces, we need to replace all whitespaces to avoid invalid suggestions:
76
- return selectedType.name.replace(/\s/g, '');
106
+ // Type name can include whitespaces, we need to replace all whitespaces to avoid invalid suggestions:
107
+ return selectedType.name.replace(/\s/g, "");
108
+ };
109
+ this.nameValueHandler = () => {
110
+ if (this.nameModifiedByUser) {
111
+ return this.nameEl.value;
112
+ }
113
+ else {
114
+ return this.getNameSuggestion(this.selectedType);
115
+ }
116
+ };
117
+ this.descriptionValueHandler = () => {
118
+ if (this.nameModifiedByUser) {
119
+ return this.descriptionEl.value;
120
+ }
121
+ else {
122
+ return this.selectedType.name;
123
+ }
77
124
  };
78
125
  this.onInputNameHandler = (e) => {
79
126
  const name = e.detail;
@@ -81,6 +128,7 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
81
128
  // description should be equal to name, unless the description was already modified by the user.
82
129
  this.descriptionEl.value = name;
83
130
  }
131
+ this.nameModifiedByUser = true;
84
132
  };
85
133
  this.onBlurNameHandler = async () => {
86
134
  const result = await this.validateNameCallback(this.nameEl.value);
@@ -157,6 +205,7 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
157
205
  this.typeCategories = undefined;
158
206
  this.parent = undefined;
159
207
  this.defaultParent = undefined;
208
+ this.defaultTypeId = undefined;
160
209
  this.selectModuleCallback = undefined;
161
210
  this.validateNameCallback = undefined;
162
211
  this.createCallback = undefined;
@@ -180,6 +229,7 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
180
229
  if (!this.renderedFirstTime) {
181
230
  this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
182
231
  this.renderedFirstTime = true;
232
+ this.scrollIntoViewListBoxes();
183
233
  }
184
234
  }
185
235
  // 7.LISTENERS //
@@ -199,9 +249,9 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
199
249
  // 11.RENDER() FUNCTION //
200
250
  render() {
201
251
  var _a;
202
- return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noContentGap: true, slimmerFooter: config.gxIdeContainer.slimmerFooter, containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noHeadingBorder: true }, h("main", { class: "main" }, h("div", { class: "categories-types-container" }, h("div", { class: "categories" }, this.typeCategories.length > 0 ? (h("gxg-list-box", { class: "category", "single-selection": true, noBorder: true, borderEnd: true, "the-title": this._componentLocale.categorySelectionTitle, onSelectionChanged: this.categoryOnSelectionChangedHandler }, this.typeCategories.map(category => (h("gxg-list-box-item", { key: category.id, value: category.id, icon: category.icon, part: `category-${category.id}` }, category.name))))) : null), h("div", { class: "types" }, this.selectedCategory.types.length > 0 ? (h("gxg-list-box", { class: "types", "single-selection": true, noBorder: true, theTitle: this.selectedCategory.name
252
+ return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noContentGap: true, slimmerFooter: config.gxIdeContainer.slimmerFooter, containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noHeadingBorder: true }, h("main", { class: "main" }, h("div", { class: "categories-types-container" }, h("div", { class: "categories" }, this.typeCategories.length > 0 ? (h("gxg-list-box", { class: "category", "single-selection": true, noBorder: true, borderEnd: true, "the-title": this._componentLocale.categorySelectionTitle, onSelectionChanged: this.categoryOnSelectionChangedHandler, ref: el => (this.categoryListBox = el) }, this.typeCategories.map(category => (h("gxg-list-box-item", { key: category.id, value: category.id, icon: category.icon, part: `category-${category.id}`, selected: this.selectedCategory.id === category.id }, category.name))))) : null), h("div", { class: "types" }, this.selectedCategory.types.length > 0 ? (h("gxg-list-box", { class: "types", "single-selection": true, noBorder: true, theTitle: this.selectedCategory.name
203
253
  ? `${this.selectedCategory.name} ${this._componentLocale.typeSelectionTitleSuffix}`
204
- : this._componentLocale.typeSelectionTitle, key: this.selectedCategory.id, onSelectionChanged: this.typeOnSelectionChangedHandler }, this.selectedCategory.types.map(type => (h("gxg-list-box-item", { key: `${this.selectedCategory.id}-${type.id}`, icon: type.icon, part: `type-${this.selectedCategory.id}-${type.id}` }, type.name))))) : (h("p", null, "No Categories to display")))), h("div", { class: "api-description" }, h("gxg-title", { type: "title-05" }, (_a = this.selectedType) === null || _a === void 0 ? void 0 : _a.description), h("div", { class: "form" }, h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectName), h("gxg-form-text", { "label-position": "start", placeholder: "Name", "max-width": "100%", value: this.getNameSuggestion(this.selectedType), toolTip: config.tooltip, ref: (el) => (this.nameEl = el), onInput: this.onInputNameHandler, onBlur: this.onBlurNameHandler, onValueChanged: this.onNameValueChangedHandler, debounce: true, part: "name", "display-validation-styles": true, "display-validation-message": true }), h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectDescription), h("gxg-form-text", { "label-position": "start", placeholder: "Description", "max-width": "100%", value: this.selectedType.name, ref: (el) => (this.descriptionEl = el), onInput: this.onInputDescriptionHandler, part: "description", "display-validation-styles": true, "display-validation-message": true }), this.renderModuleFolder()))), h("gxg-button", { id: "button-cancel", slot: "footer-end", type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", slot: "footer-end", type: "primary-text-only", onClick: this.createCallbackHandler, disabled: !this.nameIsValid, part: "gxg-button gxg-button--create" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) })));
254
+ : this._componentLocale.typeSelectionTitle, key: this.selectedCategory.id, onSelectionChanged: this.typeOnSelectionChangedHandler, ref: el => (this.typeListBox = el) }, this.selectedCategory.types.map(type => (h("gxg-list-box-item", { key: `${this.selectedCategory.id}-${type.id}`, icon: type.icon, part: `type-${this.selectedCategory.id}-${type.id}`, selected: this.selectedType.id === type.id }, type.name))))) : (h("p", null, "No Categories to display")))), h("div", { class: "api-description" }, h("gxg-title", { type: "title-05" }, (_a = this.selectedType) === null || _a === void 0 ? void 0 : _a.description), h("div", { class: "form" }, h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectName), h("gxg-form-text", { "label-position": "start", placeholder: "Name", "max-width": "100%", value: this.nameValueHandler(), toolTip: config.tooltip, ref: (el) => (this.nameEl = el), onInput: this.onInputNameHandler, onBlur: this.onBlurNameHandler, onValueChanged: this.onNameValueChangedHandler, debounce: true, part: "name", "display-validation-styles": true, "display-validation-message": true }), h("gxg-label", { labelPosition: "start" }, this._componentLocale.objectDescription), h("gxg-form-text", { "label-position": "start", placeholder: "Description", "max-width": "100%", value: this.descriptionValueHandler(), ref: (el) => (this.descriptionEl = el), onInput: this.onInputDescriptionHandler, part: "description", "display-validation-styles": true, "display-validation-message": true }), this.renderModuleFolder()))), h("gxg-button", { id: "button-cancel", slot: "footer-end", type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel), h("gxg-button", { id: "button-create", slot: "footer-end", type: "primary-text-only", onClick: this.createCallbackHandler, disabled: !this.nameIsValid, part: "gxg-button gxg-button--create" }, this._componentLocale.footer.btnCreate))), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) })));
205
255
  }
206
256
  static get delegatesFocus() { return true; }
207
257
  static get assetsDirs() { return ["gx-ide-assets/new-object"]; }
@@ -216,6 +266,7 @@ const GxIdeNewObject$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeNewObject e
216
266
  "typeCategories": [16],
217
267
  "parent": [16],
218
268
  "defaultParent": [16],
269
+ "defaultTypeId": [1, "default-type-id"],
219
270
  "selectModuleCallback": [16],
220
271
  "validateNameCallback": [16],
221
272
  "createCallback": [16],
@@ -1 +1 @@
1
- {"file":"gx-ide-new-object.js","mappings":"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","names":["GxIdeNewObject"],"sources":["src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n/*main*/\n.main {\n display: grid;\n grid-template-rows: 1fr auto;\n overflow: auto;\n height: 100%;\n}\n.categories-types-container {\n display: flex;\n flex-direction: row;\n flex-shrink: 1;\n overflow: hidden;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n .categories {\n flex: 1;\n }\n .types {\n flex: 2;\n }\n}\n.api-description {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n gap: var(--gx-ide-grid-row-gap);\n padding: var(--gx-ide-grid-row-gap);\n}\n.form {\n display: grid;\n grid-template-columns: minmax(95px, auto) 1fr;\n grid-template-areas:\n \"name-label name-input\"\n \"description-label description-input\"\n \"module-label module-input\";\n gap: var(--gx-ide-grid-row-gap);\n column-gap: 0;\n\n .name-label {\n grid-area: \"name-label\";\n }\n .name-input {\n grid-area: \"name-input\";\n }\n .description-label {\n grid-area: \"description-label\";\n }\n .description-input {\n grid-area: \"description-input\";\n }\n .module-label {\n grid-area: \"module-label\";\n }\n .module-input {\n grid-area: \"module-input\";\n }\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 { SelectionChangedEvent } from \"@genexus/gemini/dist/types/components/list-box/list-box\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData } from \"../../common/types\";\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 /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/new-object/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data con \"Create\" button submit*/\n private nameEl!: HTMLGxgFormTextElement;\n private descriptionEl!: HTMLGxgFormTextElement;\n private moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n private descriptionModifiedByUser = false;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n\n // 3.STATE() VARIABLES //\n\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n @Watch(\"selectedType\")\n watchSelectedTypeHandler() {\n this.descriptionModifiedByUser = false;\n }\n @State() nameIsValid = false;\n // Name of the new object\n @State() name: string = undefined;\n // Description of the new object\n @State() description: string = undefined;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\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() readonly typeCategories!: TypeCategoryData[];\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and 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 error message or 'undefined' if name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n // 5.EVENTS (EMIT) //\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 trigger after a validation of the object name is made. Returns undefined if its valid, otherwise an error message\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this.init();\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.nameEl.focus();\n this.setFirstFocusableElement();\n this.validateInitialName();\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n // 9.LOCAL METHODS //\n\n private setFirstFocusableElement = () => {\n this.el.addEventListener(\"focus\", () => {\n this.nameEl.focus();\n });\n };\n\n private validateInitialName = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.name\n );\n this.validateNameHandler(result);\n };\n\n private 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 <gxg-label labelPosition=\"start\">{labelDescription}</gxg-label>,\n <gx-ide-entity-selector\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n id=\"module\"\n part=\"module\"\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n /**\n * This method initializes tha name value. It depends on 'this.selectedType'\n */\n private init = () => {\n this.selectedCategory = this.typeCategories[0];\n this.selectedType = this.typeCategories[0].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 private getNameSuggestion = (selectedType:TypeData) => {\n //Type name can include whitespaces, we need to replace all whitespaces to avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, '');\n }\n\n private onInputNameHandler = (e: CustomEvent<string>) => {\n const name = e.detail;\n if (!this.descriptionModifiedByUser) {\n // description should be equal to name, unless the description was already modified by the user.\n this.descriptionEl.value = name;\n }\n };\n\n private onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.nameEl.value\n );\n this.validateNameHandler(result);\n };\n\n private 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 private onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.descriptionModifiedByUser = true;\n };\n\n /**\n * If the parameter is undefined, is because the name is valid. Otherwise, if it receives a string, is because the name is not valid. The string is the error message to display.\n */\n private validateNameHandler = (result: string | undefined): void => {\n if (result !== undefined) {\n // the name is not valid. display message\n this.nameEl.validationMessage = result;\n this.nameEl.validationStatus = \"error\";\n this.nameIsValid = false;\n } else {\n // valid name\n this.nameEl.validationMessage = null;\n this.nameEl.validationStatus = \"indeterminate\";\n this.nameIsValid = true;\n }\n };\n\n private createCallbackHandler = async (): Promise<void> => {\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 private cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n private categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<SelectionChangedEvent>\n ): void => {\n const selection = selectionEvent.detail.items;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories[selection[0].index];\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types[0];\n }\n }\n }\n };\n\n private typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<SelectionChangedEvent>\n ) => {\n const selection = selectionEvent.detail.items;\n if (selection.length > 0) {\n const selected = selection[0];\n this.selectedType = this.selectedCategory.types[selected.index];\n }\n };\n\n // 10.LOCAL METHODS (RENDER) //\n\n // 11.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noHeadingBorder\n >\n <main class=\"main\">\n <div class=\"categories-types-container\">\n <div class=\"categories\">\n {/* select a category listbox*/}\n {this.typeCategories.length > 0 ? (\n <gxg-list-box\n class=\"category\"\n single-selection\n noBorder\n borderEnd\n the-title={this._componentLocale.categorySelectionTitle}\n onSelectionChanged={\n this.categoryOnSelectionChangedHandler\n }\n >\n {this.typeCategories.map(category => (\n <gxg-list-box-item\n key={category.id}\n value={category.id}\n icon={category.icon}\n part={`category-${category.id}`}\n >\n {category.name}\n </gxg-list-box-item>\n ))}\n </gxg-list-box>\n ) : null}\n </div>\n <div class=\"types\">\n {/* types listbox*/}\n {this.selectedCategory.types.length > 0 ? (\n <gxg-list-box\n class=\"types\"\n single-selection\n noBorder\n theTitle={\n this.selectedCategory.name\n ? `${this.selectedCategory.name} ${this._componentLocale.typeSelectionTitleSuffix}`\n : this._componentLocale.typeSelectionTitle\n }\n key={this.selectedCategory.id}\n onSelectionChanged={this.typeOnSelectionChangedHandler}\n >\n {this.selectedCategory.types.map(type => (\n <gxg-list-box-item\n key={`${this.selectedCategory.id}-${type.id}`}\n icon={type.icon}\n part={`type-${this.selectedCategory.id}-${type.id}`}\n >\n {type.name}\n </gxg-list-box-item>\n ))}\n </gxg-list-box>\n ) : (\n <p>No Categories to display</p>\n )}\n </div>\n </div>\n <div class=\"api-description\">\n {/* api description title*/}\n <gxg-title type=\"title-05\">\n {this.selectedType?.description}\n </gxg-title>\n <div class=\"form\">\n {/* selected type name */}\n <gxg-label labelPosition=\"start\">\n {this._componentLocale.objectName}\n </gxg-label>\n <gxg-form-text\n label-position=\"start\"\n placeholder=\"Name\"\n max-width=\"100%\"\n value={this.getNameSuggestion(this.selectedType)}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.nameEl = el as HTMLGxgFormTextElement)\n }\n onInput={this.onInputNameHandler as any}\n onBlur={this.onBlurNameHandler}\n onValueChanged={this.onNameValueChangedHandler}\n debounce\n part=\"name\"\n display-validation-styles\n display-validation-message\n ></gxg-form-text>\n\n {/* description */}\n <gxg-label labelPosition=\"start\">\n {this._componentLocale.objectDescription}\n </gxg-label>\n <gxg-form-text\n label-position=\"start\"\n placeholder=\"Description\"\n max-width=\"100%\"\n value={this.selectedType.name}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.descriptionEl = el as HTMLGxgFormTextElement)\n }\n onInput={this.onInputDescriptionHandler as any}\n part=\"description\"\n display-validation-styles\n display-validation-message\n ></gxg-form-text>\n\n {this.renderModuleFolder()}\n </div>\n </div>\n </main>\n\n {/* Footer*/}\n {/* cancel button*/}\n <gxg-button\n id=\"button-cancel\"\n slot=\"footer-end\"\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* create button*/}\n <gxg-button\n id=\"button-create\"\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.createCallbackHandler}\n disabled={!this.nameIsValid}\n part=\"gxg-button gxg-button--create\"\n >\n {this._componentLocale.footer.btnCreate}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\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"],"version":3}
1
+ {"file":"gx-ide-new-object.js","mappings":"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","names":["GxIdeNewObject"],"sources":["src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n/*main*/\n.main {\n display: grid;\n grid-template-rows: 1fr auto;\n overflow: auto;\n height: 100%;\n}\n.categories-types-container {\n display: flex;\n flex-direction: row;\n flex-shrink: 1;\n overflow: hidden;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n .categories {\n flex: 1;\n }\n .types {\n flex: 2;\n }\n}\n.api-description {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n gap: var(--gx-ide-grid-row-gap);\n padding: var(--gx-ide-grid-row-gap);\n}\n.form {\n display: grid;\n grid-template-columns: minmax(95px, auto) 1fr;\n grid-template-areas:\n \"name-label name-input\"\n \"description-label description-input\"\n \"module-label module-input\";\n gap: var(--gx-ide-grid-row-gap);\n column-gap: 0;\n\n .name-label {\n grid-area: \"name-label\";\n }\n .name-input {\n grid-area: \"name-input\";\n }\n .description-label {\n grid-area: \"description-label\";\n }\n .description-input {\n grid-area: \"description-input\";\n }\n .module-label {\n grid-area: \"module-label\";\n }\n .module-input {\n grid-area: \"module-input\";\n }\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 { SelectionChangedEvent } from \"@genexus/gemini/dist/types/components/list-box/list-box\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData } from \"../../common/types\";\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 /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/new-object/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data con \"Create\" button submit*/\n private nameEl!: HTMLGxgFormTextElement;\n private descriptionEl!: HTMLGxgFormTextElement;\n private moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n private descriptionModifiedByUser = false;\n private nameModifiedByUser = false;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private categoryListBox!: HTMLGxgListBoxElement;\n private typeListBox!: HTMLGxgListBoxElement;\n\n // 3.STATE() VARIABLES //\n\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n @Watch(\"selectedType\")\n watchSelectedTypeHandler() {\n this.descriptionModifiedByUser = false;\n }\n @State() nameIsValid = false;\n // Name of the new object\n @State() name: string = undefined;\n // Description of the new object\n @State() description: string = undefined;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\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() readonly typeCategories!: TypeCategoryData[];\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * Allows you to define the type selected by default when instantiating the dialog. Represented by the type identifier\n */\n @Prop() readonly defaultTypeId: string;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and 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 error message or 'undefined' if name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n // 5.EVENTS (EMIT) //\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 trigger after a validation of the object name is made. Returns undefined if its valid, otherwise an error message\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this.init();\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.nameEl.focus();\n this.setFirstFocusableElement();\n this.validateInitialName();\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n this.scrollIntoViewListBoxes();\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n // 9.LOCAL METHODS //\n\n /**\n * Scroll into view on both list-boxes. Only makes sense if defaultTypeId is not undefined, since otherwise in both list-boxes the initial selected item should be the first one, in which case is not needed to do scrollIntoView. Only call this method after the first render on new-object.\n */\n private scrollIntoViewListBoxes = () => {\n if (this.defaultTypeId) {\n this.categoryListBox.scrollToSelected();\n this.typeListBox.scrollToSelected();\n }\n };\n\n private setFirstFocusableElement = () => {\n this.el.addEventListener(\"focus\", () => {\n this.nameEl.focus();\n });\n };\n\n private validateInitialName = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.name\n );\n this.validateNameHandler(result);\n };\n\n private 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 <gxg-label labelPosition=\"start\">{labelDescription}</gxg-label>,\n <gx-ide-entity-selector\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n id=\"module\"\n part=\"module\"\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n /**\n * This method defines the initial selected category and type, and it thens initializes tha name value.\n */\n private 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 private 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 private getNameSuggestion = (selectedType: TypeData) => {\n // Type name can include whitespaces, we need to replace all whitespaces to avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n private nameValueHandler = (): string => {\n if (this.nameModifiedByUser) {\n return this.nameEl.value;\n } else {\n return this.getNameSuggestion(this.selectedType);\n }\n };\n\n private descriptionValueHandler = () => {\n if (this.nameModifiedByUser) {\n return this.descriptionEl.value;\n } else {\n return this.selectedType.name;\n }\n };\n\n private onInputNameHandler = (e: CustomEvent<string>) => {\n const name = e.detail;\n if (!this.descriptionModifiedByUser) {\n // description should be equal to name, unless the description was already modified by the user.\n this.descriptionEl.value = name;\n }\n this.nameModifiedByUser = true;\n };\n\n private onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.nameEl.value\n );\n this.validateNameHandler(result);\n };\n\n private 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 private onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.descriptionModifiedByUser = true;\n };\n\n /**\n * If the parameter is undefined, is because the name is valid. Otherwise, if it receives a string, is because the name is not valid. The string is the error message to display.\n */\n private validateNameHandler = (result: string | undefined): void => {\n if (result !== undefined) {\n // the name is not valid. display message\n this.nameEl.validationMessage = result;\n this.nameEl.validationStatus = \"error\";\n this.nameIsValid = false;\n } else {\n // valid name\n this.nameEl.validationMessage = null;\n this.nameEl.validationStatus = \"indeterminate\";\n this.nameIsValid = true;\n }\n };\n\n private createCallbackHandler = async (): Promise<void> => {\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 private cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n private categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<SelectionChangedEvent>\n ): void => {\n const selection = selectionEvent.detail.items;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories[selection[0].index];\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types[0];\n }\n }\n }\n };\n\n private typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<SelectionChangedEvent>\n ) => {\n const selection = selectionEvent.detail.items;\n if (selection.length > 0) {\n const selected = selection[0];\n this.selectedType = this.selectedCategory.types[selected.index];\n }\n };\n\n // 10.LOCAL METHODS (RENDER) //\n\n // 11.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noHeadingBorder\n >\n <main class=\"main\">\n <div class=\"categories-types-container\">\n <div class=\"categories\">\n {/* select a category listbox*/}\n {this.typeCategories.length > 0 ? (\n <gxg-list-box\n class=\"category\"\n single-selection\n noBorder\n borderEnd\n the-title={this._componentLocale.categorySelectionTitle}\n onSelectionChanged={\n this.categoryOnSelectionChangedHandler\n }\n ref={el =>\n (this.categoryListBox = el as HTMLGxgListBoxElement)\n }\n >\n {this.typeCategories.map(category => (\n <gxg-list-box-item\n key={category.id}\n value={category.id}\n icon={category.icon}\n part={`category-${category.id}`}\n selected={this.selectedCategory.id === category.id}\n >\n {category.name}\n </gxg-list-box-item>\n ))}\n </gxg-list-box>\n ) : null}\n </div>\n <div class=\"types\">\n {/* types listbox*/}\n {this.selectedCategory.types.length > 0 ? (\n <gxg-list-box\n class=\"types\"\n single-selection\n noBorder\n theTitle={\n this.selectedCategory.name\n ? `${this.selectedCategory.name} ${this._componentLocale.typeSelectionTitleSuffix}`\n : this._componentLocale.typeSelectionTitle\n }\n key={this.selectedCategory.id}\n onSelectionChanged={this.typeOnSelectionChangedHandler}\n ref={el =>\n (this.typeListBox = el as HTMLGxgListBoxElement)\n }\n >\n {this.selectedCategory.types.map(type => (\n <gxg-list-box-item\n key={`${this.selectedCategory.id}-${type.id}`}\n icon={type.icon}\n part={`type-${this.selectedCategory.id}-${type.id}`}\n selected={this.selectedType.id === type.id}\n >\n {type.name}\n </gxg-list-box-item>\n ))}\n </gxg-list-box>\n ) : (\n <p>No Categories to display</p>\n )}\n </div>\n </div>\n <div class=\"api-description\">\n {/* api description title*/}\n <gxg-title type=\"title-05\">\n {this.selectedType?.description}\n </gxg-title>\n <div class=\"form\">\n {/* selected type name */}\n <gxg-label labelPosition=\"start\">\n {this._componentLocale.objectName}\n </gxg-label>\n <gxg-form-text\n label-position=\"start\"\n placeholder=\"Name\"\n max-width=\"100%\"\n value={this.nameValueHandler()}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.nameEl = el as HTMLGxgFormTextElement)\n }\n onInput={this.onInputNameHandler as any}\n onBlur={this.onBlurNameHandler}\n onValueChanged={this.onNameValueChangedHandler}\n debounce\n part=\"name\"\n display-validation-styles\n display-validation-message\n ></gxg-form-text>\n\n {/* description */}\n <gxg-label labelPosition=\"start\">\n {this._componentLocale.objectDescription}\n </gxg-label>\n <gxg-form-text\n label-position=\"start\"\n placeholder=\"Description\"\n max-width=\"100%\"\n value={this.descriptionValueHandler()}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.descriptionEl = el as HTMLGxgFormTextElement)\n }\n onInput={this.onInputDescriptionHandler as any}\n part=\"description\"\n display-validation-styles\n display-validation-message\n ></gxg-form-text>\n\n {this.renderModuleFolder()}\n </div>\n </div>\n </main>\n\n {/* Footer*/}\n {/* cancel button*/}\n <gxg-button\n id=\"button-cancel\"\n slot=\"footer-end\"\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* create button*/}\n <gxg-button\n id=\"button-create\"\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.createCallbackHandler}\n disabled={!this.nameIsValid}\n part=\"gxg-button gxg-button--create\"\n >\n {this._componentLocale.footer.btnCreate}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\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"],"version":3}
@@ -34,7 +34,7 @@ import { d as defineCustomElement$4 } from './text.js';
34
34
  import { d as defineCustomElement$3 } from './title.js';
35
35
  import { d as defineCustomElement$2 } from './tooltip.js';
36
36
 
37
- const objectSelectorCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.filter-grid{display:grid;padding:var(--mer-spacing--sm);row-gap:var(--gx-ide-grid-row-gap);column-gap:var(--gx-ide-grid-column-gap);border-block-start:1px solid var(--gx-ide-container-border-color);border-block-end:1px solid var(--gx-ide-container-border-color);grid-template-columns:1fr 1fr;grid-template-areas:\"pattern type\" \"category module-folder\" \"modified-row modified-row\"}.filter-grid .pattern{grid-area:pattern}.filter-grid .type{grid-area:type}.filter-grid .category{grid-area:category}.filter-grid .module-folder{grid-area:module-folder}.filter-grid .modified-row{grid-area:modified-row}.filter-grid--no-title{border-top:0}.modified-row{min-height:24px;display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap);flex:1}.modified-row__inner-wrapper{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap);flex:1}.modified-row__inner-wrapper .date-time{display:flex;align-items:center}.modified-row .user{max-width:205px !important}.modified-row .date-time{flex:1}.grid-container{height:100%}ch-grid-cell{--mer-spacing--xs:var(--mer-spacing--sm)}.objects-count{display:flex;justify-content:space-around}.objects-count>*{flex:1;padding:var(--mer-spacing--xxs)}.objects-count>:not(:last-child){border-inline-end:1px solid var(--gx-ide-container-border-color)}";
37
+ const objectSelectorCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--mer-color__surface)}.filter-grid{display:grid;padding:var(--mer-spacing--sm);row-gap:var(--gx-ide-grid-row-gap);column-gap:var(--gx-ide-grid-column-gap);border-block-start:1px solid var(--gx-ide-container-border-color);border-block-end:1px solid var(--gx-ide-container-border-color);grid-template-columns:1fr 1fr;grid-template-areas:\"pattern type\" \"category module-folder\" \"modified-row modified-row\"}.filter-grid .pattern{grid-area:pattern}.filter-grid .type{grid-area:type}.filter-grid .category{grid-area:category}.filter-grid .module-folder{grid-area:module-folder}.filter-grid .modified-row{grid-area:modified-row}.filter-grid--no-title{border-top:0}.modified-row{min-height:24px;display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap);flex:1}.modified-row__inner-wrapper{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap);flex:1}.modified-row__inner-wrapper .date-time{display:flex;align-items:center}.modified-row .user{max-width:205px !important}.modified-row .date-time{flex:1}.grid-container{height:100%}ch-grid-cell{--mer-spacing--xs:var(--mer-spacing--sm)}.objects-count{display:flex;justify-content:space-around}.objects-count>*{flex:1;padding:var(--mer-spacing--xxs)}.objects-count>:not(:last-child){border-inline-end:1px solid var(--gx-ide-container-border-color)}";
38
38
 
39
39
  const GxIdeObjectSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeObjectSelector extends HTMLElement {
40
40
  constructor() {
@@ -1 +1 @@
1
- {"file":"gx-ide-object-selector.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,iBAAiB,GAAG,48HAA48H;;MC6Bz9HA,qBAAmB;;;;;;;QAqBtB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,iBAAY,GAAG,YAAY,CACjC,gDAAgD,CACjD,CAAC;;QA8KM,gCAA2B,GAAG;YACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B,CAAC;QAEM,eAAU,GAAG;;;YAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnD,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,0CAAE,IAAI,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAsB;gBACjC,OAAO,EAAE,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK;gBACpC,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK;gBAC9B,QAAQ,EAAE,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK;gBACtC,MAAM,EAAE,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,0CAAE,EAAE;gBACtC,aAAa,EAAE,QAAQ,IAAI,aAAa,GAAG,aAAa,GAAG,IAAI;gBAC/D,UAAU,EAAE,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;gBAC1C,YAAY,EACV,QAAQ,IAAI,aAAa,KAAK,YAAY,CAAC,SAAS;sBAC/C,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAc;sBAC1C,IAAI;aACX,CAAC;YACF,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;iBAC3B;gBACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAmB;oBAClD,IAAI,KAAK,EAAE;wBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;qBACtB;oBACD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;qBAC5B;iBACF,CAAC,CAAC;aACJ;SACF,CAAC;QAEM,iCAA4B,GAAG,CACrC,CAA6B;YAE7B,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACrD,CAAC;QAEM,0BAAqB,GAAG;YAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,CAAC;QAEM,cAAS,GAAG;YACjB,IAAI,CAAC,QAAgB,CAAC,aAAa,EAAE,CAAC;SACxC,CAAC;QAEM,gBAAW,GAAG;YACnB,IAAI,CAAC,QAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7C,CAAC;QAEM,6BAAwB,GAAG;YACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAC;QAEM,kBAAa,GAAG;;YAEtB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACjD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACrD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACnD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAM;gBACtD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACrC,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBACpD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBACzD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,CAAC;;YAEH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAO;gBACzD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aAC5C,CAAC,CAAC;SACJ,CAAC;QAEM,yBAAoB,GAAG,CAAC,CAAgB;YAC9C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACrB,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;aACtC;SACF,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAgB;;YAE7C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;SACF,CAAC;QAEM,yBAAoB,GAAG,CAAC,IAA6B;YAC3D,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;aACrD;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtE,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aAC3D;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpE,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC5F;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;aACrD;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3D,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aAC3D;iBAAM;;gBAEL,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACjF;SACF,CAAC;;QAIM,iBAAY,GAAG;;YACrB,QACE,WACE,IAAI,EAAC,mBAAmB,EACxB,KAAK,EAAE;oBACL,aAAa,EAAE,IAAI;oBACnB,uBAAuB,EAAE,CAAC,IAAI,CAAC,YAAY;iBAC5C,EACD,IAAI,EAAC,QAAQ,IAEb,uCACiB,OAAO,EACtB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAC3C,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,eAAe,GAAG,EAA4B,CAAC,EAEvD,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,gBAAgB,GACN,EAEjB,6CAEE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EACxC,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,yEAGrB,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC,EAEpD,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,aAAa,IAEjB,gBAAgB,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,CACrB,EAEhB,6CAEE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAC5C,KAAK,EAAE,IAAI,CAAC,eAAe,EAC3B,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,yEAG1B,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,gBAAgB,GAAG,EAA4B,CAAC,EAExD,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,iBAAiB,IAErB,gBAAgB,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,CAC1B,EAEhB,8BACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,oBAC3B,OAAO,EACtB,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,GAAG,EAAE,CAAC,EAAkC,MACrC,IAAI,CAAC,cAAc,GAAG,EAAoC,CAAC,EAE9D,KAAK,EAAC,eAAe,GACG,EAE1B,WAAK,KAAK,EAAC,cAAc,IACvB,yBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAC5C,KAAK,EAAC,cAAc,EACpB,GAAG,EAAE,CAAC,EAA8B,MACjC,IAAI,CAAC,gBAAgB,GAAG,EAAgC,CAAC,EAE5D,IAAI,EAAC,iBAAiB,GACH,EAErB,WAAK,KAAK,EAAC,6BAA6B,IACtC,qBACE,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,IAAI,CAAC,cAAc;oBAClC,gBAAgB,EAAE,IAAI;iBACvB,0BAED,KAAK,EAAE,IAAI,CAAC,eAAe,yEAG3B,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,iBAAiB,GAAG,EAA4B,CAAC,EAEzD,IAAI,EAAC,mBAAmB,IAEvB,gBAAgB,CAAC;gBAChB;oBACE,EAAE,EAAE,YAAY,CAAC,IAAI;oBACrB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS;oBAC7C,KAAK,EAAE,YAAY,CAAC,IAAI;iBACzB;gBACD;oBACE,EAAE,EAAE,YAAY,CAAC,SAAS;oBAC1B,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC3D,KAAK,EAAE,YAAY,CAAC,SAAS;iBAC9B;gBACD;oBACE,EAAE,EAAE,YAAY,CAAC,MAAM;oBACvB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;oBACxD,KAAK,EAAE,YAAY,CAAC,MAAM;iBAC3B;gBACD;oBACE,EAAE,EAAE,YAAY,CAAC,UAAU;oBAC3B,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;oBAC5D,KAAK,EAAE,YAAY,CAAC,UAAU;iBAC/B;aACF,CAAC,CACY,EAEhB,qBACE,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,IAAI,CAAC,cAAc;oBAClC,MAAM,EAAE,IAAI;iBACb,oBACc,OAAO,EACtB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,eAC9B,OAAO,EACjB,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC,EAEpD,IAAI,EAAC,aAAa,GACH,EAEjB,WACE,KAAK,EAAE;oBACL,WAAW,EAAE,IAAI;oBACjB,YAAY,EACV,CAAC,IAAI,CAAC,cAAc;wBACpB,IAAI,CAAC,eAAe,KAAK,YAAY,CAAC,SAAS;iBAClD,EACD,IAAI,EAAC,iBAAiB,IAEtB,mCAA0B,OAAO,IAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAC5B,EACZ,uBACE,GAAG,EAAE,CAAC,EAA4B,MAC/B,IAAI,CAAC,oBAAoB,GAAG,EAA8B,CAAC,EAE9D,KAAK,EAAC,WAAW,GACA,CACf,CACF,CACF,CACF,EACN;SACH,CAAC;QAEM,kBAAa,GAAG;YACtB,QACE,+CAAgC,QAAQ,UACtC,eACE,gBAAgB,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,GAAG,QAAQ,EAC7D,GAAG,EAAE,CAAC,EAAqB,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EACpD,SAAS,EAAE,IAAI,CAAC,oBAAoB,EACpC,IAAI,EAAC,iBAAiB,IAEtB,6BACE,8CACuB,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,0BAC5B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,0BAC5B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,0BAC9B,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,0BACnC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,GACf,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,0BACpC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,EAClB,qCACe,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,0BAClC,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,GACb,CACA,EACnB,IAAI,CAAC,OAAO;iBACV,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAChC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,KAAK,GAAG,KAAK,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAC;iBACX;gBACD,IAAI,KAAK,GAAG,KAAK,EAAE;oBACjB,OAAO,CAAC,CAAC;iBACV;gBACD,OAAO,CAAC,CAAC;aACV,CAAC;iBACD,GAAG,CAAC,CAAC,GAAe,MACnB,mBACE,KAAK,EAAE,GAAG,CAAC,EAAE,EACb,UAAU,EAAE,IAAI,CAAC,4BAA4B,IAE7C,wBACE,YAAM,KAAK,EAAC,cAAc,IACxB,gBACE,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,OAAO,GACF,CACP,CACM,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,SAAG,GAAG,CAAC,IAAI,MAAS,CACjC,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,IAAE,GAAG,CAAC,IAAI,CAAQ,CAC/B,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,IAAE,GAAG,CAAC,MAAM,CAAQ,CACjC,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,IAAE,GAAG,CAAC,WAAW,CAAQ,CACtC,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,IAAE,GAAG,UAAU,CACvC,GAAG,CAAC,YAAY,EAChB,WAAW,CACZ,EAAE,CAAQ,CACE,EACf,wBACE,YAAM,KAAK,EAAC,cAAc,IAAE,GAAG,UAAU,CACvC,GAAG,CAAC,UAAU,EACd,WAAW,CACZ,EAAE,CAAQ,CACE,CACH,CACf,CAAC,CACI,CACD,EACX;SACH,CAAC;+BAhiByB,EAAE;8BAKH,KAAK;uBAKE,EAAE;kCAKK,EAAE;4BAOV,KAAK;sBAKX,KAAK;8BAKY,IAAI;;;;;;;;;;;;;;IAuE/C,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;KAC9B;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;KACF;;;;;;IASD,MAAM,gBAAgB,CAAC,gBAAyB;QAC9C,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;SACrC;KACF;;;;IAMD,MAAM,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,OAAO,OAAO,CAAC;KAChB;;IAkZD,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB,EAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,IACjE,WAAK,KAAK,EAAC,qBAAqB,IAC9B,wBACE,cAAc,EACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,EAEhE,gBAAgB,QAChB,oBAAoB,QACpB,gBAAgB,QAChB,iBAAiB,QACjB,eAAe,QACf,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa,IAEjD,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,aAAa,EAAE,EAErB,WAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,cAAc,IAC5C,gBACE,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAC,QAAQ,IAEjB,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAC7B,EACX,gBACE,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAC,QAAQ,IAEjB,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAC7B,CACP,EAIN,kBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,qBAAqB,EACnC,IAAI,EAAC,+BAA+B,EACpC,IAAI,EAAC,YAAY,IAEhB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAC5B,EAEb,kBACE,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,4BAA4B,EAC1C,IAAI,EAAC,2BAA2B,EAChC,IAAI,EAAC,YAAY,IAEhB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAC7B,EAEb,kBACE,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAE,IAAI,CAAC,wBAAwB,EACtC,IAAI,EAAC,4BAA4B,EACjC,IAAI,EAAC,cAAc,IAElB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CACzB,EAEZ,IAAI,CAAC,cAAc,IAClB,kBACE,IAAI,EAAC,qBAAqB,EAC1B,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,IAAI,EAAC,mCAAmC,EACxC,IAAI,EAAC,cAAc,IAElB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAC/B,IACX,IAAI,CACS,CACf,EACN,qBACE,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,GAAG,EAAE,CAAC,EAA2B,MAC9B,IAAI,CAAC,cAAc,GAAG,EAA6B,CAAC,GAExC,EAEhB,IAAI,CAAC,MAAM,IACV,sBACE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EACrD,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAC/C,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,QAAQ,GAAG,EAA6B,CAAC,EAC1D,cAAc,EAAE,IAAI,CAAC,2BAA2B,GAChC,IAChB,IAAI,CACH,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The after types render in the after selector\n */\n @State() filterAfterType = \"\";\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n type: this.filterTypeEl?.value,\n category: this.filterCategoryEl?.value,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n private selectAll = (): void => {\n (this.chGridEl as any).selectAllRows();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* category*/\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {renderComboItems(this.types ?? [])}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderComboItems(this.categories ?? [])}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\n label-position=\"above\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\n {\n id: FILTER_AFTER.NONE,\n label: this._componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n id: FILTER_AFTER.DATE_TIME,\n label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n id: FILTER_AFTER.IMPORT,\n label: this._componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n id: FILTER_AFTER.LAST_BUILD,\n label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ])}\n </gxg-combo-box>\n\n <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}
1
+ {"file":"gx-ide-object-selector.js","mappings":"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","names":["GxIdeObjectSelector"],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The after types render in the after selector\n */\n @State() filterAfterType = \"\";\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n type: this.filterTypeEl?.value,\n category: this.filterCategoryEl?.value,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n private selectAll = (): void => {\n (this.chGridEl as any).selectAllRows();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* category*/\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {renderComboItems(this.types ?? [])}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderComboItems(this.categories ?? [])}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\n label-position=\"above\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\n {\n id: FILTER_AFTER.NONE,\n label: this._componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n id: FILTER_AFTER.DATE_TIME,\n label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n id: FILTER_AFTER.IMPORT,\n label: this._componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n id: FILTER_AFTER.LAST_BUILD,\n label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ])}\n </gxg-combo-box>\n\n <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"version":3}