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