@genexus/genexus-ide-ui 2.1.2 → 2.1.3

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 (582) hide show
  1. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  2. package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -1
  3. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  26. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  30. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
  32. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +1 -1
  34. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  37. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js +1 -1
  38. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
  40. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  42. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
  44. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  46. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
  48. package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  50. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  52. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-launchpad-apis_3.cjs.entry.js +1 -1
  54. package/dist/cjs/gx-ide-launchpad-apis_3.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  56. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
  58. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-name-picker.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-name-picker.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
  62. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  64. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  66. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  68. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
  70. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  72. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +1 -1
  74. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  76. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-restore-version.cjs.entry.js +5 -4
  78. package/dist/cjs/gx-ide-restore-version.cjs.entry.js.map +1 -1
  79. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +1 -1
  80. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  81. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +1 -1
  82. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  83. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +1 -1
  84. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  85. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  86. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  87. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  88. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  89. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  90. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  91. package/dist/cjs/gx-ide-starting-template.cjs.entry.js +1 -1
  92. package/dist/cjs/gx-ide-starting-template.cjs.entry.js.map +1 -1
  93. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +1 -1
  94. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -1
  95. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +1 -1
  96. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  97. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  98. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  99. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +1 -1
  100. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  101. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js +2 -2
  102. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js.map +1 -1
  103. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  104. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  105. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  106. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  107. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  108. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  109. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  110. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  111. package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
  112. package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
  113. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  114. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  115. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
  116. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  117. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  118. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  119. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.css +1 -1
  120. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +1 -0
  121. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +4 -0
  122. package/dist/collection/components/_helpers/list-selector/list-selector.css +1 -0
  123. package/dist/collection/components/_starting-template/starting-template.css +4 -0
  124. package/dist/collection/components/_test/test.css +1 -0
  125. package/dist/collection/components/about/about.css +4 -0
  126. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +5 -0
  127. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +1 -0
  128. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +1 -0
  129. package/dist/collection/components/bpm/import-files/bpm-import-files.css +1 -0
  130. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +1 -0
  131. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +1 -0
  132. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.css +4 -0
  133. package/dist/collection/components/bpm/task-documents/task-documents.css +4 -0
  134. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +1 -0
  135. package/dist/collection/components/curl-inspector/curl-inspector.css +4 -0
  136. package/dist/collection/components/data-selector/data-selector.css +4 -0
  137. package/dist/collection/components/data-type-selector/data-type-selector.css +4 -0
  138. package/dist/collection/components/deployment-tool/deployment-tool.css +1 -0
  139. package/dist/collection/components/design-import/design-import.css +5 -0
  140. package/dist/collection/components/details-acknowledgements/details-acknowledgements.css +4 -0
  141. package/dist/collection/components/file-uploader/file-uploader.css +5 -0
  142. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +5 -0
  143. package/dist/collection/components/json-import/json-import.css +4 -0
  144. package/dist/collection/components/kb-manager-export/kb-manager-export.css +4 -0
  145. package/dist/collection/components/kb-manager-import/kb-manager-import.css +4 -0
  146. package/dist/collection/components/launchpad/native-apps/launchpad-native-apps.css +4 -0
  147. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +4 -0
  148. package/dist/collection/components/name-picker/name-picker.css +4 -0
  149. package/dist/collection/components/navigation-report/navigation-report.css +4 -0
  150. package/dist/collection/components/new-environment/new-environment.css +4 -0
  151. package/dist/collection/components/new-kb/new-kb.css +4 -0
  152. package/dist/collection/components/new-object/new-object.css +4 -0
  153. package/dist/collection/components/new-version/new-version.css +4 -0
  154. package/dist/collection/components/object-selector/object-selector.css +4 -0
  155. package/dist/collection/components/open-api-import/open-api-import.css +4 -0
  156. package/dist/collection/components/references/references.css +1 -0
  157. package/dist/collection/components/restore-version/restore-version.css +7 -14
  158. package/dist/collection/components/restore-version/restore-version.js +4 -3
  159. package/dist/collection/components/restore-version/restore-version.js.map +1 -1
  160. package/dist/collection/components/select-kb-items/select-kb-items.css +4 -0
  161. package/dist/collection/components/select-user-team/select-user-team.css +4 -0
  162. package/dist/collection/components/splash/splash.css +4 -0
  163. package/dist/collection/components/start-page/start-page.css +4 -0
  164. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.css +4 -0
  165. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +4 -0
  166. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.css +4 -0
  167. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.css +4 -0
  168. package/dist/collection/components/team-dev/history/history.css +4 -0
  169. package/dist/collection/components/team-dev/preview/team-dev-preview.css +1 -0
  170. package/dist/collection/components/team-dev/preview/team-dev-preview.js +1 -1
  171. package/dist/collection/components/team-dev/preview/team-dev-preview.js.map +1 -1
  172. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +5 -0
  173. package/dist/collection/components/team-dev/server-selector/server-selector.css +4 -0
  174. package/dist/collection/components/team-dev/share-kb/share-kb.css +4 -0
  175. package/dist/collection/components/team-dev/update/update.css +4 -0
  176. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +4 -0
  177. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +4 -0
  178. package/dist/collection/components/team-dev/version-control/commit/commit.css +4 -0
  179. package/dist/collection/components/wf-settings/wf-settings.css +1 -0
  180. package/dist/collection/components/ww-files/ww-files.css +4 -0
  181. package/dist/collection/components/ww-images/ww-images.css +4 -0
  182. package/dist/components/bpm-objects-selector.js +1 -1
  183. package/dist/components/bpm-objects-selector.js.map +1 -1
  184. package/dist/components/gx-ide-about.js +1 -1
  185. package/dist/components/gx-ide-about.js.map +1 -1
  186. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  187. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  188. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  189. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  190. package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
  191. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  192. package/dist/components/gx-ide-bpm-import-files.js +1 -1
  193. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  194. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  195. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  196. package/dist/components/gx-ide-bpm-sync-gam-roles.js +1 -1
  197. package/dist/components/gx-ide-bpm-sync-gam-roles.js.map +1 -1
  198. package/dist/components/gx-ide-bpm-task-documents.js +1 -1
  199. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  200. package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
  201. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  202. package/dist/components/gx-ide-comments-viewer.js +1 -1
  203. package/dist/components/gx-ide-comments-viewer.js.map +1 -1
  204. package/dist/components/gx-ide-connect-gx-server.js +1 -1
  205. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  206. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  207. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  208. package/dist/components/gx-ide-curl-inspector.js +1 -1
  209. package/dist/components/gx-ide-curl-inspector.js.map +1 -1
  210. package/dist/components/gx-ide-data-selector.js +1 -1
  211. package/dist/components/gx-ide-data-selector.js.map +1 -1
  212. package/dist/components/gx-ide-data-type-selector.js +1 -1
  213. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  214. package/dist/components/gx-ide-deployment-tool.js +1 -1
  215. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  216. package/dist/components/gx-ide-design-import.js +1 -1
  217. package/dist/components/gx-ide-design-import.js.map +1 -1
  218. package/dist/components/gx-ide-details-acknowledgements.js +1 -1
  219. package/dist/components/gx-ide-details-acknowledgements.js.map +1 -1
  220. package/dist/components/gx-ide-edit-module-server.js +1 -1
  221. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  222. package/dist/components/gx-ide-empty-state2.js +1 -1
  223. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  224. package/dist/components/gx-ide-file-uploader.js +1 -1
  225. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  226. package/dist/components/gx-ide-gam-installation-settings.js +1 -1
  227. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  228. package/dist/components/gx-ide-json-import.js +1 -1
  229. package/dist/components/gx-ide-json-import.js.map +1 -1
  230. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  231. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  232. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  233. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  234. package/dist/components/gx-ide-name-picker.js +1 -1
  235. package/dist/components/gx-ide-name-picker.js.map +1 -1
  236. package/dist/components/gx-ide-navigation-report.js +1 -1
  237. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  238. package/dist/components/gx-ide-new-environment.js +1 -1
  239. package/dist/components/gx-ide-new-environment.js.map +1 -1
  240. package/dist/components/gx-ide-new-kb.js +1 -1
  241. package/dist/components/gx-ide-new-kb.js.map +1 -1
  242. package/dist/components/gx-ide-new-object.js +1 -1
  243. package/dist/components/gx-ide-new-object.js.map +1 -1
  244. package/dist/components/gx-ide-new-version.js +1 -1
  245. package/dist/components/gx-ide-new-version.js.map +1 -1
  246. package/dist/components/gx-ide-object-selector.js +1 -1
  247. package/dist/components/gx-ide-object-selector.js.map +1 -1
  248. package/dist/components/gx-ide-open-api-import.js +1 -1
  249. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  250. package/dist/components/gx-ide-references.js +1 -1
  251. package/dist/components/gx-ide-references.js.map +1 -1
  252. package/dist/components/gx-ide-restore-version.js +5 -4
  253. package/dist/components/gx-ide-restore-version.js.map +1 -1
  254. package/dist/components/gx-ide-select-user-team.js +1 -1
  255. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  256. package/dist/components/gx-ide-server-selector.js +1 -1
  257. package/dist/components/gx-ide-server-selector.js.map +1 -1
  258. package/dist/components/gx-ide-share-kb.js +1 -1
  259. package/dist/components/gx-ide-share-kb.js.map +1 -1
  260. package/dist/components/gx-ide-splash.js +1 -1
  261. package/dist/components/gx-ide-splash.js.map +1 -1
  262. package/dist/components/gx-ide-start-page.js +1 -1
  263. package/dist/components/gx-ide-start-page.js.map +1 -1
  264. package/dist/components/gx-ide-starting-template.js +1 -1
  265. package/dist/components/gx-ide-starting-template.js.map +1 -1
  266. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +1 -1
  267. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -1
  268. package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
  269. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  270. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  271. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  272. package/dist/components/gx-ide-team-dev-history.js +1 -1
  273. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  274. package/dist/components/gx-ide-team-dev-preview.js +2 -2
  275. package/dist/components/gx-ide-team-dev-preview.js.map +1 -1
  276. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  277. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  278. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  279. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  280. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  281. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  282. package/dist/components/gx-ide-team-dev-update.js +1 -1
  283. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  284. package/dist/components/gx-ide-test.js +1 -1
  285. package/dist/components/gx-ide-test.js.map +1 -1
  286. package/dist/components/gx-ide-wf-settings.js +1 -1
  287. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  288. package/dist/components/gx-ide-ww-files.js +1 -1
  289. package/dist/components/gx-ide-ww-files.js.map +1 -1
  290. package/dist/components/gx-ide-ww-images.js +1 -1
  291. package/dist/components/gx-ide-ww-images.js.map +1 -1
  292. package/dist/components/ide-loader.js +1 -1
  293. package/dist/components/ide-loader.js.map +1 -1
  294. package/dist/components/launchpad-native-apps.js +1 -1
  295. package/dist/components/launchpad-native-apps.js.map +1 -1
  296. package/dist/components/list-selector.js +1 -1
  297. package/dist/components/list-selector.js.map +1 -1
  298. package/dist/components/select-kb-items.js +1 -1
  299. package/dist/components/select-kb-items.js.map +1 -1
  300. package/dist/esm/gx-ide-about.entry.js +1 -1
  301. package/dist/esm/gx-ide-about.entry.js.map +1 -1
  302. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  303. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  304. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  305. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  306. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  307. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  308. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  309. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  310. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  311. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  312. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  313. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  314. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +1 -1
  315. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js.map +1 -1
  316. package/dist/esm/gx-ide-bpm-task-documents.entry.js +1 -1
  317. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  318. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  319. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  320. package/dist/esm/gx-ide-comments-viewer.entry.js +1 -1
  321. package/dist/esm/gx-ide-comments-viewer.entry.js.map +1 -1
  322. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  323. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  324. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  325. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  326. package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
  327. package/dist/esm/gx-ide-curl-inspector.entry.js.map +1 -1
  328. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  329. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  330. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
  331. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  332. package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
  333. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  334. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  335. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  336. package/dist/esm/gx-ide-details-acknowledgements.entry.js +1 -1
  337. package/dist/esm/gx-ide-details-acknowledgements.entry.js.map +1 -1
  338. package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
  339. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  340. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  341. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  342. package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
  343. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  344. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  345. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  346. package/dist/esm/gx-ide-json-import.entry.js +1 -1
  347. package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
  348. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  349. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  350. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  351. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  352. package/dist/esm/gx-ide-launchpad-apis_3.entry.js +1 -1
  353. package/dist/esm/gx-ide-launchpad-apis_3.entry.js.map +1 -1
  354. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  355. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  356. package/dist/esm/gx-ide-loader.entry.js +1 -1
  357. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  358. package/dist/esm/gx-ide-name-picker.entry.js +1 -1
  359. package/dist/esm/gx-ide-name-picker.entry.js.map +1 -1
  360. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  361. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  362. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  363. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  364. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  365. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  366. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  367. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  368. package/dist/esm/gx-ide-new-version.entry.js +1 -1
  369. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  370. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  371. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  372. package/dist/esm/gx-ide-open-api-import.entry.js +1 -1
  373. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  374. package/dist/esm/gx-ide-references.entry.js +1 -1
  375. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  376. package/dist/esm/gx-ide-restore-version.entry.js +5 -4
  377. package/dist/esm/gx-ide-restore-version.entry.js.map +1 -1
  378. package/dist/esm/gx-ide-select-kb-items.entry.js +1 -1
  379. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  380. package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
  381. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  382. package/dist/esm/gx-ide-server-selector.entry.js +1 -1
  383. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  384. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  385. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  386. package/dist/esm/gx-ide-splash.entry.js +1 -1
  387. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  388. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  389. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  390. package/dist/esm/gx-ide-starting-template.entry.js +1 -1
  391. package/dist/esm/gx-ide-starting-template.entry.js.map +1 -1
  392. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +1 -1
  393. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -1
  394. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +1 -1
  395. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  396. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  397. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  398. package/dist/esm/gx-ide-team-dev-history.entry.js +1 -1
  399. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  400. package/dist/esm/gx-ide-team-dev-preview.entry.js +2 -2
  401. package/dist/esm/gx-ide-team-dev-preview.entry.js.map +1 -1
  402. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  403. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  404. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  405. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  406. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  407. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  408. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  409. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  410. package/dist/esm/gx-ide-test.entry.js +1 -1
  411. package/dist/esm/gx-ide-test.entry.js.map +1 -1
  412. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  413. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  414. package/dist/esm/gx-ide-ww-files.entry.js +1 -1
  415. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  416. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  417. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  418. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  419. package/dist/genexus-ide-ui/{p-5929f575.entry.js → p-00705e1c.entry.js} +2 -2
  420. package/dist/genexus-ide-ui/p-00705e1c.entry.js.map +1 -0
  421. package/dist/genexus-ide-ui/{p-18c3c961.entry.js → p-056955be.entry.js} +17 -17
  422. package/dist/genexus-ide-ui/p-056955be.entry.js.map +1 -0
  423. package/dist/genexus-ide-ui/{p-3ff33154.entry.js → p-0620e8f2.entry.js} +33 -33
  424. package/dist/genexus-ide-ui/p-0620e8f2.entry.js.map +1 -0
  425. package/dist/genexus-ide-ui/{p-4af50a00.entry.js → p-06c31f23.entry.js} +2 -2
  426. package/dist/genexus-ide-ui/p-06c31f23.entry.js.map +1 -0
  427. package/dist/genexus-ide-ui/{p-76fdea52.entry.js → p-0be24413.entry.js} +2 -2
  428. package/dist/genexus-ide-ui/p-0be24413.entry.js.map +1 -0
  429. package/dist/genexus-ide-ui/{p-8019e064.entry.js → p-0e4daeb7.entry.js} +11 -11
  430. package/dist/genexus-ide-ui/p-0e4daeb7.entry.js.map +1 -0
  431. package/dist/genexus-ide-ui/{p-840c09d2.entry.js → p-123ef674.entry.js} +2 -2
  432. package/dist/genexus-ide-ui/{p-70cd77bc.entry.js → p-217bd2d7.entry.js} +2 -2
  433. package/dist/genexus-ide-ui/p-217bd2d7.entry.js.map +1 -0
  434. package/dist/genexus-ide-ui/{p-d6e7a813.entry.js → p-24247ec3.entry.js} +11 -11
  435. package/dist/genexus-ide-ui/p-24247ec3.entry.js.map +1 -0
  436. package/dist/genexus-ide-ui/{p-af2f9983.entry.js → p-2b3f161f.entry.js} +21 -21
  437. package/dist/genexus-ide-ui/p-2b3f161f.entry.js.map +1 -0
  438. package/dist/genexus-ide-ui/{p-750eb88a.entry.js → p-34577955.entry.js} +9 -9
  439. package/dist/genexus-ide-ui/p-34577955.entry.js.map +1 -0
  440. package/dist/genexus-ide-ui/{p-bdaae26a.entry.js → p-35c2a2f9.entry.js} +2 -2
  441. package/dist/genexus-ide-ui/p-35c2a2f9.entry.js.map +1 -0
  442. package/dist/genexus-ide-ui/{p-ee77b260.entry.js → p-37812762.entry.js} +8 -8
  443. package/dist/genexus-ide-ui/p-37812762.entry.js.map +1 -0
  444. package/dist/genexus-ide-ui/{p-0a7cbbd0.entry.js → p-3bbdad29.entry.js} +2 -2
  445. package/dist/genexus-ide-ui/p-3bbdad29.entry.js.map +1 -0
  446. package/dist/genexus-ide-ui/{p-f05a137a.entry.js → p-42860e7e.entry.js} +71 -71
  447. package/dist/genexus-ide-ui/p-42860e7e.entry.js.map +1 -0
  448. package/dist/genexus-ide-ui/{p-168d3c83.entry.js → p-4431f46f.entry.js} +2 -2
  449. package/dist/genexus-ide-ui/{p-24cf1cd2.entry.js → p-4bafe061.entry.js} +39 -39
  450. package/dist/genexus-ide-ui/p-4bafe061.entry.js.map +1 -0
  451. package/dist/genexus-ide-ui/{p-e4116b36.entry.js → p-4d7433e0.entry.js} +2 -2
  452. package/dist/genexus-ide-ui/p-4d7433e0.entry.js.map +1 -0
  453. package/dist/genexus-ide-ui/{p-dcfae3da.entry.js → p-4f58397f.entry.js} +53 -53
  454. package/dist/genexus-ide-ui/p-4f58397f.entry.js.map +1 -0
  455. package/dist/genexus-ide-ui/{p-2567883a.entry.js → p-508c4bee.entry.js} +2 -2
  456. package/dist/genexus-ide-ui/{p-8cee1076.entry.js → p-55cb0614.entry.js} +14 -14
  457. package/dist/genexus-ide-ui/p-55cb0614.entry.js.map +1 -0
  458. package/dist/genexus-ide-ui/{p-6b430ac1.entry.js → p-5727fce7.entry.js} +2 -2
  459. package/dist/genexus-ide-ui/p-5727fce7.entry.js.map +1 -0
  460. package/dist/genexus-ide-ui/{p-520c3763.entry.js → p-572fdc25.entry.js} +2 -2
  461. package/dist/genexus-ide-ui/p-572fdc25.entry.js.map +1 -0
  462. package/dist/genexus-ide-ui/{p-a50c520c.entry.js → p-5864a82d.entry.js} +18 -18
  463. package/dist/genexus-ide-ui/p-5864a82d.entry.js.map +1 -0
  464. package/dist/genexus-ide-ui/{p-2a59b523.entry.js → p-60db2f02.entry.js} +2 -2
  465. package/dist/genexus-ide-ui/p-60db2f02.entry.js.map +1 -0
  466. package/dist/genexus-ide-ui/{p-178805d6.entry.js → p-632d3a74.entry.js} +2 -2
  467. package/dist/genexus-ide-ui/p-632d3a74.entry.js.map +1 -0
  468. package/dist/genexus-ide-ui/{p-36462e51.entry.js → p-63abf7e8.entry.js} +41 -41
  469. package/dist/genexus-ide-ui/p-63abf7e8.entry.js.map +1 -0
  470. package/dist/genexus-ide-ui/{p-bb5a5c23.entry.js → p-69e7d46b.entry.js} +12 -12
  471. package/dist/genexus-ide-ui/p-69e7d46b.entry.js.map +1 -0
  472. package/dist/genexus-ide-ui/{p-1d3da80d.entry.js → p-7b76b0e4.entry.js} +2 -2
  473. package/dist/genexus-ide-ui/p-7b76b0e4.entry.js.map +1 -0
  474. package/dist/genexus-ide-ui/{p-875b8615.entry.js → p-83a7e6fb.entry.js} +6 -6
  475. package/dist/genexus-ide-ui/p-83a7e6fb.entry.js.map +1 -0
  476. package/dist/genexus-ide-ui/{p-dbac8ae2.entry.js → p-886dc9c1.entry.js} +2 -2
  477. package/dist/genexus-ide-ui/{p-79d4490e.entry.js → p-90a50197.entry.js} +58 -58
  478. package/dist/genexus-ide-ui/p-90a50197.entry.js.map +1 -0
  479. package/dist/genexus-ide-ui/{p-49c1d667.entry.js → p-90b2307f.entry.js} +7 -7
  480. package/dist/genexus-ide-ui/p-90b2307f.entry.js.map +1 -0
  481. package/dist/genexus-ide-ui/{p-38d3adf1.entry.js → p-944a589f.entry.js} +21 -21
  482. package/dist/genexus-ide-ui/p-944a589f.entry.js.map +1 -0
  483. package/dist/genexus-ide-ui/{p-ca47bb29.entry.js → p-98820155.entry.js} +2 -2
  484. package/dist/genexus-ide-ui/{p-ca47bb29.entry.js.map → p-98820155.entry.js.map} +1 -1
  485. package/dist/genexus-ide-ui/{p-27786355.entry.js → p-98dbb43d.entry.js} +25 -25
  486. package/dist/genexus-ide-ui/p-98dbb43d.entry.js.map +1 -0
  487. package/dist/genexus-ide-ui/{p-b167052a.entry.js → p-9a10fa97.entry.js} +2 -2
  488. package/dist/genexus-ide-ui/{p-d0e61bdc.entry.js → p-9ca0c042.entry.js} +2 -2
  489. package/dist/genexus-ide-ui/p-9ca0c042.entry.js.map +1 -0
  490. package/dist/genexus-ide-ui/{p-c31f9478.entry.js → p-aad714a5.entry.js} +31 -31
  491. package/dist/genexus-ide-ui/p-aad714a5.entry.js.map +1 -0
  492. package/dist/genexus-ide-ui/{p-f61bde09.entry.js → p-af267991.entry.js} +49 -49
  493. package/dist/genexus-ide-ui/p-af267991.entry.js.map +1 -0
  494. package/dist/genexus-ide-ui/{p-22c0058b.entry.js → p-b5f2603f.entry.js} +11 -11
  495. package/dist/genexus-ide-ui/p-b5f2603f.entry.js.map +1 -0
  496. package/dist/genexus-ide-ui/{p-0dfa813a.entry.js → p-b6d59827.entry.js} +16 -16
  497. package/dist/genexus-ide-ui/p-b6d59827.entry.js.map +1 -0
  498. package/dist/genexus-ide-ui/{p-885e5d1c.entry.js → p-c2f2d79f.entry.js} +2 -2
  499. package/dist/genexus-ide-ui/p-c2f2d79f.entry.js.map +1 -0
  500. package/dist/genexus-ide-ui/{p-14c82d16.entry.js → p-c3a355c6.entry.js} +48 -48
  501. package/dist/genexus-ide-ui/p-c3a355c6.entry.js.map +1 -0
  502. package/dist/genexus-ide-ui/{p-1356ec09.entry.js → p-cd9e9e2b.entry.js} +2 -2
  503. package/dist/genexus-ide-ui/p-cd9e9e2b.entry.js.map +1 -0
  504. package/dist/genexus-ide-ui/{p-fa8cb0d8.entry.js → p-cdd2e79d.entry.js} +2 -2
  505. package/dist/genexus-ide-ui/{p-60bbf1b4.entry.js → p-d68412ac.entry.js} +8 -8
  506. package/dist/genexus-ide-ui/{p-a8465dff.entry.js → p-d761587f.entry.js} +4 -4
  507. package/dist/genexus-ide-ui/{p-a8465dff.entry.js.map → p-d761587f.entry.js.map} +1 -1
  508. package/dist/genexus-ide-ui/{p-b2966a6b.entry.js → p-d7964c12.entry.js} +2 -2
  509. package/dist/genexus-ide-ui/{p-8735d37c.entry.js → p-dbf9a97d.entry.js} +2 -2
  510. package/dist/genexus-ide-ui/{p-14823abe.entry.js → p-e0fb6257.entry.js} +9 -9
  511. package/dist/genexus-ide-ui/p-e0fb6257.entry.js.map +1 -0
  512. package/dist/genexus-ide-ui/{p-734d5fa1.entry.js → p-e32f5b19.entry.js} +2 -2
  513. package/dist/genexus-ide-ui/{p-af3cc463.entry.js → p-e3ff125f.entry.js} +2 -2
  514. package/dist/genexus-ide-ui/{p-899ec74e.entry.js → p-e883cd82.entry.js} +35 -35
  515. package/dist/genexus-ide-ui/p-e883cd82.entry.js.map +1 -0
  516. package/dist/genexus-ide-ui/{p-e4c250eb.entry.js → p-ebb56b65.entry.js} +23 -23
  517. package/dist/genexus-ide-ui/p-ebb56b65.entry.js.map +1 -0
  518. package/dist/genexus-ide-ui/{p-b44a875d.entry.js → p-f1b452fb.entry.js} +2 -2
  519. package/dist/genexus-ide-ui/p-f1b452fb.entry.js.map +1 -0
  520. package/dist/genexus-ide-ui/{p-ebfc64a5.entry.js → p-fb5dd0a2.entry.js} +10 -10
  521. package/dist/genexus-ide-ui/p-fb5dd0a2.entry.js.map +1 -0
  522. package/dist/genexus-ide-ui/{p-392bdfaa.entry.js → p-fb64e0b1.entry.js} +20 -20
  523. package/dist/genexus-ide-ui/p-fb64e0b1.entry.js.map +1 -0
  524. package/dist/genexus-ide-ui/{p-747fbbd8.entry.js → p-fdaeb19a.entry.js} +2 -2
  525. package/package.json +1 -1
  526. package/dist/genexus-ide-ui/p-0a7cbbd0.entry.js.map +0 -1
  527. package/dist/genexus-ide-ui/p-0dfa813a.entry.js.map +0 -1
  528. package/dist/genexus-ide-ui/p-1356ec09.entry.js.map +0 -1
  529. package/dist/genexus-ide-ui/p-14823abe.entry.js.map +0 -1
  530. package/dist/genexus-ide-ui/p-14c82d16.entry.js.map +0 -1
  531. package/dist/genexus-ide-ui/p-178805d6.entry.js.map +0 -1
  532. package/dist/genexus-ide-ui/p-18c3c961.entry.js.map +0 -1
  533. package/dist/genexus-ide-ui/p-1d3da80d.entry.js.map +0 -1
  534. package/dist/genexus-ide-ui/p-22c0058b.entry.js.map +0 -1
  535. package/dist/genexus-ide-ui/p-24cf1cd2.entry.js.map +0 -1
  536. package/dist/genexus-ide-ui/p-27786355.entry.js.map +0 -1
  537. package/dist/genexus-ide-ui/p-2a59b523.entry.js.map +0 -1
  538. package/dist/genexus-ide-ui/p-36462e51.entry.js.map +0 -1
  539. package/dist/genexus-ide-ui/p-38d3adf1.entry.js.map +0 -1
  540. package/dist/genexus-ide-ui/p-392bdfaa.entry.js.map +0 -1
  541. package/dist/genexus-ide-ui/p-3ff33154.entry.js.map +0 -1
  542. package/dist/genexus-ide-ui/p-49c1d667.entry.js.map +0 -1
  543. package/dist/genexus-ide-ui/p-4af50a00.entry.js.map +0 -1
  544. package/dist/genexus-ide-ui/p-520c3763.entry.js.map +0 -1
  545. package/dist/genexus-ide-ui/p-5929f575.entry.js.map +0 -1
  546. package/dist/genexus-ide-ui/p-6b430ac1.entry.js.map +0 -1
  547. package/dist/genexus-ide-ui/p-70cd77bc.entry.js.map +0 -1
  548. package/dist/genexus-ide-ui/p-750eb88a.entry.js.map +0 -1
  549. package/dist/genexus-ide-ui/p-76fdea52.entry.js.map +0 -1
  550. package/dist/genexus-ide-ui/p-79d4490e.entry.js.map +0 -1
  551. package/dist/genexus-ide-ui/p-8019e064.entry.js.map +0 -1
  552. package/dist/genexus-ide-ui/p-875b8615.entry.js.map +0 -1
  553. package/dist/genexus-ide-ui/p-885e5d1c.entry.js.map +0 -1
  554. package/dist/genexus-ide-ui/p-899ec74e.entry.js.map +0 -1
  555. package/dist/genexus-ide-ui/p-8cee1076.entry.js.map +0 -1
  556. package/dist/genexus-ide-ui/p-a50c520c.entry.js.map +0 -1
  557. package/dist/genexus-ide-ui/p-af2f9983.entry.js.map +0 -1
  558. package/dist/genexus-ide-ui/p-b44a875d.entry.js.map +0 -1
  559. package/dist/genexus-ide-ui/p-bb5a5c23.entry.js.map +0 -1
  560. package/dist/genexus-ide-ui/p-bdaae26a.entry.js.map +0 -1
  561. package/dist/genexus-ide-ui/p-c31f9478.entry.js.map +0 -1
  562. package/dist/genexus-ide-ui/p-d0e61bdc.entry.js.map +0 -1
  563. package/dist/genexus-ide-ui/p-d6e7a813.entry.js.map +0 -1
  564. package/dist/genexus-ide-ui/p-dcfae3da.entry.js.map +0 -1
  565. package/dist/genexus-ide-ui/p-e4116b36.entry.js.map +0 -1
  566. package/dist/genexus-ide-ui/p-e4c250eb.entry.js.map +0 -1
  567. package/dist/genexus-ide-ui/p-ebfc64a5.entry.js.map +0 -1
  568. package/dist/genexus-ide-ui/p-ee77b260.entry.js.map +0 -1
  569. package/dist/genexus-ide-ui/p-f05a137a.entry.js.map +0 -1
  570. package/dist/genexus-ide-ui/p-f61bde09.entry.js.map +0 -1
  571. /package/dist/genexus-ide-ui/{p-840c09d2.entry.js.map → p-123ef674.entry.js.map} +0 -0
  572. /package/dist/genexus-ide-ui/{p-168d3c83.entry.js.map → p-4431f46f.entry.js.map} +0 -0
  573. /package/dist/genexus-ide-ui/{p-2567883a.entry.js.map → p-508c4bee.entry.js.map} +0 -0
  574. /package/dist/genexus-ide-ui/{p-dbac8ae2.entry.js.map → p-886dc9c1.entry.js.map} +0 -0
  575. /package/dist/genexus-ide-ui/{p-b167052a.entry.js.map → p-9a10fa97.entry.js.map} +0 -0
  576. /package/dist/genexus-ide-ui/{p-fa8cb0d8.entry.js.map → p-cdd2e79d.entry.js.map} +0 -0
  577. /package/dist/genexus-ide-ui/{p-60bbf1b4.entry.js.map → p-d68412ac.entry.js.map} +0 -0
  578. /package/dist/genexus-ide-ui/{p-b2966a6b.entry.js.map → p-d7964c12.entry.js.map} +0 -0
  579. /package/dist/genexus-ide-ui/{p-8735d37c.entry.js.map → p-dbf9a97d.entry.js.map} +0 -0
  580. /package/dist/genexus-ide-ui/{p-734d5fa1.entry.js.map → p-e32f5b19.entry.js.map} +0 -0
  581. /package/dist/genexus-ide-ui/{p-af3cc463.entry.js.map → p-e3ff125f.entry.js.map} +0 -0
  582. /package/dist/genexus-ide-ui/{p-747fbbd8.entry.js.map → p-fdaeb19a.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["restoreVersionCss","CSS_BUNDLES","SHOW_MORE_ICON","getIconPath","category","name","colorType","VERSION_FROZEN_OBJECT_ICON","VERSION_OBJECT_ICON","VERSION_ICON","GxIdeRestoreVersion","_GxIdeRestoreVersion_componentLocale","set","this","_GxIdeRestoreVersion_chShortcutsEl","_GxIdeRestoreVersion_shortcutsSrc","getAssetPath","_GxIdeRestoreVersion_confirmHandler","async","restoreVersionData","toVersionGuid","toVersionInfo","guid","toVersionName","fromVersionGuid","versions","find","version","selectedSourceVersionName","fromVersionName","syncEnvironments","confirmCallback","_GxIdeRestoreVersion_cancelHandler","cancelCallback","_GxIdeRestoreVersion_versionsToComboBoxItemModel","versionsComboBoxModel","map","caption","value","startImgSrc","isFrozen","_GxIdeRestoreVersion_handleComboBoxInput","event","detail","_GxIdeRestoreVersion_selectSourceVersionHandler","selectedSourceVersion","selectSourceVersionCallback","_GxIdeRestoreVersion_renderFooter","disableConfirmButton","some","v","h","class","id","onClick","__classPrivateFieldGet","footer","cancel","disabled","confirm","versionsChanged","call","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","suspendShortcuts","suspend","render","Host","model","src","ref","type","descriptions","pill","summary","htmlFor","labels","fromVersion","placeholder","placeHolders","suggest","onInput"],"sources":["src/components/restore-version/restore-version.scss?tag=gx-ide-restore-version&encapsulation=shadow","src/components/restore-version/restore-version.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.main-container {\n display: grid;\n grid-template-rows: max-content max-content max-content;\n gap: var(--mer-spacing--md);\n}\n\n.versions-container {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n\n .button-icon-only {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n }\n\n .button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n }\n}\n\n.giu-static-pill-icon-and-text {\n background-color: var(--mer-surface__elevation--02);\n}\n","import {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n Component,\n Element,\n getAssetPath,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\nimport { Locale } from \"../../common/locale\";\nimport { KBVersion } from \"../team-dev/version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst SHOW_MORE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n});\n\nconst VERSION_FROZEN_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version-frozen\"\n});\n\nconst VERSION_OBJECT_ICON = getIconPath({\n category: \"objects\",\n name: \"version\"\n});\n\nconst VERSION_ICON = getIconPath({\n category: \"system\",\n name: \"version\",\n colorType: \"on-surface\"\n});\n\n// Uncomment this when the sync environments feature is available\n// const CHECKBOX_CHECKED_VALUE = \"true\";\n\n@Component({\n tag: \"gx-ide-restore-version\",\n styleUrl: \"restore-version.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/restore-version\"]\n})\nexport class GxIdeRestoreVersion {\n #componentLocale: any;\n #chShortcutsEl: HTMLChShortcutsElement;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/restore-version/shortcuts.json`\n );\n @Element() el: HTMLGxIdeRestoreVersionElement;\n\n /**\n * Indicates if the environments should be synchronized.\n */\n @State() syncEnvironments: boolean = false;\n\n /**\n * Input value for the source version selector.\n */\n @State() selectedSourceVersionName: string = \"\";\n\n /**\n * Selected source version from version selector.\n */\n @State() selectedSourceVersion: KBVersion[] = [];\n\n /**\n * Combo box model for the versions selector.\n */\n @State() versionsComboBoxModel: ComboBoxModel = [];\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector.\n */\n @Prop() readonly selectSourceVersionCallback!: () => Promise<KBVersion[]>;\n\n /**\n * Callback invoked by pressing the Confirm button.\n */\n @Prop() readonly confirmCallback!: (\n restoreVersionData: RestoreVersionData\n ) => Promise<void>;\n\n /**\n * Callback invoked by pressing the Cancel button.\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The target version to which the restore will be made.\n */\n @Prop() readonly toVersionInfo!: KBVersion;\n\n /**\n * List of versions to show in the versions combo box.\n */\n @Prop() readonly versions!: KBVersion[];\n @Watch(\"versions\")\n versionsChanged() {\n this.#versionsToComboBoxItemModel(this.versions);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#versionsToComboBoxItemModel(this.versions || []);\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n #confirmHandler = async () => {\n const restoreVersionData = {\n toVersionGuid: this.toVersionInfo.guid,\n toVersionName: this.toVersionInfo.name,\n fromVersionGuid: this.versions.find(\n version => version.name === this.selectedSourceVersionName\n ).guid,\n fromVersionName: this.selectedSourceVersionName,\n syncEnvironments: this.syncEnvironments\n };\n await this.confirmCallback(restoreVersionData);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n #versionsToComboBoxItemModel = (versions: KBVersion[]) => {\n this.versionsComboBoxModel = versions.map(version => ({\n caption: version.name,\n value: version.guid,\n startImgSrc: version.isFrozen\n ? VERSION_FROZEN_OBJECT_ICON\n : VERSION_OBJECT_ICON\n }));\n };\n\n #handleComboBoxInput = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n this.selectedSourceVersionName = event.detail as string;\n };\n // Uncomment this when the sync environments feature is available\n // #handleCheckBoxValueChange = (\n // event: ChCheckboxCustomEvent<any> | InputEvent\n // ) => {\n // this.syncEnvironments = event.detail === CHECKBOX_CHECKED_VALUE;\n // };\n\n #selectSourceVersionHandler = async () => {\n this.selectedSourceVersion = await this.selectSourceVersionCallback();\n this.selectedSourceVersionName = this.selectedSourceVersion[0].name;\n };\n\n #renderFooter = () => {\n const disableConfirmButton =\n !this.selectedSourceVersionName ||\n !this.versionsComboBoxModel.some(\n v => v.caption === this.selectedSourceVersionName\n );\n return (\n <footer class=\"footer control-footer-with-border spacing-body\">\n <div class=\"buttons-spacer\">\n <button\n id=\"cancel-button\"\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.footer.cancel}\n </button>\n\n <button\n id=\"confirm-button\"\n class=\"button-primary\"\n onClick={this.#confirmHandler}\n disabled={disableConfirmButton}\n >\n {this.#componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <div class=\"main-container spacing-body\">\n <div>\n <p class=\"giu-static-pill-icon-and-text\">\n <ch-image\n class=\"icon-md\"\n type=\"mask\"\n src={VERSION_ICON}\n ></ch-image>\n <span>{`${this.#componentLocale.descriptions.pill} - ${this.toVersionInfo.name}`}</span>\n </p>\n </div>\n <p class=\"body-regular-m\">\n {this.#componentLocale.descriptions.summary}\n </p>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"versions-combo-box\">\n {this.#componentLocale.labels.fromVersion}\n </label>\n <div class=\"versions-container\">\n <ch-combo-box-render\n class=\"combo-box\"\n id=\"versions-combo-box\"\n model={this.versionsComboBoxModel}\n placeholder={this.#componentLocale.placeHolders.fromVersion}\n value={this.selectedSourceVersionName}\n suggest={true}\n onInput={this.#handleComboBoxInput}\n />\n <button\n id=\"select-version-button\"\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectSourceVersionHandler}\n >\n <ch-image src={SHOW_MORE_ICON} class=\"icon-sm\"></ch-image>\n </button>\n </div>\n </div>\n\n {\n // Uncomment this when the sync environments feature is available\n /* <ch-checkbox\n class=\"checkbox\"\n caption={this.#componentLocale.buttons.syncEnvironments}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n onInput={this.#handleCheckBoxValueChange}\n /> */\n }\n </div>\n {this.#renderFooter()}\n </Host>\n );\n }\n}\n\nexport type RestoreVersionData = {\n fromVersionName: string;\n fromVersionGuid: string;\n toVersionGuid: string;\n toVersionName: string;\n syncEnvironments: boolean;\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["gamInstallationSettingsCss","CSS_BUNDLES","GxIdeGamInstallationSettings","_GxIdeGamInstallationSettings__componentLocale","set","this","_GxIdeGamInstallationSettings_futureUpgradesComboEl","_GxIdeGamInstallationSettings_panelsCheckboxEl","_GxIdeGamInstallationSettings_webPanelsCheckboxEl","_GxIdeGamInstallationSettings_cancelCallbackHandler","cancelCallback","_GxIdeGamInstallationSettings_repairCallbackHandler","async","saveCallback","data","importWebPanels","__classPrivateFieldGet","value","importPanels","futureUpgrades","repairCallback","_GxIdeGamInstallationSettings_renderFilters","h","class","role","filters","filtersHeading","id","frontEndObjects","checkedValue","_a","defaultConfiguration","undefined","caption","webPanelsCheckbox","ref","el","__classPrivateFieldSet","part","canSelectPanels","panelsCheckbox","disabled","htmlFor","futureUpgradesComboLabel","model","manageFutureUpgrades","installAutomatically","promptMe","neverUpdate","_GxIdeGamInstallationSettings_renderDescription","configurationType","header","headerTextInstallation","firstSentence","secondSentence","thirdSentence","headerTextUpdate","_GxIdeGamInstallationSettings_saveCallbackHandler","componentWillLoad","Locale","getComponentStrings","render","Host","call","onClick"],"sources":["src/components/gam-installation-settings/gam-installation-settings.scss?tag=gx-ide-gam-installation-settings&encapsulation=shadow","src/components/gam-installation-settings/gam-installation-settings.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n height: 100%;\n}\n\n.dialog-header {\n margin-block-end: 16px;\n}\n\n.main-content {\n grid-auto-rows: max-content;\n}\n\n.footer-info {\n margin-bottom: 12px;\n}\n\n.description {\n display: grid;\n grid-auto-rows: max-content;\n gap: var(--spacing-gap-m);\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/edit\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\"\n];\n@Component({\n tag: \"gx-ide-gam-installation-settings\",\n styleUrl: \"gam-installation-settings.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/gam-installation-settings\"]\n})\nexport class GxIdeGamInstallationSettings {\n /**\n * The component hard-coded strings translations.\n */\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeGamInstallationSettingsElement;\n\n #futureUpgradesComboEl!: HTMLChComboBoxRenderElement;\n #panelsCheckboxEl!: HTMLChCheckboxElement;\n #webPanelsCheckboxEl!: HTMLChCheckboxElement;\n\n /**\n * Callback invoked when the user wants to cancel the exportation process\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Determines 'Panels' checkbox activation, enabled only if an SD generator is in the KB.\n * Otherwise, the checkbox is disabled.\n */\n @Prop() readonly canSelectPanels: boolean = false;\n\n /**\n * Specifies the configuration type to be used\n */\n @Prop() readonly configurationType: \"installation\" | \"update\" =\n \"installation\";\n\n /**\n * Defines default config for initializing the dialog with stored gam config data\n */\n @Prop() readonly defaultConfiguration: GamConfigData | undefined = {\n importWebPanels: true,\n importPanels: false,\n futureUpgrades: \"prompt\"\n };\n\n /**\n * Callback invoked when the user press repair button\n */\n @Prop() readonly repairCallback: RepairCallback;\n\n /**\n * Callback invoked when the user initiates the export process\n */\n @Prop() readonly saveCallback: SaveCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelCallbackHandler = () => {\n this.cancelCallback();\n };\n\n #repairCallbackHandler = async () => {\n if (this.saveCallback) {\n const data: GamConfigData = {\n importWebPanels: !!this.#webPanelsCheckboxEl.value,\n importPanels: !!this.#panelsCheckboxEl.value,\n futureUpgrades: this.#futureUpgradesComboEl.value\n ? (this.#futureUpgradesComboEl.value as ComboValues)\n : null\n };\n await this.repairCallback(data);\n }\n };\n\n #renderFilters = () => {\n return (\n <div\n class=\"field-group\"\n role=\"region\"\n aria-label={this.#_componentLocale.filters.filtersHeading}\n >\n <h5 class=\"subtitle-regular-s margin-block-end-s\">\n {this.#_componentLocale.filters.filtersHeading}\n </h5>\n\n <div class=\"filters__wrapper\">\n <div\n class=\"field-group\"\n role=\"group\"\n aria-labelledby=\"frontend-objects-label\"\n >\n <div class=\"field field-block\">\n <label id=\"frontend-objects-label\" class=\"label\">\n {this.#_componentLocale.filters.frontEndObjects}\n </label>\n\n <div class=\"field-group-inline\">\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"webPanels\"\n value={\n this.defaultConfiguration?.importWebPanels\n ? \"webPanels\"\n : undefined\n }\n caption={this.#_componentLocale.filters.webPanelsCheckbox}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#webPanelsCheckboxEl = el as HTMLChCheckboxElement)\n }\n part=\"web-panels-checkbox\"\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"panels\"\n value={\n this.defaultConfiguration.importPanels &&\n this.canSelectPanels\n ? \"panels\"\n : undefined\n }\n caption={this.#_componentLocale.filters.panelsCheckbox}\n disabled={!this.canSelectPanels}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#panelsCheckboxEl = el as HTMLChCheckboxElement)\n }\n part=\"panels-checkbox\"\n ></ch-checkbox>\n </div>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"future-upgrades-combo\">\n {this.#_componentLocale.filters.futureUpgradesComboLabel}\n </label>\n <ch-combo-box-render\n id=\"future-upgrades-combo\"\n class=\"combo-box\"\n value={this.defaultConfiguration.futureUpgrades}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#futureUpgradesComboEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={[\n {\n value: \"automatic\",\n caption:\n this.#_componentLocale.manageFutureUpgrades\n .installAutomatically\n },\n {\n value: \"prompt\",\n caption:\n this.#_componentLocale.manageFutureUpgrades.promptMe\n },\n {\n value: \"never\",\n caption:\n this.#_componentLocale.manageFutureUpgrades.neverUpdate\n }\n ]}\n part=\"future-upgrades-combo\"\n ></ch-combo-box-render>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n #renderDescription = () => {\n return (\n <div class=\"description\">\n {this.configurationType === \"installation\"\n ? [\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .firstSentence\n }\n </p>,\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .secondSentence\n }\n </p>,\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .thirdSentence\n }\n </p>\n ]\n : [\n <p class=\"text-body\">\n {this.#_componentLocale.header.headerTextUpdate.firstSentence}\n </p>,\n <p class=\"text-body\">\n {this.#_componentLocale.header.headerTextUpdate.secondSentence}\n </p>\n ]}\n {/* header text */}\n </div>\n );\n };\n\n #saveCallbackHandler = async () => {\n if (this.saveCallback) {\n const data: GamConfigData = {\n importWebPanels: !!this.#webPanelsCheckboxEl.value,\n importPanels: !!this.#panelsCheckboxEl.value,\n futureUpgrades: this.#futureUpgradesComboEl.value\n ? (this.#futureUpgradesComboEl.value as ComboValues)\n : null\n };\n await this.saveCallback(data);\n }\n };\n\n render() {\n return (\n <Host class=\"widget spacing-body\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <div class=\"dialog-header dialog-header-with-border\">\n {this.#renderDescription()}\n </div>\n <div class=\"main-content field-group\">{this.#renderFilters()}</div>\n\n <div class=\"footer\">\n {this.configurationType === \"update\" && (\n <div class=\"footer-info\">\n <p>Use Repair to import GAM components again</p>\n </div>\n )}\n\n <div class=\"dialog-footer-with-border dialog-footer-space-between\">\n {this.configurationType === \"update\" && (\n <button\n id=\"repair-button\"\n class=\"button-secondary\"\n onClick={this.#repairCallbackHandler}\n part=\"button button--repair\"\n >\n Repair\n </button>\n )}\n <div class=\"buttons-spacer\">\n <button\n id=\"cancel-button\"\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button--cancel\"\n >\n Cancel\n </button>\n <button\n id=\"confirm-button\"\n class=\"button-primary\"\n onClick={this.#saveCallbackHandler}\n part=\"button button--confirm\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\ntype ComboValues = \"automatic\" | \"prompt\" | \"never\";\nexport type GamConfigData = {\n importWebPanels: boolean;\n importPanels: boolean;\n futureUpgrades: \"never\" | \"prompt\" | \"automatic\";\n};\n\nexport type RepairCallback = (config: GamConfigData) => Promise<void>;\nexport type SaveCallback = (data: GamConfigData) => Promise<void>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapCommentsToActionListModel","comments","map","comment","id","type","caption","selectRecentCommentCss","CSS_BUNDLES","GxIdeTeamDevSelectRecentComment","this","selectedComment","commentSelectionChangedHandler","event","detail","length","item","confirmCallbackHandle","async","confirmCallback","cancelCallbackHandle","cancelCallback","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","commentsActionList","render","h","Host","class","model","selection","onSelectedItemsChange","onClick","part","cancelButton","confirmButton"],"sources":["src/components/team-dev/select-recent-comment/helpers/mapCommentsToActionListModel.ts","src/components/team-dev/select-recent-comment/select-recent-comment.scss?tag=gx-ide-team-dev-select-recent-comment&encapsulation=shadow","src/components/team-dev/select-recent-comment/select-recent-comment.tsx"],"sourcesContent":["import { ActionListModel } from \"@genexus/chameleon-controls-library\";\n\nexport const mapCommentsToActionListModel = (\n comments: string[]\n): ActionListModel => {\n return comments.map(comment => {\n return {\n id: comment,\n type: \"actionable\",\n caption: comment\n };\n });\n};\n\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n.main {\n contain: size;\n overflow: auto;\n}\n\n.list-box {\n block-size: 100%;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n ActionListModel,\n ActionListItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../../common/locale\";\nimport { mapCommentsToActionListModel } from \"./helpers/mapCommentsToActionListModel\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // Use only the bundles that are needed for this component.\n \"resets/box-sizing\",\n \"components/button\",\n \"components/list-box\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n@Component({\n tag: \"gx-ide-team-dev-select-recent-comment\",\n styleUrl: \"select-recent-comment.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-select-recent-comment\"]\n})\nexport class GxIdeTeamDevSelectRecentComment {\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private selectedComment: string = null;\n\n @Element() el: HTMLGxIdeTeamDevSelectRecentCommentElement;\n\n /**\n * Recent comments list\n */\n @Prop() readonly comments: string[];\n\n /**\n * The comments model as ActionListModel, which is the model the ch-action-list expects\n */\n @State() commentsActionList: ActionListModel = [];\n\n /**\n * Callback invoked when user confirms selection\n */\n @Prop() readonly confirmCallback: confirmCallback;\n\n /**\n * Callback invoked when user cancel selection\n */\n @Prop() readonly cancelCallback: cancelCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.commentsActionList = mapCommentsToActionListModel(this.comments);\n }\n\n private commentSelectionChangedHandler = (\n event: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n if (event.detail.length > 0) {\n this.selectedComment = event.detail[0].item.id;\n }\n };\n\n private confirmCallbackHandle = async () => {\n await this.confirmCallback(this.selectedComment);\n };\n\n private cancelCallbackHandle = async () => {\n await this.cancelCallback();\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <div class=\"main\">\n <ch-action-list-render\n class=\"list-box recent-comments-list\"\n selection=\"single\"\n model={this.commentsActionList}\n onSelectedItemsChange={this.commentSelectionChangedHandler}\n ></ch-action-list-render>\n </div>\n\n <footer class=\"footer dialog-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n id=\"button-cancel\"\n onClick={this.cancelCallbackHandle}\n part=\"button-cancel\"\n >\n {this._componentLocale.cancelButton}\n </button>\n <button\n class=\"button-primary\"\n id=\"button-confirm\"\n onClick={this.confirmCallbackHandle}\n part=\"button-confirm\"\n >\n {this._componentLocale.confirmButton}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type confirmCallback = (comment: string) => Promise<void>;\nexport type cancelCallback = () => Promise<void>;\n"],"mappings":";;;;AAEO,MAAMA,+BACXC,KAEOA,EAASC,KAAIC,MACX;EACLC,IAAID;EACJE,MAAM;EACNC,SAASH;;;ACTf,MAAMI,IAAyB;;ACoB/B,MAAMC,IAA8B;;AAElC,qBACA,qBACA,uBACA,gBACA;;MAQWC,IAA+B;;;;IAKlCC,KAAAC,kBAA0B;IAkC1BD,KAAAE,iCACNC;MAEA,IAAIA,EAAMC,OAAOC,SAAS,GAAG;QAC3BL,KAAKC,kBAAkBE,EAAMC,OAAO,GAAGE,KAAKZ;;;IAIxCM,KAAAO,wBAAwBC;YACxBR,KAAKS,gBAAgBT,KAAKC;AAAgB;IAG1CD,KAAAU,uBAAuBF;YACvBR,KAAKW;AAAgB;;8BAnCkB;;;;EAiB/C,uBAAMC;IACJZ,KAAKa,yBAAyBC,EAAOC,oBAAoBf,KAAKgB;IAC9DhB,KAAKiB,qBAAqB3B,6BAA6BU,KAAKT;;EAmB9D,MAAA2B;IACE,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOxB;QACjBqB,EAAA;MAASE,OAAM;OACbF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNE,WAAU;MACVD,OAAOtB,KAAKiB;MACZO,uBAAuBxB,KAAKE;SAIhCiB,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACN3B,IAAG;MACH+B,SAASzB,KAAKU;MACdgB,MAAK;OAEJ1B,KAAKa,iBAAiBc,eAEzBR,EAAA;MACEE,OAAM;MACN3B,IAAG;MACH+B,SAASzB,KAAKO;MACdmB,MAAK;OAEJ1B,KAAKa,iBAAiBe"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["MAX_CATEGORY_ITEMS_FIRST_RENDER","KB_OBJECT","KB_CATEGORY","STATUS_REGEXP_KEY","convertImportCategoryItemToTreeItem","importCatIcon","importItems","importTreeItems","forEach","importItem","push","id","caption","name","expanded","leaf","startImgSrc","metadata","convertImportCategoryDataToTreeView","importCategoryData","treeData","importCategory","importCategoryTreeItem","items","length","lazy","icon","createImportResultDataMessages","importItemId","messagesArray","status","messages","message","i","JSON","stringify","createImportResultItem","categoryData","importItemResultData","resultItemId","importResultItem","parts","addImportItemResultDataItem","categoryItemMap","objectCategoryItemMap","importTreeActualState","updatedImportTreeModel","objectCategoryId","get","categoryIndex","findIndex","treeItem","category","resultItem","newItemsLength","kbManagerImportCss","CSS_BUNDLES","NOTICE_ICON","getIconPath","colorType","FILE_ICON","GEMINI_TOOLS_SETTINGS","MENU_DELETE","CHECKBOX_ALL_CHECKED_VALUE","CHECKBOX_ALL_UNCHECKED_VALUE","GxIdeKbManagerImport","_GxIdeKbManagerImport_componentLocale","set","this","_GxIdeKbManagerImport_selectedObjectsInFileIds","_GxIdeKbManagerImport_fileInputEl","_GxIdeKbManagerImport_fileInputHiddenEl","_GxIdeKbManagerImport_objectsTreeEl","_GxIdeKbManagerImport_successItemsIds","Set","_GxIdeKbManagerImport_warningItemsIds","_GxIdeKbManagerImport_errorItemsIds","_GxIdeKbManagerImport_categoryItemMap","Map","_GxIdeKbManagerImport_objectCategoryItemMap","_GxIdeKbManagerImport_importedCategoryData","_GxIdeKbManagerImport_cancelImportHandler","cancelCallback","_GxIdeKbManagerImport_clearStatusHandler","importTreeState","statusInfo","error","number","warning","success","_GxIdeKbManagerImport_evaluateImport","noImport","_a","_GxIdeKbManagerImport_evaluateImportStatusMessage","someStatusVisible","display","_GxIdeKbManagerImport_importObjectsHandler","async","__classPrivateFieldGet","call","importingIsInProcess","checkedObjectsIds","model","obj","checked","find","cat","importCallback","then","_GxIdeKbManagerImport_loadFileHandler","file","__classPrivateFieldSet","loadCallback","clear","object","importCategoryTreeData","objectsTreeModel","_GxIdeKbManagerImport_lazyLoadTreeItems","treeItemId","_GxIdeKbManagerImport_objectsTreeCheckedItemsChangedHandler","event","allItems","detail","checkedItemIds","pendingCheckedItemIds","item","pendingCheckedItemId","size","selectAllCheckboxValue","selectAllCheckboxIndeterminate","_GxIdeKbManagerImport_objectsTreeContextMenuHandler","objectContextMenuCallback","selection","clientX","contextmenuEvent","screenX","clientY","screenY","_GxIdeKbManagerImport_objectsTreeSelectedItemsChangedHandler","map","_GxIdeKbManagerImport_optionsHandler","optionsCallback","_GxIdeKbManagerImport_removeFileSelection","selectedFile","value","_GxIdeKbManagerImport_selectFileInputHandler","click","_GxIdeKbManagerImport_selectFileInputChangedHandler","target","files","_GxIdeKbManagerImport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","state","itemId","warningIndex","successIndex","pattern","statusOptions","join","importedTreeFilterRegExp","RegExp","_GxIdeKbManagerImport_toggleSelectionClickHandler","updateAllItemsProperties","_GxIdeKbManagerImport_updateStatusItemsState","child","add","importTreeStateChanged","watchImportTreeStateHandler","importStatusMessage","main","importStatus","noImportedFiles","importedButHidden","watchObjectsTreeModelHandler","newState","noObjects","selectedFileChanged","newFile","componentDidLoad","focus","componentDidRender","componentWillLoad","Locale","getComponentStrings","el","componentDidLoadEvent","emit","addResultItem","render","h","Host","class","slot","htmlFor","header","fileNameLabel","autoFocus","part","type","readonly","placeholder","fileNamePlaceholder","ref","hidden","accept","onChange","removeFileSelection","title","onClick","src","disabled","selectFileButton","objectsInFile","showLines","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","lazyLoadTreeItemsCallback","onCheckedItemsChange","onSelectedItemsChange","onItemContextmenu","isAnimated","stateTitle","key","selectFile","checkedValue","unCheckedValue","selectUnselect","onInput","_b","importButton","cancelButton","filter","filterType","filterOptions","autoExpand","hideMatchesAndShowNonMatches","stateIconSrc","clearButton","errors","warnings","successes","hideMessage","compact","minimal","statusMinimal","onSelectionChanged"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport {\n ImportItemData,\n CategoryItemMap,\n CategoryItemMapValue,\n ObjectCategoryItemMap,\n Status\n} from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n\nconst MAX_CATEGORY_ITEMS_FIRST_RENDER = 30;\n\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\n\n// - - - - - - - - - - - - - - - - -\n// Objects In File Tree Model\n// - - - - - - - - - - - - - - - - -\n\nexport const convertImportCategoryItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\nexport const convertImportCategoryDataToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewModel => {\n const treeData: TreeViewModel = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCategory => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCategory.id,\n caption: `${importCategory.name} (${importCategory.items.length})`,\n expanded: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER,\n lazy: importCategory.items.length > MAX_CATEGORY_ITEMS_FIRST_RENDER,\n leaf: false,\n startImgSrc: importCategory.icon,\n metadata: KB_CATEGORY,\n items: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER ? \n convertImportCategoryItemToTreeItem(\n importCategory.icon,\n importCategory.items\n ) : []\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\n// - - - - - - - - - - - - - - - - -\n// Import Status Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[],\n status: Status\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: status\n })\n });\n });\n return messages;\n};\n\nconst createImportResultItem = (\n categoryData: CategoryItemMapValue,\n importItemResultData: ImportItemResultData\n): TreeViewItemModel => {\n const resultItemId = `${importItemResultData.id}-${importItemResultData.name}`;\n const importResultItem: TreeViewItemModel = {\n id: resultItemId,\n startImgSrc: categoryData.icon,\n caption: importItemResultData.name,\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultData.status}`,\n expanded: true,\n leaf: importItemResultData.messages.length === 0,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: importItemResultData.status\n }),\n items: createImportResultDataMessages(\n resultItemId,\n importItemResultData.messages,\n importItemResultData.status\n )\n };\n return importResultItem;\n};\n\n// This functions updates the \"Import Status\" model, by adding a new result item.\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n categoryItemMap: CategoryItemMap,\n objectCategoryItemMap: ObjectCategoryItemMap,\n importTreeActualState: TreeViewItemModel[]\n) => {\n const updatedImportTreeModel: TreeViewModel = [...importTreeActualState];\n\n // Use the resultItem.id to find the corresponding category in the categoryMap\n const objectCategoryId = objectCategoryItemMap.get(importItemResultData.id);\n const categoryData = categoryItemMap.get(objectCategoryId);\n\n const categoryIndex: number = updatedImportTreeModel.findIndex(\n treeItem => treeItem.id === objectCategoryId\n );\n\n if (categoryIndex === -1) {\n // category does not exists yet.\n const category: TreeViewItemModel = {\n id: objectCategoryId,\n caption: `${categoryData.name} (1)`,\n startImgSrc: `${categoryData.icon}`,\n expanded: true,\n items: [createImportResultItem(categoryData, importItemResultData)]\n };\n\n updatedImportTreeModel.push(category);\n return updatedImportTreeModel;\n }\n\n // else category already exists. Just insert the result item in the category.\n const resultItem: TreeViewItemModel = createImportResultItem(\n categoryData,\n importItemResultData\n );\n updatedImportTreeModel[categoryIndex].items = [\n ...updatedImportTreeModel[categoryIndex].items,\n resultItem\n ];\n\n // update category caption length\n const newItemsLength = updatedImportTreeModel[categoryIndex].items.length;\n updatedImportTreeModel[\n categoryIndex\n ].caption = `${categoryData.name} (${newItemsLength})`;\n\n return updatedImportTreeModel;\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template:\n \"header header\" max-content\n \"objects-in-file import-status\" 1fr\n \"footer footer\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-columns: 1fr max-content;\n grid-area: header;\n}\n\n// objects in file\n.objects-in-file__section {\n grid-area: objects-in-file;\n}\n.objects-in-file__main {\n border-inline-end: var(--section-common-border);\n grid-template-rows: 1fr max-content;\n}\n.objects-in-file__footer {\n display: grid;\n}\n\n// import status\n.import-status__section {\n grid-area: import-status;\n}\n.import-status__main {\n grid-template-rows: 1fr max-content;\n}\n.import-status__footer {\n display: flex;\n}\n.import-clear-status-btn {\n margin-inline-start: auto;\n}\n\n// objects in file & import status\n.objects-in-file__section,\n.import-status__section {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.dialog-header__objects-in-file,\n.dialog-header__import-status {\n padding-block-start: 16px;\n}\n.objects-in-file__main,\n.import-status__main {\n grid-auto-rows: max-content;\n padding-block: 12px;\n overflow: auto;\n}\n\n// footer\n.footer {\n display: flex;\n grid-area: footer;\n border-block-start: var(--section-common-border);\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: 2px;\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n\n// WA: prevent crashes when the items collection contains too many elements\n.tree-view-import::part(item) {\n content-visibility: auto;\n contain-intrinsic-size: auto 22px;\n // TODO: Check if 22px can be calculated. Not \"secure\" since font-size\n // (body-regular-s) defines the total height. If the typographic style\n // changes, this calculation will break. Ideally, tree item font-size\n // should use a variable like \"--tree-item-font-size\".\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n // ChEditCustomEvent,\n TreeViewItemContextMenu\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryDataToTreeView,\n addImportItemResultDataItem,\n convertImportCategoryItemToTreeItem\n} from \"./helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT, STATUS_REGEXP_KEY } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-surface\"\n});\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst GEMINI_TOOLS_SETTINGS = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #selectedObjectsInFileIds: string[] = [];\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n #fileInputEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n #successItemsIds: Set<string> = new Set();\n #warningItemsIds: Set<string> = new Set();\n #errorItemsIds: Set<string> = new Set();\n // #categoryItemMap maps a category id, with the name and icon.\n // required for the \"import status\" tree.\n #categoryItemMap: CategoryItemMap = new Map();\n #objectCategoryItemMap: ObjectCategoryItemMap = new Map();\n #importedCategoryData: ImportCategoryData[];\n\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n @State() importStatusMessage: string;\n @State() importTreeState: TreeViewItemModel[] = [];\n @State() importedTreeFilterRegExp: RegExp;\n @Watch(\"importTreeState\")\n importTreeStateChanged() {\n // this.#filterImportedHandler();\n }\n @State() importingIsInProcess = false;\n @State() importTreeFilterList: string[] = [];\n @State() noImport: boolean;\n @State() noObjects: boolean = true;\n @State() objectsTreeModel: TreeViewItemModel[] = [];\n @State() showHiddenImportsMessage = false;\n @State() someStatusVisible: boolean;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.#evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.importedButHidden;\n }\n }\n @Watch(\"objectsTreeModel\")\n watchObjectsTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !newState || newState.length === 0;\n }\n\n /**\n * Callback invoked when user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when user wants to initiate the import process.\n */\n @Prop() readonly importCallback!: ImportCallback;\n\n /**\n * Callback invoked when user wants to load the xpz information\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)\n */\n @Prop() readonly objectContextMenuCallback!: ObjectContextMenuCallback;\n\n /**\n * Callback invoked when user wants to access the export options.\n */\n @Prop() readonly optionsCallback!: OptionsCallback;\n\n /**\n * Imported xml or xps file name\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n selectedFileChanged(newFile: File) {\n if (newFile) {\n this.#loadFileHandler(newFile);\n }\n }\n\n /**\n * Displays status buttons (error, warning, success) with minimal UI (no captions).\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * Emitted once just after the component is fully loaded.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.#fileInputEl.focus();\n }\n\n componentDidRender() {}\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n // this.#evaluateObjects();\n this.#evaluateImport();\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n this.#evaluateImportStatusMessage();\n }\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.#categoryItemMap,\n this.#objectCategoryItemMap,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.#updateStatusItemsState();\n }\n\n #cancelImportHandler = () => {\n this.cancelCallback();\n };\n\n #clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n #evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n #evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n #importObjectsHandler = async () => {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.#clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n\n /*\n Process checked objects manually, considering lazy loading. \n Example: \n 1. The \"Attributes\" category is lazy-loaded and marked as checked. \n 2. The user runs the import without expanding the node. \n 3. No attribute objects appear as checked, since lazy load was not triggered. \n 4. Still, all attribute objects must be included, because the category itself is checked. \n\n This avoids forcing users to expand nodes just to select objects. \n Large categories are not expanded by default to improve performance, which is crucial \n for very large imports (1000+ objects). \n */\n const checkedObjectsIds: string[] = [];\n for (let category of this.#objectsTreeEl.model) {\n if (category.items?.length > 0) {\n for (let obj of category.items) {\n if (obj.checked) checkedObjectsIds.push(obj.id);\n }\n } else if (category.lazy && category.checked) {\n const categoryData = this.#importedCategoryData.find(\n cat => cat.id == category.id\n );\n for (let obj of categoryData.items) {\n checkedObjectsIds.push(obj.id);\n }\n }\n }\n this.importCallback(checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n };\n\n #loadFileHandler = async (file: File) => {\n this.#importedCategoryData = await this.loadCallback(file);\n this.#categoryItemMap.clear();\n this.#objectCategoryItemMap.clear();\n\n this.#importedCategoryData.forEach(category => {\n this.#categoryItemMap.set(category.id, {\n name: category.name,\n icon: category.icon\n });\n category.items.forEach(object => {\n this.#objectCategoryItemMap.set(object.id, category.id);\n });\n });\n\n const importCategoryTreeData = convertImportCategoryDataToTreeView(\n this.#importedCategoryData\n );\n this.objectsTreeModel = importCategoryTreeData;\n };\n\n #lazyLoadTreeItems = async (treeItemId: string) => {\n const category = this.#importedCategoryData.find(\n cat => cat.id === treeItemId\n );\n return category && category.items.length > 0\n ? convertImportCategoryItemToTreeItem(category.icon, category.items)\n : [];\n };\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItems = event.detail;\n const checkedItemIds: string[] = [];\n const pendingCheckedItemIds: string[] = [];\n const checkedObjectsIds: string[] = [];\n allItems.forEach(item => {\n if (item.item.checked) {\n checkedItemIds.push(item.item.id);\n if (item.item.lazy && !item.item.items)\n pendingCheckedItemIds.push(item.item.id);\n }\n if (item.item.checked && item.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(item.item.id);\n }\n });\n\n for (let pendingCheckedItemId of pendingCheckedItemIds) {\n const category = this.#importedCategoryData.find(\n cat => cat.id === pendingCheckedItemId\n );\n if (category) {\n for (let item of category.items) {\n if (checkedObjectsIds.indexOf(item.id) < 0)\n checkedObjectsIds.push(item.id);\n }\n }\n }\n\n // Evaluate \"Select All / Unselect All\" checkbox state\n if (allItems.size === checkedItemIds.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItemIds.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.#selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n #objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.#selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n #optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n }\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n let pattern = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n pattern = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n }\n this.importedTreeFilterRegExp = new RegExp(pattern, \"i\");\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n\n this.#evaluateImportStatusMessage();\n };\n\n #toggleSelectionClickHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n if (this.#objectsTreeEl) {\n const checked = event.detail === CHECKBOX_ALL_CHECKED_VALUE;\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n #updateStatusItemsState = () => {\n this.#errorItemsIds.clear();\n this.#warningItemsIds.clear();\n this.#successItemsIds.clear();\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.#errorItemsIds.add(child.id);\n }\n if (child.metadata === \"warning\") {\n this.#warningItemsIds.add(child.id);\n }\n if (child.metadata === \"success\") {\n this.#successItemsIds.add(child.id);\n }\n });\n });\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header\n // header\n class=\"field-group dialog-header-with-border header header-two-cols spacing-body-block-start spacing-body-inline\"\n slot=\"header\"\n >\n <div\n // select a file\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#componentLocale.header.fileNameLabel}\n </label>\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileInputEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".xpz, .xml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-m\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n // select file\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#componentLocale.header.selectFileButton}\n </button>\n </div>\n </header>\n\n <section\n // objects in file\n class=\"objects-in-file__section\"\n >\n <h2 class=\"dialog-header dialog-header-with-border dialog-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.objectsInFile.title}\n </h2>\n\n <div class=\"field-group objects-in-file__main\">\n {!this.noObjects ? (\n <ch-tree-view-render\n // objects in file tree\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n model={this.objectsTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n lazyLoadTreeItemsCallback={this.#lazyLoadTreeItems}\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.#objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.#objectsTreeContextMenuHandler}\n ref={(el: HTMLChTreeViewRenderElement) =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={\n this.#componentLocale.main.objectsInFile.noObjects\n }\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-secondary\"\n onClick={this.#selectFileInputHandler}\n >\n {this.#componentLocale.main.objectsInFile.selectFile}\n </button>\n </gx-ide-empty-state>\n )}\n\n <footer class=\"field-group objects-in-file__footer spacing-body-inline\">\n <ch-checkbox\n // select all / unselect all checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox create-data-in-kb\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={\n this.#componentLocale.main.objectsInFile.selectUnselect\n }\n value={this.selectAllCheckboxValue}\n onInput={this.#toggleSelectionClickHandler}\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeModel.length === 0\n }\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // import objects button\n id=\"import-btn\"\n class=\"button-primary \"\n onClick={this.#importObjectsHandler}\n disabled={\n this.objectsTreeModel?.length === 0 ||\n this.importingIsInProcess\n }\n >\n {this.#componentLocale.main.objectsInFile.importButton}\n </button>\n\n <button\n // cancel-import button\n id=\"cancel-import-btn\"\n class=\"button-secondary \"\n onClick={this.#cancelImportHandler}\n disabled={!this.importingIsInProcess}\n part=\"cancel-import-button\"\n >\n {this.#componentLocale.main.objectsInFile.cancelButton}\n </button>\n\n <button\n // settings/options button\n id=\"select-kb-btn\"\n class=\"button-tertiary button-icon-only\"\n part=\"select-kb-btn\"\n onClick={this.#optionsHandler}\n >\n <ch-image\n class=\"icon-m\"\n src={GEMINI_TOOLS_SETTINGS}\n ></ch-image>\n </button>\n </div>\n </footer>\n </div>\n </section>\n\n <section\n // import status\n class=\"import-status__section\"\n >\n <h2 class=\"dialog-header dialog-header-with-border dialog-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.importStatus.title}\n </h2>\n\n <div class=\"field-group import-status__main\">\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n // import status tree\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n filter={this.importedTreeFilterRegExp}\n filterType=\"metadata\"\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.importStatusMessage}\n key=\"no-objects-empty-state\"\n ></gx-ide-empty-state>\n )}\n\n <footer class=\"import-status__footer spacing-body-inline\">\n <button\n // clear status button\n class=\"button-secondary import-clear-status-btn\"\n onClick={this.#clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n part=\"clear-status-btn\"\n >\n {this.#componentLocale.main.importStatus.clearButton}\n </button>\n </footer>\n </div>\n </section>\n\n <footer\n // footer\n class=\"footer\"\n >\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type CategoryItemMap = Map<string, CategoryItemMapValue>;\nexport type CategoryItemMapValue = { name: string; icon: string };\nexport type ObjectCategoryItemMap = Map<string, string>;\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","startImgSrc","_a","iconName","wwImagesCss","CSS_BUNDLES","ALL_DESCENDANTS_VALUE","MODIFIED_VALUE","TODAY","RESET_ICON","getIconPath","category","name","colorType","SEARCH_ICON","NOTICE_ICON","GxIdeWWImages","_GxIdeWWImages_componentLocale","set","this","_GxIdeWWImages_filterInitialData","_GxIdeWWImages_ACCORDION_MODEL","_GxIdeWWImages_ACCORDION_FILTER_ID","_GxIdeWWImages_imagesMap","Map","_GxIdeWWImages_chGridEl","_GxIdeWWImages_filterModuleEl","_GxIdeWWImages_isInitialLoad","_GxIdeWWImages_deleteSelectionCallbackHandler","deleteSelectionCallback","selectedObjectsIds","_GxIdeWWImages_deselectAll","__classPrivateFieldGet","selectAllRows","_GxIdeWWImages_handleNameChange","event","filterNameValue","detail","target","_GxIdeWWImages_handleSearchContentsChange","filterSearchContentsValue","_GxIdeWWImages_applyDefaultCategory","defaultCategory","categoriesComboBoxModel","length","categoryExists","some","item","filterCategoryValue","_GxIdeWWImages_handleCategoryChange","_GxIdeWWImages_handleAllDescendantsChange","filterAllDescendantsValue","_GxIdeWWImages_handleAfterTypeChange","filterAfterTypeValue","afterCurrentValue","_GxIdeWWImages_handleUserChange","filterUserValue","_GxIdeWWImages_handleModifiedDateChange","filterModifiedDateValue","_GxIdeWWImages_handleStyleChange","filterStyleValue","_GxIdeWWImages_handleLanguageChange","filterLanguageValue","_GxIdeWWImages_handleDensityChange","filterDensityValue","_GxIdeWWImages_handleLayerChange","filterLayerValue","_GxIdeWWImages_handleModuleChange","filterModuleValue","_GxIdeWWImages_filterImagesInformationHandler","tabularGridData","images","_GxIdeWWImages_getImages","clear","filters","searchContents","parent","allDescendants","modifiedAfter","modifiedBy","modifiedDate","Date","undefined","style","language","density","layer","loadCallback","then","items","call","_GxIdeWWImages_getToday","now","date","toISOString","split","time","slice","_GxIdeWWImages_addEventListeners","addEventListener","ev","rowsId","selectionObjectChangedCallback","imagesSelectedItems","cachedItems","idsToLoad","forEach","selectedId","has","get","push","currentSelection","sort","join","loadPromises","loadImageItemsCallback","Promise","all","loadedItemsArrays","currentSelectionAfterLoad","allImageItems","_GxIdeWWImages_openSelectionCallBackHandler","preventDefault","stopPropagation","contextMenuCallback","selection","selectedRowsId","clientX","clientY","_GxIdeWWImages_sortImages","a","b","order","orderCriteria","valueA","_GxIdeWWImages_instances","_GxIdeWWImages_getImageValue","toUpperCase","valueB","ascending","_GxIdeWWImages_handleColumnSortChanged","e","columnId","sortDirection","_GxIdeWWImages_newObjectCallbackHandler","newObjectCallback","openSelectionCallback","_GxIdeWWImages_toggleModifiedControls","enabledModifiedControls","_GxIdeWWImages_renderHeader","h","class","htmlFor","filter","autoFocus","debounce","config","inputDebounce","onInput","moduleFolder","labelPosition","defaultValue","defaultModule","selectEntityCallback","selectModuleCallback","ref","el","__classPrivateFieldSet","model","slot","disabled","categories","checkedValue","modified","afterLabel","filterAfterOptions","user","FILTER_AFTER","DATE_TIME","dateTime","type","max","styles","stylesComboBoxModel","languages","languagesComboBoxModel","densities","densitiesComboBoxModel","layers","layersComboBoxModel","search","placeholder","searchContentsPlaceholder","onClick","_GxIdeWWImages_resetFilterHandler","src","resetFilters","_GxIdeWWImages_renderFilter","_GxIdeWWImages_renderImages","url","alt","_GxIdeWWImages_renderTabularGrid","commonColSize","main__grid","rowSelectionMode","columnResizeMode","columnName","settingable","size","tabularGrid","colSize","maxContent","resizable","sortable","tableHead","onColumnSortChanged","module","description","lastUser","importDate","obj","rowid","icon","formatDate","isAnimated","stateIconSrc","stateTitle","emptyState","title","key","modifiedDateTime","modifiedUser","_GxIdeWWImages_saveInitialFilterData","_GxIdeWWImages_selectAll","categoriesChanged","newCategories","defaultCategoryChanged","densitiesChanged","newDensities","languagesChanged","newLanguages","layersChanged","newLayers","stylesChanged","newStyles","connectedCallback","componentDidLoad","componentWillLoad","Locale","getComponentStrings","afterNone","NONE","IMPORT","LAST_BUILD","accordionCaption","expanded","keyDownHandler","eventInfo","document","activeElement","reload","filterNameValueChanged","filterSearchContentsValueChanged","filterCategoryValueChanged","filterAllDescendantsValueChanged","filterAfterTypeValueChanged","filterUserValueChanged","filterModifiedDateValueChanged","filterStyleValueChanged","filterLanguageValueChanged","filterDensityValueChanged","filterLayerValueChanged","filterModuleValueChanged","render","Host","objCount","matching","footer","btnSelectAll","btnNew","image","toLowerCase"],"sources":["src/components/ww-images/helpers.tsx","src/components/ww-images/ww-images.scss?tag=gx-ide-ww-images&encapsulation=shadow","src/components/ww-images/ww-images.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n if (!options) {\n return [];\n }\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n container-type: inline-size;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - -\n\n// First row\n.header {\n grid-template-areas:\n \"name module-folder\"\n \"advanced-filter-accordion advanced-filter-accordion\";\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: max-content max-content;\n}\n\n// Accordion Advanced Filter\n.name {\n grid-area: name;\n}\n.module-folder {\n grid-area: module-folder;\n}\n.advanced-filter-accordion {\n grid-area: advanced-filter-accordion;\n}\n\n// - - - - - - - - - - - -\n// Main\n// - - - - - - - - - - - -\n\n.main {\n --sidebar-width: 376px;\n display: grid;\n grid-template-columns: 1fr var(--sidebar-width);\n overflow: auto;\n padding-block-start: var(--size-16);\n}\n\n.main__grid {\n overflow: auto;\n position: relative;\n}\n.tabular-grid-ww-images {\n overflow: auto;\n border-inline-end: var(--section-common-border);\n}\n\nch-tabular-grid-rowset-empty {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 100%;\n z-index: 1;\n}\n\n// main aside\n.main__aside {\n overflow: auto;\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.main__filter {\n display: grid;\n grid-auto-rows: max-content;\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas:\n \"category options after\"\n \"style language user\"\n \"density layer date-time\"\n \"search-by-contents search-by-contents button-reset\";\n overflow: auto;\n}\n.category {\n grid-area: category;\n}\n.options {\n grid-area: options;\n}\n.after-date-time {\n grid-area: after;\n}\n.user {\n grid-area: user;\n}\n.date-time {\n grid-area: date-time;\n}\n.style {\n grid-area: style;\n}\n.language {\n grid-area: language;\n}\n.density {\n grid-area: density;\n}\n.layer {\n grid-area: layer;\n}\n.search-by-contents {\n grid-area: search-by-contents;\n}\n.button-reset {\n grid-area: button-reset;\n align-self: end;\n justify-self: end;\n}\n\n// - - - - - - - - - - - -\n// Images Grid\n// - - - - - - - - - - - -\n\n.main__images-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--size-8);\n position: relative;\n z-index: 1;\n\n .figure {\n margin: 0;\n background-color: var(--color-accent-surface-elevation-2);\n display: grid;\n grid-template-rows: minmax(0, 1fr) max-content;\n gap: var(--size-4);\n padding: var(--size-8);\n border-radius: var(--size-4);\n opacity: 0;\n animation: fadeIn 300ms forwards;\n aspect-ratio: 1 / 1;\n }\n .figure__picture {\n display: flex;\n align-items: center;\n justify-content: center;\n min-block-size: 0;\n }\n .figure__img {\n display: block;\n max-inline-size: 100%;\n max-block-size: 100%;\n inline-size: auto;\n block-size: auto;\n object-fit: contain;\n }\n .figure__figcaption {\n text-align: center;\n font-size: var(--font-size-body-xs);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n inline-size: 100%;\n }\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-ww-images\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7\n )\n);\n\n@keyframes fadeIn {\n to {\n opacity: 1;\n }\n}\n\n// - - - - - - - - - - - -\n// Responsive\n// - - - - - - - - - - - -\n\n@container (max-width: 992px) {\n .main {\n --sidebar-width: 288px;\n }\n .main__images-container {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n@container (max-width: 768px) {\n .main {\n --sidebar-width: 200px;\n }\n .main__images-container {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@container (max-width: 640px) {\n .main {\n --sidebar-width: 112px;\n }\n .main__images-container {\n grid-template-columns: 1fr;\n }\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n h\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n AccordionModel,\n ChGridRowContextMenuEvent,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { FILTER_AFTER } from \"../../common/constants\";\nimport { config } from \"../../common/config\";\nimport { formatDate } from \"../../common/helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo, EntityData, GxOption } from \"../../common/types\";\nimport { mapOptionsToComboBoxItemModel } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/accordion\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/edit\",\n \"components/icon\",\n \"components/tabular-grid\",\n \"components/sidebar\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst ALL_DESCENDANTS_VALUE = \"all-descendants\";\nconst MODIFIED_VALUE = \"modified\";\n\nlet TODAY: string = null;\n\n// icons\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"interactive\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"neutral\"\n});\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-ww-images\",\n styleUrl: \"ww-images.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-images\"]\n})\nexport class GxIdeWWImages {\n /**\n * The component hard-coded strings translations.\n */\n #componentLocale: any;\n #filterInitialData: FilerInitialData;\n #ACCORDION_MODEL: AccordionModel = [];\n #ACCORDION_FILTER_ID = \"advanced-filter\";\n\n #imagesMap: Map<string, ImageItemData[]> = new Map();\n\n @Element() el: HTMLGxIdeWwImagesElement;\n\n #chGridEl!: HTMLChTabularGridElement;\n // Only keep refs that are actually needed for operations (event listeners)\n #filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n\n // representations of GxOption[] as ComboBoxModel.\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n @State() densitiesComboBoxModel: ComboBoxModel = [];\n @State() languagesComboBoxModel: ComboBoxModel = [];\n @State() layersComboBoxModel: ComboBoxModel = [];\n @State() stylesComboBoxModel: ComboBoxModel = [];\n\n /**\n * The current value of the \"After\" combo box options.\n */\n @State() afterCurrentValue: string;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterOptions: ComboBoxModel;\n\n /**\n * Image data to be displayed in the tabular grid (filtered from server and sorted)\n */\n @State() tabularGridData: ImageData[] = [];\n\n /**\n * Images rendered in the table\n */\n @State() images: ImageData[] = [];\n\n /**\n * Items of the selected image\n */\n @State() imagesSelectedItems: ImageItemData[] = [];\n\n /**\n * Selected images in the images table\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * When true, modified controls will be enabled, otherwise disabled.\n */\n @State() enabledModifiedControls: boolean = false;\n\n /**\n * Sorting order for images table\n */\n @State() order: { orderCriteria: string | null; ascending: boolean | null } =\n {\n orderCriteria: null,\n ascending: null\n };\n\n /**\n * Filter state variables\n */\n @State() filterNameValue = \"\";\n @State() filterSearchContentsValue = \"\";\n @State() filterCategoryValue: string;\n @State() filterAllDescendantsValue = false;\n @State() filterAfterTypeValue: string;\n @State() filterUserValue = \"\";\n @State() filterModifiedDateValue = \"\";\n @State() filterStyleValue: string;\n @State() filterLanguageValue: string;\n @State() filterDensityValue: string;\n @State() filterLayerValue: string;\n @State() filterModuleValue: EntityData;\n\n /**\n * Flag to prevent triggering #getImages on initial load\n */\n #isInitialLoad = true;\n\n /**\n * Categories rendered in the filter selector\n */\n @Prop() readonly categories!: GxOption[];\n @Watch(\"categories\")\n categoriesChanged(newCategories: GxOption[]) {\n this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);\n this.#applyDefaultCategory();\n }\n\n /**\n * Function to expand data when right-click\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * Default value for the 'categories' filter\n */\n @Prop() readonly defaultCategory: string;\n @Watch(\"defaultCategory\")\n defaultCategoryChanged() {\n this.#applyDefaultCategory();\n }\n\n /**\n * Default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Function to delete the selected images.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Densities rendered in the filter selector\n */\n @Prop() readonly densities!: GxOption[];\n @Watch(\"densities\")\n densitiesChanged(newDensities: GxOption[]) {\n this.densitiesComboBoxModel = mapOptionsToComboBoxItemModel(newDensities);\n }\n\n /**\n * Languages rendered in the filter selector\n */\n @Prop() readonly languages!: GxOption[];\n @Watch(\"languages\")\n languagesChanged(newLanguages: GxOption[]) {\n this.languagesComboBoxModel = mapOptionsToComboBoxItemModel(newLanguages);\n }\n\n /**\n * Layers rendered in the filter selector\n */\n @Prop() readonly layers!: GxOption[];\n @Watch(\"layers\")\n layersChanged(newLayers: GxOption[]) {\n this.layersComboBoxModel = mapOptionsToComboBoxItemModel(newLayers);\n }\n\n /**\n * Function that returns a list of images for the table\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Function that returns a list of items for the selected image\n */\n @Prop() readonly loadImageItemsCallback!: LoadImageItemsCallback;\n\n /**\n * Callback invoked when user press New button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * Function to expand data for double-clicked or entered images\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when an action is executed on the Module/Folder filter.\n */\n @Prop() readonly selectModuleCallback!: SelectModuleCallback;\n\n /**\n * Callback invoked when an item is selected\n */\n @Prop() readonly selectionObjectChangedCallback!: SelectionObjectCallback;\n\n /**\n * Styles rendered in the filter style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesComboBoxModel = mapOptionsToComboBoxItemModel(newStyles);\n }\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n componentDidLoad() {\n this.#addEventListeners();\n this.#getImages();\n this.#saveInitialFilterData();\n this.#isInitialLoad = false;\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize combo-box models\n this.categoriesChanged(this.categories);\n this.densitiesChanged(this.densities);\n this.languagesChanged(this.languages);\n this.layersChanged(this.layers);\n this.stylesChanged(this.styles);\n\n // initialize \"After\" combo-box options\n this.filterAfterOptions = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n this.afterCurrentValue = this.filterAfterOptions[0].value;\n this.filterAfterTypeValue = this.filterAfterOptions[0].value;\n\n // Initialize filter state values\n this.#applyDefaultCategory();\n this.filterModuleValue = this.defaultModule;\n if (this.stylesComboBoxModel.length > 0) {\n this.filterStyleValue = this.stylesComboBoxModel[0].value;\n }\n if (this.languagesComboBoxModel.length > 0) {\n this.filterLanguageValue = this.languagesComboBoxModel[0].value;\n }\n if (this.densitiesComboBoxModel.length > 0) {\n this.filterDensityValue = this.densitiesComboBoxModel[0].value;\n }\n if (this.layersComboBoxModel.length > 0) {\n this.filterLayerValue = this.layersComboBoxModel[0].value;\n }\n\n this.#ACCORDION_MODEL = [\n {\n id: this.#ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: false\n }\n ];\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.#openSelectionCallBackHandler();\n break;\n case \"Delete\":\n this.#deleteSelectionCallbackHandler();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and the images table.\n */\n @Method()\n async reload(): Promise<void> {\n this.#getImages();\n }\n\n #deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.selectedObjectsIds);\n };\n\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n /**\n * Watch filter state variables and trigger #getImages when they change\n */\n @Watch(\"filterNameValue\")\n filterNameValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterSearchContentsValue\")\n filterSearchContentsValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterCategoryValue\")\n filterCategoryValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterAllDescendantsValue\")\n filterAllDescendantsValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterAfterTypeValue\")\n filterAfterTypeValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterUserValue\")\n filterUserValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterModifiedDateValue\")\n filterModifiedDateValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterStyleValue\")\n filterStyleValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterLanguageValue\")\n filterLanguageValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterDensityValue\")\n filterDensityValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterLayerValue\")\n filterLayerValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n @Watch(\"filterModuleValue\")\n filterModuleValueChanged() {\n if (!this.#isInitialLoad) {\n this.#getImages();\n }\n }\n\n /**\n * Individual handler functions for each filter control\n */\n #handleNameChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterNameValue = (event.detail ||\n (event.target as HTMLInputElement).value) as string;\n };\n\n #handleSearchContentsChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterSearchContentsValue = (event.detail ||\n (event.target as HTMLInputElement).value) as string;\n };\n\n #applyDefaultCategory = () => {\n if (this.defaultCategory && this.categoriesComboBoxModel.length > 0) {\n const categoryExists = this.categoriesComboBoxModel.some(\n item => item.value === this.defaultCategory\n );\n if (categoryExists) {\n this.filterCategoryValue = this.defaultCategory;\n }\n }\n };\n\n #handleCategoryChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterCategoryValue = event.detail as string;\n };\n\n #handleAllDescendantsChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterAllDescendantsValue = event.detail === ALL_DESCENDANTS_VALUE;\n };\n\n #handleAfterTypeChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterAfterTypeValue = event.detail as string;\n this.afterCurrentValue = event.detail as string;\n };\n\n #handleUserChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterUserValue = (event.detail ||\n (event.target as HTMLInputElement).value) as string;\n };\n\n #handleModifiedDateChange = (event: InputEvent) => {\n this.filterModifiedDateValue = (event.target as HTMLInputElement).value;\n };\n\n #handleStyleChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterStyleValue = event.detail as string;\n };\n\n #handleLanguageChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterLanguageValue = event.detail as string;\n };\n\n #handleDensityChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterDensityValue = event.detail as string;\n };\n\n #handleLayerChange = (event: CustomEvent<string> | InputEvent) => {\n this.filterLayerValue = event.detail as string;\n };\n\n #handleModuleChange = () => {\n // Module change is handled via event listener, but we update state\n if (this.#filterModuleEl) {\n this.filterModuleValue = this.#filterModuleEl.value;\n }\n };\n\n #filterImagesInformationHandler = () => {\n // Copy images from server to tabularGridData (will be sorted before rendering)\n this.tabularGridData = [...this.images];\n };\n\n #getImages = (): void => {\n this.#imagesMap.clear();\n\n const filters: ImageFiltersData = {\n name: this.filterNameValue,\n searchContents: this.filterSearchContentsValue,\n category: this.filterCategoryValue,\n parent: this.filterModuleValue ? this.filterModuleValue.id : null,\n allDescendants: this.filterAllDescendantsValue,\n modifiedAfter: this.filterAfterTypeValue,\n modifiedBy: this.filterUserValue,\n modifiedDate: this.filterModifiedDateValue\n ? new Date(this.filterModifiedDateValue)\n : undefined,\n style: this.filterStyleValue,\n language: this.filterLanguageValue,\n density: this.filterDensityValue,\n layer: this.filterLayerValue\n };\n\n this.loadCallback(filters).then((items: ImageData[]) => {\n this.images = items;\n this.selectedObjectsIds = [];\n this.#deselectAll();\n this.#filterImagesInformationHandler();\n });\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n #addEventListeners = (): void => {\n /* module/folder */\n this.#filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.#handleModuleChange();\n });\n\n // for grid selection\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n this.selectionObjectChangedCallback(this.selectedObjectsIds);\n\n if (this.selectedObjectsIds.length === 0) {\n this.imagesSelectedItems = [];\n return;\n }\n\n // Collect cached items immediately\n const cachedItems: ImageItemData[] = [];\n const idsToLoad: string[] = [];\n\n this.selectedObjectsIds.forEach((selectedId: string) => {\n if (this.#imagesMap.has(selectedId)) {\n const items = this.#imagesMap.get(selectedId);\n if (items) {\n cachedItems.push(...items);\n }\n } else {\n idsToLoad.push(selectedId);\n }\n });\n\n // If all items were cached, update immediately\n if (idsToLoad.length === 0) {\n this.imagesSelectedItems = cachedItems;\n return;\n }\n\n // Store current selection to verify later (prevents race conditions)\n const currentSelection = [...this.selectedObjectsIds].sort().join(\",\");\n\n // Load missing items and combine with cached ones\n // loadImageItemsCallback must be invoked the first time a user selects an image\n const loadPromises = idsToLoad.map((selectedId: string) =>\n this.loadImageItemsCallback(selectedId).then(\n (items: ImageItemData[]) => {\n // Cache the items for future use\n this.#imagesMap.set(selectedId, items);\n return items;\n }\n )\n );\n\n Promise.all(loadPromises).then((loadedItemsArrays: ImageItemData[][]) => {\n // Verify that selection hasn't changed while loading\n const currentSelectionAfterLoad = [...this.selectedObjectsIds]\n .sort()\n .join(\",\");\n if (currentSelection !== currentSelectionAfterLoad) {\n // Selection changed, ignore this result\n return;\n }\n\n // Combine cached items with newly loaded items\n const allImageItems = [...cachedItems];\n loadedItemsArrays.forEach(items => {\n allImageItems.push(...items);\n });\n this.imagesSelectedItems = allImageItems;\n });\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallBackHandler();\n });\n\n this.#chGridEl.addEventListener(\n \"rowContextMenu\",\n (ev: CustomEvent<ChGridRowContextMenuEvent>): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n );\n };\n\n /**\n * Helper function to safely get image values for sorting\n */\n #getImageValue(image: ImageData, key: string): string {\n switch (key) {\n case \"name\":\n return image.name || \"\";\n case \"module\":\n return image.module || \"\";\n case \"description\":\n return image.description || \"\";\n case \"modifiedDate\":\n return image.modifiedDate\n ? formatDate(image.modifiedDate).toLowerCase()\n : \"\";\n case \"lastUser\":\n return image.lastUser?.toLowerCase() || \"\";\n case \"importDate\":\n return image.importDate\n ? formatDate(image.importDate).toLowerCase()\n : \"\";\n default:\n return \"\";\n }\n }\n\n /**\n * Sorts images based on the current order criteria\n */\n #sortImages = (a: ImageData, b: ImageData): number => {\n if (this.order.orderCriteria) {\n const valueA = this.#getImageValue(\n a,\n this.order.orderCriteria\n ).toUpperCase();\n const valueB = this.#getImageValue(\n b,\n this.order.orderCriteria\n ).toUpperCase();\n if (valueA < valueB) {\n return this.order.ascending ? -1 : 1;\n }\n if (valueA > valueB) {\n return this.order.ascending ? 1 : -1;\n }\n }\n return 0;\n };\n\n /**\n * Handles column sort changes\n */\n #handleColumnSortChanged = (e: CustomEvent) => {\n const { columnId, sortDirection } = e.detail;\n this.order = {\n orderCriteria: columnId,\n ascending: sortDirection === \"asc\"\n };\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n #openSelectionCallBackHandler = (): void => {\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n #toggleModifiedControls = (event: CustomEvent<string> | InputEvent) => {\n this.enabledModifiedControls = event.detail === MODIFIED_VALUE;\n };\n\n #renderHeader = (): Element[] => {\n return [\n <div\n // name\n class=\"field field-block name\"\n >\n <label class=\"label\" htmlFor=\"filter-name\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"filter-name\"\n class=\"input\"\n autoFocus={true}\n value={this.filterNameValue}\n debounce={config.inputDebounce}\n onInput={this.#handleNameChange}\n ></ch-edit>\n </div>,\n\n <div class=\"field field-block module-folder\">\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n\n <gx-ide-entity-selector\n // module/folder\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.filterModuleValue}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined advanced-filter-accordion\"\n model={this.#ACCORDION_MODEL}\n >\n <div slot={this.#ACCORDION_FILTER_ID} class=\"spacing-body\">\n <div class=\"main__filter field-group scrollable\">\n <div\n // category\n class=\"field field-block category\"\n >\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"filter-category\"\n class=\"combo-box\"\n value={this.filterCategoryValue}\n disabled={!this.categories}\n model={this.categoriesComboBoxModel}\n onInput={this.#handleCategoryChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // category\n class=\"field-group options\"\n >\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.options}\n </label>\n <div\n // options\n class=\"field field-inline\"\n >\n <ch-checkbox\n class=\"checkbox all-descendants\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue={ALL_DESCENDANTS_VALUE}\n value={\n this.filterAllDescendantsValue\n ? ALL_DESCENDANTS_VALUE\n : undefined\n }\n onInput={this.#handleAllDescendantsChange}\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox modified\"\n caption={this.#componentLocale.filter.modified}\n checkedValue={MODIFIED_VALUE}\n onInput={this.#toggleModifiedControls}\n ></ch-checkbox>\n </div>\n </div>\n\n <div\n // after\n class=\"field field-block after-date-time\"\n >\n <label\n class={{\n \"label\": true,\n \"label--disabled\": !this.enabledModifiedControls\n }}\n htmlFor=\"filter-after-type\"\n >\n {this.#componentLocale.filter.afterLabel}\n </label>\n <ch-combo-box-render\n id=\"filter-after-type\"\n class=\"combo-box\"\n value={this.filterAfterTypeValue}\n disabled={!this.enabledModifiedControls}\n model={this.filterAfterOptions}\n onInput={this.#handleAfterTypeChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // user\n class=\"field field-block user\"\n >\n <label\n class={{\n \"label\": true,\n \"label--disabled\": !this.enabledModifiedControls\n }}\n htmlFor=\"filter-user\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n id=\"filter-user\"\n value={this.filterUserValue}\n class=\"input\"\n disabled={!this.enabledModifiedControls}\n debounce={config.inputDebounce}\n onInput={this.#handleUserChange}\n ></ch-edit>\n </div>\n\n <div\n // date/time\n class=\"field field-block date-time\"\n >\n <label\n class={{\n \"label\": true,\n \"label--disabled\":\n this.afterCurrentValue !== FILTER_AFTER.DATE_TIME\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n <input\n type=\"datetime-local\"\n class=\"input \"\n id=\"modified-date\"\n name=\"modifiedDate\"\n value={this.filterModifiedDateValue}\n max={TODAY}\n disabled={this.afterCurrentValue !== FILTER_AFTER.DATE_TIME}\n onInput={this.#handleModifiedDateChange}\n ></input>\n </div>\n\n <div\n // style\n class=\"field field-block style\"\n >\n <label class=\"label\" htmlFor=\"filter-style\">\n {this.#componentLocale.filter.style}\n </label>\n <ch-combo-box-render\n id=\"filter-style\"\n class=\"combo-box\"\n value={this.filterStyleValue}\n disabled={!this.styles}\n model={this.stylesComboBoxModel}\n onInput={this.#handleStyleChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // language\n class=\"field field-block language\"\n >\n <label class=\"label\" htmlFor=\"filter-language\">\n {this.#componentLocale.filter.language}\n </label>\n <ch-combo-box-render\n id=\"filter-language\"\n class=\"combo-box\"\n value={this.filterLanguageValue}\n disabled={!this.languages}\n model={this.languagesComboBoxModel}\n onInput={this.#handleLanguageChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // density\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"filter-density\">\n {this.#componentLocale.filter.density}\n </label>\n <ch-combo-box-render\n id=\"filter-density\"\n class=\"combo-box\"\n value={this.filterDensityValue}\n disabled={!this.densities}\n model={this.densitiesComboBoxModel}\n onInput={this.#handleDensityChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // layer\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"filter-layer\">\n {this.#componentLocale.filter.layer}\n </label>\n <ch-combo-box-render\n id=\"filter-layer\"\n class=\"combo-box\"\n value={this.filterLayerValue}\n disabled={!this.layers}\n model={this.layersComboBoxModel}\n onInput={this.#handleLayerChange}\n ></ch-combo-box-render>\n </div>\n\n <div\n // search contents\n class=\"field field-block search-by-contents\"\n >\n <label class=\"label\" htmlFor=\"search-input\">\n {this.#componentLocale.filter.search}\n </label>\n <ch-edit\n id=\"search-input\"\n debounce={config.inputDebounce}\n class=\"input\"\n value={this.filterSearchContentsValue}\n placeholder={\n this.#componentLocale.filter.searchContentsPlaceholder\n }\n onInput={this.#handleSearchContentsChange}\n startImgSrc={SEARCH_ICON}\n type=\"search\"\n ></ch-edit>\n </div>\n\n <button\n // reset filter button\n class=\"button-secondary button-icon-and-text button-reset\"\n onClick={this.#resetFilterHandler}\n >\n <ch-image class=\"icon-sm\" src={RESET_ICON} type=\"mask\"></ch-image>\n {this.#componentLocale.filter.resetFilters}\n </button>\n </div>\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderFilter = (): Element[] => {\n return (\n <div class=\"sidebar-container scrollable\">{this.#renderImages()}</div>\n );\n };\n\n #renderImages = (): Element => {\n return (\n /* tiles */\n\n <div class=\"main__images-container spacing-body-inline\">\n {this.imagesSelectedItems.map(item => (\n <figure class=\"figure\">\n <picture class=\"figure__picture\">\n <img class=\"figure__img\" src={item.url} alt={item.name} />\n </picture>\n <figcaption class=\"figure__figcaption\">{item.name}</figcaption>\n </figure>\n ))}\n </div>\n );\n };\n #renderTabularGrid = (): Element => {\n const commonColSize = \"minmax(max-content, auto)\";\n\n return (\n <div\n class={{\n \"field-group\": true,\n \"main__grid\": true\n }}\n >\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n rowSelectionMode=\"multiple\"\n class=\"tabular-grid tabular-grid-ww-images\"\n columnResizeMode=\"splitter\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n columnName=\"\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n resizable={true}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"name\"\n columnName={this.#componentLocale.tableHead.name}\n settingable={false}\n class=\"tabular-grid-column\"\n column-name-position=\"text\"\n size={commonColSize}\n resizable={true}\n sortable={true}\n onColumnSortChanged={this.#handleColumnSortChanged}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"module\"\n columnName={this.#componentLocale.tableHead.module}\n settingable={false}\n size={commonColSize}\n class=\"tabular-grid-column\"\n resizable={true}\n sortable={true}\n onColumnSortChanged={this.#handleColumnSortChanged}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"description\"\n columnName={this.#componentLocale.tableHead.description}\n settingable={false}\n size=\"minmax(300px, 1fr)\"\n class=\"tabular-grid-column\"\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"modifiedDate\"\n columnName={this.#componentLocale.tableHead.modifiedDate}\n settingable={false}\n size={commonColSize}\n class=\"tabular-grid-column\"\n resizable={true}\n sortable={true}\n onColumnSortChanged={this.#handleColumnSortChanged}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"lastUser\"\n columnName={this.#componentLocale.tableHead.lastUser}\n settingable={false}\n size={commonColSize}\n class=\"tabular-grid-column\"\n resizable={true}\n sortable={true}\n onColumnSortChanged={this.#handleColumnSortChanged}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"importDate\"\n columnName={this.#componentLocale.tableHead.importDate}\n settingable={false}\n size={commonColSize}\n class=\"tabular-grid-column\"\n resizable={true}\n sortable={true}\n onColumnSortChanged={this.#handleColumnSortChanged}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.tabularGridData.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {[...this.tabularGridData]\n .sort(this.#sortImages)\n .map((obj: ImageData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-description\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(obj.modifiedDate)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.lastUser}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {formatDate(obj.importDate)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n key=\"no-images-empty-state\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #resetFilterHandler = () => {\n if (this.#filterInitialData) {\n this.filterNameValue = this.#filterInitialData.name;\n this.filterModuleValue = this.#filterInitialData.module;\n this.filterSearchContentsValue = this.#filterInitialData.searchContents;\n this.filterCategoryValue = this.#filterInitialData.category;\n this.filterAllDescendantsValue =\n this.#filterInitialData.allDescendants === ALL_DESCENDANTS_VALUE;\n this.filterAfterTypeValue = this.#filterInitialData.modifiedAfter;\n this.filterModifiedDateValue = this.#filterInitialData.modifiedDateTime;\n this.filterUserValue = this.#filterInitialData.modifiedUser;\n this.filterStyleValue = this.#filterInitialData.style;\n this.filterLanguageValue = this.#filterInitialData.language;\n this.filterDensityValue = this.#filterInitialData.density;\n this.filterLayerValue = this.#filterInitialData.layer;\n this.afterCurrentValue = this.filterAfterTypeValue;\n }\n };\n\n #saveInitialFilterData = () => {\n this.#filterInitialData = {\n name: this.filterNameValue,\n module: this.filterModuleValue,\n searchContents: this.filterSearchContentsValue,\n category: this.filterCategoryValue,\n allDescendants: this.filterAllDescendantsValue\n ? ALL_DESCENDANTS_VALUE\n : \"\",\n modifiedAfter: this.filterAfterTypeValue,\n modifiedDateTime: this.filterModifiedDateValue,\n modifiedUser: this.filterUserValue,\n style: this.filterStyleValue,\n language: this.filterLanguageValue,\n density: this.filterDensityValue,\n layer: this.filterLayerValue\n };\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start field-group\">\n {this.#renderHeader()}\n </header>\n\n <div class=\"main\">\n {this.#renderTabularGrid()}\n <div class=\"main__aside field-group\">{this.#renderFilter()}</div>\n </div>\n\n <footer class=\"dialog-footer-with-border dialog-footer-space-between spacing-body\">\n <p\n // matching objects\n class=\"text-body\"\n >\n {`${this.tabularGridData.length} ${\n this.#componentLocale.objCount.matching\n }`}\n </p>\n\n <div class=\"buttons-spacer\">\n <button\n // select all button\n id=\"button-select-all\"\n class=\"button-secondary\"\n onClick={this.#selectAll}\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n\n <button\n // new image button\n id=\"button-new-file\"\n class=\"button-primary button-icon-and-text\"\n onClick={this.#newObjectCallbackHandler}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type FilerInitialData = {\n name: string;\n module: EntityData;\n searchContents: string;\n category: string;\n allDescendants: string;\n modifiedAfter: string;\n modifiedDateTime: string;\n modifiedUser: string;\n style: string;\n language: string;\n density: string;\n layer: string;\n};\n\nexport type ImageData = {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n module: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n};\n\nexport type ImageFiltersData = {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n style?: string;\n language?: string;\n density?: string;\n layer?: string;\n};\n\nexport type ImageItemData = {\n id: string;\n name: string;\n url: string;\n};\n\nexport type LoadCallback = (filters: ImageFiltersData) => Promise<ImageData[]>;\n\nexport type LoadImageItemsCallback = (id: string) => Promise<ImageItemData[]>;\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type SelectionObjectCallback = (ids: string[]) => Promise<void>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","mapCategoryToComboBoxItemModel","categoryModel","category","label","objectSelectorCss","CSS_BUNDLES","FILTER_ICON","getIconPath","colorType","USER_ICON","MODIFIED_ACCORDION_MODEL","expanded","TODAY","GxIdeObjectSelector","_GxIdeObjectSelector_componentLocale","set","this","_GxIdeObjectSelector_shortcutsSrc","getAssetPath","_GxIdeObjectSelector_afterModel","_GxIdeObjectSelector_patternInput","_GxIdeObjectSelector_typeComboBox","_GxIdeObjectSelector_categoryComboBox","_GxIdeObjectSelector_moduleEntitySelector","_GxIdeObjectSelector_afterTypeComboBox","_GxIdeObjectSelector_userInput","_GxIdeObjectSelector_modifiedDateInput","_GxIdeObjectSelector_objectsGrid","_GxIdeObjectSelector_shortcutsEl","_GxIdeObjectSelector_cancelCallbackHandler","cancelCallback","_GxIdeObjectSelector_chGridKeyDownHandler","e","key","__classPrivateFieldGet","_GxIdeObjectSelector_openSelectionCallbackHandler","call","_GxIdeObjectSelector_deselectAll","selectAllRows","_GxIdeObjectSelector_evaluateObjectsCount","type","locale","selectedObjectsIdsArray","length","objCount","selected","none","one","many","objects","matching","_GxIdeObjectSelector_getToday","now","Date","date","toISOString","split","time","slice","_GxIdeObjectSelector_handleAfterValueChange","event","modifiedAfterValue","detail","FILTER_AFTER","DATE_TIME","_GxIdeObjectSelector_refreshUIWithNewConfiguration","_GxIdeObjectSelector_handleObjectsSelectionChange","rowsId","_GxIdeObjectSelector_hostKeyPressHandler","stopPropagation","_GxIdeObjectSelector_newObjectCallbackHandler","newObjectCallback","openSelectionCallback","modifiedAfter","user","_b","_a","trim","filters","pattern","_c","module","_e","_d","modifiedBy","modifiedDate","_f","loading","loadCallback","then","_GxIdeObjectSelector_sortObjectsByName","_GxIdeObjectSelector_renderFilter","h","class","htmlFor","filter","accessibleName","debounce","config","inputDebounce","part","patternValue","mode","ref","el","__classPrivateFieldSet","onInput","disabled","types","defaultType","model","categories","defaultCategory","defaultModule","labelCaption","labelPosition","onValueChanged","defaultValue","selectEntityCallback","selectModuleCallback","slot","after","startImgSrc","dateTime","max","_GxIdeObjectSelector_renderFooter","onClick","undefined","footer","btnNew","btnCancel","multiSelection","_GxIdeObjectSelector_selectAll","btnSelectAll","btnConfirm","_GxIdeObjectSelector_renderObjects","rowSelectionMode","onKeyDown","onSelectionChanged","onDblClick","settingable","sortable","size","tabularGrid","colSize","maxContent","tableHead","description","commonDouble","importDate","obj","rowid","src","icon","formatDate","loader","loaderTitle","title","show","stateIconSrc","stateTitle","emptyState","_GxIdeObjectSelector_setAfterDefaultValue","NONE","_GxIdeObjectSelector_setAfterOptions","afterNone","IMPORT","LAST_BUILD","sort","a","b","nameA","toLowerCase","nameB","connectedCallback","componentWillLoad","Locale","getComponentStrings","componentDidLoad","focus","componentDidRender","suspendShortcuts","suspend","validate","isValid","render","Host","onKeyPress"],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: 1px solid\n var(--color-border-surface-on-elevation-3);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: 8px;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-surface\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\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 #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\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() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\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 * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\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 /**\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 * 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 * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.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 #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"dialog-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer dialog-footer-space-between\">\n <div\n class=\"dialog-footer dialog-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"dialog-footer-with-border dialog-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-s\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.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 };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\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"],"mappings":"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"}