@theia/core 1.28.0-next.7 → 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/message-rpc/rpc-message-encoder.d.ts +12 -11
- package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -1
- package/lib/common/message-rpc/rpc-message-encoder.js +21 -12
- package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -1
- 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/message-rpc/rpc-message-encoder.ts +24 -13
- 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
|
@@ -27,23 +27,13 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
27
27
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
30
|
+
exports.MenuModelRegistry = exports.MenuContribution = void 0;
|
|
31
31
|
const inversify_1 = require("inversify");
|
|
32
|
-
const command_1 = require("
|
|
33
|
-
const contribution_provider_1 = require("
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
-
function is(arg) {
|
|
39
|
-
return !!arg && arg === Object(arg) && 'commandId' in arg;
|
|
40
|
-
}
|
|
41
|
-
MenuAction.is = is;
|
|
42
|
-
})(MenuAction = exports.MenuAction || (exports.MenuAction = {}));
|
|
43
|
-
exports.MAIN_MENU_BAR = ['menubar'];
|
|
44
|
-
exports.SETTINGS_MENU = ['settings_menu'];
|
|
45
|
-
exports.ACCOUNTS_MENU = ['accounts_menu'];
|
|
46
|
-
exports.ACCOUNTS_SUBMENU = [...exports.ACCOUNTS_MENU, '1_accounts_submenu'];
|
|
32
|
+
const command_1 = require("../command");
|
|
33
|
+
const contribution_provider_1 = require("../contribution-provider");
|
|
34
|
+
const composite_menu_node_1 = require("./composite-menu-node");
|
|
35
|
+
const menu_types_1 = require("./menu-types");
|
|
36
|
+
const action_menu_node_1 = require("./action-menu-node");
|
|
47
37
|
exports.MenuContribution = Symbol('MenuContribution');
|
|
48
38
|
/**
|
|
49
39
|
* The MenuModelRegistry allows to register and unregister menus, submenus and actions
|
|
@@ -54,7 +44,8 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
54
44
|
constructor(contributions, commands) {
|
|
55
45
|
this.contributions = contributions;
|
|
56
46
|
this.commands = commands;
|
|
57
|
-
this.root = new CompositeMenuNode('');
|
|
47
|
+
this.root = new composite_menu_node_1.CompositeMenuNode('');
|
|
48
|
+
this.independentSubmenus = new Map();
|
|
58
49
|
}
|
|
59
50
|
onStart() {
|
|
60
51
|
for (const contrib of this.contributions.getContributions()) {
|
|
@@ -67,7 +58,7 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
67
58
|
* @returns a disposable which, when called, will remove the menu action again.
|
|
68
59
|
*/
|
|
69
60
|
registerMenuAction(menuPath, item) {
|
|
70
|
-
const menuNode = new ActionMenuNode(item, this.commands);
|
|
61
|
+
const menuNode = new action_menu_node_1.ActionMenuNode(item, this.commands);
|
|
71
62
|
return this.registerMenuNode(menuPath, menuNode);
|
|
72
63
|
}
|
|
73
64
|
/**
|
|
@@ -75,10 +66,25 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
75
66
|
*
|
|
76
67
|
* @returns a disposable which, when called, will remove the menu node again.
|
|
77
68
|
*/
|
|
78
|
-
registerMenuNode(menuPath, menuNode) {
|
|
79
|
-
const parent = this.
|
|
69
|
+
registerMenuNode(menuPath, menuNode, group) {
|
|
70
|
+
const parent = this.getMenuNode(menuPath, group);
|
|
80
71
|
return parent.addNode(menuNode);
|
|
81
72
|
}
|
|
73
|
+
getMenuNode(menuPath, group) {
|
|
74
|
+
if (typeof menuPath === 'string') {
|
|
75
|
+
const target = this.independentSubmenus.get(menuPath);
|
|
76
|
+
if (!target) {
|
|
77
|
+
throw new Error(`Could not find submenu with id ${menuPath}`);
|
|
78
|
+
}
|
|
79
|
+
if (group) {
|
|
80
|
+
return this.findSubMenu(target, group);
|
|
81
|
+
}
|
|
82
|
+
return target;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return this.findGroup(group ? menuPath.concat(group) : menuPath);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
82
88
|
/**
|
|
83
89
|
* Register a new menu at the given path with the given label.
|
|
84
90
|
* (If the menu already exists without a label, iconClass or order this method can be used to set them.)
|
|
@@ -104,7 +110,7 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
104
110
|
const parent = this.findGroup(groupPath, options);
|
|
105
111
|
let groupNode = this.findSubMenu(parent, menuId, options);
|
|
106
112
|
if (!groupNode) {
|
|
107
|
-
groupNode = new CompositeMenuNode(menuId, label, options);
|
|
113
|
+
groupNode = new composite_menu_node_1.CompositeMenuNode(menuId, label, options, parent);
|
|
108
114
|
return parent.addNode(groupNode);
|
|
109
115
|
}
|
|
110
116
|
else {
|
|
@@ -125,8 +131,21 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
125
131
|
return { dispose: () => { } };
|
|
126
132
|
}
|
|
127
133
|
}
|
|
134
|
+
registerIndependentSubmenu(id, label, options) {
|
|
135
|
+
if (this.independentSubmenus.has(id)) {
|
|
136
|
+
console.debug(`Independent submenu with path ${id} registered, but given ID already exists.`);
|
|
137
|
+
}
|
|
138
|
+
this.independentSubmenus.set(id, new composite_menu_node_1.CompositeMenuNode(id, label, options));
|
|
139
|
+
return { dispose: () => this.independentSubmenus.delete(id) };
|
|
140
|
+
}
|
|
141
|
+
linkSubmenu(parentPath, childId, options, group) {
|
|
142
|
+
const child = this.getMenuNode(childId);
|
|
143
|
+
const parent = this.getMenuNode(parentPath, group);
|
|
144
|
+
const wrapper = new composite_menu_node_1.CompositeMenuNodeWrapper(child, parent, options);
|
|
145
|
+
return parent.addNode(wrapper);
|
|
146
|
+
}
|
|
128
147
|
unregisterMenuAction(itemOrCommandOrId, menuPath) {
|
|
129
|
-
const id = MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
|
|
148
|
+
const id = menu_types_1.MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
|
|
130
149
|
: command_1.Command.is(itemOrCommandOrId) ? itemOrCommandOrId.id
|
|
131
150
|
: itemOrCommandOrId;
|
|
132
151
|
if (menuPath) {
|
|
@@ -144,7 +163,7 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
144
163
|
unregisterMenuNode(id) {
|
|
145
164
|
const recurse = (root) => {
|
|
146
165
|
root.children.forEach(node => {
|
|
147
|
-
if (node instanceof CompositeMenuNode) {
|
|
166
|
+
if (node instanceof composite_menu_node_1.CompositeMenuNode) {
|
|
148
167
|
node.removeNode(id);
|
|
149
168
|
recurse(node);
|
|
150
169
|
}
|
|
@@ -152,6 +171,10 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
152
171
|
};
|
|
153
172
|
recurse(this.root);
|
|
154
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Finds a submenu as a descendant of the `root` node.
|
|
176
|
+
* See {@link MenuModelRegistry.findSubMenu findSubMenu}.
|
|
177
|
+
*/
|
|
155
178
|
findGroup(menuPath, options) {
|
|
156
179
|
let currentMenu = this.root;
|
|
157
180
|
for (const segment of menuPath) {
|
|
@@ -159,15 +182,19 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
159
182
|
}
|
|
160
183
|
return currentMenu;
|
|
161
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Finds or creates a submenu as an immediate child of `current`.
|
|
187
|
+
* @throws if a node with the given `menuId` exists but is not a {@link CompositeMenuNode}.
|
|
188
|
+
*/
|
|
162
189
|
findSubMenu(current, menuId, options) {
|
|
163
190
|
const sub = current.children.find(e => e.id === menuId);
|
|
164
|
-
if (sub instanceof CompositeMenuNode) {
|
|
191
|
+
if (sub instanceof composite_menu_node_1.CompositeMenuNode) {
|
|
165
192
|
return sub;
|
|
166
193
|
}
|
|
167
194
|
if (sub) {
|
|
168
195
|
throw new Error(`'${menuId}' is not a menu group.`);
|
|
169
196
|
}
|
|
170
|
-
const newSub = new CompositeMenuNode(menuId, undefined, options);
|
|
197
|
+
const newSub = new composite_menu_node_1.CompositeMenuNode(menuId, undefined, options, current);
|
|
171
198
|
current.addNode(newSub);
|
|
172
199
|
return newSub;
|
|
173
200
|
}
|
|
@@ -182,6 +209,24 @@ let MenuModelRegistry = class MenuModelRegistry {
|
|
|
182
209
|
getMenu(menuPath = []) {
|
|
183
210
|
return this.findGroup(menuPath);
|
|
184
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Returns the {@link MenuPath path} at which a given menu node can be accessed from this registry, if it can be determined.
|
|
214
|
+
* Returns `undefined` if the `parent` of any node in the chain is unknown.
|
|
215
|
+
*/
|
|
216
|
+
getPath(node) {
|
|
217
|
+
const identifiers = [];
|
|
218
|
+
const visited = [];
|
|
219
|
+
let next = node;
|
|
220
|
+
while (next && !visited.includes(next)) {
|
|
221
|
+
if (next === this.root) {
|
|
222
|
+
return identifiers.reverse();
|
|
223
|
+
}
|
|
224
|
+
visited.push(next);
|
|
225
|
+
identifiers.push(next.id);
|
|
226
|
+
next = next.parent;
|
|
227
|
+
}
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
185
230
|
};
|
|
186
231
|
MenuModelRegistry = __decorate([
|
|
187
232
|
(0, inversify_1.injectable)(),
|
|
@@ -191,125 +236,4 @@ MenuModelRegistry = __decorate([
|
|
|
191
236
|
__metadata("design:paramtypes", [Object, command_1.CommandRegistry])
|
|
192
237
|
], MenuModelRegistry);
|
|
193
238
|
exports.MenuModelRegistry = MenuModelRegistry;
|
|
194
|
-
|
|
195
|
-
* Node representing a (sub)menu in the menu tree structure.
|
|
196
|
-
*/
|
|
197
|
-
class CompositeMenuNode {
|
|
198
|
-
constructor(id, label, options) {
|
|
199
|
-
this.id = id;
|
|
200
|
-
this.label = label;
|
|
201
|
-
this._children = [];
|
|
202
|
-
if (options) {
|
|
203
|
-
this.iconClass = options.iconClass;
|
|
204
|
-
this.order = options.order;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
get children() {
|
|
208
|
-
return this._children;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Inserts the given node at the position indicated by `sortString`.
|
|
212
|
-
*
|
|
213
|
-
* @returns a disposable which, when called, will remove the given node again.
|
|
214
|
-
*/
|
|
215
|
-
addNode(node) {
|
|
216
|
-
this._children.push(node);
|
|
217
|
-
this._children.sort((m1, m2) => {
|
|
218
|
-
// The navigation group is special as it will always be sorted to the top/beginning of a menu.
|
|
219
|
-
if (CompositeMenuNode.isNavigationGroup(m1)) {
|
|
220
|
-
return -1;
|
|
221
|
-
}
|
|
222
|
-
if (CompositeMenuNode.isNavigationGroup(m2)) {
|
|
223
|
-
return 1;
|
|
224
|
-
}
|
|
225
|
-
if (m1.sortString < m2.sortString) {
|
|
226
|
-
return -1;
|
|
227
|
-
}
|
|
228
|
-
else if (m1.sortString > m2.sortString) {
|
|
229
|
-
return 1;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
return 0;
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
return {
|
|
236
|
-
dispose: () => {
|
|
237
|
-
const idx = this._children.indexOf(node);
|
|
238
|
-
if (idx >= 0) {
|
|
239
|
-
this._children.splice(idx, 1);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Removes the first node with the given id.
|
|
246
|
-
*
|
|
247
|
-
* @param id node id.
|
|
248
|
-
*/
|
|
249
|
-
removeNode(id) {
|
|
250
|
-
const node = this._children.find(n => n.id === id);
|
|
251
|
-
if (node) {
|
|
252
|
-
const idx = this._children.indexOf(node);
|
|
253
|
-
if (idx >= 0) {
|
|
254
|
-
this._children.splice(idx, 1);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
get sortString() {
|
|
259
|
-
return this.order || this.id;
|
|
260
|
-
}
|
|
261
|
-
get isSubmenu() {
|
|
262
|
-
return this.label !== undefined;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Indicates whether the given node is the special `navigation` menu.
|
|
266
|
-
*
|
|
267
|
-
* @param node the menu node to check.
|
|
268
|
-
* @returns `true` when the given node is a {@link CompositeMenuNode} with id `navigation`,
|
|
269
|
-
* `false` otherwise.
|
|
270
|
-
*/
|
|
271
|
-
static isNavigationGroup(node) {
|
|
272
|
-
return node instanceof CompositeMenuNode && node.id === 'navigation';
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
exports.CompositeMenuNode = CompositeMenuNode;
|
|
276
|
-
/**
|
|
277
|
-
* Node representing an action in the menu tree structure.
|
|
278
|
-
* It's based on {@link MenuAction} for which it tries to determine the
|
|
279
|
-
* best label, icon and sortString with the given data.
|
|
280
|
-
*/
|
|
281
|
-
class ActionMenuNode {
|
|
282
|
-
constructor(action, commands) {
|
|
283
|
-
this.action = action;
|
|
284
|
-
this.commands = commands;
|
|
285
|
-
if (action.alt) {
|
|
286
|
-
this.altNode = new ActionMenuNode({ commandId: action.alt }, commands);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
get id() {
|
|
290
|
-
return this.action.commandId;
|
|
291
|
-
}
|
|
292
|
-
get label() {
|
|
293
|
-
if (this.action.label) {
|
|
294
|
-
return this.action.label;
|
|
295
|
-
}
|
|
296
|
-
const cmd = this.commands.getCommand(this.action.commandId);
|
|
297
|
-
if (!cmd) {
|
|
298
|
-
console.debug(`No label for action menu node: No command "${this.action.commandId}" exists.`);
|
|
299
|
-
return '';
|
|
300
|
-
}
|
|
301
|
-
return cmd.label || cmd.id;
|
|
302
|
-
}
|
|
303
|
-
get icon() {
|
|
304
|
-
if (this.action.icon) {
|
|
305
|
-
return this.action.icon;
|
|
306
|
-
}
|
|
307
|
-
const command = this.commands.getCommand(this.action.commandId);
|
|
308
|
-
return command && command.iconClass;
|
|
309
|
-
}
|
|
310
|
-
get sortString() {
|
|
311
|
-
return this.action.order || this.label;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
exports.ActionMenuNode = ActionMenuNode;
|
|
315
|
-
//# sourceMappingURL=menu.js.map
|
|
239
|
+
//# sourceMappingURL=menu-model-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-model-registry.js","sourceRoot":"","sources":["../../../src/common/menu/menu-model-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;;;;;;;;;;;;;;AAEhF,yCAAsD;AAEtD,wCAAsD;AACtD,oEAAgE;AAChE,+DAAoF;AACpF,6CAA8E;AAC9E,yDAAoD;AAEvC,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAoC3D;;;;GAIG;AAEH,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAI1B,YAEuB,aAAqD,EAC5B,QAAyB;QADlD,kBAAa,GAAb,aAAa,CAAwC;QAC5B,aAAQ,GAAR,QAAQ,CAAiB;QANtD,SAAI,GAAG,IAAI,uCAAiB,CAAC,EAAE,CAAC,CAAC;QACjC,wBAAmB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAM1E,CAAC;IAEL,OAAO;QACH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE;YACzD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC/B;IACL,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAkB,EAAE,IAAgB;QACnD,MAAM,QAAQ,GAAG,IAAI,iCAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAA2B,EAAE,QAAkB,EAAE,KAAc;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,QAA2B,EAAE,KAAc;QACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;aAAE;YAC/E,IAAI,KAAK,EAAE;gBACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1C;YACD,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACpE;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,QAAkB,EAAE,KAAa,EAAE,OAAwB;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACzD;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE;YACZ,SAAS,GAAG,IAAI,uCAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACpC;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBAClB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;aAC3B;iBAAM,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,kCAAkC,CAAC,CAAC;aAC5F;YACD,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;oBACtB,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;iBAC3C;gBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;oBAClB,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;iBACnC;aACJ;YACD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,0BAA0B,CAAC,EAAU,EAAE,KAAa,EAAE,OAAwB;QAC1E,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,2CAA2C,CAAC,CAAC;SACjG;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,uCAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,WAAW,CAAC,UAA6B,EAAE,OAA0B,EAAE,OAAwB,EAAE,KAAc;QAC3G,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,8CAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAuBD,oBAAoB,CAAC,iBAAgD,EAAE,QAAmB;QACtF,MAAM,EAAE,GAAG,uBAAU,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS;YACrE,CAAC,CAAC,iBAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE;gBAClD,CAAC,CAAC,iBAAiB,CAAC;QAE5B,IAAI,QAAQ,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO;SACV;QAED,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,EAAU;QACzB,MAAM,OAAO,GAAG,CAAC,IAAuB,EAAE,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACzB,IAAI,IAAI,YAAY,uCAAiB,EAAE;oBACnC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACO,SAAS,CAAC,QAAkB,EAAE,OAAwB;QAC5D,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACjE;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,OAA0B,EAAE,MAAc,EAAE,OAAwB;QACtF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACxD,IAAI,GAAG,YAAY,uCAAiB,EAAE;YAClC,OAAO,GAAG,CAAC;SACd;QACD,IAAI,GAAG,EAAE;YACL,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,wBAAwB,CAAC,CAAC;SACvD;QACD,MAAM,MAAM,GAAG,IAAI,uCAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,WAAqB,EAAE;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAc;QAClB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAyB,IAAI,CAAC;QAEtC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBACpB,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;aAChC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACtB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAA;AA7NY,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;IAMJ,WAAA,IAAA,kBAAM,EAAC,4CAAoB,CAAC,CAAA;IAAE,WAAA,IAAA,iBAAK,EAAC,wBAAgB,CAAC,CAAA;IAErD,WAAA,IAAA,kBAAM,EAAC,yBAAe,CAAC,CAAA;6CAA8B,yBAAe;GAPhE,iBAAiB,CA6N7B;AA7NY,8CAAiB"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A menu entry representing an action, e.g. "New File".
|
|
3
|
+
*/
|
|
4
|
+
export interface MenuAction extends MenuNodeRenderingData, Pick<MenuNodeMetadata, 'when'> {
|
|
5
|
+
/**
|
|
6
|
+
* The command to execute.
|
|
7
|
+
*/
|
|
8
|
+
commandId: string;
|
|
9
|
+
/**
|
|
10
|
+
* In addition to the mandatory command property, an alternative command can be defined.
|
|
11
|
+
* It will be shown and invoked when pressing Alt while opening a menu.
|
|
12
|
+
*/
|
|
13
|
+
alt?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Menu entries are sorted in ascending order based on their `order` strings. If omitted the determined
|
|
16
|
+
* label will be used instead.
|
|
17
|
+
*/
|
|
18
|
+
order?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare namespace MenuAction {
|
|
21
|
+
function is(arg: MenuAction | any): arg is MenuAction;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Additional options when creating a new submenu.
|
|
25
|
+
*/
|
|
26
|
+
export interface SubMenuOptions extends Pick<MenuAction, 'order'>, Pick<MenuNodeMetadata, 'when'>, Partial<Pick<CompoundMenuNodeMetadata, 'role'>> {
|
|
27
|
+
/**
|
|
28
|
+
* The class to use for the submenu icon.
|
|
29
|
+
*/
|
|
30
|
+
iconClass?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare type MenuPath = string[];
|
|
33
|
+
export declare const MAIN_MENU_BAR: MenuPath;
|
|
34
|
+
export declare const SETTINGS_MENU: MenuPath;
|
|
35
|
+
export declare const ACCOUNTS_MENU: MenuPath;
|
|
36
|
+
export declare const ACCOUNTS_SUBMENU: string[];
|
|
37
|
+
export interface MenuNodeMetadata {
|
|
38
|
+
/**
|
|
39
|
+
* technical identifier.
|
|
40
|
+
*/
|
|
41
|
+
readonly id: string;
|
|
42
|
+
/**
|
|
43
|
+
* Menu nodes are sorted in ascending order based on their `sortString`.
|
|
44
|
+
*/
|
|
45
|
+
readonly sortString: string;
|
|
46
|
+
/**
|
|
47
|
+
* Condition under which the menu node should be rendered.
|
|
48
|
+
* See https://code.visualstudio.com/docs/getstarted/keybindings#_when-clause-contexts
|
|
49
|
+
*/
|
|
50
|
+
readonly when?: string;
|
|
51
|
+
/**
|
|
52
|
+
* A reference to the parent node - useful for determining the menu path by which the node can be accessed.
|
|
53
|
+
*/
|
|
54
|
+
readonly parent?: MenuNode;
|
|
55
|
+
}
|
|
56
|
+
export interface MenuNodeRenderingData {
|
|
57
|
+
/**
|
|
58
|
+
* Optional label. Will be rendered as text of the menu item.
|
|
59
|
+
*/
|
|
60
|
+
readonly label?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Icon classes for the menu node. If present, these will produce an icon to the left of the label in browser-style menus.
|
|
63
|
+
*/
|
|
64
|
+
readonly icon?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare const enum CompoundMenuNodeRole {
|
|
67
|
+
/** Indicates that the node should be rendered as submenu that opens a new menu on hover */
|
|
68
|
+
Submenu = 0,
|
|
69
|
+
/** Indicates that the node's children should be rendered as group separated from other items by a separator */
|
|
70
|
+
Group = 1,
|
|
71
|
+
/** Indicates that the node's children should be treated as though they were direct children of the node's parent */
|
|
72
|
+
Flat = 2
|
|
73
|
+
}
|
|
74
|
+
export interface CompoundMenuNode {
|
|
75
|
+
/**
|
|
76
|
+
* Items that are grouped under this menu.
|
|
77
|
+
*/
|
|
78
|
+
readonly children: ReadonlyArray<MenuNode>;
|
|
79
|
+
}
|
|
80
|
+
export declare namespace CompoundMenuNode {
|
|
81
|
+
function is(node: MenuNode): node is MenuNode & CompoundMenuNode;
|
|
82
|
+
function getRole(node: MenuNode): CompoundMenuNodeRole | undefined;
|
|
83
|
+
function sortChildren(m1: MenuNode, m2: MenuNode): number;
|
|
84
|
+
/** Collapses the children of any subemenus with role {@link CompoundMenuNodeRole Flat} and sorts */
|
|
85
|
+
function getFlatChildren(children: ReadonlyArray<MenuNode>): MenuNode[];
|
|
86
|
+
/**
|
|
87
|
+
* Indicates whether the given node is the special `navigation` menu.
|
|
88
|
+
*
|
|
89
|
+
* @param node the menu node to check.
|
|
90
|
+
* @returns `true` when the given node is a {@link CompoundMenuNode} with id `navigation`,
|
|
91
|
+
* `false` otherwise.
|
|
92
|
+
*/
|
|
93
|
+
function isNavigationGroup(node: MenuNode): node is MenuNode & CompoundMenuNode;
|
|
94
|
+
}
|
|
95
|
+
export interface CompoundMenuNodeMetadata {
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated @since 1.28 use `role` instead.
|
|
98
|
+
* Whether the item should be rendered as a submenu.
|
|
99
|
+
*/
|
|
100
|
+
readonly isSubmenu: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* How the node and its children should be rendered. See {@link CompoundMenuNodeRole}.
|
|
103
|
+
*/
|
|
104
|
+
readonly role: CompoundMenuNodeRole;
|
|
105
|
+
}
|
|
106
|
+
export interface CommandMenuNode {
|
|
107
|
+
command: string;
|
|
108
|
+
}
|
|
109
|
+
export declare namespace CommandMenuNode {
|
|
110
|
+
function is(candidate: MenuNode): candidate is MenuNode & CommandMenuNode;
|
|
111
|
+
}
|
|
112
|
+
export interface AlternativeHandlerMenuNode {
|
|
113
|
+
altNode: MenuNodeMetadata & MenuNodeRenderingData & CommandMenuNode;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Base interface of the nodes used in the menu tree structure.
|
|
117
|
+
*/
|
|
118
|
+
export interface MenuNode extends MenuNodeMetadata, MenuNodeRenderingData, Partial<CompoundMenuNode>, Partial<CommandMenuNode>, Partial<CompoundMenuNodeMetadata>, Partial<AlternativeHandlerMenuNode> {
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=menu-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-types.d.ts","sourceRoot":"","sources":["../../../src/common/menu/menu-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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.CommandMenuNode = exports.CompoundMenuNode = exports.ACCOUNTS_SUBMENU = exports.ACCOUNTS_MENU = exports.SETTINGS_MENU = exports.MAIN_MENU_BAR = exports.MenuAction = void 0;
|
|
19
|
+
var MenuAction;
|
|
20
|
+
(function (MenuAction) {
|
|
21
|
+
/* Determine whether object is a MenuAction */
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
function is(arg) {
|
|
24
|
+
return !!arg && arg === Object(arg) && 'commandId' in arg;
|
|
25
|
+
}
|
|
26
|
+
MenuAction.is = is;
|
|
27
|
+
})(MenuAction = exports.MenuAction || (exports.MenuAction = {}));
|
|
28
|
+
exports.MAIN_MENU_BAR = ['menubar'];
|
|
29
|
+
exports.SETTINGS_MENU = ['settings_menu'];
|
|
30
|
+
exports.ACCOUNTS_MENU = ['accounts_menu'];
|
|
31
|
+
exports.ACCOUNTS_SUBMENU = [...exports.ACCOUNTS_MENU, '1_accounts_submenu'];
|
|
32
|
+
var CompoundMenuNode;
|
|
33
|
+
(function (CompoundMenuNode) {
|
|
34
|
+
function is(node) { return Array.isArray(node.children); }
|
|
35
|
+
CompoundMenuNode.is = is;
|
|
36
|
+
function getRole(node) {
|
|
37
|
+
var _a;
|
|
38
|
+
if (!is(node)) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return (_a = node.role) !== null && _a !== void 0 ? _a : (node.label ? 0 /* Submenu */ : 1 /* Group */);
|
|
42
|
+
}
|
|
43
|
+
CompoundMenuNode.getRole = getRole;
|
|
44
|
+
function sortChildren(m1, m2) {
|
|
45
|
+
// The navigation group is special as it will always be sorted to the top/beginning of a menu.
|
|
46
|
+
if (isNavigationGroup(m1)) {
|
|
47
|
+
return -1;
|
|
48
|
+
}
|
|
49
|
+
if (isNavigationGroup(m2)) {
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
return m1.sortString.localeCompare(m2.sortString);
|
|
53
|
+
}
|
|
54
|
+
CompoundMenuNode.sortChildren = sortChildren;
|
|
55
|
+
/** Collapses the children of any subemenus with role {@link CompoundMenuNodeRole Flat} and sorts */
|
|
56
|
+
function getFlatChildren(children) {
|
|
57
|
+
const childrenToMerge = [];
|
|
58
|
+
return children.filter(child => {
|
|
59
|
+
if (getRole(child) === 2 /* Flat */) {
|
|
60
|
+
childrenToMerge.push(child.children);
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}).concat(...childrenToMerge).sort(sortChildren);
|
|
65
|
+
}
|
|
66
|
+
CompoundMenuNode.getFlatChildren = getFlatChildren;
|
|
67
|
+
/**
|
|
68
|
+
* Indicates whether the given node is the special `navigation` menu.
|
|
69
|
+
*
|
|
70
|
+
* @param node the menu node to check.
|
|
71
|
+
* @returns `true` when the given node is a {@link CompoundMenuNode} with id `navigation`,
|
|
72
|
+
* `false` otherwise.
|
|
73
|
+
*/
|
|
74
|
+
function isNavigationGroup(node) {
|
|
75
|
+
return is(node) && node.id === 'navigation';
|
|
76
|
+
}
|
|
77
|
+
CompoundMenuNode.isNavigationGroup = isNavigationGroup;
|
|
78
|
+
})(CompoundMenuNode = exports.CompoundMenuNode || (exports.CompoundMenuNode = {}));
|
|
79
|
+
var CommandMenuNode;
|
|
80
|
+
(function (CommandMenuNode) {
|
|
81
|
+
function is(candidate) { return Boolean(candidate.command); }
|
|
82
|
+
CommandMenuNode.is = is;
|
|
83
|
+
})(CommandMenuNode = exports.CommandMenuNode || (exports.CommandMenuNode = {}));
|
|
84
|
+
//# sourceMappingURL=menu-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-types.js","sourceRoot":"","sources":["../../../src/common/menu/menu-types.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.spec.d.ts","sourceRoot":"","sources":["../../../src/common/menu/menu.spec.ts"],"names":[],"mappings":""}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const command_1 = require("
|
|
19
|
-
const
|
|
18
|
+
const command_1 = require("../command");
|
|
19
|
+
const menu_model_registry_1 = require("./menu-model-registry");
|
|
20
20
|
const chai = require("chai");
|
|
21
21
|
const expect = chai.expect;
|
|
22
22
|
describe('menu-model-registry', () => {
|
|
@@ -64,7 +64,7 @@ describe('menu-model-registry', () => {
|
|
|
64
64
|
function createMenuRegistry(menuContrib, commandContrib) {
|
|
65
65
|
const cmdReg = new command_1.CommandRegistry({ getContributions: () => [commandContrib] });
|
|
66
66
|
cmdReg.onStart();
|
|
67
|
-
const menuReg = new
|
|
67
|
+
const menuReg = new menu_model_registry_1.MenuModelRegistry({ getContributions: () => [menuContrib] }, cmdReg);
|
|
68
68
|
menuReg.onStart();
|
|
69
69
|
return menuReg;
|
|
70
70
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.spec.js","sourceRoot":"","sources":["../../../src/common/menu/menu.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;AAEhF,wCAAkE;AAClE,+DAA4E;AAC5E,6BAA6B;AAG7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAEjC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,kBAAkB,CAAC;gBAC/B,aAAa,CAAC,YAA+B;oBACzC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC/C,YAAY,CAAC,kBAAkB,CAAC,YAAY,EAAE;wBAC1C,SAAS,EAAE,MAAM;qBACpB,CAAC,CAAC;oBACH,YAAY,CAAC,kBAAkB,CAAC,YAAY,EAAE;wBAC1C,SAAS,EAAE,WAAW;qBACzB,CAAC,CAAC;gBACP,CAAC;aACJ,EAAE;gBACC,gBAAgB,CAAC,GAAoB;oBACjC,GAAG,CAAC,eAAe,CAAC;wBAChB,EAAE,EAAE,MAAM;wBACV,KAAK,EAAE,GAAG;qBACb,CAAC,CAAC;oBACH,GAAG,CAAC,eAAe,CAAC;wBAChB,EAAE,EAAE,WAAW;wBACf,KAAK,EAAE,GAAG;qBACb,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAsB,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAsB,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAsB,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5C,iDAAiD;YACjD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,WAA6B,EAAE,cAAmC;IAC1F,MAAM,MAAM,GAAG,IAAI,yBAAe,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,OAAO,GAAG,IAAI,uCAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzF,OAAO,CAAC,OAAO,EAAE,CAAC;IAClB,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -63,22 +63,23 @@ export declare enum ObjectType {
|
|
|
63
63
|
JSON = 0,
|
|
64
64
|
ByteArray = 1,
|
|
65
65
|
ObjectArray = 2,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
Null = 3,
|
|
67
|
+
Undefined = 4,
|
|
68
|
+
Object = 5,
|
|
69
|
+
String = 6,
|
|
70
|
+
Boolean = 7,
|
|
71
|
+
Number = 8,
|
|
72
|
+
ResponseError = 9,
|
|
73
|
+
Error = 10,
|
|
74
|
+
Map = 11,
|
|
75
|
+
Set = 12,
|
|
76
|
+
Function = 13
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
78
79
|
* A value encoder writes javascript values to a write buffer. Encoders will be asked
|
|
79
80
|
* in turn (ordered by their tag value, descending) whether they can encode a given value
|
|
80
81
|
* This means encoders with higher tag values have priority. Since the default encoders
|
|
81
|
-
* have tag values from 1-
|
|
82
|
+
* have tag values from 1-13, they can be easily overridden.
|
|
82
83
|
*/
|
|
83
84
|
export interface ValueEncoder {
|
|
84
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-message-encoder.d.ts","sourceRoot":"","sources":["../../../src/common/message-rpc/rpc-message-encoder.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;;;GAMG;AAEH,oBAAY,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAE/G,0BAAkB,cAAc;IAC5B,OAAO,IAAI;IACX,YAAY,IAAI;IAChB,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,MAAM,IAAI;CACb;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAmB,QAAQ,CAAC,IAAI,EAAE,GAAG;gBAAjD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,GAAG;CAGzE;AAED;;GAEG;AAEH,oBAAY,UAAU;IAClB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,WAAW,IAAI;IACf,SAAS,IAAI;IACb,MAAM,IAAI;IACV,MAAM,IAAI;IACV,OAAO,IAAI;IACX,MAAM,IAAI;IAEV,aAAa,IAAI;IACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"rpc-message-encoder.d.ts","sourceRoot":"","sources":["../../../src/common/message-rpc/rpc-message-encoder.ts"],"names":[],"mappings":"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"}
|