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;
@@ -47,6 +47,7 @@ export class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
47
47
  position: options.group
48
48
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
49
49
  : 'center',
50
+ index: options.index,
50
51
  },
51
52
  });
52
53
  }
@@ -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;
@@ -56,12 +56,14 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
56
56
  return this.group.api.getWindow();
57
57
  }
58
58
  moveTo(options) {
59
- var _a;
59
+ var _a, _b;
60
60
  this.accessor.moveGroupOrPanel({
61
61
  from: { groupId: this._group.id, panelId: this.panel.id },
62
62
  to: {
63
- group: options.group,
64
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
63
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
64
+ position: options.group
65
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
66
+ : 'center',
65
67
  index: options.index,
66
68
  },
67
69
  });
@@ -44,7 +44,7 @@ export class DragHandler extends CompositeDisposable {
44
44
  * dnd logic. You can see the code at
45
45
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
46
46
  */
47
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
47
+ event.dataTransfer.setData('text/plain', '');
48
48
  }
49
49
  }
50
50
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -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;
@@ -117,12 +117,12 @@ export class Droptarget extends CompositeDisposable {
117
117
  this.markAsUsed(e);
118
118
  if (!this.targetElement) {
119
119
  this.targetElement = document.createElement('div');
120
- this.targetElement.className = 'drop-target-dropzone';
120
+ this.targetElement.className = 'dv-drop-target-dropzone';
121
121
  this.overlayElement = document.createElement('div');
122
- this.overlayElement.className = 'drop-target-selection';
122
+ this.overlayElement.className = 'dv-drop-target-selection';
123
123
  this._state = 'center';
124
124
  this.targetElement.appendChild(this.overlayElement);
125
- this.element.classList.add('drop-target');
125
+ this.element.classList.add('dv-drop-target');
126
126
  this.element.append(this.targetElement);
127
127
  }
128
128
  this.toggleClasses(quadrant, width, height);
@@ -260,7 +260,7 @@ export class Droptarget extends CompositeDisposable {
260
260
  this.element.removeChild(this.targetElement);
261
261
  this.targetElement = undefined;
262
262
  this.overlayElement = undefined;
263
- this.element.classList.remove('drop-target');
263
+ this.element.classList.remove('dv-drop-target');
264
264
  }
265
265
  }
266
266
  }
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';
2
- import { Emitter, } from '../../../events';
2
+ import { Emitter } from '../../../events';
3
3
  import { trackFocus } from '../../../dom';
4
4
  import { Droptarget } from '../../../dnd/droptarget';
5
5
  import { getPanelData } from '../../../dnd/dataTransfer';
@@ -17,7 +17,7 @@ export class ContentContainer extends CompositeDisposable {
17
17
  this._onDidBlur = new Emitter();
18
18
  this.onDidBlur = this._onDidBlur.event;
19
19
  this._element = document.createElement('div');
20
- this._element.className = 'content-container';
20
+ this._element.className = 'dv-content-container';
21
21
  this._element.tabIndex = -1;
22
22
  this.addDisposables(this._onDidFocus, this._onDidBlur);
23
23
  this.dropTarget = new Droptarget(this.element, {
@@ -90,6 +90,8 @@ export class ContentContainer extends CompositeDisposable {
90
90
  referenceContainer: this,
91
91
  });
92
92
  break;
93
+ default:
94
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
93
95
  }
94
96
  if (doRender) {
95
97
  const focusTracker = 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();
@@ -38,10 +38,10 @@ export class Tab extends CompositeDisposable {
38
38
  this._onDragStart = new Emitter();
39
39
  this.onDragStart = this._onDragStart.event;
40
40
  this._element = document.createElement('div');
41
- this._element.className = 'tab';
41
+ this._element.className = 'dv-tab';
42
42
  this._element.tabIndex = 0;
43
43
  this._element.draggable = true;
44
- toggleClass(this.element, 'inactive-tab', true);
44
+ toggleClass(this.element, 'dv-inactive-tab', true);
45
45
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
46
46
  this.dropTarget = new Droptarget(this._element, {
47
47
  acceptedTargetZones: ['center'],
@@ -74,8 +74,8 @@ export class Tab extends CompositeDisposable {
74
74
  }), this.dropTarget);
75
75
  }
76
76
  setActive(isActive) {
77
- toggleClass(this.element, 'active-tab', isActive);
78
- toggleClass(this.element, 'inactive-tab', !isActive);
77
+ toggleClass(this.element, 'dv-active-tab', isActive);
78
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
79
79
  }
80
80
  setContent(part) {
81
81
  if (this.content) {
@@ -92,16 +92,16 @@ export class TabsContainer extends CompositeDisposable {
92
92
  this._onWillShowOverlay = new Emitter();
93
93
  this.onWillShowOverlay = this._onWillShowOverlay.event;
94
94
  this._element = document.createElement('div');
95
- this._element.className = 'tabs-and-actions-container';
95
+ this._element.className = 'dv-tabs-and-actions-container';
96
96
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
97
97
  this.rightActionsContainer = document.createElement('div');
98
- this.rightActionsContainer.className = 'right-actions-container';
98
+ this.rightActionsContainer.className = 'dv-right-actions-container';
99
99
  this.leftActionsContainer = document.createElement('div');
100
- this.leftActionsContainer.className = 'left-actions-container';
100
+ this.leftActionsContainer.className = 'dv-left-actions-container';
101
101
  this.preActionsContainer = document.createElement('div');
102
- this.preActionsContainer.className = 'pre-actions-container';
102
+ this.preActionsContainer.className = 'dv-pre-actions-container';
103
103
  this.tabContainer = document.createElement('div');
104
- this.tabContainer.className = 'tabs-container';
104
+ this.tabContainer.className = 'dv-tabs-container';
105
105
  this.voidContainer = new VoidContainer(this.accessor, this.group);
106
106
  this._element.appendChild(this.preActionsContainer);
107
107
  this._element.appendChild(this.tabContainer);
@@ -190,14 +190,10 @@ export class TabsContainer extends CompositeDisposable {
190
190
  });
191
191
  }
192
192
  openPanel(panel, index = this.tabs.length) {
193
- var _a;
194
193
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
195
194
  return;
196
195
  }
197
196
  const tab = new Tab(panel, this.accessor, this.group);
198
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
199
- throw new Error('invalid header component');
200
- }
201
197
  tab.setContent(panel.view.tab);
202
198
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
203
199
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -17,8 +17,7 @@ export class VoidContainer extends CompositeDisposable {
17
17
  this._onDragStart = new Emitter();
18
18
  this.onDragStart = this._onDragStart.event;
19
19
  this._element = document.createElement('div');
20
- this._element.className = 'void-container';
21
- this._element.tabIndex = 0;
20
+ this._element.className = 'dv-void-container';
22
21
  this._element.draggable = true;
23
22
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
24
23
  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
  }
@@ -1,7 +1,4 @@
1
- import { addDisposableListener } from '../../../events';
2
- import { toggleClass } from '../../../dom';
3
1
  import { CompositeDisposable } from '../../../lifecycle';
4
- import { createCloseButton } from '../../../svg';
5
2
  export class Watermark extends CompositeDisposable {
6
3
  get element() {
7
4
  return this._element;
@@ -9,38 +6,9 @@ export class Watermark extends CompositeDisposable {
9
6
  constructor() {
10
7
  super();
11
8
  this._element = document.createElement('div');
12
- this._element.className = 'watermark';
13
- const title = document.createElement('div');
14
- title.className = 'watermark-title';
15
- const emptySpace = document.createElement('span');
16
- emptySpace.style.flexGrow = '1';
17
- const content = document.createElement('div');
18
- content.className = 'watermark-content';
19
- this._element.appendChild(title);
20
- this._element.appendChild(content);
21
- const actionsContainer = document.createElement('div');
22
- actionsContainer.className = 'actions-container';
23
- const closeAnchor = document.createElement('div');
24
- closeAnchor.className = 'close-action';
25
- closeAnchor.appendChild(createCloseButton());
26
- actionsContainer.appendChild(closeAnchor);
27
- title.appendChild(emptySpace);
28
- title.appendChild(actionsContainer);
29
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
30
- var _a;
31
- event.preventDefault();
32
- if (this._group) {
33
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
34
- }
35
- }));
9
+ this._element.className = 'dv-watermark';
36
10
  }
37
11
  init(_params) {
38
- this._api = _params.containerApi;
39
- this._group = _params.group;
40
- this.render();
41
- }
42
- render() {
43
- const isOneGroup = !!(this._api && this._api.size <= 1);
44
- toggleClass(this.element, 'has-actions', isOneGroup);
12
+ // noop
45
13
  }
46
14
  }
@@ -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;