@theia/terminal-manager 1.67.0-next.86

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 (48) hide show
  1. package/README.md +31 -0
  2. package/lib/browser/terminal-manager-frontend-contribution.d.ts +25 -0
  3. package/lib/browser/terminal-manager-frontend-contribution.d.ts.map +1 -0
  4. package/lib/browser/terminal-manager-frontend-contribution.js +173 -0
  5. package/lib/browser/terminal-manager-frontend-contribution.js.map +1 -0
  6. package/lib/browser/terminal-manager-frontend-module.d.ts +5 -0
  7. package/lib/browser/terminal-manager-frontend-module.d.ts.map +1 -0
  8. package/lib/browser/terminal-manager-frontend-module.js +55 -0
  9. package/lib/browser/terminal-manager-frontend-module.js.map +1 -0
  10. package/lib/browser/terminal-manager-frontend-view-contribution.d.ts +27 -0
  11. package/lib/browser/terminal-manager-frontend-view-contribution.d.ts.map +1 -0
  12. package/lib/browser/terminal-manager-frontend-view-contribution.js +278 -0
  13. package/lib/browser/terminal-manager-frontend-view-contribution.js.map +1 -0
  14. package/lib/browser/terminal-manager-preferences.d.ts +12 -0
  15. package/lib/browser/terminal-manager-preferences.d.ts.map +1 -0
  16. package/lib/browser/terminal-manager-preferences.js +42 -0
  17. package/lib/browser/terminal-manager-preferences.js.map +1 -0
  18. package/lib/browser/terminal-manager-tree-model.d.ts +71 -0
  19. package/lib/browser/terminal-manager-tree-model.d.ts.map +1 -0
  20. package/lib/browser/terminal-manager-tree-model.js +299 -0
  21. package/lib/browser/terminal-manager-tree-model.js.map +1 -0
  22. package/lib/browser/terminal-manager-tree-widget.d.ts +40 -0
  23. package/lib/browser/terminal-manager-tree-widget.d.ts.map +1 -0
  24. package/lib/browser/terminal-manager-tree-widget.js +276 -0
  25. package/lib/browser/terminal-manager-tree-widget.js.map +1 -0
  26. package/lib/browser/terminal-manager-types.d.ts +77 -0
  27. package/lib/browser/terminal-manager-types.d.ts.map +1 -0
  28. package/lib/browser/terminal-manager-types.js +117 -0
  29. package/lib/browser/terminal-manager-types.js.map +1 -0
  30. package/lib/browser/terminal-manager-widget.d.ts +108 -0
  31. package/lib/browser/terminal-manager-widget.d.ts.map +1 -0
  32. package/lib/browser/terminal-manager-widget.js +616 -0
  33. package/lib/browser/terminal-manager-widget.js.map +1 -0
  34. package/lib/package.spec.d.ts +1 -0
  35. package/lib/package.spec.d.ts.map +1 -0
  36. package/lib/package.spec.js +26 -0
  37. package/lib/package.spec.js.map +1 -0
  38. package/package.json +40 -0
  39. package/src/browser/terminal-manager-frontend-contribution.ts +164 -0
  40. package/src/browser/terminal-manager-frontend-module.ts +64 -0
  41. package/src/browser/terminal-manager-frontend-view-contribution.ts +309 -0
  42. package/src/browser/terminal-manager-preferences.ts +52 -0
  43. package/src/browser/terminal-manager-tree-model.ts +336 -0
  44. package/src/browser/terminal-manager-tree-widget.tsx +305 -0
  45. package/src/browser/terminal-manager-types.ts +173 -0
  46. package/src/browser/terminal-manager-widget.ts +686 -0
  47. package/src/browser/terminal-manager.css +51 -0
  48. package/src/package.spec.ts +27 -0
@@ -0,0 +1,616 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 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-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var TerminalManagerWidget_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.TerminalManagerWidget = exports.TerminalManagerWidgetState = void 0;
20
+ const tslib_1 = require("tslib");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const core_1 = require("@theia/core");
24
+ const coreutils_1 = require("@theia/core/shared/@lumino/coreutils");
25
+ const terminal_widget_impl_1 = require("@theia/terminal/lib/browser/terminal-widget-impl");
26
+ const frontend_application_state_1 = require("@theia/core/lib/browser/frontend-application-state");
27
+ const terminal_frontend_contribution_1 = require("@theia/terminal/lib/browser/terminal-frontend-contribution");
28
+ const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
29
+ const terminal_manager_types_1 = require("./terminal-manager-types");
30
+ const terminal_manager_tree_widget_1 = require("./terminal-manager-tree-widget");
31
+ const dialogs_1 = require("@theia/core/lib/browser/dialogs");
32
+ var TerminalManagerWidgetState;
33
+ (function (TerminalManagerWidgetState) {
34
+ TerminalManagerWidgetState.isLayoutData = (obj) => typeof obj === 'object' && !!obj && 'type' in obj && obj.type === 'terminal-manager';
35
+ })(TerminalManagerWidgetState || (exports.TerminalManagerWidgetState = TerminalManagerWidgetState = {}));
36
+ let TerminalManagerWidget = TerminalManagerWidget_1 = class TerminalManagerWidget extends browser_1.BaseWidget {
37
+ constructor() {
38
+ super(...arguments);
39
+ this.stateIsSet = false;
40
+ this.pagePanels = new Map();
41
+ this.groupPanels = new Map();
42
+ this.terminalWidgets = new Map();
43
+ this.onDidChangeTrackableWidgetsEmitter = new core_1.Emitter();
44
+ this.onDidChangeTrackableWidgets = this.onDidChangeTrackableWidgetsEmitter.event;
45
+ // serves as an empty container so that different view containers can be swapped out
46
+ this.terminalPanelWrapper = new browser_1.Panel({
47
+ layout: new browser_1.PanelLayout(),
48
+ });
49
+ this.interceptCloseRequest = true;
50
+ this.terminalsDeletingFromClose = new Set();
51
+ }
52
+ static createContainer(parent) {
53
+ const child = parent.createChild();
54
+ child.bind(TerminalManagerWidget_1).toSelf().inSingletonScope();
55
+ return child;
56
+ }
57
+ static createWidget(parent) {
58
+ return TerminalManagerWidget_1.createContainer(parent).getAsync(TerminalManagerWidget_1);
59
+ }
60
+ init() {
61
+ this.title.iconClass = (0, browser_1.codicon)('terminal-tmux');
62
+ this.id = TerminalManagerWidget_1.ID;
63
+ this.title.closable = true;
64
+ this.title.label = TerminalManagerWidget_1.LABEL;
65
+ this.node.tabIndex = 0;
66
+ this.registerListeners();
67
+ this.createPageAndTreeLayout();
68
+ }
69
+ async populateLayout(force) {
70
+ if (!this.stateIsSet || force) {
71
+ const terminalWidget = await this.createTerminalWidget();
72
+ this.addTerminalPage(terminalWidget);
73
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
74
+ this.stateIsSet = true;
75
+ }
76
+ }
77
+ async createTerminalWidget(options = {}) {
78
+ const terminalWidget = await this.terminalFrontendContribution.newTerminal({
79
+ // passing 'created' here as a millisecond value rather than the default `new Date().toString()` that Theia uses in
80
+ // its factory (resolves to something like 'Tue Aug 09 2022 13:21:26 GMT-0500 (Central Daylight Time)').
81
+ // The state restoration system relies on identifying terminals by their unique options, using an ms value ensures we don't
82
+ // get a duplication since the original date method is only accurate to within 1s.
83
+ created: new Date().getTime().toString(),
84
+ ...options,
85
+ });
86
+ terminalWidget.start();
87
+ return terminalWidget;
88
+ }
89
+ registerListeners() {
90
+ this.toDispose.push(this.treeWidget);
91
+ this.toDispose.push(this.treeWidget.model.onDidChangeTreeSelection(changeEvent => this.handleSelectionChange(changeEvent)));
92
+ this.toDispose.push(this.treeWidget.model.onDidAddPage(({ pageId }) => this.handlePageAdded(pageId)));
93
+ this.toDispose.push(this.treeWidget.model.onDidDeletePage(pageId => this.handlePageDeleted(pageId)));
94
+ this.toDispose.push(this.treeWidget.model.onDidAddTerminalGroup(({ groupId, pageId, }) => this.handleTerminalGroupAdded(groupId, pageId)));
95
+ this.toDispose.push(this.treeWidget.model.onDidDeleteTerminalGroup(groupId => this.handleTerminalGroupDeleted(groupId)));
96
+ this.toDispose.push(this.treeWidget.model.onDidAddTerminalToGroup(({ terminalId, groupId, }) => this.handleWidgetAddedToTerminalGroup(terminalId, groupId)));
97
+ this.toDispose.push(this.treeWidget.model.onDidDeleteTerminalFromGroup(({ terminalId, }) => this.handleTerminalDeleted(terminalId)));
98
+ this.toDispose.push(this.treeWidget.model.onDidRenameNode(() => this.handlePageRenamed()));
99
+ this.toDispose.push(this.shell.onDidChangeActiveWidget(({ newValue }) => this.handleOnDidChangeActiveWidget(newValue)));
100
+ this.toDispose.push(this.terminalManagerPreferences.onPreferenceChanged(() => this.resolveMainLayout()));
101
+ }
102
+ handlePageRenamed() {
103
+ this.update();
104
+ }
105
+ setPanelSizes({ terminal, tree } = { terminal: .6, tree: .2 }) {
106
+ const treeViewLocation = this.terminalManagerPreferences.get('terminal.grouping.treeViewLocation');
107
+ const panelSizes = treeViewLocation === 'left' ? [tree, terminal] : [terminal, tree];
108
+ requestAnimationFrame(() => { var _a; return (_a = this.pageAndTreeLayout) === null || _a === void 0 ? void 0 : _a.setRelativeSizes(panelSizes); });
109
+ }
110
+ getTrackableWidgets() {
111
+ return [this.treeWidget, ...this.terminalWidgets.values()];
112
+ }
113
+ toggleTreeVisibility() {
114
+ if (this.treeWidget.isHidden) {
115
+ this.treeWidget.show();
116
+ this.setPanelSizes();
117
+ }
118
+ else {
119
+ this.treeWidget.hide();
120
+ }
121
+ }
122
+ async createPageAndTreeLayout(relativeSizes) {
123
+ var _a;
124
+ const layout = this.layout = new browser_1.PanelLayout();
125
+ this.pageAndTreeLayout = new browser_1.SplitLayout({
126
+ renderer: browser_1.SplitPanel.defaultRenderer,
127
+ orientation: 'horizontal',
128
+ spacing: 2,
129
+ });
130
+ (_a = this.panel) !== null && _a !== void 0 ? _a : (this.panel = new browser_1.SplitPanel({
131
+ layout: this.pageAndTreeLayout,
132
+ }));
133
+ layout.addWidget(this.panel);
134
+ await this.resolveMainLayout(relativeSizes);
135
+ this.update();
136
+ }
137
+ async resolveMainLayout(relativeSizes) {
138
+ if (!this.pageAndTreeLayout) {
139
+ return;
140
+ }
141
+ await this.terminalManagerPreferences.ready;
142
+ const treeViewLocation = this.terminalManagerPreferences.get('terminal.grouping.treeViewLocation');
143
+ const widgetsInDesiredOrder = treeViewLocation === 'left' ? [this.treeWidget, this.terminalPanelWrapper] : [this.terminalPanelWrapper, this.treeWidget];
144
+ widgetsInDesiredOrder.forEach((widget, index) => {
145
+ var _a;
146
+ (_a = this.pageAndTreeLayout) === null || _a === void 0 ? void 0 : _a.insertWidget(index, widget);
147
+ });
148
+ this.setPanelSizes(relativeSizes);
149
+ }
150
+ onAfterAttach(msg) {
151
+ super.onAfterAttach(msg);
152
+ this.populateLayout();
153
+ }
154
+ onCloseRequest(msg) {
155
+ if (this.interceptCloseRequest) {
156
+ this.interceptCloseRequest = false;
157
+ this.confirmClose()
158
+ .then(confirmed => {
159
+ if (confirmed) {
160
+ super.onCloseRequest(msg);
161
+ }
162
+ })
163
+ .finally(() => {
164
+ this.interceptCloseRequest = true;
165
+ });
166
+ return;
167
+ }
168
+ super.onCloseRequest(msg);
169
+ }
170
+ async confirmClose() {
171
+ const CLOSE = core_1.nls.localizeByDefault('Close');
172
+ const dialog = new dialogs_1.ConfirmDialog({
173
+ title: core_1.nls.localize('theia/terminal-manager/closeDialog/title', 'Do you want to close the terminal manager?'),
174
+ msg: core_1.nls.localize('theia/terminal-manager/closeDialog/message', 'Once the Terminal Manager is closed, its layout cannot be restored. Are you sure you want to close the Terminal Manager?'),
175
+ ok: CLOSE,
176
+ cancel: core_1.nls.localizeByDefault('Cancel'),
177
+ });
178
+ const confirmed = await dialog.open();
179
+ return confirmed === true;
180
+ }
181
+ addTerminalPage(widget) {
182
+ if (widget instanceof terminal_widget_impl_1.TerminalWidgetImpl) {
183
+ const terminalKey = terminal_manager_types_1.TerminalManagerTreeTypes.generateTerminalKey(widget);
184
+ this.registerTerminalCloseListener(widget, terminalKey);
185
+ this.terminalWidgets.set(terminalKey, widget);
186
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
187
+ const groupPanel = this.createTerminalGroupPanel();
188
+ groupPanel.addWidget(widget);
189
+ const pagePanel = this.createPagePanel();
190
+ pagePanel.addWidget(groupPanel);
191
+ this.treeWidget.model.addTerminalPage(terminalKey, groupPanel.id, pagePanel.id);
192
+ }
193
+ }
194
+ createPagePanel(pageId) {
195
+ const newPageLayout = new browser_1.ViewContainerLayout({
196
+ renderer: browser_1.SplitPanel.defaultRenderer,
197
+ orientation: 'horizontal',
198
+ spacing: 2,
199
+ headerSize: 0,
200
+ animationDuration: 200,
201
+ }, this.splitPositionHandler);
202
+ const pagePanel = new browser_1.SplitPanel({
203
+ layout: newPageLayout,
204
+ });
205
+ const idPrefix = 'page-';
206
+ const uuid = this.generateUUIDAvoidDuplicatesFromStorage(idPrefix);
207
+ pagePanel.node.tabIndex = -1;
208
+ pagePanel.id = pageId !== null && pageId !== void 0 ? pageId : `${idPrefix}${uuid}`;
209
+ this.pagePanels.set(pagePanel.id, pagePanel);
210
+ return pagePanel;
211
+ }
212
+ generateUUIDAvoidDuplicatesFromStorage(idPrefix) {
213
+ // highly unlikely there would ever be a duplicate, but just to be safe :)
214
+ let didNotGenerateValidId = true;
215
+ let uuid = '';
216
+ while (didNotGenerateValidId) {
217
+ uuid = coreutils_1.UUID.uuid4();
218
+ if (idPrefix === 'group-') {
219
+ didNotGenerateValidId = this.groupPanels.has(`group-${uuid}`);
220
+ }
221
+ else if (idPrefix === 'page-') {
222
+ didNotGenerateValidId = this.pagePanels.has(`page-${uuid}`);
223
+ }
224
+ }
225
+ return uuid;
226
+ }
227
+ handlePageAdded(pageId) {
228
+ const pagePanel = this.pagePanels.get(pageId);
229
+ if (pagePanel) {
230
+ this.terminalPanelWrapper.addWidget(pagePanel);
231
+ this.update();
232
+ }
233
+ }
234
+ handlePageDeleted(pagePanelId) {
235
+ var _a;
236
+ (_a = this.pagePanels.get(pagePanelId)) === null || _a === void 0 ? void 0 : _a.dispose();
237
+ this.pagePanels.delete(pagePanelId);
238
+ if (this.pagePanels.size === 0) {
239
+ this.populateLayout(true);
240
+ }
241
+ }
242
+ addTerminalGroupToPage(widget, pageId) {
243
+ if (!this.treeWidget) {
244
+ return;
245
+ }
246
+ if (widget instanceof terminal_widget_impl_1.TerminalWidgetImpl) {
247
+ const terminalId = terminal_manager_types_1.TerminalManagerTreeTypes.generateTerminalKey(widget);
248
+ this.registerTerminalCloseListener(widget, terminalId);
249
+ this.terminalWidgets.set(terminalId, widget);
250
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
251
+ const groupPanel = this.createTerminalGroupPanel();
252
+ groupPanel.addWidget(widget);
253
+ this.treeWidget.model.addTerminalGroup(terminalId, groupPanel.id, pageId);
254
+ }
255
+ }
256
+ createTerminalGroupPanel(groupId) {
257
+ const terminalColumnLayout = new browser_1.ViewContainerLayout({
258
+ renderer: browser_1.SplitPanel.defaultRenderer,
259
+ orientation: 'vertical',
260
+ spacing: 0,
261
+ headerSize: 0,
262
+ animationDuration: 200,
263
+ alignment: 'end',
264
+ }, this.splitPositionHandler);
265
+ const groupPanel = new browser_1.SplitPanel({
266
+ layout: terminalColumnLayout,
267
+ });
268
+ const idPrefix = 'group-';
269
+ const uuid = this.generateUUIDAvoidDuplicatesFromStorage(idPrefix);
270
+ groupPanel.node.tabIndex = -1;
271
+ groupPanel.id = groupId !== null && groupId !== void 0 ? groupId : `${idPrefix}${uuid}`;
272
+ this.groupPanels.set(groupPanel.id, groupPanel);
273
+ return groupPanel;
274
+ }
275
+ handleTerminalGroupAdded(groupId, pageId) {
276
+ if (!this.treeWidget) {
277
+ return;
278
+ }
279
+ const groupPanel = this.groupPanels.get(groupId);
280
+ if (!groupPanel) {
281
+ return;
282
+ }
283
+ const activePage = this.pagePanels.get(pageId);
284
+ if (activePage) {
285
+ activePage.addWidget(groupPanel);
286
+ this.update();
287
+ }
288
+ }
289
+ async activateTerminalWidget(terminalKey) {
290
+ var _a;
291
+ const terminalWidgetToActivate = (_a = this.terminalWidgets.get(terminalKey)) === null || _a === void 0 ? void 0 : _a.id;
292
+ if (terminalWidgetToActivate) {
293
+ const activeWidgetFound = await this.shell.activateWidget(terminalWidgetToActivate);
294
+ return activeWidgetFound;
295
+ }
296
+ return undefined;
297
+ }
298
+ activateWidget(id) {
299
+ const widget = Array.from(this.terminalWidgets.values()).find(terminalWidget => terminalWidget.id === id);
300
+ if (widget instanceof terminal_widget_impl_1.TerminalWidgetImpl) {
301
+ widget.activate();
302
+ }
303
+ return widget;
304
+ }
305
+ handleTerminalGroupDeleted(groupPanelId) {
306
+ var _a;
307
+ (_a = this.groupPanels.get(groupPanelId)) === null || _a === void 0 ? void 0 : _a.dispose();
308
+ this.groupPanels.delete(groupPanelId);
309
+ }
310
+ addWidgetToTerminalGroup(widget, groupId) {
311
+ if (widget instanceof terminal_widget_impl_1.TerminalWidgetImpl) {
312
+ const newTerminalId = terminal_manager_types_1.TerminalManagerTreeTypes.generateTerminalKey(widget);
313
+ this.registerTerminalCloseListener(widget, newTerminalId);
314
+ this.terminalWidgets.set(newTerminalId, widget);
315
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
316
+ this.treeWidget.model.addTerminal(newTerminalId, groupId);
317
+ }
318
+ }
319
+ onActivateRequest(msg) {
320
+ var _a;
321
+ super.onActivateRequest(msg);
322
+ const activeTerminalId = (_a = this.treeWidget.model.activeTerminalNode) === null || _a === void 0 ? void 0 : _a.id;
323
+ if (activeTerminalId) {
324
+ const activeTerminalWidget = this.terminalWidgets.get(activeTerminalId);
325
+ if (activeTerminalWidget) {
326
+ activeTerminalWidget.activate();
327
+ return;
328
+ }
329
+ }
330
+ this.node.focus();
331
+ }
332
+ handleWidgetAddedToTerminalGroup(terminalKey, groupId) {
333
+ const terminalWidget = this.terminalWidgets.get(terminalKey);
334
+ const group = this.groupPanels.get(groupId);
335
+ if (terminalWidget && group) {
336
+ const groupPanel = this.groupPanels.get(groupId);
337
+ groupPanel === null || groupPanel === void 0 ? void 0 : groupPanel.addWidget(terminalWidget);
338
+ this.update();
339
+ }
340
+ }
341
+ handleTerminalDeleted(terminalId) {
342
+ const terminalWidget = this.terminalWidgets.get(terminalId);
343
+ const wasActiveWidget = this.shell.activeWidget === terminalWidget;
344
+ if (!this.terminalsDeletingFromClose.has(terminalId)) {
345
+ terminalWidget === null || terminalWidget === void 0 ? void 0 : terminalWidget.dispose();
346
+ }
347
+ this.terminalWidgets.delete(terminalId);
348
+ if (wasActiveWidget) {
349
+ this.activateNextAvailableTerminal(terminalId);
350
+ }
351
+ }
352
+ handleOnDidChangeActiveWidget(widget) {
353
+ if (!(widget instanceof terminal_widget_impl_1.TerminalWidgetImpl)) {
354
+ return;
355
+ }
356
+ const terminalKey = terminal_manager_types_1.TerminalManagerTreeTypes.generateTerminalKey(widget);
357
+ this.treeWidget.model.selectTerminalNode(terminalKey);
358
+ }
359
+ handleSelectionChange(changeEvent) {
360
+ const { activePageId } = changeEvent;
361
+ if (activePageId && activePageId) {
362
+ const pageNode = this.treeWidget.model.getNode(activePageId);
363
+ if (!terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(pageNode)) {
364
+ return;
365
+ }
366
+ this.updateViewPage(activePageId);
367
+ }
368
+ this.update();
369
+ }
370
+ updateViewPage(activePageId) {
371
+ const activePagePanel = this.pagePanels.get(activePageId);
372
+ if (activePagePanel) {
373
+ this.terminalPanelWrapper.widgets
374
+ .forEach(widget => widget !== activePagePanel && widget.hide());
375
+ activePagePanel.show();
376
+ this.update();
377
+ }
378
+ }
379
+ deleteTerminal(terminalId) {
380
+ this.treeWidget.model.deleteTerminalNode(terminalId);
381
+ }
382
+ deleteGroup(groupId) {
383
+ this.treeWidget.model.deleteTerminalGroup(groupId);
384
+ }
385
+ deletePage(pageNode) {
386
+ this.treeWidget.model.deleteTerminalPage(pageNode);
387
+ }
388
+ toggleRenameTerminal(entityId) {
389
+ this.treeWidget.model.toggleRenameTerminal(entityId);
390
+ }
391
+ storeState() {
392
+ return this.getLayoutData();
393
+ }
394
+ restoreState(oldState) {
395
+ const { items, widget, terminalAndTreeRelativeSizes } = oldState;
396
+ if (widget && terminalAndTreeRelativeSizes && items) {
397
+ this.setPanelSizes(terminalAndTreeRelativeSizes);
398
+ try {
399
+ this.restoreLayoutData(items, widget);
400
+ }
401
+ catch (e) {
402
+ console.error(e);
403
+ this.resetLayout();
404
+ this.populateLayout(true);
405
+ }
406
+ finally {
407
+ this.stateIsSet = true;
408
+ const { activeTerminalNode } = this.treeWidget.model;
409
+ setTimeout(() => {
410
+ var _a;
411
+ this.treeWidget.model.selectTerminalNode((_a = activeTerminalNode === null || activeTerminalNode === void 0 ? void 0 : activeTerminalNode.id) !== null && _a !== void 0 ? _a : Array.from(this.terminalWidgets.keys())[0]);
412
+ });
413
+ }
414
+ }
415
+ }
416
+ resetLayout() {
417
+ this.pagePanels = new Map();
418
+ this.groupPanels = new Map();
419
+ this.terminalWidgets = new Map();
420
+ }
421
+ iterateAndRestoreLayoutTree(pageLayouts, treeWidget) {
422
+ for (const pageLayout of pageLayouts) {
423
+ const pageId = pageLayout.id;
424
+ const pagePanel = this.createPagePanel(pageId);
425
+ const pageNode = treeWidget.model.getNode(pageId);
426
+ if (!terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(pageNode)) {
427
+ throw TerminalManagerWidget_1.createRestoreError(pageId);
428
+ }
429
+ this.pagePanels.set(pageId, pagePanel);
430
+ this.terminalPanelWrapper.addWidget(pagePanel);
431
+ const { childLayouts: groupLayouts } = pageLayout;
432
+ for (const groupLayout of groupLayouts) {
433
+ const groupId = groupLayout.id;
434
+ const groupPanel = this.createTerminalGroupPanel(groupId);
435
+ const groupNode = treeWidget.model.getNode(groupId);
436
+ if (!terminal_manager_types_1.TerminalManagerTreeTypes.isGroupNode(groupNode)) {
437
+ throw TerminalManagerWidget_1.createRestoreError(groupId);
438
+ }
439
+ this.groupPanels.set(groupId, groupPanel);
440
+ pagePanel.insertWidget(0, groupPanel);
441
+ const { childLayouts: widgetLayouts } = groupLayout;
442
+ for (const widgetLayout of widgetLayouts) {
443
+ const { widget } = widgetLayout;
444
+ if (widget instanceof terminal_widget_impl_1.TerminalWidgetImpl) {
445
+ const widgetId = terminal_manager_types_1.TerminalManagerTreeTypes.generateTerminalKey(widget);
446
+ const widgetNode = treeWidget.model.getNode(widgetId);
447
+ if (!terminal_manager_types_1.TerminalManagerTreeTypes.isTerminalNode(widgetNode)) {
448
+ throw TerminalManagerWidget_1.createRestoreError(widgetId);
449
+ }
450
+ this.terminalWidgets.set(widgetId, widget);
451
+ this.registerTerminalCloseListener(widget, widgetId);
452
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
453
+ groupPanel.addWidget(widget);
454
+ }
455
+ }
456
+ const { widgetRelativeHeights } = groupLayout;
457
+ if (widgetRelativeHeights) {
458
+ requestAnimationFrame(() => groupPanel.setRelativeSizes(widgetRelativeHeights));
459
+ }
460
+ }
461
+ const { groupRelativeWidths } = pageLayout;
462
+ if (groupRelativeWidths) {
463
+ requestAnimationFrame(() => pagePanel.setRelativeSizes(groupRelativeWidths));
464
+ }
465
+ }
466
+ }
467
+ restoreLayoutData(items, treeWidget) {
468
+ const { childLayouts: pageLayouts } = items;
469
+ Array.from(this.pagePanels.keys()).forEach(pageId => this.deletePage(pageId));
470
+ this.iterateAndRestoreLayoutTree(pageLayouts, treeWidget);
471
+ this.onDidChangeTrackableWidgetsEmitter.fire(this.getTrackableWidgets());
472
+ this.update();
473
+ }
474
+ getLayoutData() {
475
+ var _a;
476
+ const pageItems = { childLayouts: [], id: 'ParentPanel' };
477
+ const treeViewLocation = this.terminalManagerPreferences.get('terminal.grouping.treeViewLocation');
478
+ let terminalAndTreeRelativeSizes = undefined;
479
+ const sizeArray = (_a = this.pageAndTreeLayout) === null || _a === void 0 ? void 0 : _a.relativeSizes();
480
+ if (sizeArray && treeViewLocation === 'right') {
481
+ terminalAndTreeRelativeSizes = { tree: sizeArray[1], terminal: sizeArray[0] };
482
+ }
483
+ else if (sizeArray && treeViewLocation === 'left') {
484
+ terminalAndTreeRelativeSizes = { tree: sizeArray[0], terminal: sizeArray[1] };
485
+ }
486
+ const fullLayoutData = {
487
+ widget: this.treeWidget,
488
+ items: pageItems,
489
+ terminalAndTreeRelativeSizes,
490
+ };
491
+ const treeRoot = this.treeWidget.model.root;
492
+ if (treeRoot && browser_1.CompositeTreeNode.is(treeRoot)) {
493
+ const pageNodes = treeRoot.children;
494
+ for (const pageNode of pageNodes) {
495
+ if (terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(pageNode)) {
496
+ const groupNodes = pageNode.children;
497
+ const pagePanel = this.pagePanels.get(pageNode.id);
498
+ const pageLayoutData = {
499
+ childLayouts: [],
500
+ id: pageNode.id,
501
+ groupRelativeWidths: pagePanel === null || pagePanel === void 0 ? void 0 : pagePanel.relativeSizes(),
502
+ };
503
+ for (const groupNode of groupNodes) {
504
+ const groupPanel = this.groupPanels.get(groupNode.id);
505
+ if (terminal_manager_types_1.TerminalManagerTreeTypes.isGroupNode(groupNode)) {
506
+ const groupLayoutData = {
507
+ id: groupNode.id,
508
+ childLayouts: [],
509
+ widgetRelativeHeights: groupPanel === null || groupPanel === void 0 ? void 0 : groupPanel.relativeSizes(),
510
+ };
511
+ const widgetNodes = groupNode.children;
512
+ for (const widgetNode of widgetNodes) {
513
+ if (terminal_manager_types_1.TerminalManagerTreeTypes.isTerminalNode(widgetNode)) {
514
+ const widget = this.terminalWidgets.get(widgetNode.id);
515
+ const terminalLayoutData = {
516
+ widget,
517
+ };
518
+ groupLayoutData.childLayouts.push(terminalLayoutData);
519
+ }
520
+ }
521
+ pageLayoutData.childLayouts.unshift(groupLayoutData);
522
+ }
523
+ }
524
+ pageItems.childLayouts.push(pageLayoutData);
525
+ }
526
+ }
527
+ }
528
+ return fullLayoutData;
529
+ }
530
+ registerTerminalCloseListener(widget, terminalKey) {
531
+ const originalOnCloseRequest = widget['onCloseRequest'].bind(widget);
532
+ widget['onCloseRequest'] = (msg) => {
533
+ const wasActiveWidget = this.shell.activeWidget === widget;
534
+ if (wasActiveWidget) {
535
+ this.activateNextAvailableTerminal(terminalKey);
536
+ }
537
+ originalOnCloseRequest(msg);
538
+ };
539
+ const disposable = widget.onTerminalDidClose(() => {
540
+ this.terminalsDeletingFromClose.add(terminalKey);
541
+ try {
542
+ this.treeWidget.model.deleteTerminalNode(terminalKey);
543
+ }
544
+ finally {
545
+ this.terminalsDeletingFromClose.delete(terminalKey);
546
+ }
547
+ });
548
+ this.toDispose.push(disposable);
549
+ }
550
+ activateNextAvailableTerminal(excludeTerminalKey) {
551
+ var _a;
552
+ const remainingTerminals = Array.from(this.terminalWidgets.entries()).filter(([key]) => key !== excludeTerminalKey);
553
+ if (remainingTerminals.length > 0) {
554
+ const activeTerminalId = (_a = this.treeWidget.model.activeTerminalNode) === null || _a === void 0 ? void 0 : _a.id;
555
+ let targetTerminal;
556
+ if (activeTerminalId && activeTerminalId !== excludeTerminalKey && this.terminalWidgets.has(activeTerminalId)) {
557
+ targetTerminal = this.terminalWidgets.get(activeTerminalId);
558
+ }
559
+ else {
560
+ targetTerminal = remainingTerminals[0][1];
561
+ }
562
+ if (targetTerminal) {
563
+ this.shell.activateWidget(targetTerminal.id);
564
+ }
565
+ }
566
+ else {
567
+ this.shell.activateWidget(this.id);
568
+ }
569
+ }
570
+ };
571
+ exports.TerminalManagerWidget = TerminalManagerWidget;
572
+ TerminalManagerWidget.ID = 'terminal-manager-widget';
573
+ TerminalManagerWidget.LABEL = core_1.nls.localize('theia/terminal-manager/label', 'Terminals');
574
+ TerminalManagerWidget.createRestoreError = (nodeId) => new Error(`Terminal manager widget state could not be restored, mismatch in restored data for ${nodeId}`);
575
+ tslib_1.__decorate([
576
+ (0, inversify_1.inject)(terminal_frontend_contribution_1.TerminalFrontendContribution),
577
+ tslib_1.__metadata("design:type", terminal_frontend_contribution_1.TerminalFrontendContribution)
578
+ ], TerminalManagerWidget.prototype, "terminalFrontendContribution", void 0);
579
+ tslib_1.__decorate([
580
+ (0, inversify_1.inject)(terminal_manager_tree_widget_1.TerminalManagerTreeWidget),
581
+ tslib_1.__metadata("design:type", terminal_manager_tree_widget_1.TerminalManagerTreeWidget)
582
+ ], TerminalManagerWidget.prototype, "treeWidget", void 0);
583
+ tslib_1.__decorate([
584
+ (0, inversify_1.inject)(browser_1.SplitPositionHandler),
585
+ tslib_1.__metadata("design:type", browser_1.SplitPositionHandler)
586
+ ], TerminalManagerWidget.prototype, "splitPositionHandler", void 0);
587
+ tslib_1.__decorate([
588
+ (0, inversify_1.inject)(browser_1.ApplicationShell),
589
+ tslib_1.__metadata("design:type", browser_1.ApplicationShell)
590
+ ], TerminalManagerWidget.prototype, "shell", void 0);
591
+ tslib_1.__decorate([
592
+ (0, inversify_1.inject)(terminal_manager_preferences_1.TerminalManagerPreferences),
593
+ tslib_1.__metadata("design:type", Object)
594
+ ], TerminalManagerWidget.prototype, "terminalManagerPreferences", void 0);
595
+ tslib_1.__decorate([
596
+ (0, inversify_1.inject)(frontend_application_state_1.FrontendApplicationStateService),
597
+ tslib_1.__metadata("design:type", frontend_application_state_1.FrontendApplicationStateService)
598
+ ], TerminalManagerWidget.prototype, "applicationStateService", void 0);
599
+ tslib_1.__decorate([
600
+ (0, inversify_1.inject)(browser_1.WidgetManager),
601
+ tslib_1.__metadata("design:type", browser_1.WidgetManager)
602
+ ], TerminalManagerWidget.prototype, "widgetManager", void 0);
603
+ tslib_1.__decorate([
604
+ (0, inversify_1.inject)(browser_1.StorageService),
605
+ tslib_1.__metadata("design:type", Object)
606
+ ], TerminalManagerWidget.prototype, "storageService", void 0);
607
+ tslib_1.__decorate([
608
+ (0, inversify_1.postConstruct)(),
609
+ tslib_1.__metadata("design:type", Function),
610
+ tslib_1.__metadata("design:paramtypes", []),
611
+ tslib_1.__metadata("design:returntype", void 0)
612
+ ], TerminalManagerWidget.prototype, "init", null);
613
+ exports.TerminalManagerWidget = TerminalManagerWidget = TerminalManagerWidget_1 = tslib_1.__decorate([
614
+ (0, inversify_1.injectable)()
615
+ ], TerminalManagerWidget);
616
+ //# sourceMappingURL=terminal-manager-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-manager-widget.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=package.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.spec.d.ts","sourceRoot":"","sources":["../src/package.spec.ts"],"names":[],"mappings":""}