@genexus/genexus-ide-ui 0.0.60 → 0.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ch-checkbox.cjs.entry.js +93 -0
- package/dist/cjs/ch-grid_8.cjs.entry.js +1 -1
- package/dist/cjs/{ch-checkbox_3.cjs.entry.js → ch-tree-x_3.cjs.entry.js} +471 -87
- 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-file-selector.cjs.entry.js +47 -0
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +24 -14
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +352 -0
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +252 -0
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +10 -5
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +17 -14
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +12 -7
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +22 -11
- 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-status-buttons_2.cjs.entry.js +148 -0
- 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 +36 -9
- 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 +26 -17
- package/dist/cjs/gx-ide-template.cjs.entry.js +9 -4
- package/dist/cjs/gx-ide-test.cjs.entry.js +8 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +40 -30
- package/dist/cjs/gxg-button-group.cjs.entry.js +1 -1
- 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 +109 -0
- package/dist/cjs/gxg-tree_2.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-9523495a.js → helpers-b62ea39c.js} +12 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +22 -14
- package/dist/collection/common/config.js +5 -1
- package/dist/collection/common/grid.js +1 -0
- package/dist/collection/common/helpers.js +11 -0
- package/dist/collection/common/render-list-item.js +12 -0
- package/dist/collection/components/{container → _helpers/container}/container.css +57 -17
- package/dist/collection/components/{container → _helpers/container}/container.js +223 -26
- package/dist/collection/components/{entity-selector → _helpers/entity-selector}/entity-selector.js +5 -5
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +96 -0
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +352 -0
- package/dist/collection/components/{list-selector → _helpers/list-selector}/list-selector.css +6 -0
- package/dist/collection/components/_helpers/list-selector/list-selector.js +375 -0
- package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +93 -0
- package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.js +325 -0
- 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.js +28 -1
- 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/file-selector/file-selector.css +366 -0
- package/dist/collection/components/file-selector/file-selector.js +185 -0
- package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +2 -0
- package/dist/collection/components/kb-manager-export/helpers.js +3 -4
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +31 -16
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +35 -10
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +32 -0
- package/dist/collection/components/kb-manager-import/helpers.js +128 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.css +253 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +424 -0
- 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 +31 -5
- package/dist/collection/components/new-kb/new-kb.js +16 -13
- 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/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +3 -0
- package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json +3 -0
- 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/combo-box.js +1 -1
- package/dist/components/config.js +5 -1
- package/dist/components/container.js +74 -12
- 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-text.js +1 -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-file-selector.d.ts +11 -0
- package/dist/components/gx-ide-file-selector.js +105 -0
- package/dist/components/gx-ide-kb-manager-export.js +44 -28
- package/dist/components/gx-ide-kb-manager-import.d.ts +11 -0
- package/dist/components/gx-ide-kb-manager-import.js +514 -0
- package/dist/components/gx-ide-list-selector-item.js +1 -102
- package/dist/components/gx-ide-list-selector.js +1 -73
- package/dist/components/gx-ide-new-environment.js +21 -10
- package/dist/components/gx-ide-new-kb.js +27 -18
- 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 +47 -47
- package/dist/components/gx-ide-share-kb.js +27 -17
- package/dist/components/gx-ide-status-buttons.d.ts +11 -0
- package/dist/components/gx-ide-status-buttons.js +6 -0
- package/dist/components/gx-ide-status-buttons2.js +131 -0
- 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 +9 -2
- 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-container.js +251 -1
- package/dist/components/gxg-grid2.js +1 -1
- package/dist/components/gxg-ide-loader.js +1 -111
- 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 +148 -0
- package/dist/components/gxg-title.js +1 -1
- package/dist/components/gxg-tree-item2.js +1 -1
- package/dist/components/helpers2.js +12 -1
- package/dist/{esm/gxg-ide-loader.entry.js → components/ide-loader.js} +46 -7
- package/dist/components/index.d.ts +19 -13
- package/dist/components/index.js +8 -0
- package/dist/components/list-selector-item.js +175 -0
- package/dist/components/list-selector.js +146 -0
- package/dist/components/title.js +32 -37
- package/dist/{esm/gxg-title.entry.js → components/title2.js} +26 -8
- package/dist/components/tree-view.js +1 -6
- package/dist/esm/ch-checkbox.entry.js +89 -0
- package/dist/esm/ch-grid_8.entry.js +1 -1
- package/dist/esm/{ch-checkbox_3.entry.js → ch-tree-x_3.entry.js} +472 -88
- 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-file-selector.entry.js +43 -0
- package/dist/esm/gx-ide-kb-manager-export.entry.js +24 -14
- package/dist/esm/gx-ide-kb-manager-import.entry.js +348 -0
- package/dist/esm/gx-ide-list-selector_2.entry.js +247 -0
- package/dist/esm/gx-ide-new-environment.entry.js +10 -5
- package/dist/esm/gx-ide-new-kb.entry.js +17 -14
- package/dist/esm/gx-ide-new-object.entry.js +12 -7
- package/dist/esm/gx-ide-object-selector.entry.js +22 -11
- 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-status-buttons_2.entry.js +143 -0
- 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 +36 -9
- 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 +26 -17
- package/dist/esm/gx-ide-template.entry.js +9 -4
- package/dist/esm/gx-ide-test.entry.js +9 -2
- package/dist/esm/gx-ide-ww-images.entry.js +40 -30
- package/dist/esm/gxg-button-group.entry.js +1 -1
- 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 +105 -0
- package/dist/esm/gxg-tree_2.entry.js +1 -1
- package/dist/esm/{helpers-b99024f5.js → helpers-c29a9591.js} +12 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +3 -3
- 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 +2 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +32 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json +3 -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-1b51da5e.entry.js +1 -0
- package/dist/genexus-ide-ui/p-1ff3cf87.entry.js +1 -0
- package/dist/genexus-ide-ui/p-25aa052f.js +1 -0
- package/dist/genexus-ide-ui/p-283afc3b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2fbab2a9.js +1 -0
- package/dist/genexus-ide-ui/{p-53e5a04f.entry.js → p-3442d19a.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-38c18db5.js +1 -0
- package/dist/genexus-ide-ui/p-39968306.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-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-7c44a3c8.entry.js +1 -0
- package/dist/genexus-ide-ui/p-85597097.entry.js +1 -0
- package/dist/genexus-ide-ui/p-8738b63b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-8a29aa0e.entry.js +1 -0
- package/dist/genexus-ide-ui/p-9380b713.entry.js +1 -0
- package/dist/genexus-ide-ui/p-9e530c7d.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-c63d5b08.js → p-9ee8b615.js} +1 -1
- 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-aeb3b032.entry.js +1 -0
- package/dist/genexus-ide-ui/p-b0cb9690.entry.js +1 -0
- package/dist/genexus-ide-ui/p-c53522c9.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-d104f9a4.entry.js +1 -0
- 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/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 +74 -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 +86 -91
- 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 -0
- package/dist/types/common/render-list-item.d.ts +2 -0
- package/dist/types/common/types.d.ts +16 -0
- package/dist/types/components/{container → _helpers/container}/container.d.ts +46 -4
- 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 +46 -8
- package/dist/types/components/_helpers/list-selector/list-selector.d.ts +71 -0
- package/dist/types/components/_helpers/status-buttons/gx-ide-status-buttons.d.ts +63 -0
- 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 +7 -0
- 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/file-selector/file-selector.d.ts +38 -0
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +9 -2
- package/dist/types/components/kb-manager-import/helpers.d.ts +10 -0
- package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +110 -0
- 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/references.d.ts +3 -3
- 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 +609 -50
- package/package.json +3 -3
- package/dist/cjs/gx-ide-container.cjs.entry.js +0 -124
- package/dist/cjs/gx-ide-list-selector-item.cjs.entry.js +0 -89
- package/dist/cjs/gx-ide-list-selector.cjs.entry.js +0 -51
- package/dist/cjs/gxg-ide-loader.cjs.entry.js +0 -78
- package/dist/cjs/gxg-title.cjs.entry.js +0 -51
- package/dist/cjs/gxg-tree-view.cjs.entry.js +0 -481
- package/dist/collection/components/_template/template.css +0 -151
- package/dist/collection/components/list-selector/list-selector-item/list-selector-item.css +0 -51
- package/dist/collection/components/list-selector/list-selector-item/list-selector-item.js +0 -182
- package/dist/collection/components/list-selector/list-selector.js +0 -174
- package/dist/components/container2.js +0 -253
- package/dist/esm/gx-ide-container.entry.js +0 -120
- package/dist/esm/gx-ide-list-selector-item.entry.js +0 -85
- package/dist/esm/gx-ide-list-selector.entry.js +0 -47
- package/dist/esm/gxg-tree-view.entry.js +0 -477
- package/dist/genexus-ide-ui/p-00ee4c20.entry.js +0 -1
- 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-13a5bc23.entry.js +0 -1
- package/dist/genexus-ide-ui/p-16d35368.entry.js +0 -1
- package/dist/genexus-ide-ui/p-1b23aee7.entry.js +0 -1
- package/dist/genexus-ide-ui/p-3e16a46a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-462a8f83.entry.js +0 -1
- package/dist/genexus-ide-ui/p-4e601007.entry.js +0 -1
- package/dist/genexus-ide-ui/p-734d3baa.entry.js +0 -1
- package/dist/genexus-ide-ui/p-750c726a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-83f6db54.entry.js +0 -1
- package/dist/genexus-ide-ui/p-845f47ff.entry.js +0 -1
- package/dist/genexus-ide-ui/p-85164984.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-a4b359b1.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a5833100.entry.js +0 -1
- package/dist/genexus-ide-ui/p-aaa7e647.entry.js +0 -1
- package/dist/genexus-ide-ui/p-c6a7b93c.js +0 -1
- package/dist/genexus-ide-ui/p-cd00ba19.entry.js +0 -1
- package/dist/genexus-ide-ui/p-cddb793a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-cef1a182.entry.js +0 -1
- package/dist/genexus-ide-ui/p-d3d14461.entry.js +0 -1
- package/dist/genexus-ide-ui/p-dd676f91.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-ffb82b40.entry.js +0 -1
- package/dist/genexus-ide-ui/p-ffddd3ad.entry.js +0 -1
- package/dist/types/components/list-selector/list-selector.d.ts +0 -32
- /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/{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/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json → kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.ja.json} +0 -0
- /package/dist/collection/components/{team-dev-commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json → kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.zh.json} +0 -0
- /package/dist/collection/components/{team-dev-select-recent-comment/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.ja.json → team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json} +0 -0
- /package/dist/collection/components/{team-dev-select-recent-comment/gx-ide-assets/team-dev-select-recent-comment/langs/team-dev-select-recent-comment.lang.zh.json → team-dev/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json} +0 -0
- /package/dist/collection/components/{team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.ja.json → 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-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.zh.json → 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-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-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.ja.json → 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-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.zh.json → 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/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json → 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/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.zh.json → 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/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
|
@@ -3,94 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-5a32426a.js');
|
|
6
|
-
const reserverdNames = require('./reserverd-names-1b00889a.js');
|
|
7
6
|
const helpers = require('./helpers-291cb1cb.js');
|
|
8
7
|
|
|
9
|
-
const checkboxCss = "*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, currentColor);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px color-mix(in srgb, currentColor 25%, transparent)}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:currentColor;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";
|
|
10
|
-
|
|
11
|
-
const CHECKBOX_ID = "checkbox";
|
|
12
|
-
const PARTS = (checked, indeterminate) => `${checked ? " checked" : ""}${indeterminate ? " indeterminate" : ""}`;
|
|
13
|
-
const CheckBox = class {
|
|
14
|
-
constructor(hostRef) {
|
|
15
|
-
index.registerInstance(this, hostRef);
|
|
16
|
-
this.click = index.createEvent(this, "click", 7);
|
|
17
|
-
this.input = index.createEvent(this, "input", 7);
|
|
18
|
-
/**
|
|
19
|
-
* This attribute lets you specify if the element is disabled.
|
|
20
|
-
* If disabled, it will not fire any user interaction related event
|
|
21
|
-
* (for example, click event).
|
|
22
|
-
*/
|
|
23
|
-
this.disabled = false;
|
|
24
|
-
/**
|
|
25
|
-
* True to highlight control when an action is fired.
|
|
26
|
-
*/
|
|
27
|
-
this.highlightable = false;
|
|
28
|
-
/**
|
|
29
|
-
* `true` if the control's value is indeterminate.
|
|
30
|
-
*/
|
|
31
|
-
this.indeterminate = false;
|
|
32
|
-
/**
|
|
33
|
-
* This attribute indicates that the user cannot modify the value of the control.
|
|
34
|
-
* Same as [readonly](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-readonly)
|
|
35
|
-
* attribute for `input` elements.
|
|
36
|
-
*/
|
|
37
|
-
this.readonly = false;
|
|
38
|
-
this.getValue = (checked) => checked ? this.checkedValue : this.unCheckedValue;
|
|
39
|
-
/**
|
|
40
|
-
* Checks if it is necessary to prevent the click from bubbling
|
|
41
|
-
*/
|
|
42
|
-
this.handleClick = (event) => {
|
|
43
|
-
if (this.readonly || this.disabled) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
event.stopPropagation();
|
|
47
|
-
};
|
|
48
|
-
this.handleChange = (event) => {
|
|
49
|
-
event.stopPropagation();
|
|
50
|
-
const inputRef = event.target;
|
|
51
|
-
const checked = inputRef.checked;
|
|
52
|
-
const value = this.getValue(checked);
|
|
53
|
-
this.checked = checked;
|
|
54
|
-
this.value = value;
|
|
55
|
-
inputRef.value = value; // Update input's value before emitting the event
|
|
56
|
-
this.input.emit(event);
|
|
57
|
-
if (this.highlightable) {
|
|
58
|
-
this.click.emit();
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
valueChanged() {
|
|
63
|
-
this.checked = this.value === this.checkedValue;
|
|
64
|
-
}
|
|
65
|
-
componentWillLoad() {
|
|
66
|
-
this.checked = this.value === this.checkedValue;
|
|
67
|
-
}
|
|
68
|
-
render() {
|
|
69
|
-
var _a;
|
|
70
|
-
const additionalParts = PARTS(this.checked, this.indeterminate);
|
|
71
|
-
return (index.h(index.Host, { class: {
|
|
72
|
-
[reserverdNames.DISABLED_CLASS]: this.disabled,
|
|
73
|
-
"ch-checkbox--actionable": (!this.readonly && !this.disabled) ||
|
|
74
|
-
(this.readonly && this.highlightable)
|
|
75
|
-
} }, index.h("div", { class: {
|
|
76
|
-
container: true,
|
|
77
|
-
"container--checked": this.checked
|
|
78
|
-
}, part: `container${additionalParts}` }, index.h("input", { "aria-label": ((_a = this.accessibleName) === null || _a === void 0 ? void 0 : _a.trim()) !== "" &&
|
|
79
|
-
this.accessibleName !== this.caption
|
|
80
|
-
? this.accessibleName
|
|
81
|
-
: null, id: this.caption ? CHECKBOX_ID : null, class: "input", part: "input", type: "checkbox", checked: this.checked, disabled: this.disabled || this.readonly, indeterminate: this.indeterminate, value: this.value, onClick: this.handleClick, onInput: this.handleChange }), index.h("div", { class: {
|
|
82
|
-
option: true,
|
|
83
|
-
"option--checked": this.checked && !this.indeterminate,
|
|
84
|
-
"option--indeterminate": this.indeterminate
|
|
85
|
-
}, part: `option${additionalParts}`, "aria-hidden": "true" })), this.caption && (index.h("label", { class: "label", part: "label", htmlFor: CHECKBOX_ID, onClick: this.handleClick }, this.caption))));
|
|
86
|
-
}
|
|
87
|
-
get element() { return index.getElement(this); }
|
|
88
|
-
static get watchers() { return {
|
|
89
|
-
"value": ["valueChanged"]
|
|
90
|
-
}; }
|
|
91
|
-
};
|
|
92
|
-
CheckBox.style = checkboxCss;
|
|
93
|
-
|
|
94
8
|
const scrollToEdge = (event, container, scrollSpeed, scrollThreshold) => {
|
|
95
9
|
const mousePositionY = event.clientY - container.getBoundingClientRect().top;
|
|
96
10
|
const containerHeight = container.clientHeight;
|
|
@@ -1152,6 +1066,476 @@ const ChTreeXListItem = class {
|
|
|
1152
1066
|
};
|
|
1153
1067
|
ChTreeXListItem.style = treeXListItemCss;
|
|
1154
1068
|
|
|
1155
|
-
|
|
1069
|
+
const resolveImgPath = (iconAssetsPath, img) => `${iconAssetsPath}/${img}.svg`;
|
|
1070
|
+
|
|
1071
|
+
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}.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}.tree-view-item{--checkbox-size:var(--gxg-checkbox-size);--expandable-button-width:var(--spacing-comp-04);}.tree-view-item::part(dashed-line){border-color:var(--gray-02)}.tree-view-item::part(header){padding-inline-end:calc(var(--spacing-comp-02) * 0.65);height:var(--spacing-comp-05);display:flex;gap:5px}.tree-view-item::part(header):first-child{margin-inline-start:var(--spacing-comp-01)}.tree-view-item::part(header):before{content:\"\";display:block}.tree-view-item::part(header):hover{background-color:var(--gxg-background-color--hover);color:var(--gxg-color--hover)}.tree-view-item::part(header):focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}.tree-view-item[selected]::part(header){background-color:var(--gxg-background-color--selected)}.tree-view-item[selected]::part(header):hover{background-color:var(--gxg-background-color--selected-hover)}.tree-view-item::part(expandable-button){background-color:var(--gray-00);margin-inline-end:0}.tree-view-item::part(expandable-button)::before{background-color:var(--gray-04);-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}.tree-view-item::part(expandable-button):hover{background-color:var(--color-background)}.tree-view-item::part(expandable-button):focus{outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:0}.tree-view-item::part(action){text-transform:capitalize;display:flex;gap:var(--spacing-comp-01)}.tree-view-item::part(left-img){width:var(--spacing-comp-04);height:var(--spacing-comp-04);margin-inline-end:0}.tree-view-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}.tree-view-item::part(checkbox__container){border-color:var(--gray-04);background-color:var(--color-background)}.tree-view-item::part(checkbox__container):after{content:\"\";position:absolute;display:block;border:solid;border-color:transparent;z-index:0}.tree-view-item::part(checkbox__container):focus-within{box-shadow:none;outline:var(--border-width-md) solid var(--gxg-border-color--focused);outline-offset:-2px}.tree-view-item::part(checkbox){margin-inline-end:0}.tree-view-item::part(checkbox__option){display:none}.tree-view-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}.tree-view-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%)}.tree-view-item::part(checkbox__input){position:relative;z-index:1}.tree-view-item--folder::part(action)::before,.tree-view-item--module::part(action)::before{grid-area:left-img;content:\"\";width:14px;height:14px;margin-inline-end:4px;background-repeat:no-repeat}.tree-view-item--folder::part(action)::before{background-image:url(\"/build/icon-assets/objects/folder.svg\")}.tree-view-item--folder::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/folder-open.svg\")}.tree-view-item--module::part(action)::before{background-image:url(\"/build/icon-assets/objects/module.svg\")}.tree-view-item--module::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/module-open.svg\")}.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:var(--color-primary-enabled);border-radius:50%}.ch-tree-x-list-item--editing::part(header){border:2px solid transparent}.ch-tree-x-list-item .ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
|
|
1072
|
+
|
|
1073
|
+
const DEFAULT_DRAG_DISABLED_VALUE = false;
|
|
1074
|
+
const DEFAULT_DROP_DISABLED_VALUE = false;
|
|
1075
|
+
const DEFAULT_CLASS_VALUE = "tree-view-item";
|
|
1076
|
+
const DEFAULT_EDITABLE_ITEMS_VALUE = true;
|
|
1077
|
+
const DEFAULT_EXPANDED_VALUE = false;
|
|
1078
|
+
const DEFAULT_INDETERMINATE_VALUE = false;
|
|
1079
|
+
const DEFAULT_LAZY_VALUE = false;
|
|
1080
|
+
const DEFAULT_ORDER_VALUE = 0;
|
|
1081
|
+
const DEFAULT_SELECTED_VALUE = false;
|
|
1082
|
+
const GxgTreeView = class {
|
|
1083
|
+
constructor(hostRef) {
|
|
1084
|
+
index.registerInstance(this, hostRef);
|
|
1085
|
+
this.checkedItemsChange = index.createEvent(this, "checkedItemsChange", 7);
|
|
1086
|
+
this.itemContextmenu = index.createEvent(this, "itemContextmenu", 7);
|
|
1087
|
+
this.itemOpenReference = index.createEvent(this, "itemOpenReference", 7);
|
|
1088
|
+
this.selectedItemsChange = index.createEvent(this, "selectedItemsChange", 7);
|
|
1089
|
+
// UI Models
|
|
1090
|
+
this.flattenedTreeModel = new Map();
|
|
1091
|
+
this.flattenedCheckboxTreeModel = new Map();
|
|
1092
|
+
this.selectedItems = new Set();
|
|
1093
|
+
this.iconAssetsPath = index.getAssetPath(`./icon-assets`);
|
|
1094
|
+
/**
|
|
1095
|
+
* This property lets you specify if the tree is waiting to process the drop
|
|
1096
|
+
* of items.
|
|
1097
|
+
*/
|
|
1098
|
+
this.waitDropProcessing = false;
|
|
1099
|
+
/**
|
|
1100
|
+
* Removes the default padding on '.ch-tree-x-container' (Added by Gemini)
|
|
1101
|
+
*/
|
|
1102
|
+
this.noPadding = false;
|
|
1103
|
+
/**
|
|
1104
|
+
* Set this attribute if you want display a checkbox in all items by default.
|
|
1105
|
+
*/
|
|
1106
|
+
this.checkbox = false;
|
|
1107
|
+
/**
|
|
1108
|
+
* Set this attribute if you want the checkbox to be checked in all items by
|
|
1109
|
+
* default.
|
|
1110
|
+
* Only works if `checkbox = true`
|
|
1111
|
+
*/
|
|
1112
|
+
this.checked = false;
|
|
1113
|
+
/**
|
|
1114
|
+
* A CSS class to set as the `ch-tree-x` element class.
|
|
1115
|
+
*/
|
|
1116
|
+
this.cssClass = "tree-view";
|
|
1117
|
+
/**
|
|
1118
|
+
* This attribute lets you specify if the drag operation is disabled in all
|
|
1119
|
+
* items by default. If `true`, the items can't be dragged.
|
|
1120
|
+
*/
|
|
1121
|
+
this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
|
|
1122
|
+
/**
|
|
1123
|
+
* This attribute lets you specify if the drop operation is disabled in all
|
|
1124
|
+
* items by default. If `true`, the items won't accept any drops.
|
|
1125
|
+
*/
|
|
1126
|
+
this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
|
|
1127
|
+
/**
|
|
1128
|
+
* This attribute lets you specify if the edit operation is enabled in all
|
|
1129
|
+
* items by default. If `true`, the items can edit its caption in place.
|
|
1130
|
+
*/
|
|
1131
|
+
this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
|
|
1132
|
+
/**
|
|
1133
|
+
* Set this attribute if you want to allow multi selection of the items.
|
|
1134
|
+
*/
|
|
1135
|
+
this.multiSelection = false;
|
|
1136
|
+
/**
|
|
1137
|
+
* `true` to display the relation between tree items and tree lists using
|
|
1138
|
+
* lines.
|
|
1139
|
+
*/
|
|
1140
|
+
this.showLines = "all";
|
|
1141
|
+
/**
|
|
1142
|
+
* Set this attribute if you want all the children item's checkboxes to be
|
|
1143
|
+
* checked when the parent item checkbox is checked, or to be unchecked when
|
|
1144
|
+
* the parent item checkbox is unchecked.
|
|
1145
|
+
* This attribute will be used in all items by default.
|
|
1146
|
+
*/
|
|
1147
|
+
this.toggleCheckboxes = false;
|
|
1148
|
+
/**
|
|
1149
|
+
* This property lets you define the model of the ch-tree-x control.
|
|
1150
|
+
*/
|
|
1151
|
+
this.treeModel = [];
|
|
1152
|
+
this.handleDroppableZoneEnter = (event) => {
|
|
1153
|
+
if (!this.checkDroppableZoneCallback) {
|
|
1154
|
+
return;
|
|
1155
|
+
}
|
|
1156
|
+
event.stopPropagation();
|
|
1157
|
+
// Suppose the request is made immediately by executing the callback
|
|
1158
|
+
const requestTimestamp = new Date().getTime();
|
|
1159
|
+
const dropInformation = event.detail;
|
|
1160
|
+
const promise = this.checkDroppableZoneCallback(dropInformation);
|
|
1161
|
+
promise.then((validDrop) => {
|
|
1162
|
+
this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
|
|
1163
|
+
});
|
|
1164
|
+
};
|
|
1165
|
+
this.handleSelectedItemsChange = (event) => {
|
|
1166
|
+
event.stopPropagation();
|
|
1167
|
+
const itemsToProcess = new Map(event.detail);
|
|
1168
|
+
// Remove no longer selected items
|
|
1169
|
+
this.selectedItems.forEach((selectedItemId) => {
|
|
1170
|
+
const itemUIModel = this.flattenedTreeModel.get(selectedItemId).item;
|
|
1171
|
+
const itemIsStillSelected = itemsToProcess.get(selectedItemId);
|
|
1172
|
+
// The item does not need to be added. Remove it from the processed list
|
|
1173
|
+
if (itemIsStillSelected) {
|
|
1174
|
+
itemUIModel.expanded = itemIsStillSelected.expanded; // Update expanded state
|
|
1175
|
+
itemsToProcess.delete(selectedItemId);
|
|
1176
|
+
}
|
|
1177
|
+
// The item must be un-selected in the UI Model
|
|
1178
|
+
else {
|
|
1179
|
+
itemUIModel.selected = false;
|
|
1180
|
+
this.selectedItems.delete(selectedItemId);
|
|
1181
|
+
}
|
|
1182
|
+
});
|
|
1183
|
+
// Add new selected items
|
|
1184
|
+
itemsToProcess.forEach((newSelectedItemInfo, itemId) => {
|
|
1185
|
+
const newSelectedItem = this.flattenedTreeModel.get(itemId).item;
|
|
1186
|
+
newSelectedItem.selected = true;
|
|
1187
|
+
newSelectedItem.expanded = newSelectedItemInfo.expanded;
|
|
1188
|
+
this.selectedItems.add(itemId);
|
|
1189
|
+
});
|
|
1190
|
+
this.selectedItemsChange.emit(event.detail);
|
|
1191
|
+
};
|
|
1192
|
+
this.handleExpandedItemChange = (event) => {
|
|
1193
|
+
const detail = event.detail;
|
|
1194
|
+
const itemInfo = this.flattenedTreeModel.get(detail.id).item;
|
|
1195
|
+
itemInfo.expanded = detail.expanded;
|
|
1196
|
+
};
|
|
1197
|
+
this.handleItemContextmenu = (event) => {
|
|
1198
|
+
event.stopPropagation();
|
|
1199
|
+
this.itemContextmenu.emit(event.detail);
|
|
1200
|
+
};
|
|
1201
|
+
this.handleItemsDropped = (event) => {
|
|
1202
|
+
if (!this.dropItemsCallback) {
|
|
1203
|
+
return;
|
|
1204
|
+
}
|
|
1205
|
+
event.stopPropagation();
|
|
1206
|
+
const dataTransferInfo = event.detail;
|
|
1207
|
+
const newContainer = dataTransferInfo.newContainer;
|
|
1208
|
+
const newParentId = newContainer.id;
|
|
1209
|
+
// Check if the parent exists in the UI Model
|
|
1210
|
+
if (!this.flattenedTreeModel.get(newParentId)) {
|
|
1211
|
+
return;
|
|
1212
|
+
}
|
|
1213
|
+
const draggedItems = dataTransferInfo.draggedItems;
|
|
1214
|
+
if (draggedItems.length === 0) {
|
|
1215
|
+
return;
|
|
1216
|
+
}
|
|
1217
|
+
const promise = this.dropItemsCallback(dataTransferInfo);
|
|
1218
|
+
this.waitDropProcessing = true;
|
|
1219
|
+
promise.then(async (response) => {
|
|
1220
|
+
this.waitDropProcessing = false;
|
|
1221
|
+
if (!response.acceptDrop) {
|
|
1222
|
+
return;
|
|
1223
|
+
}
|
|
1224
|
+
const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
|
|
1225
|
+
// Only move the items to the new parent, keeping the state
|
|
1226
|
+
if (dataTransferInfo.dropInTheSameTree) {
|
|
1227
|
+
// Add the UI models to the new container and remove the UI models from
|
|
1228
|
+
// the old containers
|
|
1229
|
+
draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
|
|
1230
|
+
// When the selected items are moved, the tree must remove its internal
|
|
1231
|
+
// state to not have undefined references
|
|
1232
|
+
if (dataTransferInfo.draggingSelectedItems) {
|
|
1233
|
+
await this.treeRef.clearSelectedItemsInfo();
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
// Add the new items
|
|
1237
|
+
else {
|
|
1238
|
+
if (response.items == null) {
|
|
1239
|
+
return;
|
|
1240
|
+
}
|
|
1241
|
+
// Add new items to the parent
|
|
1242
|
+
newParentUIModel.items.push(...response.items);
|
|
1243
|
+
// Flatten the new UI models
|
|
1244
|
+
response.items.forEach(this.flattenItemUIModel(newParentUIModel));
|
|
1245
|
+
}
|
|
1246
|
+
this.sortItems(newParentUIModel.items);
|
|
1247
|
+
// Open the item to visualize the new subitems
|
|
1248
|
+
newParentUIModel.expanded = true;
|
|
1249
|
+
// There is no need to force and update, since the waitDropProcessing
|
|
1250
|
+
// prop was modified
|
|
1251
|
+
});
|
|
1252
|
+
};
|
|
1253
|
+
this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
|
|
1254
|
+
const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
|
|
1255
|
+
const item = itemUIModelExtended.item;
|
|
1256
|
+
const oldParentItem = itemUIModelExtended.parentItem;
|
|
1257
|
+
// Remove the UI model from the previous parent
|
|
1258
|
+
oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
|
|
1259
|
+
// Add the UI Model to the new parent
|
|
1260
|
+
newParentUIModel.items.push(item);
|
|
1261
|
+
// Reference the new parent in the item
|
|
1262
|
+
itemUIModelExtended.parentItem = newParentUIModel;
|
|
1263
|
+
};
|
|
1264
|
+
this.renderSubModel = (treeSubModel, lastItem, level) => {
|
|
1265
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1266
|
+
return (index.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
|
|
1267
|
+
? resolveImgPath(this.iconAssetsPath, treeSubModel.leftImgSrc)
|
|
1268
|
+
: 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 &&
|
|
1269
|
+
treeSubModel.items != null &&
|
|
1270
|
+
treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
|
|
1271
|
+
};
|
|
1272
|
+
this.flattenItemUIModel = (parentModel) => (item) => {
|
|
1273
|
+
var _a;
|
|
1274
|
+
this.flattenedTreeModel.set(item.id, {
|
|
1275
|
+
parentItem: parentModel,
|
|
1276
|
+
item: item,
|
|
1277
|
+
});
|
|
1278
|
+
// Add the items that have a checkbox in a separate Map
|
|
1279
|
+
if ((_a = item.checkbox) !== null && _a !== void 0 ? _a : this.checkbox) {
|
|
1280
|
+
this.flattenedCheckboxTreeModel.set(item.id, {
|
|
1281
|
+
parentItem: parentModel,
|
|
1282
|
+
item: item,
|
|
1283
|
+
});
|
|
1284
|
+
}
|
|
1285
|
+
// Make sure the properties are with their default values to avoid issues
|
|
1286
|
+
// when reusing DOM nodes
|
|
1287
|
+
item.class = item.class == null ? DEFAULT_CLASS_VALUE : item.class;
|
|
1288
|
+
item.expanded =
|
|
1289
|
+
item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
|
|
1290
|
+
item.indeterminate =
|
|
1291
|
+
item.indeterminate == null
|
|
1292
|
+
? DEFAULT_INDETERMINATE_VALUE
|
|
1293
|
+
: item.indeterminate;
|
|
1294
|
+
item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
|
|
1295
|
+
item.order = item.order == null ? DEFAULT_ORDER_VALUE : item.order;
|
|
1296
|
+
item.selected =
|
|
1297
|
+
item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
|
|
1298
|
+
if (item.selected) {
|
|
1299
|
+
this.selectedItems.add(item.id);
|
|
1300
|
+
}
|
|
1301
|
+
this.flattenSubModel(item);
|
|
1302
|
+
};
|
|
1303
|
+
}
|
|
1304
|
+
handleTreeModelChange() {
|
|
1305
|
+
this.flattenModel();
|
|
1306
|
+
}
|
|
1307
|
+
/**
|
|
1308
|
+
* Given an item id, an array of items to add, the download status and the
|
|
1309
|
+
* lazy state, updates the item's UI Model.
|
|
1310
|
+
*/
|
|
1311
|
+
async loadLazyContent(itemId, items, downloading = false, lazy = false) {
|
|
1312
|
+
const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
|
|
1313
|
+
// Establish that the content was lazy loaded
|
|
1314
|
+
itemToLazyLoadContent.downloading = downloading;
|
|
1315
|
+
itemToLazyLoadContent.lazy = lazy;
|
|
1316
|
+
// Check if there is items to add
|
|
1317
|
+
if (items == null) {
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
// @todo What happens in the server when dropping items on a lazy node?
|
|
1321
|
+
itemToLazyLoadContent.items = items;
|
|
1322
|
+
this.sortItems(itemToLazyLoadContent.items);
|
|
1323
|
+
this.flattenSubModel(itemToLazyLoadContent);
|
|
1324
|
+
// Re-sync checked items
|
|
1325
|
+
this.emitCheckedItemsChange();
|
|
1326
|
+
// Force re-render
|
|
1327
|
+
index.forceUpdate(this);
|
|
1328
|
+
}
|
|
1329
|
+
/**
|
|
1330
|
+
* Given an item id, it displays and scrolls into the item view.
|
|
1331
|
+
*/
|
|
1332
|
+
async scrollIntoVisible(treeItemId) {
|
|
1333
|
+
const itemUIModel = this.flattenedTreeModel.get(treeItemId);
|
|
1334
|
+
if (!itemUIModel) {
|
|
1335
|
+
// @todo Check if the item is on the server?
|
|
1336
|
+
return;
|
|
1337
|
+
}
|
|
1338
|
+
let visitedNode = itemUIModel.parentItem;
|
|
1339
|
+
// While the parent is not the root, update the UI Models
|
|
1340
|
+
while (visitedNode && visitedNode.id != null) {
|
|
1341
|
+
// Expand the item
|
|
1342
|
+
visitedNode.expanded = true;
|
|
1343
|
+
const visitedNodeUIModel = this.flattenedTreeModel.get(visitedNode.id);
|
|
1344
|
+
visitedNode = visitedNodeUIModel.parentItem;
|
|
1345
|
+
}
|
|
1346
|
+
index.forceUpdate(this);
|
|
1347
|
+
// @todo For some reason, when the model is created using the "big model" option,
|
|
1348
|
+
// this implementation does not work when only the UI Model is updated. So, to
|
|
1349
|
+
// expand the items, we have to delegate the responsibility to the tree-x
|
|
1350
|
+
this.treeRef.scrollIntoVisible(treeItemId);
|
|
1351
|
+
}
|
|
1352
|
+
/**
|
|
1353
|
+
* This method is used to toggle a tree item by the tree item id/ids.
|
|
1354
|
+
*
|
|
1355
|
+
* @param treeItemIds An array id the tree items to be toggled.
|
|
1356
|
+
* @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
|
|
1357
|
+
* @returns The modified items after the method was called.
|
|
1358
|
+
*/
|
|
1359
|
+
async toggleItems(treeItemIds, expand) {
|
|
1360
|
+
if (!treeItemIds) {
|
|
1361
|
+
return [];
|
|
1362
|
+
}
|
|
1363
|
+
const modifiedTreeItems = [];
|
|
1364
|
+
treeItemIds.forEach((treeItemId) => {
|
|
1365
|
+
const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
|
|
1366
|
+
if (itemInfo) {
|
|
1367
|
+
itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
|
|
1368
|
+
modifiedTreeItems.push({
|
|
1369
|
+
id: itemInfo.id,
|
|
1370
|
+
expanded: itemInfo.expanded,
|
|
1371
|
+
});
|
|
1372
|
+
}
|
|
1373
|
+
});
|
|
1374
|
+
// Force re-render
|
|
1375
|
+
index.forceUpdate(this);
|
|
1376
|
+
return modifiedTreeItems;
|
|
1377
|
+
}
|
|
1378
|
+
/**
|
|
1379
|
+
* Given a subset of item's properties, it updates all item UI models.
|
|
1380
|
+
*/
|
|
1381
|
+
async updateAllItemsProperties(properties) {
|
|
1382
|
+
[...this.flattenedTreeModel.values()].forEach((itemUIModel) => {
|
|
1383
|
+
if (properties.expanded != null) {
|
|
1384
|
+
itemUIModel.item.expanded = properties.expanded;
|
|
1385
|
+
}
|
|
1386
|
+
if (properties.checked != null) {
|
|
1387
|
+
itemUIModel.item.checked = properties.checked;
|
|
1388
|
+
itemUIModel.item.indeterminate = false;
|
|
1389
|
+
}
|
|
1390
|
+
});
|
|
1391
|
+
index.forceUpdate(this);
|
|
1392
|
+
}
|
|
1393
|
+
/**
|
|
1394
|
+
* Given a item list and the properties to update, it updates the properties
|
|
1395
|
+
* of the items in the list.
|
|
1396
|
+
*/
|
|
1397
|
+
async updateItemsProperties(items, properties) {
|
|
1398
|
+
items.forEach((item) => {
|
|
1399
|
+
const itemUIModel = this.flattenedTreeModel.get(item);
|
|
1400
|
+
this.updateItemProperty(itemUIModel, properties);
|
|
1401
|
+
});
|
|
1402
|
+
index.forceUpdate(this);
|
|
1403
|
+
}
|
|
1404
|
+
/**
|
|
1405
|
+
* Update the information about the valid droppable zones.
|
|
1406
|
+
* @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
|
|
1407
|
+
* @param newContainerId ID of the container where the drag is trying to be made.
|
|
1408
|
+
* @param draggedItems Information about the dragged items.
|
|
1409
|
+
* @param validDrop Current state of the droppable zone.
|
|
1410
|
+
*/
|
|
1411
|
+
async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
|
|
1412
|
+
this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
|
|
1413
|
+
}
|
|
1414
|
+
updateItemProperty(itemUIModel, properties) {
|
|
1415
|
+
if (!itemUIModel) {
|
|
1416
|
+
return;
|
|
1417
|
+
}
|
|
1418
|
+
const itemInfo = itemUIModel.item;
|
|
1419
|
+
Object.keys(properties).forEach((propertyName) => {
|
|
1420
|
+
itemInfo[propertyName] = properties[propertyName];
|
|
1421
|
+
});
|
|
1422
|
+
}
|
|
1423
|
+
updateCheckboxValue(event) {
|
|
1424
|
+
event.stopPropagation();
|
|
1425
|
+
const detail = event.detail;
|
|
1426
|
+
const treeItemId = detail.id;
|
|
1427
|
+
const itemUIModel = this.flattenedCheckboxTreeModel.get(treeItemId);
|
|
1428
|
+
// In some cases, when the `treeModel` and `checked` properties are updated
|
|
1429
|
+
// outside of the tree control, some events are fired with undefined references
|
|
1430
|
+
if (!itemUIModel) {
|
|
1431
|
+
return;
|
|
1432
|
+
}
|
|
1433
|
+
const itemInfo = itemUIModel.item;
|
|
1434
|
+
itemInfo.checked = detail.checked;
|
|
1435
|
+
itemInfo.indeterminate = detail.indeterminate;
|
|
1436
|
+
this.emitCheckedItemsChange();
|
|
1437
|
+
}
|
|
1438
|
+
loadLazyChildrenHandler(event) {
|
|
1439
|
+
if (!this.lazyLoadTreeItemsCallback) {
|
|
1440
|
+
return;
|
|
1441
|
+
}
|
|
1442
|
+
event.stopPropagation();
|
|
1443
|
+
const treeItemId = event.detail;
|
|
1444
|
+
const promise = this.lazyLoadTreeItemsCallback(treeItemId);
|
|
1445
|
+
event.target.downloading = true;
|
|
1446
|
+
promise.then((result) => {
|
|
1447
|
+
this.loadLazyContent(treeItemId, result);
|
|
1448
|
+
});
|
|
1449
|
+
}
|
|
1450
|
+
handleCaptionModification(event) {
|
|
1451
|
+
if (!this.modifyItemCaptionCallback) {
|
|
1452
|
+
return;
|
|
1453
|
+
}
|
|
1454
|
+
event.stopPropagation();
|
|
1455
|
+
const itemRef = event.target;
|
|
1456
|
+
const itemId = event.detail.id;
|
|
1457
|
+
const itemUIModel = this.flattenedTreeModel.get(itemId);
|
|
1458
|
+
const itemInfo = itemUIModel.item;
|
|
1459
|
+
const newCaption = event.detail.caption;
|
|
1460
|
+
const oldCaption = itemInfo.caption;
|
|
1461
|
+
// Optimistic UI: Update the caption in the UI Model before the change is
|
|
1462
|
+
// completed in the server
|
|
1463
|
+
itemInfo.caption = newCaption;
|
|
1464
|
+
// Due to performance reasons, we don't make a shallow copy of the
|
|
1465
|
+
// treeModel to force a re-render
|
|
1466
|
+
itemRef.caption = newCaption;
|
|
1467
|
+
const promise = this.modifyItemCaptionCallback(itemId, newCaption);
|
|
1468
|
+
promise.then((status) => {
|
|
1469
|
+
if (status.success) {
|
|
1470
|
+
this.sortItems(itemUIModel.parentItem.items);
|
|
1471
|
+
// Force re-render
|
|
1472
|
+
index.forceUpdate(this);
|
|
1473
|
+
}
|
|
1474
|
+
else {
|
|
1475
|
+
itemRef.caption = oldCaption;
|
|
1476
|
+
itemInfo.caption = oldCaption;
|
|
1477
|
+
// Do something with the error message
|
|
1478
|
+
}
|
|
1479
|
+
});
|
|
1480
|
+
}
|
|
1481
|
+
handleOpenReference(event) {
|
|
1482
|
+
event.stopPropagation();
|
|
1483
|
+
this.itemOpenReference.emit(event.detail);
|
|
1484
|
+
}
|
|
1485
|
+
emitCheckedItemsChange() {
|
|
1486
|
+
// New copy of the checked items
|
|
1487
|
+
const allItemsWithCheckbox = new Map(this.flattenedCheckboxTreeModel);
|
|
1488
|
+
// Update the checked value if not defined
|
|
1489
|
+
allItemsWithCheckbox.forEach((itemUIModel) => {
|
|
1490
|
+
if (itemUIModel.item.checked == null) {
|
|
1491
|
+
itemUIModel.item.checked = this.checked;
|
|
1492
|
+
}
|
|
1493
|
+
});
|
|
1494
|
+
this.checkedItemsChange.emit(allItemsWithCheckbox);
|
|
1495
|
+
}
|
|
1496
|
+
flattenSubModel(model) {
|
|
1497
|
+
const items = model.items;
|
|
1498
|
+
if (!items) {
|
|
1499
|
+
// Make sure that subtrees don't have an undefined array
|
|
1500
|
+
if (model.leaf !== true) {
|
|
1501
|
+
model.items = [];
|
|
1502
|
+
}
|
|
1503
|
+
return;
|
|
1504
|
+
}
|
|
1505
|
+
this.sortItems(items);
|
|
1506
|
+
items.forEach(this.flattenItemUIModel(model));
|
|
1507
|
+
}
|
|
1508
|
+
sortItems(items) {
|
|
1509
|
+
// Ensure that items are sorted
|
|
1510
|
+
if (this.sortItemsCallback) {
|
|
1511
|
+
this.sortItemsCallback(items);
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
flattenModel() {
|
|
1515
|
+
this.flattenedTreeModel.clear();
|
|
1516
|
+
this.flattenedCheckboxTreeModel.clear();
|
|
1517
|
+
this.selectedItems.clear();
|
|
1518
|
+
// The model was updated at runtime, so we need to clear the references
|
|
1519
|
+
if (this.treeRef) {
|
|
1520
|
+
this.treeRef.clearSelectedItemsInfo();
|
|
1521
|
+
}
|
|
1522
|
+
this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
|
|
1523
|
+
// Re-sync checked items
|
|
1524
|
+
this.emitCheckedItemsChange();
|
|
1525
|
+
}
|
|
1526
|
+
componentWillLoad() {
|
|
1527
|
+
this.flattenModel();
|
|
1528
|
+
}
|
|
1529
|
+
render() {
|
|
1530
|
+
return (index.h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemContextmenu: this.handleItemContextmenu, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0))));
|
|
1531
|
+
}
|
|
1532
|
+
static get assetsDirs() { return ["assets"]; }
|
|
1533
|
+
static get watchers() { return {
|
|
1534
|
+
"treeModel": ["handleTreeModelChange"]
|
|
1535
|
+
}; }
|
|
1536
|
+
};
|
|
1537
|
+
GxgTreeView.style = treeViewCss;
|
|
1538
|
+
|
|
1156
1539
|
exports.ch_tree_x = ChTreeX;
|
|
1157
1540
|
exports.ch_tree_x_list_item = ChTreeXListItem;
|
|
1541
|
+
exports.gxg_tree_view = GxgTreeView;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const detectClickOutside = (event, element) => {
|
|
4
|
+
const x = event.x;
|
|
5
|
+
const y = event.y;
|
|
6
|
+
//Contextual menu coordinates
|
|
7
|
+
const elementBoundingClientRect = element.getBoundingClientRect();
|
|
8
|
+
if ((x > elementBoundingClientRect.left &&
|
|
9
|
+
x < elementBoundingClientRect.right &&
|
|
10
|
+
y > elementBoundingClientRect.top &&
|
|
11
|
+
y < elementBoundingClientRect.bottom) ||
|
|
12
|
+
(event.screenX === 0 &&
|
|
13
|
+
event.screenY === 0 &&
|
|
14
|
+
event.clientX === 0 &&
|
|
15
|
+
event.clientY === 0)) {
|
|
16
|
+
//Click happened inside the element
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
//Click happened outside the element
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.detectClickOutside = detectClickOutside;
|