@genexus/genexus-ide-ui 1.1.60 → 1.1.62

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 (346) hide show
  1. package/dist/cjs/{common-f2540d3e.js → common-51d68918.js} +1 -31
  2. package/dist/cjs/common-51d68918.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +111 -49
  23. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  31. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +358 -266
  33. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js +141 -0
  37. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js.map +1 -0
  38. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  39. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +2 -1
  41. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +1 -1
  44. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +34 -33
  45. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js +527 -0
  47. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js.map +1 -0
  48. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  49. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  50. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  52. package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
  53. package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
  54. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  55. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  56. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
  57. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  58. package/dist/cjs/loader.cjs.js +1 -1
  59. package/dist/cjs/{tabular-grid-render-ce935a84.js → tabular-grid-render-c0e0738c.js} +3 -3
  60. package/dist/cjs/tabular-grid-render-c0e0738c.js.map +1 -0
  61. package/dist/collection/collection-manifest.json +2 -0
  62. package/dist/collection/common/common.js +0 -21
  63. package/dist/collection/common/common.js.map +1 -1
  64. package/dist/collection/components/_helpers/card/card.css +12 -0
  65. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +13 -1
  66. package/dist/collection/components/_helpers/list-selector/list-selector.css +12 -0
  67. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  68. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  69. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  70. package/dist/collection/components/_helpers/progress-bar/progress-bar.css +210 -0
  71. package/dist/collection/components/_helpers/progress-bar/progress-bar.js +320 -0
  72. package/dist/collection/components/_helpers/progress-bar/progress-bar.js.map +1 -0
  73. package/dist/collection/components/_test/test.css +12 -0
  74. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +12 -0
  75. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +12 -0
  76. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +12 -0
  77. package/dist/collection/components/bpm/import-files/bpm-import-files.css +12 -0
  78. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +12 -0
  79. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +12 -0
  80. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +12 -0
  81. package/dist/collection/components/deployment-tool/deployment-tool.css +12 -0
  82. package/dist/collection/components/file-uploader/file-uploader.css +12 -0
  83. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +12 -0
  84. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +30 -627
  85. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +179 -110
  86. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  87. package/dist/collection/components/modules/edit-module-server/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  88. package/dist/collection/components/modules/edit-module-server/helpers.js +12 -0
  89. package/dist/collection/components/modules/edit-module-server/helpers.js.map +1 -0
  90. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  91. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  92. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  93. package/dist/collection/components/modules/manage-module-references/helpers.js +32 -0
  94. package/dist/collection/components/modules/manage-module-references/helpers.js.map +1 -0
  95. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +116 -777
  96. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +378 -373
  97. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  98. package/dist/collection/components/references/references.css +12 -0
  99. package/dist/collection/components/select-kb-items/helpers.js +2 -1
  100. package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
  101. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  102. package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.en.json +44 -0
  103. package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.ja.json +44 -0
  104. package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.zh.json +44 -0
  105. package/dist/collection/components/team-dev/preview/team-dev-preview.css +709 -0
  106. package/dist/collection/components/team-dev/preview/team-dev-preview.js +782 -0
  107. package/dist/collection/components/team-dev/preview/team-dev-preview.js.map +1 -0
  108. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +12 -0
  109. package/dist/collection/components/team-dev/update/update.js +9 -9
  110. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  111. package/dist/collection/components/team-dev/version-control/commit/commit.css +1 -1
  112. package/dist/collection/components/team-dev/version-control/commit/commit.js +41 -40
  113. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  114. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +2 -2
  115. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +2 -2
  116. package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +2 -2
  117. package/dist/collection/components/team-dev/version-control/common/constants.js +1 -1
  118. package/dist/collection/components/team-dev/version-control/common/constants.js.map +1 -1
  119. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +1 -1
  120. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -1
  121. package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -1
  122. package/dist/collection/components/wf-settings/wf-settings.css +12 -0
  123. package/dist/collection/components/ww-images/ww-images.css +12 -0
  124. package/dist/collection/testing/locale.e2e.js +2 -0
  125. package/dist/collection/testing/locale.e2e.js.map +1 -1
  126. package/dist/components/bpm-objects-selector.js +1 -1
  127. package/dist/components/bpm-objects-selector.js.map +1 -1
  128. package/dist/components/common.js +1 -30
  129. package/dist/components/common.js.map +1 -1
  130. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  131. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  132. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  133. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  134. package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
  135. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  136. package/dist/components/gx-ide-bpm-import-files.js +1 -1
  137. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  138. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  139. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  140. package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
  141. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  142. package/dist/components/gx-ide-card.js +1 -1
  143. package/dist/components/gx-ide-card.js.map +1 -1
  144. package/dist/components/gx-ide-deployment-tool.js +1 -1
  145. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  146. package/dist/components/gx-ide-edit-module-server.js +118 -68
  147. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  148. package/dist/components/gx-ide-empty-state2.js +1 -1
  149. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  150. package/dist/components/gx-ide-file-uploader.js +1 -1
  151. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  152. package/dist/components/gx-ide-gam-installation-settings.js +1 -1
  153. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  154. package/dist/components/gx-ide-manage-module-references.js +384 -291
  155. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  156. package/dist/components/gx-ide-progress-bar.d.ts +11 -0
  157. package/dist/components/gx-ide-progress-bar.js +8 -0
  158. package/dist/components/gx-ide-progress-bar.js.map +1 -0
  159. package/dist/components/gx-ide-references.js +1 -1
  160. package/dist/components/gx-ide-references.js.map +1 -1
  161. package/dist/components/gx-ide-team-dev-commit.js +37 -36
  162. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  163. package/dist/components/gx-ide-team-dev-preview.d.ts +11 -0
  164. package/dist/components/gx-ide-team-dev-preview.js +573 -0
  165. package/dist/components/gx-ide-team-dev-preview.js.map +1 -0
  166. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  167. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  168. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  169. package/dist/components/gx-ide-test.js +1 -1
  170. package/dist/components/gx-ide-test.js.map +1 -1
  171. package/dist/components/gx-ide-wf-settings.js +1 -1
  172. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  173. package/dist/components/gx-ide-ww-images.js +2 -2
  174. package/dist/components/gx-ide-ww-images.js.map +1 -1
  175. package/dist/components/list-selector.js +1 -1
  176. package/dist/components/list-selector.js.map +1 -1
  177. package/dist/components/progress-bar.js +166 -0
  178. package/dist/components/progress-bar.js.map +1 -0
  179. package/dist/components/select-kb-items.js +2 -1
  180. package/dist/components/select-kb-items.js.map +1 -1
  181. package/dist/components/tabular-grid-render.js +2 -2
  182. package/dist/components/tabular-grid-render.js.map +1 -1
  183. package/dist/esm/{common-b811a822.js → common-dc966e64.js} +2 -31
  184. package/dist/esm/common-dc966e64.js.map +1 -0
  185. package/dist/esm/genexus-ide-ui.js +1 -1
  186. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  187. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  188. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  189. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  190. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  191. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  192. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  193. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  194. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  195. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  196. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  197. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  198. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  199. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  200. package/dist/esm/gx-ide-card.entry.js +1 -1
  201. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  202. package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
  203. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  204. package/dist/esm/gx-ide-edit-module-server.entry.js +112 -50
  205. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  206. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  207. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  208. package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
  209. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  210. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  211. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  212. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  213. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  214. package/dist/esm/gx-ide-manage-module-references.entry.js +359 -267
  215. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  216. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  217. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  218. package/dist/esm/gx-ide-progress-bar.entry.js +137 -0
  219. package/dist/esm/gx-ide-progress-bar.entry.js.map +1 -0
  220. package/dist/esm/gx-ide-references.entry.js +1 -1
  221. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  222. package/dist/esm/gx-ide-select-kb-items.entry.js +2 -1
  223. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  224. package/dist/esm/gx-ide-splash.entry.js +1 -1
  225. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +1 -1
  226. package/dist/esm/gx-ide-team-dev-commit.entry.js +34 -33
  227. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  228. package/dist/esm/gx-ide-team-dev-preview.entry.js +523 -0
  229. package/dist/esm/gx-ide-team-dev-preview.entry.js.map +1 -0
  230. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  231. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  232. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  233. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  234. package/dist/esm/gx-ide-test.entry.js +1 -1
  235. package/dist/esm/gx-ide-test.entry.js.map +1 -1
  236. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  237. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  238. package/dist/esm/gx-ide-ww-images.entry.js +2 -2
  239. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  240. package/dist/esm/loader.js +1 -1
  241. package/dist/esm/{tabular-grid-render-137bd3dd.js → tabular-grid-render-c868fa55.js} +3 -3
  242. package/dist/esm/tabular-grid-render-c868fa55.js.map +1 -0
  243. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  244. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  245. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  246. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  247. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  248. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  249. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  250. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  251. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  252. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +2 -2
  253. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +2 -2
  254. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +2 -2
  255. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.en.json +44 -0
  256. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.ja.json +44 -0
  257. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.zh.json +44 -0
  258. package/dist/genexus-ide-ui/{p-74c46daf.entry.js → p-074d2bcf.entry.js} +32 -32
  259. package/dist/genexus-ide-ui/{p-1671c731.entry.js → p-214ddb11.entry.js} +2 -2
  260. package/dist/genexus-ide-ui/{p-a4b820e5.js → p-22bdcf23.js} +3 -3
  261. package/dist/genexus-ide-ui/p-22bdcf23.js.map +1 -0
  262. package/dist/genexus-ide-ui/p-29ac6b13.entry.js +582 -0
  263. package/dist/genexus-ide-ui/p-29ac6b13.entry.js.map +1 -0
  264. package/dist/genexus-ide-ui/{p-156fa688.entry.js → p-2ec8193b.entry.js} +5 -5
  265. package/dist/genexus-ide-ui/{p-94cb4746.entry.js → p-33aeb361.entry.js} +36 -36
  266. package/dist/genexus-ide-ui/p-3a22af5d.entry.js +249 -0
  267. package/dist/genexus-ide-ui/p-3a22af5d.entry.js.map +1 -0
  268. package/dist/genexus-ide-ui/{p-e8e7f960.entry.js → p-3d71b287.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/p-3d71b287.entry.js.map +1 -0
  270. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js +166 -0
  271. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js.map +1 -0
  272. package/dist/genexus-ide-ui/{p-5308144e.entry.js → p-4d272c15.entry.js} +2 -2
  273. package/dist/genexus-ide-ui/{p-b1bf5be8.entry.js → p-5f7de718.entry.js} +5 -5
  274. package/dist/genexus-ide-ui/{p-b1bf5be8.entry.js.map → p-5f7de718.entry.js.map} +1 -1
  275. package/dist/genexus-ide-ui/{p-f5734cc7.entry.js → p-630581df.entry.js} +2 -2
  276. package/dist/genexus-ide-ui/{p-6d3a4648.entry.js → p-64c0a07c.entry.js} +7 -7
  277. package/dist/genexus-ide-ui/{p-0910af1b.entry.js → p-6da03710.entry.js} +54 -54
  278. package/dist/genexus-ide-ui/{p-d41d52f6.entry.js → p-70038e09.entry.js} +2 -2
  279. package/dist/genexus-ide-ui/{p-fff8902d.entry.js → p-73c3f9ec.entry.js} +207 -205
  280. package/dist/genexus-ide-ui/p-73c3f9ec.entry.js.map +1 -0
  281. package/dist/genexus-ide-ui/{p-5b8ef529.entry.js → p-75925cee.entry.js} +39 -39
  282. package/dist/genexus-ide-ui/{p-d243ee33.entry.js → p-8b01c337.entry.js} +2 -2
  283. package/dist/genexus-ide-ui/{p-f9bde776.entry.js → p-8f2f8995.entry.js} +3 -3
  284. package/dist/genexus-ide-ui/{p-d71cf7d9.entry.js → p-94a1f3d1.entry.js} +20 -20
  285. package/dist/genexus-ide-ui/{p-ae33da9a.entry.js → p-9606ebed.entry.js} +19 -19
  286. package/dist/genexus-ide-ui/p-97bbd54c.js +132 -0
  287. package/dist/genexus-ide-ui/p-97bbd54c.js.map +1 -0
  288. package/dist/genexus-ide-ui/{p-7d779463.entry.js → p-9a6b9a7f.entry.js} +2 -2
  289. package/dist/genexus-ide-ui/{p-2d70b76d.entry.js → p-c777da28.entry.js} +30 -30
  290. package/dist/genexus-ide-ui/{p-4c9cddc5.entry.js → p-dc2a6f77.entry.js} +16 -16
  291. package/dist/genexus-ide-ui/{p-9adbe860.entry.js → p-df2c52cb.entry.js} +2 -2
  292. package/dist/genexus-ide-ui/{p-95f8ff9f.entry.js → p-eeae4b37.entry.js} +2 -2
  293. package/dist/genexus-ide-ui/p-ef6a6401.entry.js +588 -0
  294. package/dist/genexus-ide-ui/p-ef6a6401.entry.js.map +1 -0
  295. package/dist/genexus-ide-ui/{p-408eac22.entry.js → p-f5bdfa14.entry.js} +24 -24
  296. package/dist/genexus-ide-ui/{p-5378f926.entry.js → p-f83c415c.entry.js} +3 -2
  297. package/dist/genexus-ide-ui/p-f83c415c.entry.js.map +1 -0
  298. package/dist/genexus-ide-ui/{p-ecba7aa4.entry.js → p-f9403b49.entry.js} +29 -29
  299. package/dist/types/common/common.d.ts +0 -2
  300. package/dist/types/components/_helpers/progress-bar/progress-bar.d.ts +61 -0
  301. package/dist/types/components/modules/edit-module-server/edit-module-server.d.ts +15 -30
  302. package/dist/types/components/modules/edit-module-server/helpers.d.ts +3 -0
  303. package/dist/types/components/modules/manage-module-references/helpers.d.ts +5 -0
  304. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +43 -88
  305. package/dist/types/components/select-kb-items/select-kb-items.d.ts +2 -1
  306. package/dist/types/components/team-dev/preview/team-dev-preview.d.ts +107 -0
  307. package/dist/types/components/team-dev/update/update.d.ts +4 -35
  308. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +10 -11
  309. package/dist/types/components/team-dev/version-control/common/types.d.ts +35 -4
  310. package/dist/types/components.d.ts +234 -68
  311. package/package.json +1 -1
  312. package/dist/cjs/common-f2540d3e.js.map +0 -1
  313. package/dist/cjs/tabular-grid-render-ce935a84.js.map +0 -1
  314. package/dist/esm/common-b811a822.js.map +0 -1
  315. package/dist/esm/tabular-grid-render-137bd3dd.js.map +0 -1
  316. package/dist/genexus-ide-ui/p-300fcfa1.entry.js +0 -141
  317. package/dist/genexus-ide-ui/p-300fcfa1.entry.js.map +0 -1
  318. package/dist/genexus-ide-ui/p-5378f926.entry.js.map +0 -1
  319. package/dist/genexus-ide-ui/p-714b37c0.js +0 -159
  320. package/dist/genexus-ide-ui/p-714b37c0.js.map +0 -1
  321. package/dist/genexus-ide-ui/p-a4b820e5.js.map +0 -1
  322. package/dist/genexus-ide-ui/p-b0d1b217.entry.js +0 -498
  323. package/dist/genexus-ide-ui/p-b0d1b217.entry.js.map +0 -1
  324. package/dist/genexus-ide-ui/p-e8e7f960.entry.js.map +0 -1
  325. package/dist/genexus-ide-ui/p-fff8902d.entry.js.map +0 -1
  326. /package/dist/genexus-ide-ui/{p-74c46daf.entry.js.map → p-074d2bcf.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-1671c731.entry.js.map → p-214ddb11.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-156fa688.entry.js.map → p-2ec8193b.entry.js.map} +0 -0
  329. /package/dist/genexus-ide-ui/{p-94cb4746.entry.js.map → p-33aeb361.entry.js.map} +0 -0
  330. /package/dist/genexus-ide-ui/{p-5308144e.entry.js.map → p-4d272c15.entry.js.map} +0 -0
  331. /package/dist/genexus-ide-ui/{p-f5734cc7.entry.js.map → p-630581df.entry.js.map} +0 -0
  332. /package/dist/genexus-ide-ui/{p-6d3a4648.entry.js.map → p-64c0a07c.entry.js.map} +0 -0
  333. /package/dist/genexus-ide-ui/{p-0910af1b.entry.js.map → p-6da03710.entry.js.map} +0 -0
  334. /package/dist/genexus-ide-ui/{p-d41d52f6.entry.js.map → p-70038e09.entry.js.map} +0 -0
  335. /package/dist/genexus-ide-ui/{p-5b8ef529.entry.js.map → p-75925cee.entry.js.map} +0 -0
  336. /package/dist/genexus-ide-ui/{p-d243ee33.entry.js.map → p-8b01c337.entry.js.map} +0 -0
  337. /package/dist/genexus-ide-ui/{p-f9bde776.entry.js.map → p-8f2f8995.entry.js.map} +0 -0
  338. /package/dist/genexus-ide-ui/{p-d71cf7d9.entry.js.map → p-94a1f3d1.entry.js.map} +0 -0
  339. /package/dist/genexus-ide-ui/{p-ae33da9a.entry.js.map → p-9606ebed.entry.js.map} +0 -0
  340. /package/dist/genexus-ide-ui/{p-7d779463.entry.js.map → p-9a6b9a7f.entry.js.map} +0 -0
  341. /package/dist/genexus-ide-ui/{p-2d70b76d.entry.js.map → p-c777da28.entry.js.map} +0 -0
  342. /package/dist/genexus-ide-ui/{p-4c9cddc5.entry.js.map → p-dc2a6f77.entry.js.map} +0 -0
  343. /package/dist/genexus-ide-ui/{p-9adbe860.entry.js.map → p-df2c52cb.entry.js.map} +0 -0
  344. /package/dist/genexus-ide-ui/{p-95f8ff9f.entry.js.map → p-eeae4b37.entry.js.map} +0 -0
  345. /package/dist/genexus-ide-ui/{p-408eac22.entry.js.map → p-f5bdfa14.entry.js.map} +0 -0
  346. /package/dist/genexus-ide-ui/{p-ecba7aa4.entry.js.map → p-f9403b49.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"manage-module-references.js","sourceRoot":"","sources":["../../../../src/components/modules/manage-module-references/manage-module-references.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModulePropertyData,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* selectedServerIdOnModulesAllUpdate is updated every time modulesAll is modified, in order to determine if the server is the same or not.*/\n private selectedServerIdOnModulesAllUpdate: string;\n\n #filterIcon = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n });\n #moduleIcon = getIconPath({\n category: \"objects\",\n name: \"module\"\n });\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllWatcher(modulesAll: ModuleData[]) {\n this.updateModulesSelectedVersion(modulesAll);\n }\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersion: Map<string, string> = new Map();\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n @State() loadingServer = false;\n @State() reRenderCounter: number = 0;\n @Watch(\"loadingServer\")\n loadingServerHandler(loading: boolean) {\n if (loading) {\n this.loaderEl.show = true;\n } else {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version\n */\n @Prop() readonly showServerCommands: boolean = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.serverSelectedCallbackHandler(this.servers[0].id, false);\n }\n\n // 7.LISTENERS //\n\n @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private updateModulesSelectedVersion = (modulesAll: ModuleData[]) => {\n if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {\n // the server has changed. clear the updateModulesSelectedVersion\n this.modulesSelectedVersion.clear();\n modulesAll.forEach(module => {\n // this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n this.modulesSelectedVersion.set(\n module.id,\n module.versions[module.versions.length - 1].id\n );\n });\n } else {\n // the server has't changed. only add the module to the map, if it is a new module.\n modulesAll.forEach(module => {\n const newModule =\n this.modulesSelectedVersion.get(module.id) === undefined;\n if (newModule) {\n this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n }\n });\n }\n this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;\n };\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.getModuleData(\n this.selectedModule,\n \"action\"\n ) as ModuleActionType;\n return action || \"install\";\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n const foundModule = this.modulesAll.find(\n item => item.id === selectedModuleId\n );\n if (foundModule) {\n this.selectedModule = foundModule;\n }\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any, reload: boolean) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id, reload);\n this.selectedServerId = id;\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n this.loadingServer = false;\n }\n };\n\n private handleFilterChange = (value: string) => {\n value = value.trim().toLowerCase();\n if (value) {\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(value);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n private handleFilterChangeHandler = (e: CustomEvent<string>) => {\n const value = e.detail;\n return this.handleFilterChange(value);\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n private executeActionCallbackHandler = async (module: ModuleData) => {\n if (this.executeActionCallback) {\n const moduleSelectedVersionId = this.modulesSelectedVersion.get(\n module.id\n );\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n this.actionCompleted = actionCompleted;\n }\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private getModuleData = (\n module: ModuleData,\n dataType: keyof ModuleVersionData\n ): string | ModulePropertyData[] | undefined => {\n const selectedVersionId = this.modulesSelectedVersion.get(module.id);\n let selectedVersion;\n let selectedVersionData;\n if (selectedVersionId) {\n selectedVersion = module.versions.find(\n version => version.id === selectedVersionId\n );\n }\n if (selectedVersion) {\n selectedVersionData = selectedVersion[dataType];\n }\n return selectedVersionData;\n };\n\n private moduleActionHandler = (module: ModuleData) => () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\n };\n\n private renderModulesGrid = (): Element => {\n return (\n <ch-tabular-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-icon\n type=\"objects/module\"\n data-action={this.moduleVersionIconColor(module)}\n color={this.moduleVersionIconColor(module)}\n size=\"small\"\n ></gxg-icon>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">\n {this.getModuleData(module, \"name\")}\n </span>\n <span class=\"grid-cell-module__description\">\n {this.getModuleData(module, \"description\")}\n </span>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <div class=\"button-wrapper\">\n <gxg-button\n disabled={\n !this.actionCompleted ||\n this.getModuleData(module, \"action\") === \"incompatible\" ||\n this.getModuleData(module, \"action\") === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler(module)}\n >\n {this.getActionFromCurrentModuleVersion()}\n </gxg-button>\n </div>\n ) : null}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIconSrc={this.#filterIcon}\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (module: ModuleData): Color => {\n const moduleAction = this.getModuleData(module, \"action\");\n const moduleCurrentVersion = module.currentVersion;\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n };\n\n /* module details/information renders*/\n private renderVersionName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n {/* <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule)}\n ></gxg-icon> */}\n {this.getModuleData(this.selectedModule, \"name\")}\n </div>\n </gxg-title>\n );\n };\n\n private renderVersionWarningMessage = () => {\n const warningMessage = this.getModuleData(\n this.selectedModule,\n \"warningMessage\"\n );\n if (warningMessage) {\n return <p class=\"module-info__alert-message\">{warningMessage}</p>;\n }\n };\n\n private renderInstalledVersion = () => {\n const currentVersion = this.selectedModule.currentVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentVersion) {\n caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{caption}</gxg-text>\n </div>\n );\n };\n\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail;\n this.updateSelectedModuleVersion(versionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail.value;\n this.updateSelectedModuleVersion(versionId);\n };\n private updateSelectedModuleVersion = (versionId: string) => {\n if (versionId) {\n this.modulesSelectedVersion.set(this.selectedModule.id, versionId);\n this.reRenderCounter++;\n }\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.getModuleData(this.selectedModule, \"id\")}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n onValueChanged={this.moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.moduleVersionsItemChangedHandler}\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private progressBarCloseHandler = () => {\n setTimeout(() => {\n this.actionCompleted = true;\n this.closeProgressBar = true;\n // reset\n this.progressValue = 0;\n this.progressState = \"in-progress\";\n }, 400);\n // delay to force the footer line disappear after the top-state-bar has been closed.\n };\n\n private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host\n class={{\n \"gx-ide-component\": true\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noBorderAboveFooter={this.closeProgressBar}\n part=\"servers\"\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* Servers*/}\n <main class=\"main\">\n <div class=\"modules__container\">\n <header class=\"modules__header\">\n <div class=\"modules__combo-container\">\n <gxg-label>\n {this._componentLocale.modules.selectServer}\n </gxg-label>\n <div class=\"modules__combo\">\n <gxg-combo-box\n disableFilter\n onValueChanged={this.serverValueChangedHandler}\n >\n {this.servers.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.serverItemSelectedHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n {this.showServerCommands ? (\n <span class=\"modules__server-commands\">\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.showModuleMenu}\n ></gxg-button>\n </span>\n ) : null}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\n </div>\n </div>\n </header>\n\n <div class=\"modules__main\">\n <div class=\"modules__main-header\">\n <gxg-form-text\n label={this._componentLocale.modules.searchModules}\n labelPosition=\"above\"\n centerLabel={false}\n onValueChanged={this.handleFilterChangeHandler}\n disabled={this.loadingServer}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={\n this.selectedButtonChangedHandler\n }\n >\n <gxg-button\n id=\"btn-browse\"\n selected\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"btn-installed\"\n disabled={this.loadingServer}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"btn-updates\"\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.updates}\n </gxg-button>\n </gxg-buttons-container>\n </div>\n {/* modules grid*/}\n <div\n class=\"grid-container\"\n ref={el => (this.serversDetail = el as HTMLDivElement)}\n >\n {this.filteredModules.length > 0\n ? this.renderModulesGrid()\n : this.renderEmptyStateModules()}\n </div>\n </div>\n </div>\n\n {/* Module version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderVersionName()}\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {/* {this.renderNotInstallable()} */}\n {this.renderVersionWarningMessage()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.getModuleData(\n this.selectedModule,\n \"properties\"\n ) as ModulePropertyData[]\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#moduleIcon}\n stateTitle={\n this._componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this._componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </main>\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n closeType=\"not-progress\"\n closedCallback={this.progressBarCloseHandler}\n ></gxg-top-state-bar>\n </gx-ide-container>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.servers.loading}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n container={this.serversDetail}\n borderRadius=\"0 0 0 8px\"\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n moduleVersionId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: topStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"]}
1
+ {"version":3,"file":"manage-module-references.js","sourceRoot":"","sources":["../../../../src/components/modules/manage-module-references/manage-module-references.tsx"],"names":[],"mappings":"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","sourcesContent":["// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Watch,\n Listen\n} from \"@stencil/core\";\n// Other Libraries\nimport {\n ComboBoxModel,\n TabularGridSelectionChangedEvent,\n SegmentedControlModel\n} from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n// Custom Imports\nimport { TopStateBarType } from \"../../../components\";\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModuleVersionData\n} from \"../types\";\nimport {\n mapModuleServerDataToComboBoxModel,\n mapModuleVersionDataToComboBoxModel,\n renderModuleDataProperties\n} from \"./helpers\";\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\nimport { hiChar } from \"../../../common/helpers\";\nimport { ComboBoxItemValue } from \"@genexus/gemini\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/icon\",\n \"components/combo-box\",\n \"components/edit\",\n \"components/tabular-grid\",\n \"components/segmented-control\",\n \"chameleon/scrollbar\",\n \"utils/spacing\"\n];\n\n// icons\nconst SHOW_MORE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\nconst MODULE_ICON = getIconPath({\n category: \"objects\",\n name: \"module\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n});\nconst MVS = \"__\"; // The separator between module-id, and module-version-id\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n #componentLocale: any;\n\n /**\n * #moduleVersionsMap maps a module version (identified as module-id + version-id), with the ModuleVersionData\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #moduleVersionsMap: ModulesVersionsMap = new Map();\n\n /**\n * maps a module-id, with the module current installed version, and the list of versions as a ComboBoxModel representation.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #modulesMap: ModulesMap = new Map();\n\n // #modulesJustFetched is used to select the current module on componentDidRender\n #modulesJustFetched: boolean = false;\n #searchModulesFilterValue: string;\n #modulesGrid: HTMLChTabularGridElement;\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n #progressBarEl: HTMLGxIdeProgressBarElement;\n\n @State() actionInProgress = false;\n @State() executeActionCallbackInProgress = false;\n @State() filteredModules: ModuleData[] = [];\n @State() loadingServer = false;\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllChanged(newModules: ModuleData[]) {\n let currentSelectedVersion: string;\n if (this.selectedModuleId) {\n // If this.selectedModuleId has a value, serverSelectedCallback was called\n // but the server is the same. This occurs when a user action (e.g., install\n // or restore) requires modules to update. The selected module and version\n // remain unchanged. We must save the current version before #clearAll().\n currentSelectedVersion = this.#modulesMap.get(\n this.selectedModuleId\n ).currentSelectedVersion;\n }\n\n this.#clearAll();\n newModules.forEach(module => {\n let currentSelectedVersionValue = module.versions[0].id;\n if (currentSelectedVersion && this.selectedModuleId === module.id) {\n currentSelectedVersionValue = currentSelectedVersion;\n currentSelectedVersion === undefined; // found. prevent the if in the following iteration.\n }\n\n // fulfill #modulesMap\n const moduleVersionsComboBoxModel = mapModuleVersionDataToComboBoxModel(\n module.versions\n );\n this.#modulesMap.set(module.id, {\n moduleData: module,\n currentInstalledVersion: module.currentVersion,\n currentSelectedVersion: currentSelectedVersionValue,\n comboBoxVersionsModel: moduleVersionsComboBoxModel\n });\n\n // fulfill #moduleVersionsMap.\n module.versions.forEach(version => {\n const moduleVersionCombinedId = `${module.id}${MVS}${version.id}`;\n this.#moduleVersionsMap.set(moduleVersionCombinedId, {\n id: version.id,\n action: version.action,\n description: version.description,\n properties: version.properties,\n name: version.name,\n warningMessage: version.warningMessage\n });\n });\n });\n\n this.#modulesJustFetched = true;\n this.#filterModules();\n }\n\n @State() progressState: TopStateBarType = \"in-progress\";\n @State() progressValue: number = 0;\n @State() reRenderCounter: number = 0;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() selectedModuleId: string;\n @State() selectedModuleType: ModuleFilterType = \"browse\";\n @State() selectedServerId: string;\n @State() selectedServerValue: string;\n // serversComboBoxModel is a model representation of the servers ModuleServerData[]\n @State() serversComboBoxModel: ComboBoxModel = [];\n @State() selectedModuleVersions: ComboBoxModel = [];\n #segmentedControlModel: SegmentedControlModel = [];\n\n /**\n * If true, the progress bar will close automatically once the progress has reached 100%.\n */\n @Prop() readonly autoCloseProgressBar: boolean = false;\n\n /**\n * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.\n */\n @Prop() readonly executeActionCallback!: ExecuteActionCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n @Watch(\"servers\")\n serversChanged(newServers: ModuleServerData[]) {\n if (newServers.length) {\n this.serversComboBoxModel =\n mapModuleServerDataToComboBoxModel(newServers);\n this.selectedServerValue = this.serversComboBoxModel[0].value;\n }\n }\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback\n */\n @Prop() readonly showServerCommands: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.serversChanged(this.servers); // map ModuleServerData to ComboBoxModel\n\n this.#segmentedControlModel = [\n {\n id: \"browse\",\n caption: this.#componentLocale.modules.buttonsContainer.browse\n },\n {\n id: \"installed\",\n caption: this.#componentLocale.modules.buttonsContainer.installed\n },\n {\n id: \"updates\",\n caption: this.#componentLocale.modules.buttonsContainer.updates\n }\n ];\n }\n\n async componentDidLoad() {\n await this.#serverSelectedCallbackHandler(this.servers[0].id, false);\n }\n\n componentDidRender() {\n if (this.#modulesJustFetched && this.selectedModuleId) {\n // set selected module as selected on the grid after server reload.\n this.#modulesGrid.selectRow(this.selectedModuleId, true);\n this.#modulesJustFetched = false;\n }\n }\n\n @Listen(\"progressBarClosed\")\n progressBarClosedHandler() {\n // set it to false, to fire a re-render the next time the progress-bar is active.\n this.actionInProgress = false;\n }\n\n #clearAll = () => {\n this.#modulesMap.clear();\n this.#moduleVersionsMap.clear();\n };\n\n #filterModules = () => {\n let filteredModules;\n // 1. Filter by type first\n // browse\n if (this.selectedModuleType === \"browse\") {\n filteredModules = this.modulesAll;\n }\n // installed\n else if (this.selectedModuleType === \"installed\") {\n filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (this.selectedModuleType === \"updates\") {\n filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n\n // 2. Then filter by user input\n if (this.#searchModulesFilterValue) {\n filteredModules = filteredModules.filter(module => {\n const moduleSelectedVersion = this.#moduleVersionsMap.get(\n `${module.id}${MVS}${\n this.#modulesMap.get(module.id).currentSelectedVersion\n }`\n );\n const moduleSelectedVersionName =\n moduleSelectedVersion.name.toLowerCase();\n const moduleSelectedVersionDescription =\n moduleSelectedVersion.description.toLowerCase();\n\n return (\n moduleSelectedVersionName?.includes(this.#searchModulesFilterValue) ||\n moduleSelectedVersionDescription?.includes(\n this.#searchModulesFilterValue\n )\n );\n });\n }\n\n this.filteredModules = filteredModules;\n };\n\n #getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.#moduleVersionsMap.get(\n `${this.selectedModuleId}${MVS}${\n this.#modulesMap.get(this.selectedModuleId).currentSelectedVersion\n }`\n ).action;\n return action || \"install\";\n };\n\n #handleFilterChangeHandler = (event: CustomEvent<string> | InputEvent) => {\n const searchValue = (event.detail as string).trim().toLowerCase();\n this.#searchModulesFilterValue = searchValue;\n this.#filterModules();\n };\n\n #handleModuleChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedModuleId = event.detail.rowsId[0];\n\n // update selected versions comboBox model\n const selectedModuleVersionsInfoArray = this.#modulesMap.get(\n this.selectedModuleId\n ).comboBoxVersionsModel;\n\n this.selectedModuleVersions = selectedModuleVersionsInfoArray.map(\n versionInfo => {\n return {\n caption: versionInfo.value,\n value: versionInfo.value\n } as ComboBoxItemValue;\n }\n );\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #moduleActionHandler = (module: ModuleData) => async () => {\n await this.#progressBarEl.reset(); // sets the progress bar to 0\n this.executeActionCallbackInProgress = true;\n this.actionInProgress = true;\n\n const moduleSelectedVersionId = this.#modulesMap.get(\n this.selectedModuleId\n ).currentSelectedVersion;\n\n const actionSuccessful = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.#getActionFromCurrentModuleVersion(),\n this.#onProgress\n );\n this.executeActionCallbackInProgress = false;\n if (actionSuccessful) {\n this.#serverSelectedCallbackHandler(this.selectedServerId, false);\n }\n };\n\n #moduleTypeButtonClicked = (event: CustomEvent<string>): void => {\n this.selectedModuleType = event.detail as ModuleFilterType;\n this.#filterModules();\n };\n\n #moduleVersionsValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n const versionId = event.detail;\n const currentModuleMapValue = this.#modulesMap.get(this.selectedModuleId);\n currentModuleMapValue.currentSelectedVersion = versionId.toString();\n this.#modulesMap.set(this.selectedModuleId, currentModuleMapValue);\n this.reRenderCounter++;\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #onProgress = (\n message: string,\n progress: number,\n state: TopStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n #progressBarCloseHandler = () => {};\n\n #reloadServer = () => {\n this.#serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n\n #renderEmptyStateModules = (): HTMLGxIdeEmptyStateElement => {\n return (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n #renderInstalledVersion = () => {\n const currentInstalledVersion = this.#modulesMap.get(\n this.selectedModuleId\n ).currentInstalledVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentInstalledVersion) {\n caption = `${\n this.#componentLocale.modulesInformation.moduleProperties.installed\n }: ${currentInstalledVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this.#componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <p class=\"body-regular-m\">{caption}</p>\n </div>\n );\n };\n\n #renderModuleVersions = () => {\n const currentSelectedModule = this.#modulesMap.get(this.selectedModuleId);\n const selectedVersionValue = currentSelectedModule.currentSelectedVersion;\n const moduleSelectedVersion = this.#moduleVersionsMap.get(\n `${this.selectedModuleId}${MVS}${\n this.#modulesMap.get(this.selectedModuleId).currentSelectedVersion\n }`\n );\n const moduleSelectedVersionAction = moduleSelectedVersion.action;\n\n return (\n <div class=\"field field-block available-versions\">\n <label class=\"label\" htmlFor=\"available-versions\">\n {this.#componentLocale.availableVersions}\n </label>\n <div class=\"buttons-spacer combo-and-button\">\n <ch-combo-box-render\n id=\"available-versions\"\n class=\"combo-box versions\"\n value={selectedVersionValue}\n onInput={this.#moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n model={this.selectedModuleVersions}\n ></ch-combo-box-render>\n <button\n class=\"button-primary button-status\"\n disabled={\n this.executeActionCallbackInProgress ||\n moduleSelectedVersionAction === \"incompatible\" ||\n moduleSelectedVersionAction === \"not-installable\"\n }\n onClick={this.#moduleActionHandler(\n currentSelectedModule.moduleData\n )}\n >\n {this.#getActionFromCurrentModuleVersion()}\n </button>\n </div>\n </div>\n );\n };\n\n #renderModulesGrid = (): Element => {\n return (\n <ch-tabular-grid\n // TODO: Evaluate if the tabular-grid is the right tool for this job.\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid scrollable\"\n onSelectionChanged={this.#handleModuleChange}\n ref={el => (this.#modulesGrid = el as HTMLChTabularGridElement)}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredModules.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredModules.map((module: ModuleData) => {\n const moduleIsInstalled = module.currentVersion;\n\n const moduleSelectedVersion = this.#moduleVersionsMap.get(\n `${module.id}${MVS}${\n this.#modulesMap.get(module.id).currentSelectedVersion\n }`\n );\n\n const moduleSelectedVersionName = moduleSelectedVersion.name;\n const moduleSelectedVersionDescription =\n moduleSelectedVersion.description;\n\n return (\n <ch-tabular-grid-row\n // TODO: Replace tabular grid with other control, since it does not makes sense to use a grid with only one column.\n class=\"tabular-grid-row\"\n rowid={module.id}\n key={module.id}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <div class=\"module-grid-item-info field-group\">\n <ch-image\n class=\"icon-md module-icon\"\n src={MODULE_ICON}\n disabled={!moduleIsInstalled}\n ></ch-image>\n <div class=\"field field-block\">\n <h6 class=\"subtitle-semi-bold-xs\">\n {hiChar(\n moduleSelectedVersionName,\n this.#searchModulesFilterValue\n )}\n </h6>\n\n <p class=\"body-regular-s\">\n {hiChar(\n moduleSelectedVersionDescription,\n this.#searchModulesFilterValue\n )}\n </p>\n </div>\n </div>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n );\n })}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.#renderEmptyStateModules()}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n /* module details/information renders*/\n #renderVersionName = (): HTMLElement => {\n const moduleSelectedVersion = this.#moduleVersionsMap.get(\n `${this.selectedModuleId}${MVS}${\n this.#modulesMap.get(this.selectedModuleId).currentSelectedVersion\n }`\n );\n\n const selectedModule = this.#modulesMap.get(this.selectedModuleId);\n const moduleIsInstalled = selectedModule.currentInstalledVersion;\n\n return (\n <div class=\"module-info__title\">\n <ch-image\n class=\"icon-md module-info__icon\"\n src={MODULE_ICON}\n disabled={!moduleIsInstalled}\n ></ch-image>\n <h6 class=\"subtitle-semi-bold-xs\">{moduleSelectedVersion.name}</h6>\n </div>\n );\n };\n\n #renderVersionWarningMessage = () => {\n const moduleVersionWarningMessage = this.#moduleVersionsMap.get(\n `${this.selectedModuleId}${MVS}${\n this.#modulesMap.get(this.selectedModuleId).currentSelectedVersion\n }`\n ).warningMessage;\n\n if (moduleVersionWarningMessage) {\n return (\n <p class=\"module-info__alert-message\">{moduleVersionWarningMessage}</p>\n );\n }\n };\n\n #serverSelectedCallbackHandler = async (id: any, reload: boolean) => {\n if (this.serverSelectedCallback) {\n this.selectedServerId = id;\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id, reload);\n this.modulesAll = [...resolvedObjects];\n this.loadingServer = false;\n }\n };\n\n #serverValueChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedModuleId = undefined; // clear selected module\n this.#searchModulesFilterValue = \"\"; // clear filter\n this.selectedModuleType = \"browse\"; // set \"browse\" as the default selected type\n const serverId = event.detail;\n this.#serverSelectedCallbackHandler(serverId, false);\n };\n\n #showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"main\">\n <div class=\"modules__container field-group\">\n <header class=\"modules__header field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"servers-list\">\n {this.#componentLocale.modules.selectServer}\n </label>\n <div class=\"modules__header-controls buttons-spacer\">\n <ch-combo-box-render\n // select server\n id=\"servers-list\"\n class=\"combo-box combo-box-servers\"\n model={this.serversComboBoxModel}\n value={this.selectedServerValue}\n disabled={this.loadingServer}\n onInput={this.#serverValueChangedHandler}\n ></ch-combo-box-render>\n\n <div\n // action buttons\n >\n {this.showServerCommands && (\n <button\n // server context menu button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#showModuleMenu}\n aria-label={this.#componentLocale.showServerMenu}\n title={this.#componentLocale.showServerMenu}\n >\n <ch-image\n src={SHOW_MORE_ICON}\n class=\"icon-md\"\n ></ch-image>\n </button>\n )}\n\n <button\n // reload server selected button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#reloadServer}\n aria-label={this.#componentLocale.reloadModules}\n title={this.#componentLocale.reloadModules}\n >\n <ch-image src={RESET_ICON} class=\"icon-md\"></ch-image>\n </button>\n </div>\n </div>\n </div>\n </header>\n\n <div\n // Modules main\n class=\"modules__main\"\n >\n <div class=\"modules__main-header\">\n <div\n // search modules\n class=\"field field-block\"\n >\n <label class=\"label\" htmlFor=\"search-modules\">\n {this.#componentLocale.modules.searchModules}\n </label>\n <ch-edit\n class=\"input\"\n value={this.#searchModulesFilterValue}\n onInput={this.#handleFilterChangeHandler}\n disabled={this.loadingServer}\n ></ch-edit>\n </div>\n\n <div class=\"browse-modules\">\n <ch-segmented-control-render\n class=\"segmented-control-filled\"\n model={this.#segmentedControlModel}\n selectedId={this.selectedModuleType}\n onSelectedItemChange={this.#moduleTypeButtonClicked}\n ></ch-segmented-control-render>\n </div>\n </div>\n\n <div class=\"grid-or-loader-container\">\n {this.loadingServer ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.servers.loading}\n show={true}\n ></gx-ide-loader>\n ) : (\n this.#renderModulesGrid()\n )}\n </div>\n </div>\n </div>\n\n <div class=\"module-info field-group\">\n {this.selectedModuleId ? (\n [\n <header class=\"module-info__header\">\n {this.#renderVersionName()}\n {this.#renderInstalledVersion()}\n {this.#renderModuleVersions()}\n {this.#renderVersionWarningMessage()}\n </header>,\n <div class=\"module-info__properties scrollable\">\n <div class=\"module-info__properties-inner-wrapper\">\n {renderModuleDataProperties(\n this.#moduleVersionsMap.get(\n `${this.selectedModuleId}__${\n this.#modulesMap.get(this.selectedModuleId)\n .currentSelectedVersion\n }`\n ).properties\n )}\n </div>\n </div>\n ]\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={MODULE_ICON}\n stateTitle={\n this.#componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this.#componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </div>\n\n <footer class=\"footer\">\n <gx-ide-progress-bar\n class=\"border-block-start\"\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n caption={\n this.selectedModuleAction.message ||\n this.#componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={this.actionInProgress}\n closeType={this.autoCloseProgressBar ? \"auto-close\" : \"button\"}\n closedCallback={this.#progressBarCloseHandler}\n ref={el =>\n (this.#progressBarEl = el as HTMLGxIdeProgressBarElement)\n }\n ></gx-ide-progress-bar>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n moduleVersionId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: TopStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: TopStateBarType;\n}\n\nexport type ModuleVersionsMap = Map<string, { value: string; caption: string }>;\nexport type ModulesMap = Map<string, ModuleMapValue>;\nexport type ModuleMapValue = {\n moduleData: ModuleData;\n currentInstalledVersion: string;\n currentSelectedVersion: string;\n comboBoxVersionsModel: ComboBoxModel;\n};\nexport type ModulesVersionsMap = Map<string, ModuleVersionData>;\n"]}
@@ -608,6 +608,18 @@ Pill
608
608
  gap: var(--mer-spacing--xs);
609
609
  }
610
610
 
611
+ /* - - - - - - - - - - - - - - - - - -
612
+ Tab
613
+ - - - - - - - - - - - - - - - - - - */
614
+ .tab-full-width-buttons::part(tab-list block-start),
615
+ .tab-full-width-buttons::part(tab-list block-end) {
616
+ grid-auto-columns: 1fr;
617
+ }
618
+
619
+ .tab-full-width-buttons::part(tab block-start) {
620
+ justify-content: center;
621
+ }
622
+
611
623
  /*Gx Ide*/
612
624
  /*@container queries*/
613
625
  /* hiChar styles
@@ -30,7 +30,8 @@ export const convertItemsNodeListToFlattenedTreeViewModel = (itemsList, checkbox
30
30
  leaf: leaf,
31
31
  metadata: metaData,
32
32
  parts: item.parts,
33
- selected: item.selected
33
+ selected: item.selected,
34
+ order: item.order
34
35
  });
35
36
  if (item.nodes) {
36
37
  item.nodes.forEach(childNode => processNode(childNode));
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/helpers.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;IAClD,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4CAA4C,GAAG,CAC1D,SAAqB,EACrB,YAA0B,EACL,EAAE;IACvB,MAAM,+BAA+B,GAAwB,EAAE,CAAC;IAEhE,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,EAAE;;QACrC,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;YAC5B,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAA,CAAC;QACjC,MAAM,QAAQ,GACZ,YAAY,KAAK,KAAK;YACtB,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC5C,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,+BAA+B,CAAC,IAAI,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;YACtB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;SACzD;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,OAAO,+BAA+B,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,SAAqB,EACrB,YAA0B,EACL,EAAE;IACvB,MAAM,sBAAsB,GAAwB,EAAE,CAAC;IACvD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;QACvB,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;YAC5B,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAA,CAAC;QACjC,MAAM,QAAQ,GACZ,YAAY,KAAK,KAAK;YACtB,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC5C,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,SAAS,GAAG,WAAW,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,sBAAsB,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,QAAQ;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;YACtB,KAAK,EAAE,CAAC,IAAI;gBACV,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;gBAC3D,CAAC,CAAC,IAAI;YACR,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,IAAc,EAAmB,EAAE;IACnE,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAC;aACf;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,UAAsB,EAAE,EAAU;IACzD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,uBAAuB,GAAG,CAAC,SAAqB,EAAc,EAAE;IACpE,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAE,EAAE;;QACrC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,IAAI,MAAA,QAAQ,CAAC,KAAK,0CAAE,MAAM,EAAE;YAC1B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SACzD;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAqB,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE;;QACtC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,IAAI,MAAA,QAAQ,CAAC,KAAK,0CAAE,MAAM,EAAE;YAC1B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,SAAqB,EACrB,UAAoB,EACR,EAAE;IACd,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAqB,EACrB,UAAoB,EACR,EAAE;IACd,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAqB,EACrB,WAAqB,EACT,EAAE;IACd,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,IAAc,EAAE,EAAU;;IAC9C,uGAAuG;IACvG,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;QAClB,OAAO,EAAE,CAAC;KACX;IAED,qDAAqD;IACrD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,qFAAqF;gBACrF,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;aAC9B;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAiB,EACjB,GAAa,EACI,EAAE;IACnB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;QACpB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACJ;SACF;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAqB,EAAE;IAC1E,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,CACzB,QAAoB,EACpB,cAAwB,EAAE,EACP,EAAE;QACrB,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QAED,yCAAyC;QACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,mDAAmD;YACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3C,sCAAsC;YACtC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACxB,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,IAAI;oBAClB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,IAAI,EAAE,QAAQ;iBACf,CAAC;aACH;YAED,sEAAsE;YACtE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACxD,mEAAmE;gBACnE,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QAED,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,sCAAsC;IACtC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC","sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/helpers.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ItemNode, CheckboxType, ActiveNode } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath } from \"@genexus/mercury\";\n\nexport const ACTIVE_ITEM_DEFAULT_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"primary\"\n});\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: startImgSrc,\n endImgSrc: item.iconEnd,\n expanded: item.expanded,\n id: item.id.toString(),\n items: null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n selected: item.selected,\n order: item.order\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const startImgSrc =\n item.active && !item.iconStart\n ? ACTIVE_ITEM_DEFAULT_ICON\n : item.iconStart;\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const expanded = item.expanded;\n const iconStart = startImgSrc;\n const iconEnd = item.iconEnd;\n const metaData = JSON.stringify({\n versionType: item.type\n });\n const order = parseInt(item.id);\n itemsListTreeViewModel.push({\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n startImgSrc: iconStart,\n endImgSrc: iconEnd,\n expanded: expanded,\n id: item.id.toString(),\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf,\n metadata: metaData,\n parts: item.parts,\n order: order,\n selected: item.selected\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n\n/**\n * Recursively searches for the first node with the active=true property\n * @param nodes Array of nodes to search through\n * @returns An object with caption, iconStart, and path to the first active node found, or null if none is found\n */\nexport const findFirstActiveNode = (nodes: ItemNode[]): ActiveNode | null => {\n // Helper function that keeps track of the path during recursion\n const findActiveWithPath = (\n nodeList: ItemNode[],\n currentPath: string[] = []\n ): ActiveNode | null => {\n // Base case: if nodes is undefined or empty\n if (!nodeList || nodeList.length === 0) {\n return null;\n }\n\n // Iterate through each node in the array\n for (const node of nodeList) {\n // Create a new path that includes the current node\n const nodePath = [...currentPath, node.id];\n\n // Check if the current node is active\n if (node.active === true) {\n return {\n caption: node.name,\n iconStart: node.iconStart,\n path: nodePath\n };\n }\n\n // If the node has children, search through them with the updated path\n if (node.nodes && node.nodes.length > 0) {\n const result = findActiveWithPath(node.nodes, nodePath);\n // If we find an active node in this subtree, return it immediately\n if (result !== null) {\n return result;\n }\n }\n }\n\n // No active node found in any of the nodes\n return null;\n };\n\n // Start the search with an empty path\n return findActiveWithPath(nodes);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"select-kb-items.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/select-kb-items.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n this.loading = false;\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.loading = true;\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\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 <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"]}
1
+ {"version":3,"file":"select-kb-items.js","sourceRoot":"","sources":["../../../src/components/select-kb-items/select-kb-items.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACP,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,UAAU,EACV,+BAA+B,EAC/B,4CAA4C,EAC5C,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,kBAAkB;CACnB,CAAC;AAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC;IACrC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,eAAe,GAA0B,MAAM,CAAC;AACtD,MAAM,eAAe,GAA0B,MAAM,CAAC;AAEtD,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAQ7C,MAAM,OAAO,kBAAkB;;QAC7B,uDAAuB;QAEvB,oDAAuC;QACvC,+CAA8B,EAAE,EAAC;QACjC,2CAAgB,YAAY,CAC1B,gDAAgD,CACjD,EAAC;QACF,+CAAgC,EAAE,EAAC;QAEnC,uDAAyC;QAGzC,uDAA+C;QAoL/C,4CAAiB,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;QACH,CAAC,EAAC;QAEF,wDAA6B,KAAK,EAChC,CAAsD,EACtD,EAAE;YACF,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,uBAAA,IAAI,wCAAqB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,MAAA,CAAC;YAE1E,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC3C;QACH,CAAC,EAAC;QAEF,6CAAkB,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC5C;QACH,CAAC,EAAC;QAEF,iDAAsB,KAAK,EACzB,CAKE,EACF,EAAE;YACF,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAChC,IAAI,IAAqB,CAAC;gBAC1B,MAAM,UAAU,GAAG,uBAAA,IAAI,4CAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,uBAAA,IAAI,4CAAkB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;oBACjD,MAAM,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAChD,uBAAA,IAAI,4CAAkB,EACtB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;oBACF,MAAM,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;wBAChE,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBACH,IAAI,GAAG;wBACL,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;wBAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;wBAC1C,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;qBACzB,CAAC;iBACH;qBAAM;oBACL,IAAI,GAAG;wBACL,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;wBAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO;wBAC1C,SAAS,EAAE,uBAAA,IAAI,4CAAkB;qBAClC,CAAC;iBACH;gBACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;aACpC;QACH,CAAC,EAAC;QAEF,kDAAuB,CACrB,QAAyE,EACzE,EAAE;YACF,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,uBAAA,IAAI,4CAAkB,CAAC,CAAC;YACzD,CAAC,CAAC;QACJ,CAAC,EAAC;QAEF,+DAAoC,CAClC,KAAuC,EACvC,EAAE;YACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,CAAC,EAAC;QAEF,kDAAuB,GAAkB,EAAE;YACzC,OAAO,CACL,eACG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,CACL,cACE,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,iBAAiB,MAAM,CAAC,IAAI,EAAE,EACpC,OAAO,EAAE,uBAAA,IAAI,+CAAqB,MAAzB,IAAI,EAAsB,MAAM,CAAC,QAAQ,CAAC,EACnD,QAAQ,EAAE,IAAI,CAAC,OAAO,IAErB,MAAM,CAAC,IAAI,CACL,CACV,CAAC;YACJ,CAAC,CAAC,CACE,CACP,CAAC;QACJ,CAAC,EAAC;QAEF,2CAAgB,GAAgB,EAAE;;YAChC,OAAO,CACL,cAAQ,KAAK,EAAC,2GAA2G;gBACtH,uBAAA,IAAI,+CAAqB,MAAzB,IAAI,CAAuB;gBAC5B,WAAK,KAAK,EAAC,iBAAiB;oBACzB,IAAI,CAAC,cAAc,IAAI,CACtB,cACE,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,uBAAA,IAAI,yCAAe,IAE3B,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,CACV;oBACA,IAAI,CAAC,eAAe,IAAI,CACvB,cACE,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,uBAAA,IAAI,0CAAgB,EAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,MAAM,MAAK,CAAC,IAE3D,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,CACV,CACG,CACC,CACV,CAAC;QACJ,CAAC,EAAC;QAEF,yDAA8B,CAC5B,CAA2C,EAC3C,EAAE;YACF,MAAM,gBAAgB,GAAa,EAAE,CAAC;YACtC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,uBAAA,IAAI,wCAAqB,gBAAgB,MAAA,CAAC;YAC1C,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,gBAAgB,CAAC,uBAAA,IAAI,4CAAkB,CAAC,CAAC;aAC/C;YAED,uBAAA,IAAI,wCAAqB,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAA,CAAC;QACzE,CAAC,EAAC;QAEF,+DAAoC,KAAK,EAAE,gBAA0B,EAAE,EAAE;YACvE,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACvE,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YACtE,uBAAA,IAAI,uCAAa,MAAjB,IAAI,EAAc,gBAAgB,CAAC,CAAC;QACtC,CAAC,EAAC;QAEF,6DAAkC,KAAK,EAAE,gBAA0B,EAAE,EAAE;YACrE,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpE,uBAAA,IAAI,uCAAa,MAAjB,IAAI,EAAc,gBAAgB,CAAC,CAAC;QACtC,CAAC,EAAC;QAEF,0CAAe,CAAC,YAAwB,EAAE,EAAE;YAC1C,IAAI,CAAC,yBAAyB,GAAG,+BAA+B,CAC9D,YAAY,EACZ,IAAI,CAAC,YAAY,CAClB,CAAC;YAEF,IAAI,CAAC,0BAA0B;gBAC7B,4CAA4C,CAC1C,YAAY,EACZ,IAAI,CAAC,YAAY,CAClB,CAAC;QACN,CAAC,EAAC;QAEF,wDAA6B,KAAK,EAAE,KAA0B,EAAE,EAAE;YAChE,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAA+B,CAAC;YAC/D,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC;YAC9C,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,EAAE;gBACzC,MAAM,uBAAA,IAAI,4DAAkC,MAAtC,IAAI,EAAmC,uBAAA,IAAI,4CAAkB,CAAC,CAAC;gBACrE,MAAM,uBAAA,IAAI,0DAAgC,MAApC,IAAI,EAAiC,IAAI,CAAC,eAAe,CAAC,CAAC;aAClE;YACD,uBAAA,IAAI,uCAAa,MAAjB,IAAI,EAAc,uBAAA,IAAI,4CAAkB,CAAC,CAAC;QAC5C,CAAC,EAAC;QAEF,6DAAkC,CAChC,KAAiD,EACjD,EAAE;YACF,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC;QAC3E,CAAC,EAAC;QAEF,0DAA+B,GAAG,EAAE;;YAClC,MAAM,gBAAgB,GACpB,uBAAA,IAAI,4CAAkB,KAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,IAAI,CAAA,CAAC;YACtD,IAAI,gBAAgB,EAAE;gBACpB,uBAAA,IAAI,4CAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACpE;YAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;QACH,CAAC,EAAC;;+BA1WmC,EAAE;4BAKN,KAAK;0CAKqB,EAAE;uBAKjC,IAAI;qCAKwB,MAAM;yCAKJ,EAAE;kCAKtB,IAAI;;;;;6BAyBA,IAAI;;;6BAeG,EAAE;;yBAYV,EAAE;oCAKM,IAAI;8BAcT,KAAK;kCAKD,KAAK;;;IAhBrD,oBAAoB,CAAC,YAAwB;QAC3C,uBAAA,IAAI,uCAAa,MAAjB,IAAI,EAAc,YAAY,CAAC,CAAC;QAChC,8BAA8B;QAC9B,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAiBD,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,uBAAA,IAAI,wCAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAClD,uBAAA,IAAI,wCAAqB;YACvB,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,uBAAA,IAAI,4CAAkB,CAAC,IAAI,CAAC,IAAI,EAAE;YACrE,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE;SAC5C,MAAA,CAAC;QACF,IAAI,CAAC,YAAY;YACf,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,cAAc;gBACrB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3B,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,gBAAgB,CAAC,gBAAyB;QAC9C,IAAI,gBAAgB,EAAE;YACpB,uBAAA,IAAI,yCAAe,CAAC,OAAO,GAAG,IAAI,CAAC;SACpC;aAAM;YACL,uBAAA,IAAI,yCAAe,CAAC,OAAO,GAAG,KAAK,CAAC;SACrC;IACH,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,eAAe,CAAC,gBAA0B;QAC9C,uBAAuB;QACvB,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAAC,uBAAA,IAAI,4CAAkB,EAAE;YACnE,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,cAAc;QACd,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAAC,gBAAgB,EAAE;YAC7D,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,kBAAkB,CAAC,eAAyB;QAChD,qBAAqB;QACrB,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE;YACjE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,cAAc;QACd,uBAAA,IAAI,4CAAkB,CAAC,qBAAqB,CAAC,eAAe,EAAE;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAoMD,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9D,gBAAU,KAAK,EAAE,WAAW,GAAa;YACzC,oBACE,GAAG,EAAE,uBAAA,IAAI,wCAAc,EACvB,GAAG,EAAE,CAAC,EAA0B,EAAE,EAAE,CAClC,CAAC,uBAAA,IAAI,qCAAkB,EAA4B,MAAA,CAAC,GAExC;YAChB,eAAS,KAAK,EAAC,SAAS;gBACtB,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,gFAAgF;oBAEtF,WAAK,KAAK,EAAC,mBAAmB;wBAC5B,WAAK,KAAK,EAAC,oBAAoB;4BAC7B,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,wBAEhC;4BACR,6BACE,KAAK,EAAC,sCAAsC,EAC5C,EAAE,EAAC,WAAW,EACd,KAAK,EAAE,uBAAA,IAAI,4CAAkB,EAC7B,QAAQ,EAAE,uBAAA,IAAI,qDAA2B,EACzC,KAAK,EAAE,uBAAA,IAAI,4CAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,GACf,CACrB;wBAEL,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAC5D,WAAK,KAAK,EAAC,oBAAoB;4BAC7B,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,mBAAmB,wBAExC;4BACR,mBACE,KAAK,EAAC,mCAAmC,EACzC,EAAE,EAAC,mBAAmB,EACtB,YAAY,EAAE,+BAA+B,EAC7C,KAAK,EAAE,+BAA+B,EACtC,OAAO,EAAE,uBAAA,IAAI,0DAAgC,GAChC,CACX,CACP,CACG;oBAEN,WACE,KAAK,EAAE;4BACL,oBAAoB,EAAE,IAAI;4BAC1B,6BAA6B,EAAE,CAAC,IAAI,CAAC,kBAAkB;yBACxD;wBAED,eACE,KAAK,EAAC,OAAO,EACb,WAAW,EACT,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,wBAAwB,EAExD,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,uBAAA,IAAI,4DAAkC,EAC/C,cAAc,EAAC,gBAAgB,GACtB;wBACV,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,IAAI,CACjD,WAAK,KAAK,EAAC,aAAa;4BACtB,YACE,KAAK,EAAC,6BAA6B;gCAInC,gBACE,KAAK,EAAC,2BAA2B,EACjC,GAAG,EACD,IAAI,CAAC,cAAc,CAAC,SAAS;wCAC7B,wBAAwB,EAE1B,YAAY,EAAE,IAAI,GACR,CACP;4BACN,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,UAAU;4BACzC,cACE,KAAK,EAAC,mBAAmB,EACzB,OAAO,EAAE,uBAAA,IAAI,uDAA6B,IAEzC,IAAI,CAAC,cAAc,CAAC,OAAO,CACrB,CACL,CACP,CACG,CACC;gBAET,WAAK,KAAK,EAAC,iCAAiC,IACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,qBACE,WAAW,EAAE,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,KAAK,EAChD,WAAW,EAAE,uBAAA,IAAI,4CAAkB,CAAC,MAAM,CAAC,WAAW,EACtD,IAAI,SACW,CAClB,CAAC,CAAC,CAAC,CACF,2BACE,KAAK,EAAC,WAAW,EACjB,KAAK,EACH,IAAI,CAAC,qBAAqB,KAAK,MAAM;wBACnC,CAAC,CAAC,IAAI,CAAC,yBAAyB;wBAChC,CAAC,CAAC,IAAI,CAAC,0BAA0B,gBAGnC,IAAI,CAAC,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAExD,gBAAgB,EACd,IAAI,CAAC,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAE7D,iBAAiB,EAAE,uBAAA,IAAI,8CAAoB,EAC3C,oBAAoB,EAAE,uBAAA,IAAI,qDAA2B,EACrD,qBAAqB,EAAE,uBAAA,IAAI,sDAA4B,EACvD,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,UAAU,EAAC,SAAS,EACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,GAAG,EAAE,CAAC,EAA+B,EAAE,EAAE;wBACvC,uBAAA,IAAI,wCAAqB,EAAiC,MAAA,CAAC;oBAC7D,CAAC,GACoB,CACxB,CACG;gBACL,IAAI,CAAC,YAAY,IAAI,uBAAA,IAAI,wCAAc,MAAlB,IAAI,CAAgB,CAClC,CACL,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes,\n findFirstActiveNode\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nimport { ACTIVE_ITEM_DEFAULT_ICON } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the active version node caption and icon (if any)\n */\n @State() activeItemNode: ActiveNode;\n\n /**\n * Represents the selected nodes ids\n */\n @State() checkedNodesIds: string[] = [];\n\n /**\n * If true, the footer will be rendered\n */\n @State() renderFooter: boolean = false;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean;\n\n /**\n * Callback emitted when the user clicks on the \"Active item\"\n */\n @Prop() readonly activeItemCallback?: () => Promise<void>;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.\n */\n @Prop() readonly expandOnClick: boolean = true;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n /**\n * Used to define if the component must show the \"Toggle Checkboxes\" option or not\n */\n @Prop() readonly showToggleCheckboxes: boolean = true;\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n // Check and update activeItem\n this.activeItemNode = findFirstActiveNode(newItemsList);\n\n this.loading = false;\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Used to define if the component must show the \"Active item\" link or not\n */\n @Prop() readonly showActiveItemLink?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.loading = true;\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.toggleCheckboxes = this.showToggleCheckboxes;\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.renderFooter =\n this.dialogActions.length > 0 ||\n !!this.cancelCallback ||\n !!this.confirmCallback;\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n /**\n * Allow to update the checked items\n */\n @Method()\n async updateCheckedItems(checkedItemsIds: string[]) {\n // first clear checks\n this.#treeViewRenderEl.updateItemsProperties(this.checkedNodesIds, {\n checked: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(checkedItemsIds, {\n checked: true\n });\n this.checkedNodesIds = checkedItemsIds;\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n disabled={this.loading}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n disabled={this.loading || this.checkedNodesIds?.length === 0}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n #scrollIntoActiveVersionNode = () => {\n const doScrollIntoView =\n this.#treeViewRenderEl && this.activeItemNode?.path;\n if (doScrollIntoView) {\n this.#treeViewRenderEl.scrollIntoVisible(this.activeItemNode.path);\n }\n\n if (this.activeItemCallback) {\n this.activeItemCallback();\n }\n };\n\n render() {\n return (\n <Host class={{ \"widget\": true, \"has-footer\": this.renderFooter }}>\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 <section class=\"section\">\n <header\n part=\"header\"\n class=\"header control-header field-group spacing-body-block-start spacing-body-inline\"\n >\n <div class=\"header__first-row\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group dummy-control-block-size\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n {this.checkboxType !== \"none\" && this.showToggleCheckboxes && (\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"toggle-checkboxes\">\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox dummy-control-block-size\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n )}\n </div>\n\n <div\n class={{\n \"header__second-row\": true,\n \"header__second-row--one-row\": !this.showActiveItemLink\n }}\n >\n <ch-edit\n class=\"input\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n accessibleName=\"search pattern\"\n ></ch-edit>\n {this.activeItemNode && this.showActiveItemLink && (\n <div class=\"active-item\">\n <span\n class=\"active-item__icon-container\"\n // make this span the icon container, to prevent icon state changes when\n // interacting with div.active-item\n >\n <ch-image\n class=\"icon-md active-item__icon\"\n src={\n this.activeItemNode.iconStart ||\n ACTIVE_ITEM_DEFAULT_ICON\n }\n containerRef={null}\n ></ch-image>\n </span>\n {this.#_componentLocale.header.activeItem}\n <button\n class=\"active-item__link\"\n onClick={this.#scrollIntoActiveVersionNode}\n >\n {this.activeItemNode.caption}\n </button>\n </div>\n )}\n </div>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n {this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n expandOnClick={this.expandOnClick}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n )}\n </div>\n {this.renderFooter && this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n active?: boolean;\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n iconStart?: string;\n iconEnd?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n parts?: string;\n selected?: boolean;\n type?: ItemType;\n order?: number;\n};\n\nexport type ActiveNode = {\n caption: string;\n iconStart?: string;\n path: string[]; // for using the scrollIntoVisible method of the tree-view-render\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"]}
@@ -0,0 +1,44 @@
1
+ {
2
+ "componentName": "Team Dev Preview",
3
+ "placeholders": {
4
+ "commitMessage": "Message (required)"
5
+ },
6
+ "footer": {
7
+ "openFullDialog": "Open full dialog"
8
+ },
9
+ "buttons": {
10
+ "update": "Update",
11
+ "commit": "Commit",
12
+ "committing": "Committing...",
13
+ "updating": "Updating...",
14
+ "shareKBToServer": "Share KB to Server",
15
+ "createKBFromServer": "Create KB from Server",
16
+ "teamDev": "Team Development",
17
+ "reloadLocal": "Reload local changes",
18
+ "reloadRemote": "Reload remote changes",
19
+ "reconnect": "Reconnect",
20
+ "reloadingLocal": "Loading local changes...",
21
+ "reloadingRemote": "Loading remote changes..."
22
+ },
23
+ "captions": {
24
+ "remoteChanges": "Remote changes",
25
+ "localChanges": "Local changes"
26
+ },
27
+ "accessibleNames": {
28
+ "commitMessage": "Commit Message"
29
+ },
30
+ "emptyState": {
31
+ "noConnectedKBTitle": "Not connected to any server",
32
+ "noOpenKBDescription": "You can create a KB from server to get started",
33
+ "noConnectedKBDescription": "You can share your current KB to get started",
34
+ "frozenVersionTitle": "You are working on a frozen version",
35
+ "frozenVersionDescription": "No changes can be made while working on a frozen version",
36
+ "noConnectedGXServerTitle": "GeneXus Server connection interrupted",
37
+ "noConnectedGXServerDescription": "You may have been disconnected from the server or there was a network issue",
38
+ "noLocalChanges": "There are no local changes to display",
39
+ "noRemoteChanges": "There are no remote changes to display",
40
+ "about": "Learn more about",
41
+ "noLinkedVersionTitle": "You are working on an unlinked version",
42
+ "noLinkedVersionDescription": "Please share your version to a server to enable Team Development features"
43
+ }
44
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "componentName": "Team Dev Preview",
3
+ "placeholders": {
4
+ "commitMessage": "Message (required)"
5
+ },
6
+ "footer": {
7
+ "openFullDialog": "Open full dialog"
8
+ },
9
+ "buttons": {
10
+ "update": "Update",
11
+ "commit": "Commit",
12
+ "committing": "Committing...",
13
+ "updating": "Updating...",
14
+ "shareKBToServer": "Share KB to Server",
15
+ "createKBFromServer": "Create KB from Server",
16
+ "teamDev": "Team Development",
17
+ "reloadLocal": "Reload local changes",
18
+ "reloadRemote": "Reload remote changes",
19
+ "reconnect": "Reconnect",
20
+ "reloadingLocal": "Loading local changes...",
21
+ "reloadingRemote": "Loading remote changes..."
22
+ },
23
+ "captions": {
24
+ "remoteChanges": "Remote changes",
25
+ "localChanges": "Local changes"
26
+ },
27
+ "accessibleNames": {
28
+ "commitMessage": "Commit Message"
29
+ },
30
+ "emptyState": {
31
+ "noConnectedKBTitle": "Not connected to any server",
32
+ "noOpenKBDescription": "You can create a KB from server to get started",
33
+ "noConnectedKBDescription": "You can share your current KB to get started",
34
+ "frozenVersionTitle": "You are working on a frozen version",
35
+ "frozenVersionDescription": "No changes can be made while working on a frozen version",
36
+ "noConnectedGXServerTitle": "GeneXus Server connection interrupted",
37
+ "noConnectedGXServerDescription": "You may have been disconnected from the server or there was a network issue",
38
+ "noLocalChanges": "There are no local changes to display",
39
+ "noRemoteChanges": "There are no remote changes to display",
40
+ "about": "Learn more about",
41
+ "noLinkedVersionTitle": "You are working on an unlinked version",
42
+ "noLinkedVersionDescription": "Please share your version to a server to enable Team Development features"
43
+ }
44
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "componentName": "Team Dev Preview",
3
+ "placeholders": {
4
+ "commitMessage": "Message (required)"
5
+ },
6
+ "footer": {
7
+ "openFullDialog": "Open full dialog"
8
+ },
9
+ "buttons": {
10
+ "update": "Update",
11
+ "commit": "Commit",
12
+ "committing": "Committing...",
13
+ "updating": "Updating...",
14
+ "shareKBToServer": "Share KB to Server",
15
+ "createKBFromServer": "Create KB from Server",
16
+ "teamDev": "Team Development",
17
+ "reloadLocal": "Reload local changes",
18
+ "reloadRemote": "Reload remote changes",
19
+ "reconnect": "Reconnect",
20
+ "reloadingLocal": "Loading local changes...",
21
+ "reloadingRemote": "Loading remote changes..."
22
+ },
23
+ "captions": {
24
+ "remoteChanges": "Remote changes",
25
+ "localChanges": "Local changes"
26
+ },
27
+ "accessibleNames": {
28
+ "commitMessage": "Commit Message"
29
+ },
30
+ "emptyState": {
31
+ "noConnectedKBTitle": "Not connected to any server",
32
+ "noOpenKBDescription": "You can create a KB from server to get started",
33
+ "noConnectedKBDescription": "You can share your current KB to get started",
34
+ "frozenVersionTitle": "You are working on a frozen version",
35
+ "frozenVersionDescription": "No changes can be made while working on a frozen version",
36
+ "noConnectedGXServerTitle": "GeneXus Server connection interrupted",
37
+ "noConnectedGXServerDescription": "You may have been disconnected from the server or there was a network issue",
38
+ "noLocalChanges": "There are no local changes to display",
39
+ "noRemoteChanges": "There are no remote changes to display",
40
+ "about": "Learn more about",
41
+ "noLinkedVersionTitle": "You are working on an unlinked version",
42
+ "noLinkedVersionDescription": "Please share your version to a server to enable Team Development features"
43
+ }
44
+ }