@theia/core 1.22.1 → 1.23.0-next.26
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/README.md +5 -5
- package/lib/browser/about-dialog.js +5 -5
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/authentication-service.d.ts +52 -22
- package/lib/browser/authentication-service.d.ts.map +1 -1
- package/lib/browser/authentication-service.js +49 -44
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +5 -5
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +6 -6
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-service.js +5 -5
- package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
- package/lib/browser/breadcrumbs/index.js +1 -1
- package/lib/browser/browser-clipboard-service.js +3 -3
- package/lib/browser/browser-clipboard-service.js.map +1 -1
- package/lib/browser/color-application-contribution.js +4 -4
- package/lib/browser/color-application-contribution.js.map +1 -1
- package/lib/browser/color-registry.js +2 -2
- package/lib/browser/color-registry.js.map +1 -1
- package/lib/browser/command-open-handler.js +2 -2
- package/lib/browser/command-open-handler.js.map +1 -1
- package/lib/browser/common-frontend-contribution.js +24 -24
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/connection-status-service.js +15 -13
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +18 -18
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-key-service.js +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/context-menu-renderer.js +1 -1
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.js +1 -1
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/credentials-service.js +2 -2
- package/lib/browser/credentials-service.js.map +1 -1
- package/lib/browser/decorations-service.js +1 -1
- package/lib/browser/decorations-service.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.js +2 -2
- package/lib/browser/dialogs/react-dialog.js.map +1 -1
- package/lib/browser/dialogs.js +11 -11
- package/lib/browser/dialogs.js.map +1 -1
- package/lib/browser/diff-uris.js +3 -3
- package/lib/browser/diff-uris.js.map +1 -1
- package/lib/browser/encoding-registry.js +3 -3
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/external-uri-service.js +1 -1
- package/lib/browser/external-uri-service.js.map +1 -1
- package/lib/browser/frontend-application-bindings.js +2 -2
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.js +1 -1
- package/lib/browser/frontend-application-config-provider.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.spec.js +7 -7
- package/lib/browser/frontend-application-config-provider.spec.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +23 -20
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application-state.js +2 -2
- package/lib/browser/frontend-application-state.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +4 -2
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js +30 -36
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/http-open-handler.js +3 -3
- package/lib/browser/http-open-handler.js.map +1 -1
- package/lib/browser/icon-theme-contribution.js +5 -5
- package/lib/browser/icon-theme-contribution.js.map +1 -1
- package/lib/browser/icon-theme-service.js +4 -4
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/browser/json-schema-store.js +5 -5
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/keybinding.js +11 -11
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +9 -9
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +4 -4
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +4 -4
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +3 -3
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
- package/lib/browser/keyboard/index.js +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.js +5 -5
- package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
- package/lib/browser/keyboard/keys.js +1 -1
- package/lib/browser/keyboard/keys.spec.js +2 -2
- package/lib/browser/keyboard/keys.spec.js.map +1 -1
- package/lib/browser/label-parser.js +1 -1
- package/lib/browser/label-parser.js.map +1 -1
- package/lib/browser/label-parser.spec.js +38 -38
- package/lib/browser/label-parser.spec.js.map +1 -1
- package/lib/browser/label-provider.js +8 -8
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/label-provider.spec.js +5 -5
- package/lib/browser/label-provider.spec.js.map +1 -1
- package/lib/browser/language-service.js +1 -1
- package/lib/browser/language-service.js.map +1 -1
- package/lib/browser/logger-frontend-module.js +1 -1
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +3 -3
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +13 -13
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/context-menu-context.js +1 -1
- package/lib/browser/menu/context-menu-context.js.map +1 -1
- package/lib/browser/messaging/index.js +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +7 -7
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/mime-service.js +1 -1
- package/lib/browser/mime-service.js.map +1 -1
- package/lib/browser/navigatable.js +1 -1
- package/lib/browser/opener-service.js +3 -2
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/performance/frontend-stopwatch.d.ts +21 -0
- package/lib/browser/performance/frontend-stopwatch.d.ts.map +1 -0
- package/lib/browser/performance/frontend-stopwatch.js +71 -0
- package/lib/browser/performance/frontend-stopwatch.js.map +1 -0
- package/lib/browser/performance/index.d.ts +18 -0
- package/lib/browser/performance/index.d.ts.map +1 -0
- package/lib/browser/performance/index.js +30 -0
- package/lib/browser/performance/index.js.map +1 -0
- package/lib/browser/performance/measurement-frontend-bindings.d.ts +20 -0
- package/lib/browser/performance/measurement-frontend-bindings.d.ts.map +1 -0
- package/lib/browser/performance/measurement-frontend-bindings.js +33 -0
- package/lib/browser/performance/measurement-frontend-bindings.js.map +1 -0
- package/lib/browser/preferences/index.js +1 -1
- package/lib/browser/preferences/preference-configurations.js +4 -4
- package/lib/browser/preferences/preference-configurations.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +8 -8
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.d.ts +11 -0
- package/lib/browser/preferences/preference-language-override-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.js +21 -7
- package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
- package/lib/browser/preferences/preference-provider.js +2 -2
- package/lib/browser/preferences/preference-provider.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +6 -6
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +3 -3
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.js +8 -8
- package/lib/browser/preferences/preference-service.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +5 -5
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/test/index.js +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/progress-bar.js +4 -4
- package/lib/browser/progress-bar.js.map +1 -1
- package/lib/browser/progress-client.js +3 -3
- package/lib/browser/progress-client.js.map +1 -1
- package/lib/browser/progress-location-service.js +1 -1
- package/lib/browser/progress-location-service.js.map +1 -1
- package/lib/browser/progress-location-service.spec.js +1 -1
- package/lib/browser/progress-location-service.spec.js.map +1 -1
- package/lib/browser/progress-status-bar-item.js +2 -2
- package/lib/browser/progress-status-bar-item.js.map +1 -1
- package/lib/browser/quick-input/index.js +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.js +5 -5
- package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +9 -9
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/quick-input/quick-help-service.js +3 -3
- package/lib/browser/quick-input/quick-help-service.js.map +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.js +3 -3
- package/lib/browser/quick-input/quick-input-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-input-service.js +1 -1
- package/lib/browser/quick-input/quick-input-service.spec.js +15 -15
- package/lib/browser/quick-input/quick-input-service.spec.js.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.js +3 -3
- package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
- package/lib/browser/quick-input/quick-view-service.js +4 -4
- package/lib/browser/quick-input/quick-view-service.js.map +1 -1
- package/lib/browser/resource-context-key.js +4 -4
- package/lib/browser/resource-context-key.js.map +1 -1
- package/lib/browser/saveable.d.ts +17 -2
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +71 -24
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.js +5 -5
- package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +16 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +76 -64
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/current-widget-command-adapter.js.map +1 -1
- package/lib/browser/shell/index.js +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +7 -7
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts +1 -0
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +26 -14
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.js.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +2 -2
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
- package/lib/browser/shell/split-panels.js +1 -1
- package/lib/browser/shell/split-panels.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.js +3 -3
- package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.js +12 -12
- package/lib/browser/shell/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.spec.js +14 -14
- package/lib/browser/shell/tab-bar-toolbar.spec.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +1 -0
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/tab-bars.spec.js +9 -9
- package/lib/browser/shell/tab-bars.spec.js.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +3 -2
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +4 -4
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/shell/view-contribution.js +5 -5
- package/lib/browser/shell/view-contribution.js.map +1 -1
- package/lib/browser/source-tree/index.js +1 -1
- package/lib/browser/source-tree/source-tree-widget.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +7 -8
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/source-tree.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree.js +2 -1
- package/lib/browser/source-tree/source-tree.js.map +1 -1
- package/lib/browser/source-tree/tree-source.js +2 -2
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/status-bar/index.js +1 -1
- package/lib/browser/status-bar/status-bar.js +6 -6
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/storage-service.js +5 -5
- package/lib/browser/storage-service.js.map +1 -1
- package/lib/browser/storage-service.spec.js +4 -4
- package/lib/browser/storage-service.spec.js.map +1 -1
- package/lib/browser/test/mock-opener-service.js +1 -1
- package/lib/browser/test/mock-opener-service.js.map +1 -1
- package/lib/browser/test/mock-storage-service.js +1 -1
- package/lib/browser/test/mock-storage-service.js.map +1 -1
- package/lib/browser/theming.js +1 -1
- package/lib/browser/tooltip-service.js +6 -5
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.js +1 -1
- package/lib/browser/tree/fuzzy-search.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.spec.js +2 -2
- package/lib/browser/tree/fuzzy-search.spec.js.map +1 -1
- package/lib/browser/tree/index.d.ts +1 -0
- package/lib/browser/tree/index.d.ts.map +1 -1
- package/lib/browser/tree/index.js +2 -1
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/test/tree-test-container.js +1 -1
- package/lib/browser/tree/test/tree-test-container.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.d.ts +24 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +68 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts +39 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.js +96 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts +55 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +194 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -0
- package/lib/browser/tree/tree-compression/index.d.ts +20 -0
- package/lib/browser/tree/tree-compression/index.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/index.js +32 -0
- package/lib/browser/tree/tree-compression/index.js.map +1 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts +73 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.js +100 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -0
- package/lib/browser/tree/tree-consistency.spec.js +2 -2
- package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
- package/lib/browser/tree/tree-container.d.ts +46 -1
- package/lib/browser/tree/tree-container.d.ts.map +1 -1
- package/lib/browser/tree/tree-container.js +67 -20
- package/lib/browser/tree/tree-container.js.map +1 -1
- package/lib/browser/tree/tree-decorator.js +2 -2
- package/lib/browser/tree/tree-decorator.js.map +1 -1
- package/lib/browser/tree/tree-decorator.spec.js +10 -10
- package/lib/browser/tree/tree-decorator.spec.js.map +1 -1
- package/lib/browser/tree/tree-expansion.d.ts +1 -1
- package/lib/browser/tree/tree-expansion.d.ts.map +1 -1
- package/lib/browser/tree/tree-expansion.js +3 -3
- package/lib/browser/tree/tree-expansion.js.map +1 -1
- package/lib/browser/tree/tree-expansion.spec.js +15 -15
- package/lib/browser/tree/tree-expansion.spec.js.map +1 -1
- package/lib/browser/tree/tree-iterator.spec.js +22 -22
- package/lib/browser/tree/tree-iterator.spec.js.map +1 -1
- package/lib/browser/tree/tree-label-provider.js +1 -1
- package/lib/browser/tree/tree-label-provider.js.map +1 -1
- package/lib/browser/tree/tree-model.d.ts +2 -1
- package/lib/browser/tree/tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-model.js +20 -19
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-navigation.js +1 -1
- package/lib/browser/tree/tree-navigation.js.map +1 -1
- package/lib/browser/tree/tree-search.js +5 -5
- package/lib/browser/tree/tree-search.js.map +1 -1
- package/lib/browser/tree/tree-selection-impl.js +3 -3
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.spec.js +6 -6
- package/lib/browser/tree/tree-selection-state.spec.js.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.js +6 -6
- package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +6 -1
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +33 -20
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.d.ts +1 -1
- package/lib/browser/tree/tree.d.ts.map +1 -1
- package/lib/browser/tree/tree.js +3 -3
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/tree/tree.spec.js +11 -11
- package/lib/browser/tree/tree.spec.js.map +1 -1
- package/lib/browser/view-container.d.ts +1 -1
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +60 -56
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-manager.js +4 -4
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-manager.spec.js +3 -3
- package/lib/browser/widget-manager.spec.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js +5 -6
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/alert-message.js +4 -4
- package/lib/browser/widgets/alert-message.js.map +1 -1
- package/lib/browser/widgets/index.js +1 -1
- package/lib/browser/widgets/react-renderer.js +3 -2
- package/lib/browser/widgets/react-renderer.js.map +1 -1
- package/lib/browser/widgets/react-widget.js +2 -2
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/widget.js +4 -4
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/browser/window/default-window-service.js +5 -5
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/test/mock-window-service.js +1 -1
- package/lib/browser/window/test/mock-window-service.js.map +1 -1
- package/lib/browser/window-contribution.js +2 -2
- package/lib/browser/window-contribution.js.map +1 -1
- package/lib/common/command.js +3 -2
- package/lib/common/command.js.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.d.ts +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.d.ts.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.js +3 -2
- package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
- package/lib/common/contribution-filter/index.js +1 -1
- package/lib/common/encoding-service.js +2 -2
- package/lib/common/encoding-service.js.map +1 -1
- package/lib/common/env-variables/index.js +1 -1
- package/lib/common/event.js.map +1 -1
- package/lib/common/event.spec.js +2 -2
- package/lib/common/event.spec.js.map +1 -1
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/keybinding.js.map +1 -1
- package/lib/common/logger-protocol.js +1 -1
- package/lib/common/logger-protocol.js.map +1 -1
- package/lib/common/logger-watcher.js +1 -1
- package/lib/common/logger-watcher.js.map +1 -1
- package/lib/common/logger.js +5 -5
- package/lib/common/logger.js.map +1 -1
- package/lib/common/logger.spec.js +6 -6
- package/lib/common/logger.spec.js.map +1 -1
- package/lib/common/menu.js +4 -3
- package/lib/common/menu.js.map +1 -1
- package/lib/common/message-service-protocol.js +1 -1
- package/lib/common/message-service-protocol.js.map +1 -1
- package/lib/common/message-service.js +2 -2
- package/lib/common/message-service.js.map +1 -1
- package/lib/common/messaging/abstract-connection-provider.js +2 -2
- package/lib/common/messaging/abstract-connection-provider.js.map +1 -1
- package/lib/common/messaging/index.js +1 -1
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js +2 -2
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/path.spec.js +16 -16
- package/lib/common/path.spec.js.map +1 -1
- package/lib/common/performance/index.d.ts +19 -0
- package/lib/common/performance/index.d.ts.map +1 -0
- package/lib/common/performance/index.js +31 -0
- package/lib/common/performance/index.js.map +1 -0
- package/lib/common/performance/measurement-protocol.d.ts +65 -0
- package/lib/common/performance/measurement-protocol.d.ts.map +1 -0
- package/lib/common/performance/measurement-protocol.js +79 -0
- package/lib/common/performance/measurement-protocol.js.map +1 -0
- package/lib/common/performance/measurement.d.ts +91 -0
- package/lib/common/performance/measurement.d.ts.map +1 -0
- package/lib/common/performance/measurement.js +18 -0
- package/lib/common/performance/measurement.js.map +1 -0
- package/lib/common/performance/stopwatch.d.ts +68 -0
- package/lib/common/performance/stopwatch.d.ts.map +1 -0
- package/lib/common/performance/stopwatch.js +134 -0
- package/lib/common/performance/stopwatch.js.map +1 -0
- package/lib/common/progress-service.js +3 -3
- package/lib/common/progress-service.js.map +1 -1
- package/lib/common/promise-util.d.ts +11 -0
- package/lib/common/promise-util.d.ts.map +1 -1
- package/lib/common/promise-util.js +18 -2
- package/lib/common/promise-util.js.map +1 -1
- package/lib/common/promise-util.spec.js +2 -2
- package/lib/common/promise-util.spec.js.map +1 -1
- package/lib/common/resource.js +5 -4
- package/lib/common/resource.js.map +1 -1
- package/lib/common/selection-service.js +1 -1
- package/lib/common/selection-service.js.map +1 -1
- package/lib/common/stream.js.map +1 -1
- package/lib/common/ternary-search-tree.js +6 -6
- package/lib/common/ternary-search-tree.js.map +1 -1
- package/lib/common/test/expect.js +1 -1
- package/lib/common/test/expect.js.map +1 -1
- package/lib/common/test/mock-logger.js +1 -1
- package/lib/common/test/mock-logger.js.map +1 -1
- package/lib/common/test/mock-resource-provider.js +1 -1
- package/lib/common/test/mock-resource-provider.js.map +1 -1
- package/lib/common/types.d.ts +23 -1
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js +26 -2
- package/lib/common/types.js.map +1 -1
- package/lib/common/uri.spec.js.map +1 -1
- package/lib/electron-browser/electron-clipboard-service.js +1 -1
- package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +2 -2
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +8 -8
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +5 -5
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +7 -7
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +1 -1
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/electron-window-preferences.js +1 -1
- package/lib/electron-browser/window/electron-window-preferences.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +4 -4
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-main/electron-main-application-module.js +4 -4
- package/lib/electron-main/electron-main-application-module.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +0 -4
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +9 -29
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +2 -2
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/lib/electron-main/electron-native-keymap.js +1 -1
- package/lib/electron-main/electron-native-keymap.js.map +1 -1
- package/lib/electron-main/electron-security-token-service.js +2 -2
- package/lib/electron-main/electron-security-token-service.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +8 -8
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.js +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
- package/lib/electron-node/token/electron-token-backend-contribution.js +2 -2
- package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
- package/lib/electron-node/token/electron-token-messaging-contribution.js +2 -2
- package/lib/electron-node/token/electron-token-messaging-contribution.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +2 -2
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/application-server.js +2 -2
- package/lib/node/application-server.js.map +1 -1
- package/lib/node/backend-application-config-provider.js +1 -1
- package/lib/node/backend-application-config-provider.js.map +1 -1
- package/lib/node/backend-application-config-provider.spec.js +1 -1
- package/lib/node/backend-application-config-provider.spec.js.map +1 -1
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +7 -4
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/backend-application.d.ts +2 -2
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +17 -35
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/cli.js +3 -2
- package/lib/node/cli.js.map +1 -1
- package/lib/node/console-logger-server.js +4 -4
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/console-logger-server.spec.js +5 -5
- package/lib/node/console-logger-server.spec.js.map +1 -1
- package/lib/node/env-variables/env-variables-server.js +3 -3
- package/lib/node/env-variables/env-variables-server.js.map +1 -1
- package/lib/node/env-variables/index.js +1 -1
- package/lib/node/environment-utils.js +1 -1
- package/lib/node/environment-utils.js.map +1 -1
- package/lib/node/hosting/backend-application-hosts.js +2 -2
- package/lib/node/hosting/backend-application-hosts.js.map +1 -1
- package/lib/node/hosting/ws-origin-validator.js +2 -2
- package/lib/node/hosting/ws-origin-validator.js.map +1 -1
- package/lib/node/i18n/i18n-backend-module.js +1 -1
- package/lib/node/i18n/i18n-backend-module.js.map +1 -1
- package/lib/node/i18n/localization-backend-contribution.js +3 -3
- package/lib/node/i18n/localization-backend-contribution.js.map +1 -1
- package/lib/node/i18n/localization-contribution.js +4 -4
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/i18n/localization-provider.js +1 -1
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/lib/node/index.js +1 -1
- package/lib/node/keytar-server.js +1 -1
- package/lib/node/keytar-server.js.map +1 -1
- package/lib/node/logger-backend-module.js +1 -1
- package/lib/node/logger-backend-module.js.map +1 -1
- package/lib/node/logger-cli-contribution.js +1 -1
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/logger-cli-contribution.spec.js +13 -13
- package/lib/node/logger-cli-contribution.spec.js.map +1 -1
- package/lib/node/main.js +1 -1
- package/lib/node/main.js.map +1 -1
- package/lib/node/messaging/http-websocket-adapter.js +3 -3
- package/lib/node/messaging/http-websocket-adapter.js.map +1 -1
- package/lib/node/messaging/index.js +1 -1
- package/lib/node/messaging/ipc-bootstrap.js +3 -3
- package/lib/node/messaging/ipc-bootstrap.js.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +11 -7
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/messaging-backend-module.js +3 -3
- package/lib/node/messaging/messaging-backend-module.js.map +1 -1
- package/lib/node/messaging/messaging-contribution.js +14 -14
- package/lib/node/messaging/messaging-contribution.js.map +1 -1
- package/lib/node/messaging/messaging-listeners.js +3 -3
- package/lib/node/messaging/messaging-listeners.js.map +1 -1
- package/lib/node/performance/index.d.ts +18 -0
- package/lib/node/performance/index.d.ts.map +1 -0
- package/lib/node/performance/index.js +30 -0
- package/lib/node/performance/index.js.map +1 -0
- package/lib/node/performance/measurement-backend-bindings.d.ts +20 -0
- package/lib/node/performance/measurement-backend-bindings.d.ts.map +1 -0
- package/lib/node/performance/measurement-backend-bindings.js +31 -0
- package/lib/node/performance/measurement-backend-bindings.js.map +1 -0
- package/lib/node/performance/node-stopwatch.d.ts +21 -0
- package/lib/node/performance/node-stopwatch.d.ts.map +1 -0
- package/lib/node/performance/node-stopwatch.js +52 -0
- package/lib/node/performance/node-stopwatch.js.map +1 -0
- package/lib/node/process-utils.js +1 -1
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/process-utils.spec.js +1 -1
- package/lib/node/process-utils.spec.js.map +1 -1
- package/lib/node/ws-request-validators.js +3 -3
- package/lib/node/ws-request-validators.js.map +1 -1
- package/package.json +3 -3
- package/src/browser/authentication-service.ts +103 -59
- package/src/browser/frontend-application-module.ts +4 -0
- package/src/browser/frontend-application.ts +17 -22
- package/src/browser/performance/frontend-stopwatch.ts +62 -0
- package/src/browser/performance/index.ts +18 -0
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -0
- package/src/browser/preferences/preference-language-override-service.ts +17 -3
- package/src/browser/saveable.ts +84 -27
- package/src/browser/shell/application-shell.ts +42 -28
- package/src/browser/shell/side-panel-handler.ts +12 -0
- package/src/browser/shell/tab-bars.ts +1 -0
- package/src/browser/source-tree/source-tree-widget.tsx +6 -9
- package/src/browser/source-tree/source-tree.ts +6 -4
- package/src/browser/style/sidepanel.css +4 -0
- package/src/browser/style/view-container.css +0 -8
- package/src/browser/tree/index.ts +1 -0
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -0
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +82 -0
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +181 -0
- package/src/browser/tree/tree-compression/index.ts +20 -0
- package/src/browser/tree/tree-compression/tree-compression-service.ts +121 -0
- package/src/browser/tree/tree-compression/tree-compression.css +28 -0
- package/src/browser/tree/tree-container.ts +107 -29
- package/src/browser/tree/tree-expansion.ts +1 -1
- package/src/browser/tree/tree-model.ts +13 -11
- package/src/browser/tree/tree-widget.tsx +30 -12
- package/src/browser/tree/tree.ts +2 -2
- package/src/browser/view-container.ts +27 -23
- package/src/browser/widget-open-handler.ts +1 -3
- package/src/common/event.ts +2 -2
- package/src/common/index.ts +1 -0
- package/src/common/messaging/proxy-factory.ts +1 -1
- package/src/common/performance/index.ts +19 -0
- package/src/common/performance/measurement-protocol.ts +104 -0
- package/src/common/performance/measurement.ts +104 -0
- package/src/common/performance/stopwatch.ts +157 -0
- package/src/common/promise-util.ts +16 -0
- package/src/common/types.ts +41 -1
- package/src/electron-browser/menu/electron-menu-contribution.ts +1 -1
- package/src/electron-main/electron-main-application.ts +1 -22
- package/src/node/backend-application-module.ts +4 -0
- package/src/node/backend-application.ts +10 -33
- package/src/node/messaging/ipc-connection-provider.ts +9 -5
- package/src/node/performance/index.ts +18 -0
- package/src/node/performance/measurement-backend-bindings.ts +35 -0
- package/src/node/performance/node-stopwatch.ts +40 -0
|
@@ -24,7 +24,7 @@ import { Message } from '@phosphor/messaging';
|
|
|
24
24
|
import { IDragEvent } from '@phosphor/dragdrop';
|
|
25
25
|
import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment } from '../../common';
|
|
26
26
|
import { animationFrame } from '../browser';
|
|
27
|
-
import { Saveable, SaveableWidget, SaveOptions } from '../saveable';
|
|
27
|
+
import { Saveable, SaveableWidget, SaveOptions, SaveableSource } from '../saveable';
|
|
28
28
|
import { StatusBarImpl, StatusBarEntry, StatusBarAlignment } from '../status-bar/status-bar';
|
|
29
29
|
import { TheiaDockPanel, BOTTOM_AREA_ID, MAIN_AREA_ID } from './theia-dock-panel';
|
|
30
30
|
import { SidePanelHandler, SidePanel, SidePanelHandlerFactory } from './side-panel-handler';
|
|
@@ -1025,7 +1025,7 @@ export class ApplicationShell extends Widget {
|
|
|
1025
1025
|
}
|
|
1026
1026
|
this.tracker.add(widget);
|
|
1027
1027
|
this.checkActivation(widget);
|
|
1028
|
-
Saveable.apply(widget);
|
|
1028
|
+
Saveable.apply(widget, () => this.widgets.filter((maybeSaveable): maybeSaveable is Widget & SaveableSource => !!Saveable.get(maybeSaveable)));
|
|
1029
1029
|
if (ApplicationShell.TrackableWidgetProvider.is(widget)) {
|
|
1030
1030
|
for (const toTrack of widget.getTrackableWidgets()) {
|
|
1031
1031
|
this.track(toTrack);
|
|
@@ -1036,6 +1036,11 @@ export class ApplicationShell extends Widget {
|
|
|
1036
1036
|
}
|
|
1037
1037
|
}
|
|
1038
1038
|
|
|
1039
|
+
/**
|
|
1040
|
+
* @returns an array of Widgets, all of which are tracked by the focus tracker
|
|
1041
|
+
* The first member of the array is the widget whose id is passed in, and the other widgets
|
|
1042
|
+
* are its tracked parents in ascending order
|
|
1043
|
+
*/
|
|
1039
1044
|
protected toTrackedStack(id: string): Widget[] {
|
|
1040
1045
|
const tracked = new Map<string, Widget>(this.tracker.widgets.map(w => [w.id, w] as [string, Widget]));
|
|
1041
1046
|
let current = tracked.get(id);
|
|
@@ -1392,24 +1397,23 @@ export class ApplicationShell extends Widget {
|
|
|
1392
1397
|
* @param filter
|
|
1393
1398
|
* If undefined, all tabs are closed; otherwise only those tabs that match the filter are closed.
|
|
1394
1399
|
*/
|
|
1395
|
-
closeTabs(tabBarOrArea: TabBar<Widget> | ApplicationShell.Area,
|
|
1396
|
-
filter?: (title: Title<Widget>, index: number) => boolean): void {
|
|
1400
|
+
async closeTabs(tabBarOrArea: TabBar<Widget> | ApplicationShell.Area,
|
|
1401
|
+
filter?: (title: Title<Widget>, index: number) => boolean): Promise<void> {
|
|
1402
|
+
const titles: Array<Title<Widget>> = [];
|
|
1397
1403
|
if (tabBarOrArea === 'main') {
|
|
1398
|
-
this.mainAreaTabBars.forEach(
|
|
1404
|
+
this.mainAreaTabBars.forEach(tabbar => titles.push(...toArray(tabbar.titles)));
|
|
1399
1405
|
} else if (tabBarOrArea === 'bottom') {
|
|
1400
|
-
this.bottomAreaTabBars.forEach(
|
|
1406
|
+
this.bottomAreaTabBars.forEach(tabbar => titles.push(...toArray(tabbar.titles)));
|
|
1401
1407
|
} else if (typeof tabBarOrArea === 'string') {
|
|
1402
|
-
const
|
|
1403
|
-
if (
|
|
1404
|
-
|
|
1408
|
+
const tabbar = this.getTabBarFor(tabBarOrArea);
|
|
1409
|
+
if (tabbar) {
|
|
1410
|
+
titles.push(...toArray(tabbar.titles));
|
|
1405
1411
|
}
|
|
1406
1412
|
} else if (tabBarOrArea) {
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
}
|
|
1412
|
-
}
|
|
1413
|
+
titles.push(...toArray(tabBarOrArea.titles));
|
|
1414
|
+
}
|
|
1415
|
+
if (titles.length) {
|
|
1416
|
+
await this.closeMany((filter ? titles.filter(filter) : titles).map(title => title.owner));
|
|
1413
1417
|
}
|
|
1414
1418
|
}
|
|
1415
1419
|
|
|
@@ -1436,6 +1440,22 @@ export class ApplicationShell extends Widget {
|
|
|
1436
1440
|
}
|
|
1437
1441
|
}
|
|
1438
1442
|
|
|
1443
|
+
/**
|
|
1444
|
+
* @param targets the widgets to be closed
|
|
1445
|
+
* @return an array of all the widgets that were actually closed.
|
|
1446
|
+
*/
|
|
1447
|
+
async closeMany(targets: Widget[], options?: ApplicationShell.CloseOptions): Promise<Widget[]> {
|
|
1448
|
+
if (options?.save === false || await Saveable.confirmSaveBeforeClose(targets, this.widgets.filter(widget => !targets.includes(widget)))) {
|
|
1449
|
+
return (await Promise.all(targets.map(target => this.closeWidget(target.id, options)))).filter((widget): widget is Widget => widget !== undefined);
|
|
1450
|
+
}
|
|
1451
|
+
return [];
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
/**
|
|
1455
|
+
* @returns the widget that was closed, if any, `undefined` otherwise.
|
|
1456
|
+
*
|
|
1457
|
+
* If your use case requires closing multiple widgets, use {@link ApplicationShell#closeMany} instead. That method handles closing saveable widgets more reliably.
|
|
1458
|
+
*/
|
|
1439
1459
|
async closeWidget(id: string, options?: ApplicationShell.CloseOptions): Promise<Widget | undefined> {
|
|
1440
1460
|
// TODO handle save for composite widgets, i.e. the preference widget has 2 editors
|
|
1441
1461
|
const stack = this.toTrackedStack(id);
|
|
@@ -1443,17 +1463,10 @@ export class ApplicationShell extends Widget {
|
|
|
1443
1463
|
if (!current) {
|
|
1444
1464
|
return undefined;
|
|
1445
1465
|
}
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
shouldSave = () => options.save;
|
|
1451
|
-
}
|
|
1452
|
-
pendingClose = current.closeWithSaving({ shouldSave });
|
|
1453
|
-
} else {
|
|
1454
|
-
current.close();
|
|
1455
|
-
pendingClose = waitForClosed(current);
|
|
1456
|
-
};
|
|
1466
|
+
const saveableOptions = options && { shouldSave: () => options.save };
|
|
1467
|
+
const pendingClose = SaveableWidget.is(current)
|
|
1468
|
+
? current.closeWithSaving(saveableOptions)
|
|
1469
|
+
: (current.close(), waitForClosed(current));
|
|
1457
1470
|
await Promise.all([
|
|
1458
1471
|
pendingClose,
|
|
1459
1472
|
this.pendingUpdates
|
|
@@ -1744,8 +1757,9 @@ export class ApplicationShell extends Widget {
|
|
|
1744
1757
|
if (!prevBar) {
|
|
1745
1758
|
return false;
|
|
1746
1759
|
}
|
|
1747
|
-
|
|
1748
|
-
|
|
1760
|
+
if (!prevBar.currentTitle) {
|
|
1761
|
+
prevBar.currentIndex = prevBar.titles.length - 1;
|
|
1762
|
+
}
|
|
1749
1763
|
if (prevBar.currentTitle) {
|
|
1750
1764
|
this.activateWidget(prevBar.currentTitle.owner.id);
|
|
1751
1765
|
}
|
|
@@ -458,6 +458,7 @@ export class SidePanelHandler {
|
|
|
458
458
|
const currentTitle = tabBar.currentTitle;
|
|
459
459
|
// eslint-disable-next-line no-null/no-null
|
|
460
460
|
const hideDockPanel = currentTitle === null;
|
|
461
|
+
this.updateSashState(this.container, hideDockPanel);
|
|
461
462
|
let relativeSizes: number[] | undefined;
|
|
462
463
|
|
|
463
464
|
if (hideDockPanel) {
|
|
@@ -659,6 +660,17 @@ export class SidePanelHandler {
|
|
|
659
660
|
this.refresh();
|
|
660
661
|
}
|
|
661
662
|
|
|
663
|
+
protected updateSashState(sidePanelElement: Panel | null, sidePanelCollapsed: boolean): void {
|
|
664
|
+
if (sidePanelElement) {
|
|
665
|
+
// Hide the sash when the left/right side panel is collapsed
|
|
666
|
+
if (sidePanelElement.id === 'theia-left-content-panel' && sidePanelElement.node.nextElementSibling) {
|
|
667
|
+
sidePanelElement.node.nextElementSibling.classList.toggle('sash-hidden', sidePanelCollapsed);
|
|
668
|
+
} else if (sidePanelElement.id === 'theia-right-content-panel' && sidePanelElement.node.previousElementSibling) {
|
|
669
|
+
sidePanelElement.node.previousElementSibling.classList.toggle('sash-hidden', sidePanelCollapsed);
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
|
|
662
674
|
}
|
|
663
675
|
|
|
664
676
|
export namespace SidePanel {
|
|
@@ -640,6 +640,7 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
640
640
|
/**
|
|
641
641
|
* Overrides the `contentNode` property getter in PhosphorJS' TabBar.
|
|
642
642
|
*/
|
|
643
|
+
// @ts-expect-error TS2611 `TabBar<T>.contentNode` is declared as `readonly contentNode` but is implemented as a getter.
|
|
643
644
|
get contentNode(): HTMLUListElement {
|
|
644
645
|
return this.tabBarContainer.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT)[0] as HTMLUListElement;
|
|
645
646
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import * as React from 'react';
|
|
18
18
|
import { injectable, postConstruct, interfaces, Container } from 'inversify';
|
|
19
19
|
import { DisposableCollection } from '../../common/disposable';
|
|
20
|
-
import { TreeWidget, TreeNode, createTreeContainer, TreeProps,
|
|
20
|
+
import { TreeWidget, TreeNode, createTreeContainer, TreeProps, TreeModel } from '../tree';
|
|
21
21
|
import { TreeSource, TreeElement } from './tree-source';
|
|
22
22
|
import { SourceTree, TreeElementNode, TreeSourceNode } from './source-tree';
|
|
23
23
|
|
|
@@ -25,14 +25,11 @@ import { SourceTree, TreeElementNode, TreeSourceNode } from './source-tree';
|
|
|
25
25
|
export class SourceTreeWidget extends TreeWidget {
|
|
26
26
|
|
|
27
27
|
static createContainer(parent: interfaces.Container, props?: Partial<TreeProps>): Container {
|
|
28
|
-
const child = createTreeContainer(parent,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
child.unbind(TreeWidget);
|
|
35
|
-
child.bind(SourceTreeWidget).toSelf();
|
|
28
|
+
const child = createTreeContainer(parent, {
|
|
29
|
+
props,
|
|
30
|
+
tree: SourceTree,
|
|
31
|
+
widget: SourceTreeWidget,
|
|
32
|
+
});
|
|
36
33
|
|
|
37
34
|
return child;
|
|
38
35
|
}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
+
|
|
17
19
|
import { injectable } from 'inversify';
|
|
18
20
|
import { MaybePromise } from '../../common/types';
|
|
19
21
|
import { TreeImpl, CompositeTreeNode, TreeNode, SelectableTreeNode, ExpandableTreeNode } from '../tree';
|
|
@@ -67,15 +69,15 @@ export class SourceTree extends TreeImpl {
|
|
|
67
69
|
} as TreeElementNode;
|
|
68
70
|
}
|
|
69
71
|
if (CompositeTreeElementNode.is(updated)) {
|
|
70
|
-
delete updated.expanded;
|
|
71
|
-
delete updated.children;
|
|
72
|
+
delete (updated as any).expanded;
|
|
73
|
+
delete (updated as any).children;
|
|
72
74
|
}
|
|
73
75
|
if (updated) {
|
|
74
76
|
if (ExpandableTreeNode.is(updated)) {
|
|
75
|
-
delete updated.expanded;
|
|
77
|
+
delete (updated as any).expanded;
|
|
76
78
|
}
|
|
77
79
|
if (CompositeTreeNode.is(updated)) {
|
|
78
|
-
delete updated.children;
|
|
80
|
+
delete (updated as any).children;
|
|
79
81
|
}
|
|
80
82
|
return updated;
|
|
81
83
|
}
|
|
@@ -228,6 +228,10 @@
|
|
|
228
228
|
font-size: 16px;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
+
.p-SplitPanel-handle.sash-hidden {
|
|
232
|
+
visibility: hidden;
|
|
233
|
+
}
|
|
234
|
+
|
|
231
235
|
/*-----------------------------------------------------------------------------
|
|
232
236
|
| Perfect scrollbar
|
|
233
237
|
|----------------------------------------------------------------------------*/
|
|
@@ -63,14 +63,6 @@
|
|
|
63
63
|
min-height: var(--theia-sash-width);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
.p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle.sash-hidden {
|
|
67
|
-
visibility: hidden;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle.sash-hidden::after {
|
|
71
|
-
min-height: 0px;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
66
|
.theia-view-container .part {
|
|
75
67
|
height: 100%;
|
|
76
68
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { injectable, inject } from 'inversify';
|
|
18
|
+
import { CompressionToggle, TreeCompressionService } from './tree-compression-service';
|
|
19
|
+
import { ExpandableTreeNode, TreeExpansionServiceImpl } from '../tree-expansion';
|
|
20
|
+
|
|
21
|
+
@injectable()
|
|
22
|
+
export class CompressedExpansionService extends TreeExpansionServiceImpl {
|
|
23
|
+
@inject(CompressionToggle) protected readonly compressionToggle: CompressionToggle;
|
|
24
|
+
@inject(TreeCompressionService) protected readonly compressionService: TreeCompressionService;
|
|
25
|
+
|
|
26
|
+
async expandNode(raw: ExpandableTreeNode): Promise<ExpandableTreeNode | undefined> {
|
|
27
|
+
if (!this.compressionToggle.compress) { return super.expandNode(raw); }
|
|
28
|
+
const participants = this.compressionService.getCompressionChain(raw);
|
|
29
|
+
let expansionRoot;
|
|
30
|
+
for (const node of participants ?? [raw]) {
|
|
31
|
+
const next = await super.expandNode(node);
|
|
32
|
+
expansionRoot = expansionRoot ?? next;
|
|
33
|
+
}
|
|
34
|
+
return expansionRoot;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async collapseNode(raw: ExpandableTreeNode): Promise<boolean> {
|
|
38
|
+
if (!this.compressionToggle.compress) { return super.collapseNode(raw); }
|
|
39
|
+
const participants = this.compressionService.getCompressionChain(raw);
|
|
40
|
+
let didCollapse = false;
|
|
41
|
+
for (const participant of participants ?? [raw]) {
|
|
42
|
+
didCollapse = await super.collapseNode(participant) || didCollapse;
|
|
43
|
+
}
|
|
44
|
+
return didCollapse;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { injectable, inject } from 'inversify';
|
|
18
|
+
import { CompressionToggle, TreeCompressionService } from './tree-compression-service';
|
|
19
|
+
import { CompositeTreeNode, TreeNode } from '../tree';
|
|
20
|
+
import { TreeModelImpl } from '../tree-model';
|
|
21
|
+
import { SelectableTreeNode, TreeSelection } from '../tree-selection';
|
|
22
|
+
import { ExpandableTreeNode } from '../tree-expansion';
|
|
23
|
+
import { TopDownTreeIterator, TreeIterator } from '../tree-iterator';
|
|
24
|
+
|
|
25
|
+
export class TopDownCompressedTreeIterator extends TopDownTreeIterator {
|
|
26
|
+
protected isCollapsed(candidate: TreeNode): boolean {
|
|
27
|
+
return ExpandableTreeNode.isCollapsed(candidate) && !TreeCompressionService.prototype.isCompressionParent(candidate);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
enum BackOrForward {
|
|
32
|
+
Forward,
|
|
33
|
+
Backward,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@injectable()
|
|
37
|
+
export class CompressedTreeModel extends TreeModelImpl {
|
|
38
|
+
@inject(CompressionToggle) protected readonly compressionToggle: CompressionToggle;
|
|
39
|
+
@inject(TreeCompressionService) protected readonly compressionService: TreeCompressionService;
|
|
40
|
+
|
|
41
|
+
protected selectAdjacentRow(direction: BackOrForward, type: TreeSelection.SelectionType = TreeSelection.SelectionType.DEFAULT): void {
|
|
42
|
+
let startingPoint: TreeNode = this.selectedNodes[0];
|
|
43
|
+
if (this.compressionService.isCompressionParticipant(startingPoint)) {
|
|
44
|
+
const chain = this.compressionService.getCompressionChain(startingPoint);
|
|
45
|
+
startingPoint = (direction === BackOrForward.Backward ? chain?.head() : chain?.tail()) ?? startingPoint;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const iterator = direction === BackOrForward.Backward ? this.createBackwardIterator(startingPoint) : this.createIterator(startingPoint);
|
|
49
|
+
|
|
50
|
+
const test = (candidate: TreeNode): candidate is SelectableTreeNode => SelectableTreeNode.isVisible(candidate)
|
|
51
|
+
&& (this.compressionService.isCompressionHead(candidate) || !this.compressionService.isCompressionParticipant(candidate));
|
|
52
|
+
|
|
53
|
+
const rowRoot = iterator && this.doGetNextNode(iterator, test);
|
|
54
|
+
const nodes: Array<TreeNode | undefined> = (this.compressionService.getCompressionChain(rowRoot) ?? [rowRoot]).reverse();
|
|
55
|
+
|
|
56
|
+
const node = nodes.find(SelectableTreeNode.is);
|
|
57
|
+
|
|
58
|
+
if (node) {
|
|
59
|
+
this.addSelection({ node, type });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
selectPrevRow(type?: TreeSelection.SelectionType): void {
|
|
64
|
+
this.selectAdjacentRow(BackOrForward.Backward, type);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
selectNextRow(type?: TreeSelection.SelectionType): void {
|
|
68
|
+
this.selectAdjacentRow(BackOrForward.Forward, type);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
protected createForwardIteratorForNode(node: TreeNode): TreeIterator {
|
|
72
|
+
return new TopDownCompressedTreeIterator(node, { pruneCollapsed: true });
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
protected selectIfAncestorOfSelected(node: Readonly<ExpandableTreeNode>): void {
|
|
76
|
+
if (!this.compressionToggle.compress) { return super.selectIfAncestorOfSelected(node); }
|
|
77
|
+
const tail = this.compressionService.getCompressionChain(node)?.tail() ?? node;
|
|
78
|
+
if (SelectableTreeNode.is(tail) && !tail.expanded && this.selectedNodes.some(selectedNode => CompositeTreeNode.isAncestor(tail, selectedNode))) {
|
|
79
|
+
this.selectNode(tail);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import '../../../../src/browser/tree/tree-compression/tree-compression.css';
|
|
18
|
+
import { injectable, inject } from 'inversify';
|
|
19
|
+
import * as React from 'react';
|
|
20
|
+
import { ArrayUtils } from '../../../common/types';
|
|
21
|
+
import { ContextMenuRenderer } from '../../context-menu-renderer';
|
|
22
|
+
import { CompressionToggle, TreeCompressionService } from './tree-compression-service';
|
|
23
|
+
import { CompositeTreeNode, TreeNode } from '../tree';
|
|
24
|
+
import { NodeProps, TreeProps, TreeWidget } from '../tree-widget';
|
|
25
|
+
import { SelectableTreeNode, TreeSelection } from '../tree-selection';
|
|
26
|
+
import { ExpandableTreeNode } from '../tree-expansion';
|
|
27
|
+
import { TreeViewWelcomeWidget } from '../tree-view-welcome-widget';
|
|
28
|
+
import { CompressedTreeModel } from './compressed-tree-model';
|
|
29
|
+
|
|
30
|
+
export interface CompressedChildren {
|
|
31
|
+
compressionChain?: ArrayUtils.HeadAndTail<TreeNode>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface CompressedNodeRow extends TreeWidget.NodeRow, CompressedChildren { }
|
|
35
|
+
|
|
36
|
+
export interface CompressedNodeProps extends NodeProps, CompressedChildren { }
|
|
37
|
+
|
|
38
|
+
@injectable()
|
|
39
|
+
export class CompressedTreeWidget extends TreeViewWelcomeWidget {
|
|
40
|
+
|
|
41
|
+
@inject(CompressionToggle) protected readonly compressionToggle: CompressionToggle;
|
|
42
|
+
@inject(TreeCompressionService) protected readonly compressionService: TreeCompressionService;
|
|
43
|
+
|
|
44
|
+
constructor(
|
|
45
|
+
@inject(TreeProps) readonly props: TreeProps,
|
|
46
|
+
@inject(CompressedTreeModel) readonly model: CompressedTreeModel,
|
|
47
|
+
@inject(ContextMenuRenderer) protected readonly contextMenuRenderer: ContextMenuRenderer,
|
|
48
|
+
) {
|
|
49
|
+
super(props, model, contextMenuRenderer);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
protected rows = new Map<string, CompressedNodeRow>();
|
|
53
|
+
|
|
54
|
+
toggleCompression(newCompression = !this.compressionToggle.compress): void {
|
|
55
|
+
if (newCompression !== this.compressionToggle.compress) {
|
|
56
|
+
this.compressionToggle.compress = newCompression;
|
|
57
|
+
this.updateRows();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
protected shouldDisplayNode(node: TreeNode): boolean {
|
|
62
|
+
if (this.compressionToggle.compress && this.compressionService.isCompressionParticipant(node) && !this.compressionService.isCompressionHead(node)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return super.shouldDisplayNode(node);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
protected getDepthForNode(node: TreeNode, depths: Map<CompositeTreeNode | undefined, number>): number {
|
|
69
|
+
if (!this.compressionToggle.compress) { return super.getDepthForNode(node, depths); }
|
|
70
|
+
const parent = this.compressionService.getCompressionHead(node.parent) ?? node.parent;
|
|
71
|
+
const parentDepth = depths.get(parent);
|
|
72
|
+
return parentDepth === undefined ? 0 : TreeNode.isVisible(node.parent) ? parentDepth + 1 : parentDepth;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
protected toNodeRow(node: TreeNode, index: number, depth: number): CompressedNodeRow {
|
|
76
|
+
if (!this.compressionToggle.compress) { return super.toNodeRow(node, index, depth); }
|
|
77
|
+
const row: CompressedNodeRow = { node, index, depth };
|
|
78
|
+
if (this.compressionService.isCompressionHead(node)) {
|
|
79
|
+
row.compressionChain = this.compressionService.getCompressionChain(node);
|
|
80
|
+
}
|
|
81
|
+
return row;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
protected doRenderNodeRow({ node, depth, compressionChain }: CompressedNodeRow): React.ReactNode {
|
|
85
|
+
const nodeProps: CompressedNodeProps = { depth, compressionChain };
|
|
86
|
+
return <>
|
|
87
|
+
{this.renderIndent(node, nodeProps)}
|
|
88
|
+
{this.renderNode(node, nodeProps)}
|
|
89
|
+
</>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
protected rowIsSelected(node: TreeNode, props: CompressedNodeProps): boolean {
|
|
93
|
+
if (this.compressionToggle.compress && props.compressionChain) {
|
|
94
|
+
return props.compressionChain.some(participant => SelectableTreeNode.isSelected(participant));
|
|
95
|
+
}
|
|
96
|
+
return SelectableTreeNode.isSelected(node);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
protected getCaptionAttributes(node: TreeNode, props: CompressedNodeProps): React.Attributes & React.HTMLAttributes<HTMLElement> {
|
|
100
|
+
const operativeNode = props.compressionChain?.tail() ?? node;
|
|
101
|
+
return super.getCaptionAttributes(operativeNode, props);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
protected getCaptionChildren(node: TreeNode, props: CompressedNodeProps): React.ReactNode {
|
|
105
|
+
if (!this.compressionToggle.compress || !props.compressionChain) { return super.getCaptionChildren(node, props); }
|
|
106
|
+
return props.compressionChain.map((subNode, index, self) => {
|
|
107
|
+
const classes = ['theia-tree-compressed-label-part'];
|
|
108
|
+
if (SelectableTreeNode.isSelected(subNode)) {
|
|
109
|
+
classes.push('theia-tree-compressed-selected');
|
|
110
|
+
}
|
|
111
|
+
const handlers = this.getCaptionChildEventHandlers(subNode, props);
|
|
112
|
+
const caption = <span className={classes.join(' ')} key={subNode.id} {...handlers}>{super.getCaptionChildren(subNode, props)}</span>;
|
|
113
|
+
if (index === self.length - 1) {
|
|
114
|
+
return caption;
|
|
115
|
+
}
|
|
116
|
+
return [
|
|
117
|
+
caption,
|
|
118
|
+
<span className='theia-tree-compressed-label-separator' key={subNode + '-separator'}>{this.getSeparatorContent(node, props)}</span>
|
|
119
|
+
];
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
protected getCaptionChildEventHandlers(node: TreeNode, props: CompressedNodeProps): React.Attributes & React.HtmlHTMLAttributes<HTMLElement> {
|
|
124
|
+
return {
|
|
125
|
+
onClick: event => (event.stopPropagation(), this.handleClickEvent(node, event)),
|
|
126
|
+
onDoubleClick: event => (event.stopPropagation(), this.handleClickEvent(node, event)),
|
|
127
|
+
onContextMenu: event => (event.stopPropagation(), this.handleClickEvent(node, event)),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
protected handleUp(event: KeyboardEvent): void {
|
|
132
|
+
if (!this.compressionToggle.compress) { return super.handleUp(event); }
|
|
133
|
+
const type = this.props.multiSelect && this.hasShiftMask(event) ? TreeSelection.SelectionType.RANGE : undefined;
|
|
134
|
+
this.model.selectPrevRow(type);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
protected handleDown(event: KeyboardEvent): void {
|
|
138
|
+
if (!this.compressionToggle.compress) { return super.handleDown(event); }
|
|
139
|
+
const type = this.props.multiSelect && this.hasShiftMask(event) ? TreeSelection.SelectionType.RANGE : undefined;
|
|
140
|
+
this.model.selectNextRow(type);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
protected async handleLeft(event: KeyboardEvent): Promise<void> {
|
|
144
|
+
if (!this.compressionToggle.compress) { return super.handleLeft(event); }
|
|
145
|
+
if (Boolean(this.props.multiSelect) && (this.hasCtrlCmdMask(event) || this.hasShiftMask(event))) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const active = this.model.selectedNodes[0];
|
|
149
|
+
if (ExpandableTreeNode.isExpanded(active)
|
|
150
|
+
&& (
|
|
151
|
+
this.compressionService.isCompressionHead(active)
|
|
152
|
+
|| !this.compressionService.isCompressionParticipant(active)
|
|
153
|
+
)) {
|
|
154
|
+
await this.model.collapseNode(active);
|
|
155
|
+
} else {
|
|
156
|
+
this.model.selectParent();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
protected async handleRight(event: KeyboardEvent): Promise<void> {
|
|
161
|
+
if (!this.compressionToggle.compress) { return super.handleRight(event); }
|
|
162
|
+
if (Boolean(this.props.multiSelect) && (this.hasCtrlCmdMask(event) || this.hasShiftMask(event))) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const active = this.model.selectedNodes[0];
|
|
166
|
+
|
|
167
|
+
if (ExpandableTreeNode.isCollapsed(active)
|
|
168
|
+
&& (
|
|
169
|
+
!this.compressionService.isCompressionParticipant(active)
|
|
170
|
+
|| this.compressionService.isCompressionTail(active)
|
|
171
|
+
)) {
|
|
172
|
+
await this.model.expandNode(active);
|
|
173
|
+
} else if (ExpandableTreeNode.is(active)) {
|
|
174
|
+
this.model.selectNextNode();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
protected getSeparatorContent(node: TreeNode, props: CompressedNodeProps): React.ReactNode {
|
|
179
|
+
return '/';
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
export * from './compressed-tree-expansion-service';
|
|
18
|
+
export * from './compressed-tree-model';
|
|
19
|
+
export * from './compressed-tree-widget';
|
|
20
|
+
export * from './tree-compression-service';
|