@theia/core 1.28.0-next.9 → 1.28.0
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 +6 -6
- package/i18n/nls.cs.json +33 -2
- package/i18n/nls.de.json +33 -2
- package/i18n/nls.es.json +33 -2
- package/i18n/nls.fr.json +33 -2
- package/i18n/nls.hu.json +33 -2
- package/i18n/nls.it.json +33 -2
- package/i18n/nls.ja.json +33 -2
- package/i18n/nls.json +35 -4
- package/i18n/nls.pl.json +33 -2
- package/i18n/nls.pt-br.json +33 -2
- package/i18n/nls.pt-pt.json +33 -2
- package/i18n/nls.ru.json +33 -2
- package/i18n/nls.zh-cn.json +33 -2
- package/lib/browser/common-frontend-contribution.d.ts +1 -1
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +6 -5
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/context-key-service.d.ts +3 -1
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +5 -0
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +2 -0
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +3 -2
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +9 -7
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +13 -3
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.d.ts +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +2 -2
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +23 -24
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +62 -79
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/resource-context-key.d.ts +1 -0
- package/lib/browser/resource-context-key.d.ts.map +1 -1
- package/lib/browser/resource-context-key.js +8 -6
- package/lib/browser/resource-context-key.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +2 -1
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.js +0 -1
- package/lib/browser/shell/side-panel-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/index.d.ts +4 -0
- package/lib/browser/shell/tab-bar-toolbar/index.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/index.js +31 -0
- package/lib/browser/shell/tab-bar-toolbar/index.js.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +16 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +36 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +51 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +173 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +119 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +67 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +53 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +264 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -0
- package/lib/browser/shell/{tab-bar-toolbar.spec.d.ts → tab-bar-toolbar/tab-bar-toolbar.spec.d.ts} +0 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.d.ts.map +1 -0
- package/lib/browser/shell/{tab-bar-toolbar.spec.js → tab-bar-toolbar/tab-bar-toolbar.spec.js} +3 -3
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -0
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +1 -10
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-manager.d.ts.map +1 -1
- package/lib/browser/widget-manager.js +2 -1
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-manager.spec.js +13 -0
- package/lib/browser/widget-manager.spec.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +2 -1
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +9 -4
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/window-service.d.ts +2 -1
- package/lib/browser/window/window-service.d.ts.map +1 -1
- package/lib/browser/window/window-service.js.map +1 -1
- package/lib/common/color.d.ts +3 -0
- package/lib/common/color.d.ts.map +1 -1
- package/lib/common/frontend-application-state.d.ts +14 -0
- package/lib/common/frontend-application-state.d.ts.map +1 -1
- package/lib/common/frontend-application-state.js +16 -0
- package/lib/common/frontend-application-state.js.map +1 -1
- package/lib/common/menu/action-menu-node.d.ts +20 -0
- package/lib/common/menu/action-menu-node.d.ts.map +1 -0
- package/lib/common/menu/action-menu-node.js +57 -0
- package/lib/common/menu/action-menu-node.js.map +1 -0
- package/lib/common/menu/composite-menu-node.d.ts +52 -0
- package/lib/common/menu/composite-menu-node.d.ts.map +1 -0
- package/lib/common/menu/composite-menu-node.js +102 -0
- package/lib/common/menu/composite-menu-node.js.map +1 -0
- package/lib/common/menu/index.d.ts +6 -0
- package/lib/common/menu/index.d.ts.map +1 -0
- package/lib/common/menu/index.js +33 -0
- package/lib/common/menu/index.js.map +1 -0
- package/lib/common/menu/menu-adapter.d.ts +36 -0
- package/lib/common/menu/menu-adapter.d.ts.map +1 -0
- package/lib/common/menu/menu-adapter.js +101 -0
- package/lib/common/menu/menu-adapter.js.map +1 -0
- package/lib/common/{menu.d.ts → menu/menu-model-registry.d.ts} +22 -124
- package/lib/common/menu/menu-model-registry.d.ts.map +1 -0
- package/lib/common/{menu.js → menu/menu-model-registry.js} +71 -147
- package/lib/common/menu/menu-model-registry.js.map +1 -0
- package/lib/common/menu/menu-types.d.ts +120 -0
- package/lib/common/menu/menu-types.d.ts.map +1 -0
- package/lib/common/menu/menu-types.js +84 -0
- package/lib/common/menu/menu-types.js.map +1 -0
- package/lib/common/{menu.spec.d.ts → menu/menu.spec.d.ts} +0 -0
- package/lib/common/menu/menu.spec.d.ts.map +1 -0
- package/lib/common/{menu.spec.js → menu/menu.spec.js} +3 -3
- package/lib/common/menu/menu.spec.js.map +1 -0
- package/lib/common/messaging/abstract-connection-provider.d.ts +1 -1
- package/lib/common/messaging/abstract-connection-provider.js +3 -3
- package/lib/common/quick-pick-service.d.ts +1 -0
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +2 -2
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +14 -5
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +71 -82
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +6 -0
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js +1 -1
- package/lib/electron-browser/window/electron-window-service.js +1 -1
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/messaging/electron-messages.d.ts +3 -14
- package/lib/electron-common/messaging/electron-messages.d.ts.map +1 -1
- package/lib/electron-common/messaging/electron-messages.js +3 -16
- package/lib/electron-common/messaging/electron-messages.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +3 -3
- package/lib/electron-main/messaging/electron-messaging-contribution.js +6 -6
- package/package.json +7 -6
- package/src/browser/common-frontend-contribution.ts +6 -5
- package/src/browser/context-key-service.ts +1 -1
- package/src/browser/context-menu-renderer.ts +5 -0
- package/src/browser/frontend-application-module.ts +7 -1
- package/src/browser/frontend-application.ts +3 -2
- package/src/browser/keybinding.spec.ts +13 -3
- package/src/browser/keybinding.ts +8 -9
- package/src/browser/menu/browser-context-menu-renderer.ts +2 -2
- package/src/browser/menu/browser-menu-plugin.ts +74 -86
- package/src/browser/resource-context-key.ts +9 -6
- package/src/browser/shell/shell-layout-restorer.ts +2 -1
- package/src/browser/shell/side-panel-toolbar.ts +0 -1
- package/src/browser/shell/tab-bar-toolbar/index.ts +19 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +31 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +170 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +186 -0
- package/src/browser/shell/{tab-bar-toolbar.spec.ts → tab-bar-toolbar/tab-bar-toolbar.spec.ts} +2 -2
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +261 -0
- package/src/browser/style/alert-messages.css +6 -0
- package/src/browser/view-container.ts +1 -10
- package/src/browser/widget-manager.spec.ts +14 -0
- package/src/browser/widget-manager.ts +2 -1
- package/src/browser/window/default-window-service.ts +9 -4
- package/src/browser/window/window-service.ts +2 -1
- package/src/common/color.ts +3 -0
- package/src/common/frontend-application-state.ts +15 -0
- package/src/common/menu/action-menu-node.ts +65 -0
- package/src/common/menu/composite-menu-node.ts +121 -0
- package/src/common/menu/index.ts +21 -0
- package/src/common/menu/menu-adapter.ts +103 -0
- package/src/common/{menu.ts → menu/menu-model-registry.ts} +61 -222
- package/src/common/menu/menu-types.ts +183 -0
- package/src/common/{menu.spec.ts → menu/menu.spec.ts} +3 -2
- package/src/common/messaging/abstract-connection-provider.ts +4 -4
- package/src/common/quick-pick-service.ts +1 -0
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -2
- package/src/electron-browser/menu/electron-main-menu-factory.ts +82 -96
- package/src/electron-browser/menu/electron-menu-contribution.ts +8 -0
- package/src/electron-browser/messaging/electron-ws-connection-provider.ts +1 -1
- package/src/electron-browser/window/electron-window-service.ts +1 -1
- package/src/electron-common/messaging/electron-messages.ts +4 -15
- package/src/electron-main/messaging/electron-messaging-contribution.ts +8 -8
- package/lib/browser/shell/tab-bar-toolbar.d.ts +0 -186
- package/lib/browser/shell/tab-bar-toolbar.d.ts.map +0 -1
- package/lib/browser/shell/tab-bar-toolbar.js +0 -362
- package/lib/browser/shell/tab-bar-toolbar.js.map +0 -1
- package/lib/browser/shell/tab-bar-toolbar.spec.d.ts.map +0 -1
- package/lib/browser/shell/tab-bar-toolbar.spec.js.map +0 -1
- package/lib/common/menu.d.ts.map +0 -1
- package/lib/common/menu.js.map +0 -1
- package/lib/common/menu.spec.d.ts.map +0 -1
- package/lib/common/menu.spec.js.map +0 -1
- package/src/browser/shell/tab-bar-toolbar.tsx +0 -495
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/// <reference types="lodash" />
|
|
2
|
+
import { CommandRegistry, ContributionProvider, Disposable, Emitter, Event, MenuModelRegistry, MenuPath } from '../../../common';
|
|
3
|
+
import { ContextKeyService } from '../../context-key-service';
|
|
4
|
+
import { FrontendApplicationContribution } from '../../frontend-application';
|
|
5
|
+
import { Widget } from '../../widgets';
|
|
6
|
+
import { MenuDelegate, ReactTabBarToolbarItem, TabBarToolbarItem } from './tab-bar-toolbar-types';
|
|
7
|
+
/**
|
|
8
|
+
* Clients should implement this interface if they want to contribute to the tab-bar toolbar.
|
|
9
|
+
*/
|
|
10
|
+
export declare const TabBarToolbarContribution: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* Representation of a tabbar toolbar contribution.
|
|
13
|
+
*/
|
|
14
|
+
export interface TabBarToolbarContribution {
|
|
15
|
+
/**
|
|
16
|
+
* Registers toolbar items.
|
|
17
|
+
* @param registry the tabbar toolbar registry.
|
|
18
|
+
*/
|
|
19
|
+
registerToolbarItems(registry: TabBarToolbarRegistry): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Main, shared registry for tab-bar toolbar items.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TabBarToolbarRegistry implements FrontendApplicationContribution {
|
|
25
|
+
protected items: Map<string, TabBarToolbarItem | ReactTabBarToolbarItem>;
|
|
26
|
+
protected menuDelegates: Map<string, MenuDelegate>;
|
|
27
|
+
protected readonly commandRegistry: CommandRegistry;
|
|
28
|
+
protected readonly contextKeyService: ContextKeyService;
|
|
29
|
+
protected readonly menuRegistry: MenuModelRegistry;
|
|
30
|
+
protected readonly contributionProvider: ContributionProvider<TabBarToolbarContribution>;
|
|
31
|
+
protected readonly onDidChangeEmitter: Emitter<void>;
|
|
32
|
+
readonly onDidChange: Event<void>;
|
|
33
|
+
protected fireOnDidChange: import("lodash").DebouncedFunc<() => any>;
|
|
34
|
+
onStart(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Registers the given item. Throws an error, if the corresponding command cannot be found or an item has been already registered for the desired command.
|
|
37
|
+
*
|
|
38
|
+
* @param item the item to register.
|
|
39
|
+
*/
|
|
40
|
+
registerItem(item: TabBarToolbarItem | ReactTabBarToolbarItem): Disposable;
|
|
41
|
+
/**
|
|
42
|
+
* Returns an array of tab-bar toolbar items which are visible when the `widget` argument is the current one.
|
|
43
|
+
*
|
|
44
|
+
* By default returns with all items where the command is enabled and `item.isVisible` is `true`.
|
|
45
|
+
*/
|
|
46
|
+
visibleItems(widget: Widget): Array<TabBarToolbarItem | ReactTabBarToolbarItem>;
|
|
47
|
+
unregisterItem(itemOrId: TabBarToolbarItem | ReactTabBarToolbarItem | string): void;
|
|
48
|
+
registerMenuDelegate(menuPath: MenuPath, when?: string | ((widget: Widget) => boolean)): Disposable;
|
|
49
|
+
unregisterMenuDelegate(menuPath: MenuPath): void;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=tab-bar-toolbar-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar-toolbar-registry.d.ts","sourceRoot":"","sources":["../../../../src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts"],"names":[],"mappings":";AAmBA,OAAO,EAAmB,eAAe,EAAoB,oBAAoB,EAAE,UAAU,EAAwB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1L,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGlG;;GAEG;AACH,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC/D;AAKD;;GAEG;AACH,qBACa,qBAAsB,YAAW,+BAA+B;IAEzE,SAAS,CAAC,KAAK,0DAAiE;IAChF,SAAS,CAAC,aAAa,4BAAmC;IAEjC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAG9E,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAEzF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAiC;IAElE,SAAS,CAAC,eAAe,4CAA8D;IAEvF,OAAO,IAAI,IAAI;IAOf;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,UAAU;IAiB1E;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,iBAAiB,GAAG,sBAAsB,CAAC;IA0C/E,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAOnF,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,UAAU;IAgBnG,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAKnD"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.TabBarToolbarRegistry = exports.TabBarToolbarContribution = void 0;
|
|
28
|
+
const debounce = require("lodash.debounce");
|
|
29
|
+
const inversify_1 = require("inversify");
|
|
30
|
+
// eslint-disable-next-line max-len
|
|
31
|
+
const common_1 = require("../../../common");
|
|
32
|
+
const context_key_service_1 = require("../../context-key-service");
|
|
33
|
+
const tab_bar_toolbar_types_1 = require("./tab-bar-toolbar-types");
|
|
34
|
+
const tab_bar_toolbar_menu_adapters_1 = require("./tab-bar-toolbar-menu-adapters");
|
|
35
|
+
/**
|
|
36
|
+
* Clients should implement this interface if they want to contribute to the tab-bar toolbar.
|
|
37
|
+
*/
|
|
38
|
+
exports.TabBarToolbarContribution = Symbol('TabBarToolbarContribution');
|
|
39
|
+
function yes() { return true; }
|
|
40
|
+
const menuDelegateSeparator = '=@=';
|
|
41
|
+
/**
|
|
42
|
+
* Main, shared registry for tab-bar toolbar items.
|
|
43
|
+
*/
|
|
44
|
+
let TabBarToolbarRegistry = class TabBarToolbarRegistry {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.items = new Map();
|
|
47
|
+
this.menuDelegates = new Map();
|
|
48
|
+
this.onDidChangeEmitter = new common_1.Emitter();
|
|
49
|
+
this.onDidChange = this.onDidChangeEmitter.event;
|
|
50
|
+
// debounce in order to avoid to fire more than once in the same tick
|
|
51
|
+
this.fireOnDidChange = debounce(() => this.onDidChangeEmitter.fire(undefined), 0);
|
|
52
|
+
}
|
|
53
|
+
onStart() {
|
|
54
|
+
const contributions = this.contributionProvider.getContributions();
|
|
55
|
+
for (const contribution of contributions) {
|
|
56
|
+
contribution.registerToolbarItems(this);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Registers the given item. Throws an error, if the corresponding command cannot be found or an item has been already registered for the desired command.
|
|
61
|
+
*
|
|
62
|
+
* @param item the item to register.
|
|
63
|
+
*/
|
|
64
|
+
registerItem(item) {
|
|
65
|
+
const { id } = item;
|
|
66
|
+
if (this.items.has(id)) {
|
|
67
|
+
throw new Error(`A toolbar item is already registered with the '${id}' ID.`);
|
|
68
|
+
}
|
|
69
|
+
this.items.set(id, item);
|
|
70
|
+
this.fireOnDidChange();
|
|
71
|
+
const toDispose = new common_1.DisposableCollection(common_1.Disposable.create(() => this.fireOnDidChange()), common_1.Disposable.create(() => this.items.delete(id)));
|
|
72
|
+
if (item.onDidChange) {
|
|
73
|
+
toDispose.push(item.onDidChange(() => this.fireOnDidChange()));
|
|
74
|
+
}
|
|
75
|
+
return toDispose;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns an array of tab-bar toolbar items which are visible when the `widget` argument is the current one.
|
|
79
|
+
*
|
|
80
|
+
* By default returns with all items where the command is enabled and `item.isVisible` is `true`.
|
|
81
|
+
*/
|
|
82
|
+
visibleItems(widget) {
|
|
83
|
+
if (widget.isDisposed) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
const result = [];
|
|
87
|
+
for (const item of this.items.values()) {
|
|
88
|
+
const visible = tab_bar_toolbar_types_1.TabBarToolbarItem.is(item)
|
|
89
|
+
? this.commandRegistry.isVisible(item.command, widget)
|
|
90
|
+
: (!item.isVisible || item.isVisible(widget));
|
|
91
|
+
if (visible && (!item.when || this.contextKeyService.match(item.when, widget.node))) {
|
|
92
|
+
result.push(item);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
for (const delegate of this.menuDelegates.values()) {
|
|
96
|
+
if (delegate.isVisible(widget)) {
|
|
97
|
+
const menu = this.menuRegistry.getMenu(delegate.menuPath);
|
|
98
|
+
const children = common_1.CompoundMenuNode.getFlatChildren(menu.children);
|
|
99
|
+
for (const child of children) {
|
|
100
|
+
if (!child.when || this.contextKeyService.match(child.when, widget.node)) {
|
|
101
|
+
if (child.children) {
|
|
102
|
+
for (const grandchild of child.children) {
|
|
103
|
+
if (!grandchild.when || this.contextKeyService.match(grandchild.when, widget.node)) {
|
|
104
|
+
if (common_1.CommandMenuNode.is(grandchild)) {
|
|
105
|
+
result.push(new tab_bar_toolbar_menu_adapters_1.ToolbarMenuNodeWrapper(grandchild, child.id, delegate.menuPath));
|
|
106
|
+
}
|
|
107
|
+
else if (common_1.CompoundMenuNode.is(grandchild)) {
|
|
108
|
+
let menuPath;
|
|
109
|
+
if (menuPath = this.menuRegistry.getPath(grandchild)) {
|
|
110
|
+
result.push(new tab_bar_toolbar_menu_adapters_1.ToolbarMenuNodeWrapper(grandchild, child.id, menuPath));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (child.command) {
|
|
117
|
+
result.push(new tab_bar_toolbar_menu_adapters_1.ToolbarMenuNodeWrapper(child, '', delegate.menuPath));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
unregisterItem(itemOrId) {
|
|
126
|
+
const id = typeof itemOrId === 'string' ? itemOrId : itemOrId.id;
|
|
127
|
+
if (this.items.delete(id)) {
|
|
128
|
+
this.fireOnDidChange();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
registerMenuDelegate(menuPath, when) {
|
|
132
|
+
const id = menuPath.join(menuDelegateSeparator);
|
|
133
|
+
if (!this.menuDelegates.has(id)) {
|
|
134
|
+
const isVisible = !when
|
|
135
|
+
? yes
|
|
136
|
+
: typeof when === 'function'
|
|
137
|
+
? when
|
|
138
|
+
: widget => this.contextKeyService.match(when, widget === null || widget === void 0 ? void 0 : widget.node);
|
|
139
|
+
this.menuDelegates.set(id, { menuPath, isVisible });
|
|
140
|
+
this.fireOnDidChange();
|
|
141
|
+
return { dispose: () => this.unregisterMenuDelegate(menuPath) };
|
|
142
|
+
}
|
|
143
|
+
console.warn('Unable to register menu delegate. Delegate has already been registered', menuPath);
|
|
144
|
+
return common_1.Disposable.NULL;
|
|
145
|
+
}
|
|
146
|
+
unregisterMenuDelegate(menuPath) {
|
|
147
|
+
if (this.menuDelegates.delete(menuPath.join(menuDelegateSeparator))) {
|
|
148
|
+
this.fireOnDidChange();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
__decorate([
|
|
153
|
+
(0, inversify_1.inject)(common_1.CommandRegistry),
|
|
154
|
+
__metadata("design:type", common_1.CommandRegistry)
|
|
155
|
+
], TabBarToolbarRegistry.prototype, "commandRegistry", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
(0, inversify_1.inject)(context_key_service_1.ContextKeyService),
|
|
158
|
+
__metadata("design:type", Object)
|
|
159
|
+
], TabBarToolbarRegistry.prototype, "contextKeyService", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
(0, inversify_1.inject)(common_1.MenuModelRegistry),
|
|
162
|
+
__metadata("design:type", common_1.MenuModelRegistry)
|
|
163
|
+
], TabBarToolbarRegistry.prototype, "menuRegistry", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
(0, inversify_1.inject)(common_1.ContributionProvider),
|
|
166
|
+
(0, inversify_1.named)(exports.TabBarToolbarContribution),
|
|
167
|
+
__metadata("design:type", Object)
|
|
168
|
+
], TabBarToolbarRegistry.prototype, "contributionProvider", void 0);
|
|
169
|
+
TabBarToolbarRegistry = __decorate([
|
|
170
|
+
(0, inversify_1.injectable)()
|
|
171
|
+
], TabBarToolbarRegistry);
|
|
172
|
+
exports.TabBarToolbarRegistry = TabBarToolbarRegistry;
|
|
173
|
+
//# sourceMappingURL=tab-bar-toolbar-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar-toolbar-registry.js","sourceRoot":"","sources":["../../../../src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Event, MenuPath } from '../../../common';
|
|
3
|
+
import { Widget } from '../../widgets';
|
|
4
|
+
/** Items whose group is exactly 'navigation' will be rendered inline. */
|
|
5
|
+
export declare const NAVIGATION = "navigation";
|
|
6
|
+
export declare const TAB_BAR_TOOLBAR_CONTEXT_MENU: string[];
|
|
7
|
+
export interface TabBarDelegator extends Widget {
|
|
8
|
+
getTabBarDelegate(): Widget | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare namespace TabBarDelegator {
|
|
11
|
+
const is: (candidate?: Widget | undefined) => candidate is TabBarDelegator;
|
|
12
|
+
}
|
|
13
|
+
interface RegisteredToolbarItem {
|
|
14
|
+
/**
|
|
15
|
+
* The unique ID of the toolbar item.
|
|
16
|
+
*/
|
|
17
|
+
id: string;
|
|
18
|
+
}
|
|
19
|
+
interface RenderedToolbarItem {
|
|
20
|
+
/**
|
|
21
|
+
* Optional icon for the item.
|
|
22
|
+
*/
|
|
23
|
+
icon?: string | (() => string);
|
|
24
|
+
/**
|
|
25
|
+
* Optional text of the item.
|
|
26
|
+
*
|
|
27
|
+
* Strings in the format `$(iconIdentifier~animationType) will be treated as icon references.
|
|
28
|
+
* If the iconIdentifier begins with fa-, Font Awesome icons will be used; otherwise it will be treated as Codicon name.
|
|
29
|
+
*
|
|
30
|
+
* You can find Codicon classnames here: https://microsoft.github.io/vscode-codicons/dist/codicon.html
|
|
31
|
+
* You can find Font Awesome classnames here: http://fontawesome.io/icons/
|
|
32
|
+
* The type of animation can be either `spin` or `pulse`.
|
|
33
|
+
*/
|
|
34
|
+
text?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Optional tooltip for the item.
|
|
37
|
+
*/
|
|
38
|
+
tooltip?: string;
|
|
39
|
+
}
|
|
40
|
+
interface SelfRenderingToolbarItem {
|
|
41
|
+
render(widget?: Widget): React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
interface ExecutableToolbarItem {
|
|
44
|
+
/**
|
|
45
|
+
* The command to execute when the item is selected.
|
|
46
|
+
*/
|
|
47
|
+
command: string;
|
|
48
|
+
}
|
|
49
|
+
export interface MenuToolbarItem {
|
|
50
|
+
/**
|
|
51
|
+
* A menu path with which this item is associated.
|
|
52
|
+
* If accompanied by a command, this data will be passed to the {@link MenuCommandExecutor}.
|
|
53
|
+
* If no command is present, this menu will be opened.
|
|
54
|
+
*/
|
|
55
|
+
menuPath: MenuPath;
|
|
56
|
+
}
|
|
57
|
+
interface ConditionalToolbarItem {
|
|
58
|
+
/**
|
|
59
|
+
* https://code.visualstudio.com/docs/getstarted/keybindings#_when-clause-contexts
|
|
60
|
+
*/
|
|
61
|
+
when?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Checked before the item is shown.
|
|
64
|
+
*/
|
|
65
|
+
isVisible?(widget?: Widget): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* When defined, the container tool-bar will be updated if this event is fired.
|
|
68
|
+
*
|
|
69
|
+
* Note: currently, each item of the container toolbar will be re-rendered if any of the items have changed.
|
|
70
|
+
*/
|
|
71
|
+
onDidChange?: Event<void>;
|
|
72
|
+
}
|
|
73
|
+
interface InlineToolbarItemMetadata {
|
|
74
|
+
/**
|
|
75
|
+
* Priority among the items. Can be negative. The smaller the number the left-most the item will be placed in the toolbar. It is `0` by default.
|
|
76
|
+
*/
|
|
77
|
+
priority?: number;
|
|
78
|
+
group: 'navigation' | undefined;
|
|
79
|
+
}
|
|
80
|
+
interface MenuToolbarItemMetadata {
|
|
81
|
+
/**
|
|
82
|
+
* Optional group for the item. Default `navigation`.
|
|
83
|
+
* `navigation` group will be inlined, while all the others will appear in the `...` dropdown.
|
|
84
|
+
* A group in format `submenu_group_1/submenu 1/.../submenu_group_n/ submenu n/item_group` means that the item will be located in a submenu(s) of the `...` dropdown.
|
|
85
|
+
* The submenu's title is named by the submenu section name, e.g. `group/<submenu name>/subgroup`.
|
|
86
|
+
*/
|
|
87
|
+
group: string;
|
|
88
|
+
/**
|
|
89
|
+
* Optional ordering string for placing the item within its group
|
|
90
|
+
*/
|
|
91
|
+
order?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Representation of an item in the tab
|
|
95
|
+
*/
|
|
96
|
+
export interface TabBarToolbarItem extends RegisteredToolbarItem, ExecutableToolbarItem, RenderedToolbarItem, Omit<ConditionalToolbarItem, 'isVisible'>, Pick<InlineToolbarItemMetadata, 'priority'>, Partial<MenuToolbarItemMetadata> {
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Tab-bar toolbar item backed by a `React.ReactNode`.
|
|
100
|
+
* Unlike the `TabBarToolbarItem`, this item is not connected to the command service.
|
|
101
|
+
*/
|
|
102
|
+
export interface ReactTabBarToolbarItem extends RegisteredToolbarItem, SelfRenderingToolbarItem, ConditionalToolbarItem, Pick<InlineToolbarItemMetadata, 'priority'>, Pick<Partial<MenuToolbarItemMetadata>, 'group'> {
|
|
103
|
+
}
|
|
104
|
+
export interface AnyToolbarItem extends RegisteredToolbarItem, Partial<ExecutableToolbarItem>, Partial<RenderedToolbarItem>, Partial<SelfRenderingToolbarItem>, Partial<ConditionalToolbarItem>, Partial<MenuToolbarItem>, Pick<InlineToolbarItemMetadata, 'priority'>, Partial<MenuToolbarItemMetadata> {
|
|
105
|
+
}
|
|
106
|
+
export interface MenuDelegate extends MenuToolbarItem, Required<Pick<ConditionalToolbarItem, 'isVisible'>> {
|
|
107
|
+
}
|
|
108
|
+
export declare namespace TabBarToolbarItem {
|
|
109
|
+
/**
|
|
110
|
+
* Compares the items by `priority` in ascending. Undefined priorities will be treated as `0`.
|
|
111
|
+
*/
|
|
112
|
+
const PRIORITY_COMPARATOR: (left: TabBarToolbarItem, right: TabBarToolbarItem) => number;
|
|
113
|
+
function is(arg: Object | undefined): arg is TabBarToolbarItem;
|
|
114
|
+
}
|
|
115
|
+
export declare namespace MenuToolbarItem {
|
|
116
|
+
function getMenuPath(item: AnyToolbarItem): MenuPath | undefined;
|
|
117
|
+
}
|
|
118
|
+
export {};
|
|
119
|
+
//# sourceMappingURL=tab-bar-toolbar-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar-toolbar-types.d.ts","sourceRoot":"","sources":["../../../../src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MenuToolbarItem = exports.TabBarToolbarItem = exports.TabBarDelegator = exports.TAB_BAR_TOOLBAR_CONTEXT_MENU = exports.NAVIGATION = void 0;
|
|
19
|
+
const common_1 = require("../../../common");
|
|
20
|
+
/** Items whose group is exactly 'navigation' will be rendered inline. */
|
|
21
|
+
exports.NAVIGATION = 'navigation';
|
|
22
|
+
exports.TAB_BAR_TOOLBAR_CONTEXT_MENU = ['TAB_BAR_TOOLBAR_CONTEXT_MENU'];
|
|
23
|
+
var TabBarDelegator;
|
|
24
|
+
(function (TabBarDelegator) {
|
|
25
|
+
TabBarDelegator.is = (candidate) => {
|
|
26
|
+
if (candidate) {
|
|
27
|
+
const asDelegator = candidate;
|
|
28
|
+
return typeof asDelegator.getTabBarDelegate === 'function';
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
})(TabBarDelegator = exports.TabBarDelegator || (exports.TabBarDelegator = {}));
|
|
33
|
+
var TabBarToolbarItem;
|
|
34
|
+
(function (TabBarToolbarItem) {
|
|
35
|
+
/**
|
|
36
|
+
* Compares the items by `priority` in ascending. Undefined priorities will be treated as `0`.
|
|
37
|
+
*/
|
|
38
|
+
TabBarToolbarItem.PRIORITY_COMPARATOR = (left, right) => {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
const leftGroup = (_a = left.group) !== null && _a !== void 0 ? _a : exports.NAVIGATION;
|
|
41
|
+
const rightGroup = (_b = right.group) !== null && _b !== void 0 ? _b : exports.NAVIGATION;
|
|
42
|
+
if (leftGroup === exports.NAVIGATION && rightGroup !== exports.NAVIGATION) {
|
|
43
|
+
return common_1.ArrayUtils.Sort.LeftBeforeRight;
|
|
44
|
+
}
|
|
45
|
+
if (rightGroup === exports.NAVIGATION && leftGroup !== exports.NAVIGATION) {
|
|
46
|
+
return common_1.ArrayUtils.Sort.RightBeforeLeft;
|
|
47
|
+
}
|
|
48
|
+
if (leftGroup !== rightGroup) {
|
|
49
|
+
return leftGroup.localeCompare(rightGroup);
|
|
50
|
+
}
|
|
51
|
+
return (left.priority || 0) - (right.priority || 0);
|
|
52
|
+
};
|
|
53
|
+
function is(arg) {
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
+
return !!arg && 'command' in arg && typeof arg.command === 'string';
|
|
56
|
+
}
|
|
57
|
+
TabBarToolbarItem.is = is;
|
|
58
|
+
})(TabBarToolbarItem = exports.TabBarToolbarItem || (exports.TabBarToolbarItem = {}));
|
|
59
|
+
var MenuToolbarItem;
|
|
60
|
+
(function (MenuToolbarItem) {
|
|
61
|
+
function getMenuPath(item) {
|
|
62
|
+
const asDelegate = item;
|
|
63
|
+
return Array.isArray(asDelegate.menuPath) ? asDelegate.menuPath : undefined;
|
|
64
|
+
}
|
|
65
|
+
MenuToolbarItem.getMenuPath = getMenuPath;
|
|
66
|
+
})(MenuToolbarItem = exports.MenuToolbarItem || (exports.MenuToolbarItem = {}));
|
|
67
|
+
//# sourceMappingURL=tab-bar-toolbar-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar-toolbar-types.js","sourceRoot":"","sources":["../../../../src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAGhF,4CAA8D;AAG9D,yEAAyE;AAC5D,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,4BAA4B,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAM7E,IAAiB,eAAe,CAQ/B;AARD,WAAiB,eAAe;IACf,kBAAE,GAAG,CAAC,SAAkB,EAAgC,EAAE;QACnE,IAAI,SAAS,EAAE;YACX,MAAM,WAAW,GAAG,SAA4B,CAAC;YACjD,OAAO,OAAO,WAAW,CAAC,iBAAiB,KAAK,UAAU,CAAC;SAC9D;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC,EARgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAQ/B;AA2HD,IAAiB,iBAAiB,CAmBjC;AAnBD,WAAiB,iBAAiB;IAE9B;;OAEG;IACU,qCAAmB,GAAG,CAAC,IAAuB,EAAE,KAAwB,EAAE,EAAE;;QACrF,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,kBAAU,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,kBAAU,CAAC;QAC7C,IAAI,SAAS,KAAK,kBAAU,IAAI,UAAU,KAAK,kBAAU,EAAE;YAAE,OAAO,mBAAU,CAAC,IAAI,CAAC,eAAe,CAAC;SAAE;QACtG,IAAI,UAAU,KAAK,kBAAU,IAAI,SAAS,KAAK,kBAAU,EAAE;YAAE,OAAO,mBAAU,CAAC,IAAI,CAAC,eAAe,CAAC;SAAE;QACtG,IAAI,SAAS,KAAK,UAAU,EAAE;YAAE,OAAO,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAAE;QAC7E,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,SAAgB,EAAE,CAAC,GAAuB;QACtC,8DAA8D;QAC9D,OAAO,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,OAAQ,GAAW,CAAC,OAAO,KAAK,QAAQ,CAAC;IACjF,CAAC;IAHe,oBAAE,KAGjB,CAAA;AAEL,CAAC,EAnBgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAmBjC;AAED,IAAiB,eAAe,CAK/B;AALD,WAAiB,eAAe;IAC5B,SAAgB,WAAW,CAAC,IAAoB;QAC5C,MAAM,UAAU,GAAG,IAAuB,CAAC;QAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAHe,2BAAW,cAG1B,CAAA;AACL,CAAC,EALgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK/B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { CommandRegistry, DisposableCollection, MenuCommandExecutor, MenuModelRegistry, MenuPath } from '../../../common';
|
|
3
|
+
import { Anchor, ContextMenuAccess, ContextMenuRenderer } from '../../context-menu-renderer';
|
|
4
|
+
import { LabelParser } from '../../label-parser';
|
|
5
|
+
import { ReactWidget, Widget } from '../../widgets';
|
|
6
|
+
import { TabBarToolbarRegistry } from './tab-bar-toolbar-registry';
|
|
7
|
+
import { AnyToolbarItem, ReactTabBarToolbarItem, TabBarToolbarItem } from './tab-bar-toolbar-types';
|
|
8
|
+
/**
|
|
9
|
+
* Factory for instantiating tab-bar toolbars.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TabBarToolbarFactory: unique symbol;
|
|
12
|
+
export interface TabBarToolbarFactory {
|
|
13
|
+
(): TabBarToolbar;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Tab-bar toolbar widget representing the active [tab-bar toolbar items](TabBarToolbarItem).
|
|
17
|
+
*/
|
|
18
|
+
export declare class TabBarToolbar extends ReactWidget {
|
|
19
|
+
protected current: Widget | undefined;
|
|
20
|
+
protected inline: Map<string, TabBarToolbarItem | ReactTabBarToolbarItem>;
|
|
21
|
+
protected more: Map<string, TabBarToolbarItem>;
|
|
22
|
+
protected readonly commands: CommandRegistry;
|
|
23
|
+
protected readonly labelParser: LabelParser;
|
|
24
|
+
protected readonly menus: MenuModelRegistry;
|
|
25
|
+
protected readonly menuCommandExecutor: MenuCommandExecutor;
|
|
26
|
+
protected readonly contextMenuRenderer: ContextMenuRenderer;
|
|
27
|
+
protected readonly toolbarRegistry: TabBarToolbarRegistry;
|
|
28
|
+
constructor();
|
|
29
|
+
updateItems(items: Array<TabBarToolbarItem | ReactTabBarToolbarItem>, current: Widget | undefined): void;
|
|
30
|
+
updateTarget(current?: Widget): void;
|
|
31
|
+
protected readonly toDisposeOnSetCurrent: DisposableCollection;
|
|
32
|
+
protected setCurrent(current: Widget | undefined): void;
|
|
33
|
+
protected render(): React.ReactNode;
|
|
34
|
+
protected renderItem(item: AnyToolbarItem): React.ReactNode;
|
|
35
|
+
protected getToolbarItemClassNames(commandId: string | undefined): string[];
|
|
36
|
+
protected renderMore(): React.ReactNode;
|
|
37
|
+
protected showMoreContextMenu: (event: React.MouseEvent) => void;
|
|
38
|
+
protected toAnchor(event: React.MouseEvent): Anchor;
|
|
39
|
+
renderMoreContextMenu(anchor: Anchor, subpath?: MenuPath): ContextMenuAccess;
|
|
40
|
+
shouldHandleMouseEvent(event: MouseEvent): boolean;
|
|
41
|
+
protected commandIsEnabled(command: string): boolean;
|
|
42
|
+
protected commandIsToggled(command: string): boolean;
|
|
43
|
+
protected executeCommand: (e: React.MouseEvent<HTMLElement>) => void;
|
|
44
|
+
protected onMouseDownEvent: (e: React.MouseEvent<HTMLElement>) => void;
|
|
45
|
+
protected onMouseUpEvent: (e: React.MouseEvent<HTMLElement>) => void;
|
|
46
|
+
}
|
|
47
|
+
export declare namespace TabBarToolbar {
|
|
48
|
+
namespace Styles {
|
|
49
|
+
const TAB_BAR_TOOLBAR = "p-TabBar-toolbar";
|
|
50
|
+
const TAB_BAR_TOOLBAR_ITEM = "item";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=tab-bar-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar-toolbar.d.ts","sourceRoot":"","sources":["../../../../src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAoC,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AACjK,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAwB,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAmB,iBAAiB,EAAgC,MAAM,yBAAyB,CAAC;AAEnJ;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,WAAW,oBAAoB;IACjC,IAAI,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,qBACa,aAAc,SAAQ,WAAW;IAE1C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,MAAM,0DAAiE;IACjF,SAAS,CAAC,IAAI,iCAAwC;IAE7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC5D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;;IAQzF,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,GAAG,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAsBxG,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,uBAA8B;IACtE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAgBvD,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAOnC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS;IAkC3D,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE;IAa3E,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS;IAOvC,SAAS,CAAC,mBAAmB,UAAW,gBAAgB,UAKtD;IAEF,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM;IAKnD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,iBAAiB;IAsC5E,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpD,SAAS,CAAC,cAAc,MAAO,gBAAgB,CAAC,WAAW,CAAC,UAa1D;IAEF,SAAS,CAAC,gBAAgB,MAAO,gBAAgB,CAAC,WAAW,CAAC,UAI5D;IAEF,SAAS,CAAC,cAAc,MAAO,gBAAgB,CAAC,WAAW,CAAC,UAE1D;CAEL;AAED,yBAAiB,aAAa,CAAC;IAE3B,UAAiB,MAAM,CAAC;QAEb,MAAM,eAAe,qBAAqB,CAAC;QAC3C,MAAM,oBAAoB,SAAS,CAAC;KAE9C;CAEJ"}
|