@theia/core 1.61.0 → 1.62.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.
Files changed (244) hide show
  1. package/README.md +7 -7
  2. package/i18n/nls.cs.json +158 -13
  3. package/i18n/nls.de.json +158 -13
  4. package/i18n/nls.es.json +158 -13
  5. package/i18n/nls.fr.json +158 -13
  6. package/i18n/nls.hu.json +158 -13
  7. package/i18n/nls.it.json +158 -13
  8. package/i18n/nls.ja.json +158 -13
  9. package/i18n/nls.json +159 -14
  10. package/i18n/nls.ko.json +158 -13
  11. package/i18n/nls.pl.json +158 -13
  12. package/i18n/nls.pt-br.json +158 -13
  13. package/i18n/nls.ru.json +158 -13
  14. package/i18n/nls.tr.json +158 -13
  15. package/i18n/nls.zh-cn.json +158 -13
  16. package/i18n/nls.zh-tw.json +158 -13
  17. package/lib/browser/catalog.json +197 -33
  18. package/lib/browser/common-frontend-contribution.d.ts +1 -1
  19. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  20. package/lib/browser/common-frontend-contribution.js +13 -11
  21. package/lib/browser/common-frontend-contribution.js.map +1 -1
  22. package/lib/browser/context-menu-renderer.d.ts +14 -3
  23. package/lib/browser/context-menu-renderer.d.ts.map +1 -1
  24. package/lib/browser/context-menu-renderer.js +23 -1
  25. package/lib/browser/context-menu-renderer.js.map +1 -1
  26. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  27. package/lib/browser/frontend-application-module.js +1 -3
  28. package/lib/browser/frontend-application-module.js.map +1 -1
  29. package/lib/browser/hover-service.d.ts.map +1 -1
  30. package/lib/browser/hover-service.js +7 -0
  31. package/lib/browser/hover-service.js.map +1 -1
  32. package/lib/browser/menu/action-menu-node.d.ts +36 -0
  33. package/lib/browser/menu/action-menu-node.d.ts.map +1 -0
  34. package/lib/browser/menu/action-menu-node.js +113 -0
  35. package/lib/browser/menu/action-menu-node.js.map +1 -0
  36. package/lib/browser/menu/browser-context-menu-renderer.d.ts +12 -4
  37. package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
  38. package/lib/browser/menu/browser-context-menu-renderer.js +12 -13
  39. package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
  40. package/lib/browser/menu/browser-menu-module.d.ts.map +1 -1
  41. package/lib/browser/menu/browser-menu-module.js +4 -0
  42. package/lib/browser/menu/browser-menu-module.js.map +1 -1
  43. package/lib/browser/menu/browser-menu-node-factory.d.ts +13 -0
  44. package/lib/browser/menu/browser-menu-node-factory.d.ts.map +1 -0
  45. package/lib/browser/menu/browser-menu-node-factory.js +54 -0
  46. package/lib/browser/menu/browser-menu-node-factory.js.map +1 -0
  47. package/lib/browser/menu/browser-menu-plugin.d.ts +12 -30
  48. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  49. package/lib/browser/menu/browser-menu-plugin.js +78 -159
  50. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  51. package/lib/browser/menu/composite-menu-node.d.ts +49 -0
  52. package/lib/browser/menu/composite-menu-node.d.ts.map +1 -0
  53. package/lib/browser/menu/composite-menu-node.js +127 -0
  54. package/lib/browser/menu/composite-menu-node.js.map +1 -0
  55. package/lib/browser/menu/menu.spec.d.ts.map +1 -0
  56. package/lib/{common → browser}/menu/menu.spec.js +38 -13
  57. package/lib/browser/menu/menu.spec.js.map +1 -0
  58. package/lib/browser/open-with-service.d.ts +1 -1
  59. package/lib/browser/saveable-service.d.ts.map +1 -1
  60. package/lib/browser/saveable-service.js +6 -1
  61. package/lib/browser/saveable-service.js.map +1 -1
  62. package/lib/browser/shell/application-shell.d.ts +7 -5
  63. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  64. package/lib/browser/shell/application-shell.js +82 -28
  65. package/lib/browser/shell/application-shell.js.map +1 -1
  66. package/lib/browser/shell/index.d.ts +1 -0
  67. package/lib/browser/shell/index.d.ts.map +1 -1
  68. package/lib/browser/shell/index.js +1 -0
  69. package/lib/browser/shell/index.js.map +1 -1
  70. package/lib/browser/shell/sidebar-bottom-menu-widget.d.ts.map +1 -1
  71. package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -1
  72. package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
  73. package/lib/browser/shell/sidebar-menu-widget.d.ts +4 -1
  74. package/lib/browser/shell/sidebar-menu-widget.d.ts.map +1 -1
  75. package/lib/browser/shell/sidebar-menu-widget.js +14 -1
  76. package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
  77. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +66 -8
  78. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
  79. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +161 -8
  80. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  81. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +18 -32
  82. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
  83. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +52 -88
  84. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  85. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +17 -21
  86. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
  87. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +9 -9
  88. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
  89. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +7 -39
  90. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
  91. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +30 -238
  92. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  93. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +13 -13
  94. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
  95. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +56 -0
  96. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -0
  97. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js +208 -0
  98. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js.map +1 -0
  99. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  100. package/lib/browser/shell/tab-bars.js +2 -1
  101. package/lib/browser/shell/tab-bars.js.map +1 -1
  102. package/lib/browser/shell/theia-dock-panel.d.ts +4 -10
  103. package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
  104. package/lib/browser/shell/theia-dock-panel.js +7 -84
  105. package/lib/browser/shell/theia-dock-panel.js.map +1 -1
  106. package/lib/browser/shell/theia-split-panel.d.ts +6 -0
  107. package/lib/browser/shell/theia-split-panel.d.ts.map +1 -0
  108. package/lib/browser/shell/theia-split-panel.js +56 -0
  109. package/lib/browser/shell/theia-split-panel.js.map +1 -0
  110. package/lib/browser/tree/tree-widget.d.ts +1 -0
  111. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  112. package/lib/browser/tree/tree-widget.js +6 -0
  113. package/lib/browser/tree/tree-widget.js.map +1 -1
  114. package/lib/browser/view-container.d.ts +6 -3
  115. package/lib/browser/view-container.d.ts.map +1 -1
  116. package/lib/browser/view-container.js +36 -26
  117. package/lib/browser/view-container.js.map +1 -1
  118. package/lib/browser/window/default-secondary-window-service.d.ts +1 -0
  119. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  120. package/lib/browser/window/default-secondary-window-service.js +3 -0
  121. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  122. package/lib/common/listener.d.ts +21 -0
  123. package/lib/common/listener.d.ts.map +1 -0
  124. package/lib/common/listener.js +81 -0
  125. package/lib/common/listener.js.map +1 -0
  126. package/lib/common/listener.spec.d.ts +2 -0
  127. package/lib/common/listener.spec.d.ts.map +1 -0
  128. package/lib/common/listener.spec.js +255 -0
  129. package/lib/common/listener.spec.js.map +1 -0
  130. package/lib/common/menu/index.d.ts +2 -3
  131. package/lib/common/menu/index.d.ts.map +1 -1
  132. package/lib/common/menu/index.js +2 -3
  133. package/lib/common/menu/index.js.map +1 -1
  134. package/lib/common/menu/menu-model-registry.d.ts +37 -50
  135. package/lib/common/menu/menu-model-registry.d.ts.map +1 -1
  136. package/lib/common/menu/menu-model-registry.js +176 -225
  137. package/lib/common/menu/menu-model-registry.js.map +1 -1
  138. package/lib/common/menu/menu-types.d.ts +58 -96
  139. package/lib/common/menu/menu-types.d.ts.map +1 -1
  140. package/lib/common/menu/menu-types.js +43 -39
  141. package/lib/common/menu/menu-types.js.map +1 -1
  142. package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
  143. package/lib/common/messaging/proxy-factory.js +4 -0
  144. package/lib/common/messaging/proxy-factory.js.map +1 -1
  145. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +15 -5
  146. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
  147. package/lib/electron-browser/menu/electron-context-menu-renderer.js +21 -14
  148. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  149. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +4 -16
  150. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
  151. package/lib/electron-browser/menu/electron-main-menu-factory.js +84 -104
  152. package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
  153. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  154. package/lib/electron-browser/menu/electron-menu-contribution.js +1 -4
  155. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  156. package/lib/electron-browser/menu/electron-menu-module.d.ts.map +1 -1
  157. package/lib/electron-browser/menu/electron-menu-module.js +5 -0
  158. package/lib/electron-browser/menu/electron-menu-module.js.map +1 -1
  159. package/lib/electron-browser/window/electron-secondary-window-service.d.ts +1 -0
  160. package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
  161. package/lib/electron-browser/window/electron-secondary-window-service.js +20 -0
  162. package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
  163. package/lib/electron-browser/window/electron-window-service.d.ts +3 -0
  164. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  165. package/lib/electron-browser/window/electron-window-service.js +10 -1
  166. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  167. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  168. package/lib/electron-main/theia-electron-window.js +2 -0
  169. package/lib/electron-main/theia-electron-window.js.map +1 -1
  170. package/package.json +7 -8
  171. package/src/browser/common-frontend-contribution.ts +14 -14
  172. package/src/browser/context-menu-renderer.ts +33 -5
  173. package/src/browser/frontend-application-module.ts +1 -7
  174. package/src/browser/hover-service.ts +7 -0
  175. package/src/browser/menu/action-menu-node.ts +128 -0
  176. package/src/browser/menu/browser-context-menu-renderer.ts +18 -11
  177. package/src/browser/menu/browser-menu-module.ts +4 -0
  178. package/src/browser/menu/browser-menu-node-factory.ts +48 -0
  179. package/src/browser/menu/browser-menu-plugin.ts +80 -168
  180. package/src/browser/menu/composite-menu-node.ts +140 -0
  181. package/src/{common → browser}/menu/menu.spec.ts +47 -15
  182. package/src/browser/open-with-service.ts +1 -1
  183. package/src/browser/saveable-service.ts +6 -1
  184. package/src/browser/shell/application-shell.ts +91 -29
  185. package/src/browser/shell/index.ts +1 -0
  186. package/src/browser/shell/sidebar-bottom-menu-widget.tsx +2 -1
  187. package/src/browser/shell/sidebar-menu-widget.tsx +12 -2
  188. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +239 -0
  189. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +59 -102
  190. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +14 -23
  191. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +14 -14
  192. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +34 -261
  193. package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +251 -0
  194. package/src/browser/shell/tab-bars.ts +2 -1
  195. package/src/browser/shell/theia-dock-panel.ts +10 -91
  196. package/src/browser/shell/theia-split-panel.ts +56 -0
  197. package/src/browser/style/hover-service.css +6 -1
  198. package/src/browser/style/index.css +3 -11
  199. package/src/browser/style/view-container.css +17 -31
  200. package/src/browser/tree/tree-widget.tsx +7 -0
  201. package/src/browser/view-container.ts +51 -30
  202. package/src/browser/window/default-secondary-window-service.ts +4 -0
  203. package/src/common/listener.spec.ts +315 -0
  204. package/src/common/listener.ts +88 -0
  205. package/src/common/menu/index.ts +2 -3
  206. package/src/common/menu/menu-model-registry.ts +187 -230
  207. package/src/common/menu/menu-types.ts +82 -128
  208. package/src/common/messaging/proxy-factory.ts +4 -1
  209. package/src/electron-browser/menu/electron-context-menu-renderer.ts +29 -13
  210. package/src/electron-browser/menu/electron-main-menu-factory.ts +92 -116
  211. package/src/electron-browser/menu/electron-menu-contribution.ts +1 -4
  212. package/src/electron-browser/menu/electron-menu-module.ts +6 -1
  213. package/src/electron-browser/window/electron-secondary-window-service.ts +22 -0
  214. package/src/electron-browser/window/electron-window-service.ts +11 -1
  215. package/src/electron-main/theia-electron-window.ts +2 -0
  216. package/lib/common/menu/action-menu-node.d.ts +0 -20
  217. package/lib/common/menu/action-menu-node.d.ts.map +0 -1
  218. package/lib/common/menu/action-menu-node.js +0 -57
  219. package/lib/common/menu/action-menu-node.js.map +0 -1
  220. package/lib/common/menu/composite-menu-node.d.ts +0 -47
  221. package/lib/common/menu/composite-menu-node.d.ts.map +0 -1
  222. package/lib/common/menu/composite-menu-node.js +0 -96
  223. package/lib/common/menu/composite-menu-node.js.map +0 -1
  224. package/lib/common/menu/composite-menu-node.spec.d.ts +0 -2
  225. package/lib/common/menu/composite-menu-node.spec.d.ts.map +0 -1
  226. package/lib/common/menu/composite-menu-node.spec.js +0 -68
  227. package/lib/common/menu/composite-menu-node.spec.js.map +0 -1
  228. package/lib/common/menu/menu-adapter.d.ts +0 -36
  229. package/lib/common/menu/menu-adapter.d.ts.map +0 -1
  230. package/lib/common/menu/menu-adapter.js +0 -93
  231. package/lib/common/menu/menu-adapter.js.map +0 -1
  232. package/lib/common/menu/menu.spec.d.ts.map +0 -1
  233. package/lib/common/menu/menu.spec.js.map +0 -1
  234. package/lib/common/test/mock-menu.d.ts +0 -8
  235. package/lib/common/test/mock-menu.d.ts.map +0 -1
  236. package/lib/common/test/mock-menu.js +0 -35
  237. package/lib/common/test/mock-menu.js.map +0 -1
  238. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +0 -31
  239. package/src/common/menu/action-menu-node.ts +0 -65
  240. package/src/common/menu/composite-menu-node.spec.ts +0 -67
  241. package/src/common/menu/composite-menu-node.ts +0 -116
  242. package/src/common/menu/menu-adapter.ts +0 -103
  243. package/src/common/test/mock-menu.ts +0 -35
  244. /package/lib/{common → browser}/menu/menu.spec.d.ts +0 -0
@@ -14,17 +14,16 @@
14
14
  //
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
+ var MenuModelRegistry_1;
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.MenuModelRegistry = exports.StructuralMenuChange = exports.ChangeKind = exports.MenuContribution = void 0;
19
+ exports.MenuModelRegistry = exports.MenuNodeFactory = exports.StructuralMenuChange = exports.ChangeKind = exports.MenuContribution = void 0;
19
20
  const tslib_1 = require("tslib");
20
21
  const inversify_1 = require("inversify");
21
- const command_1 = require("../command");
22
+ const menu_types_1 = require("./menu-types");
22
23
  const contribution_provider_1 = require("../contribution-provider");
23
- const disposable_1 = require("../disposable");
24
+ const command_1 = require("../command");
24
25
  const event_1 = require("../event");
25
- const action_menu_node_1 = require("./action-menu-node");
26
- const composite_menu_node_1 = require("./composite-menu-node");
27
- const menu_types_1 = require("./menu-types");
26
+ const disposable_1 = require("../disposable");
28
27
  exports.MenuContribution = Symbol('MenuContribution');
29
28
  var ChangeKind;
30
29
  (function (ChangeKind) {
@@ -40,22 +39,24 @@ var StructuralMenuChange;
40
39
  }
41
40
  StructuralMenuChange.is = is;
42
41
  })(StructuralMenuChange || (exports.StructuralMenuChange = StructuralMenuChange = {}));
42
+ exports.MenuNodeFactory = Symbol('MenuNodeFactory');
43
43
  /**
44
44
  * The MenuModelRegistry allows to register and unregister menus, submenus and actions
45
45
  * via strings and {@link MenuAction}s without the need to access the underlying UI
46
46
  * representation.
47
47
  */
48
- let MenuModelRegistry = class MenuModelRegistry {
49
- get onDidChange() {
50
- return this.onDidChangeEmitter.event;
51
- }
52
- constructor(contributions, commands) {
48
+ let MenuModelRegistry = MenuModelRegistry_1 = class MenuModelRegistry {
49
+ constructor(contributions, commands, menuNodeFactory) {
53
50
  this.contributions = contributions;
54
51
  this.commands = commands;
55
- this.root = new composite_menu_node_1.CompositeMenuNode('');
56
- this.independentSubmenus = new Map();
52
+ this.menuNodeFactory = menuNodeFactory;
57
53
  this.onDidChangeEmitter = new event_1.Emitter();
58
54
  this.isReady = false;
55
+ this.root = this.menuNodeFactory.createGroup('root', 'root');
56
+ this.root.addNode(this.menuNodeFactory.createGroup(menu_types_1.MAIN_MENU_BAR[0]));
57
+ }
58
+ get onDidChange() {
59
+ return this.onDidChangeEmitter.event;
59
60
  }
60
61
  onStart() {
61
62
  for (const contrib of this.contributions.getContributions()) {
@@ -68,47 +69,46 @@ let MenuModelRegistry = class MenuModelRegistry {
68
69
  *
69
70
  * @returns a disposable which, when called, will remove the menu action again.
70
71
  */
71
- registerMenuAction(menuPath, item) {
72
- const menuNode = new action_menu_node_1.ActionMenuNode(item, this.commands);
73
- return this.registerMenuNode(menuPath, menuNode);
74
- }
75
- /**
76
- * Adds the given menu node to the menu denoted by the given path.
77
- *
78
- * @returns a disposable which, when called, will remove the menu node again.
79
- */
80
- registerMenuNode(menuPath, menuNode, group) {
81
- const parent = this.getMenuNode(menuPath, group);
82
- const disposable = parent.addNode(menuNode);
83
- const parentPath = this.getParentPath(menuPath, group);
84
- this.fireChangeEvent({
85
- kind: ChangeKind.ADDED,
86
- path: parentPath,
87
- affectedChildId: menuNode.id
88
- });
89
- return this.changeEventOnDispose(parentPath, menuNode.id, disposable);
90
- }
91
- getParentPath(menuPath, group) {
92
- if (typeof menuPath === 'string') {
93
- return group ? [menuPath, group] : [menuPath];
72
+ registerCommandMenu(menuPath, item) {
73
+ const parent = this.root.getOrCreate(menuPath, 0, menuPath.length);
74
+ const existing = parent.children.find(node => node.id === menuPath[menuPath.length - 1]);
75
+ if (existing) {
76
+ throw new Error(`A menu node with path ${JSON.stringify(menuPath)} already exists`);
94
77
  }
95
78
  else {
96
- return group ? menuPath.concat(group) : menuPath;
79
+ parent.addNode(item);
80
+ return disposable_1.Disposable.create(() => {
81
+ parent.removeNode(item);
82
+ this.fireChangeEvent({
83
+ kind: ChangeKind.REMOVED,
84
+ path: menuPath.slice(0, menuPath.length - 1),
85
+ affectedChildId: item.id
86
+ });
87
+ });
97
88
  }
98
89
  }
99
- getMenuNode(menuPath, group) {
100
- if (typeof menuPath === 'string') {
101
- const target = this.independentSubmenus.get(menuPath);
102
- if (!target) {
103
- throw new Error(`Could not find submenu with id ${menuPath}`);
104
- }
105
- if (group) {
106
- return this.findSubMenu(target, group);
107
- }
108
- return target;
90
+ /**
91
+ * Adds the given menu action to the menu denoted by the given path.
92
+ *
93
+ * @returns a disposable which, when called, will remove the menu action again.
94
+ */
95
+ registerMenuAction(menuPath, item) {
96
+ const parent = this.root.getOrCreate(menuPath, 0, menuPath.length);
97
+ const existing = parent.children.find(node => node.id === item.commandId);
98
+ if (existing) {
99
+ throw new Error(`A menu node with id ${item.commandId} in path ${JSON.stringify(menuPath)} already exists`);
109
100
  }
110
101
  else {
111
- return this.findGroup(group ? menuPath.concat(group) : menuPath);
102
+ const node = this.menuNodeFactory.createCommandMenu(item);
103
+ parent.addNode(node);
104
+ return disposable_1.Disposable.create(() => {
105
+ parent.removeNode(node);
106
+ this.fireChangeEvent({
107
+ kind: ChangeKind.REMOVED,
108
+ path: menuPath.slice(0, menuPath.length - 1),
109
+ affectedChildId: node.id
110
+ });
111
+ });
112
112
  }
113
113
  }
114
114
  /**
@@ -126,147 +126,128 @@ let MenuModelRegistry = class MenuModelRegistry {
126
126
  * Note that if the menu already existed and was registered with a different label an error
127
127
  * will be thrown.
128
128
  */
129
- registerSubmenu(menuPath, label, options) {
130
- if (menuPath.length === 0) {
131
- throw new Error('The sub menu path cannot be empty.');
132
- }
133
- const index = menuPath.length - 1;
134
- const menuId = menuPath[index];
135
- const groupPath = index === 0 ? [] : menuPath.slice(0, index);
136
- const parent = this.findGroup(groupPath, options);
137
- let groupNode = this.findSubMenu(parent, menuId, options);
138
- let disposable = disposable_1.Disposable.NULL;
139
- if (!groupNode) {
140
- groupNode = new composite_menu_node_1.CompositeMenuNode(menuId, label, options, parent);
141
- disposable = this.changeEventOnDispose(groupPath, menuId, parent.addNode(groupNode));
129
+ registerSubmenu(menuPath, label, options = {}) {
130
+ const { contextKeyOverlay, sortString, icon, when } = options;
131
+ const parent = this.root.getOrCreate(menuPath, 0, menuPath.length - 1);
132
+ const existing = parent.children.find(node => node.id === menuPath[menuPath.length - 1]);
133
+ if (menu_types_1.Group.is(existing)) {
134
+ parent.removeNode(existing);
135
+ const newMenu = this.menuNodeFactory.createSubmenu(menuPath[menuPath.length - 1], label, contextKeyOverlay, sortString, icon, when);
136
+ newMenu.addNode(...existing.children);
137
+ parent.addNode(newMenu);
142
138
  this.fireChangeEvent({
143
- kind: ChangeKind.ADDED,
144
- path: groupPath,
145
- affectedChildId: menuId
139
+ kind: ChangeKind.CHANGED,
140
+ path: menuPath
141
+ });
142
+ return disposable_1.Disposable.create(() => {
143
+ parent.removeNode(newMenu);
144
+ this.fireChangeEvent({
145
+ kind: ChangeKind.REMOVED,
146
+ path: menuPath.slice(0, menuPath.length - 1),
147
+ affectedChildId: newMenu.id
148
+ });
146
149
  });
147
150
  }
148
151
  else {
152
+ const newMenu = this.menuNodeFactory.createSubmenu(menuPath[menuPath.length - 1], label, contextKeyOverlay, sortString, icon, when);
153
+ parent.addNode(newMenu);
149
154
  this.fireChangeEvent({
150
- kind: ChangeKind.CHANGED,
151
- path: groupPath,
155
+ kind: ChangeKind.ADDED,
156
+ path: menuPath.slice(0, menuPath.length - 1),
157
+ affectedChildId: newMenu.id
158
+ });
159
+ return disposable_1.Disposable.create(() => {
160
+ parent.removeNode(newMenu);
161
+ this.fireChangeEvent({
162
+ kind: ChangeKind.REMOVED,
163
+ path: menuPath.slice(0, menuPath.length - 1),
164
+ affectedChildId: newMenu.id
165
+ });
152
166
  });
153
- groupNode.updateOptions({ ...options, label });
154
167
  }
155
- return disposable;
156
168
  }
157
- registerIndependentSubmenu(id, label, options) {
158
- if (this.independentSubmenus.has(id)) {
159
- console.debug(`Independent submenu with path ${id} registered, but given ID already exists.`);
169
+ linkCompoundMenuNode(params) {
170
+ const { newParentPath, submenuPath, order, when } = params;
171
+ // add a wrapper here
172
+ let i = 0;
173
+ while (i < newParentPath.length && i < submenuPath.length && newParentPath[i] === submenuPath[i]) {
174
+ i++;
160
175
  }
161
- this.independentSubmenus.set(id, new composite_menu_node_1.CompositeMenuNode(id, label, options));
162
- return this.changeEventOnDispose([], id, disposable_1.Disposable.create(() => this.independentSubmenus.delete(id)));
163
- }
164
- linkSubmenu(parentPath, childId, options, group) {
165
- const child = this.getMenuNode(childId);
166
- const parent = this.getMenuNode(parentPath, group);
167
- const affectedPath = this.getParentPath(parentPath, group);
168
- const isRecursive = (node, childNode) => {
169
- if (node.id === childNode.id) {
170
- return true;
171
- }
172
- if (node.parent) {
173
- return isRecursive(node.parent, childNode);
174
- }
175
- return false;
176
- };
177
- // check for menu contribution recursion
178
- if (isRecursive(parent, child)) {
179
- console.warn(`Recursive menu contribution detected: ${child.id} is already in hierarchy of ${parent.id}.`);
180
- return disposable_1.Disposable.NULL;
176
+ if (i === newParentPath.length || i === submenuPath.length) {
177
+ throw new Error(`trying to recursively link ${JSON.stringify(submenuPath)} into ${JSON.stringify(newParentPath)}`);
181
178
  }
182
- const wrapper = new composite_menu_node_1.CompositeMenuNodeWrapper(child, parent, options);
183
- const disposable = parent.addNode(wrapper);
184
- this.fireChangeEvent({
185
- kind: ChangeKind.LINKED,
186
- path: affectedPath,
187
- affectedChildId: child.id
188
- });
189
- return this.changeEventOnDispose(affectedPath, child.id, disposable);
190
- }
191
- unregisterMenuAction(itemOrCommandOrId, menuPath) {
192
- const id = menu_types_1.MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
193
- : command_1.Command.is(itemOrCommandOrId) ? itemOrCommandOrId.id
194
- : itemOrCommandOrId;
195
- if (menuPath) {
196
- const parent = this.findGroup(menuPath);
197
- parent.removeNode(id);
179
+ const child = this.getMenu(submenuPath);
180
+ if (!child) {
181
+ throw new Error(`Not a menu node: ${JSON.stringify(submenuPath)}`);
182
+ }
183
+ const newParent = this.root.getOrCreate(newParentPath, 0, newParentPath.length);
184
+ if (menu_types_1.MutableCompoundMenuNode.is(newParent)) {
185
+ const link = this.menuNodeFactory.createSubmenuLink(child, order, when);
186
+ newParent.addNode(link);
198
187
  this.fireChangeEvent({
199
- kind: ChangeKind.REMOVED,
200
- path: menuPath,
201
- affectedChildId: id
188
+ kind: ChangeKind.LINKED,
189
+ path: newParentPath,
190
+ affectedChildId: child.id
191
+ });
192
+ return disposable_1.Disposable.create(() => {
193
+ newParent.removeNode(link);
194
+ this.fireChangeEvent({
195
+ kind: ChangeKind.REMOVED,
196
+ path: newParentPath,
197
+ affectedChildId: child.id
198
+ });
202
199
  });
203
200
  }
204
201
  else {
205
- this.unregisterMenuNode(id);
202
+ throw new Error(`Not a compound menu node: ${JSON.stringify(newParentPath)}`);
206
203
  }
207
204
  }
208
- /**
209
- * Recurse all menus, removing any menus matching the `id`.
210
- *
211
- * @param id technical identifier of the `MenuNode`.
212
- */
213
- unregisterMenuNode(id) {
214
- const parentPath = [];
215
- const recurse = (root) => {
216
- root.children.forEach(node => {
217
- if (menu_types_1.CompoundMenuNode.isMutable(node)) {
218
- if (node.removeNode(id)) {
219
- this.fireChangeEvent({
220
- kind: ChangeKind.REMOVED,
221
- path: parentPath,
222
- affectedChildId: id
223
- });
224
- }
225
- parentPath.push(node.id);
226
- recurse(node);
227
- parentPath.pop();
228
- }
229
- });
230
- };
231
- recurse(this.root);
205
+ unregisterMenuAction(itemOrCommandOrId, menuPath = []) {
206
+ const id = menu_types_1.MenuAction.is(itemOrCommandOrId) ? itemOrCommandOrId.commandId
207
+ : command_1.Command.is(itemOrCommandOrId) ? itemOrCommandOrId.id
208
+ : itemOrCommandOrId;
209
+ const parent = this.findInNode(this.root, menuPath, 0);
210
+ if (parent) {
211
+ this.removeActionInSubtree(parent, id);
212
+ }
232
213
  }
233
- /**
234
- * Finds a submenu as a descendant of the `root` node.
235
- * See {@link MenuModelRegistry.findSubMenu findSubMenu}.
236
- */
237
- findGroup(menuPath, options) {
238
- let currentMenu = this.root;
239
- for (const segment of menuPath) {
240
- currentMenu = this.findSubMenu(currentMenu, segment, options);
214
+ removeActionInSubtree(parent, id) {
215
+ if (menu_types_1.MutableCompoundMenuNode.is(parent) && menu_types_1.CompoundMenuNode.is(parent)) {
216
+ const action = parent.children.find(child => child.id === id);
217
+ if (action) {
218
+ parent.removeNode(action);
219
+ }
220
+ parent.children.forEach(child => this.removeActionInSubtree(child, id));
241
221
  }
242
- return currentMenu;
243
222
  }
244
- /**
245
- * Finds or creates a submenu as an immediate child of `current`.
246
- * @throws if a node with the given `menuId` exists but is not a {@link MutableCompoundMenuNode}.
247
- */
248
- findSubMenu(current, menuId, options) {
249
- const sub = current.children.find(e => e.id === menuId);
250
- if (menu_types_1.CompoundMenuNode.isMutable(sub)) {
251
- return sub;
223
+ findInNode(root, menuPath, pathIndex) {
224
+ if (pathIndex === menuPath.length) {
225
+ return root;
252
226
  }
253
- if (sub) {
254
- throw new Error(`'${menuId}' is not a menu group.`);
227
+ const child = root.children.find(c => c.id === menuPath[pathIndex]);
228
+ if (menu_types_1.CompoundMenuNode.is(child)) {
229
+ return this.findInNode(child, menuPath, pathIndex + 1);
255
230
  }
256
- const newSub = new composite_menu_node_1.CompositeMenuNode(menuId, undefined, options, current);
257
- current.addNode(newSub);
258
- return newSub;
231
+ return undefined;
259
232
  }
260
- /**
261
- * Returns the menu at the given path.
262
- *
263
- * @param menuPath the path specifying the menu to return. If not given the empty path will be used.
264
- *
265
- * @returns the root menu when `menuPath` is empty. If `menuPath` is not empty the specified menu is
266
- * returned if it exists, otherwise an error is thrown.
267
- */
268
- getMenu(menuPath = []) {
269
- return this.findGroup(menuPath);
233
+ getMenuNode(menuPath) {
234
+ return this.findInNode(this.root, menuPath, 0);
235
+ }
236
+ getMenu(menuPath) {
237
+ const node = this.getMenuNode(menuPath);
238
+ if (!menu_types_1.CompoundMenuNode.is(node)) {
239
+ throw new Error(`not a compound menu node: ${JSON.stringify(menuPath)}`);
240
+ }
241
+ return node;
242
+ }
243
+ static removeSingleRootNodes(fullMenuModel) {
244
+ let current = fullMenuModel;
245
+ let previous = undefined;
246
+ while (current !== previous) {
247
+ previous = current;
248
+ current = this.removeSingleRootNode(current);
249
+ }
250
+ return current;
270
251
  }
271
252
  /**
272
253
  * Checks the given menu model whether it will show a menu with a single submenu.
@@ -276,84 +257,54 @@ let MenuModelRegistry = class MenuModelRegistry {
276
257
  * @returns if the menu will show a single submenu this returns a menu that will show the child elements of the submenu,
277
258
  * otherwise the given `fullMenuModel` is return
278
259
  */
279
- removeSingleRootNode(fullMenuModel, menuPath) {
280
- // check whether all children are compound menus and that there is only one child that has further children
281
- if (!this.allChildrenCompound(fullMenuModel.children)) {
282
- return fullMenuModel;
283
- }
284
- let nonEmptyNode = undefined;
260
+ static removeSingleRootNode(fullMenuModel) {
261
+ let singleChild = undefined;
285
262
  for (const child of fullMenuModel.children) {
286
- if (!this.isEmpty(child.children || [])) {
287
- if (nonEmptyNode === undefined) {
288
- nonEmptyNode = child;
289
- }
290
- else {
291
- return fullMenuModel;
263
+ if (menu_types_1.CompoundMenuNode.is(child)) {
264
+ if (!MenuModelRegistry_1.isEmpty(child)) {
265
+ if (singleChild) {
266
+ return fullMenuModel;
267
+ }
268
+ else {
269
+ singleChild = child;
270
+ }
292
271
  }
293
272
  }
273
+ else {
274
+ return fullMenuModel;
275
+ }
294
276
  }
295
- if (menu_types_1.CompoundMenuNode.is(nonEmptyNode) && nonEmptyNode.children.length === 1 && menu_types_1.CompoundMenuNode.is(nonEmptyNode.children[0])) {
296
- nonEmptyNode = nonEmptyNode.children[0];
297
- }
298
- return menu_types_1.CompoundMenuNode.is(nonEmptyNode) ? nonEmptyNode : fullMenuModel;
277
+ return singleChild || fullMenuModel;
299
278
  }
300
- allChildrenCompound(children) {
301
- return children.every(menu_types_1.CompoundMenuNode.is);
302
- }
303
- isEmpty(children) {
304
- if (children.length === 0) {
305
- return true;
279
+ static isEmpty(node) {
280
+ if (menu_types_1.CompoundMenuNode.is(node)) {
281
+ if (node.children.length === 0) {
282
+ return true;
283
+ }
284
+ for (const child of node.children) {
285
+ if (!MenuModelRegistry_1.isEmpty(child)) {
286
+ return false;
287
+ }
288
+ }
306
289
  }
307
- if (!this.allChildrenCompound(children)) {
290
+ else {
308
291
  return false;
309
292
  }
310
- for (const child of children) {
311
- if (!this.isEmpty(child.children || [])) {
312
- return false;
313
- }
314
- }
315
293
  return true;
316
294
  }
317
- changeEventOnDispose(path, id, disposable) {
318
- return disposable_1.Disposable.create(() => {
319
- disposable.dispose();
320
- this.fireChangeEvent({
321
- path,
322
- affectedChildId: id,
323
- kind: ChangeKind.REMOVED
324
- });
325
- });
326
- }
327
295
  fireChangeEvent(evt) {
328
296
  if (this.isReady) {
329
297
  this.onDidChangeEmitter.fire(evt);
330
298
  }
331
299
  }
332
- /**
333
- * Returns the {@link MenuPath path} at which a given menu node can be accessed from this registry, if it can be determined.
334
- * Returns `undefined` if the `parent` of any node in the chain is unknown.
335
- */
336
- getPath(node) {
337
- const identifiers = [];
338
- const visited = [];
339
- let next = node;
340
- while (next && !visited.includes(next)) {
341
- if (next === this.root) {
342
- return identifiers.reverse();
343
- }
344
- visited.push(next);
345
- identifiers.push(next.id);
346
- next = next.parent;
347
- }
348
- return undefined;
349
- }
350
300
  };
351
301
  exports.MenuModelRegistry = MenuModelRegistry;
352
- exports.MenuModelRegistry = MenuModelRegistry = tslib_1.__decorate([
302
+ exports.MenuModelRegistry = MenuModelRegistry = MenuModelRegistry_1 = tslib_1.__decorate([
353
303
  (0, inversify_1.injectable)(),
354
304
  tslib_1.__param(0, (0, inversify_1.inject)(contribution_provider_1.ContributionProvider)),
355
305
  tslib_1.__param(0, (0, inversify_1.named)(exports.MenuContribution)),
356
306
  tslib_1.__param(1, (0, inversify_1.inject)(command_1.CommandRegistry)),
357
- tslib_1.__metadata("design:paramtypes", [Object, command_1.CommandRegistry])
307
+ tslib_1.__param(2, (0, inversify_1.inject)(exports.MenuNodeFactory)),
308
+ tslib_1.__metadata("design:paramtypes", [Object, command_1.CommandRegistry, Object])
358
309
  ], MenuModelRegistry);
359
310
  //# sourceMappingURL=menu-model-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-model-registry.js","sourceRoot":"","sources":["../../../src/common/menu/menu-model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu-model-registry.js","sourceRoot":"","sources":["../../../src/common/menu/menu-model-registry.ts"],"names":[],"mappings":"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"}