dock-spawn-ts 3.11.2 → 3.13.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 (37) hide show
  1. package/lib/es5/dock-spawn-ts.js +1 -1
  2. package/lib/js/Dialog.d.ts +7 -11
  3. package/lib/js/Dialog.js +13 -50
  4. package/lib/js/Dialog.js.map +1 -1
  5. package/lib/js/DockLayoutEngine.d.ts +1 -1
  6. package/lib/js/DockManager.d.ts +8 -8
  7. package/lib/js/DockManager.js +9 -9
  8. package/lib/js/DockManager.js.map +1 -1
  9. package/lib/js/PanelContainer.d.ts +12 -9
  10. package/lib/js/PanelContainer.js +12 -6
  11. package/lib/js/PanelContainer.js.map +1 -1
  12. package/lib/js/ResizableContainer.d.ts +7 -6
  13. package/lib/js/ResizableContainer.js +25 -10
  14. package/lib/js/ResizableContainer.js.map +1 -1
  15. package/lib/js/enums/ResizeDirection.d.ts +17 -0
  16. package/lib/js/enums/ResizeDirection.js +19 -0
  17. package/lib/js/enums/ResizeDirection.js.map +1 -0
  18. package/lib/js/index-min.js +3 -3
  19. package/lib/js/index-webcomponent-min.js +4 -4
  20. package/lib/js/index.d.ts +2 -0
  21. package/lib/js/index.js +2 -0
  22. package/lib/js/index.js.map +1 -1
  23. package/lib/js/interfaces/IContextMenuProvider.d.ts +3 -0
  24. package/lib/js/interfaces/IContextMenuProvider.js +2 -0
  25. package/lib/js/interfaces/IContextMenuProvider.js.map +1 -0
  26. package/lib/js/webcomponent/DockSpawnTsWebcomponent.d.ts +5 -5
  27. package/lib/js/webcomponent/DockSpawnTsWebcomponent.js +6 -6
  28. package/lib/js/webcomponent/DockSpawnTsWebcomponent.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/Dialog.ts +21 -59
  31. package/src/DockManager.ts +15 -15
  32. package/src/PanelContainer.ts +22 -14
  33. package/src/ResizableContainer.ts +37 -15
  34. package/src/enums/ResizeDirection.ts +17 -0
  35. package/src/index.ts +2 -0
  36. package/src/interfaces/IContextMenuProvider.ts +3 -0
  37. package/src/webcomponent/DockSpawnTsWebcomponent.ts +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"DockSpawnTsWebcomponent.js","sourceRoot":"","sources":["../../../src/webcomponent/DockSpawnTsWebcomponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DockSpawnTsWebcomponent.js","sourceRoot":"","sources":["../../../src/webcomponent/DockSpawnTsWebcomponent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dock-spawn-ts",
3
- "version": "3.11.2",
3
+ "version": "3.13.0",
4
4
  "description": "DockSpawn Typescript Version",
5
5
  "license": "MIT",
6
6
  "author": "jochen.kuehner@gmx.de",
package/src/Dialog.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  import { DockManager } from "./DockManager.js";
2
- import { Point } from "./Point.js";
3
- import { PanelContainer } from "./PanelContainer.js";
2
+ import { DockNode } from "./DockNode.js";
4
3
  import { DraggableContainer } from "./DraggableContainer.js";
5
- import { ResizableContainer } from "./ResizableContainer.js";
6
4
  import { EventHandler } from "./EventHandler.js";
5
+ import { PanelContainer } from "./PanelContainer.js";
6
+ import { Point } from "./Point.js";
7
+ import { ResizableContainer } from "./ResizableContainer.js";
7
8
  import { Utils } from "./Utils.js";
9
+ import { ResizeDirection } from "./enums/ResizeDirection.js";
8
10
  import { Localizer } from "./i18n/Localizer.js";
9
- import { DockNode } from "./DockNode.js";
11
+ import { IContextMenuProvider } from "./interfaces/IContextMenuProvider.js";
10
12
 
11
- export class Dialog {
13
+ export class Dialog implements IContextMenuProvider {
12
14
  elementDialog: HTMLDivElement & { floatingDialog: Dialog };
13
15
  draggable: DraggableContainer;
14
16
  panel: PanelContainer;
@@ -24,9 +26,6 @@ export class Dialog {
24
26
  keyPressHandler: EventHandler;
25
27
  focusHandler: EventHandler;
26
28
  grayoutParent: PanelContainer;
27
- contextmenuHandler: EventHandler;
28
- _ctxMenu: HTMLDivElement;
29
- _windowsContextMenuCloseBound: any;
30
29
 
31
30
  constructor(panel: PanelContainer, dockManager: DockManager, grayoutParent?: PanelContainer, disableResize?: boolean) {
32
31
  this.panel = panel;
@@ -56,7 +55,12 @@ export class Dialog {
56
55
  this.elementDialog.tabIndex = 0;
57
56
  this.elementDialog.appendChild(this.panel.elementPanel);
58
57
  this.draggable = new DraggableContainer(this, this.panel, this.elementDialog, this.panel.elementTitle);
59
- this.resizable = new ResizableContainer(this, this.draggable, this.draggable.topLevelElement, this.disableResize);
58
+
59
+ const resizeDirection: ResizeDirection = this.disableResize
60
+ ? ResizeDirection.None
61
+ : ResizeDirection.All & ~ResizeDirection.NorthEast;
62
+
63
+ this.resizable = new ResizableContainer(this, this.draggable, this.draggable.topLevelElement, resizeDirection);
60
64
 
61
65
  this.dockManager.config.dialogRootElement.appendChild(this.elementDialog);
62
66
  this.elementDialog.classList.add('dialog-floating');
@@ -64,7 +68,6 @@ export class Dialog {
64
68
  this.focusHandler = new EventHandler(this.elementDialog, 'focus', this.onFocus.bind(this), true);
65
69
  this.mouseDownHandler = new EventHandler(this.elementDialog, 'pointerdown', this.onMouseDown.bind(this), true);
66
70
  this.keyPressHandler = new EventHandler(this.elementDialog, 'keypress', this.dockManager.onKeyPressBound, true);
67
- this.contextmenuHandler = new EventHandler(this.panel.elementTitle, 'contextmenu', this.oncontextMenuClicked.bind(this));
68
71
 
69
72
  this.resize(this.panel.elementPanel.clientWidth, this.panel.elementPanel.clientHeight);
70
73
  this.isHidden = false;
@@ -113,15 +116,12 @@ export class Dialog {
113
116
  this.keyPressHandler.cancel();
114
117
  delete this.keyPressHandler;
115
118
  }
116
- if (this.contextmenuHandler) {
117
- this.contextmenuHandler.cancel();
118
- delete this.contextmenuHandler;
119
- }
119
+
120
120
  Utils.removeNode(this.elementDialog);
121
121
  this.draggable.removeDecorator();
122
122
  Utils.removeNode(this.panel.elementPanel);
123
123
  Utils.arrayRemove(this.dockManager.context.model.dialogs, this);
124
- delete this.panel.floatingDialog;
124
+ this.panel.floatingDialog = undefined;
125
125
 
126
126
  if (this.grayoutParent) {
127
127
  this.grayoutParent.grayOut(false);
@@ -192,8 +192,8 @@ export class Dialog {
192
192
  result.push(btnCloseDialog);
193
193
 
194
194
  btnCloseDialog.onclick = () => {
195
+ dialog.panel.closeContextMenu();
195
196
  dialog.panel.close();
196
- dialog.closeContextMenu();
197
197
  };
198
198
 
199
199
  if (dialog.dockManager.config.enableBrowserWindows) {
@@ -202,55 +202,17 @@ export class Dialog {
202
202
  result.push(btnNewBrowserWindow);
203
203
 
204
204
  btnNewBrowserWindow.onclick = () => {
205
+ dialog.panel.closeContextMenu();
205
206
  dialog.panel.undockToBrowserDialog();
206
- dialog.closeContextMenu();
207
207
  };
208
208
  }
209
209
 
210
210
  return result;
211
211
  }
212
212
 
213
- oncontextMenuClicked(e: MouseEvent) {
214
- e.preventDefault();
215
-
216
- if (!this._ctxMenu && Dialog.createContextMenuContentCallback) {
217
- const menuItems = Dialog.createContextMenuContentCallback(
218
- this,
219
- this.dockManager.context.model.documentManagerNode.children
220
- );
221
-
222
- if (menuItems.length == 0) {
223
- return;
224
- }
225
-
226
- this._ctxMenu = document.createElement('div');
227
- this._ctxMenu.className = 'dockspab-tab-handle-context-menu';
228
- this._ctxMenu.append(...menuItems);
229
- this._ctxMenu.style.left = e.pageX + "px";
230
- this._ctxMenu.style.top = e.pageY + "px";
231
- document.body.appendChild(this._ctxMenu);
232
- this._windowsContextMenuCloseBound = this.windowsContextMenuClose.bind(this)
233
- window.addEventListener('pointerup', this._windowsContextMenuCloseBound);
234
- } else {
235
- this.closeContextMenu();
236
- }
237
- }
238
-
239
- closeContextMenu() {
240
- if (this._ctxMenu) {
241
- document.body.removeChild(this._ctxMenu);
242
- delete this._ctxMenu;
243
- window.removeEventListener('pointerup', this._windowsContextMenuCloseBound);
244
- }
245
- }
246
-
247
- windowsContextMenuClose(e: Event) {
248
- let cp = e.composedPath();
249
- for (let i in cp) {
250
- let el = cp[i];
251
- if (el == this._ctxMenu)
252
- return;
253
- }
254
- this.closeContextMenu();
213
+ public createContextMenuItems(): Node[] {
214
+ return Dialog.createContextMenuContentCallback(
215
+ this,
216
+ this.dockManager.context.model.documentManagerNode.children);
255
217
  }
256
218
  }
@@ -1,24 +1,24 @@
1
- import { DockWheel } from "./DockWheel.js";
2
- import { Utils } from "./Utils.js";
3
- import { Point } from "./Point.js";
1
+ import { Dialog } from "./Dialog.js";
2
+ import { DockConfig } from "./DockConfig.js";
3
+ import { DockGraphDeserializer } from "./DockGraphDeserializer.js";
4
+ import { DockGraphSerializer } from "./DockGraphSerializer.js";
5
+ import { DockLayoutEngine } from "./DockLayoutEngine.js";
4
6
  import { DockManagerContext } from "./DockManagerContext.js";
7
+ import { DockModel } from "./DockModel.js";
5
8
  import { DockNode } from "./DockNode.js";
6
- import { DockLayoutEngine } from "./DockLayoutEngine.js";
9
+ import { DockWheel } from "./DockWheel.js";
10
+ import { PanelType } from "./enums/PanelType.js";
7
11
  import { EventHandler } from "./EventHandler.js";
8
- import { Dialog } from "./Dialog.js";
9
- import { DockGraphSerializer } from "./DockGraphSerializer.js";
10
- import { DockGraphDeserializer } from "./DockGraphDeserializer.js";
11
- import { IDockContainer } from "./interfaces/IDockContainer.js";
12
- import { TabPage } from "./TabPage.js";
13
- import { SplitterDockContainer } from "./SplitterDockContainer.js";
14
- import { PanelContainer } from "./PanelContainer.js";
15
12
  import { FillDockContainer } from "./FillDockContainer.js";
16
- import { ILayoutEventListener } from "./interfaces/ILayoutEventListener.js";
17
- import { DockModel } from "./DockModel.js";
13
+ import { IDockContainer } from "./interfaces/IDockContainer.js";
18
14
  import { IDockContainerWithSize } from "./interfaces/IDockContainerWithSize.js";
19
- import { DockConfig } from "./DockConfig.js";
20
- import { PanelType } from "./enums/PanelType.js";
15
+ import { ILayoutEventListener } from "./interfaces/ILayoutEventListener.js";
21
16
  import { IState } from "./interfaces/IState.js";
17
+ import { PanelContainer } from "./PanelContainer.js";
18
+ import { Point } from "./Point.js";
19
+ import { SplitterDockContainer } from "./SplitterDockContainer.js";
20
+ import { TabPage } from "./TabPage.js";
21
+ import { Utils } from "./Utils.js";
22
22
 
23
23
  /**
24
24
  * Dock manager manages all the dock panels in a hierarchy, similar to visual studio.
@@ -1,23 +1,24 @@
1
- import { DockManager } from "./DockManager.js";
2
- import { Utils } from "./Utils.js";
3
- import { UndockInitiator } from "./UndockInitiator.js";
1
+ import { moveElementToNewBrowserWindow } from "./BrowserDialogHelper.js";
4
2
  import { ContainerType } from "./ContainerType.js";
3
+ import { Dialog } from "./Dialog.js";
4
+ import { DockManager } from "./DockManager.js";
5
5
  import { EventHandler } from "./EventHandler.js";
6
- import { ISize } from "./interfaces/ISize.js";
7
- import { IDockContainerWithSize } from "./interfaces/IDockContainerWithSize.js";
8
- import { IState } from "./interfaces/IState.js";
9
6
  import { Point } from "./Point.js";
10
- import { IDockContainer } from "./interfaces/IDockContainer.js";
11
- import { PanelType } from "./enums/PanelType.js";
12
- import { Dialog } from "./Dialog.js";
13
7
  import { TabPage } from './TabPage.js';
8
+ import { UndockInitiator } from "./UndockInitiator.js";
9
+ import { Utils } from "./Utils.js";
10
+ import { PanelType } from "./enums/PanelType.js";
14
11
  import { Localizer } from "./i18n/Localizer.js";
15
- import { moveElementToNewBrowserWindow } from "./BrowserDialogHelper.js";
12
+ import { IContextMenuProvider } from "./interfaces/IContextMenuProvider.js";
13
+ import { IDockContainer } from "./interfaces/IDockContainer.js";
14
+ import { IDockContainerWithSize } from "./interfaces/IDockContainerWithSize.js";
15
+ import { ISize } from "./interfaces/ISize.js";
16
+ import { IState } from "./interfaces/IState.js";
16
17
 
17
18
  /**
18
19
  * This dock container wraps the specified element on a panel frame with a title bar and close button
19
20
  */
20
- export class PanelContainer implements IDockContainerWithSize {
21
+ export class PanelContainer implements IDockContainerWithSize, IContextMenuProvider {
21
22
 
22
23
  public closePanelContainerCallback: (panelContainer: PanelContainer) => Promise<boolean>;
23
24
 
@@ -60,6 +61,7 @@ export class PanelContainer implements IDockContainerWithSize {
60
61
  _hideCloseButton: boolean;
61
62
  _grayOut: HTMLDivElement;
62
63
  _ctxMenu: HTMLDivElement;
64
+ private _contextMenuProvider: IContextMenuProvider;
63
65
 
64
66
  constructor(elementContent: HTMLElement, dockManager: DockManager, title?: string, panelType?: PanelType, hideCloseButton?: boolean) {
65
67
  if (!title)
@@ -104,6 +106,7 @@ export class PanelContainer implements IDockContainerWithSize {
104
106
  this._canUndock = dockManager._undockEnabled;
105
107
  this.eventListeners = [];
106
108
  this._hideCloseButton = hideCloseButton;
109
+ this._contextMenuProvider = this;
107
110
  this.windowsContextMenuClose = this.windowsContextMenuClose.bind(this);
108
111
 
109
112
  this._initialize();
@@ -162,7 +165,7 @@ export class PanelContainer implements IDockContainerWithSize {
162
165
  this._updateTitle();
163
166
 
164
167
  this.undockInitiator = new UndockInitiator(this.elementTitle, this.performUndockToDialog.bind(this));
165
- delete this.floatingDialog;
168
+ this.floatingDialog = undefined;
166
169
 
167
170
  this.mouseDownHandler = new EventHandler(this.elementPanel, 'mousedown', this.onMouseDown.bind(this));
168
171
  this.touchDownHandler = new EventHandler(this.elementPanel, 'touchstart', this.onMouseDown.bind(this), { passive: true });
@@ -190,11 +193,15 @@ export class PanelContainer implements IDockContainerWithSize {
190
193
  return result;
191
194
  }
192
195
 
196
+ public createContextMenuItems(): Node[] {
197
+ return PanelContainer.createContextMenuContentCallback(this);
198
+ }
199
+
193
200
  oncontextMenuClicked(e: MouseEvent) {
194
201
  e.preventDefault();
195
202
 
196
- if (!this._ctxMenu && PanelContainer.createContextMenuContentCallback) {
197
- const menuItems = PanelContainer.createContextMenuContentCallback(this);
203
+ if (!this._ctxMenu) {
204
+ const menuItems = this._contextMenuProvider.createContextMenuItems();
198
205
 
199
206
  if (menuItems.length == 0) {
200
207
  return;
@@ -255,6 +262,7 @@ export class PanelContainer implements IDockContainerWithSize {
255
262
  this._floatingDialog = value;
256
263
  let canUndock = (this._floatingDialog === undefined);
257
264
  this.undockInitiator.enabled = canUndock;
265
+ this._contextMenuProvider = value ?? this;
258
266
  }
259
267
 
260
268
  static async loadFromState(state: IState, dockManager: DockManager) {
@@ -1,13 +1,14 @@
1
+ import { ContainerType } from "./ContainerType.js";
1
2
  import { Dialog } from "./Dialog.js";
2
- import { ResizeHandle } from "./ResizeHandle.js";
3
- import { EventHandler } from "./EventHandler.js";
4
3
  import { DockManager } from "./DockManager.js";
5
- import { IDockContainer } from "./interfaces/IDockContainer.js";
6
- import { ContainerType } from "./ContainerType.js";
4
+ import { EventHandler } from "./EventHandler.js";
7
5
  import { Point } from "./Point.js";
6
+ import { ResizeHandle } from "./ResizeHandle.js";
8
7
  import { Utils } from "./Utils.js";
9
- import { IThickness } from "./interfaces/IThickness.js";
8
+ import { ResizeDirection } from "./enums/ResizeDirection.js";
9
+ import { IDockContainer } from "./interfaces/IDockContainer.js";
10
10
  import { IState } from "./interfaces/IState.js";
11
+ import { IThickness } from "./interfaces/IThickness.js";
11
12
 
12
13
  /**
13
14
  * Decorates a dock container with resizer handles around its base element
@@ -27,11 +28,11 @@ export class ResizableContainer implements IDockContainer {
27
28
  resizeHandles: ResizeHandle[];
28
29
  previousMousePosition: Point;
29
30
  private iframeEventHandlers: EventHandler[];
30
- private disableResize: boolean;
31
+ private resizeDirection: ResizeDirection;
31
32
 
32
- constructor(dialog: Dialog, delegate: IDockContainer, topLevelElement: HTMLElement, disableResize: boolean = false) {
33
+ constructor(dialog: Dialog, delegate: IDockContainer, topLevelElement: HTMLElement, resizeDirection: ResizeDirection) {
33
34
  this.dialog = dialog;
34
- this.disableResize = disableResize;
35
+ this.resizeDirection = resizeDirection;
35
36
  this.delegate = delegate;
36
37
  this.containerElement = delegate.containerElement;
37
38
  this.dockManager = delegate.dockManager;
@@ -51,17 +52,38 @@ export class ResizableContainer implements IDockContainer {
51
52
 
52
53
  _buildResizeHandles() {
53
54
  this.resizeHandles = [];
54
- // this._buildResizeHandle(true, false, true, false); // Dont need the corner resizer near the close button
55
- if (!this.disableResize) {
56
- this._buildResizeHandle(false, true, true, false);
57
- this._buildResizeHandle(true, false, false, true);
58
- this._buildResizeHandle(false, true, false, true);
59
55
 
60
- this._buildResizeHandle(true, false, false, false);
61
- this._buildResizeHandle(false, true, false, false);
56
+ if (this.resizeDirection & ResizeDirection.North) {
62
57
  this._buildResizeHandle(false, false, true, false);
58
+ }
59
+
60
+ if (this.resizeDirection & ResizeDirection.East) {
61
+ this._buildResizeHandle(true, false, false, false);
62
+ }
63
+
64
+ if (this.resizeDirection & ResizeDirection.South) {
63
65
  this._buildResizeHandle(false, false, false, true);
64
66
  }
67
+
68
+ if (this.resizeDirection & ResizeDirection.West) {
69
+ this._buildResizeHandle(false, true, false, false);
70
+ }
71
+
72
+ if (this.resizeDirection & ResizeDirection.NorthWest) {
73
+ this._buildResizeHandle(false, true, true, false);
74
+ }
75
+
76
+ if (this.resizeDirection & ResizeDirection.NorthEast) {
77
+ this._buildResizeHandle(true, false, true, false);
78
+ }
79
+
80
+ if (this.resizeDirection & ResizeDirection.SouthEast) {
81
+ this._buildResizeHandle(true, false, false, true);
82
+ }
83
+
84
+ if (this.resizeDirection & ResizeDirection.SouthWest) {
85
+ this._buildResizeHandle(false, true, false, true);
86
+ }
65
87
  }
66
88
 
67
89
  _buildResizeHandle(east: boolean, west: boolean, north: boolean, south: boolean) {
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Bit flags describing the allowed resizing direction of a dialog
3
+ */
4
+ export enum ResizeDirection {
5
+ None = 0,
6
+ North = 1,
7
+ NorthEast = 2,
8
+ East = 4,
9
+ SouthEast = 8,
10
+ South = 16,
11
+ SouthWest = 32,
12
+ West = 64,
13
+ NorthWest = 128,
14
+ Sides = North | South | East | West,
15
+ Angles = NorthEast | SouthEast | SouthWest | NorthWest,
16
+ All = North | South | East | West | NorthEast | NorthWest | SouthEast | SouthWest
17
+ }
package/src/index.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  export * from './enums/PanelType.js';
2
+ export * from './enums/ResizeDirection.js';
2
3
  export * from './enums/TabHostDirection.js';
3
4
  export * from './enums/WheelTypes.js';
4
5
  export * from './i18n/Defaults.js';
5
6
  export * from './i18n/Localizer.js';
7
+ export * from './interfaces/IContextMenuProvider.js';
6
8
  export * from './interfaces/IDockContainer.js';
7
9
  export * from './interfaces/IDockContainerWithSize.js';
8
10
  export * from './interfaces/ILayoutEventListener.js';
@@ -0,0 +1,3 @@
1
+ export interface IContextMenuProvider {
2
+ createContextMenuItems(): Node[];
3
+ }
@@ -181,33 +181,33 @@ export class DockSpawnTsWebcomponent extends HTMLElement {
181
181
 
182
182
  dockFill(element: HTMLElement, panelType?: PanelType, dockNode?: DockNode, title?: string, hideCloseButton?: boolean) {
183
183
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
184
- this.dockManager.dockFill(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container);
184
+ return this.dockManager.dockFill(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container);
185
185
  }
186
186
 
187
187
  dockLeft(element: HTMLElement, panelType?: PanelType, dockNode?: DockNode, ratio?: number, title?: string, hideCloseButton?: boolean) {
188
188
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
189
- this.dockManager.dockLeft(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
189
+ return this.dockManager.dockLeft(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
190
190
  }
191
191
 
192
192
  dockRight(element: HTMLElement, panelType?: PanelType, dockNode?: DockNode, ratio?: number, title?: string, hideCloseButton?: boolean) {
193
193
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
194
- this.dockManager.dockRight(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
194
+ return this.dockManager.dockRight(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
195
195
  }
196
196
 
197
197
  dockUp(element: HTMLElement, panelType?: PanelType, dockNode?: DockNode, ratio?: number, title?: string, hideCloseButton?: boolean) {
198
198
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
199
- this.dockManager.dockUp(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
199
+ return this.dockManager.dockUp(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
200
200
  }
201
201
 
202
202
  dockDown(element: HTMLElement, panelType?: PanelType, dockNode?: DockNode, ratio?: number, title?: string, hideCloseButton?: boolean) {
203
203
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
204
- this.dockManager.dockDown(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
204
+ return this.dockManager.dockDown(dockNode != null ? dockNode : this.dockManager.context.model.documentManagerNode, container, ratio);
205
205
  }
206
206
 
207
207
  floatDialog(element: HTMLElement, x: number, y: number, width: number, height: number, panelType?: PanelType, title?: string, hideCloseButton?: boolean) {
208
208
  let container = new PanelContainer(element as HTMLElement, this.dockManager, title, panelType, hideCloseButton);
209
209
  let dlg = this.dockManager.floatDialog(container, x, y, null);
210
- dlg.resize(width, height);
210
+ return dlg.resize(width, height);
211
211
  }
212
212
  }
213
213