@genexus/genexus-ide-ui 0.0.70 → 0.0.72

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 (140) hide show
  1. package/dist/cjs/ch-checkbox_4.cjs.entry.js +75 -51
  2. package/dist/cjs/ch-shortcuts.cjs.entry.js +187 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +101 -0
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -2
  7. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -2
  13. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -2
  14. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -2
  20. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +3 -3
  22. package/dist/cjs/gxg-form-textarea.cjs.entry.js +28 -9
  23. package/dist/cjs/gxg-text.cjs.entry.js +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +2 -0
  26. package/dist/collection/components/_starting-template/template.css +1 -0
  27. package/dist/collection/components/ai-assistant/ai-assistant.css +389 -0
  28. package/dist/collection/components/ai-assistant/ai-assistant.js +268 -0
  29. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +5 -0
  30. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  31. package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  32. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +1 -0
  33. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +1 -0
  34. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +0 -1
  35. package/dist/collection/components/kb-manager-export/kb-manager-export.css +1 -0
  36. package/dist/collection/components/kb-manager-import/kb-manager-import.css +1 -0
  37. package/dist/collection/components/new-environment/new-environment.css +1 -0
  38. package/dist/collection/components/new-kb/new-kb.css +1 -0
  39. package/dist/collection/components/new-object/new-object.css +1 -0
  40. package/dist/collection/components/object-selector/object-selector.css +1 -0
  41. package/dist/collection/components/object-selector/object-selector.js +0 -1
  42. package/dist/collection/components/references/references.css +1 -0
  43. package/dist/collection/components/references/references.js +0 -1
  44. package/dist/collection/components/share-kb/share-kb.css +1 -0
  45. package/dist/collection/components/team-dev/commit/commit.css +1 -0
  46. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +1 -0
  47. package/dist/collection/components/team-dev/update/update.css +1 -0
  48. package/dist/collection/components/team-dev/update/update.js +0 -1
  49. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +1 -0
  50. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +1 -0
  51. package/dist/collection/components/ww-images/ww-images.css +13 -13
  52. package/dist/collection/components/ww-images/ww-images.js +2 -3
  53. package/dist/components/ch-shortcuts.js +217 -0
  54. package/dist/components/form-textarea.js +30 -9
  55. package/dist/components/gx-ide-ai-assistant.d.ts +11 -0
  56. package/dist/components/gx-ide-ai-assistant.js +150 -0
  57. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  58. package/dist/components/gx-ide-create-kb-from-server.js +1 -2
  59. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  60. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  61. package/dist/components/gx-ide-new-environment.js +1 -1
  62. package/dist/components/gx-ide-new-kb.js +1 -1
  63. package/dist/components/gx-ide-new-object.js +1 -1
  64. package/dist/components/gx-ide-object-selector.js +1 -2
  65. package/dist/components/gx-ide-references.js +1 -2
  66. package/dist/components/gx-ide-share-kb.js +1 -1
  67. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  68. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  69. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  70. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  71. package/dist/components/gx-ide-team-dev-update.js +1 -2
  72. package/dist/components/gx-ide-template.js +1 -1
  73. package/dist/components/gx-ide-ww-images.js +3 -3
  74. package/dist/components/index.d.ts +1 -0
  75. package/dist/components/index.js +2 -0
  76. package/dist/components/text.js +1 -1
  77. package/dist/components/tree-view-item.js +1 -1
  78. package/dist/components/tree-view-render.js +73 -48
  79. package/dist/components/tree-view.js +2 -2
  80. package/dist/esm/ch-checkbox_4.entry.js +75 -51
  81. package/dist/esm/ch-shortcuts.entry.js +183 -0
  82. package/dist/esm/genexus-ide-ui.js +1 -1
  83. package/dist/esm/gx-ide-ai-assistant.entry.js +97 -0
  84. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  85. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -2
  86. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  87. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  88. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  89. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  90. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  91. package/dist/esm/gx-ide-object-selector.entry.js +1 -2
  92. package/dist/esm/gx-ide-references.entry.js +1 -2
  93. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  94. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  95. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  96. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  97. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  98. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -2
  99. package/dist/esm/gx-ide-template.entry.js +1 -1
  100. package/dist/esm/gx-ide-ww-images.entry.js +3 -3
  101. package/dist/esm/gxg-form-textarea.entry.js +28 -9
  102. package/dist/esm/gxg-text.entry.js +1 -1
  103. package/dist/esm/loader.js +1 -1
  104. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  105. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +5 -0
  106. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +3 -0
  107. package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +3 -0
  108. package/dist/genexus-ide-ui/{p-aacd75fc.entry.js → p-11fa1c83.entry.js} +1 -1
  109. package/dist/genexus-ide-ui/{p-8f4d3169.entry.js → p-13085dd7.entry.js} +1 -1
  110. package/dist/genexus-ide-ui/{p-561cf515.entry.js → p-3d410e77.entry.js} +1 -1
  111. package/dist/genexus-ide-ui/{p-3f8995ba.entry.js → p-3d4722f2.entry.js} +1 -1
  112. package/dist/genexus-ide-ui/{p-99a0cd49.entry.js → p-440fe7b3.entry.js} +1 -1
  113. package/dist/genexus-ide-ui/{p-4c0ecfe3.entry.js → p-446c0831.entry.js} +1 -1
  114. package/dist/genexus-ide-ui/{p-46c2406e.entry.js → p-7e52f6fb.entry.js} +1 -1
  115. package/dist/genexus-ide-ui/{p-2b9edc3b.entry.js → p-8c5919ec.entry.js} +1 -1
  116. package/dist/genexus-ide-ui/p-99277f8f.entry.js +1 -0
  117. package/dist/genexus-ide-ui/{p-4313d9be.entry.js → p-9a15e22e.entry.js} +1 -1
  118. package/dist/genexus-ide-ui/{p-6929875a.entry.js → p-9ad85778.entry.js} +1 -1
  119. package/dist/genexus-ide-ui/p-abfa88ed.entry.js +1 -0
  120. package/dist/genexus-ide-ui/{p-e23d6f44.entry.js → p-b34d258d.entry.js} +1 -1
  121. package/dist/genexus-ide-ui/p-b417c899.entry.js +1 -0
  122. package/dist/genexus-ide-ui/{p-c2ffd150.entry.js → p-ba31a49e.entry.js} +1 -1
  123. package/dist/genexus-ide-ui/p-baffd9b1.entry.js +1 -0
  124. package/dist/genexus-ide-ui/{p-083e01a8.entry.js → p-c3895c79.entry.js} +1 -1
  125. package/dist/genexus-ide-ui/p-cb07fc99.entry.js +1 -0
  126. package/dist/genexus-ide-ui/{p-46901569.entry.js → p-d2aca59f.entry.js} +1 -1
  127. package/dist/genexus-ide-ui/{p-7af7779b.entry.js → p-d664fa18.entry.js} +1 -1
  128. package/dist/genexus-ide-ui/{p-e090d88c.entry.js → p-e13a299b.entry.js} +1 -1
  129. package/dist/genexus-ide-ui/p-f1922c2f.entry.js +1 -0
  130. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/shortcuts/ch-shortcuts.css +3 -0
  131. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -1
  132. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +44 -2
  133. package/dist/node_modules/@genexus/gemini/dist/collection/components/text/text.css +4 -1
  134. package/dist/types/components/ai-assistant/ai-assistant.d.ts +65 -0
  135. package/dist/types/components.d.ts +70 -0
  136. package/package.json +3 -3
  137. package/dist/genexus-ide-ui/p-537a181a.entry.js +0 -1
  138. package/dist/genexus-ide-ui/p-abcf0172.entry.js +0 -1
  139. package/dist/genexus-ide-ui/p-b207b863.entry.js +0 -1
  140. package/dist/genexus-ide-ui/p-ee85040d.entry.js +0 -1
@@ -32,7 +32,7 @@ import { d as defineCustomElement$4 } from './text.js';
32
32
  import { d as defineCustomElement$3 } from './title2.js';
33
33
  import { d as defineCustomElement$2 } from './tooltip.js';
34
34
 
35
- const wwImagesCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}ch-grid-column:first-child{padding-inline-start:var(--gxg-container--padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gxg-container--padding) !important}ch-grid-cell{--spacing-comp-02:var(--gxg-container--padding)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);font-family:var(--font-family-primary);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block}.filter--padding{padding:var(--gxg-container--padding)}.filter--gap{gap:var(--gx-ide-grid-row-gap)}.filter{display:flex;flex-direction:column}.filter__first-row{display:flex;gap:var(--gx-ide-grid-column-gap)}.filter__first-row .name,.filter__first-row .module-folder{flex:1}.filter__first-row .filter-btn{flex:none}.filter__first-row .second-column{display:flex;flex-direction:row;align-items:end;gap:var(--gx-ide-grid-column-gap)}.filter__first-row>*{flex:1}.filter .checkboxes-label-wrapper{display:flex;flex-direction:column;gap:0}.filter .checkboxes-wrapper{display:flex;gap:var(--gx-ide-grid-column-gap);border:1px solid var(--gray-02);border-radius:var(--border-radius-sm);height:var(--gxg-form-text-height);box-sizing:border-box;align-items:center;padding-inline-start:var(--spacing-comp-01)}.filter .user{max-width:100% !important}.filters-outer-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows 200ms}.filters-outer-wrapper--hidden{grid-template-rows:0fr}.filters-inner-wrapper{padding-top:var(--gxg-container--padding);overflow:hidden;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr;grid-template-rows:repeat(4, min-content);grid-template-areas:\"search-contents search-contents category category options options\" \"date-time date-time after-date-time after-date-time user user\" \"style style language language density density\" \"layer layer . . . .\"}.filters-inner-wrapper .search-contents{grid-area:search-contents}.filters-inner-wrapper .category{grid-area:category}.filters-inner-wrapper .options{grid-area:options}.filters-inner-wrapper .date-time{grid-area:date-time}.filters-inner-wrapper .after-date-time{grid-area:after-date-time}.filters-inner-wrapper .user{grid-area:user}.filters-inner-wrapper .style{grid-area:style}.filters-inner-wrapper .language{grid-area:language}.filters-inner-wrapper .density{grid-area:density}.filters-inner-wrapper .layer{grid-area:layer}.master-wrapper{height:100%;display:grid;grid-template-rows:auto 1fr}.grid-images-container{border-top:1px solid var(--gx-ide-container-border-color);display:grid;grid-template-columns:1fr 220px;grid-column-gap:0;grid-row-gap:0;overflow:auto}.images-information__header{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap)}.images-information__header-title{flex:none}.images-grid{grid-template-columns:repeat(2, 1fr);grid-column-gap:0}.images-grid>:nth-child(1){grid-area:1/1/1/3}.images-container .image-item{display:inline-block;width:50%;height:110px;}.images-container .image-item__container{padding:var(--gxg-container--padding)}.images-container .image-item__container img{width:100%;height:100%;object-fit:scale-down}.images-container .image-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;width:100%;display:block;font-size:10px;padding:4px 8px;box-sizing:border-box;background-color:var(--gray-00)}.images-container .image-item:nth-child(odd) .image-item__name{border-inline-end:1px solid var(--gray-02)}.objects-count{grid-template-columns:repeat(2, 1fr)}.objects-count *:nth-child(2){justify-content:flex-end;align-items:flex-start}.hiChar{color:var(--gx-ide-hi-char-color);font-weight:600}";
35
+ const wwImagesCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}ch-grid-column:first-child{padding-inline-start:var(--gxg-container--padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gxg-container--padding) !important}ch-grid-cell{--spacing-comp-02:var(--gxg-container--padding)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);font-family:var(--font-family-primary);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block}.filter--padding{padding:var(--gxg-container--padding)}.filter--gap{gap:var(--gx-ide-grid-row-gap)}.filter{display:flex;flex-direction:column}.filter__first-row{display:flex;gap:var(--gx-ide-grid-column-gap)}.filter__first-row .name,.filter__first-row .module-folder{flex:1}.filter__first-row .filter-btn{flex:none}.filter__first-row .second-column{display:flex;flex-direction:row;align-items:end;gap:var(--gx-ide-grid-column-gap)}.filter__first-row>*{flex:1}.filter .checkboxes-label-wrapper{display:flex;flex-direction:column;gap:0}.filter .checkboxes-wrapper{display:flex;gap:var(--gx-ide-grid-column-gap);border:1px solid var(--gray-02);border-radius:var(--border-radius-sm);height:var(--gxg-form-text-height);box-sizing:border-box;align-items:center;padding-inline-start:var(--spacing-comp-01)}.filter .user{max-width:100% !important}.filters-outer-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows 200ms}.filters-outer-wrapper--hidden{grid-template-rows:0fr}.filters-inner-wrapper{padding-top:var(--gxg-container--padding);overflow:hidden;display:grid;grid-template-columns:repeat(12, 1fr);grid-template-rows:repeat(3, 1fr)}.filters-inner-wrapper .search-contents{grid-area:1/1/2/5}.filters-inner-wrapper .category{grid-area:1/5/2/9}.filters-inner-wrapper .options{grid-area:1/9/2/13}.filters-inner-wrapper .date-time{grid-area:2/1/3/5}.filters-inner-wrapper .after-date-time{grid-area:2/5/3/9}.filters-inner-wrapper .user{grid-area:2/9/3/13}.filters-inner-wrapper .style{grid-area:3/1/4/4}.filters-inner-wrapper .language{grid-area:3/4/4/7}.filters-inner-wrapper .density{grid-area:3/7/4/10}.filters-inner-wrapper .layer{grid-area:3/10/4/13}.master-wrapper{height:100%;display:grid;grid-template-rows:auto 1fr}.grid-images-container{border-top:1px solid var(--gx-ide-container-border-color);display:grid;grid-template-columns:1fr 220px;grid-column-gap:0;grid-row-gap:0;overflow:auto}.images-information__header{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap)}.images-information__header-title{flex:none}.images-grid{grid-template-columns:repeat(2, 1fr);grid-column-gap:0}.images-grid>:nth-child(1){grid-area:1/1/1/3}.images-container .image-item{display:inline-block;width:50%;height:110px;}.images-container .image-item__container{padding:var(--gxg-container--padding)}.images-container .image-item__container img{width:100%;height:100%;object-fit:scale-down}.images-container .image-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;width:100%;display:block;font-size:10px;padding:4px 8px;box-sizing:border-box;background-color:var(--gray-00)}.images-container .image-item:nth-child(odd) .image-item__name{border-inline-end:1px solid var(--gray-02)}.objects-count{grid-template-columns:repeat(2, 1fr)}.objects-count *:nth-child(2){justify-content:flex-end;align-items:flex-start}.hiChar{color:var(--gx-ide-hi-char-color);font-weight:600}";
36
36
 
37
37
  const GxIdeWWImages = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
38
38
  constructor() {
@@ -119,7 +119,7 @@ const GxIdeWWImages = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
119
119
  this.renderImagesData = () => {
120
120
  return (
121
121
  /* images information*/
122
- h("gx-ide-container", { contentBorderEnd: true, noContentPadding: true, titleType: "secondary", containerTitle: !this.secondaryFilter ? this._componentLocale.imagesDataTitle : null, class: { "images-information": true, "overflow-auto": true }, part: "grid-container" }, this.secondaryFilter ? (h("header", { class: "images-information__header", slot: "header" }, h("gx-ide-title", { type: "secondary", class: "images-information__header-title" }, this._componentLocale.imagesDataTitle), h("gxg-form-text", { icon: "gemini-tools/search", "icon-position": "start", placeholder: "Search by any field", onInput: this.filterInputHandler }))) : null, h("gxg-grid", { part: "images-table", "ellipsis-cell-wrapper": true, noBorder: true }, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridEl = el), part: "ch-grid-images" }, h("ch-grid-columnset", null, h("ch-grid-column", { columnName: "", columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.module, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedDate, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.lastUser, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.importDate, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto })), this.filteredImages.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }), h("gxg-icon", { type: obj.icon, color: "auto" })), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.name, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.module, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.description, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(`${formatDate(obj.modifiedDate)}`, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.lastUser, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(`${formatDate(obj.importDate)}`, this.filterImagesInputValue))))))))));
122
+ h("gx-ide-container", { contentBorderEnd: true, noContentPadding: true, titleType: "secondary", containerTitle: !this.secondaryFilter ? this._componentLocale.imagesDataTitle : null, class: { "images-information": true, "overflow-auto": true }, part: "grid-container" }, this.secondaryFilter ? (h("header", { class: "images-information__header", slot: "header" }, h("gx-ide-title", { type: "secondary", class: "images-information__header-title" }, this._componentLocale.imagesDataTitle), h("gxg-form-text", { icon: "gemini-tools/search", "icon-position": "start", placeholder: "Search by any field", onInput: this.filterInputHandler }))) : null, h("gxg-grid", { part: "images-table", "ellipsis-cell-wrapper": true, noBorder: true }, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridEl = el), part: "ch-grid-images", rowSelectionMode: "single" }, h("ch-grid-columnset", null, h("ch-grid-column", { columnName: "", columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.module, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, columnNameHidden: false, settingable: false, size: gridCommon.colSize.common }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedDate, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.lastUser, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.importDate, columnNameHidden: false, settingable: false, size: gridCommon.colSize.auto })), this.filteredImages.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }), h("gxg-icon", { type: obj.icon, color: "auto" })), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.name, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.module, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.description, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(`${formatDate(obj.modifiedDate)}`, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(obj.lastUser, this.filterImagesInputValue))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, hiChar(`${formatDate(obj.importDate)}`, this.filterImagesInputValue))))))))));
123
123
  };
124
124
  this.renderImages = () => {
125
125
  return (
@@ -236,7 +236,7 @@ const GxIdeWWImages = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
236
236
  this.getImages();
237
237
  });
238
238
  // for grid selection
239
- this.chGridEl.addEventListener("rowClicked", (ev) => {
239
+ this.chGridEl.addEventListener("selectionChanged", (ev) => {
240
240
  this.loadImageItemsCallback(ev.detail.rowId).then((items) => {
241
241
  this.imagesSelectedItems = items;
242
242
  });
@@ -1,4 +1,5 @@
1
1
  /* GenexusIdeUi custom elements */
2
+ export { GxIdeTemplate as GxIdeAiAssistant } from '../types/components/ai-assistant/ai-assistant';
2
3
  export { GxIdeBpmAppDeclaration as GxIdeBpmAppDeclaration } from '../types/components/bpm-application-declaration/bpm-app-declaration';
3
4
  export { GxIdeContainer as GxIdeContainer } from '../types/components/_helpers/container/container';
4
5
  export { GxIdeCreateKbFromServer as GxIdeCreateKbFromServer } from '../types/components/create-kb-from-server/create-kb-from-server';
@@ -39,6 +39,7 @@ export { ChPaginatorPages, defineCustomElement as defineCustomElementChPaginator
39
39
  export { ChQr, defineCustomElement as defineCustomElementChQr } from './ch-qr.js';
40
40
  export { ChSelect, defineCustomElement as defineCustomElementChSelect } from './ch-select.js';
41
41
  export { ChSelectOption, defineCustomElement as defineCustomElementChSelectOption } from './ch-select-option.js';
42
+ export { ChShortcuts, defineCustomElement as defineCustomElementChShortcuts } from './ch-shortcuts.js';
42
43
  export { ChSidebarMenu, defineCustomElement as defineCustomElementChSidebarMenu } from './ch-sidebar-menu.js';
43
44
  export { ChSidebarMenuList, defineCustomElement as defineCustomElementChSidebarMenuList } from './ch-sidebar-menu-list.js';
44
45
  export { ChSidebarMenuListItem, defineCustomElement as defineCustomElementChSidebarMenuListItem } from './ch-sidebar-menu-list-item.js';
@@ -64,6 +65,7 @@ export { ChWindow, defineCustomElement as defineCustomElementChWindow } from './
64
65
  export { ChWindowClose, defineCustomElement as defineCustomElementChWindowClose } from './ch-window-close.js';
65
66
  export { GxGridChameleon, defineCustomElement as defineCustomElementGxGridChameleon } from './gx-grid-chameleon.js';
66
67
  export { GxGridChameleonColumnFilter, defineCustomElement as defineCustomElementGxGridChameleonColumnFilter } from './gx-grid-chameleon-column-filter.js';
68
+ export { GxIdeAiAssistant, defineCustomElement as defineCustomElementGxIdeAiAssistant } from './gx-ide-ai-assistant.js';
67
69
  export { GxIdeBpmAppDeclaration, defineCustomElement as defineCustomElementGxIdeBpmAppDeclaration } from './gx-ide-bpm-app-declaration.js';
68
70
  export { GxIdeContainer, defineCustomElement as defineCustomElementGxIdeContainer } from './gx-ide-container.js';
69
71
  export { GxIdeCreateKbFromServer, defineCustomElement as defineCustomElementGxIdeCreateKbFromServer } from './gx-ide-create-kb-from-server.js';
@@ -3,7 +3,7 @@ import { s as state } from './store.js';
3
3
  import { d as defineCustomElement$2 } from './icon.js';
4
4
  import { d as defineCustomElement$1 } from './icon2.js';
5
5
 
6
- const textCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}: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);height: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}:host{display:flex;font-size:14px}:host .wrapper{display:flex;flex-direction:row;gap:var(--spacing-comp-02)}:host p,:host q,:host a{display:block;margin:0;padding:0;line-height:1.6em}:host p.no-line,:host q.no-line,:host a.no-line{text-decoration:none}:host .disabled{pointer-events:none;color:var(--gxg-color--disabled) !important}:host([text-align=start]){justify-content:flex-start}:host([text-align=center]){justify-content:center}:host([text-align=center]) .wrapper *{text-align:center}:host([text-align=end]){justify-content:flex-end}:host([padding=s]){padding:var(--spacing-comp-01)}:host([padding=m]){padding:var(--spacing-comp-02)}:host([type=button-like]) button{background-color:transparent;border:none;font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary-enabled);letter-spacing:var(--letter-spacing-xs);cursor:pointer}:host([type=button-like]) button:hover{color:var(--color-primary-hover)}:host([type=button-like]) button:focus{outline:none;text-decoration:underline}:host(.icon){display:flex;flex-direction:row}:host(.icon--center) .wrapper{align-items:center}:host(.icon--top) .wrapper{align-items:flex-start}:host(.large) .gxg-text,:host(.large) .gxg-text--gray,:host(.large) .gxg-quote,:host(.large) .gxg-link,:host(.large) .gxg-link-gray,:host(.large) .gxg-alert-error,:host(.large) .gxg-alert-warning,:host(.large) .gxg-alert-success{font-size:var(--font-size-lg)}:host(.mercury) .gxg-text,:host(.mercury) .gxg-link{font-size:var(--mc-font-size-xs)}:host(.mercury) .gxg-text{color:var(--gray-02)}:host(.mercury[italic]){font-style:italic}";
6
+ const textCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0;}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px;}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}: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);height: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}:host{display:flex;font-size:14px}:host .wrapper{display:flex;flex-direction:row;gap:var(--spacing-comp-02)}:host p,:host q,:host a{display:block;margin:0;padding:0;line-height:1.6em}:host p.no-line,:host q.no-line,:host a.no-line{text-decoration:none}:host .disabled{pointer-events:none;color:var(--gxg-color--disabled) !important}:host([text-align=start]){justify-content:flex-start}:host([text-align=center]){justify-content:center}:host([text-align=center]) .wrapper *{text-align:center}:host([text-align=end]){justify-content:flex-end}:host([padding=s]){padding:var(--spacing-comp-01)}:host([padding=m]){padding:var(--spacing-comp-02)}:host([type=button-like]) button{background-color:transparent;border:none;font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary-enabled);letter-spacing:var(--letter-spacing-xs);cursor:pointer}:host([type=button-like]) button:hover{color:var(--color-primary-hover)}:host([type=button-like]) button:focus{outline:none;text-decoration:underline}:host(.icon){display:flex;flex-direction:row}:host(.icon--center) .wrapper{align-items:center}:host(.icon--top) .wrapper{align-items:flex-start}:host(.large) .gxg-text,:host(.large) .gxg-text--gray,:host(.large) .gxg-quote,:host(.large) .gxg-link,:host(.large) .gxg-link-gray,:host(.large) .gxg-alert-error,:host(.large) .gxg-alert-warning,:host(.large) .gxg-alert-success{font-size:var(--font-size-lg)}:host(.mercury){color:var(--gray-02)}:host(.mercury) .gxg-text,:host(.mercury) .gxg-link{font-size:var(--mc-font-size-xs)}:host(.mercury) .gxg-text{color:inherit}:host(.mercury[italic]){font-style:italic}";
7
7
 
8
8
  const GxgText = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
9
  constructor() {
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, writeTask, Host } from
2
2
  import { m as mouseEventModifierKey } from './helpers.js';
3
3
  import { d as defineCustomElement$1 } from './checkbox.js';
4
4
 
5
- const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}";
5
+ const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}";
6
6
 
7
7
  const resetDragImage = new Image();
8
8
  const DISTANCE_TO_CHECKBOX_CUSTOM_VAR = "--ch-tree-view-item-distance-to-checkbox";
@@ -3,12 +3,12 @@ import { d as defineCustomElement$3 } from './checkbox.js';
3
3
  import { d as defineCustomElement$2 } from './tree-view.js';
4
4
  import { d as defineCustomElement$1 } from './tree-view-item.js';
5
5
 
6
- const filterWithCamelCase = (stringToFilter, filter, camelCase) => camelCase
6
+ const filterWithCase = (stringToFilter, filter, matchCase) => matchCase
7
7
  ? stringToFilter.includes(filter)
8
8
  : stringToFilter.toLowerCase().includes(filter.toLowerCase());
9
- const filterWithString = (stringToFilter, filter, filterOptions) => filterOptions.regularExpression
9
+ const filterWithString = (stringToFilter, filter, filterOptions) => (filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.regularExpression)
10
10
  ? stringToFilter.match(filter) !== null
11
- : filterWithCamelCase(stringToFilter, filter, filterOptions.camelCase);
11
+ : filterWithCase(stringToFilter, filter, filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.matchCase);
12
12
  const filterDictionary = {
13
13
  caption: (item, filterInfo) => {
14
14
  var _a;
@@ -74,13 +74,16 @@ function getImage(name, gxImageConstructor) {
74
74
  return gximage;
75
75
  }
76
76
  }
77
- const fromGxImageToURL = (image, Settings, gxImageConstructor) => {
77
+ const fromGxImageToURL = (gxImage, Settings, gxImageConstructor) => {
78
+ if (!gxImage) {
79
+ return;
80
+ }
78
81
  let url = "";
79
- if (image.id) {
80
- url = getImage(image.id, gxImageConstructor).uri;
82
+ if (gxImage.id) {
83
+ url = getImage(gxImage.id, gxImageConstructor).uri;
81
84
  }
82
85
  else {
83
- url = image.uri;
86
+ url = gxImage.uri;
84
87
  }
85
88
  if (!url) {
86
89
  return "";
@@ -145,6 +148,17 @@ const GXRenderItem = (itemModel, treeState, treeHasFilter, lastItem, level) => {
145
148
  ? subModel.id === itemModel.lastItemId
146
149
  : index === itemModel.items.length - 1), level + 1))));
147
150
  };
151
+ const defaultSortItemsCallback = (subModel) => {
152
+ subModel.sort((a, b) => {
153
+ if (a.order < b.order) {
154
+ return -1;
155
+ }
156
+ if (a.order > b.order) {
157
+ return 0;
158
+ }
159
+ return a.caption <= b.caption ? -1 : 0;
160
+ });
161
+ };
148
162
  const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
149
163
  constructor() {
150
164
  super();
@@ -239,6 +253,10 @@ const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
239
253
  * lines.
240
254
  */
241
255
  this.showLines = "none";
256
+ /**
257
+ * Callback that is executed when the treeModel is changed to order its items.
258
+ */
259
+ this.sortItemsCallback = defaultSortItemsCallback;
242
260
  /**
243
261
  * Set this attribute if you want all the children item's checkboxes to be
244
262
  * checked when the parent item checkbox is checked, or to be unchecked when
@@ -304,10 +322,6 @@ const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
304
322
  this.itemContextmenu.emit(event.detail);
305
323
  };
306
324
  this.handleItemsDropped = (event) => {
307
- if (!this.dropItemsCallback) {
308
- return;
309
- }
310
- event.stopPropagation();
311
325
  const dataTransferInfo = event.detail;
312
326
  const newContainer = dataTransferInfo.newContainer;
313
327
  const newParentId = newContainer.id;
@@ -316,55 +330,24 @@ const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
316
330
  return;
317
331
  }
318
332
  const draggedItems = dataTransferInfo.draggedItems;
319
- if (draggedItems.length === 0) {
333
+ if (draggedItems.length === 0 || !this.dropItemsCallback) {
320
334
  return;
321
335
  }
336
+ event.stopPropagation();
322
337
  const promise = this.dropItemsCallback(dataTransferInfo);
323
338
  this.waitDropProcessing = true;
324
339
  promise.then(async (response) => {
340
+ this.dropItems(response.acceptDrop, dataTransferInfo, response.items);
325
341
  this.waitDropProcessing = false;
326
- if (!response.acceptDrop) {
327
- return;
328
- }
329
- const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
330
- // Only move the items to the new parent, keeping the state
331
- if (dataTransferInfo.dropInTheSameTree) {
332
- // Add the UI models to the new container and remove the UI models from
333
- // the old containers
334
- draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
335
- // When the selected items are moved, the tree must remove its internal
336
- // state to not have undefined references
337
- if (dataTransferInfo.draggingSelectedItems) {
338
- await this.treeRef.clearSelectedItemsInfo();
339
- }
340
- }
341
- // Add the new items
342
- else {
343
- if (response.items == null) {
344
- return;
345
- }
346
- // Add new items to the parent
347
- newParentUIModel.items.push(...response.items);
348
- // Flatten the new UI models
349
- response.items.forEach(this.flattenItemUIModel(newParentUIModel));
350
- }
351
- this.sortItems(newParentUIModel.items);
352
- // Open the item to visualize the new subitems
353
- newParentUIModel.expanded = true;
354
- // Re-sync checked items
355
- this.emitCheckedItemsChange();
356
- // Update filters
357
- this.processFilters();
358
- // There is no need to force and update, since the waitDropProcessing
359
- // prop was modified
360
342
  });
361
343
  };
362
344
  this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
363
345
  const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
364
346
  const item = itemUIModelExtended.item;
365
347
  const oldParentItem = itemUIModelExtended.parentItem;
366
- // Remove the UI model from the previous parent
367
- oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
348
+ // Remove the UI model from the previous parent. The equality function
349
+ // must be by index, not by object reference
350
+ oldParentItem.items.splice(oldParentItem.items.findIndex(el => el.id === item.id), 1);
368
351
  // Add the UI Model to the new parent
369
352
  newParentUIModel.items.push(item);
370
353
  // Reference the new parent in the item
@@ -423,6 +406,47 @@ const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
423
406
  handleTreeModelChange() {
424
407
  this.flattenModel();
425
408
  }
409
+ /**
410
+ * Given the drop accepting, the data transfer info and the external items,
411
+ * it process the drops of the items in the tree.
412
+ */
413
+ async dropItems(acceptDrop, dataTransferInfo, items) {
414
+ if (!acceptDrop) {
415
+ return;
416
+ }
417
+ const newParentId = dataTransferInfo.newContainer.id;
418
+ const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
419
+ // Only move the items to the new parent, keeping the state
420
+ if (dataTransferInfo.dropInTheSameTree) {
421
+ // Add the UI models to the new container and remove the UI models from
422
+ // the old containers
423
+ dataTransferInfo.draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
424
+ // When the selected items are moved, the tree must remove its internal
425
+ // state to not have undefined references
426
+ if (dataTransferInfo.draggingSelectedItems) {
427
+ await this.treeRef.clearSelectedItemsInfo();
428
+ }
429
+ }
430
+ // Add the new items
431
+ else {
432
+ if (items == null) {
433
+ return;
434
+ }
435
+ // Add new items to the parent
436
+ newParentUIModel.items.push(...items);
437
+ // Flatten the new UI models
438
+ items.forEach(this.flattenItemUIModel(newParentUIModel));
439
+ }
440
+ this.sortItems(newParentUIModel.items);
441
+ // Open the item to visualize the new subitems
442
+ newParentUIModel.expanded = true;
443
+ // Re-sync checked items
444
+ this.emitCheckedItemsChange();
445
+ // Update filters
446
+ this.processFilters();
447
+ // Force re-render
448
+ forceUpdate(this);
449
+ }
426
450
  /**
427
451
  * Given an item id, an array of items to add, the download status and the
428
452
  * lazy state, updates the item's UI Model.
@@ -771,6 +795,7 @@ const ChTreeViewRender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
771
795
  "treeModel": [16],
772
796
  "useGxRender": [4, "use-gx-render"],
773
797
  "waitDropProcessing": [32],
798
+ "dropItems": [64],
774
799
  "loadLazyContent": [64],
775
800
  "scrollIntoVisible": [64],
776
801
  "toggleItems": [64],
@@ -108,8 +108,8 @@ const ChTreeView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
108
108
  this.needForRAF = false; // No need to call RAF up until next frame
109
109
  requestAnimationFrame(() => {
110
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`);
111
+ this.el.style.setProperty(POSITION_X_DRAG_CUSTOM_VAR, `${this.lastDragEvent.clientX}px`);
112
+ this.el.style.setProperty(POSITION_Y_DRAG_CUSTOM_VAR, `${this.lastDragEvent.clientY}px`);
113
113
  });
114
114
  };
115
115
  this.fixScrollPositionOnDrag = () => {
@@ -193,8 +193,8 @@ const ChTreeView = class {
193
193
  this.needForRAF = false; // No need to call RAF up until next frame
194
194
  requestAnimationFrame(() => {
195
195
  this.needForRAF = true; // RAF now consumes the movement instruction so a new one can come
196
- this.el.style.setProperty(POSITION_X_DRAG_CUSTOM_VAR, `${this.lastDragEvent.pageX}px`);
197
- this.el.style.setProperty(POSITION_Y_DRAG_CUSTOM_VAR, `${this.lastDragEvent.pageY}px`);
196
+ this.el.style.setProperty(POSITION_X_DRAG_CUSTOM_VAR, `${this.lastDragEvent.clientX}px`);
197
+ this.el.style.setProperty(POSITION_Y_DRAG_CUSTOM_VAR, `${this.lastDragEvent.clientY}px`);
198
198
  });
199
199
  };
200
200
  this.fixScrollPositionOnDrag = () => {
@@ -563,7 +563,7 @@ const ChTreeView = class {
563
563
  };
564
564
  ChTreeView.style = treeViewCss;
565
565
 
566
- const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}";
566
+ const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}";
567
567
 
568
568
  const resetDragImage = new Image();
569
569
  const DISTANCE_TO_CHECKBOX_CUSTOM_VAR = "--ch-tree-view-item-distance-to-checkbox";
@@ -1162,12 +1162,12 @@ const ChTreeViewItem = class {
1162
1162
  };
1163
1163
  ChTreeViewItem.style = treeViewItemCss;
1164
1164
 
1165
- const filterWithCamelCase = (stringToFilter, filter, camelCase) => camelCase
1165
+ const filterWithCase = (stringToFilter, filter, matchCase) => matchCase
1166
1166
  ? stringToFilter.includes(filter)
1167
1167
  : stringToFilter.toLowerCase().includes(filter.toLowerCase());
1168
- const filterWithString = (stringToFilter, filter, filterOptions) => filterOptions.regularExpression
1168
+ const filterWithString = (stringToFilter, filter, filterOptions) => (filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.regularExpression)
1169
1169
  ? stringToFilter.match(filter) !== null
1170
- : filterWithCamelCase(stringToFilter, filter, filterOptions.camelCase);
1170
+ : filterWithCase(stringToFilter, filter, filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.matchCase);
1171
1171
  const filterDictionary = {
1172
1172
  caption: (item, filterInfo) => {
1173
1173
  var _a;
@@ -1233,13 +1233,16 @@ function getImage(name, gxImageConstructor) {
1233
1233
  return gximage;
1234
1234
  }
1235
1235
  }
1236
- const fromGxImageToURL = (image, Settings, gxImageConstructor) => {
1236
+ const fromGxImageToURL = (gxImage, Settings, gxImageConstructor) => {
1237
+ if (!gxImage) {
1238
+ return;
1239
+ }
1237
1240
  let url = "";
1238
- if (image.id) {
1239
- url = getImage(image.id, gxImageConstructor).uri;
1241
+ if (gxImage.id) {
1242
+ url = getImage(gxImage.id, gxImageConstructor).uri;
1240
1243
  }
1241
1244
  else {
1242
- url = image.uri;
1245
+ url = gxImage.uri;
1243
1246
  }
1244
1247
  if (!url) {
1245
1248
  return "";
@@ -1304,6 +1307,17 @@ const GXRenderItem = (itemModel, treeState, treeHasFilter, lastItem, level) => {
1304
1307
  ? subModel.id === itemModel.lastItemId
1305
1308
  : index === itemModel.items.length - 1), level + 1))));
1306
1309
  };
1310
+ const defaultSortItemsCallback = (subModel) => {
1311
+ subModel.sort((a, b) => {
1312
+ if (a.order < b.order) {
1313
+ return -1;
1314
+ }
1315
+ if (a.order > b.order) {
1316
+ return 0;
1317
+ }
1318
+ return a.caption <= b.caption ? -1 : 0;
1319
+ });
1320
+ };
1307
1321
  const ChTreeViewRender = class {
1308
1322
  constructor(hostRef) {
1309
1323
  registerInstance(this, hostRef);
@@ -1397,6 +1411,10 @@ const ChTreeViewRender = class {
1397
1411
  * lines.
1398
1412
  */
1399
1413
  this.showLines = "none";
1414
+ /**
1415
+ * Callback that is executed when the treeModel is changed to order its items.
1416
+ */
1417
+ this.sortItemsCallback = defaultSortItemsCallback;
1400
1418
  /**
1401
1419
  * Set this attribute if you want all the children item's checkboxes to be
1402
1420
  * checked when the parent item checkbox is checked, or to be unchecked when
@@ -1462,10 +1480,6 @@ const ChTreeViewRender = class {
1462
1480
  this.itemContextmenu.emit(event.detail);
1463
1481
  };
1464
1482
  this.handleItemsDropped = (event) => {
1465
- if (!this.dropItemsCallback) {
1466
- return;
1467
- }
1468
- event.stopPropagation();
1469
1483
  const dataTransferInfo = event.detail;
1470
1484
  const newContainer = dataTransferInfo.newContainer;
1471
1485
  const newParentId = newContainer.id;
@@ -1474,55 +1488,24 @@ const ChTreeViewRender = class {
1474
1488
  return;
1475
1489
  }
1476
1490
  const draggedItems = dataTransferInfo.draggedItems;
1477
- if (draggedItems.length === 0) {
1491
+ if (draggedItems.length === 0 || !this.dropItemsCallback) {
1478
1492
  return;
1479
1493
  }
1494
+ event.stopPropagation();
1480
1495
  const promise = this.dropItemsCallback(dataTransferInfo);
1481
1496
  this.waitDropProcessing = true;
1482
1497
  promise.then(async (response) => {
1498
+ this.dropItems(response.acceptDrop, dataTransferInfo, response.items);
1483
1499
  this.waitDropProcessing = false;
1484
- if (!response.acceptDrop) {
1485
- return;
1486
- }
1487
- const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
1488
- // Only move the items to the new parent, keeping the state
1489
- if (dataTransferInfo.dropInTheSameTree) {
1490
- // Add the UI models to the new container and remove the UI models from
1491
- // the old containers
1492
- draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
1493
- // When the selected items are moved, the tree must remove its internal
1494
- // state to not have undefined references
1495
- if (dataTransferInfo.draggingSelectedItems) {
1496
- await this.treeRef.clearSelectedItemsInfo();
1497
- }
1498
- }
1499
- // Add the new items
1500
- else {
1501
- if (response.items == null) {
1502
- return;
1503
- }
1504
- // Add new items to the parent
1505
- newParentUIModel.items.push(...response.items);
1506
- // Flatten the new UI models
1507
- response.items.forEach(this.flattenItemUIModel(newParentUIModel));
1508
- }
1509
- this.sortItems(newParentUIModel.items);
1510
- // Open the item to visualize the new subitems
1511
- newParentUIModel.expanded = true;
1512
- // Re-sync checked items
1513
- this.emitCheckedItemsChange();
1514
- // Update filters
1515
- this.processFilters();
1516
- // There is no need to force and update, since the waitDropProcessing
1517
- // prop was modified
1518
1500
  });
1519
1501
  };
1520
1502
  this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
1521
1503
  const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
1522
1504
  const item = itemUIModelExtended.item;
1523
1505
  const oldParentItem = itemUIModelExtended.parentItem;
1524
- // Remove the UI model from the previous parent
1525
- oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
1506
+ // Remove the UI model from the previous parent. The equality function
1507
+ // must be by index, not by object reference
1508
+ oldParentItem.items.splice(oldParentItem.items.findIndex(el => el.id === item.id), 1);
1526
1509
  // Add the UI Model to the new parent
1527
1510
  newParentUIModel.items.push(item);
1528
1511
  // Reference the new parent in the item
@@ -1581,6 +1564,47 @@ const ChTreeViewRender = class {
1581
1564
  handleTreeModelChange() {
1582
1565
  this.flattenModel();
1583
1566
  }
1567
+ /**
1568
+ * Given the drop accepting, the data transfer info and the external items,
1569
+ * it process the drops of the items in the tree.
1570
+ */
1571
+ async dropItems(acceptDrop, dataTransferInfo, items) {
1572
+ if (!acceptDrop) {
1573
+ return;
1574
+ }
1575
+ const newParentId = dataTransferInfo.newContainer.id;
1576
+ const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
1577
+ // Only move the items to the new parent, keeping the state
1578
+ if (dataTransferInfo.dropInTheSameTree) {
1579
+ // Add the UI models to the new container and remove the UI models from
1580
+ // the old containers
1581
+ dataTransferInfo.draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
1582
+ // When the selected items are moved, the tree must remove its internal
1583
+ // state to not have undefined references
1584
+ if (dataTransferInfo.draggingSelectedItems) {
1585
+ await this.treeRef.clearSelectedItemsInfo();
1586
+ }
1587
+ }
1588
+ // Add the new items
1589
+ else {
1590
+ if (items == null) {
1591
+ return;
1592
+ }
1593
+ // Add new items to the parent
1594
+ newParentUIModel.items.push(...items);
1595
+ // Flatten the new UI models
1596
+ items.forEach(this.flattenItemUIModel(newParentUIModel));
1597
+ }
1598
+ this.sortItems(newParentUIModel.items);
1599
+ // Open the item to visualize the new subitems
1600
+ newParentUIModel.expanded = true;
1601
+ // Re-sync checked items
1602
+ this.emitCheckedItemsChange();
1603
+ // Update filters
1604
+ this.processFilters();
1605
+ // Force re-render
1606
+ forceUpdate(this);
1607
+ }
1584
1608
  /**
1585
1609
  * Given an item id, an array of items to add, the download status and the
1586
1610
  * lazy state, updates the item's UI Model.