@genexus/genexus-ide-ui 0.0.61 → 0.0.63

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 (411) hide show
  1. package/dist/cjs/{ch-tree-x_3.cjs.entry.js → ch-checkbox_4.cjs.entry.js} +277 -75
  2. package/dist/cjs/ch-grid_8.cjs.entry.js +1 -1
  3. package/dist/cjs/ch-next-data-modeling-render.cjs.entry.js +242 -0
  4. package/dist/cjs/{ch-next-data-modeling-item.cjs.entry.js → ch-next-data-modeling_2.cjs.entry.js} +20 -1
  5. package/dist/cjs/ch-tree-view-render-wrapper.cjs.entry.js +160 -0
  6. package/dist/cjs/{config-149ec5fe.js → config-c652329b.js} +5 -1
  7. package/dist/cjs/detect-click-outside-d18e5541.js +25 -0
  8. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  9. package/dist/cjs/{grid-be8c3413.js → grid-d12c16c7.js} +1 -0
  10. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +12 -7
  11. package/dist/cjs/{gxg-form-text.cjs.entry.js → gx-ide-container_4.cjs.entry.js} +238 -0
  12. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +11 -4
  13. package/dist/cjs/gx-ide-entity-selector_2.cjs.entry.js +18 -2
  14. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +54 -44
  15. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +40 -19
  16. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +18 -2
  17. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +10 -5
  18. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +14 -10
  19. package/dist/cjs/gx-ide-new-object.cjs.entry.js +12 -7
  20. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +21 -10
  21. package/dist/cjs/gx-ide-references.cjs.entry.js +21 -27
  22. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +11 -7
  23. package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +19 -0
  24. package/dist/cjs/gx-ide-switcher.cjs.entry.js +19 -0
  25. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +35 -8
  26. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +34 -16
  27. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +13 -5
  28. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +11 -4
  29. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +25 -16
  30. package/dist/cjs/gx-ide-template.cjs.entry.js +9 -4
  31. package/dist/cjs/gx-ide-test.cjs.entry.js +113 -121
  32. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +39 -29
  33. package/dist/cjs/gxg-button-group.cjs.entry.js +1 -1
  34. package/dist/cjs/gxg-color-picker.cjs.entry.js +2 -2
  35. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +1 -1
  36. package/dist/cjs/gxg-form-radio-group.cjs.entry.js +6 -1
  37. package/dist/cjs/gxg-form-textarea.cjs.entry.js +24 -2
  38. package/dist/cjs/gxg-menu-slim.cjs.entry.js +2 -23
  39. package/dist/cjs/gxg-pill.cjs.entry.js +2 -2
  40. package/dist/cjs/gxg-pills.cjs.entry.js +34 -0
  41. package/dist/cjs/gxg-title-editable.cjs.entry.js +116 -0
  42. package/dist/cjs/{gxg-tree_2.cjs.entry.js → gxg-tree-item.cjs.entry.js} +1 -213
  43. package/dist/cjs/gxg-tree-view.cjs.entry.js +165 -0
  44. package/dist/cjs/gxg-tree.cjs.entry.js +218 -0
  45. package/dist/cjs/loader.cjs.js +1 -1
  46. package/dist/collection/collection-manifest.json +25 -18
  47. package/dist/collection/common/config.js +5 -1
  48. package/dist/collection/common/grid.js +1 -0
  49. package/dist/collection/common/render-list-item.js +12 -0
  50. package/dist/collection/components/{container → _helpers/container}/container.css +33 -1
  51. package/dist/collection/components/{container → _helpers/container}/container.js +159 -6
  52. package/dist/collection/components/{entity-selector → _helpers/entity-selector}/entity-selector.js +5 -5
  53. package/dist/collection/components/{list-selector → _helpers/list-selector}/list-selector-item/list-selector-item.css +11 -3
  54. package/dist/collection/components/{list-selector → _helpers/list-selector}/list-selector-item/list-selector-item.js +36 -2
  55. package/dist/collection/components/{list-selector → _helpers/list-selector}/list-selector.js +2 -2
  56. package/dist/collection/components/_helpers/switcher/switch-panel/switch-panel.css +3 -0
  57. package/dist/collection/components/_helpers/switcher/switch-panel/switch-panel.js +18 -0
  58. package/dist/collection/components/_helpers/switcher/switcher.css +3 -0
  59. package/dist/collection/components/_helpers/switcher/switcher.js +18 -0
  60. package/dist/collection/components/_helpers/title/title.css +42 -0
  61. package/dist/collection/components/_helpers/title/title.js +156 -0
  62. package/dist/collection/components/{application-declaration/bpm-app-declaration.css → _starting-template/template.css} +18 -11
  63. package/dist/collection/components/{_template → _starting-template}/template.js +9 -4
  64. package/dist/collection/components/_test/test.css +5 -0
  65. package/dist/collection/components/_test/test.js +128 -212
  66. package/dist/collection/components/{team-dev-commit/team-dev-commit.css → bpm-application-declaration/bpm-app-declaration.css} +33 -37
  67. package/dist/collection/components/{application-declaration → bpm-application-declaration}/bpm-app-declaration.js +11 -6
  68. package/dist/collection/components/{application-declaration → bpm-application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +1 -1
  69. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +24 -1
  70. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +11 -4
  71. package/dist/collection/components/create-kb-from-server/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +2 -1
  72. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
  73. package/dist/collection/components/kb-manager-export/helpers.js +10 -26
  74. package/dist/collection/components/kb-manager-export/kb-manager-export.css +50 -18
  75. package/dist/collection/components/kb-manager-export/kb-manager-export.js +65 -23
  76. package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +2 -0
  77. package/dist/collection/components/kb-manager-import/helpers.js +2 -2
  78. package/dist/collection/components/kb-manager-import/kb-manager-import.css +26 -6
  79. package/dist/collection/components/kb-manager-import/kb-manager-import.js +36 -15
  80. package/dist/collection/components/new-environment/new-environment.css +36 -17
  81. package/dist/collection/components/new-environment/new-environment.js +10 -5
  82. package/dist/collection/components/new-kb/new-kb.css +18 -5
  83. package/dist/collection/components/new-kb/new-kb.js +13 -9
  84. package/dist/collection/components/new-object/new-object.css +60 -11
  85. package/dist/collection/components/new-object/new-object.js +24 -5
  86. package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +1 -1
  87. package/dist/collection/components/object-selector/object-selector.css +70 -26
  88. package/dist/collection/components/object-selector/object-selector.js +20 -9
  89. package/dist/collection/components/references/references.css +25 -13
  90. package/dist/collection/components/references/references.js +20 -26
  91. package/dist/collection/components/share-kb/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +2 -1
  92. package/dist/collection/components/share-kb/share-kb.css +34 -10
  93. package/dist/collection/components/share-kb/share-kb.js +10 -6
  94. package/dist/collection/components/{team-dev-commit → team-dev/commit}/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  95. package/dist/collection/components/team-dev/commit/team-dev-commit.css +264 -0
  96. package/dist/collection/components/{team-dev-commit → team-dev/commit}/team-dev-commit.js +44 -16
  97. package/dist/collection/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.en.json +1 -0
  98. package/dist/collection/components/team-dev/select-recent-comment/helpers.js +7 -0
  99. package/dist/collection/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/team-dev-select-recent-comment.css +20 -2
  100. package/dist/collection/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/team-dev-select-recent-comment.js +33 -16
  101. package/dist/collection/components/{team-dev-update → team-dev/update}/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +1 -1
  102. package/dist/collection/components/{team-dev-update → team-dev/update}/team-dev-update.css +46 -41
  103. package/dist/collection/components/{team-dev-update → team-dev/update}/team-dev-update.js +29 -20
  104. package/dist/collection/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/team-dev-update-partial-selection.css +22 -23
  105. package/dist/collection/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/team-dev-update-partial-selection.js +30 -5
  106. package/dist/collection/components/{team-dev-update-to-revision → team-dev/update-to-revision}/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  107. package/dist/collection/components/{team-dev-update-to-revision → team-dev/update-to-revision}/team-dev-update-to-revision.css +18 -7
  108. package/dist/collection/components/{team-dev-update-to-revision → team-dev/update-to-revision}/team-dev-update-to-revision.js +28 -4
  109. package/dist/collection/components/ww-images/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +4 -2
  110. package/dist/collection/components/ww-images/ww-images.css +103 -61
  111. package/dist/collection/components/ww-images/ww-images.js +55 -28
  112. package/dist/collection/pages/assets/common.js +2 -2
  113. package/dist/components/button-group.js +1 -1
  114. package/dist/components/ch-next-data-modeling-item.js +1 -457
  115. package/dist/components/ch-next-data-modeling-render.js +295 -0
  116. package/dist/components/ch-next-data-modeling.js +1 -27
  117. package/dist/components/ch-tree-view-item.js +6 -0
  118. package/dist/components/ch-tree-view-render-wrapper.js +224 -0
  119. package/dist/components/ch-tree-view-render.js +6 -0
  120. package/dist/components/ch-tree-view.js +6 -0
  121. package/dist/components/combo-box.js +1 -1
  122. package/dist/components/config.js +5 -1
  123. package/dist/components/container.js +61 -9
  124. package/dist/components/date-picker.js +19 -2
  125. package/dist/components/detect-click-outside.js +23 -0
  126. package/dist/components/form-radio-group.js +7 -1
  127. package/dist/components/form-textarea.js +27 -3
  128. package/dist/components/grid.js +1 -0
  129. package/dist/components/gx-ide-bpm-app-declaration.js +52 -41
  130. package/dist/components/gx-ide-create-kb-from-server.js +28 -15
  131. package/dist/components/gx-ide-kb-manager-export.js +90 -74
  132. package/dist/components/gx-ide-kb-manager-import.js +73 -40
  133. package/dist/components/gx-ide-new-environment.js +21 -10
  134. package/dist/components/gx-ide-new-kb.js +24 -14
  135. package/dist/components/gx-ide-new-object.js +24 -13
  136. package/dist/components/gx-ide-object-selector.js +55 -38
  137. package/dist/components/gx-ide-references.js +54 -48
  138. package/dist/components/gx-ide-share-kb.js +27 -17
  139. package/dist/components/gx-ide-status-buttons2.js +1 -1
  140. package/dist/components/gx-ide-switch-panel.d.ts +11 -0
  141. package/dist/components/gx-ide-switch-panel.js +33 -0
  142. package/dist/components/gx-ide-switcher.d.ts +11 -0
  143. package/dist/components/gx-ide-switcher.js +33 -0
  144. package/dist/components/gx-ide-team-dev-commit.js +64 -30
  145. package/dist/components/gx-ide-team-dev-select-recent-comment.js +51 -45
  146. package/dist/components/gx-ide-team-dev-update-partial-selection.js +52 -32
  147. package/dist/components/gx-ide-team-dev-update-to-revision.js +24 -11
  148. package/dist/components/gx-ide-team-dev-update.js +67 -40
  149. package/dist/components/gx-ide-template.js +20 -9
  150. package/dist/components/gx-ide-test.js +126 -159
  151. package/dist/components/gx-ide-title.d.ts +11 -0
  152. package/dist/components/gx-ide-title.js +6 -0
  153. package/dist/components/gx-ide-top-bar.js +1 -1
  154. package/dist/components/gx-ide-ww-images.js +74 -58
  155. package/dist/components/gxg-color-picker.js +2 -2
  156. package/dist/components/gxg-container.js +251 -1
  157. package/dist/components/gxg-grid2.js +1 -1
  158. package/dist/components/gxg-menu-slim-list.js +1 -1
  159. package/dist/components/gxg-menu-slim.js +1 -22
  160. package/dist/components/gxg-pill.js +2 -2
  161. package/dist/components/gxg-pills.js +50 -0
  162. package/dist/components/gxg-title-editable.js +156 -0
  163. package/dist/components/gxg-title.js +1 -1
  164. package/dist/components/gxg-tree-item.js +614 -1
  165. package/dist/components/gxg-tree-view.js +2 -2
  166. package/dist/components/gxg-tree.js +236 -1
  167. package/dist/components/ide-loader.js +1 -1
  168. package/dist/components/index.d.ts +17 -14
  169. package/dist/components/index.js +10 -3
  170. package/dist/components/list-selector-item.js +20 -3
  171. package/dist/components/list-selector.js +1 -1
  172. package/dist/components/next-data-modeling-item.js +466 -0
  173. package/dist/{esm/ch-next-data-modeling.entry.js → components/next-data-modeling.js} +21 -7
  174. package/dist/components/title.js +32 -37
  175. package/dist/{esm/gxg-title.entry.js → components/title2.js} +26 -8
  176. package/dist/components/{tree-x-list-item.js → tree-view-item.js} +9 -9
  177. package/dist/components/{ch-test-tree-x.js → tree-view-render.js} +168 -28
  178. package/dist/components/tree-view.js +410 -440
  179. package/dist/components/tree-view2.js +226 -0
  180. package/dist/esm/{ch-tree-x_3.entry.js → ch-checkbox_4.entry.js} +275 -74
  181. package/dist/esm/ch-grid_8.entry.js +1 -1
  182. package/dist/esm/ch-next-data-modeling-render.entry.js +238 -0
  183. package/dist/esm/{ch-next-data-modeling-item.entry.js → ch-next-data-modeling_2.entry.js} +21 -3
  184. package/dist/esm/ch-tree-view-render-wrapper.entry.js +156 -0
  185. package/dist/esm/{config-9b4321f9.js → config-ee66bdf4.js} +5 -1
  186. package/dist/esm/detect-click-outside-16ce8235.js +23 -0
  187. package/dist/esm/genexus-ide-ui.js +1 -1
  188. package/dist/esm/{grid-1354bf8f.js → grid-9988c857.js} +1 -0
  189. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +12 -7
  190. package/dist/esm/{gxg-form-text.entry.js → gx-ide-container_4.entry.js} +237 -2
  191. package/dist/esm/gx-ide-create-kb-from-server.entry.js +11 -4
  192. package/dist/esm/gx-ide-entity-selector_2.entry.js +18 -2
  193. package/dist/esm/gx-ide-kb-manager-export.entry.js +54 -44
  194. package/dist/esm/gx-ide-kb-manager-import.entry.js +40 -19
  195. package/dist/esm/gx-ide-list-selector_2.entry.js +18 -2
  196. package/dist/esm/gx-ide-new-environment.entry.js +10 -5
  197. package/dist/esm/gx-ide-new-kb.entry.js +14 -10
  198. package/dist/esm/gx-ide-new-object.entry.js +12 -7
  199. package/dist/esm/gx-ide-object-selector.entry.js +21 -10
  200. package/dist/esm/gx-ide-references.entry.js +21 -27
  201. package/dist/esm/gx-ide-share-kb.entry.js +11 -7
  202. package/dist/esm/gx-ide-switch-panel.entry.js +15 -0
  203. package/dist/esm/gx-ide-switcher.entry.js +15 -0
  204. package/dist/esm/gx-ide-team-dev-commit.entry.js +35 -8
  205. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +35 -17
  206. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +13 -5
  207. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +11 -4
  208. package/dist/esm/gx-ide-team-dev-update.entry.js +25 -16
  209. package/dist/esm/gx-ide-template.entry.js +9 -4
  210. package/dist/esm/gx-ide-test.entry.js +114 -122
  211. package/dist/esm/gx-ide-ww-images.entry.js +39 -29
  212. package/dist/esm/gxg-button-group.entry.js +1 -1
  213. package/dist/esm/gxg-color-picker.entry.js +2 -2
  214. package/dist/esm/gxg-combo-box_2.entry.js +1 -1
  215. package/dist/esm/gxg-form-radio-group.entry.js +6 -1
  216. package/dist/esm/gxg-form-textarea.entry.js +24 -2
  217. package/dist/esm/gxg-menu-slim.entry.js +1 -22
  218. package/dist/esm/gxg-pill.entry.js +2 -2
  219. package/dist/esm/gxg-pills.entry.js +30 -0
  220. package/dist/esm/gxg-title-editable.entry.js +112 -0
  221. package/dist/{components/gxg-tree-item2.js → esm/gxg-tree-item.entry.js} +10 -80
  222. package/dist/esm/gxg-tree-view.entry.js +161 -0
  223. package/dist/{components/gxg-tree2.js → esm/gxg-tree.entry.js} +8 -32
  224. package/dist/esm/loader.js +1 -1
  225. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -4
  226. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  227. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +1 -1
  228. package/dist/genexus-ide-ui/gx-ide-assets/create-kb-from-server/langs/create-kb-from-server.lang.en.json +2 -1
  229. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +1 -0
  230. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +2 -0
  231. package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +1 -1
  232. package/dist/genexus-ide-ui/gx-ide-assets/share-kb/langs/share-kb.lang.en.json +2 -1
  233. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  234. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.en.json +1 -0
  235. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.en.json +1 -1
  236. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  237. package/dist/genexus-ide-ui/gx-ide-assets/ww-images/langs/ww-images.lang.en.json +4 -2
  238. package/dist/genexus-ide-ui/icon-assets/gemini-tools/edit.svg +1 -1
  239. package/dist/genexus-ide-ui/p-0f1388e1.entry.js +1 -0
  240. package/dist/genexus-ide-ui/p-13177896.entry.js +1 -0
  241. package/dist/genexus-ide-ui/p-19fef562.entry.js +1 -0
  242. package/dist/genexus-ide-ui/p-1b51da5e.entry.js +1 -0
  243. package/dist/genexus-ide-ui/p-25aa052f.js +1 -0
  244. package/dist/genexus-ide-ui/p-2781b92a.entry.js +1 -0
  245. package/dist/genexus-ide-ui/p-283afc3b.entry.js +1 -0
  246. package/dist/genexus-ide-ui/p-2c17e71d.entry.js +1 -0
  247. package/dist/genexus-ide-ui/p-2fbab2a9.js +1 -0
  248. package/dist/genexus-ide-ui/p-38c18db5.js +1 -0
  249. package/dist/genexus-ide-ui/p-40a57a36.entry.js +1 -0
  250. package/dist/genexus-ide-ui/p-42209f9f.entry.js +1 -0
  251. package/dist/genexus-ide-ui/p-4d506c74.entry.js +1 -0
  252. package/dist/genexus-ide-ui/p-527ace08.entry.js +1 -0
  253. package/dist/genexus-ide-ui/{p-a94dd4c1.entry.js → p-56935fba.entry.js} +1 -1
  254. package/dist/genexus-ide-ui/p-5cc7c201.entry.js +1 -0
  255. package/dist/genexus-ide-ui/p-606fee7b.entry.js +1 -0
  256. package/dist/genexus-ide-ui/p-636d02fa.entry.js +1 -0
  257. package/dist/genexus-ide-ui/p-68ec655f.entry.js +1 -0
  258. package/dist/genexus-ide-ui/p-71b14079.entry.js +1 -0
  259. package/dist/genexus-ide-ui/p-780caf92.entry.js +1 -0
  260. package/dist/genexus-ide-ui/p-7b63be93.entry.js +1 -0
  261. package/dist/genexus-ide-ui/p-7c44a3c8.entry.js +1 -0
  262. package/dist/genexus-ide-ui/p-8a29aa0e.entry.js +1 -0
  263. package/dist/genexus-ide-ui/p-8a7c4561.entry.js +1 -0
  264. package/dist/genexus-ide-ui/p-9380b713.entry.js +1 -0
  265. package/dist/genexus-ide-ui/p-a2cb0e6b.entry.js +1 -0
  266. package/dist/genexus-ide-ui/p-a9c8b373.entry.js +1 -0
  267. package/dist/genexus-ide-ui/p-aacec189.entry.js +1 -0
  268. package/dist/genexus-ide-ui/{p-178545b2.entry.js → p-abfc0ad8.entry.js} +1 -1
  269. package/dist/genexus-ide-ui/p-b0cb9690.entry.js +1 -0
  270. package/dist/genexus-ide-ui/p-b819706e.entry.js +1 -0
  271. package/dist/genexus-ide-ui/p-bacd879c.entry.js +1 -0
  272. package/dist/genexus-ide-ui/{p-9c9a28b4.entry.js → p-c6b514cb.entry.js} +1 -1
  273. package/dist/genexus-ide-ui/p-d9a5b3d6.entry.js +1 -0
  274. package/dist/genexus-ide-ui/p-df02f70a.entry.js +1 -0
  275. package/dist/genexus-ide-ui/p-df744a68.entry.js +1 -0
  276. package/dist/genexus-ide-ui/p-f3837d78.entry.js +1 -0
  277. package/dist/genexus-ide-ui/p-f69d8c9f.entry.js +1 -0
  278. package/dist/genexus-ide-ui/p-f7aa606a.entry.js +1 -0
  279. package/dist/genexus-ide-ui/p-fbb1cd20.entry.js +1 -0
  280. package/dist/genexus-ide-ui/p-fc6b970d.entry.js +1 -0
  281. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/next/data-modeling-render/next-data-modeling-render.css +3 -0
  282. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/tree-view/tree-view-render.css +3 -0
  283. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-view/tree-view-render-wrapper.css +0 -0
  284. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view/tree-view.css +45 -0
  285. package/dist/node_modules/@genexus/gemini/dist/collection/components/button-group/button-group.css +2 -2
  286. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +3 -0
  287. package/dist/node_modules/@genexus/gemini/dist/collection/components/date-picker/date-picker.css +9 -0
  288. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-radio-group/form-radio-group.css +4 -0
  289. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +28 -0
  290. package/dist/node_modules/@genexus/gemini/dist/collection/components/grid/gxg-grid.css +6 -3
  291. package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pills.css +9 -0
  292. package/dist/node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css +88 -0
  293. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-item/gxg-tree-item.css +1 -1
  294. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +88 -90
  295. package/dist/types/common/config.d.ts +4 -0
  296. package/dist/types/common/grid.d.ts +1 -0
  297. package/dist/types/common/helpers.d.ts +2 -2
  298. package/dist/types/common/render-list-item.d.ts +2 -0
  299. package/dist/types/components/{container → _helpers/container}/container.d.ts +34 -0
  300. package/dist/types/components/{entity-selector → _helpers/entity-selector}/entity-selector.d.ts +3 -3
  301. package/dist/types/components/{list-selector → _helpers/list-selector}/list-selector-item/list-selector-item.d.ts +8 -1
  302. package/dist/types/components/{list-selector → _helpers/list-selector}/list-selector.d.ts +3 -3
  303. package/dist/types/components/{status-buttons → _helpers/status-buttons}/gx-ide-status-buttons.d.ts +1 -1
  304. package/dist/types/components/_helpers/switcher/switch-panel/switch-panel.d.ts +3 -0
  305. package/dist/types/components/_helpers/switcher/switcher.d.ts +3 -0
  306. package/dist/types/components/_helpers/title/title.d.ts +34 -0
  307. package/dist/types/components/{_template → _starting-template}/template.d.ts +2 -1
  308. package/dist/types/components/_test/test.d.ts +8 -33
  309. package/dist/types/components/{application-declaration → bpm-application-declaration}/bpm-app-declaration.d.ts +2 -1
  310. package/dist/types/components/create-kb-from-server/create-kb-from-server.d.ts +3 -1
  311. package/dist/types/components/kb-manager-export/helpers.d.ts +4 -4
  312. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +16 -5
  313. package/dist/types/components/kb-manager-import/helpers.d.ts +3 -3
  314. package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +8 -7
  315. package/dist/types/components/new-environment/new-environment.d.ts +2 -1
  316. package/dist/types/components/new-kb/new-kb.d.ts +2 -1
  317. package/dist/types/components/new-object/new-object.d.ts +6 -0
  318. package/dist/types/components/object-selector/object-selector.d.ts +2 -1
  319. package/dist/types/components/references/helpers.d.ts +2 -2
  320. package/dist/types/components/references/references.d.ts +6 -6
  321. package/dist/types/components/share-kb/share-kb.d.ts +2 -1
  322. package/dist/types/components/{team-dev-commit → team-dev/commit}/team-dev-commit.d.ts +6 -3
  323. package/dist/types/components/team-dev/select-recent-comment/helpers.d.ts +2 -0
  324. package/dist/types/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/team-dev-select-recent-comment.d.ts +7 -2
  325. package/dist/types/components/{team-dev-update → team-dev/update}/team-dev-update.d.ts +5 -4
  326. package/dist/types/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/team-dev-update-partial-selection.d.ts +7 -1
  327. package/dist/types/components/{team-dev-update-to-revision → team-dev/update-to-revision}/team-dev-update-to-revision.d.ts +7 -1
  328. package/dist/types/components/ww-images/ww-images.d.ts +9 -6
  329. package/dist/types/components.d.ts +185 -65
  330. package/package.json +3 -3
  331. package/dist/cjs/ch-checkbox.cjs.entry.js +0 -93
  332. package/dist/cjs/ch-next-data-modeling.cjs.entry.js +0 -19
  333. package/dist/cjs/ch-test-tree-x.cjs.entry.js +0 -458
  334. package/dist/cjs/gx-ide-container.cjs.entry.js +0 -132
  335. package/dist/cjs/gxg-title.cjs.entry.js +0 -51
  336. package/dist/collection/components/_template/template.css +0 -151
  337. package/dist/components/ch-tree-x-list-item.js +0 -6
  338. package/dist/components/ch-tree-x.js +0 -6
  339. package/dist/components/container2.js +0 -253
  340. package/dist/components/tree-x.js +0 -504
  341. package/dist/esm/ch-checkbox.entry.js +0 -89
  342. package/dist/esm/ch-test-tree-x.entry.js +0 -454
  343. package/dist/esm/gx-ide-container.entry.js +0 -128
  344. package/dist/esm/gxg-tree_2.entry.js +0 -757
  345. package/dist/genexus-ide-ui/p-024df897.entry.js +0 -1
  346. package/dist/genexus-ide-ui/p-0341fbab.entry.js +0 -1
  347. package/dist/genexus-ide-ui/p-092ccacd.entry.js +0 -1
  348. package/dist/genexus-ide-ui/p-13a5bc23.entry.js +0 -1
  349. package/dist/genexus-ide-ui/p-163a93a4.entry.js +0 -1
  350. package/dist/genexus-ide-ui/p-1ad68b23.entry.js +0 -3
  351. package/dist/genexus-ide-ui/p-1b23aee7.entry.js +0 -1
  352. package/dist/genexus-ide-ui/p-2142874f.entry.js +0 -1
  353. package/dist/genexus-ide-ui/p-2b7d4cca.entry.js +0 -1
  354. package/dist/genexus-ide-ui/p-481312bc.entry.js +0 -1
  355. package/dist/genexus-ide-ui/p-4e601007.entry.js +0 -1
  356. package/dist/genexus-ide-ui/p-53e5a04f.entry.js +0 -1
  357. package/dist/genexus-ide-ui/p-5755f985.entry.js +0 -1
  358. package/dist/genexus-ide-ui/p-734d3baa.entry.js +0 -1
  359. package/dist/genexus-ide-ui/p-9457280f.js +0 -1
  360. package/dist/genexus-ide-ui/p-97d634d5.entry.js +0 -1
  361. package/dist/genexus-ide-ui/p-9beeb9c5.entry.js +0 -1
  362. package/dist/genexus-ide-ui/p-9e530c7d.entry.js +0 -1
  363. package/dist/genexus-ide-ui/p-a3171fdf.entry.js +0 -1
  364. package/dist/genexus-ide-ui/p-aaa7e647.entry.js +0 -1
  365. package/dist/genexus-ide-ui/p-ac3b8e90.entry.js +0 -1
  366. package/dist/genexus-ide-ui/p-ad5040e4.entry.js +0 -1
  367. package/dist/genexus-ide-ui/p-b2ea372b.entry.js +0 -1
  368. package/dist/genexus-ide-ui/p-b685ffba.entry.js +0 -1
  369. package/dist/genexus-ide-ui/p-c6a7b93c.js +0 -1
  370. package/dist/genexus-ide-ui/p-c7e11c6b.entry.js +0 -1
  371. package/dist/genexus-ide-ui/p-cd00ba19.entry.js +0 -1
  372. package/dist/genexus-ide-ui/p-d04d634e.entry.js +0 -1
  373. package/dist/genexus-ide-ui/p-d3d14461.entry.js +0 -1
  374. package/dist/genexus-ide-ui/p-d8096d40.entry.js +0 -1
  375. package/dist/genexus-ide-ui/p-de28d44c.entry.js +0 -1
  376. package/dist/genexus-ide-ui/p-f16b53ea.entry.js +0 -1
  377. package/dist/genexus-ide-ui/p-f5ef55c5.entry.js +0 -1
  378. package/dist/genexus-ide-ui/p-f83093aa.entry.js +0 -1
  379. package/dist/genexus-ide-ui/p-ffb82b40.entry.js +0 -1
  380. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -3
  381. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-x/tree-x.css +0 -45
  382. /package/dist/collection/components/{directory-selector → _helpers/directory-selector}/directory-selector.css +0 -0
  383. /package/dist/collection/components/{directory-selector → _helpers/directory-selector}/directory-selector.js +0 -0
  384. /package/dist/collection/components/{entity-selector → _helpers/entity-selector}/entity-selector.css +0 -0
  385. /package/dist/collection/components/{list-selector → _helpers/list-selector}/list-selector.css +0 -0
  386. /package/dist/collection/components/{status-buttons → _helpers/status-buttons}/gx-ide-status-buttons.css +0 -0
  387. /package/dist/collection/components/{status-buttons → _helpers/status-buttons}/gx-ide-status-buttons.js +0 -0
  388. /package/dist/collection/components/{top-bar → _helpers/top-bar}/top-bar.css +0 -0
  389. /package/dist/collection/components/{top-bar → _helpers/top-bar}/top-bar.js +0 -0
  390. /package/dist/collection/components/{_template → _starting-template}/gx-ide-assets/template/langs/template.lang.en.json +0 -0
  391. /package/dist/collection/components/{_template → _starting-template}/gx-ide-assets/template/langs/template.lang.ja.json +0 -0
  392. /package/dist/collection/components/{_template → _starting-template}/gx-ide-assets/template/langs/template.lang.zh.json +0 -0
  393. /package/dist/collection/components/{application-declaration → bpm-application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +0 -0
  394. /package/dist/collection/components/{application-declaration → bpm-application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +0 -0
  395. /package/dist/collection/components/{application-declaration → bpm-application-declaration}/helpers.js +0 -0
  396. /package/dist/collection/components/{team-dev-commit → team-dev/commit}/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +0 -0
  397. /package/dist/collection/components/{team-dev-commit → team-dev/commit}/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +0 -0
  398. /package/dist/collection/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.ja.json +0 -0
  399. /package/dist/collection/components/{team-dev-select-recent-comment → team-dev/select-recent-comment}/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.zh.json +0 -0
  400. /package/dist/collection/components/{team-dev-update → team-dev/update}/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +0 -0
  401. /package/dist/collection/components/{team-dev-update → team-dev/update}/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +0 -0
  402. /package/dist/collection/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +0 -0
  403. /package/dist/collection/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.ja.json +0 -0
  404. /package/dist/collection/components/{team-dev-update-partial-selection → team-dev/update-partial-selection}/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json +0 -0
  405. /package/dist/collection/components/{team-dev-update-to-revision → team-dev/update-to-revision}/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.ja.json +0 -0
  406. /package/dist/collection/components/{team-dev-update-to-revision → team-dev/update-to-revision}/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json +0 -0
  407. /package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/{tree-x-list-item/tree-x-list-item.css → tree-view-item/tree-view-item.css} +0 -0
  408. /package/dist/node_modules/@genexus/gemini/dist/collection/components/{pill → pills}/pill.css +0 -0
  409. /package/dist/types/components/{directory-selector → _helpers/directory-selector}/directory-selector.d.ts +0 -0
  410. /package/dist/types/components/{top-bar → _helpers/top-bar}/top-bar.d.ts +0 -0
  411. /package/dist/types/components/{application-declaration → bpm-application-declaration}/helpers.d.ts +0 -0
@@ -1,347 +1,293 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, getAssetPath, h, forceUpdate } from '@stencil/core/internal/client';
2
- import { d as defineCustomElement$3 } from './checkbox.js';
3
- import { d as defineCustomElement$2 } from './tree-x.js';
4
- import { d as defineCustomElement$1 } from './tree-x-list-item.js';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { f as focusComposedPath, m as mouseEventModifierKey } from './helpers.js';
5
3
 
6
- const resolveImgPath = (iconAssetsPath, img) => `${iconAssetsPath}/${img}.svg`;
4
+ const scrollToEdge = (event, container, scrollSpeed, scrollThreshold) => {
5
+ const mousePositionY = event.clientY - container.getBoundingClientRect().top;
6
+ const containerHeight = container.clientHeight;
7
+ const mouseAtTheTop = mousePositionY <= scrollThreshold;
8
+ const mouseAtTheBottom = mousePositionY > containerHeight - scrollThreshold;
9
+ if (mouseAtTheTop || mouseAtTheBottom) {
10
+ const scrollAmount = mouseAtTheTop
11
+ ? mousePositionY - scrollThreshold
12
+ : mousePositionY - (containerHeight - scrollThreshold);
13
+ // Adjust container scroll position
14
+ container.scrollTop += scrollAmount / scrollSpeed;
15
+ }
16
+ };
7
17
 
8
- const treeViewCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width, 6px)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --gray-04);cursor:pointer}gxg-tree-view{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--color-on-background);display:contents}gxg-tree-view ch-tree-x .ch-tree-x-container{padding:var(--spacing-comp-01)}.tree-view{}.tree-view::-webkit-scrollbar{width:var(--gxg-scrollbar-width, 6px)}.tree-view::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background, --gray-02);border-radius:var(--gxg-scrollbar-track-border-radius, 10px)}.tree-view::-webkit-scrollbar-thumb{background:var(--gxg-scrollbar-track-thumb-background, --gray-05);border-radius:var(--gxg-scrollbar-track-thumb-radius, 10px)}.tree-view::-webkit-scrollbar-thumb:hover{background:var(--gxg-scrollbar-track-thumb-hover-background, --gray-04);cursor:pointer}gxg-tree-view[position-relative] ch-tree-x .ch-tree-x-container{position:relative;width:100%}gxg-tree-view[no-padding] ch-tree-x .ch-tree-x-container{padding:0}.tree-view-item::part(dashed-line){border-color:var(--gray-02)}ch-tree-x-list-item{--checkbox-size:var(--gxg-checkbox-size);--expandable-button-width:var(--spacing-comp-04);}ch-tree-x-list-item.tree-view-item--folder::part(action)::before,ch-tree-x-list-item.tree-view-item--module::part(action)::before{grid-area:left-img;content:\"\";width:14px;height:14px;margin-inline-end:4px;background-repeat:no-repeat}ch-tree-x-list-item.tree-view-item--folder::part(action)::before{background-image:url(\"/build/icon-assets/objects/folder.svg\")}ch-tree-x-list-item.tree-view-item--folder::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/folder-open.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action)::before{background-image:url(\"/build/icon-assets/objects/module.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/module-open.svg\")}ch-tree-x-list-item .tree-view-item--pending-commit::part(action)::before{content:\"\";position:relative;z-index:1;grid-area:left-img;width:5px;height:5px;align-self:end;margin-block-end:3px;margin-inline-start:1px;background-color:#2c3b92;border-radius:50%}ch-tree-x-list-item::part(header):first-child{margin-inline-start:var(--spacing-comp-01)}ch-tree-x-list-item::part(header){padding-inline-end:calc(var(--spacing-comp-02) * 0.65);height:var(--spacing-comp-05);display:flex;gap:5px}ch-tree-x-list-item::part(header):before{content:\"\";display:block}ch-tree-x-list-item::part(header):hover{background-color:var(--gxg-background-color--hover);color:var(--gxg-color--hover)}ch-tree-x-list-item::part(header):focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}ch-tree-x-list-item[selected]::part(header){background-color:var(--gxg-background-color--selected)}ch-tree-x-list-item[selected]::part(header):hover{background-color:var(--gxg-background-color--selected-hover)}ch-tree-x-list-item.ch-tree-x-list-item--editing::part(header){border:2px solid transparent}ch-tree-x-list-item::part(expandable-button){background-color:var(--color-hover);margin-inline-end:0}ch-tree-x-list-item::part(expandable-button)::before{background-color:var(--gray-04);-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}ch-tree-x-list-item::part(expandable-button):hover{background-color:var(--color-background)}ch-tree-x-list-item::part(expandable-button):focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:0}ch-tree-x-list-item::part(checkbox__container){border-color:var(--gray-04);background-color:var(--color-background)}ch-tree-x-list-item::part(checkbox__container):after{content:\"\";position:absolute;display:block;border:solid;border-color:transparent;z-index:0}ch-tree-x-list-item::part(checkbox__container):focus-within{box-shadow:none;outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}ch-tree-x-list-item::part(checkbox){margin-inline-end:0}ch-tree-x-list-item::part(checkbox__option){display:none}ch-tree-x-list-item::part(checkbox__container checkbox__checked):after{left:5.5px;top:3px;width:4px;height:7px;border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border-color:var(--color-primary-active);transition-property:border-color;transition-duration:var(--ui-animaton-speed);transition-timing-function:ease}ch-tree-x-list-item::part(checkbox__container checkbox__indeterminate):after{left:50%;top:50%;width:8px;height:1.5px;border:0;background-color:var(--color-primary-active);-webkit-transform:rotate(0) translateY(-50%) translateX(-50%);-ms-transform:rotate(0) translateY(-50%) translateX(-50%);transform:rotate(0) translateY(-50%) translateX(-50%)}ch-tree-x-list-item::part(checkbox__input){position:relative;z-index:1}ch-tree-x-list-item::part(action){text-transform:capitalize;display:flex;gap:var(--spacing-comp-01)}ch-tree-x-list-item::part(left-img){width:var(--spacing-comp-04);height:var(--spacing-comp-04);margin-inline-end:0}ch-tree-x-list-item::part(downloading){width:var(--spacing-comp-03);height:var(--spacing-comp-03);border:var(--border-width-md) solid var(--color-primary-enabled);border-inline-start-color:transparent}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
18
+ const treeViewCss = "ch-tree-view{display:flex;position:relative;width:100%;overflow:auto}ch-tree-view>.ch-tree-view-container{position:absolute;inset:0}ch-tree-view.ch-tree-view-dragging-item ch-tree-view-item{pointer-events:var(--ch-tree-view-pointer-events, all)}ch-tree-view.ch-tree-view-dragging-item .ch-tree-view-list-item--deny-drop{pointer-events:none}ch-tree-view.ch-tree-view--dragging-selected-items ch-tree-view-item[selected]{--ch-tree-view-pointer-events:none}ch-tree-view.ch-tree-view-waiting-drop-processing{cursor:wait}ch-tree-view.ch-tree-view-waiting-drop-processing>.ch-tree-view-container{pointer-events:none}.ch-tree-view-drag-info{--rtl-offset:16px;position:fixed;left:0;top:0;transform:translate(calc(var(--ch-tree-view-dragging-item-x) + var(--rtl-offset)), calc(var(--ch-tree-view-dragging-item-y) + 8px));pointer-events:none;z-index:1;animation:ch-tree-view-drag-info-fade-in 10ms}@keyframes ch-tree-view-drag-info-fade-in{0%,100%{opacity:0}}html[dir=rtl] .ch-tree-view-drag-info{--rtl-offset:-100%}";
9
19
 
10
- const DEFAULT_DRAG_DISABLED_VALUE = false;
11
- const DEFAULT_DROP_DISABLED_VALUE = false;
12
- const DEFAULT_CLASS_VALUE = "tree-view-item";
13
- const DEFAULT_EDITABLE_ITEMS_VALUE = true;
14
- const DEFAULT_EXPANDED_VALUE = false;
15
- const DEFAULT_INDETERMINATE_VALUE = false;
16
- const DEFAULT_LAZY_VALUE = false;
17
- const DEFAULT_ORDER_VALUE = 0;
18
- const DEFAULT_SELECTED_VALUE = false;
19
- const GxgTreeView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
20
+ const TREE_ITEM_TAG_NAME = "ch-tree-view-item";
21
+ const TREE_TAG_NAME = "ch-tree-view";
22
+ // Selectors
23
+ // const CHECKED_ITEMS = `${TREE_ITEM_TAG_NAME}[checked]`;
24
+ const TEXT_FORMAT = "text/plain";
25
+ const ARROW_DOWN_KEY = "ArrowDown";
26
+ const ARROW_UP_KEY = "ArrowUp";
27
+ const EDIT_KEY = "F2";
28
+ const isTreeItem = (element) => element.tagName.toLowerCase() === TREE_ITEM_TAG_NAME;
29
+ const getFocusedTreeItem = () => focusComposedPath().find(isTreeItem);
30
+ const canMoveTreeItemFocus = (treeItem) => treeItem && !treeItem.editing;
31
+ const getDroppableZoneKey = (newContainerId, draggedItems) => `"newContainerId":"${newContainerId}","metadata":"${JSON.stringify(draggedItems)}"`;
32
+ const POSITION_X_DRAG_CUSTOM_VAR = "--ch-tree-view-dragging-item-x";
33
+ const POSITION_Y_DRAG_CUSTOM_VAR = "--ch-tree-view-dragging-item-y";
34
+ const ChTreeView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
20
35
  constructor() {
21
36
  super();
22
37
  this.__registerHost();
23
- this.checkedItemsChange = createEvent(this, "checkedItemsChange", 7);
38
+ this.droppableZoneEnter = createEvent(this, "droppableZoneEnter", 7);
39
+ this.expandedItemChange = createEvent(this, "expandedItemChange", 7);
24
40
  this.itemContextmenu = createEvent(this, "itemContextmenu", 7);
25
- this.itemOpenReference = createEvent(this, "itemOpenReference", 7);
41
+ this.itemsDropped = createEvent(this, "itemsDropped", 7);
26
42
  this.selectedItemsChange = createEvent(this, "selectedItemsChange", 7);
27
- // UI Models
28
- this.flattenedTreeModel = new Map();
29
- this.flattenedCheckboxTreeModel = new Map();
30
- this.selectedItems = new Set();
31
- this.iconAssetsPath = getAssetPath(`./icon-assets`);
32
- /**
33
- * This property lets you specify if the tree is waiting to process the drop
34
- * of items.
35
- */
36
- this.waitDropProcessing = false;
37
- /**
38
- * Removes the default padding on '.ch-tree-x-container' (Added by Gemini)
39
- */
40
- this.noPadding = false;
41
- /**
42
- * A temporary fix to force the ch-tree-x tree-x-container to be visible without position:absolute (Added by Gemini)
43
- */
44
- this.positionRelative = false;
45
- /**
46
- * Set this attribute if you want display a checkbox in all items by default.
47
- */
48
- this.checkbox = false;
49
- /**
50
- * Set this attribute if you want the checkbox to be checked in all items by
51
- * default.
52
- * Only works if `checkbox = true`
53
- */
54
- this.checked = false;
55
- /**
56
- * A CSS class to set as the `ch-tree-x` element class.
57
- */
58
- this.cssClass = "tree-view";
59
- /**
60
- * This attribute lets you specify if the drag operation is disabled in all
61
- * items by default. If `true`, the items can't be dragged.
62
- */
63
- this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
64
- /**
65
- * This attribute lets you specify if the drop operation is disabled in all
66
- * items by default. If `true`, the items won't accept any drops.
67
- */
68
- this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
43
+ // @todo TODO: Check if key codes works in Safari
44
+ this.keyDownEvents = {
45
+ [ARROW_DOWN_KEY]: event => {
46
+ const treeItem = getFocusedTreeItem();
47
+ if (!canMoveTreeItemFocus(treeItem)) {
48
+ return;
49
+ }
50
+ event.preventDefault();
51
+ treeItem.focusNextItem(mouseEventModifierKey(event));
52
+ },
53
+ [ARROW_UP_KEY]: event => {
54
+ const treeItem = getFocusedTreeItem();
55
+ if (!canMoveTreeItemFocus(treeItem)) {
56
+ return;
57
+ }
58
+ event.preventDefault();
59
+ treeItem.focusPreviousItem(mouseEventModifierKey(event));
60
+ },
61
+ [EDIT_KEY]: event => {
62
+ const treeItem = getFocusedTreeItem();
63
+ if (!treeItem || !treeItem.editable) {
64
+ return;
65
+ }
66
+ event.preventDefault();
67
+ treeItem.editing = true;
68
+ }
69
+ };
70
+ this.draggingSelectedItems = false;
71
+ this.needForRAF = true; // To prevent redundant RAF (request animation frame) calls
72
+ this.selectedItemsInfo = new Map();
69
73
  /**
70
- * This attribute lets you specify if the edit operation is enabled in all
71
- * items by default. If `true`, the items can edit its caption in place.
74
+ * Cache to avoid duplicate requests when checking the droppable zone in the
75
+ * same drag event.
72
76
  */
73
- this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
77
+ this.validDroppableZoneCache = new Map();
78
+ this.draggedIds = [];
79
+ this.draggedParentIds = [];
80
+ this.draggingInTheDocument = false;
81
+ this.draggingInTree = false;
74
82
  /**
75
83
  * Set this attribute if you want to allow multi selection of the items.
76
84
  */
77
85
  this.multiSelection = false;
78
86
  /**
79
- * `true` to display the relation between tree items and tree lists using
80
- * lines.
87
+ * This property lets you specify the time (in ms) that the mouse must be
88
+ * over in a subtree to open it when dragging.
81
89
  */
82
- this.showLines = "all";
90
+ this.openSubTreeCountdown = 750;
83
91
  /**
84
- * Set this attribute if you want all the children item's checkboxes to be
85
- * checked when the parent item checkbox is checked, or to be unchecked when
86
- * the parent item checkbox is unchecked.
87
- * This attribute will be used in all items by default.
92
+ * `true` to scroll in the tree when dragging an item near the edges of the
93
+ * tree.
88
94
  */
89
- this.toggleCheckboxes = false;
95
+ this.scrollToEdgeOnDrag = true;
90
96
  /**
91
- * This property lets you define the model of the ch-tree-x control.
97
+ * This property lets you specify if the tree is waiting to process the drop
98
+ * of items.
92
99
  */
93
- this.treeModel = [];
94
- this.handleDroppableZoneEnter = (event) => {
95
- if (!this.checkDroppableZoneCallback) {
100
+ this.waitDropProcessing = false;
101
+ this.trackItemDrag = (event) => {
102
+ event.preventDefault();
103
+ this.lastDragEvent = event;
104
+ this.updateDropEffect(event);
105
+ if (!this.needForRAF) {
96
106
  return;
97
107
  }
98
- event.stopPropagation();
99
- // Suppose the request is made immediately by executing the callback
100
- const requestTimestamp = new Date().getTime();
101
- const dropInformation = event.detail;
102
- const promise = this.checkDroppableZoneCallback(dropInformation);
103
- promise.then((validDrop) => {
104
- this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
105
- });
106
- };
107
- this.handleSelectedItemsChange = (event) => {
108
- event.stopPropagation();
109
- const itemsToProcess = new Map(event.detail);
110
- // Remove no longer selected items
111
- this.selectedItems.forEach((selectedItemId) => {
112
- const itemUIModel = this.flattenedTreeModel.get(selectedItemId).item;
113
- const itemIsStillSelected = itemsToProcess.get(selectedItemId);
114
- // The item does not need to be added. Remove it from the processed list
115
- if (itemIsStillSelected) {
116
- itemUIModel.expanded = itemIsStillSelected.expanded; // Update expanded state
117
- itemsToProcess.delete(selectedItemId);
118
- }
119
- // The item must be un-selected in the UI Model
120
- else {
121
- itemUIModel.selected = false;
122
- this.selectedItems.delete(selectedItemId);
123
- }
124
- });
125
- // Add new selected items
126
- itemsToProcess.forEach((newSelectedItemInfo, itemId) => {
127
- const newSelectedItem = this.flattenedTreeModel.get(itemId).item;
128
- newSelectedItem.selected = true;
129
- newSelectedItem.expanded = newSelectedItemInfo.expanded;
130
- this.selectedItems.add(itemId);
108
+ this.needForRAF = false; // No need to call RAF up until next frame
109
+ requestAnimationFrame(() => {
110
+ this.needForRAF = true; // RAF now consumes the movement instruction so a new one can come
111
+ this.el.style.setProperty(POSITION_X_DRAG_CUSTOM_VAR, `${this.lastDragEvent.pageX}px`);
112
+ this.el.style.setProperty(POSITION_Y_DRAG_CUSTOM_VAR, `${this.lastDragEvent.pageY}px`);
131
113
  });
132
- this.selectedItemsChange.emit(event.detail);
133
- };
134
- this.handleExpandedItemChange = (event) => {
135
- const detail = event.detail;
136
- const itemInfo = this.flattenedTreeModel.get(detail.id).item;
137
- itemInfo.expanded = detail.expanded;
138
- };
139
- this.handleItemContextmenu = (event) => {
140
- event.stopPropagation();
141
- this.itemContextmenu.emit(event.detail);
142
114
  };
143
- this.handleItemsDropped = (event) => {
144
- if (!this.dropItemsCallback) {
145
- return;
146
- }
147
- event.stopPropagation();
148
- const dataTransferInfo = event.detail;
149
- const newContainer = dataTransferInfo.newContainer;
150
- const newParentId = newContainer.id;
151
- // Check if the parent exists in the UI Model
152
- if (!this.flattenedTreeModel.get(newParentId)) {
153
- return;
154
- }
155
- const draggedItems = dataTransferInfo.draggedItems;
156
- if (draggedItems.length === 0) {
115
+ this.fixScrollPositionOnDrag = () => {
116
+ if (!this.draggingInTree || !this.lastDragEvent) {
157
117
  return;
158
118
  }
159
- const promise = this.dropItemsCallback(dataTransferInfo);
160
- this.waitDropProcessing = true;
161
- promise.then(async (response) => {
162
- this.waitDropProcessing = false;
163
- if (!response.acceptDrop) {
164
- return;
165
- }
166
- const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
167
- // Only move the items to the new parent, keeping the state
168
- if (dataTransferInfo.dropInTheSameTree) {
169
- // Add the UI models to the new container and remove the UI models from
170
- // the old containers
171
- draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
172
- // When the selected items are moved, the tree must remove its internal
173
- // state to not have undefined references
174
- if (dataTransferInfo.draggingSelectedItems) {
175
- await this.treeRef.clearSelectedItemsInfo();
176
- }
177
- }
178
- // Add the new items
179
- else {
180
- if (response.items == null) {
181
- return;
182
- }
183
- // Add new items to the parent
184
- newParentUIModel.items.push(...response.items);
185
- // Flatten the new UI models
186
- response.items.forEach(this.flattenItemUIModel(newParentUIModel));
187
- }
188
- this.sortItems(newParentUIModel.items);
189
- // Open the item to visualize the new subitems
190
- newParentUIModel.expanded = true;
191
- // There is no need to force and update, since the waitDropProcessing
192
- // prop was modified
119
+ requestAnimationFrame(() => {
120
+ scrollToEdge(this.lastDragEvent, this.el, 10, 30);
121
+ requestAnimationFrame(this.fixScrollPositionOnDrag);
193
122
  });
194
123
  };
195
- this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
196
- const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
197
- const item = itemUIModelExtended.item;
198
- const oldParentItem = itemUIModelExtended.parentItem;
199
- // Remove the UI model from the previous parent
200
- oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
201
- // Add the UI Model to the new parent
202
- newParentUIModel.items.push(item);
203
- // Reference the new parent in the item
204
- itemUIModelExtended.parentItem = newParentUIModel;
205
- };
206
- this.renderSubModel = (treeSubModel, lastItem, level) => {
207
- var _a, _b, _c, _d, _e, _f;
208
- return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: (_a = treeSubModel.checkbox) !== null && _a !== void 0 ? _a : this.checkbox, checked: (_b = treeSubModel.checked) !== null && _b !== void 0 ? _b : this.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, dragDisabled: (_c = treeSubModel.dragDisabled) !== null && _c !== void 0 ? _c : this.dragDisabled, dropDisabled: (_d = treeSubModel.dropDisabled) !== null && _d !== void 0 ? _d : this.dropDisabled, editable: (_e = treeSubModel.editable) !== null && _e !== void 0 ? _e : this.editableItems, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc
209
- ? resolveImgPath(this.iconAssetsPath, treeSubModel.leftImgSrc)
210
- : null, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: (_f = treeSubModel.toggleCheckboxes) !== null && _f !== void 0 ? _f : this.toggleCheckboxes }, !treeSubModel.leaf &&
211
- treeSubModel.items != null &&
212
- treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
213
- };
214
- this.flattenItemUIModel = (parentModel) => (item) => {
215
- var _a;
216
- this.flattenedTreeModel.set(item.id, {
217
- parentItem: parentModel,
218
- item: item,
219
- });
220
- // Add the items that have a checkbox in a separate Map
221
- if ((_a = item.checkbox) !== null && _a !== void 0 ? _a : this.checkbox) {
222
- this.flattenedCheckboxTreeModel.set(item.id, {
223
- parentItem: parentModel,
224
- item: item,
225
- });
226
- }
227
- // Make sure the properties are with their default values to avoid issues
228
- // when reusing DOM nodes
229
- item.class = item.class == null ? DEFAULT_CLASS_VALUE : item.class;
230
- item.expanded =
231
- item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
232
- item.indeterminate =
233
- item.indeterminate == null
234
- ? DEFAULT_INDETERMINATE_VALUE
235
- : item.indeterminate;
236
- item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
237
- item.order = item.order == null ? DEFAULT_ORDER_VALUE : item.order;
238
- item.selected =
239
- item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
240
- if (item.selected) {
241
- this.selectedItems.add(item.id);
242
- }
243
- this.flattenSubModel(item);
244
- };
245
124
  }
246
- handleTreeModelChange() {
247
- this.flattenModel();
125
+ // /**
126
+ // * Returns an array of the selected tree items, providing the id, caption and
127
+ // * selected status.
128
+ // */
129
+ // @Method()
130
+ // async getCheckedItems(): Promise<CheckedTreeItemInfo[]> {
131
+ // const checkedItems = Array.from(
132
+ // this.el.querySelectorAll(CHECKED_ITEMS)
133
+ // ) as HTMLChTreeViewItemElement[];
134
+ // return checkedItems.map(item => ({
135
+ // id: item.id,
136
+ // caption: item.caption,
137
+ // selected: item.selected
138
+ // }));
139
+ // }
140
+ handleContextMenuEvent(event) {
141
+ const treeItem = event.target.closest(TREE_ITEM_TAG_NAME);
142
+ if (!treeItem) {
143
+ return;
144
+ }
145
+ event.preventDefault();
146
+ this.itemContextmenu.emit({
147
+ id: treeItem.id,
148
+ itemRef: treeItem,
149
+ metadata: treeItem.metadata,
150
+ contextmenuEvent: event
151
+ });
248
152
  }
249
- /**
250
- * Given an item id, an array of items to add, the download status and the
251
- * lazy state, updates the item's UI Model.
252
- */
253
- async loadLazyContent(itemId, items, downloading = false, lazy = false) {
254
- const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
255
- // Establish that the content was lazy loaded
256
- itemToLazyLoadContent.downloading = downloading;
257
- itemToLazyLoadContent.lazy = lazy;
258
- // Check if there is items to add
259
- if (items == null) {
153
+ // Set edit mode in items
154
+ handleKeyDownEvents(event) {
155
+ const keyHandler = this.keyDownEvents[event.key];
156
+ if (keyHandler) {
157
+ keyHandler(event);
158
+ }
159
+ }
160
+ // We can't use capture, because the dataTransfer info would not be defined
161
+ // Also, we cant use capture and setTimeout with 0 seconds, because the
162
+ // getData method can only be accessed during the dragstart and drop event
163
+ handleDragStart(event) {
164
+ // Reset the validity of the droppable zones with each new drag start
165
+ this.validDroppableZoneCache.clear();
166
+ this.draggingInTheDocument = true;
167
+ this.dragStartTimestamp = new Date().getTime();
168
+ this.draggedItems = JSON.parse(event.dataTransfer.getData(TEXT_FORMAT));
169
+ }
170
+ handleDragEnd() {
171
+ this.draggingInTheDocument = false;
172
+ }
173
+ handleDragEnter(event) {
174
+ this.cancelSubTreeOpening(null, true);
175
+ event.stopPropagation();
176
+ const containerTarget = event.target;
177
+ // Check if it is a valid item
178
+ if (containerTarget.tagName.toLowerCase() !== TREE_ITEM_TAG_NAME) {
260
179
  return;
261
180
  }
262
- // @todo What happens in the server when dropping items on a lazy node?
263
- itemToLazyLoadContent.items = items;
264
- this.sortItems(itemToLazyLoadContent.items);
265
- this.flattenSubModel(itemToLazyLoadContent);
266
- // Re-sync checked items
267
- this.emitCheckedItemsChange();
268
- // Force re-render
269
- forceUpdate(this);
181
+ this.lastOpenSubTreeItem = containerTarget;
182
+ this.openSubTreeAfterCountdown(containerTarget);
183
+ if (this.validDroppableZone(event) === "valid") {
184
+ containerTarget.dragState = "enter";
185
+ }
270
186
  }
271
- /**
272
- * Given an item id, it displays and scrolls into the item view.
273
- */
274
- async scrollIntoVisible(treeItemId) {
275
- const itemUIModel = this.flattenedTreeModel.get(treeItemId);
276
- if (!itemUIModel) {
277
- // @todo Check if the item is on the server?
187
+ handleDragLeave(event) {
188
+ const currentTarget = event.target;
189
+ if (currentTarget.tagName.toLowerCase() !== TREE_ITEM_TAG_NAME) {
278
190
  return;
279
191
  }
280
- let visitedNode = itemUIModel.parentItem;
281
- // While the parent is not the root, update the UI Models
282
- while (visitedNode && visitedNode.id != null) {
283
- // Expand the item
284
- visitedNode.expanded = true;
285
- const visitedNodeUIModel = this.flattenedTreeModel.get(visitedNode.id);
286
- visitedNode = visitedNodeUIModel.parentItem;
192
+ const treeItem = currentTarget;
193
+ treeItem.dragState = "none";
194
+ this.cancelSubTreeOpening(treeItem);
195
+ }
196
+ cancelSubTreeOpening(treeItem, forceClear = false) {
197
+ if (this.lastOpenSubTreeItem === treeItem || forceClear) {
198
+ clearTimeout(this.openSubTreeTimeout);
199
+ this.lastOpenSubTreeItem = null;
287
200
  }
288
- forceUpdate(this);
289
- // @todo For some reason, when the model is created using the "big model" option,
290
- // this implementation does not work when only the UI Model is updated. So, to
291
- // expand the items, we have to delegate the responsibility to the tree-x
292
- this.treeRef.scrollIntoVisible(treeItemId);
201
+ }
202
+ handleItemDrop(event) {
203
+ event.stopPropagation();
204
+ this.cancelSubTreeOpening(null, true);
205
+ const newContainer = event.target;
206
+ const draggedItems = JSON.parse(event.dataTransfer.getData(TEXT_FORMAT));
207
+ // The droppable zone must be checked, even if it was marked as not valid
208
+ // @todo Try to drop an item with high delays in droppable zone checking
209
+ if (this.validDroppableZone(event) !== "valid") {
210
+ return;
211
+ }
212
+ this.itemsDropped.emit({
213
+ newContainer: { id: newContainer.id, metadata: newContainer.metadata },
214
+ draggingSelectedItems: this.draggingSelectedItems,
215
+ draggedItems: draggedItems,
216
+ dropInTheSameTree: this.draggingInTree
217
+ });
218
+ }
219
+ handleItemDragStart(event) {
220
+ document.body.addEventListener("dragover", this.trackItemDrag, {
221
+ capture: true
222
+ });
223
+ this.currentDraggedItem = event.target;
224
+ const allItemsCanBeDragged = this.checkDragValidityAndUpdateDragInfo(event.detail);
225
+ if (!allItemsCanBeDragged) {
226
+ // This effect disables drop interactions in all page elements, so there
227
+ // is no need to capture and prevent the drop event in the window
228
+ event.detail.dragEvent.dataTransfer.effectAllowed = "none";
229
+ return;
230
+ }
231
+ this.draggingInTree = true;
232
+ if (this.scrollToEdgeOnDrag) {
233
+ this.fixScrollPositionOnDrag();
234
+ }
235
+ }
236
+ handleItemDragEnd() {
237
+ this.draggingInTree = false;
238
+ document.body.removeEventListener("dragover", this.trackItemDrag, {
239
+ capture: true
240
+ });
241
+ // Reset not allowed droppable ids
242
+ this.resetVariables();
293
243
  }
294
244
  /**
295
- * This method is used to toggle a tree item by the tree item id/ids.
296
- *
297
- * @param treeItemIds An array id the tree items to be toggled.
298
- * @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
299
- * @returns The modified items after the method was called.
245
+ * Only sync the info about the selected items. It does not update the state
246
+ * of the previous selected items.
300
247
  */
301
- async toggleItems(treeItemIds, expand) {
302
- if (!treeItemIds) {
303
- return [];
248
+ handleSelectedItemSync(event) {
249
+ event.stopPropagation();
250
+ const selectedItemInfo = event.detail;
251
+ // If the item is selected, add it to list
252
+ if (selectedItemInfo.selected) {
253
+ this.selectedItemsInfo.set(selectedItemInfo.id, selectedItemInfo);
304
254
  }
305
- const modifiedTreeItems = [];
306
- treeItemIds.forEach((treeItemId) => {
307
- const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
308
- if (itemInfo) {
309
- itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
310
- modifiedTreeItems.push({
311
- id: itemInfo.id,
312
- expanded: itemInfo.expanded,
313
- });
314
- }
315
- });
316
- // Force re-render
317
- forceUpdate(this);
318
- return modifiedTreeItems;
255
+ else {
256
+ this.selectedItemsInfo.delete(selectedItemInfo.id);
257
+ }
258
+ }
259
+ handleSelectedItemChange(event) {
260
+ event.stopPropagation();
261
+ const selectedItemInfo = event.detail;
262
+ const selectedItemEl = event.target;
263
+ this.handleItemSelection(selectedItemEl, selectedItemInfo);
319
264
  }
320
265
  /**
321
- * Given a subset of item's properties, it updates all item UI models.
266
+ * Clear all information about the selected items. This method is intended to
267
+ * be used when selected items are reordered and the selected references will
268
+ * no longer be useful.
322
269
  */
323
- async updateAllItemsProperties(properties) {
324
- [...this.flattenedTreeModel.values()].forEach((itemUIModel) => {
325
- if (properties.expanded != null) {
326
- itemUIModel.item.expanded = properties.expanded;
327
- }
328
- if (properties.checked != null) {
329
- itemUIModel.item.checked = properties.checked;
330
- itemUIModel.item.indeterminate = false;
331
- }
332
- });
333
- forceUpdate(this);
270
+ async clearSelectedItemsInfo() {
271
+ this.clearSelectedItems();
334
272
  }
335
273
  /**
336
- * Given a item list and the properties to update, it updates the properties
337
- * of the items in the list.
274
+ * Given an item id, it displays and scrolls into the item view.
338
275
  */
339
- async updateItemsProperties(items, properties) {
340
- items.forEach((item) => {
341
- const itemUIModel = this.flattenedTreeModel.get(item);
342
- this.updateItemProperty(itemUIModel, properties);
276
+ async scrollIntoVisible(treeItemId) {
277
+ const itemRef = this.el.querySelector(`${TREE_ITEM_TAG_NAME}#${treeItemId}`);
278
+ if (!itemRef) {
279
+ return;
280
+ }
281
+ let parentItem = itemRef.parentElement;
282
+ // Expand all parents
283
+ while (parentItem.tagName.toLowerCase() === TREE_ITEM_TAG_NAME) {
284
+ parentItem.expanded = true;
285
+ parentItem = parentItem.parentElement;
286
+ }
287
+ // Wait until the parents are expanded
288
+ requestAnimationFrame(() => {
289
+ itemRef.scrollIntoView();
343
290
  });
344
- forceUpdate(this);
345
291
  }
346
292
  /**
347
293
  * Update the information about the valid droppable zones.
@@ -351,184 +297,208 @@ const GxgTreeView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
351
297
  * @param validDrop Current state of the droppable zone.
352
298
  */
353
299
  async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
354
- this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
355
- }
356
- updateItemProperty(itemUIModel, properties) {
357
- if (!itemUIModel) {
300
+ var _a;
301
+ if (!this.draggingInTheDocument ||
302
+ requestTimestamp <= this.dragStartTimestamp) {
358
303
  return;
359
304
  }
360
- const itemInfo = itemUIModel.item;
361
- Object.keys(properties).forEach((propertyName) => {
362
- itemInfo[propertyName] = properties[propertyName];
363
- });
305
+ const droppableZoneKey = getDroppableZoneKey(newContainerId, draggedItems);
306
+ this.validDroppableZoneCache.set(droppableZoneKey, validDrop ? "valid" : "invalid");
307
+ const shouldUpdateDragEnterInCurrentContainer = ((_a = this.lastOpenSubTreeItem) === null || _a === void 0 ? void 0 : _a.id) === newContainerId;
308
+ if (shouldUpdateDragEnterInCurrentContainer) {
309
+ this.lastOpenSubTreeItem.dragState = "enter";
310
+ }
364
311
  }
365
- updateCheckboxValue(event) {
366
- event.stopPropagation();
367
- const detail = event.detail;
368
- const treeItemId = detail.id;
369
- const itemUIModel = this.flattenedCheckboxTreeModel.get(treeItemId);
370
- // In some cases, when the `treeModel` and `checked` properties are updated
371
- // outside of the tree control, some events are fired with undefined references
372
- if (!itemUIModel) {
373
- return;
312
+ validDroppableZone(event) {
313
+ const containerTarget = event.target;
314
+ const cacheKey = getDroppableZoneKey(containerTarget.id, this.draggedItems);
315
+ let droppableZoneState = this.validDroppableZoneCache.get(cacheKey);
316
+ // Invalidate the cache, because the item is no longer waiting for its content to be downloaded
317
+ if (droppableZoneState === "temporal-invalid" &&
318
+ !containerTarget.lazyLoad &&
319
+ !containerTarget.downloading) {
320
+ droppableZoneState = null;
374
321
  }
375
- const itemInfo = itemUIModel.item;
376
- itemInfo.checked = detail.checked;
377
- itemInfo.indeterminate = detail.indeterminate;
378
- this.emitCheckedItemsChange();
322
+ if (droppableZoneState != null) {
323
+ return droppableZoneState;
324
+ }
325
+ // Do not show drop zones if:
326
+ // - The effect does not allow it.
327
+ // - The drop is disabled in the container target.
328
+ // - When dragging in the same tree, don't mark droppable zones if they are
329
+ // the dragged items or their direct parents.
330
+ if (event.dataTransfer.effectAllowed === "none" ||
331
+ containerTarget.dropDisabled ||
332
+ (this.draggingInTree &&
333
+ (this.draggedIds.includes(containerTarget.id) ||
334
+ this.draggedParentIds.includes(containerTarget.id)))) {
335
+ this.validDroppableZoneCache.set(cacheKey, "invalid");
336
+ return "invalid";
337
+ }
338
+ // Disable drops when items need to lazy load their content first
339
+ if (containerTarget.lazyLoad || containerTarget.downloading) {
340
+ this.validDroppableZoneCache.set(cacheKey, "temporal-invalid");
341
+ return "temporal-invalid";
342
+ }
343
+ this.validDroppableZoneCache.set(cacheKey, "checking");
344
+ this.droppableZoneEnter.emit({
345
+ newContainer: {
346
+ id: containerTarget.id,
347
+ metadata: containerTarget.metadata
348
+ },
349
+ draggedItems: this.draggedItems
350
+ });
351
+ return "checking";
379
352
  }
380
- loadLazyChildrenHandler(event) {
381
- if (!this.lazyLoadTreeItemsCallback) {
353
+ openSubTreeAfterCountdown(currentTarget) {
354
+ if (currentTarget.leaf || currentTarget.expanded) {
382
355
  return;
383
356
  }
384
- event.stopPropagation();
385
- const treeItemId = event.detail;
386
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
387
- event.target.downloading = true;
388
- promise.then((result) => {
389
- this.loadLazyContent(treeItemId, result);
390
- });
357
+ this.openSubTreeTimeout = setTimeout(() => {
358
+ currentTarget.expanded = true;
359
+ this.expandedItemChange.emit({ id: currentTarget.id, expanded: true });
360
+ }, this.openSubTreeCountdown);
391
361
  }
392
- handleCaptionModification(event) {
393
- if (!this.modifyItemCaptionCallback) {
362
+ updateDropEffect(event) {
363
+ const itemTarget = event.target;
364
+ // Check if it is a valid item
365
+ if (itemTarget.tagName.toLowerCase() !== TREE_ITEM_TAG_NAME ||
366
+ itemTarget.closest(TREE_TAG_NAME) !== this.el) {
394
367
  return;
395
368
  }
396
- event.stopPropagation();
397
- const itemRef = event.target;
398
- const itemId = event.detail.id;
399
- const itemUIModel = this.flattenedTreeModel.get(itemId);
400
- const itemInfo = itemUIModel.item;
401
- const newCaption = event.detail.caption;
402
- const oldCaption = itemInfo.caption;
403
- // Optimistic UI: Update the caption in the UI Model before the change is
404
- // completed in the server
405
- itemInfo.caption = newCaption;
406
- // Due to performance reasons, we don't make a shallow copy of the
407
- // treeModel to force a re-render
408
- itemRef.caption = newCaption;
409
- const promise = this.modifyItemCaptionCallback(itemId, newCaption);
410
- promise.then((status) => {
411
- if (status.success) {
412
- this.sortItems(itemUIModel.parentItem.items);
413
- // Force re-render
414
- forceUpdate(this);
415
- }
416
- else {
417
- itemRef.caption = oldCaption;
418
- itemInfo.caption = oldCaption;
419
- // Do something with the error message
420
- }
421
- });
369
+ const droppableZoneState = this.validDroppableZone(event);
370
+ if (droppableZoneState === "invalid" ||
371
+ droppableZoneState === "temporal-invalid") {
372
+ event.dataTransfer.dropEffect = "none";
373
+ }
422
374
  }
423
- handleOpenReference(event) {
424
- event.stopPropagation();
425
- this.itemOpenReference.emit(event.detail);
375
+ resetVariables() {
376
+ this.draggedIds = [];
377
+ this.draggedParentIds = [];
426
378
  }
427
- emitCheckedItemsChange() {
428
- // New copy of the checked items
429
- const allItemsWithCheckbox = new Map(this.flattenedCheckboxTreeModel);
430
- // Update the checked value if not defined
431
- allItemsWithCheckbox.forEach((itemUIModel) => {
432
- if (itemUIModel.item.checked == null) {
433
- itemUIModel.item.checked = this.checked;
434
- }
435
- });
436
- this.checkedItemsChange.emit(allItemsWithCheckbox);
379
+ /**
380
+ * First, it check if all items can be dragged. If so, it updates the
381
+ * dataTransfer in the drag event to store the ids and metadata of the
382
+ * dragged items. Also it updates the visual information of the dragged
383
+ * items.
384
+ * @returns If all selected items can be dragged.
385
+ */
386
+ checkDragValidityAndUpdateDragInfo(dragInfo) {
387
+ const draggedElement = dragInfo.elem;
388
+ const isDraggingSelectedItems = this.selectedItemsInfo.has(draggedElement.id);
389
+ this.draggingSelectedItems = isDraggingSelectedItems;
390
+ let dataTransferInfo = [];
391
+ let dragIsEnabledForAllItems;
392
+ if (isDraggingSelectedItems) {
393
+ const selectedItemKeys = [...this.selectedItemsInfo.keys()];
394
+ const selectedItemValues = [...this.selectedItemsInfo.values()];
395
+ const selectedItemCount = selectedItemKeys.length;
396
+ dragIsEnabledForAllItems = selectedItemValues.every(el => !el.itemRef.dragDisabled);
397
+ this.draggedIds = selectedItemKeys;
398
+ dataTransferInfo = selectedItemValues.map(el => ({
399
+ id: el.id,
400
+ metadata: el.metadata
401
+ }));
402
+ this.dragInfo =
403
+ selectedItemCount === 1
404
+ ? draggedElement.caption
405
+ : selectedItemCount.toString();
406
+ }
407
+ else {
408
+ dragIsEnabledForAllItems = !draggedElement.dragDisabled;
409
+ dataTransferInfo = [
410
+ { id: draggedElement.id, metadata: draggedElement.metadata }
411
+ ];
412
+ this.draggedIds = [draggedElement.id];
413
+ this.dragInfo = draggedElement.caption;
414
+ }
415
+ this.getDirectParentsOfDraggableItems(isDraggingSelectedItems);
416
+ // Update drag event info
417
+ const data = JSON.stringify(dataTransferInfo);
418
+ dragInfo.dragEvent.dataTransfer.setData(TEXT_FORMAT, data);
419
+ // We must keep the data binding and processing even if there is an item
420
+ // that can't be dragged, otherwise, other trees or element might behave
421
+ // unexpected when a dragstart event comes
422
+ return dragIsEnabledForAllItems;
437
423
  }
438
- flattenSubModel(model) {
439
- const items = model.items;
440
- if (!items) {
441
- // Make sure that subtrees don't have an undefined array
442
- if (model.leaf !== true) {
443
- model.items = [];
424
+ getDirectParentsOfDraggableItems(draggingSelectedItems) {
425
+ if (!draggingSelectedItems) {
426
+ const parentTreeItemElem = this.currentDraggedItem.parentElement;
427
+ if (parentTreeItemElem.tagName.toLowerCase() === TREE_ITEM_TAG_NAME) {
428
+ this.draggedParentIds.push(parentTreeItemElem.id);
444
429
  }
445
430
  return;
446
431
  }
447
- this.sortItems(items);
448
- items.forEach(this.flattenItemUIModel(model));
432
+ // Dragging selected items
433
+ this.selectedItemsInfo.forEach(selectedItem => {
434
+ const parentId = selectedItem.parentId;
435
+ // parentId === "" when the item is in the first level of the tree
436
+ if (parentId !== "") {
437
+ this.draggedParentIds.push(parentId);
438
+ }
439
+ });
449
440
  }
450
- sortItems(items) {
451
- // Ensure that items are sorted
452
- if (this.sortItemsCallback) {
453
- this.sortItemsCallback(items);
441
+ handleItemSelection(selectedItemEl, selectedItemInfo) {
442
+ // If the Control key was not pressed or multi selection is disabled,
443
+ // remove all selected items
444
+ if (!selectedItemInfo.ctrlKeyPressed || !this.multiSelection) {
445
+ // Don't update the state of the selected item if no needed
446
+ this.selectedItemsInfo.delete(selectedItemInfo.id);
447
+ this.selectedItemsInfo.forEach(treeItem => {
448
+ treeItem.itemRef.selected = false;
449
+ });
450
+ this.clearSelectedItems();
451
+ // Re-select the item
452
+ selectedItemEl.selected = selectedItemInfo.selected;
454
453
  }
455
- }
456
- flattenModel() {
457
- this.flattenedTreeModel.clear();
458
- this.flattenedCheckboxTreeModel.clear();
459
- this.selectedItems.clear();
460
- // The model was updated at runtime, so we need to clear the references
461
- if (this.treeRef) {
462
- this.treeRef.clearSelectedItemsInfo();
454
+ // If the item is selected, add it to list
455
+ if (selectedItemInfo.selected) {
456
+ this.selectedItemsInfo.set(selectedItemInfo.id, selectedItemInfo);
463
457
  }
464
- this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
465
- // Re-sync checked items
466
- this.emitCheckedItemsChange();
458
+ // Sync with UI model
459
+ this.selectedItemsChange.emit(this.selectedItemsInfo);
467
460
  }
468
- componentWillLoad() {
469
- this.flattenModel();
461
+ clearSelectedItems() {
462
+ this.selectedItemsInfo.clear();
463
+ }
464
+ disconnectedCallback() {
465
+ this.resetVariables();
466
+ // Remove dragover body event
467
+ this.handleItemDragEnd();
470
468
  }
471
469
  render() {
472
- return (h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemContextmenu: this.handleItemContextmenu, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0))));
470
+ return (h(Host, { class: {
471
+ "ch-tree-view-dragging-item": this.draggingInTheDocument,
472
+ "ch-tree-view-not-dragging-item": !this.draggingInTheDocument,
473
+ "ch-tree-view--dragging-selected-items": this.draggingInTree && this.draggingSelectedItems,
474
+ "ch-tree-view-waiting-drop-processing": this.waitDropProcessing
475
+ } }, h("div", { role: "tree", part: "tree-x-container", "aria-multiselectable": this.multiSelection.toString(), class: "ch-tree-view-container" }, h("slot", null)), this.draggingInTree && (h("span", { "aria-hidden": "true", class: "ch-tree-view-drag-info" }, this.dragInfo))));
473
476
  }
474
- static get assetsDirs() { return ["assets"]; }
475
- static get watchers() { return {
476
- "treeModel": ["handleTreeModelChange"]
477
- }; }
477
+ get el() { return this; }
478
478
  static get style() { return treeViewCss; }
479
- }, [0, "gxg-tree-view", {
480
- "noPadding": [516, "no-padding"],
481
- "positionRelative": [516, "position-relative"],
482
- "checkbox": [4],
483
- "checked": [4],
484
- "checkDroppableZoneCallback": [16],
485
- "cssClass": [1, "css-class"],
486
- "dragDisabled": [4, "drag-disabled"],
487
- "dropDisabled": [4, "drop-disabled"],
488
- "dropItemsCallback": [16],
489
- "editableItems": [4, "editable-items"],
490
- "lazyLoadTreeItemsCallback": [16],
491
- "modifyItemCaptionCallback": [16],
479
+ }, [4, "ch-tree-view", {
492
480
  "multiSelection": [4, "multi-selection"],
493
- "showLines": [1, "show-lines"],
494
- "sortItemsCallback": [16],
495
- "toggleCheckboxes": [4, "toggle-checkboxes"],
496
- "treeModel": [16],
497
- "waitDropProcessing": [32],
498
- "loadLazyContent": [64],
481
+ "openSubTreeCountdown": [2, "open-sub-tree-countdown"],
482
+ "scrollToEdgeOnDrag": [4, "scroll-to-edge-on-drag"],
483
+ "waitDropProcessing": [4, "wait-drop-processing"],
484
+ "draggingInTheDocument": [32],
485
+ "draggingInTree": [32],
486
+ "clearSelectedItemsInfo": [64],
499
487
  "scrollIntoVisible": [64],
500
- "toggleItems": [64],
501
- "updateAllItemsProperties": [64],
502
- "updateItemsProperties": [64],
503
488
  "updateValidDropZone": [64]
504
- }, [[0, "checkboxChange", "updateCheckboxValue"], [0, "checkboxToggleChange", "updateCheckboxValue"], [0, "loadLazyContent", "loadLazyChildrenHandler"], [0, "modifyCaption", "handleCaptionModification"], [2, "openReference", "handleOpenReference"]]]);
489
+ }, [[2, "contextmenu", "handleContextMenuEvent"], [2, "keydown", "handleKeyDownEvents"], [9, "dragstart", "handleDragStart"], [11, "dragend", "handleDragEnd"], [3, "dragenter", "handleDragEnter"], [3, "dragleave", "handleDragLeave"], [1, "drop", "handleItemDrop"], [0, "itemDragStart", "handleItemDragStart"], [0, "itemDragEnd", "handleItemDragEnd"], [0, "selectedItemSync", "handleSelectedItemSync"], [0, "selectedItemChange", "handleSelectedItemChange"]]]);
505
490
  function defineCustomElement() {
506
491
  if (typeof customElements === "undefined") {
507
492
  return;
508
493
  }
509
- const components = ["gxg-tree-view", "ch-checkbox", "ch-tree-x", "ch-tree-x-list-item"];
494
+ const components = ["ch-tree-view"];
510
495
  components.forEach(tagName => { switch (tagName) {
511
- case "gxg-tree-view":
512
- if (!customElements.get(tagName)) {
513
- customElements.define(tagName, GxgTreeView);
514
- }
515
- break;
516
- case "ch-checkbox":
517
- if (!customElements.get(tagName)) {
518
- defineCustomElement$3();
519
- }
520
- break;
521
- case "ch-tree-x":
522
- if (!customElements.get(tagName)) {
523
- defineCustomElement$2();
524
- }
525
- break;
526
- case "ch-tree-x-list-item":
496
+ case "ch-tree-view":
527
497
  if (!customElements.get(tagName)) {
528
- defineCustomElement$1();
498
+ customElements.define(tagName, ChTreeView);
529
499
  }
530
500
  break;
531
501
  } });
532
502
  }
533
503
 
534
- export { GxgTreeView as G, defineCustomElement as d };
504
+ export { ChTreeView as C, defineCustomElement as d };