@theia/core 1.53.0-next.5 → 1.53.0-next.55
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 +7 -7
- package/i18n/nls.cs.json +582 -552
- package/i18n/nls.de.json +582 -552
- package/i18n/nls.es.json +582 -552
- package/i18n/nls.fr.json +582 -552
- package/i18n/nls.hu.json +582 -552
- package/i18n/nls.it.json +582 -552
- package/i18n/nls.ja.json +582 -552
- package/i18n/nls.json +582 -552
- package/i18n/nls.ko.json +582 -0
- package/i18n/nls.pl.json +582 -552
- package/i18n/nls.pt-br.json +582 -552
- package/i18n/nls.ru.json +582 -552
- package/i18n/nls.tr.json +582 -0
- package/i18n/nls.zh-cn.json +582 -552
- package/i18n/nls.zh-tw.json +582 -0
- package/lib/browser/authentication-service.d.ts +15 -14
- package/lib/browser/authentication-service.d.ts.map +1 -1
- package/lib/browser/authentication-service.js +5 -5
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/catalog.json +6889 -0
- package/lib/browser/common-frontend-contribution.js +3 -3
- package/lib/browser/common-styling-participants.js +166 -166
- package/lib/browser/context-key-service.d.ts +3 -2
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +9 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/json-schema-store.d.ts +0 -3
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/json-schema-store.js +2 -12
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/open-with-service.d.ts +13 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +48 -9
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.d.ts +8 -0
- package/lib/browser/opener-service.d.ts.map +1 -1
- package/lib/browser/opener-service.js +18 -3
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/progress-location-service.spec.js +7 -7
- package/lib/browser/saveable-service.d.ts.map +1 -1
- package/lib/browser/saveable-service.js +6 -2
- package/lib/browser/saveable-service.js.map +1 -1
- package/lib/browser/saveable.d.ts +17 -1
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +62 -1
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +5 -4
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +2 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +6 -16
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +12 -29
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +43 -78
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +8 -39
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +10 -10
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +43 -32
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/storage-service.js +3 -3
- package/lib/browser/tree/tree.spec.js +75 -75
- package/lib/browser/view-container.d.ts +2 -2
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts +4 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/extractable-widget.js +1 -1
- package/lib/browser/widgets/extractable-widget.js.map +1 -1
- package/lib/browser/widgets/index.d.ts +1 -0
- package/lib/browser/widgets/index.d.ts.map +1 -1
- package/lib/browser/widgets/index.js +1 -0
- package/lib/browser/widgets/index.js.map +1 -1
- package/lib/browser/widgets/split-widget.d.ts +45 -0
- package/lib/browser/widgets/split-widget.d.ts.map +1 -0
- package/lib/browser/widgets/split-widget.js +126 -0
- package/lib/browser/widgets/split-widget.js.map +1 -0
- package/lib/common/event.d.ts +2 -0
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +4 -0
- package/lib/common/event.js.map +1 -1
- package/lib/common/glob.d.ts +4 -4
- package/lib/common/json-schema.d.ts +2 -0
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/electron-browser/electron-uri-handler.d.ts +6 -0
- package/lib/electron-browser/electron-uri-handler.d.ts.map +1 -0
- package/lib/electron-browser/electron-uri-handler.js +49 -0
- package/lib/electron-browser/electron-uri-handler.js.map +1 -0
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +6 -6
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +12 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +3 -0
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts +2 -0
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +27 -3
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +5 -3
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +57 -14
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts +1 -0
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +3 -0
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.d.ts.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.js +12 -8
- package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
- package/lib/node/process-utils.spec.js +8 -8
- package/package.json +10 -8
- package/shared/ajv/index.d.ts +2 -2
- package/shared/markdown-it.d.ts +2 -2
- package/shared/markdown-it.js +1 -1
- package/shared/reflect-metadata/index.d.ts +1 -1
- package/shared/reflect-metadata/index.js +1 -1
- package/shared/vscode-languageserver-types/index.d.ts +1 -1
- package/src/browser/about-dialog.tsx +137 -137
- package/src/browser/authentication-service.ts +467 -468
- package/src/browser/breadcrumbs/breadcrumb-popup-container.ts +101 -101
- package/src/browser/breadcrumbs/breadcrumb-renderer.tsx +41 -41
- package/src/browser/breadcrumbs/breadcrumbs-constants.ts +79 -79
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +185 -185
- package/src/browser/breadcrumbs/breadcrumbs-service.ts +108 -108
- package/src/browser/breadcrumbs/index.ts +21 -21
- package/src/browser/browser-clipboard-service.ts +122 -122
- package/src/browser/browser.ts +239 -239
- package/src/browser/clipboard-service.ts +23 -23
- package/src/browser/color-application-contribution.ts +110 -110
- package/src/browser/color-registry.ts +60 -60
- package/src/browser/command-open-handler.ts +54 -54
- package/src/browser/common-frontend-contribution.ts +2680 -2680
- package/src/browser/common-styling-participants.ts +361 -361
- package/src/browser/connection-status-service.spec.ts +200 -200
- package/src/browser/connection-status-service.ts +216 -216
- package/src/browser/context-key-service.ts +142 -142
- package/src/browser/context-menu-renderer.ts +124 -124
- package/src/browser/core-preferences.ts +343 -334
- package/src/browser/credentials-service.ts +106 -106
- package/src/browser/decoration-style.ts +65 -65
- package/src/browser/decorations-service.ts +209 -209
- package/src/browser/dialogs/react-dialog.tsx +56 -56
- package/src/browser/dialogs.ts +534 -534
- package/src/browser/diff-uris.ts +117 -117
- package/src/browser/encoding-registry.ts +97 -97
- package/src/browser/endpoint.spec.ts +148 -148
- package/src/browser/endpoint.ts +136 -136
- package/src/browser/external-uri-service.ts +79 -79
- package/src/browser/file-icons-js.d.ts +20 -20
- package/src/browser/frontend-application-bindings.ts +62 -62
- package/src/browser/frontend-application-config-provider.spec.ts +45 -45
- package/src/browser/frontend-application-config-provider.ts +50 -50
- package/src/browser/frontend-application-contribution.ts +110 -110
- package/src/browser/frontend-application-module.ts +474 -475
- package/src/browser/frontend-application-state.ts +74 -74
- package/src/browser/frontend-application.ts +326 -326
- package/src/browser/hover-service.ts +218 -218
- package/src/browser/http-open-handler.ts +49 -49
- package/src/browser/i18n/i18n-frontend-module.ts +27 -27
- package/src/browser/i18n/language-quick-pick-service.ts +130 -130
- package/src/browser/icon-registry.ts +87 -87
- package/src/browser/icon-theme-contribution.ts +64 -64
- package/src/browser/icon-theme-service.ts +217 -217
- package/src/browser/icons/CollapseAll.svg +7 -7
- package/src/browser/icons/CollapseAll_inverse.svg +7 -7
- package/src/browser/icons/Refresh.svg +7 -7
- package/src/browser/icons/Refresh_inverse.svg +7 -7
- package/src/browser/icons/add-inverse.svg +4 -4
- package/src/browser/icons/add.svg +4 -4
- package/src/browser/icons/arrow-down-bright.svg +6 -6
- package/src/browser/icons/arrow-down-dark.svg +6 -6
- package/src/browser/icons/arrow-up-bright.svg +6 -6
- package/src/browser/icons/arrow-up-dark.svg +6 -6
- package/src/browser/icons/case-sensitive-dark.svg +16 -16
- package/src/browser/icons/case-sensitive.svg +16 -16
- package/src/browser/icons/chevron-right-dark.svg +5 -5
- package/src/browser/icons/chevron-right-light.svg +6 -6
- package/src/browser/icons/circle-bright.svg +7 -7
- package/src/browser/icons/circle-dark.svg +7 -7
- package/src/browser/icons/clear-search-results-dark.svg +7 -7
- package/src/browser/icons/clear-search-results.svg +7 -7
- package/src/browser/icons/close-all-bright.svg +7 -7
- package/src/browser/icons/close-all-dark.svg +7 -7
- package/src/browser/icons/close-bright.svg +7 -7
- package/src/browser/icons/close-dark.svg +7 -7
- package/src/browser/icons/collapse.svg +4 -4
- package/src/browser/icons/edit-json-dark.svg +6 -6
- package/src/browser/icons/edit-json.svg +6 -6
- package/src/browser/icons/expand.svg +4 -4
- package/src/browser/icons/loading-dark.svg +6 -6
- package/src/browser/icons/loading-light.svg +6 -6
- package/src/browser/icons/open-change-bright.svg +3 -3
- package/src/browser/icons/open-change-dark.svg +4 -4
- package/src/browser/icons/open-file-bright.svg +4 -4
- package/src/browser/icons/open-file-dark.svg +4 -4
- package/src/browser/icons/preview-bright.svg +3 -3
- package/src/browser/icons/preview-dark.svg +3 -3
- package/src/browser/icons/regex-dark.svg +10 -10
- package/src/browser/icons/regex.svg +10 -10
- package/src/browser/icons/remove-all-inverse.svg +4 -4
- package/src/browser/icons/remove-all.svg +4 -4
- package/src/browser/icons/replace-all-inverse.svg +13 -13
- package/src/browser/icons/replace-all.svg +13 -13
- package/src/browser/icons/replace-inverse.svg +15 -15
- package/src/browser/icons/replace.svg +15 -15
- package/src/browser/icons/whole-word-dark.svg +19 -19
- package/src/browser/icons/whole-word.svg +19 -19
- package/src/browser/index.ts +50 -50
- package/src/browser/json-schema-store.ts +118 -127
- package/src/browser/keybinding.spec.ts +554 -554
- package/src/browser/keybinding.ts +759 -759
- package/src/browser/keyboard/browser-keyboard-frontend-contribution.ts +108 -108
- package/src/browser/keyboard/browser-keyboard-layout-provider.spec.ts +171 -171
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +469 -469
- package/src/browser/keyboard/browser-keyboard-module.ts +30 -30
- package/src/browser/keyboard/index.ts +20 -20
- package/src/browser/keyboard/keyboard-layout-service.spec.ts +121 -121
- package/src/browser/keyboard/keyboard-layout-service.ts +455 -455
- package/src/browser/keyboard/keys.spec.ts +258 -258
- package/src/browser/keyboard/keys.ts +20 -20
- package/src/browser/keys.ts +21 -21
- package/src/browser/label-parser.spec.ts +165 -165
- package/src/browser/label-parser.ts +108 -108
- package/src/browser/label-provider.spec.ts +62 -62
- package/src/browser/label-provider.ts +385 -385
- package/src/browser/language-icon-provider.ts +55 -55
- package/src/browser/language-service.ts +77 -77
- package/src/browser/logger-frontend-module.ts +65 -65
- package/src/browser/markdown-rendering/markdown-renderer.ts +98 -98
- package/src/browser/menu/browser-context-menu-renderer.ts +48 -48
- package/src/browser/menu/browser-menu-module.ts +28 -28
- package/src/browser/menu/browser-menu-plugin.ts +491 -491
- package/src/browser/menu/context-menu-context.ts +41 -41
- package/src/browser/messaging/connection-source.ts +26 -26
- package/src/browser/messaging/frontend-id-provider.ts +37 -37
- package/src/browser/messaging/index.ts +18 -18
- package/src/browser/messaging/messaging-frontend-module.ts +41 -41
- package/src/browser/messaging/service-connection-provider.ts +140 -140
- package/src/browser/messaging/ws-connection-provider.ts +49 -49
- package/src/browser/messaging/ws-connection-source.ts +230 -230
- package/src/browser/mime-service.ts +30 -30
- package/src/browser/navigatable-types.ts +81 -81
- package/src/browser/navigatable.ts +39 -39
- package/src/browser/open-with-service.ts +140 -93
- package/src/browser/opener-service.spec.ts +49 -49
- package/src/browser/opener-service.ts +169 -146
- package/src/browser/performance/frontend-stopwatch.ts +65 -65
- package/src/browser/performance/index.ts +18 -18
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -31
- package/src/browser/preferences/index.ts +23 -23
- package/src/browser/preferences/injectable-preference-proxy.ts +283 -283
- package/src/browser/preferences/preference-configurations.ts +82 -82
- package/src/browser/preferences/preference-contribution.ts +436 -436
- package/src/browser/preferences/preference-language-override-service.ts +111 -111
- package/src/browser/preferences/preference-provider.spec.ts +36 -36
- package/src/browser/preferences/preference-provider.ts +277 -277
- package/src/browser/preferences/preference-proxy.spec.ts +367 -367
- package/src/browser/preferences/preference-proxy.ts +367 -367
- package/src/browser/preferences/preference-schema-provider.spec.ts +130 -130
- package/src/browser/preferences/preference-scope.ts +18 -18
- package/src/browser/preferences/preference-service.spec.ts +613 -613
- package/src/browser/preferences/preference-service.ts +594 -594
- package/src/browser/preferences/preference-validation-service.spec.ts +334 -334
- package/src/browser/preferences/preference-validation-service.ts +358 -358
- package/src/browser/preferences/test/index.ts +19 -19
- package/src/browser/preferences/test/mock-preference-provider.ts +50 -50
- package/src/browser/preferences/test/mock-preference-proxy.ts +48 -48
- package/src/browser/preferences/test/mock-preference-service.ts +63 -63
- package/src/browser/preload/i18n-preload-contribution.ts +50 -50
- package/src/browser/preload/os-preload-contribution.ts +37 -37
- package/src/browser/preload/preload-module.ts +45 -45
- package/src/browser/preload/preloader.ts +37 -37
- package/src/browser/preload/theme-preload-contribution.ts +31 -31
- package/src/browser/progress-bar-factory.ts +29 -29
- package/src/browser/progress-bar.ts +76 -76
- package/src/browser/progress-client.ts +53 -53
- package/src/browser/progress-location-service.spec.ts +50 -50
- package/src/browser/progress-location-service.ts +96 -96
- package/src/browser/progress-status-bar-item.ts +83 -83
- package/src/browser/quick-input/index.ts +23 -23
- package/src/browser/quick-input/quick-access.ts +75 -75
- package/src/browser/quick-input/quick-command-frontend-contribution.ts +89 -89
- package/src/browser/quick-input/quick-command-service.ts +246 -246
- package/src/browser/quick-input/quick-help-service.ts +87 -87
- package/src/browser/quick-input/quick-input-frontend-contribution.ts +33 -33
- package/src/browser/quick-input/quick-input-service.spec.ts +176 -176
- package/src/browser/quick-input/quick-input-service.ts +17 -17
- package/src/browser/quick-input/quick-pick-service-impl.ts +69 -69
- package/src/browser/quick-input/quick-view-service.ts +83 -83
- package/src/browser/request/browser-request-module.ts +23 -23
- package/src/browser/request/browser-request-service.ts +172 -172
- package/src/browser/resource-context-key.ts +77 -77
- package/src/browser/saveable-service.ts +332 -328
- package/src/browser/saveable.ts +395 -327
- package/src/browser/secondary-window-handler.ts +211 -211
- package/src/browser/shell/additional-views-menu-widget.tsx +71 -71
- package/src/browser/shell/application-shell-mouse-tracker.ts +103 -103
- package/src/browser/shell/application-shell.ts +2271 -2271
- package/src/browser/shell/current-widget-command-adapter.ts +57 -57
- package/src/browser/shell/index.ts +23 -23
- package/src/browser/shell/shell-layout-restorer.ts +399 -399
- package/src/browser/shell/side-panel-handler.ts +794 -794
- package/src/browser/shell/side-panel-toolbar.ts +111 -111
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +39 -39
- package/src/browser/shell/sidebar-menu-widget.tsx +183 -183
- package/src/browser/shell/sidebar-top-menu-widget.tsx +26 -26
- package/src/browser/shell/split-panels.ts +191 -191
- package/src/browser/shell/tab-bar-decorator.ts +106 -106
- package/src/browser/shell/tab-bar-toolbar/index.ts +19 -19
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +31 -31
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +242 -256
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +149 -207
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +62 -62
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +443 -428
- package/src/browser/shell/tab-bars.spec.ts +63 -63
- package/src/browser/shell/tab-bars.ts +1468 -1468
- package/src/browser/shell/theia-dock-panel.ts +265 -265
- package/src/browser/shell/view-column-service.ts +125 -125
- package/src/browser/shell/view-contribution.ts +178 -178
- package/src/browser/source-tree/index.ts +19 -19
- package/src/browser/source-tree/source-tree-widget.tsx +107 -107
- package/src/browser/source-tree/source-tree.ts +146 -146
- package/src/browser/source-tree/tree-source.ts +73 -73
- package/src/browser/status-bar/index.ts +29 -29
- package/src/browser/status-bar/status-bar-types.ts +97 -97
- package/src/browser/status-bar/status-bar-view-model.ts +209 -209
- package/src/browser/status-bar/status-bar.tsx +189 -189
- package/src/browser/storage-service.spec.ts +76 -76
- package/src/browser/storage-service.ts +129 -129
- package/src/browser/style/about.css +36 -36
- package/src/browser/style/alert-messages.css +62 -62
- package/src/browser/style/ansi.css +88 -88
- package/src/browser/style/breadcrumbs.css +130 -130
- package/src/browser/style/dialog.css +126 -126
- package/src/browser/style/dockpanel.css +76 -76
- package/src/browser/style/hover-service.css +101 -101
- package/src/browser/style/icons.css +61 -61
- package/src/browser/style/index.css +353 -352
- package/src/browser/style/materialcolors.css +278 -278
- package/src/browser/style/menus.css +230 -230
- package/src/browser/style/notification.css +39 -39
- package/src/browser/style/os.css +87 -87
- package/src/browser/style/progress-bar.css +43 -43
- package/src/browser/style/quick-title-bar.css +45 -45
- package/src/browser/style/scrollbars.css +172 -172
- package/src/browser/style/search-box.css +123 -123
- package/src/browser/style/select-component.css +107 -107
- package/src/browser/style/sidepanel.css +367 -367
- package/src/browser/style/split-widget.css +38 -0
- package/src/browser/style/status-bar.css +127 -127
- package/src/browser/style/tabs.css +647 -658
- package/src/browser/style/tooltip.css +28 -28
- package/src/browser/style/tree-decorators.css +81 -81
- package/src/browser/style/tree.css +232 -232
- package/src/browser/style/view-container.css +187 -194
- package/src/browser/style/widget.css +19 -19
- package/src/browser/styling-service.ts +96 -96
- package/src/browser/supported-encodings.ts +262 -262
- package/src/browser/test/jsdom.ts +69 -69
- package/src/browser/test/mock-connection-status-service.ts +33 -33
- package/src/browser/test/mock-env-variables-server.ts +47 -47
- package/src/browser/test/mock-opener-service.ts +34 -34
- package/src/browser/test/mock-storage-service.ts +49 -49
- package/src/browser/theming.ts +206 -206
- package/src/browser/tooltip-service.tsx +96 -96
- package/src/browser/tree/fuzzy-search.spec.ts +99 -99
- package/src/browser/tree/fuzzy-search.ts +136 -136
- package/src/browser/tree/index.ts +29 -29
- package/src/browser/tree/search-box-debounce.ts +96 -96
- package/src/browser/tree/search-box.ts +355 -355
- package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -109
- package/src/browser/tree/test/mock-tree-model.ts +136 -136
- package/src/browser/tree/test/tree-test-container.ts +50 -50
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -46
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +88 -88
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +203 -203
- package/src/browser/tree/tree-compression/index.ts +20 -20
- package/src/browser/tree/tree-compression/tree-compression-service.ts +125 -125
- package/src/browser/tree/tree-compression/tree-compression.css +28 -28
- package/src/browser/tree/tree-consistency.spec.ts +105 -105
- package/src/browser/tree/tree-container.spec.ts +45 -45
- package/src/browser/tree/tree-container.ts +155 -155
- package/src/browser/tree/tree-decorator.spec.ts +162 -162
- package/src/browser/tree/tree-decorator.ts +238 -238
- package/src/browser/tree/tree-expansion.spec.ts +173 -173
- package/src/browser/tree/tree-expansion.ts +165 -165
- package/src/browser/tree/tree-focus-service.ts +55 -55
- package/src/browser/tree/tree-iterator.spec.ts +170 -170
- package/src/browser/tree/tree-iterator.ts +256 -256
- package/src/browser/tree/tree-label-provider.ts +40 -40
- package/src/browser/tree/tree-model.ts +562 -562
- package/src/browser/tree/tree-navigation.ts +58 -58
- package/src/browser/tree/tree-preference.ts +50 -50
- package/src/browser/tree/tree-search.ts +128 -128
- package/src/browser/tree/tree-selectable.spec.ts +152 -152
- package/src/browser/tree/tree-selection-impl.ts +176 -176
- package/src/browser/tree/tree-selection-state.spec.ts +462 -462
- package/src/browser/tree/tree-selection-state.ts +245 -245
- package/src/browser/tree/tree-selection.ts +159 -159
- package/src/browser/tree/tree-view-welcome-widget.tsx +263 -263
- package/src/browser/tree/tree-widget-selection.ts +45 -45
- package/src/browser/tree/tree-widget.tsx +1591 -1591
- package/src/browser/tree/tree.spec.ts +241 -241
- package/src/browser/tree/tree.ts +425 -425
- package/src/browser/undo-redo-handler.ts +85 -85
- package/src/browser/user-working-directory-provider.ts +77 -77
- package/src/browser/view-container.ts +1640 -1640
- package/src/browser/widget-decoration.ts +358 -358
- package/src/browser/widget-manager.spec.ts +102 -102
- package/src/browser/widget-manager.ts +318 -318
- package/src/browser/widget-open-handler.ts +168 -165
- package/src/browser/widgets/alert-message.tsx +56 -56
- package/src/browser/widgets/enhanced-preview-widget.ts +27 -27
- package/src/browser/widgets/extractable-widget.ts +33 -33
- package/src/browser/widgets/index.ts +21 -20
- package/src/browser/widgets/previewable-widget.ts +31 -31
- package/src/browser/widgets/react-renderer.tsx +53 -53
- package/src/browser/widgets/react-widget.tsx +51 -51
- package/src/browser/widgets/select-component.tsx +367 -367
- package/src/browser/widgets/split-widget.ts +163 -0
- package/src/browser/widgets/widget.ts +406 -406
- package/src/browser/window/browser-window-module.ts +32 -32
- package/src/browser/window/default-secondary-window-service.ts +189 -189
- package/src/browser/window/default-window-service.spec.ts +78 -78
- package/src/browser/window/default-window-service.ts +171 -171
- package/src/browser/window/secondary-window-service.ts +39 -39
- package/src/browser/window/test/mock-window-service.ts +29 -29
- package/src/browser/window/window-service.ts +78 -78
- package/src/browser/window/window-title-service.ts +107 -107
- package/src/browser/window/window-title-updater.ts +95 -95
- package/src/browser/window-contribution.ts +64 -64
- package/src/browser-only/frontend-only-application-module.ts +116 -116
- package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -37
- package/src/browser-only/logger-frontend-only-module.ts +63 -63
- package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -39
- package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -42
- package/src/browser-only/preload/frontend-only-preload-module.ts +49 -49
- package/src/common/accessibility.ts +33 -33
- package/src/common/application-error.spec.ts +27 -27
- package/src/common/application-error.ts +76 -76
- package/src/common/application-protocol.ts +42 -42
- package/src/common/array-utils.ts +129 -129
- package/src/common/buffer.ts +228 -228
- package/src/common/cancellation.ts +163 -163
- package/src/common/char-code.ts +438 -438
- package/src/common/collections.ts +125 -125
- package/src/common/color.ts +103 -103
- package/src/common/command.spec.ts +208 -208
- package/src/common/command.ts +489 -489
- package/src/common/contribution-filter/contribution-filter-registry.ts +79 -79
- package/src/common/contribution-filter/contribution-filter.ts +64 -64
- package/src/common/contribution-filter/filter.ts +23 -23
- package/src/common/contribution-filter/index.ts +19 -19
- package/src/common/contribution-provider.ts +96 -96
- package/src/common/disposable.spec.ts +94 -94
- package/src/common/disposable.ts +188 -188
- package/src/common/encoding-service.ts +380 -380
- package/src/common/encodings.ts +24 -24
- package/src/common/env-variables/env-variables-protocol.ts +38 -38
- package/src/common/env-variables/index.ts +17 -17
- package/src/common/event.spec.ts +32 -32
- package/src/common/event.ts +493 -487
- package/src/common/file-uri.ts +61 -61
- package/src/common/frontend-application-state.ts +38 -38
- package/src/common/glob.ts +741 -741
- package/src/common/hash.ts +85 -85
- package/src/common/i18n/localization-server.ts +25 -25
- package/src/common/i18n/localization.ts +80 -80
- package/src/common/i18n/nls.metadata.json +34112 -34112
- package/src/common/index.ts +51 -51
- package/src/common/json-schema.ts +108 -106
- package/src/common/key-store.ts +26 -26
- package/src/common/keybinding.ts +152 -152
- package/src/common/keyboard/keyboard-layout-provider.ts +51 -51
- package/src/common/keys.ts +694 -694
- package/src/common/label-protocol.ts +35 -35
- package/src/common/logger-protocol.ts +119 -119
- package/src/common/logger-watcher.ts +48 -48
- package/src/common/logger.spec.ts +46 -46
- package/src/common/logger.ts +389 -389
- package/src/common/lsp-types.ts +34 -34
- package/src/common/markdown-rendering/icon-utilities.ts +30 -30
- package/src/common/markdown-rendering/index.ts +18 -18
- package/src/common/markdown-rendering/markdown-string.ts +152 -152
- package/src/common/menu/action-menu-node.ts +65 -65
- package/src/common/menu/composite-menu-node.spec.ts +67 -67
- package/src/common/menu/composite-menu-node.ts +114 -114
- package/src/common/menu/index.ts +21 -21
- package/src/common/menu/menu-adapter.ts +103 -103
- package/src/common/menu/menu-model-registry.ts +374 -374
- package/src/common/menu/menu-types.ts +220 -219
- package/src/common/menu/menu.spec.ts +101 -101
- package/src/common/message-rpc/channel.spec.ts +88 -88
- package/src/common/message-rpc/channel.ts +300 -300
- package/src/common/message-rpc/index.ts +22 -22
- package/src/common/message-rpc/message-buffer.ts +105 -105
- package/src/common/message-rpc/msg-pack-extension-manager.ts +70 -70
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +65 -65
- package/src/common/message-rpc/rpc-message-encoder.ts +190 -190
- package/src/common/message-rpc/rpc-protocol.ts +255 -255
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -41
- package/src/common/message-rpc/uint8-array-message-buffer.ts +213 -213
- package/src/common/message-service-protocol.ts +148 -148
- package/src/common/message-service.ts +226 -226
- package/src/common/messaging/connection-error-handler.ts +73 -73
- package/src/common/messaging/connection-management.ts +43 -43
- package/src/common/messaging/handler.ts +26 -26
- package/src/common/messaging/index.ts +19 -19
- package/src/common/messaging/proxy-factory.spec.ts +108 -108
- package/src/common/messaging/proxy-factory.ts +336 -336
- package/src/common/messaging/socket-write-buffer.ts +52 -52
- package/src/common/messaging/web-socket-channel.ts +76 -76
- package/src/common/nls.ts +151 -151
- package/src/common/numbers.ts +21 -21
- package/src/common/objects.spec.ts +112 -112
- package/src/common/objects.ts +123 -123
- package/src/common/os.ts +82 -82
- package/src/common/path.spec.ts +415 -415
- package/src/common/path.ts +334 -334
- package/src/common/paths.ts +250 -250
- package/src/common/performance/index.ts +19 -19
- package/src/common/performance/measurement-protocol.ts +104 -104
- package/src/common/performance/measurement.ts +130 -130
- package/src/common/performance/stopwatch.ts +183 -183
- package/src/common/preferences/preference-schema.ts +101 -101
- package/src/common/preferences/preference-scope.spec.ts +48 -48
- package/src/common/preferences/preference-scope.ts +68 -68
- package/src/common/prioritizeable.ts +58 -58
- package/src/common/progress-service-protocol.ts +35 -35
- package/src/common/progress-service.ts +82 -82
- package/src/common/promise-util.spec.ts +102 -102
- package/src/common/promise-util.ts +143 -143
- package/src/common/quick-pick-service.ts +353 -353
- package/src/common/reference.spec.ts +145 -145
- package/src/common/reference.ts +230 -230
- package/src/common/resource.ts +430 -430
- package/src/common/selection-command-handler.ts +101 -101
- package/src/common/selection-service.spec.ts +43 -43
- package/src/common/selection-service.ts +49 -49
- package/src/common/selection.ts +50 -50
- package/src/common/severity.ts +111 -111
- package/src/common/stream.ts +718 -718
- package/src/common/strings.ts +231 -231
- package/src/common/telemetry.ts +45 -45
- package/src/common/ternary-search-tree.ts +417 -417
- package/src/common/test/expect.ts +34 -34
- package/src/common/test/mock-logger.ts +118 -118
- package/src/common/test/mock-menu.ts +35 -35
- package/src/common/test/mock-resource-provider.ts +33 -33
- package/src/common/theme.ts +68 -68
- package/src/common/types.spec.ts +86 -86
- package/src/common/types.ts +140 -140
- package/src/common/uri-command-handler.spec.ts +90 -90
- package/src/common/uri-command-handler.ts +148 -148
- package/src/common/uri.spec.ts +278 -278
- package/src/common/uri.ts +279 -279
- package/src/common/uuid.ts +45 -45
- package/src/common/version.ts +17 -17
- package/src/common/view-column.ts +33 -33
- package/src/common/window.ts +34 -34
- package/src/electron-browser/electron-clipboard-service.ts +32 -32
- package/src/electron-browser/electron-uri-handler.ts +42 -0
- package/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts +39 -39
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +28 -28
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +122 -122
- package/src/electron-browser/menu/electron-main-menu-factory.ts +339 -338
- package/src/electron-browser/menu/electron-menu-contribution.ts +506 -506
- package/src/electron-browser/menu/electron-menu-module.ts +40 -40
- package/src/electron-browser/menu/electron-menu-style.css +110 -110
- package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -25
- package/src/electron-browser/messaging/electron-ipc-connection-source.ts +65 -65
- package/src/electron-browser/messaging/electron-local-ws-connection-source.ts +45 -45
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +78 -78
- package/src/electron-browser/messaging/electron-ws-connection-source.ts +38 -38
- package/src/electron-browser/preload.ts +264 -249
- package/src/electron-browser/request/electron-browser-request-module.ts +26 -26
- package/src/electron-browser/token/electron-token-frontend-module.ts +22 -22
- package/src/electron-browser/window/electron-frontend-application-state.ts +26 -26
- package/src/electron-browser/window/electron-secondary-window-service.ts +35 -35
- package/src/electron-browser/window/electron-window-module.ts +48 -45
- package/src/electron-browser/window/electron-window-preferences.ts +76 -76
- package/src/electron-browser/window/electron-window-service.ts +109 -109
- package/src/electron-browser/window/external-app-open-handler.ts +42 -42
- package/src/electron-common/electron-api.ts +157 -154
- package/src/electron-common/electron-main-window-service.ts +24 -24
- package/src/electron-common/electron-token.ts +27 -27
- package/src/electron-main/electron-api-main.ts +373 -347
- package/src/electron-main/electron-main-application-module.ts +65 -65
- package/src/electron-main/electron-main-application.ts +860 -818
- package/src/electron-main/electron-main-constants.ts +23 -23
- package/src/electron-main/electron-main-window-service-impl.ts +44 -44
- package/src/electron-main/electron-security-token-service.ts +36 -36
- package/src/electron-main/event-utils.ts +36 -36
- package/src/electron-main/messaging/electron-connection-handler.ts +21 -21
- package/src/electron-main/messaging/electron-messaging-contribution.ts +143 -143
- package/src/electron-main/messaging/electron-messaging-service.ts +35 -35
- package/src/electron-main/theia-electron-window.ts +219 -214
- package/src/electron-node/cli/electron-backend-cli-module.ts +24 -24
- package/src/electron-node/cli/electron-cli-contribution.ts +35 -35
- package/src/electron-node/hosting/electron-backend-hosting-module.ts +24 -24
- package/src/electron-node/hosting/electron-ws-origin-validator.ts +37 -37
- package/src/electron-node/keyboard/electron-backend-keyboard-module.ts +30 -30
- package/src/electron-node/keyboard/electron-keyboard-layout-provider.ts +35 -35
- package/src/electron-node/request/electron-backend-request-module.ts +23 -23
- package/src/electron-node/request/electron-backend-request-service.ts +78 -78
- package/src/electron-node/token/electron-token-backend-contribution.ts +48 -48
- package/src/electron-node/token/electron-token-backend-module.ts +28 -28
- package/src/electron-node/token/electron-token-validator.ts +93 -93
- package/src/node/application-server.ts +59 -59
- package/src/node/backend-application-config-provider.spec.ts +29 -29
- package/src/node/backend-application-config-provider.ts +48 -48
- package/src/node/backend-application-module.ts +139 -139
- package/src/node/backend-application.ts +374 -374
- package/src/node/cli.spec.ts +94 -94
- package/src/node/cli.ts +63 -63
- package/src/node/console-logger-server.spec.ts +59 -59
- package/src/node/console-logger-server.ts +76 -76
- package/src/node/debug.ts +30 -30
- package/src/node/dynamic-require.ts +56 -56
- package/src/node/env-variables/env-variables-server.ts +123 -123
- package/src/node/env-variables/index.ts +17 -17
- package/src/node/environment-utils.spec.ts +92 -92
- package/src/node/environment-utils.ts +66 -66
- package/src/node/file-uri.spec.ts +76 -76
- package/src/node/filesystem-locking.ts +77 -77
- package/src/node/hosting/backend-application-hosts.ts +60 -60
- package/src/node/hosting/backend-hosting-module.ts +26 -26
- package/src/node/hosting/ws-origin-validator.ts +36 -36
- package/src/node/i18n/i18n-backend-module.ts +42 -42
- package/src/node/i18n/localization-contribution.ts +112 -112
- package/src/node/i18n/localization-provider.ts +125 -125
- package/src/node/i18n/localization-server.ts +52 -52
- package/src/node/i18n/theia-localization-contribution.ts +40 -36
- package/src/node/index.ts +22 -22
- package/src/node/key-store-server.ts +162 -162
- package/src/node/logger-backend-module.ts +88 -88
- package/src/node/logger-cli-contribution.spec.ts +245 -245
- package/src/node/logger-cli-contribution.ts +168 -168
- package/src/node/main.ts +33 -33
- package/src/node/messaging/binary-message-pipe.ts +168 -168
- package/src/node/messaging/connection-container-module.ts +96 -96
- package/src/node/messaging/default-messaging-service.ts +129 -129
- package/src/node/messaging/frontend-connection-service.ts +24 -24
- package/src/node/messaging/index.ts +19 -19
- package/src/node/messaging/ipc-bootstrap.ts +27 -27
- package/src/node/messaging/ipc-channel.ts +77 -77
- package/src/node/messaging/ipc-connection-provider.ts +107 -107
- package/src/node/messaging/ipc-protocol.ts +76 -76
- package/src/node/messaging/messaging-backend-module.ts +52 -52
- package/src/node/messaging/messaging-listeners.ts +52 -52
- package/src/node/messaging/messaging-service.ts +46 -46
- package/src/node/messaging/test/test-web-socket-channel.ts +61 -61
- package/src/node/messaging/websocket-endpoint.ts +79 -79
- package/src/node/messaging/websocket-frontend-connection-service.ts +186 -186
- package/src/node/os-backend-provider.ts +25 -25
- package/src/node/performance/index.ts +18 -18
- package/src/node/performance/measurement-backend-bindings.ts +35 -35
- package/src/node/performance/node-stopwatch.ts +40 -40
- package/src/node/process-utils.spec.ts +48 -48
- package/src/node/process-utils.ts +102 -102
- package/src/node/remote/backend-remote-service.ts +25 -25
- package/src/node/remote/remote-cli-contribution.ts +34 -34
- package/src/node/remote/remote-copy-contribution.ts +45 -45
- package/src/node/request/backend-request-facade.ts +39 -39
- package/src/node/request/backend-request-module.ts +25 -25
- package/src/node/request/proxy-cli-contribution.ts +65 -65
- package/src/node/ws-request-validators.ts +56 -56
- package/src/typings/native-keymap.d.ts +108 -108
- package/i18n/nls.pt-pt.json +0 -552
|
@@ -1,191 +1,191 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 TypeFox 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-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { injectable } from 'inversify';
|
|
18
|
-
import { SplitPanel, SplitLayout, Widget } from '@phosphor/widgets';
|
|
19
|
-
|
|
20
|
-
export interface SplitPositionOptions {
|
|
21
|
-
/** The side of the side panel that shall be resized. */
|
|
22
|
-
side?: 'left' | 'right' | 'top' | 'bottom';
|
|
23
|
-
/** The duration in milliseconds, or 0 for no animation. */
|
|
24
|
-
duration: number;
|
|
25
|
-
/** When this widget is hidden, the animation is canceled. */
|
|
26
|
-
referenceWidget?: Widget;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface MoveEntry extends SplitPositionOptions {
|
|
30
|
-
parent: SplitPanel;
|
|
31
|
-
index: number;
|
|
32
|
-
started: boolean;
|
|
33
|
-
ended: boolean;
|
|
34
|
-
targetSize?: number;
|
|
35
|
-
targetPosition?: number;
|
|
36
|
-
startPosition?: number;
|
|
37
|
-
startTime?: number;
|
|
38
|
-
resolve?: (position: number) => void;
|
|
39
|
-
reject?: (reason: string) => void;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@injectable()
|
|
43
|
-
export class SplitPositionHandler {
|
|
44
|
-
|
|
45
|
-
private readonly splitMoves: MoveEntry[] = [];
|
|
46
|
-
private currentMoveIndex: number = 0;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Set the position of a split handle asynchronously. This function makes sure that such movements
|
|
50
|
-
* are performed one after another in order to prevent the movements from overriding each other.
|
|
51
|
-
* When resolved, the returned promise yields the final position of the split handle.
|
|
52
|
-
*/
|
|
53
|
-
setSplitHandlePosition(parent: SplitPanel, index: number, targetPosition: number, options: SplitPositionOptions): Promise<number> {
|
|
54
|
-
const move: MoveEntry = {
|
|
55
|
-
...options,
|
|
56
|
-
parent, targetPosition, index,
|
|
57
|
-
started: false,
|
|
58
|
-
ended: false
|
|
59
|
-
};
|
|
60
|
-
return this.moveSplitPos(move);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Resize a side panel asynchronously. This function makes sure that such movements are performed
|
|
65
|
-
* one after another in order to prevent the movements from overriding each other.
|
|
66
|
-
* When resolved, the returned promise yields the final position of the split handle.
|
|
67
|
-
*/
|
|
68
|
-
setSidePanelSize(sidePanel: Widget, targetSize: number, options: SplitPositionOptions): Promise<number> {
|
|
69
|
-
if (targetSize < 0) {
|
|
70
|
-
return Promise.reject(new Error('Cannot resize to negative value.'));
|
|
71
|
-
}
|
|
72
|
-
const parent = sidePanel.parent;
|
|
73
|
-
if (!(parent instanceof SplitPanel)) {
|
|
74
|
-
return Promise.reject(new Error('Widget must be contained in a SplitPanel.'));
|
|
75
|
-
}
|
|
76
|
-
let index = parent.widgets.indexOf(sidePanel);
|
|
77
|
-
if (index > 0 && (options.side === 'right' || options.side === 'bottom')) {
|
|
78
|
-
index--;
|
|
79
|
-
}
|
|
80
|
-
const move: MoveEntry = {
|
|
81
|
-
...options,
|
|
82
|
-
parent, targetSize, index,
|
|
83
|
-
started: false,
|
|
84
|
-
ended: false
|
|
85
|
-
};
|
|
86
|
-
return this.moveSplitPos(move);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
protected moveSplitPos(move: MoveEntry): Promise<number> {
|
|
90
|
-
return new Promise<number>((resolve, reject) => {
|
|
91
|
-
move.resolve = resolve;
|
|
92
|
-
move.reject = reject;
|
|
93
|
-
if (this.splitMoves.length === 0) {
|
|
94
|
-
setTimeout(this.animationFrame.bind(this), 10);
|
|
95
|
-
}
|
|
96
|
-
this.splitMoves.push(move);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
protected animationFrame(): void {
|
|
101
|
-
const time = Date.now();
|
|
102
|
-
const move = this.splitMoves[this.currentMoveIndex];
|
|
103
|
-
let rejectedOrResolved = false;
|
|
104
|
-
if (move.ended || move.referenceWidget && move.referenceWidget.isHidden) {
|
|
105
|
-
this.splitMoves.splice(this.currentMoveIndex, 1);
|
|
106
|
-
if (move.startPosition === undefined || move.targetPosition === undefined) {
|
|
107
|
-
move.reject!('Panel is not visible.');
|
|
108
|
-
} else {
|
|
109
|
-
move.resolve!(move.targetPosition);
|
|
110
|
-
}
|
|
111
|
-
rejectedOrResolved = true;
|
|
112
|
-
} else if (!move.started) {
|
|
113
|
-
this.startMove(move, time);
|
|
114
|
-
if (move.duration <= 0 || move.startPosition === undefined || move.targetPosition === undefined
|
|
115
|
-
|| move.startPosition === move.targetPosition) {
|
|
116
|
-
this.endMove(move);
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
const elapsedTime = time - move.startTime!;
|
|
120
|
-
if (elapsedTime >= move.duration) {
|
|
121
|
-
this.endMove(move);
|
|
122
|
-
} else {
|
|
123
|
-
const t = elapsedTime / move.duration;
|
|
124
|
-
const start = move.startPosition || 0;
|
|
125
|
-
const target = move.targetPosition || 0;
|
|
126
|
-
const pos = start + (target - start) * t;
|
|
127
|
-
(move.parent.layout as SplitLayout).moveHandle(move.index, pos);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (!rejectedOrResolved) {
|
|
131
|
-
this.currentMoveIndex++;
|
|
132
|
-
}
|
|
133
|
-
if (this.currentMoveIndex >= this.splitMoves.length) {
|
|
134
|
-
this.currentMoveIndex = 0;
|
|
135
|
-
}
|
|
136
|
-
if (this.splitMoves.length > 0) {
|
|
137
|
-
setTimeout(this.animationFrame.bind(this));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
protected startMove(move: MoveEntry, time: number): void {
|
|
142
|
-
if (move.targetPosition === undefined && move.targetSize !== undefined) {
|
|
143
|
-
const { clientWidth, clientHeight } = move.parent.node;
|
|
144
|
-
if (clientWidth && clientHeight) {
|
|
145
|
-
switch (move.side) {
|
|
146
|
-
case 'left':
|
|
147
|
-
move.targetPosition = Math.max(Math.min(move.targetSize, clientWidth), 0);
|
|
148
|
-
break;
|
|
149
|
-
case 'right':
|
|
150
|
-
move.targetPosition = Math.max(Math.min(clientWidth - move.targetSize, clientWidth), 0);
|
|
151
|
-
break;
|
|
152
|
-
case 'top':
|
|
153
|
-
move.targetPosition = Math.max(Math.min(move.targetSize, clientHeight), 0);
|
|
154
|
-
break;
|
|
155
|
-
case 'bottom':
|
|
156
|
-
move.targetPosition = Math.max(Math.min(clientHeight - move.targetSize, clientHeight), 0);
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (move.startPosition === undefined) {
|
|
162
|
-
move.startPosition = this.getCurrentPosition(move);
|
|
163
|
-
}
|
|
164
|
-
move.startTime = time;
|
|
165
|
-
move.started = true;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
protected endMove(move: MoveEntry): void {
|
|
169
|
-
if (move.targetPosition !== undefined) {
|
|
170
|
-
(move.parent.layout as SplitLayout).moveHandle(move.index, move.targetPosition);
|
|
171
|
-
}
|
|
172
|
-
move.ended = true;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
protected getCurrentPosition(move: MoveEntry): number | undefined {
|
|
176
|
-
const layout = move.parent.layout as SplitLayout;
|
|
177
|
-
let pos: number | null;
|
|
178
|
-
if (layout.orientation === 'horizontal') {
|
|
179
|
-
pos = layout.handles[move.index].offsetLeft;
|
|
180
|
-
} else {
|
|
181
|
-
pos = layout.handles[move.index].offsetTop;
|
|
182
|
-
}
|
|
183
|
-
// eslint-disable-next-line no-null/no-null
|
|
184
|
-
if (pos !== null) {
|
|
185
|
-
return pos;
|
|
186
|
-
} else {
|
|
187
|
-
return undefined;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 TypeFox 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-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { SplitPanel, SplitLayout, Widget } from '@phosphor/widgets';
|
|
19
|
+
|
|
20
|
+
export interface SplitPositionOptions {
|
|
21
|
+
/** The side of the side panel that shall be resized. */
|
|
22
|
+
side?: 'left' | 'right' | 'top' | 'bottom';
|
|
23
|
+
/** The duration in milliseconds, or 0 for no animation. */
|
|
24
|
+
duration: number;
|
|
25
|
+
/** When this widget is hidden, the animation is canceled. */
|
|
26
|
+
referenceWidget?: Widget;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface MoveEntry extends SplitPositionOptions {
|
|
30
|
+
parent: SplitPanel;
|
|
31
|
+
index: number;
|
|
32
|
+
started: boolean;
|
|
33
|
+
ended: boolean;
|
|
34
|
+
targetSize?: number;
|
|
35
|
+
targetPosition?: number;
|
|
36
|
+
startPosition?: number;
|
|
37
|
+
startTime?: number;
|
|
38
|
+
resolve?: (position: number) => void;
|
|
39
|
+
reject?: (reason: string) => void;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@injectable()
|
|
43
|
+
export class SplitPositionHandler {
|
|
44
|
+
|
|
45
|
+
private readonly splitMoves: MoveEntry[] = [];
|
|
46
|
+
private currentMoveIndex: number = 0;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set the position of a split handle asynchronously. This function makes sure that such movements
|
|
50
|
+
* are performed one after another in order to prevent the movements from overriding each other.
|
|
51
|
+
* When resolved, the returned promise yields the final position of the split handle.
|
|
52
|
+
*/
|
|
53
|
+
setSplitHandlePosition(parent: SplitPanel, index: number, targetPosition: number, options: SplitPositionOptions): Promise<number> {
|
|
54
|
+
const move: MoveEntry = {
|
|
55
|
+
...options,
|
|
56
|
+
parent, targetPosition, index,
|
|
57
|
+
started: false,
|
|
58
|
+
ended: false
|
|
59
|
+
};
|
|
60
|
+
return this.moveSplitPos(move);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Resize a side panel asynchronously. This function makes sure that such movements are performed
|
|
65
|
+
* one after another in order to prevent the movements from overriding each other.
|
|
66
|
+
* When resolved, the returned promise yields the final position of the split handle.
|
|
67
|
+
*/
|
|
68
|
+
setSidePanelSize(sidePanel: Widget, targetSize: number, options: SplitPositionOptions): Promise<number> {
|
|
69
|
+
if (targetSize < 0) {
|
|
70
|
+
return Promise.reject(new Error('Cannot resize to negative value.'));
|
|
71
|
+
}
|
|
72
|
+
const parent = sidePanel.parent;
|
|
73
|
+
if (!(parent instanceof SplitPanel)) {
|
|
74
|
+
return Promise.reject(new Error('Widget must be contained in a SplitPanel.'));
|
|
75
|
+
}
|
|
76
|
+
let index = parent.widgets.indexOf(sidePanel);
|
|
77
|
+
if (index > 0 && (options.side === 'right' || options.side === 'bottom')) {
|
|
78
|
+
index--;
|
|
79
|
+
}
|
|
80
|
+
const move: MoveEntry = {
|
|
81
|
+
...options,
|
|
82
|
+
parent, targetSize, index,
|
|
83
|
+
started: false,
|
|
84
|
+
ended: false
|
|
85
|
+
};
|
|
86
|
+
return this.moveSplitPos(move);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
protected moveSplitPos(move: MoveEntry): Promise<number> {
|
|
90
|
+
return new Promise<number>((resolve, reject) => {
|
|
91
|
+
move.resolve = resolve;
|
|
92
|
+
move.reject = reject;
|
|
93
|
+
if (this.splitMoves.length === 0) {
|
|
94
|
+
setTimeout(this.animationFrame.bind(this), 10);
|
|
95
|
+
}
|
|
96
|
+
this.splitMoves.push(move);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
protected animationFrame(): void {
|
|
101
|
+
const time = Date.now();
|
|
102
|
+
const move = this.splitMoves[this.currentMoveIndex];
|
|
103
|
+
let rejectedOrResolved = false;
|
|
104
|
+
if (move.ended || move.referenceWidget && move.referenceWidget.isHidden) {
|
|
105
|
+
this.splitMoves.splice(this.currentMoveIndex, 1);
|
|
106
|
+
if (move.startPosition === undefined || move.targetPosition === undefined) {
|
|
107
|
+
move.reject!('Panel is not visible.');
|
|
108
|
+
} else {
|
|
109
|
+
move.resolve!(move.targetPosition);
|
|
110
|
+
}
|
|
111
|
+
rejectedOrResolved = true;
|
|
112
|
+
} else if (!move.started) {
|
|
113
|
+
this.startMove(move, time);
|
|
114
|
+
if (move.duration <= 0 || move.startPosition === undefined || move.targetPosition === undefined
|
|
115
|
+
|| move.startPosition === move.targetPosition) {
|
|
116
|
+
this.endMove(move);
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
const elapsedTime = time - move.startTime!;
|
|
120
|
+
if (elapsedTime >= move.duration) {
|
|
121
|
+
this.endMove(move);
|
|
122
|
+
} else {
|
|
123
|
+
const t = elapsedTime / move.duration;
|
|
124
|
+
const start = move.startPosition || 0;
|
|
125
|
+
const target = move.targetPosition || 0;
|
|
126
|
+
const pos = start + (target - start) * t;
|
|
127
|
+
(move.parent.layout as SplitLayout).moveHandle(move.index, pos);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (!rejectedOrResolved) {
|
|
131
|
+
this.currentMoveIndex++;
|
|
132
|
+
}
|
|
133
|
+
if (this.currentMoveIndex >= this.splitMoves.length) {
|
|
134
|
+
this.currentMoveIndex = 0;
|
|
135
|
+
}
|
|
136
|
+
if (this.splitMoves.length > 0) {
|
|
137
|
+
setTimeout(this.animationFrame.bind(this));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
protected startMove(move: MoveEntry, time: number): void {
|
|
142
|
+
if (move.targetPosition === undefined && move.targetSize !== undefined) {
|
|
143
|
+
const { clientWidth, clientHeight } = move.parent.node;
|
|
144
|
+
if (clientWidth && clientHeight) {
|
|
145
|
+
switch (move.side) {
|
|
146
|
+
case 'left':
|
|
147
|
+
move.targetPosition = Math.max(Math.min(move.targetSize, clientWidth), 0);
|
|
148
|
+
break;
|
|
149
|
+
case 'right':
|
|
150
|
+
move.targetPosition = Math.max(Math.min(clientWidth - move.targetSize, clientWidth), 0);
|
|
151
|
+
break;
|
|
152
|
+
case 'top':
|
|
153
|
+
move.targetPosition = Math.max(Math.min(move.targetSize, clientHeight), 0);
|
|
154
|
+
break;
|
|
155
|
+
case 'bottom':
|
|
156
|
+
move.targetPosition = Math.max(Math.min(clientHeight - move.targetSize, clientHeight), 0);
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (move.startPosition === undefined) {
|
|
162
|
+
move.startPosition = this.getCurrentPosition(move);
|
|
163
|
+
}
|
|
164
|
+
move.startTime = time;
|
|
165
|
+
move.started = true;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
protected endMove(move: MoveEntry): void {
|
|
169
|
+
if (move.targetPosition !== undefined) {
|
|
170
|
+
(move.parent.layout as SplitLayout).moveHandle(move.index, move.targetPosition);
|
|
171
|
+
}
|
|
172
|
+
move.ended = true;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
protected getCurrentPosition(move: MoveEntry): number | undefined {
|
|
176
|
+
const layout = move.parent.layout as SplitLayout;
|
|
177
|
+
let pos: number | null;
|
|
178
|
+
if (layout.orientation === 'horizontal') {
|
|
179
|
+
pos = layout.handles[move.index].offsetLeft;
|
|
180
|
+
} else {
|
|
181
|
+
pos = layout.handles[move.index].offsetTop;
|
|
182
|
+
}
|
|
183
|
+
// eslint-disable-next-line no-null/no-null
|
|
184
|
+
if (pos !== null) {
|
|
185
|
+
return pos;
|
|
186
|
+
} else {
|
|
187
|
+
return undefined;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
}
|
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2019 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-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import debounce = require('lodash.debounce');
|
|
18
|
-
import { Title, Widget } from '@phosphor/widgets';
|
|
19
|
-
import { inject, injectable, named } from 'inversify';
|
|
20
|
-
import { ContributionProvider, Emitter, Event } from '../../common';
|
|
21
|
-
import { ColorRegistry } from '../color-registry';
|
|
22
|
-
import { Decoration, DecorationsService, DecorationsServiceImpl } from '../decorations-service';
|
|
23
|
-
import { FrontendApplicationContribution } from '../frontend-application-contribution';
|
|
24
|
-
import { Navigatable } from '../navigatable-types';
|
|
25
|
-
import { WidgetDecoration } from '../widget-decoration';
|
|
26
|
-
|
|
27
|
-
export const TabBarDecorator = Symbol('TabBarDecorator');
|
|
28
|
-
|
|
29
|
-
export interface TabBarDecorator {
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* The unique identifier of the tab bar decorator.
|
|
33
|
-
*/
|
|
34
|
-
readonly id: string;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Event that is fired when any of the available tab bar decorators has changes.
|
|
38
|
-
*/
|
|
39
|
-
readonly onDidChangeDecorations: Event<void>;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Decorate title.
|
|
43
|
-
* @param {Title<Widget>} title the title
|
|
44
|
-
* @returns decoration data.
|
|
45
|
-
*/
|
|
46
|
-
decorate(title: Title<Widget>): WidgetDecoration.Data[];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@injectable()
|
|
50
|
-
export class TabBarDecoratorService implements FrontendApplicationContribution {
|
|
51
|
-
|
|
52
|
-
protected readonly onDidChangeDecorationsEmitter = new Emitter<void>();
|
|
53
|
-
|
|
54
|
-
readonly onDidChangeDecorations = this.onDidChangeDecorationsEmitter.event;
|
|
55
|
-
|
|
56
|
-
@inject(ContributionProvider) @named(TabBarDecorator)
|
|
57
|
-
protected readonly contributions: ContributionProvider<TabBarDecorator>;
|
|
58
|
-
|
|
59
|
-
@inject(DecorationsService)
|
|
60
|
-
protected readonly decorationsService: DecorationsServiceImpl;
|
|
61
|
-
|
|
62
|
-
@inject(ColorRegistry)
|
|
63
|
-
protected readonly colors: ColorRegistry;
|
|
64
|
-
|
|
65
|
-
initialize(): void {
|
|
66
|
-
this.contributions.getContributions().map(decorator => decorator.onDidChangeDecorations(this.fireDidChangeDecorations));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
fireDidChangeDecorations = debounce(() => this.onDidChangeDecorationsEmitter.fire(undefined), 150);
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Assign tabs the decorators provided by all the contributions.
|
|
73
|
-
* @param {Title<Widget>} title the title
|
|
74
|
-
* @returns an array of its decoration data.
|
|
75
|
-
*/
|
|
76
|
-
getDecorations(title: Title<Widget>): WidgetDecoration.Data[] {
|
|
77
|
-
const decorators = this.contributions.getContributions();
|
|
78
|
-
const decorations: WidgetDecoration.Data[] = [];
|
|
79
|
-
for (const decorator of decorators) {
|
|
80
|
-
decorations.push(...decorator.decorate(title));
|
|
81
|
-
}
|
|
82
|
-
if (Navigatable.is(title.owner)) {
|
|
83
|
-
const resourceUri = title.owner.getResourceUri();
|
|
84
|
-
if (resourceUri) {
|
|
85
|
-
const serviceDecorations = this.decorationsService.getDecoration(resourceUri, false);
|
|
86
|
-
decorations.push(...serviceDecorations.map(d => this.fromDecoration(d)));
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return decorations;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
protected fromDecoration(decoration: Decoration): WidgetDecoration.Data {
|
|
93
|
-
const colorVariable = decoration.colorId && this.colors.toCssVariableName(decoration.colorId);
|
|
94
|
-
return {
|
|
95
|
-
tailDecorations: [
|
|
96
|
-
{
|
|
97
|
-
data: decoration.letter ? decoration.letter : '',
|
|
98
|
-
fontData: {
|
|
99
|
-
color: colorVariable && `var(${colorVariable})`
|
|
100
|
-
},
|
|
101
|
-
tooltip: decoration.tooltip ? decoration.tooltip : ''
|
|
102
|
-
}
|
|
103
|
-
]
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2019 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-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import debounce = require('lodash.debounce');
|
|
18
|
+
import { Title, Widget } from '@phosphor/widgets';
|
|
19
|
+
import { inject, injectable, named } from 'inversify';
|
|
20
|
+
import { ContributionProvider, Emitter, Event } from '../../common';
|
|
21
|
+
import { ColorRegistry } from '../color-registry';
|
|
22
|
+
import { Decoration, DecorationsService, DecorationsServiceImpl } from '../decorations-service';
|
|
23
|
+
import { FrontendApplicationContribution } from '../frontend-application-contribution';
|
|
24
|
+
import { Navigatable } from '../navigatable-types';
|
|
25
|
+
import { WidgetDecoration } from '../widget-decoration';
|
|
26
|
+
|
|
27
|
+
export const TabBarDecorator = Symbol('TabBarDecorator');
|
|
28
|
+
|
|
29
|
+
export interface TabBarDecorator {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The unique identifier of the tab bar decorator.
|
|
33
|
+
*/
|
|
34
|
+
readonly id: string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Event that is fired when any of the available tab bar decorators has changes.
|
|
38
|
+
*/
|
|
39
|
+
readonly onDidChangeDecorations: Event<void>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Decorate title.
|
|
43
|
+
* @param {Title<Widget>} title the title
|
|
44
|
+
* @returns decoration data.
|
|
45
|
+
*/
|
|
46
|
+
decorate(title: Title<Widget>): WidgetDecoration.Data[];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@injectable()
|
|
50
|
+
export class TabBarDecoratorService implements FrontendApplicationContribution {
|
|
51
|
+
|
|
52
|
+
protected readonly onDidChangeDecorationsEmitter = new Emitter<void>();
|
|
53
|
+
|
|
54
|
+
readonly onDidChangeDecorations = this.onDidChangeDecorationsEmitter.event;
|
|
55
|
+
|
|
56
|
+
@inject(ContributionProvider) @named(TabBarDecorator)
|
|
57
|
+
protected readonly contributions: ContributionProvider<TabBarDecorator>;
|
|
58
|
+
|
|
59
|
+
@inject(DecorationsService)
|
|
60
|
+
protected readonly decorationsService: DecorationsServiceImpl;
|
|
61
|
+
|
|
62
|
+
@inject(ColorRegistry)
|
|
63
|
+
protected readonly colors: ColorRegistry;
|
|
64
|
+
|
|
65
|
+
initialize(): void {
|
|
66
|
+
this.contributions.getContributions().map(decorator => decorator.onDidChangeDecorations(this.fireDidChangeDecorations));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
fireDidChangeDecorations = debounce(() => this.onDidChangeDecorationsEmitter.fire(undefined), 150);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Assign tabs the decorators provided by all the contributions.
|
|
73
|
+
* @param {Title<Widget>} title the title
|
|
74
|
+
* @returns an array of its decoration data.
|
|
75
|
+
*/
|
|
76
|
+
getDecorations(title: Title<Widget>): WidgetDecoration.Data[] {
|
|
77
|
+
const decorators = this.contributions.getContributions();
|
|
78
|
+
const decorations: WidgetDecoration.Data[] = [];
|
|
79
|
+
for (const decorator of decorators) {
|
|
80
|
+
decorations.push(...decorator.decorate(title));
|
|
81
|
+
}
|
|
82
|
+
if (Navigatable.is(title.owner)) {
|
|
83
|
+
const resourceUri = title.owner.getResourceUri();
|
|
84
|
+
if (resourceUri) {
|
|
85
|
+
const serviceDecorations = this.decorationsService.getDecoration(resourceUri, false);
|
|
86
|
+
decorations.push(...serviceDecorations.map(d => this.fromDecoration(d)));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return decorations;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
protected fromDecoration(decoration: Decoration): WidgetDecoration.Data {
|
|
93
|
+
const colorVariable = decoration.colorId && this.colors.toCssVariableName(decoration.colorId);
|
|
94
|
+
return {
|
|
95
|
+
tailDecorations: [
|
|
96
|
+
{
|
|
97
|
+
data: decoration.letter ? decoration.letter : '',
|
|
98
|
+
fontData: {
|
|
99
|
+
color: colorVariable && `var(${colorVariable})`
|
|
100
|
+
},
|
|
101
|
+
tooltip: decoration.tooltip ? decoration.tooltip : ''
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
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-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
export * from './tab-bar-toolbar';
|
|
18
|
-
export * from './tab-bar-toolbar-registry';
|
|
19
|
-
export * from './tab-bar-toolbar-types';
|
|
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-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
export * from './tab-bar-toolbar';
|
|
18
|
+
export * from './tab-bar-toolbar-registry';
|
|
19
|
+
export * from './tab-bar-toolbar-types';
|