dockview-core 1.17.2 → 2.1.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 (132) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -3
  2. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
  3. package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
  4. package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
  5. package/dist/cjs/api/dockviewPanelApi.js +5 -3
  6. package/dist/cjs/dnd/abstractDragHandler.js +1 -1
  7. package/dist/cjs/dnd/dnd.d.ts +2 -2
  8. package/dist/cjs/dnd/droptarget.js +4 -4
  9. package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
  10. package/dist/cjs/dockview/components/panel/content.js +3 -1
  11. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
  12. package/dist/cjs/dockview/components/tab/tab.js +4 -4
  13. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
  14. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -2
  15. package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
  16. package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
  17. package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
  18. package/dist/cjs/dockview/dockviewComponent.js +103 -38
  19. package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
  20. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
  21. package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
  22. package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
  23. package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
  24. package/dist/cjs/dockview/options.d.ts +12 -0
  25. package/dist/cjs/dockview/options.js +1 -0
  26. package/dist/cjs/dom.d.ts +11 -1
  27. package/dist/cjs/dom.js +19 -1
  28. package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
  29. package/dist/cjs/gridview/baseComponentGridview.js +8 -8
  30. package/dist/cjs/gridview/basePanelView.d.ts +1 -1
  31. package/dist/cjs/gridview/branchNode.d.ts +1 -1
  32. package/dist/cjs/gridview/branchNode.js +1 -1
  33. package/dist/cjs/gridview/gridview.d.ts +9 -1
  34. package/dist/cjs/gridview/gridview.js +51 -7
  35. package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
  36. package/dist/cjs/gridview/gridviewPanel.js +60 -32
  37. package/dist/cjs/gridview/leafNode.d.ts +1 -1
  38. package/dist/cjs/index.d.ts +8 -9
  39. package/dist/cjs/index.js +14 -7
  40. package/dist/cjs/overlay/overlay.d.ts +6 -3
  41. package/dist/cjs/overlay/overlay.js +15 -0
  42. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
  43. package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
  44. package/dist/cjs/paneview/paneview.d.ts +3 -3
  45. package/dist/cjs/paneview/paneview.js +3 -3
  46. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
  47. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
  48. package/dist/cjs/paneview/paneviewPanel.js +3 -3
  49. package/dist/cjs/popoutWindow.js +23 -16
  50. package/dist/cjs/splitview/splitview.d.ts +6 -6
  51. package/dist/cjs/splitview/splitview.js +18 -17
  52. package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
  53. package/dist/cjs/splitview/viewItem.d.ts +1 -1
  54. package/dist/cjs/svg.js +1 -1
  55. package/dist/dockview-core.amd.js +346 -210
  56. package/dist/dockview-core.amd.js.map +1 -1
  57. package/dist/dockview-core.amd.min.js +2 -2
  58. package/dist/dockview-core.amd.min.js.map +1 -1
  59. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  60. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  61. package/dist/dockview-core.amd.noStyle.js +345 -209
  62. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  63. package/dist/dockview-core.cjs.js +346 -210
  64. package/dist/dockview-core.cjs.js.map +1 -1
  65. package/dist/dockview-core.esm.js +347 -209
  66. package/dist/dockview-core.esm.js.map +1 -1
  67. package/dist/dockview-core.esm.min.js +2 -2
  68. package/dist/dockview-core.esm.min.js.map +1 -1
  69. package/dist/dockview-core.js +346 -210
  70. package/dist/dockview-core.js.map +1 -1
  71. package/dist/dockview-core.min.js +2 -2
  72. package/dist/dockview-core.min.js.map +1 -1
  73. package/dist/dockview-core.min.noStyle.js +2 -2
  74. package/dist/dockview-core.min.noStyle.js.map +1 -1
  75. package/dist/dockview-core.noStyle.js +345 -209
  76. package/dist/dockview-core.noStyle.js.map +1 -1
  77. package/dist/esm/api/component.api.d.ts +3 -3
  78. package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
  79. package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
  80. package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
  81. package/dist/esm/api/dockviewPanelApi.js +5 -3
  82. package/dist/esm/dnd/abstractDragHandler.js +1 -1
  83. package/dist/esm/dnd/dnd.d.ts +2 -2
  84. package/dist/esm/dnd/droptarget.js +4 -4
  85. package/dist/esm/dockview/components/panel/content.d.ts +2 -2
  86. package/dist/esm/dockview/components/panel/content.js +4 -2
  87. package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
  88. package/dist/esm/dockview/components/tab/tab.js +4 -4
  89. package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
  90. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -2
  91. package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
  92. package/dist/esm/dockview/components/watermark/watermark.js +2 -34
  93. package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
  94. package/dist/esm/dockview/dockviewComponent.js +102 -37
  95. package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
  96. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
  97. package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
  98. package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
  99. package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
  100. package/dist/esm/dockview/options.d.ts +12 -0
  101. package/dist/esm/dockview/options.js +1 -0
  102. package/dist/esm/dom.d.ts +11 -1
  103. package/dist/esm/dom.js +14 -0
  104. package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
  105. package/dist/esm/gridview/baseComponentGridview.js +8 -4
  106. package/dist/esm/gridview/basePanelView.d.ts +1 -1
  107. package/dist/esm/gridview/branchNode.d.ts +1 -1
  108. package/dist/esm/gridview/branchNode.js +1 -1
  109. package/dist/esm/gridview/gridview.d.ts +9 -1
  110. package/dist/esm/gridview/gridview.js +51 -7
  111. package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
  112. package/dist/esm/gridview/gridviewPanel.js +40 -12
  113. package/dist/esm/gridview/leafNode.d.ts +1 -1
  114. package/dist/esm/index.d.ts +8 -9
  115. package/dist/esm/index.js +5 -6
  116. package/dist/esm/overlay/overlay.d.ts +6 -3
  117. package/dist/esm/overlay/overlay.js +11 -0
  118. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
  119. package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
  120. package/dist/esm/paneview/paneview.d.ts +3 -3
  121. package/dist/esm/paneview/paneview.js +3 -3
  122. package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
  123. package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
  124. package/dist/esm/paneview/paneviewPanel.js +3 -3
  125. package/dist/esm/popoutWindow.js +24 -17
  126. package/dist/esm/splitview/splitview.d.ts +6 -6
  127. package/dist/esm/splitview/splitview.js +18 -17
  128. package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
  129. package/dist/esm/splitview/viewItem.d.ts +1 -1
  130. package/dist/esm/svg.js +1 -1
  131. package/dist/styles/dockview.css +111 -151
  132. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { FloatingGroupOptions, IDockviewComponent, MovePanelEvent, SerializedDockview } from '../dockview/dockviewComponent';
1
+ import { DockviewMaximizedGroupChanged, FloatingGroupOptions, IDockviewComponent, MovePanelEvent, SerializedDockview } from '../dockview/dockviewComponent';
2
2
  import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, DockviewDndOverlayEvent, MovementOptions } from '../dockview/options';
3
3
  import { Parameters } from '../panel/types';
4
4
  import { Direction } from '../gridview/baseComponentGridview';
@@ -497,7 +497,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
497
497
  maximizeGroup(panel: IDockviewPanel): void;
498
498
  hasMaximizedGroup(): boolean;
499
499
  exitMaximizedGroup(): void;
500
- get onDidMaximizedGroupChange(): Event<void>;
500
+ get onDidMaximizedGroupChange(): Event<DockviewMaximizedGroupChanged>;
501
501
  /**
502
502
  * Add a popout group in a new Window
503
503
  */
@@ -512,7 +512,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
512
512
  id: string;
513
513
  window: Window;
514
514
  }) => void;
515
- }): Promise<void>;
515
+ }): Promise<boolean>;
516
516
  setGap(gap: number | undefined): void;
517
517
  updateOptions(options: Partial<DockviewComponentOptions>): void;
518
518
  /**
@@ -4,6 +4,14 @@ import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
4
4
  import { DockviewGroupChangeEvent, DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
5
5
  import { Emitter, Event } from '../events';
6
6
  import { GridviewPanelApi, GridviewPanelApiImpl } from './gridviewPanelApi';
7
+ export interface DockviewGroupMoveParams {
8
+ group?: DockviewGroupPanel;
9
+ position?: Position;
10
+ /**
11
+ * The index to place the panel within a group, only applicable if the placement is within an existing group
12
+ */
13
+ index?: number;
14
+ }
7
15
  export interface DockviewGroupPanelApi extends GridviewPanelApi {
8
16
  readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
9
17
  readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
@@ -12,10 +20,7 @@ export interface DockviewGroupPanelApi extends GridviewPanelApi {
12
20
  * If you require the Window object
13
21
  */
14
22
  getWindow(): Window;
15
- moveTo(options: {
16
- group?: DockviewGroupPanel;
17
- position?: Position;
18
- }): void;
23
+ moveTo(options: DockviewGroupMoveParams): void;
19
24
  maximize(): void;
20
25
  isMaximized(): boolean;
21
26
  exitMaximized(): void;
@@ -36,10 +41,7 @@ export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
36
41
  constructor(id: string, accessor: DockviewComponent);
37
42
  close(): void;
38
43
  getWindow(): Window;
39
- moveTo(options: {
40
- group?: DockviewGroupPanel;
41
- position?: Position;
42
- }): void;
44
+ moveTo(options: DockviewGroupMoveParams): void;
43
45
  maximize(): void;
44
46
  isMaximized(): boolean;
45
47
  exitMaximized(): void;
@@ -71,6 +71,7 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
71
71
  position: options.group
72
72
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
73
73
  : 'center',
74
+ index: options.index,
74
75
  },
75
76
  });
76
77
  };
@@ -3,9 +3,8 @@ import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
3
3
  import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
4
4
  import { DockviewPanel } from '../dockview/dockviewPanel';
5
5
  import { DockviewComponent } from '../dockview/dockviewComponent';
6
- import { Position } from '../dnd/droptarget';
7
6
  import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
8
- import { DockviewGroupPanelFloatingChangeEvent } from './dockviewGroupPanelApi';
7
+ import { DockviewGroupMoveParams, DockviewGroupPanelFloatingChangeEvent } from './dockviewGroupPanelApi';
9
8
  import { DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
10
9
  export interface TitleEvent {
11
10
  readonly title: string;
@@ -18,6 +17,7 @@ export interface ActiveGroupEvent {
18
17
  }
19
18
  export interface GroupChangedEvent {
20
19
  }
20
+ export type DockviewPanelMoveParams = DockviewGroupMoveParams;
21
21
  export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'onDidConstraintsChange' | 'setConstraints'> {
22
22
  /**
23
23
  * The id of the tab component renderer
@@ -38,11 +38,7 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
38
38
  close(): void;
39
39
  setTitle(title: string): void;
40
40
  setRenderer(renderer: DockviewPanelRenderer): void;
41
- moveTo(options: {
42
- group: DockviewGroupPanel;
43
- position?: Position;
44
- index?: number;
45
- }): void;
41
+ moveTo(options: DockviewPanelMoveParams): void;
46
42
  maximize(): void;
47
43
  isMaximized(): boolean;
48
44
  exitMaximized(): void;
@@ -52,10 +48,10 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
52
48
  getWindow(): Window;
53
49
  }
54
50
  export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi {
55
- private panel;
51
+ private readonly panel;
56
52
  private readonly accessor;
57
53
  private _group;
58
- private _tabComponent;
54
+ private readonly _tabComponent;
59
55
  readonly _onDidTitleChange: Emitter<TitleEvent>;
60
56
  readonly onDidTitleChange: Event<TitleEvent>;
61
57
  private readonly _onDidActiveGroupChange;
@@ -76,11 +72,7 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
76
72
  get tabComponent(): string | undefined;
77
73
  constructor(panel: DockviewPanel, group: DockviewGroupPanel, accessor: DockviewComponent, component: string, tabComponent?: string);
78
74
  getWindow(): Window;
79
- moveTo(options: {
80
- group: DockviewGroupPanel;
81
- position?: Position;
82
- index?: number;
83
- }): void;
75
+ moveTo(options: DockviewPanelMoveParams): void;
84
76
  setTitle(title: string): void;
85
77
  setRenderer(renderer: DockviewPanelRenderer): void;
86
78
  close(): void;
@@ -100,12 +100,14 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
100
100
  return this.group.api.getWindow();
101
101
  };
102
102
  DockviewPanelApiImpl.prototype.moveTo = function (options) {
103
- var _a;
103
+ var _a, _b;
104
104
  this.accessor.moveGroupOrPanel({
105
105
  from: { groupId: this._group.id, panelId: this.panel.id },
106
106
  to: {
107
- group: options.group,
108
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
107
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
108
+ position: options.group
109
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
110
+ : 'center',
109
111
  index: options.index,
110
112
  },
111
113
  });
@@ -65,7 +65,7 @@ var DragHandler = /** @class */ (function (_super) {
65
65
  * dnd logic. You can see the code at
66
66
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
67
67
  */
68
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
68
+ event.dataTransfer.setData('text/plain', '');
69
69
  }
70
70
  }
71
71
  }), (0, events_1.addDisposableListener)(this.el, 'dragend', function () {
@@ -7,8 +7,8 @@ export interface IDragAndDropObserverCallbacks {
7
7
  onDragOver?: (e: DragEvent) => void;
8
8
  }
9
9
  export declare class DragAndDropObserver extends CompositeDisposable {
10
- private element;
11
- private callbacks;
10
+ private readonly element;
11
+ private readonly callbacks;
12
12
  private target;
13
13
  constructor(element: HTMLElement, callbacks: IDragAndDropObserverCallbacks);
14
14
  onDragEnter(e: DragEvent): void;
@@ -147,12 +147,12 @@ var Droptarget = /** @class */ (function (_super) {
147
147
  _this.markAsUsed(e);
148
148
  if (!_this.targetElement) {
149
149
  _this.targetElement = document.createElement('div');
150
- _this.targetElement.className = 'drop-target-dropzone';
150
+ _this.targetElement.className = 'dv-drop-target-dropzone';
151
151
  _this.overlayElement = document.createElement('div');
152
- _this.overlayElement.className = 'drop-target-selection';
152
+ _this.overlayElement.className = 'dv-drop-target-selection';
153
153
  _this._state = 'center';
154
154
  _this.targetElement.appendChild(_this.overlayElement);
155
- _this.element.classList.add('drop-target');
155
+ _this.element.classList.add('dv-drop-target');
156
156
  _this.element.append(_this.targetElement);
157
157
  }
158
158
  _this.toggleClasses(quadrant, width, height);
@@ -298,7 +298,7 @@ var Droptarget = /** @class */ (function (_super) {
298
298
  this.element.removeChild(this.targetElement);
299
299
  this.targetElement = undefined;
300
300
  this.overlayElement = undefined;
301
- this.element.classList.remove('drop-target');
301
+ this.element.classList.remove('dv-drop-target');
302
302
  }
303
303
  };
304
304
  Droptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';
@@ -21,9 +21,9 @@ export interface IContentContainer extends IDisposable {
21
21
  export declare class ContentContainer extends CompositeDisposable implements IContentContainer {
22
22
  private readonly accessor;
23
23
  private readonly group;
24
- private _element;
24
+ private readonly _element;
25
25
  private panel;
26
- private disposable;
26
+ private readonly disposable;
27
27
  private readonly _onDidFocus;
28
28
  readonly onDidFocus: Event<void>;
29
29
  private readonly _onDidBlur;
@@ -33,7 +33,7 @@ var ContentContainer = /** @class */ (function (_super) {
33
33
  _this._onDidBlur = new events_1.Emitter();
34
34
  _this.onDidBlur = _this._onDidBlur.event;
35
35
  _this._element = document.createElement('div');
36
- _this._element.className = 'content-container';
36
+ _this._element.className = 'dv-content-container';
37
37
  _this._element.tabIndex = -1;
38
38
  _this.addDisposables(_this._onDidFocus, _this._onDidBlur);
39
39
  _this.dropTarget = new droptarget_1.Droptarget(_this.element, {
@@ -116,6 +116,8 @@ var ContentContainer = /** @class */ (function (_super) {
116
116
  referenceContainer: this,
117
117
  });
118
118
  break;
119
+ default:
120
+ throw new Error("dockview: invalid renderer type '".concat(panel.api.renderer, "'"));
119
121
  }
120
122
  if (doRender) {
121
123
  var focusTracker = (0, dom_1.trackFocus)(container);
@@ -1,9 +1,9 @@
1
1
  import { CompositeDisposable } from '../../../lifecycle';
2
2
  import { ITabRenderer, GroupPanelPartInitParameters } from '../../types';
3
3
  export declare class DefaultTab extends CompositeDisposable implements ITabRenderer {
4
- private _element;
5
- private _content;
6
- private action;
4
+ private readonly _element;
5
+ private readonly _content;
6
+ private readonly action;
7
7
  private _title;
8
8
  get element(): HTMLElement;
9
9
  constructor();
@@ -58,10 +58,10 @@ var Tab = /** @class */ (function (_super) {
58
58
  _this._onDragStart = new events_1.Emitter();
59
59
  _this.onDragStart = _this._onDragStart.event;
60
60
  _this._element = document.createElement('div');
61
- _this._element.className = 'tab';
61
+ _this._element.className = 'dv-tab';
62
62
  _this._element.tabIndex = 0;
63
63
  _this._element.draggable = true;
64
- (0, dom_1.toggleClass)(_this.element, 'inactive-tab', true);
64
+ (0, dom_1.toggleClass)(_this.element, 'dv-inactive-tab', true);
65
65
  var dragHandler = new TabDragHandler(_this._element, _this.accessor, _this.group, _this.panel);
66
66
  _this.dropTarget = new droptarget_1.Droptarget(_this._element, {
67
67
  acceptedTargetZones: ['center'],
@@ -102,8 +102,8 @@ var Tab = /** @class */ (function (_super) {
102
102
  configurable: true
103
103
  });
104
104
  Tab.prototype.setActive = function (isActive) {
105
- (0, dom_1.toggleClass)(this.element, 'active-tab', isActive);
106
- (0, dom_1.toggleClass)(this.element, 'inactive-tab', !isActive);
105
+ (0, dom_1.toggleClass)(this.element, 'dv-active-tab', isActive);
106
+ (0, dom_1.toggleClass)(this.element, 'dv-inactive-tab', !isActive);
107
107
  };
108
108
  Tab.prototype.setContent = function (part) {
109
109
  if (this.content) {
@@ -77,16 +77,16 @@ var TabsContainer = /** @class */ (function (_super) {
77
77
  _this._onWillShowOverlay = new events_1.Emitter();
78
78
  _this.onWillShowOverlay = _this._onWillShowOverlay.event;
79
79
  _this._element = document.createElement('div');
80
- _this._element.className = 'tabs-and-actions-container';
80
+ _this._element.className = 'dv-tabs-and-actions-container';
81
81
  (0, dom_1.toggleClass)(_this._element, 'dv-full-width-single-tab', _this.accessor.options.singleTabMode === 'fullwidth');
82
82
  _this.rightActionsContainer = document.createElement('div');
83
- _this.rightActionsContainer.className = 'right-actions-container';
83
+ _this.rightActionsContainer.className = 'dv-right-actions-container';
84
84
  _this.leftActionsContainer = document.createElement('div');
85
- _this.leftActionsContainer.className = 'left-actions-container';
85
+ _this.leftActionsContainer.className = 'dv-left-actions-container';
86
86
  _this.preActionsContainer = document.createElement('div');
87
- _this.preActionsContainer.className = 'pre-actions-container';
87
+ _this.preActionsContainer.className = 'dv-pre-actions-container';
88
88
  _this.tabContainer = document.createElement('div');
89
- _this.tabContainer.className = 'tabs-container';
89
+ _this.tabContainer.className = 'dv-tabs-container';
90
90
  _this.voidContainer = new voidContainer_1.VoidContainer(_this.accessor, _this.group);
91
91
  _this._element.appendChild(_this.preActionsContainer);
92
92
  _this._element.appendChild(_this.tabContainer);
@@ -262,15 +262,11 @@ var TabsContainer = /** @class */ (function (_super) {
262
262
  };
263
263
  TabsContainer.prototype.openPanel = function (panel, index) {
264
264
  var _this = this;
265
- var _a;
266
265
  if (index === void 0) { index = this.tabs.length; }
267
266
  if (this.tabs.find(function (tab) { return tab.value.panel.id === panel.id; })) {
268
267
  return;
269
268
  }
270
269
  var tab = new tab_1.Tab(panel, this.accessor, this.group);
271
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
272
- throw new Error('invalid header component');
273
- }
274
270
  tab.setContent(panel.view.tab);
275
271
  var disposable = new lifecycle_1.CompositeDisposable(tab.onDragStart(function (event) {
276
272
  _this._onTabDragStart.fire({ nativeEvent: event, panel: panel });
@@ -33,8 +33,7 @@ var VoidContainer = /** @class */ (function (_super) {
33
33
  _this._onDragStart = new events_1.Emitter();
34
34
  _this.onDragStart = _this._onDragStart.event;
35
35
  _this._element = document.createElement('div');
36
- _this._element.className = 'void-container';
37
- _this._element.tabIndex = 0;
36
+ _this._element.className = 'dv-void-container';
38
37
  _this._element.draggable = true;
39
38
  _this.addDisposables(_this._onDrop, _this._onDragStart, (0, events_1.addDisposableListener)(_this._element, 'pointerdown', function () {
40
39
  _this.accessor.doSetGroupActive(_this.group);
@@ -1,11 +1,8 @@
1
1
  import { IWatermarkRenderer, WatermarkRendererInitParameters } from '../../types';
2
2
  import { CompositeDisposable } from '../../../lifecycle';
3
3
  export declare class Watermark extends CompositeDisposable implements IWatermarkRenderer {
4
- private _element;
5
- private _group;
6
- private _api;
4
+ private readonly _element;
7
5
  get element(): HTMLElement;
8
6
  constructor();
9
7
  init(_params: WatermarkRendererInitParameters): void;
10
- private render;
11
8
  }
@@ -16,39 +16,13 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Watermark = void 0;
19
- var events_1 = require("../../../events");
20
- var dom_1 = require("../../../dom");
21
19
  var lifecycle_1 = require("../../../lifecycle");
22
- var svg_1 = require("../../../svg");
23
20
  var Watermark = /** @class */ (function (_super) {
24
21
  __extends(Watermark, _super);
25
22
  function Watermark() {
26
23
  var _this = _super.call(this) || this;
27
24
  _this._element = document.createElement('div');
28
- _this._element.className = 'watermark';
29
- var title = document.createElement('div');
30
- title.className = 'watermark-title';
31
- var emptySpace = document.createElement('span');
32
- emptySpace.style.flexGrow = '1';
33
- var content = document.createElement('div');
34
- content.className = 'watermark-content';
35
- _this._element.appendChild(title);
36
- _this._element.appendChild(content);
37
- var actionsContainer = document.createElement('div');
38
- actionsContainer.className = 'actions-container';
39
- var closeAnchor = document.createElement('div');
40
- closeAnchor.className = 'close-action';
41
- closeAnchor.appendChild((0, svg_1.createCloseButton)());
42
- actionsContainer.appendChild(closeAnchor);
43
- title.appendChild(emptySpace);
44
- title.appendChild(actionsContainer);
45
- _this.addDisposables((0, events_1.addDisposableListener)(closeAnchor, 'click', function (event) {
46
- var _a;
47
- event.preventDefault();
48
- if (_this._group) {
49
- (_a = _this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(_this._group);
50
- }
51
- }));
25
+ _this._element.className = 'dv-watermark';
52
26
  return _this;
53
27
  }
54
28
  Object.defineProperty(Watermark.prototype, "element", {
@@ -59,13 +33,7 @@ var Watermark = /** @class */ (function (_super) {
59
33
  configurable: true
60
34
  });
61
35
  Watermark.prototype.init = function (_params) {
62
- this._api = _params.containerApi;
63
- this._group = _params.group;
64
- this.render();
65
- };
66
- Watermark.prototype.render = function () {
67
- var isOneGroup = !!(this._api && this._api.size <= 1);
68
- (0, dom_1.toggleClass)(this.element, 'has-actions', isOneGroup);
36
+ // noop
69
37
  };
70
38
  return Watermark;
71
39
  }(lifecycle_1.CompositeDisposable));
@@ -14,6 +14,27 @@ import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
14
14
  import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
15
15
  import { AnchoredBox, AnchorPosition, Box } from '../types';
16
16
  import { DockviewPanelRenderer, OverlayRenderContainer } from '../overlay/overlayRenderContainer';
17
+ export interface DockviewPopoutGroupOptions {
18
+ /**
19
+ * The position of the popout group
20
+ */
21
+ position?: Box;
22
+ /**
23
+ * The same-origin path at which the popout window will be created
24
+ *
25
+ * Defaults to `/popout.html` if not provided
26
+ */
27
+ popoutUrl?: string;
28
+ onDidOpen?: (event: {
29
+ id: string;
30
+ window: Window;
31
+ }) => void;
32
+ onWillClose?: (event: {
33
+ id: string;
34
+ window: Window;
35
+ }) => void;
36
+ overridePopoutGroup?: DockviewGroupPanel;
37
+ }
17
38
  export interface PanelReference {
18
39
  update: (event: {
19
40
  params: {
@@ -28,6 +49,7 @@ export interface SerializedFloatingGroup {
28
49
  }
29
50
  export interface SerializedPopoutGroup {
30
51
  data: GroupPanelViewState;
52
+ url?: string;
31
53
  gridReferenceGroup?: string;
32
54
  position: Box | null;
33
55
  }
@@ -79,6 +101,10 @@ export interface FloatingGroupOptionsInternal extends FloatingGroupOptions {
79
101
  inDragMode?: boolean;
80
102
  skipActiveGroup?: boolean;
81
103
  }
104
+ export interface DockviewMaximizedGroupChanged {
105
+ group: DockviewGroupPanel;
106
+ isMaximized: boolean;
107
+ }
82
108
  export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
83
109
  readonly activePanel: IDockviewPanel | undefined;
84
110
  readonly totalPanels: number;
@@ -99,6 +125,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
99
125
  readonly onDidActiveGroupChange: Event<DockviewGroupPanel | undefined>;
100
126
  readonly onUnhandledDragOverEvent: Event<DockviewDndOverlayEvent>;
101
127
  readonly onDidMovePanel: Event<MovePanelEvent>;
128
+ readonly onDidMaximizedGroupChange: Event<DockviewMaximizedGroupChanged>;
102
129
  readonly options: DockviewComponentOptions;
103
130
  updateOptions(options: DockviewOptions): void;
104
131
  moveGroupOrPanel(options: MoveGroupOrPanelOptions): void;
@@ -129,7 +156,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
129
156
  id: string;
130
157
  window: Window;
131
158
  }) => void;
132
- }): Promise<void>;
159
+ }): Promise<boolean>;
133
160
  }
134
161
  export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
135
162
  private readonly nextGroupId;
@@ -160,6 +187,8 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
160
187
  readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
161
188
  private readonly _onDidMovePanel;
162
189
  readonly onDidMovePanel: Event<MovePanelEvent>;
190
+ private readonly _onDidMaximizedGroupChange;
191
+ readonly onDidMaximizedGroupChange: Event<DockviewMaximizedGroupChanged>;
163
192
  private readonly _floatingGroups;
164
193
  private readonly _popoutGroups;
165
194
  private readonly _rootDropTarget;
@@ -179,20 +208,8 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
179
208
  get gap(): number;
180
209
  get floatingGroups(): DockviewFloatingGroupPanel[];
181
210
  constructor(parentElement: HTMLElement, options: DockviewComponentOptions);
182
- addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: {
183
- skipRemoveGroup?: boolean;
184
- position?: Box;
185
- popoutUrl?: string;
186
- onDidOpen?: (event: {
187
- id: string;
188
- window: Window;
189
- }) => void;
190
- onWillClose?: (event: {
191
- id: string;
192
- window: Window;
193
- }) => void;
194
- overridePopoutGroup?: DockviewGroupPanel;
195
- }): Promise<void>;
211
+ setVisible(panel: DockviewGroupPanel, visible: boolean): void;
212
+ addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: DockviewPopoutGroupOptions): Promise<boolean>;
196
213
  addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, options?: FloatingGroupOptionsInternal): void;
197
214
  private orthogonalize;
198
215
  updateOptions(options: Partial<DockviewComponentOptions>): void;
@@ -214,7 +231,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
214
231
  addPanel<T extends object = Parameters>(options: AddPanelOptions<T>): DockviewPanel;
215
232
  removePanel(panel: IDockviewPanel, options?: {
216
233
  removeEmptyGroup: boolean;
217
- skipDispose: boolean;
234
+ skipDispose?: boolean;
218
235
  skipSetActiveGroup?: boolean;
219
236
  }): void;
220
237
  createWatermarkComponent(): IWatermarkRenderer;