@theia/editor-preview 1.34.1 → 1.35.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.
@@ -1,19 +1,15 @@
1
- import { Message } from '@theia/core/shared/@phosphor/messaging';
2
1
  import { TabBar, Widget } from '@theia/core/lib/browser';
3
2
  import { EditorWidget, TextEditor } from '@theia/editor/lib/browser';
4
- import { DisposableCollection, Emitter, SelectionService } from '@theia/core/lib/common';
3
+ import { Emitter, SelectionService } from '@theia/core/lib/common';
5
4
  export declare class EditorPreviewWidget extends EditorWidget {
6
5
  protected _isPreview: boolean;
7
- protected lastTabbar: TabBar<Widget> | undefined;
8
6
  protected readonly onDidChangePreviewStateEmitter: Emitter<void>;
9
7
  readonly onDidChangePreviewState: import("@theia/core/lib/common").Event<void>;
10
- protected readonly toDisposeOnLocationChange: DisposableCollection;
11
8
  get isPreview(): boolean;
12
9
  constructor(editor: TextEditor, selectionService: SelectionService);
13
10
  initializePreview(): void;
14
11
  convertToNonPreview(): void;
15
- protected onAfterAttach(msg: Message): void;
16
- protected checkForTabbarChange(): void;
12
+ protected handleTabBarChange(oldTabBar?: TabBar<Widget> | undefined, newTabBar?: TabBar<Widget> | undefined): void;
17
13
  storeState(): {
18
14
  isPreview: boolean;
19
15
  editorState: object;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-preview-widget.d.ts","sourceRoot":"","sources":["../../src/browser/editor-preview-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAa,MAAM,EAAE,MAAM,EAAgB,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAc,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,wBAAwB,CAAC;AAItH,qBAAa,mBAAoB,SAAQ,YAAY;IACjD,SAAS,CAAC,UAAU,UAAS;IAC7B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAEjD,SAAS,CAAC,QAAQ,CAAC,8BAA8B,gBAAuB;IACxE,QAAQ,CAAC,uBAAuB,+CAA6C;IAE7E,SAAS,CAAC,QAAQ,CAAC,yBAAyB,uBAA8B;IAE1E,IAAI,SAAS,IAAI,OAAO,CAEvB;gBAGG,MAAM,EAAE,UAAU,EAClB,gBAAgB,EAAE,gBAAgB;IAOtC,iBAAiB,IAAI,IAAI;IAoBzB,mBAAmB,IAAI,IAAI;cAWR,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAOpD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAgB7B,UAAU,IAAI;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAOrE,YAAY,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAMrF"}
1
+ {"version":3,"file":"editor-preview-widget.d.ts","sourceRoot":"","sources":["../../src/browser/editor-preview-widget.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAgB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAoC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,wBAAwB,CAAC;AAGtH,qBAAa,mBAAoB,SAAQ,YAAY;IACjD,SAAS,CAAC,UAAU,UAAS;IAE7B,SAAS,CAAC,QAAQ,CAAC,8BAA8B,gBAAuB;IACxE,QAAQ,CAAC,uBAAuB,+CAA6C;IAE7E,IAAI,SAAS,IAAI,OAAO,CAEvB;gBAGG,MAAM,EAAE,UAAU,EAClB,gBAAgB,EAAE,gBAAgB;IAMtC,iBAAiB,IAAI,IAAI;IAoBzB,mBAAmB,IAAI,IAAI;cAUR,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAOlH,UAAU,IAAI;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAOrE,YAAY,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAMrF"}
@@ -19,7 +19,6 @@ exports.EditorPreviewWidget = void 0;
19
19
  const browser_1 = require("@theia/core/lib/browser");
20
20
  const browser_2 = require("@theia/editor/lib/browser");
21
21
  const common_1 = require("@theia/core/lib/common");
22
- const algorithm_1 = require("@theia/core/shared/@phosphor/algorithm");
23
22
  const PREVIEW_TITLE_CLASS = 'theia-editor-preview-title-unpinned';
24
23
  class EditorPreviewWidget extends browser_2.EditorWidget {
25
24
  constructor(editor, selectionService) {
@@ -27,9 +26,7 @@ class EditorPreviewWidget extends browser_2.EditorWidget {
27
26
  this._isPreview = false;
28
27
  this.onDidChangePreviewStateEmitter = new common_1.Emitter();
29
28
  this.onDidChangePreviewState = this.onDidChangePreviewStateEmitter.event;
30
- this.toDisposeOnLocationChange = new common_1.DisposableCollection();
31
29
  this.toDispose.push(this.onDidChangePreviewStateEmitter);
32
- this.toDispose.push(this.toDisposeOnLocationChange);
33
30
  }
34
31
  get isPreview() {
35
32
  return this._isPreview;
@@ -56,33 +53,18 @@ class EditorPreviewWidget extends browser_2.EditorWidget {
56
53
  convertToNonPreview() {
57
54
  if (this._isPreview) {
58
55
  this._isPreview = false;
59
- this.toDisposeOnLocationChange.dispose();
60
- this.lastTabbar = undefined;
56
+ this.currentTabbar = undefined;
61
57
  this.title.className = this.title.className.replace(PREVIEW_TITLE_CLASS, '');
62
58
  this.onDidChangePreviewStateEmitter.fire();
63
59
  this.onDidChangePreviewStateEmitter.dispose();
64
60
  }
65
61
  }
66
- onAfterAttach(msg) {
67
- super.onAfterAttach(msg);
62
+ handleTabBarChange(oldTabBar, newTabBar) {
63
+ super.handleTabBarChange(oldTabBar, newTabBar);
68
64
  if (this._isPreview) {
69
- this.checkForTabbarChange();
70
- }
71
- }
72
- checkForTabbarChange() {
73
- const { parent } = this;
74
- if (parent instanceof browser_1.DockPanel) {
75
- this.toDisposeOnLocationChange.dispose();
76
- const newTabbar = (0, algorithm_1.find)(parent.tabBars(), tabbar => !!tabbar.titles.find(title => title === this.title));
77
- if (this.lastTabbar && this.lastTabbar !== newTabbar) {
65
+ if (oldTabBar && newTabBar) {
78
66
  this.convertToNonPreview();
79
67
  }
80
- else {
81
- this.lastTabbar = newTabbar;
82
- const listener = () => this.checkForTabbarChange();
83
- parent.layoutModified.connect(listener);
84
- this.toDisposeOnLocationChange.push(common_1.Disposable.create(() => parent.layoutModified.disconnect(listener)));
85
- }
86
68
  }
87
69
  }
88
70
  storeState() {
@@ -1 +1 @@
1
- {"version":3,"file":"editor-preview-widget.js","sourceRoot":"","sources":["../../src/browser/editor-preview-widget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-preview-widget.js","sourceRoot":"","sources":["../../src/browser/editor-preview-widget.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/editor-preview",
3
- "version": "1.34.1",
3
+ "version": "1.35.0",
4
4
  "description": "Theia - Editor Preview Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.34.1",
7
- "@theia/editor": "1.34.1",
8
- "@theia/navigator": "1.34.1"
6
+ "@theia/core": "1.35.0",
7
+ "@theia/editor": "1.35.0",
8
+ "@theia/navigator": "1.35.0"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"
@@ -40,10 +40,10 @@
40
40
  "watch": "theiaext watch"
41
41
  },
42
42
  "devDependencies": {
43
- "@theia/ext-scripts": "1.34.1"
43
+ "@theia/ext-scripts": "1.35.0"
44
44
  },
45
45
  "nyc": {
46
46
  "extends": "../../configs/nyc.json"
47
47
  },
48
- "gitHead": "474bdc10b58be92953496b8bcac2af25ee2b48a3"
48
+ "gitHead": "5b1e4f9b913cf1b0d27acd4bc435cb2570f164d8"
49
49
  }
@@ -14,22 +14,17 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { Message } from '@theia/core/shared/@phosphor/messaging';
18
- import { DockPanel, TabBar, Widget, PINNED_CLASS } from '@theia/core/lib/browser';
17
+ import { TabBar, Widget, PINNED_CLASS } from '@theia/core/lib/browser';
19
18
  import { EditorWidget, TextEditor } from '@theia/editor/lib/browser';
20
19
  import { Disposable, DisposableCollection, Emitter, SelectionService, UNTITLED_SCHEME } from '@theia/core/lib/common';
21
- import { find } from '@theia/core/shared/@phosphor/algorithm';
22
20
 
23
21
  const PREVIEW_TITLE_CLASS = 'theia-editor-preview-title-unpinned';
24
22
  export class EditorPreviewWidget extends EditorWidget {
25
23
  protected _isPreview = false;
26
- protected lastTabbar: TabBar<Widget> | undefined;
27
24
 
28
25
  protected readonly onDidChangePreviewStateEmitter = new Emitter<void>();
29
26
  readonly onDidChangePreviewState = this.onDidChangePreviewStateEmitter.event;
30
27
 
31
- protected readonly toDisposeOnLocationChange = new DisposableCollection();
32
-
33
28
  get isPreview(): boolean {
34
29
  return this._isPreview;
35
30
  }
@@ -40,7 +35,6 @@ export class EditorPreviewWidget extends EditorWidget {
40
35
  ) {
41
36
  super(editor, selectionService);
42
37
  this.toDispose.push(this.onDidChangePreviewStateEmitter);
43
- this.toDispose.push(this.toDisposeOnLocationChange);
44
38
  }
45
39
 
46
40
  initializePreview(): void {
@@ -66,34 +60,17 @@ export class EditorPreviewWidget extends EditorWidget {
66
60
  convertToNonPreview(): void {
67
61
  if (this._isPreview) {
68
62
  this._isPreview = false;
69
- this.toDisposeOnLocationChange.dispose();
70
- this.lastTabbar = undefined;
63
+ this.currentTabbar = undefined;
71
64
  this.title.className = this.title.className.replace(PREVIEW_TITLE_CLASS, '');
72
65
  this.onDidChangePreviewStateEmitter.fire();
73
66
  this.onDidChangePreviewStateEmitter.dispose();
74
67
  }
75
68
  }
76
69
 
77
- protected override onAfterAttach(msg: Message): void {
78
- super.onAfterAttach(msg);
70
+ protected override handleTabBarChange(oldTabBar?: TabBar<Widget> | undefined, newTabBar?: TabBar<Widget> | undefined): void {
71
+ super.handleTabBarChange(oldTabBar, newTabBar);
79
72
  if (this._isPreview) {
80
- this.checkForTabbarChange();
81
- }
82
- }
83
-
84
- protected checkForTabbarChange(): void {
85
- const { parent } = this;
86
- if (parent instanceof DockPanel) {
87
- this.toDisposeOnLocationChange.dispose();
88
- const newTabbar = find(parent.tabBars(), tabbar => !!tabbar.titles.find(title => title === this.title));
89
- if (this.lastTabbar && this.lastTabbar !== newTabbar) {
90
- this.convertToNonPreview();
91
- } else {
92
- this.lastTabbar = newTabbar;
93
- const listener = () => this.checkForTabbarChange();
94
- parent.layoutModified.connect(listener);
95
- this.toDisposeOnLocationChange.push(Disposable.create(() => parent.layoutModified.disconnect(listener)));
96
- }
73
+ if (oldTabBar && newTabBar) { this.convertToNonPreview(); }
97
74
  }
98
75
  }
99
76