dockview 1.3.1 → 1.4.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 (148) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/api/component.api.d.ts +22 -26
  3. package/dist/cjs/api/component.api.js +24 -21
  4. package/dist/cjs/api/component.api.js.map +1 -1
  5. package/dist/cjs/api/groupPanelApi.d.ts +7 -7
  6. package/dist/cjs/api/groupPanelApi.js +1 -1
  7. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  8. package/dist/cjs/dnd/droptarget.d.ts +3 -1
  9. package/dist/cjs/dnd/droptarget.js +11 -11
  10. package/dist/cjs/dnd/droptarget.js.map +1 -1
  11. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
  12. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  13. package/dist/cjs/dockview/components/watermark/watermark.d.ts +2 -2
  14. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  15. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +3 -3
  16. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  17. package/dist/cjs/dockview/deserializer.d.ts +9 -6
  18. package/dist/cjs/dockview/deserializer.js +17 -10
  19. package/dist/cjs/dockview/deserializer.js.map +1 -1
  20. package/dist/cjs/dockview/dockviewComponent.d.ts +31 -31
  21. package/dist/cjs/dockview/dockviewComponent.js +31 -28
  22. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  23. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +6 -6
  24. package/dist/cjs/dockview/dockviewGroupPanel.js +5 -4
  25. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  26. package/dist/cjs/dockview/options.d.ts +5 -6
  27. package/dist/cjs/gridview/baseComponentGridview.d.ts +0 -5
  28. package/dist/cjs/gridview/baseComponentGridview.js +0 -10
  29. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  30. package/dist/cjs/gridview/gridview.d.ts +2 -2
  31. package/dist/cjs/gridview/gridview.js +1 -1
  32. package/dist/cjs/gridview/gridview.js.map +1 -1
  33. package/dist/cjs/gridview/gridviewComponent.d.ts +3 -3
  34. package/dist/cjs/gridview/gridviewComponent.js +4 -3
  35. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  36. package/dist/cjs/groupview/groupPanel.d.ts +4 -4
  37. package/dist/cjs/groupview/groupview.d.ts +52 -39
  38. package/dist/cjs/groupview/groupview.js +48 -17
  39. package/dist/cjs/groupview/groupview.js.map +1 -1
  40. package/dist/cjs/groupview/groupviewPanel.d.ts +16 -2
  41. package/dist/cjs/groupview/groupviewPanel.js +63 -18
  42. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  43. package/dist/cjs/groupview/panel/content.d.ts +3 -3
  44. package/dist/cjs/groupview/panel/content.js.map +1 -1
  45. package/dist/cjs/groupview/tab.d.ts +4 -4
  46. package/dist/cjs/groupview/tab.js.map +1 -1
  47. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +13 -9
  48. package/dist/cjs/groupview/titlebar/tabsContainer.js +17 -3
  49. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  50. package/dist/cjs/groupview/types.d.ts +4 -4
  51. package/dist/cjs/index.d.ts +1 -1
  52. package/dist/cjs/index.js +6 -2
  53. package/dist/cjs/index.js.map +1 -1
  54. package/dist/cjs/paneview/draggablePaneviewPanel.js +2 -2
  55. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  56. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -7
  57. package/dist/cjs/paneview/paneviewComponent.js +11 -17
  58. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  59. package/dist/cjs/react/deserializer.d.ts +3 -2
  60. package/dist/cjs/react/deserializer.js +2 -2
  61. package/dist/cjs/react/deserializer.js.map +1 -1
  62. package/dist/cjs/react/dockview/dockview.d.ts +2 -3
  63. package/dist/cjs/react/dockview/dockview.js +0 -1
  64. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  65. package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -2
  66. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  67. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
  68. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  69. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +2 -2
  70. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  71. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  72. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
  73. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  74. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +1 -1
  75. package/dist/cjs/react/gridview/gridview.d.ts +2 -2
  76. package/dist/cjs/react/gridview/gridview.js +2 -1
  77. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  78. package/dist/cjs/react/paneview/paneview.d.ts +2 -2
  79. package/dist/cjs/react/splitview/splitview.d.ts +2 -2
  80. package/dist/cjs/react/splitview/splitview.js +2 -1
  81. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  82. package/dist/cjs/splitview/splitviewComponent.d.ts +6 -11
  83. package/dist/cjs/splitview/splitviewComponent.js +32 -37
  84. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  85. package/dist/dockview.amd.js +2234 -2208
  86. package/dist/dockview.amd.min.js +2 -2
  87. package/dist/dockview.amd.min.noStyle.js +2 -2
  88. package/dist/dockview.amd.noStyle.js +2234 -2208
  89. package/dist/dockview.cjs.js +2234 -2208
  90. package/dist/dockview.esm.js +2234 -2208
  91. package/dist/dockview.esm.min.js +2 -2
  92. package/dist/dockview.js +2234 -2208
  93. package/dist/dockview.min.js +2 -2
  94. package/dist/dockview.min.noStyle.js +2 -2
  95. package/dist/dockview.noStyle.js +2234 -2208
  96. package/dist/esm/api/component.api.d.ts +22 -26
  97. package/dist/esm/api/component.api.js +12 -21
  98. package/dist/esm/api/groupPanelApi.d.ts +7 -7
  99. package/dist/esm/api/groupPanelApi.js +1 -1
  100. package/dist/esm/dnd/droptarget.d.ts +3 -1
  101. package/dist/esm/dnd/droptarget.js +11 -11
  102. package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
  103. package/dist/esm/dockview/components/watermark/watermark.d.ts +2 -2
  104. package/dist/esm/dockview/defaultGroupPanelView.d.ts +3 -3
  105. package/dist/esm/dockview/deserializer.d.ts +9 -6
  106. package/dist/esm/dockview/deserializer.js +17 -10
  107. package/dist/esm/dockview/dockviewComponent.d.ts +31 -31
  108. package/dist/esm/dockview/dockviewComponent.js +31 -28
  109. package/dist/esm/dockview/dockviewGroupPanel.d.ts +6 -6
  110. package/dist/esm/dockview/dockviewGroupPanel.js +5 -4
  111. package/dist/esm/dockview/options.d.ts +5 -6
  112. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -5
  113. package/dist/esm/gridview/baseComponentGridview.js +0 -10
  114. package/dist/esm/gridview/gridview.d.ts +2 -2
  115. package/dist/esm/gridview/gridviewComponent.d.ts +3 -3
  116. package/dist/esm/gridview/gridviewComponent.js +4 -3
  117. package/dist/esm/groupview/groupPanel.d.ts +4 -4
  118. package/dist/esm/groupview/groupview.d.ts +52 -39
  119. package/dist/esm/groupview/groupview.js +40 -17
  120. package/dist/esm/groupview/groupviewPanel.d.ts +16 -2
  121. package/dist/esm/groupview/groupviewPanel.js +24 -4
  122. package/dist/esm/groupview/panel/content.d.ts +3 -3
  123. package/dist/esm/groupview/tab.d.ts +4 -4
  124. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +13 -9
  125. package/dist/esm/groupview/titlebar/tabsContainer.js +13 -3
  126. package/dist/esm/groupview/types.d.ts +4 -4
  127. package/dist/esm/index.d.ts +1 -1
  128. package/dist/esm/index.js +1 -1
  129. package/dist/esm/paneview/draggablePaneviewPanel.js +2 -2
  130. package/dist/esm/paneview/paneviewComponent.d.ts +2 -7
  131. package/dist/esm/paneview/paneviewComponent.js +5 -15
  132. package/dist/esm/react/deserializer.d.ts +3 -2
  133. package/dist/esm/react/deserializer.js +2 -2
  134. package/dist/esm/react/dockview/dockview.d.ts +2 -3
  135. package/dist/esm/react/dockview/dockview.js +0 -1
  136. package/dist/esm/react/dockview/reactContentPart.d.ts +2 -2
  137. package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
  138. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +2 -2
  139. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  140. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  141. package/dist/esm/react/gridview/gridview.d.ts +2 -2
  142. package/dist/esm/react/gridview/gridview.js +2 -1
  143. package/dist/esm/react/paneview/paneview.d.ts +2 -2
  144. package/dist/esm/react/splitview/splitview.d.ts +2 -2
  145. package/dist/esm/react/splitview/splitview.js +2 -1
  146. package/dist/esm/splitview/splitviewComponent.d.ts +6 -11
  147. package/dist/esm/splitview/splitviewComponent.js +22 -31
  148. package/package.json +11 -10
@@ -1,15 +1,15 @@
1
- import { IDockviewComponent, SerializedDockview } from '../dockview/dockviewComponent';
1
+ import { DockviewDropEvent, IDockviewComponent, SerializedDockview } from '../dockview/dockviewComponent';
2
2
  import { AddGroupOptions, AddPanelOptions, MovementOptions } from '../dockview/options';
3
3
  import { Direction } from '../gridview/baseComponentGridview';
4
4
  import { AddComponentOptions, IGridviewComponent, SerializedGridview } from '../gridview/gridviewComponent';
5
5
  import { IGridviewPanel } from '../gridview/gridviewPanel';
6
- import { IGroupPanel } from '../groupview/groupPanel';
6
+ import { IDockviewPanel } from '../groupview/groupPanel';
7
7
  import { AddPaneviewComponentOptions, SerializedPaneview, IPaneviewComponent } from '../paneview/paneviewComponent';
8
8
  import { IPaneviewPanel } from '../paneview/paneviewPanel';
9
9
  import { AddSplitviewComponentOptions, ISplitviewComponent, SerializedSplitview, SplitviewComponentUpdateOptions } from '../splitview/splitviewComponent';
10
10
  import { IView, Orientation, Sizing } from '../splitview/core/splitview';
11
11
  import { ISplitviewPanel } from '../splitview/splitviewPanel';
12
- import { IGroupviewPanel } from '../groupview/groupviewPanel';
12
+ import { GroupPanel, IGroupviewPanel } from '../groupview/groupviewPanel';
13
13
  import { Event } from '../events';
14
14
  import { PaneviewDropEvent } from '../react';
15
15
  export interface CommonApi<T = any> {
@@ -19,7 +19,6 @@ export interface CommonApi<T = any> {
19
19
  readonly onDidLayoutFromJSON: Event<void>;
20
20
  focus(): void;
21
21
  layout(width: number, height: number): void;
22
- resizeToFit(): void;
23
22
  fromJSON(data: T): void;
24
23
  toJSON(): T;
25
24
  }
@@ -31,6 +30,7 @@ export declare class SplitviewApi implements CommonApi<SerializedSplitview> {
31
30
  get width(): number;
32
31
  get length(): number;
33
32
  get orientation(): Orientation;
33
+ get panels(): ISplitviewPanel[];
34
34
  get onDidLayoutFromJSON(): Event<void>;
35
35
  get onDidLayoutChange(): Event<void>;
36
36
  get onDidAddView(): Event<IView>;
@@ -39,13 +39,11 @@ export declare class SplitviewApi implements CommonApi<SerializedSplitview> {
39
39
  updateOptions(options: SplitviewComponentUpdateOptions): void;
40
40
  removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
41
41
  setVisible(panel: ISplitviewPanel, isVisible: boolean): void;
42
- getPanels(): ISplitviewPanel[];
43
42
  focus(): void;
44
43
  getPanel(id: string): ISplitviewPanel | undefined;
45
44
  setActive(panel: ISplitviewPanel): void;
46
45
  layout(width: number, height: number): void;
47
- addPanel(options: AddSplitviewComponentOptions): void;
48
- resizeToFit(): void;
46
+ addPanel(options: AddSplitviewComponentOptions): ISplitviewPanel;
49
47
  movePanel(from: number, to: number): void;
50
48
  fromJSON(data: SerializedSplitview): void;
51
49
  toJSON(): SerializedSplitview;
@@ -56,20 +54,19 @@ export declare class PaneviewApi implements CommonApi<SerializedPaneview> {
56
54
  get maximumSize(): number;
57
55
  get height(): number;
58
56
  get width(): number;
57
+ get panels(): IPaneviewPanel[];
59
58
  get onDidLayoutChange(): Event<void>;
60
59
  get onDidLayoutFromJSON(): Event<void>;
61
60
  get onDidAddView(): Event<IPaneviewPanel>;
62
61
  get onDidRemoveView(): Event<IPaneviewPanel>;
63
62
  get onDidDrop(): Event<PaneviewDropEvent>;
64
63
  constructor(component: IPaneviewComponent);
65
- getPanels(): IPaneviewPanel[];
66
64
  removePanel(panel: IPaneviewPanel): void;
67
65
  getPanel(id: string): IPaneviewPanel | undefined;
68
66
  movePanel(from: number, to: number): void;
69
67
  focus(): void;
70
68
  layout(width: number, height: number): void;
71
- addPanel(options: AddPaneviewComponentOptions): void;
72
- resizeToFit(): void;
69
+ addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel;
73
70
  fromJSON(data: SerializedPaneview): void;
74
71
  toJSON(): SerializedPaneview;
75
72
  }
@@ -92,14 +89,13 @@ export declare class GridviewApi implements CommonApi<SerializedGridview> {
92
89
  constructor(component: IGridviewComponent);
93
90
  focus(): void;
94
91
  layout(width: number, height: number, force?: boolean): void;
95
- addPanel(options: AddComponentOptions): void;
92
+ addPanel(options: AddComponentOptions): IGridviewPanel;
96
93
  removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
97
94
  movePanel(panel: IGridviewPanel, options: {
98
95
  direction: Direction;
99
96
  reference: string;
100
97
  size?: number;
101
98
  }): void;
102
- resizeToFit(): void;
103
99
  getPanel(id: string): IGridviewPanel | undefined;
104
100
  toggleVisibility(panel: IGridviewPanel): void;
105
101
  setVisible(panel: IGridviewPanel, visible: boolean): void;
@@ -117,32 +113,32 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
117
113
  get maximumWidth(): number;
118
114
  get size(): number;
119
115
  get totalPanels(): number;
120
- get onDidActiveGroupChange(): Event<IGroupviewPanel | undefined>;
121
- get onDidAddGroup(): Event<IGroupviewPanel>;
122
- get onDidRemoveGroup(): Event<IGroupviewPanel>;
123
- get onDidActivePanelChange(): Event<IGroupPanel | undefined>;
124
- get onDidAddPanel(): Event<IGroupPanel>;
125
- get onDidRemovePanel(): Event<IGroupPanel>;
116
+ get onDidActiveGroupChange(): Event<GroupPanel | undefined>;
117
+ get onDidAddGroup(): Event<GroupPanel>;
118
+ get onDidRemoveGroup(): Event<GroupPanel>;
119
+ get onDidActivePanelChange(): Event<IDockviewPanel | undefined>;
120
+ get onDidAddPanel(): Event<IDockviewPanel>;
121
+ get onDidRemovePanel(): Event<IDockviewPanel>;
126
122
  get onDidLayoutFromJSON(): Event<void>;
127
123
  get onDidLayoutChange(): Event<void>;
128
- get panels(): IGroupPanel[];
129
- get groups(): IGroupviewPanel[];
130
- get activePanel(): IGroupPanel | undefined;
131
- get activeGroup(): IGroupviewPanel | undefined;
124
+ get onDidDrop(): Event<DockviewDropEvent>;
125
+ get panels(): IDockviewPanel[];
126
+ get groups(): GroupPanel[];
127
+ get activePanel(): IDockviewPanel | undefined;
128
+ get activeGroup(): GroupPanel | undefined;
132
129
  constructor(component: IDockviewComponent);
133
130
  getTabHeight(): number | undefined;
134
131
  setTabHeight(height: number | undefined): void;
135
132
  focus(): void;
136
- getPanel(id: string): IGroupPanel | undefined;
133
+ getPanel(id: string): IDockviewPanel | undefined;
137
134
  layout(width: number, height: number, force?: boolean): void;
138
- addPanel(options: AddPanelOptions): IGroupPanel;
135
+ addPanel(options: AddPanelOptions): IDockviewPanel;
139
136
  addEmptyGroup(options?: AddGroupOptions): void;
140
137
  moveToNext(options?: MovementOptions): void;
141
138
  moveToPrevious(options?: MovementOptions): void;
142
139
  closeAllGroups(): void;
143
140
  removeGroup(group: IGroupviewPanel): void;
144
- resizeToFit(): void;
145
- getGroup(id: string): IGroupviewPanel | undefined;
141
+ getGroup(id: string): GroupPanel | undefined;
146
142
  fromJSON(data: SerializedDockview): void;
147
143
  toJSON(): SerializedDockview;
148
144
  }
@@ -21,6 +21,9 @@ export class SplitviewApi {
21
21
  get orientation() {
22
22
  return this.component.orientation;
23
23
  }
24
+ get panels() {
25
+ return this.component.panels;
26
+ }
24
27
  get onDidLayoutFromJSON() {
25
28
  return this.component.onDidLayoutFromJSON;
26
29
  }
@@ -42,9 +45,6 @@ export class SplitviewApi {
42
45
  setVisible(panel, isVisible) {
43
46
  this.component.setVisible(panel, isVisible);
44
47
  }
45
- getPanels() {
46
- return this.component.getPanels();
47
- }
48
48
  focus() {
49
49
  this.component.focus();
50
50
  }
@@ -58,10 +58,7 @@ export class SplitviewApi {
58
58
  return this.component.layout(width, height);
59
59
  }
60
60
  addPanel(options) {
61
- this.component.addPanel(options);
62
- }
63
- resizeToFit() {
64
- this.component.resizeToFit();
61
+ return this.component.addPanel(options);
65
62
  }
66
63
  movePanel(from, to) {
67
64
  this.component.movePanel(from, to);
@@ -89,6 +86,9 @@ export class PaneviewApi {
89
86
  get width() {
90
87
  return this.component.width;
91
88
  }
89
+ get panels() {
90
+ return this.component.panels;
91
+ }
92
92
  get onDidLayoutChange() {
93
93
  return this.component.onDidLayoutChange;
94
94
  }
@@ -112,9 +112,6 @@ export class PaneviewApi {
112
112
  };
113
113
  return emitter.event;
114
114
  }
115
- getPanels() {
116
- return this.component.getPanels();
117
- }
118
115
  removePanel(panel) {
119
116
  this.component.removePanel(panel);
120
117
  }
@@ -131,10 +128,7 @@ export class PaneviewApi {
131
128
  this.component.layout(width, height);
132
129
  }
133
130
  addPanel(options) {
134
- this.component.addPanel(options);
135
- }
136
- resizeToFit() {
137
- this.component.resizeToFit();
131
+ return this.component.addPanel(options);
138
132
  }
139
133
  fromJSON(data) {
140
134
  this.component.fromJSON(data);
@@ -196,7 +190,7 @@ export class GridviewApi {
196
190
  this.component.layout(width, height, force);
197
191
  }
198
192
  addPanel(options) {
199
- this.component.addPanel(options);
193
+ return this.component.addPanel(options);
200
194
  }
201
195
  removePanel(panel, sizing) {
202
196
  this.component.removePanel(panel, sizing);
@@ -204,9 +198,6 @@ export class GridviewApi {
204
198
  movePanel(panel, options) {
205
199
  this.component.movePanel(panel, options);
206
200
  }
207
- resizeToFit() {
208
- this.component.resizeToFit();
209
- }
210
201
  getPanel(id) {
211
202
  return this.component.getPanel(id);
212
203
  }
@@ -278,6 +269,9 @@ export class DockviewApi {
278
269
  get onDidLayoutChange() {
279
270
  return this.component.onDidLayoutChange;
280
271
  }
272
+ get onDidDrop() {
273
+ return this.component.onDidDrop;
274
+ }
281
275
  get panels() {
282
276
  return this.component.panels;
283
277
  }
@@ -323,9 +317,6 @@ export class DockviewApi {
323
317
  removeGroup(group) {
324
318
  this.component.removeGroup(group);
325
319
  }
326
- resizeToFit() {
327
- return this.component.resizeToFit();
328
- }
329
320
  getGroup(id) {
330
321
  return this.component.getPanel(id);
331
322
  }
@@ -1,15 +1,15 @@
1
1
  import { Emitter } from '../events';
2
2
  import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
3
- import { IGroupPanel } from '../groupview/groupPanel';
4
- import { GroupviewPanel } from '../groupview/groupviewPanel';
3
+ import { IDockviewPanel } from '../groupview/groupPanel';
4
+ import { GroupPanel } from '../groupview/groupviewPanel';
5
5
  export interface TitleEvent {
6
6
  readonly title: string;
7
7
  }
8
8
  export interface SuppressClosableEvent {
9
9
  readonly suppressClosable: boolean;
10
10
  }
11
- export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'visible'> {
12
- readonly group: GroupviewPanel | undefined;
11
+ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible'> {
12
+ readonly group: GroupPanel;
13
13
  readonly isGroupActive: boolean;
14
14
  readonly title: string;
15
15
  readonly suppressClosable: boolean;
@@ -33,9 +33,9 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
33
33
  get title(): string;
34
34
  get suppressClosable(): boolean;
35
35
  get isGroupActive(): boolean;
36
- set group(value: GroupviewPanel | undefined);
37
- get group(): GroupviewPanel | undefined;
38
- constructor(panel: IGroupPanel, group: GroupviewPanel | undefined);
36
+ set group(value: GroupPanel);
37
+ get group(): GroupPanel;
38
+ constructor(panel: IDockviewPanel, group: GroupPanel);
39
39
  setTitle(title: string): void;
40
40
  close(): void;
41
41
  }
@@ -16,7 +16,7 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
16
16
  this._onDidGroupChange = new Emitter();
17
17
  this.onDidGroupChange = this._onDidGroupChange.event;
18
18
  this.disposable = new MutableDisposable();
19
- this.group = group;
19
+ this._group = group;
20
20
  this.addDisposables(this.disposable, this._onDidTitleChange, this._titleChanged, this._suppressClosableChanged, this._onDidGroupChange, this._onDidActiveGroupChange);
21
21
  }
22
22
  get title() {
@@ -7,12 +7,13 @@ export declare enum Position {
7
7
  Right = "Right",
8
8
  Center = "Center"
9
9
  }
10
+ declare type Quadrant = 'top' | 'bottom' | 'left' | 'right';
10
11
  export interface DroptargetEvent {
11
12
  position: Position;
12
13
  nativeEvent: DragEvent;
13
14
  }
14
15
  export declare type DropTargetDirections = 'vertical' | 'horizontal' | 'all' | 'none';
15
- export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent) => boolean);
16
+ export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent, state: Quadrant | null) => boolean);
16
17
  export declare class Droptarget extends CompositeDisposable {
17
18
  private readonly element;
18
19
  private readonly options;
@@ -34,3 +35,4 @@ export declare class Droptarget extends CompositeDisposable {
34
35
  private calculateQuadrant;
35
36
  private removeDropTarget;
36
37
  }
38
+ export {};
@@ -23,12 +23,22 @@ export class Droptarget extends CompositeDisposable {
23
23
  this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
24
24
  onDragEnter: () => undefined,
25
25
  onDragOver: (e) => {
26
+ const width = this.element.clientWidth;
27
+ const height = this.element.clientHeight;
28
+ if (width === 0 || height === 0) {
29
+ return; // avoid div!0
30
+ }
31
+ const x = e.offsetX;
32
+ const y = e.offsetY;
33
+ const xp = (100 * x) / width;
34
+ const yp = (100 * y) / height;
35
+ const quadrant = this.calculateQuadrant(this.options.validOverlays, xp, yp);
26
36
  if (isBooleanValue(this.options.canDisplayOverlay)) {
27
37
  if (!this.options.canDisplayOverlay) {
28
38
  return;
29
39
  }
30
40
  }
31
- else if (!this.options.canDisplayOverlay(e)) {
41
+ else if (!this.options.canDisplayOverlay(e, quadrant)) {
32
42
  return;
33
43
  }
34
44
  if (!this.target) {
@@ -47,16 +57,6 @@ export class Droptarget extends CompositeDisposable {
47
57
  if (!this.target || !this.overlay) {
48
58
  return;
49
59
  }
50
- const width = this.target.clientWidth;
51
- const height = this.target.clientHeight;
52
- if (width === 0 || height === 0) {
53
- return; // avoid div!0
54
- }
55
- const x = e.offsetX;
56
- const y = e.offsetY;
57
- const xp = (100 * x) / width;
58
- const yp = (100 * y) / height;
59
- const quadrant = this.calculateQuadrant(this.options.validOverlays, xp, yp);
60
60
  const isSmallX = width < 100;
61
61
  const isSmallY = height < 100;
62
62
  this.toggleClasses(quadrant, isSmallX, isSmallY);
@@ -1,7 +1,7 @@
1
1
  import { CompositeDisposable } from '../../../lifecycle';
2
2
  import { ITabRenderer, GroupPanelPartInitParameters } from '../../../groupview/types';
3
3
  import { PanelUpdateEvent } from '../../../panel/types';
4
- import { GroupviewPanel } from '../../../groupview/groupviewPanel';
4
+ import { GroupPanel } from '../../../groupview/groupviewPanel';
5
5
  export declare class WrappedTab implements ITabRenderer {
6
6
  private readonly renderer;
7
7
  private readonly _element;
@@ -16,7 +16,7 @@ export declare class WrappedTab implements ITabRenderer {
16
16
  toJSON(): object;
17
17
  focus(): void;
18
18
  init(parameters: GroupPanelPartInitParameters): void;
19
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
19
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
20
20
  dispose(): void;
21
21
  }
22
22
  export declare class DefaultTab extends CompositeDisposable implements ITabRenderer {
@@ -37,7 +37,7 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
37
37
  };
38
38
  focus(): void;
39
39
  init(params: GroupPanelPartInitParameters): void;
40
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
40
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
41
41
  layout(_width: number, _height: number): void;
42
42
  private render;
43
43
  }
@@ -1,6 +1,6 @@
1
1
  import { GroupPanelPartInitParameters, IWatermarkRenderer } from '../../../groupview/types';
2
2
  import { CompositeDisposable } from '../../../lifecycle';
3
- import { GroupviewPanel } from '../../../groupview/groupviewPanel';
3
+ import { GroupPanel } from '../../../groupview/groupviewPanel';
4
4
  import { PanelUpdateEvent } from '../../../panel/types';
5
5
  export declare class Watermark extends CompositeDisposable implements IWatermarkRenderer {
6
6
  private _element;
@@ -13,7 +13,7 @@ export declare class Watermark extends CompositeDisposable implements IWatermark
13
13
  toJSON(): {};
14
14
  layout(_width: number, _height: number): void;
15
15
  init(params: GroupPanelPartInitParameters): void;
16
- updateParentGroup(group: GroupviewPanel, _visible: boolean): void;
16
+ updateParentGroup(group: GroupPanel, _visible: boolean): void;
17
17
  get element(): HTMLElement;
18
18
  private render;
19
19
  dispose(): void;
@@ -1,6 +1,6 @@
1
1
  import { WrappedTab } from './components/tab/defaultTab';
2
2
  import { GroupPanelPartInitParameters, IActionsRenderer, IContentRenderer, ITabRenderer } from '../groupview/types';
3
- import { GroupviewPanel } from '../groupview/groupviewPanel';
3
+ import { GroupPanel } from '../groupview/groupviewPanel';
4
4
  import { IDisposable } from '../lifecycle';
5
5
  import { GroupPanelUpdateEvent } from '../groupview/groupPanel';
6
6
  export interface IGroupPanelView extends IDisposable {
@@ -10,7 +10,7 @@ export interface IGroupPanelView extends IDisposable {
10
10
  update(event: GroupPanelUpdateEvent): void;
11
11
  layout(width: number, height: number): void;
12
12
  init(params: GroupPanelPartInitParameters): void;
13
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
13
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
14
14
  toJSON(): {};
15
15
  }
16
16
  export declare class DefaultGroupPanelView implements IGroupPanelView {
@@ -26,7 +26,7 @@ export declare class DefaultGroupPanelView implements IGroupPanelView {
26
26
  actions?: IActionsRenderer;
27
27
  });
28
28
  init(params: GroupPanelPartInitParameters): void;
29
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
29
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
30
30
  layout(width: number, height: number): void;
31
31
  update(event: GroupPanelUpdateEvent): void;
32
32
  toJSON(): {};
@@ -1,14 +1,17 @@
1
1
  import { IGridView, ISerializedLeafNode, IViewDeserializer } from '../gridview/gridview';
2
- import { GroupviewPanelState, IGroupPanel } from '../groupview/groupPanel';
2
+ import { GroupviewPanelState, IDockviewPanel } from '../groupview/groupPanel';
3
+ import { GroupPanelViewState } from '../groupview/groupview';
4
+ import { GroupPanel } from '../groupview/groupviewPanel';
3
5
  import { DockviewComponent } from './dockviewComponent';
4
6
  export interface IPanelDeserializer {
5
- fromJSON(panelData: GroupviewPanelState): IGroupPanel;
7
+ fromJSON(panelData: GroupviewPanelState, group: GroupPanel): IDockviewPanel;
8
+ }
9
+ export interface PanelDeserializerOptions {
10
+ createPanel: (id: string, group: GroupPanel) => IDockviewPanel;
6
11
  }
7
12
  export declare class DefaultDeserializer implements IViewDeserializer {
8
13
  private readonly layout;
9
14
  private panelDeserializer;
10
- constructor(layout: DockviewComponent, panelDeserializer: {
11
- createPanel: (id: string) => IGroupPanel;
12
- });
13
- fromJSON(node: ISerializedLeafNode): IGridView;
15
+ constructor(layout: DockviewComponent, panelDeserializer: PanelDeserializerOptions);
16
+ fromJSON(node: ISerializedLeafNode<GroupPanelViewState>): IGridView;
14
17
  }
@@ -4,17 +4,24 @@ export class DefaultDeserializer {
4
4
  this.panelDeserializer = panelDeserializer;
5
5
  }
6
6
  fromJSON(node) {
7
- const children = node.data.views;
8
- const active = node.data.activeView;
9
- const panels = [];
7
+ const data = node.data;
8
+ const children = data.views;
9
+ const active = data.activeView;
10
+ const group = this.layout.createGroup({
11
+ id: data.id,
12
+ locked: !!data.locked,
13
+ hideHeader: !!data.hideHeader,
14
+ });
10
15
  for (const child of children) {
11
- const panel = this.panelDeserializer.createPanel(child);
12
- panels.push(panel);
16
+ const panel = this.panelDeserializer.createPanel(child, group);
17
+ const isActive = typeof active === 'string' && active === panel.id;
18
+ group.model.openPanel(panel, {
19
+ skipSetActive: !isActive,
20
+ });
13
21
  }
14
- return this.layout.createGroup({
15
- panels,
16
- activePanel: panels.find((p) => p.id === active),
17
- id: node.data.id,
18
- });
22
+ if (!group.activePanel && group.panels.length > 0) {
23
+ group.model.openPanel(group.panels[group.panels.length - 1]);
24
+ }
25
+ return group;
19
26
  }
20
27
  }
@@ -1,16 +1,16 @@
1
1
  import { SerializedGridObject } from '../gridview/gridview';
2
2
  import { Position } from '../dnd/droptarget';
3
- import { GroupviewPanelState, IGroupPanel } from '../groupview/groupPanel';
3
+ import { GroupviewPanelState, IDockviewPanel } from '../groupview/groupPanel';
4
4
  import { Event } from '../events';
5
5
  import { IWatermarkRenderer } from '../groupview/types';
6
6
  import { IPanelDeserializer } from './deserializer';
7
- import { AddGroupOptions, AddPanelOptions, DockviewOptions as DockviewComponentOptions, MovementOptions, TabContextMenuEvent } from './options';
7
+ import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, MovementOptions, TabContextMenuEvent } from './options';
8
8
  import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
9
9
  import { DockviewApi } from '../api/component.api';
10
10
  import { LayoutMouseEvent } from '../groupview/tab';
11
11
  import { Orientation } from '../splitview/core/splitview';
12
12
  import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from '../groupview/groupview';
13
- import { GroupviewPanel } from '../groupview/groupviewPanel';
13
+ import { GroupPanel } from '../groupview/groupviewPanel';
14
14
  export interface PanelReference {
15
15
  update: (event: {
16
16
  params: {
@@ -38,21 +38,21 @@ export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptio
38
38
  export interface DockviewDropEvent extends GroupviewDropEvent {
39
39
  api: DockviewApi;
40
40
  }
41
- export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
42
- readonly activePanel: IGroupPanel | undefined;
41
+ export interface IDockviewComponent extends IBaseGrid<GroupPanel> {
42
+ readonly activePanel: IDockviewPanel | undefined;
43
43
  readonly totalPanels: number;
44
- readonly panels: IGroupPanel[];
44
+ readonly panels: IDockviewPanel[];
45
45
  readonly onDidDrop: Event<DockviewDropEvent>;
46
46
  tabHeight: number | undefined;
47
47
  deserializer: IPanelDeserializer | undefined;
48
48
  updateOptions(options: DockviewComponentUpdateOptions): void;
49
- moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
50
- doSetGroupActive: (group: GroupviewPanel, skipFocus?: boolean) => void;
51
- removeGroup: (group: GroupviewPanel) => void;
49
+ moveGroupOrPanel(referenceGroup: GroupPanel, groupId: string, itemId: string, target: Position, index?: number): void;
50
+ doSetGroupActive: (group: GroupPanel, skipFocus?: boolean) => void;
51
+ removeGroup: (group: GroupPanel) => void;
52
52
  options: DockviewComponentOptions;
53
- addPanel(options: AddPanelOptions): IGroupPanel;
54
- removePanel(panel: IGroupPanel): void;
55
- getGroupPanel: (id: string) => IGroupPanel | undefined;
53
+ addPanel(options: AddPanelOptions): IDockviewPanel;
54
+ removePanel(panel: IDockviewPanel): void;
55
+ getGroupPanel: (id: string) => IDockviewPanel | undefined;
56
56
  fireMouseEvent(event: LayoutMouseEvent): void;
57
57
  createWatermarkComponent(): IWatermarkRenderer;
58
58
  addEmptyGroup(options?: AddGroupOptions): void;
@@ -61,16 +61,16 @@ export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
61
61
  onTabContextMenu: Event<TabContextMenuEvent>;
62
62
  moveToNext(options?: MovementOptions): void;
63
63
  moveToPrevious(options?: MovementOptions): void;
64
- setActivePanel(panel: IGroupPanel): void;
64
+ setActivePanel(panel: IDockviewPanel): void;
65
65
  focus(): void;
66
66
  toJSON(): SerializedDockview;
67
67
  fromJSON(data: SerializedDockview): void;
68
- readonly onDidRemovePanel: Event<IGroupPanel>;
69
- readonly onDidAddPanel: Event<IGroupPanel>;
68
+ readonly onDidRemovePanel: Event<IDockviewPanel>;
69
+ readonly onDidAddPanel: Event<IDockviewPanel>;
70
70
  readonly onDidLayoutfromJSON: Event<void>;
71
- readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
71
+ readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
72
72
  }
73
- export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implements IDockviewComponent {
73
+ export declare class DockviewComponent extends BaseGrid<GroupPanel> implements IDockviewComponent {
74
74
  private _deserializer;
75
75
  private _api;
76
76
  private _options;
@@ -81,26 +81,26 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
81
81
  private readonly _onDidDrop;
82
82
  readonly onDidDrop: Event<DockviewDropEvent>;
83
83
  private readonly _onDidRemovePanel;
84
- readonly onDidRemovePanel: Event<IGroupPanel>;
84
+ readonly onDidRemovePanel: Event<IDockviewPanel>;
85
85
  private readonly _onDidAddPanel;
86
- readonly onDidAddPanel: Event<IGroupPanel>;
86
+ readonly onDidAddPanel: Event<IDockviewPanel>;
87
87
  private readonly _onDidLayoutfromJSON;
88
88
  readonly onDidLayoutfromJSON: Event<void>;
89
89
  private readonly _onDidActivePanelChange;
90
- readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
90
+ readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
91
91
  get totalPanels(): number;
92
- get panels(): IGroupPanel[];
92
+ get panels(): IDockviewPanel[];
93
93
  get deserializer(): IPanelDeserializer | undefined;
94
94
  set deserializer(value: IPanelDeserializer | undefined);
95
95
  get options(): DockviewComponentOptions;
96
- get activePanel(): IGroupPanel | undefined;
96
+ get activePanel(): IDockviewPanel | undefined;
97
97
  set tabHeight(height: number | undefined);
98
98
  get tabHeight(): number | undefined;
99
99
  constructor(element: HTMLElement, options: DockviewComponentOptions);
100
100
  updateOptions(options: DockviewComponentUpdateOptions): void;
101
101
  focus(): void;
102
- getGroupPanel(id: string): IGroupPanel | undefined;
103
- setActivePanel(panel: IGroupPanel): void;
102
+ getGroupPanel(id: string): IDockviewPanel | undefined;
103
+ setActivePanel(panel: IDockviewPanel): void;
104
104
  moveToNext(options?: MovementOptions): void;
105
105
  moveToPrevious(options?: MovementOptions): void;
106
106
  /**
@@ -112,21 +112,21 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
112
112
  fromJSON(data: SerializedDockview): void;
113
113
  closeAllGroups(): void;
114
114
  fireMouseEvent(event: LayoutMouseEvent): void;
115
- addPanel(options: AddPanelOptions): IGroupPanel;
116
- removePanel(panel: IGroupPanel, options?: {
115
+ addPanel(options: AddPanelOptions): IDockviewPanel;
116
+ removePanel(panel: IDockviewPanel, options?: {
117
117
  removeEmptyGroup: boolean;
118
118
  skipDispose: boolean;
119
119
  }): void;
120
120
  createWatermarkComponent(): IWatermarkRenderer;
121
121
  addEmptyGroup(options: AddGroupOptions): void;
122
- removeGroup(group: GroupviewPanel, skipActive?: boolean): void;
123
- moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
124
- doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
125
- createGroup(options?: GroupOptions): GroupviewPanel;
122
+ removeGroup(group: GroupPanel, skipActive?: boolean): void;
123
+ moveGroupOrPanel(referenceGroup: GroupPanel, groupId: string, itemId: string, target: Position, index?: number): void;
124
+ doSetGroupActive(group: GroupPanel | undefined, skipFocus?: boolean): void;
125
+ createGroup(options?: GroupOptions): GroupPanel;
126
126
  private createPanel;
127
127
  private createContentComponent;
128
128
  private createTabComponent;
129
- private addPanelToNewGroup;
129
+ private createGroupAtLocation;
130
130
  private findGroup;
131
131
  dispose(): void;
132
132
  }