dockview 1.3.1 → 1.4.2

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 (190) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/api/component.api.d.ts +25 -34
  3. package/dist/cjs/api/component.api.js +27 -39
  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/api/panelApi.d.ts +1 -2
  9. package/dist/cjs/api/panelApi.js +3 -3
  10. package/dist/cjs/api/panelApi.js.map +1 -1
  11. package/dist/cjs/dnd/droptarget.d.ts +3 -1
  12. package/dist/cjs/dnd/droptarget.js +11 -11
  13. package/dist/cjs/dnd/droptarget.js.map +1 -1
  14. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -19
  15. package/dist/cjs/dockview/components/tab/defaultTab.js +9 -64
  16. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  17. package/dist/cjs/dockview/components/watermark/watermark.d.ts +2 -2
  18. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  19. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +4 -5
  20. package/dist/cjs/dockview/defaultGroupPanelView.js +2 -4
  21. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  22. package/dist/cjs/dockview/deserializer.d.ts +9 -6
  23. package/dist/cjs/dockview/deserializer.js +17 -10
  24. package/dist/cjs/dockview/deserializer.js.map +1 -1
  25. package/dist/cjs/dockview/dockviewComponent.d.ts +31 -31
  26. package/dist/cjs/dockview/dockviewComponent.js +31 -28
  27. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  28. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +6 -6
  29. package/dist/cjs/dockview/dockviewGroupPanel.js +6 -5
  30. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  31. package/dist/cjs/dockview/options.d.ts +5 -6
  32. package/dist/cjs/gridview/baseComponentGridview.d.ts +0 -5
  33. package/dist/cjs/gridview/baseComponentGridview.js +0 -10
  34. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  35. package/dist/cjs/gridview/basePanelView.js +1 -1
  36. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  37. package/dist/cjs/gridview/gridview.d.ts +2 -2
  38. package/dist/cjs/gridview/gridviewComponent.d.ts +3 -5
  39. package/dist/cjs/gridview/gridviewComponent.js +6 -9
  40. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  41. package/dist/cjs/gridview/gridviewPanel.d.ts +2 -3
  42. package/dist/cjs/gridview/gridviewPanel.js +4 -4
  43. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  44. package/dist/cjs/groupview/groupPanel.d.ts +4 -4
  45. package/dist/cjs/groupview/groupview.d.ts +52 -39
  46. package/dist/cjs/groupview/groupview.js +54 -20
  47. package/dist/cjs/groupview/groupview.js.map +1 -1
  48. package/dist/cjs/groupview/groupviewPanel.d.ts +16 -2
  49. package/dist/cjs/groupview/groupviewPanel.js +63 -18
  50. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  51. package/dist/cjs/groupview/panel/content.d.ts +3 -3
  52. package/dist/cjs/groupview/panel/content.js.map +1 -1
  53. package/dist/cjs/groupview/tab.d.ts +4 -4
  54. package/dist/cjs/groupview/tab.js +1 -0
  55. package/dist/cjs/groupview/tab.js.map +1 -1
  56. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +14 -12
  57. package/dist/cjs/groupview/titlebar/tabsContainer.js +19 -7
  58. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  59. package/dist/cjs/groupview/types.d.ts +5 -7
  60. package/dist/cjs/index.d.ts +1 -1
  61. package/dist/cjs/index.js +6 -2
  62. package/dist/cjs/index.js.map +1 -1
  63. package/dist/cjs/paneview/draggablePaneviewPanel.js +2 -2
  64. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  65. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -7
  66. package/dist/cjs/paneview/paneviewComponent.js +9 -15
  67. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  68. package/dist/cjs/react/deserializer.d.ts +3 -2
  69. package/dist/cjs/react/deserializer.js +2 -2
  70. package/dist/cjs/react/deserializer.js.map +1 -1
  71. package/dist/cjs/react/dockview/dockview.d.ts +2 -3
  72. package/dist/cjs/react/dockview/dockview.js +0 -1
  73. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  74. package/dist/cjs/react/dockview/reactContentPart.d.ts +4 -6
  75. package/dist/cjs/react/dockview/reactContentPart.js +0 -3
  76. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  77. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
  78. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  79. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +2 -2
  80. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  81. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -3
  82. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +0 -3
  83. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
  84. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  85. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +1 -1
  86. package/dist/cjs/react/gridview/gridview.d.ts +2 -2
  87. package/dist/cjs/react/gridview/gridview.js +2 -1
  88. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  89. package/dist/cjs/react/gridview/view.js +2 -2
  90. package/dist/cjs/react/gridview/view.js.map +1 -1
  91. package/dist/cjs/react/index.d.ts +0 -1
  92. package/dist/cjs/react/index.js +0 -1
  93. package/dist/cjs/react/index.js.map +1 -1
  94. package/dist/cjs/react/paneview/paneview.d.ts +2 -2
  95. package/dist/cjs/react/splitview/splitview.d.ts +2 -2
  96. package/dist/cjs/react/splitview/splitview.js +2 -1
  97. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  98. package/dist/cjs/react/splitview/view.js +2 -2
  99. package/dist/cjs/react/splitview/view.js.map +1 -1
  100. package/dist/cjs/splitview/core/options.d.ts +2 -2
  101. package/dist/cjs/splitview/splitviewComponent.d.ts +6 -12
  102. package/dist/cjs/splitview/splitviewComponent.js +32 -38
  103. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  104. package/dist/cjs/splitview/splitviewPanel.js +4 -6
  105. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  106. package/dist/dockview.amd.js +2286 -2380
  107. package/dist/dockview.amd.min.js +2 -2
  108. package/dist/dockview.amd.min.noStyle.js +2 -2
  109. package/dist/dockview.amd.noStyle.js +2286 -2380
  110. package/dist/dockview.cjs.js +2286 -2380
  111. package/dist/dockview.esm.js +2286 -2379
  112. package/dist/dockview.esm.min.js +2 -2
  113. package/dist/dockview.js +2286 -2380
  114. package/dist/dockview.min.js +2 -2
  115. package/dist/dockview.min.noStyle.js +2 -2
  116. package/dist/dockview.noStyle.js +2286 -2380
  117. package/dist/esm/api/component.api.d.ts +25 -34
  118. package/dist/esm/api/component.api.js +15 -39
  119. package/dist/esm/api/groupPanelApi.d.ts +7 -7
  120. package/dist/esm/api/groupPanelApi.js +1 -1
  121. package/dist/esm/api/panelApi.d.ts +1 -2
  122. package/dist/esm/api/panelApi.js +3 -3
  123. package/dist/esm/dnd/droptarget.d.ts +3 -1
  124. package/dist/esm/dnd/droptarget.js +11 -11
  125. package/dist/esm/dockview/components/tab/defaultTab.d.ts +2 -19
  126. package/dist/esm/dockview/components/tab/defaultTab.js +8 -49
  127. package/dist/esm/dockview/components/watermark/watermark.d.ts +2 -2
  128. package/dist/esm/dockview/defaultGroupPanelView.d.ts +4 -5
  129. package/dist/esm/dockview/defaultGroupPanelView.js +3 -5
  130. package/dist/esm/dockview/deserializer.d.ts +9 -6
  131. package/dist/esm/dockview/deserializer.js +17 -10
  132. package/dist/esm/dockview/dockviewComponent.d.ts +31 -31
  133. package/dist/esm/dockview/dockviewComponent.js +32 -29
  134. package/dist/esm/dockview/dockviewGroupPanel.d.ts +6 -6
  135. package/dist/esm/dockview/dockviewGroupPanel.js +6 -5
  136. package/dist/esm/dockview/options.d.ts +5 -6
  137. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -5
  138. package/dist/esm/gridview/baseComponentGridview.js +0 -10
  139. package/dist/esm/gridview/basePanelView.js +1 -1
  140. package/dist/esm/gridview/gridview.d.ts +2 -2
  141. package/dist/esm/gridview/gridviewComponent.d.ts +3 -5
  142. package/dist/esm/gridview/gridviewComponent.js +6 -9
  143. package/dist/esm/gridview/gridviewPanel.d.ts +2 -3
  144. package/dist/esm/gridview/gridviewPanel.js +4 -4
  145. package/dist/esm/groupview/groupPanel.d.ts +4 -4
  146. package/dist/esm/groupview/groupview.d.ts +52 -39
  147. package/dist/esm/groupview/groupview.js +45 -20
  148. package/dist/esm/groupview/groupviewPanel.d.ts +16 -2
  149. package/dist/esm/groupview/groupviewPanel.js +24 -4
  150. package/dist/esm/groupview/panel/content.d.ts +3 -3
  151. package/dist/esm/groupview/tab.d.ts +4 -4
  152. package/dist/esm/groupview/tab.js +1 -0
  153. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +14 -12
  154. package/dist/esm/groupview/titlebar/tabsContainer.js +15 -7
  155. package/dist/esm/groupview/types.d.ts +5 -7
  156. package/dist/esm/index.d.ts +1 -1
  157. package/dist/esm/index.js +1 -1
  158. package/dist/esm/paneview/draggablePaneviewPanel.js +2 -2
  159. package/dist/esm/paneview/paneviewComponent.d.ts +2 -7
  160. package/dist/esm/paneview/paneviewComponent.js +5 -15
  161. package/dist/esm/react/deserializer.d.ts +3 -2
  162. package/dist/esm/react/deserializer.js +2 -2
  163. package/dist/esm/react/dockview/dockview.d.ts +2 -3
  164. package/dist/esm/react/dockview/dockview.js +0 -1
  165. package/dist/esm/react/dockview/reactContentPart.d.ts +4 -6
  166. package/dist/esm/react/dockview/reactContentPart.js +0 -3
  167. package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
  168. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +2 -2
  169. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -3
  170. package/dist/esm/react/dockview/v2/reactContentRenderer.js +0 -3
  171. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  172. package/dist/esm/react/gridview/gridview.d.ts +2 -2
  173. package/dist/esm/react/gridview/gridview.js +2 -1
  174. package/dist/esm/react/gridview/view.js +2 -2
  175. package/dist/esm/react/index.d.ts +0 -1
  176. package/dist/esm/react/index.js +0 -1
  177. package/dist/esm/react/paneview/paneview.d.ts +2 -2
  178. package/dist/esm/react/splitview/splitview.d.ts +2 -2
  179. package/dist/esm/react/splitview/splitview.js +2 -1
  180. package/dist/esm/react/splitview/view.js +2 -2
  181. package/dist/esm/splitview/core/options.d.ts +2 -2
  182. package/dist/esm/splitview/splitviewComponent.d.ts +6 -12
  183. package/dist/esm/splitview/splitviewComponent.js +24 -34
  184. package/dist/esm/splitview/splitviewPanel.js +4 -6
  185. package/package.json +11 -10
  186. package/dist/cjs/react/dockview/components.d.ts +0 -11
  187. package/dist/cjs/react/dockview/components.js +0 -81
  188. package/dist/cjs/react/dockview/components.js.map +0 -1
  189. package/dist/esm/react/dockview/components.d.ts +0 -11
  190. package/dist/esm/react/dockview/components.js +0 -54
@@ -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>;
@@ -38,14 +38,10 @@ export declare class SplitviewApi implements CommonApi<SerializedSplitview> {
38
38
  constructor(component: ISplitviewComponent);
39
39
  updateOptions(options: SplitviewComponentUpdateOptions): void;
40
40
  removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
41
- setVisible(panel: ISplitviewPanel, isVisible: boolean): void;
42
- getPanels(): ISplitviewPanel[];
43
41
  focus(): void;
44
42
  getPanel(id: string): ISplitviewPanel | undefined;
45
- setActive(panel: ISplitviewPanel): void;
46
43
  layout(width: number, height: number): void;
47
- addPanel(options: AddSplitviewComponentOptions): void;
48
- resizeToFit(): void;
44
+ addPanel(options: AddSplitviewComponentOptions): ISplitviewPanel;
49
45
  movePanel(from: number, to: number): void;
50
46
  fromJSON(data: SerializedSplitview): void;
51
47
  toJSON(): SerializedSplitview;
@@ -56,20 +52,19 @@ export declare class PaneviewApi implements CommonApi<SerializedPaneview> {
56
52
  get maximumSize(): number;
57
53
  get height(): number;
58
54
  get width(): number;
55
+ get panels(): IPaneviewPanel[];
59
56
  get onDidLayoutChange(): Event<void>;
60
57
  get onDidLayoutFromJSON(): Event<void>;
61
58
  get onDidAddView(): Event<IPaneviewPanel>;
62
59
  get onDidRemoveView(): Event<IPaneviewPanel>;
63
60
  get onDidDrop(): Event<PaneviewDropEvent>;
64
61
  constructor(component: IPaneviewComponent);
65
- getPanels(): IPaneviewPanel[];
66
62
  removePanel(panel: IPaneviewPanel): void;
67
63
  getPanel(id: string): IPaneviewPanel | undefined;
68
64
  movePanel(from: number, to: number): void;
69
65
  focus(): void;
70
66
  layout(width: number, height: number): void;
71
- addPanel(options: AddPaneviewComponentOptions): void;
72
- resizeToFit(): void;
67
+ addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel;
73
68
  fromJSON(data: SerializedPaneview): void;
74
69
  toJSON(): SerializedPaneview;
75
70
  }
@@ -82,9 +77,9 @@ export declare class GridviewApi implements CommonApi<SerializedGridview> {
82
77
  get width(): number;
83
78
  get height(): number;
84
79
  get onDidLayoutChange(): Event<void>;
85
- get onDidAddGroup(): Event<IGridviewPanel>;
86
- get onDidRemoveGroup(): Event<IGridviewPanel>;
87
- get onDidActiveGroupChange(): Event<IGridviewPanel | undefined>;
80
+ get onDidAddPanel(): Event<IGridviewPanel>;
81
+ get onDidRemovePanel(): Event<IGridviewPanel>;
82
+ get onDidActivePanelChange(): Event<IGridviewPanel | undefined>;
88
83
  get onDidLayoutFromJSON(): Event<void>;
89
84
  get panels(): IGridviewPanel[];
90
85
  get orientation(): Orientation;
@@ -92,18 +87,14 @@ export declare class GridviewApi implements CommonApi<SerializedGridview> {
92
87
  constructor(component: IGridviewComponent);
93
88
  focus(): void;
94
89
  layout(width: number, height: number, force?: boolean): void;
95
- addPanel(options: AddComponentOptions): void;
90
+ addPanel(options: AddComponentOptions): IGridviewPanel;
96
91
  removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
97
92
  movePanel(panel: IGridviewPanel, options: {
98
93
  direction: Direction;
99
94
  reference: string;
100
95
  size?: number;
101
96
  }): void;
102
- resizeToFit(): void;
103
97
  getPanel(id: string): IGridviewPanel | undefined;
104
- toggleVisibility(panel: IGridviewPanel): void;
105
- setVisible(panel: IGridviewPanel, visible: boolean): void;
106
- setActive(panel: IGridviewPanel): void;
107
98
  fromJSON(data: SerializedGridview): void;
108
99
  toJSON(): SerializedGridview;
109
100
  }
@@ -117,32 +108,32 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
117
108
  get maximumWidth(): number;
118
109
  get size(): number;
119
110
  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>;
111
+ get onDidActiveGroupChange(): Event<GroupPanel | undefined>;
112
+ get onDidAddGroup(): Event<GroupPanel>;
113
+ get onDidRemoveGroup(): Event<GroupPanel>;
114
+ get onDidActivePanelChange(): Event<IDockviewPanel | undefined>;
115
+ get onDidAddPanel(): Event<IDockviewPanel>;
116
+ get onDidRemovePanel(): Event<IDockviewPanel>;
126
117
  get onDidLayoutFromJSON(): Event<void>;
127
118
  get onDidLayoutChange(): Event<void>;
128
- get panels(): IGroupPanel[];
129
- get groups(): IGroupviewPanel[];
130
- get activePanel(): IGroupPanel | undefined;
131
- get activeGroup(): IGroupviewPanel | undefined;
119
+ get onDidDrop(): Event<DockviewDropEvent>;
120
+ get panels(): IDockviewPanel[];
121
+ get groups(): GroupPanel[];
122
+ get activePanel(): IDockviewPanel | undefined;
123
+ get activeGroup(): GroupPanel | undefined;
132
124
  constructor(component: IDockviewComponent);
133
125
  getTabHeight(): number | undefined;
134
126
  setTabHeight(height: number | undefined): void;
135
127
  focus(): void;
136
- getPanel(id: string): IGroupPanel | undefined;
128
+ getPanel(id: string): IDockviewPanel | undefined;
137
129
  layout(width: number, height: number, force?: boolean): void;
138
- addPanel(options: AddPanelOptions): IGroupPanel;
130
+ addPanel(options: AddPanelOptions): IDockviewPanel;
139
131
  addEmptyGroup(options?: AddGroupOptions): void;
140
132
  moveToNext(options?: MovementOptions): void;
141
133
  moveToPrevious(options?: MovementOptions): void;
142
134
  closeAllGroups(): void;
143
135
  removeGroup(group: IGroupviewPanel): void;
144
- resizeToFit(): void;
145
- getGroup(id: string): IGroupviewPanel | undefined;
136
+ getGroup(id: string): GroupPanel | undefined;
146
137
  fromJSON(data: SerializedDockview): void;
147
138
  toJSON(): SerializedDockview;
148
139
  }
@@ -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
  }
@@ -39,29 +42,17 @@ export class SplitviewApi {
39
42
  removePanel(panel, sizing) {
40
43
  this.component.removePanel(panel, sizing);
41
44
  }
42
- setVisible(panel, isVisible) {
43
- this.component.setVisible(panel, isVisible);
44
- }
45
- getPanels() {
46
- return this.component.getPanels();
47
- }
48
45
  focus() {
49
46
  this.component.focus();
50
47
  }
51
48
  getPanel(id) {
52
49
  return this.component.getPanel(id);
53
50
  }
54
- setActive(panel) {
55
- this.component.setActive(panel);
56
- }
57
51
  layout(width, height) {
58
52
  return this.component.layout(width, height);
59
53
  }
60
54
  addPanel(options) {
61
- this.component.addPanel(options);
62
- }
63
- resizeToFit() {
64
- this.component.resizeToFit();
55
+ return this.component.addPanel(options);
65
56
  }
66
57
  movePanel(from, to) {
67
58
  this.component.movePanel(from, to);
@@ -89,6 +80,9 @@ export class PaneviewApi {
89
80
  get width() {
90
81
  return this.component.width;
91
82
  }
83
+ get panels() {
84
+ return this.component.panels;
85
+ }
92
86
  get onDidLayoutChange() {
93
87
  return this.component.onDidLayoutChange;
94
88
  }
@@ -112,9 +106,6 @@ export class PaneviewApi {
112
106
  };
113
107
  return emitter.event;
114
108
  }
115
- getPanels() {
116
- return this.component.getPanels();
117
- }
118
109
  removePanel(panel) {
119
110
  this.component.removePanel(panel);
120
111
  }
@@ -131,10 +122,7 @@ export class PaneviewApi {
131
122
  this.component.layout(width, height);
132
123
  }
133
124
  addPanel(options) {
134
- this.component.addPanel(options);
135
- }
136
- resizeToFit() {
137
- this.component.resizeToFit();
125
+ return this.component.addPanel(options);
138
126
  }
139
127
  fromJSON(data) {
140
128
  this.component.fromJSON(data);
@@ -168,13 +156,13 @@ export class GridviewApi {
168
156
  get onDidLayoutChange() {
169
157
  return this.component.onDidLayoutChange;
170
158
  }
171
- get onDidAddGroup() {
159
+ get onDidAddPanel() {
172
160
  return this.component.onDidAddGroup;
173
161
  }
174
- get onDidRemoveGroup() {
162
+ get onDidRemovePanel() {
175
163
  return this.component.onDidRemoveGroup;
176
164
  }
177
- get onDidActiveGroupChange() {
165
+ get onDidActivePanelChange() {
178
166
  return this.component.onDidActiveGroupChange;
179
167
  }
180
168
  get onDidLayoutFromJSON() {
@@ -196,7 +184,7 @@ export class GridviewApi {
196
184
  this.component.layout(width, height, force);
197
185
  }
198
186
  addPanel(options) {
199
- this.component.addPanel(options);
187
+ return this.component.addPanel(options);
200
188
  }
201
189
  removePanel(panel, sizing) {
202
190
  this.component.removePanel(panel, sizing);
@@ -204,21 +192,9 @@ export class GridviewApi {
204
192
  movePanel(panel, options) {
205
193
  this.component.movePanel(panel, options);
206
194
  }
207
- resizeToFit() {
208
- this.component.resizeToFit();
209
- }
210
195
  getPanel(id) {
211
196
  return this.component.getPanel(id);
212
197
  }
213
- toggleVisibility(panel) {
214
- this.component.toggleVisibility(panel);
215
- }
216
- setVisible(panel, visible) {
217
- this.component.setVisible(panel, visible);
218
- }
219
- setActive(panel) {
220
- this.component.setActive(panel);
221
- }
222
198
  fromJSON(data) {
223
199
  return this.component.fromJSON(data);
224
200
  }
@@ -278,6 +254,9 @@ export class DockviewApi {
278
254
  get onDidLayoutChange() {
279
255
  return this.component.onDidLayoutChange;
280
256
  }
257
+ get onDidDrop() {
258
+ return this.component.onDidDrop;
259
+ }
281
260
  get panels() {
282
261
  return this.component.panels;
283
262
  }
@@ -323,9 +302,6 @@ export class DockviewApi {
323
302
  removeGroup(group) {
324
303
  this.component.removeGroup(group);
325
304
  }
326
- resizeToFit() {
327
- return this.component.resizeToFit();
328
- }
329
305
  getGroup(id) {
330
306
  return this.component.getPanel(id);
331
307
  }
@@ -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() {
@@ -18,7 +18,6 @@ export interface PanelApi {
18
18
  readonly onDidFocusChange: Event<FocusEvent>;
19
19
  readonly onDidVisibilityChange: Event<VisibilityEvent>;
20
20
  readonly onDidActiveChange: Event<ActiveEvent>;
21
- readonly onFocusEvent: Event<void>;
22
21
  setVisible(isVisible: boolean): void;
23
22
  setActive(): void;
24
23
  /**
@@ -56,7 +55,7 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
56
55
  private _isVisible;
57
56
  private _width;
58
57
  private _height;
59
- readonly _onDidPanelDimensionChange: Emitter<PanelDimensionChangeEvent>;
58
+ readonly _onDidDimensionChange: Emitter<PanelDimensionChangeEvent>;
60
59
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
61
60
  readonly _onDidChangeFocus: Emitter<FocusEvent>;
62
61
  readonly onDidFocusChange: Event<FocusEvent>;
@@ -12,10 +12,10 @@ export class PanelApiImpl extends CompositeDisposable {
12
12
  this._isVisible = true;
13
13
  this._width = 0;
14
14
  this._height = 0;
15
- this._onDidPanelDimensionChange = new Emitter({
15
+ this._onDidDimensionChange = new Emitter({
16
16
  replay: true,
17
17
  });
18
- this.onDidDimensionsChange = this._onDidPanelDimensionChange.event;
18
+ this.onDidDimensionsChange = this._onDidDimensionChange.event;
19
19
  //
20
20
  this._onDidChangeFocus = new Emitter({
21
21
  replay: true,
@@ -40,7 +40,7 @@ export class PanelApiImpl extends CompositeDisposable {
40
40
  //
41
41
  this._onActiveChange = new Emitter();
42
42
  this.onActiveChange = this._onActiveChange.event;
43
- this.addDisposables(this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
43
+ this.addDisposables(this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
44
44
  this._isFocused = event.isFocused;
45
45
  }), this.onDidActiveChange((event) => {
46
46
  this._isActive = event.isActive;
@@ -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,24 +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';
5
- export declare class WrappedTab implements ITabRenderer {
6
- private readonly renderer;
7
- private readonly _element;
8
- constructor(renderer: ITabRenderer);
9
- get innerRenderer(): ITabRenderer;
10
- get element(): HTMLElement;
11
- get id(): string;
12
- show(): void;
13
- hide(): void;
14
- layout(width: number, height: number): void;
15
- update(event: PanelUpdateEvent): void;
16
- toJSON(): object;
17
- focus(): void;
18
- init(parameters: GroupPanelPartInitParameters): void;
19
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
20
- dispose(): void;
21
- }
4
+ import { GroupPanel } from '../../../groupview/groupviewPanel';
22
5
  export declare class DefaultTab extends CompositeDisposable implements ITabRenderer {
23
6
  private _element;
24
7
  private _isPanelVisible;
@@ -37,7 +20,7 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
37
20
  };
38
21
  focus(): void;
39
22
  init(params: GroupPanelPartInitParameters): void;
40
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
23
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
41
24
  layout(_width: number, _height: number): void;
42
25
  private render;
43
26
  }
@@ -1,52 +1,5 @@
1
1
  import { CompositeDisposable } from '../../../lifecycle';
2
2
  import { addDisposableListener } from '../../../events';
3
- export class WrappedTab {
4
- constructor(renderer) {
5
- this.renderer = renderer;
6
- this._element = document.createElement('element');
7
- this.show();
8
- }
9
- get innerRenderer() {
10
- return this.renderer;
11
- }
12
- get element() {
13
- return this._element;
14
- }
15
- get id() {
16
- return this.renderer.id;
17
- }
18
- show() {
19
- if (!this.renderer.element.parentElement) {
20
- this._element.appendChild(this.renderer.element);
21
- }
22
- }
23
- hide() {
24
- if (this.renderer.element.parentElement) {
25
- this.renderer.element.remove();
26
- }
27
- }
28
- layout(width, height) {
29
- this.renderer.layout(width, height);
30
- }
31
- update(event) {
32
- this.renderer.update(event);
33
- }
34
- toJSON() {
35
- return this.renderer.toJSON();
36
- }
37
- focus() {
38
- this.renderer.focus();
39
- }
40
- init(parameters) {
41
- this.renderer.init(parameters);
42
- }
43
- updateParentGroup(group, isPanelVisible) {
44
- this.renderer.updateParentGroup(group, isPanelVisible);
45
- }
46
- dispose() {
47
- this.renderer.dispose();
48
- }
49
- }
50
3
  export class DefaultTab extends CompositeDisposable {
51
4
  constructor() {
52
5
  super();
@@ -109,14 +62,20 @@ export class DefaultTab extends CompositeDisposable {
109
62
  }
110
63
  }
111
64
  updateParentGroup(group, isPanelVisible) {
65
+ const changed = this._isPanelVisible !== isPanelVisible ||
66
+ this._isGroupActive !== group.isActive;
112
67
  this._isPanelVisible = isPanelVisible;
113
68
  this._isGroupActive = group.isActive;
114
- this.render();
69
+ if (changed) {
70
+ this.render();
71
+ }
115
72
  }
116
73
  layout(_width, _height) {
117
74
  // noop
118
75
  }
119
76
  render() {
120
- this._content.textContent = this.params.title;
77
+ if (this._content.textContent !== this.params.title) {
78
+ this._content.textContent = this.params.title;
79
+ }
121
80
  }
122
81
  }
@@ -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,5 @@
1
- import { WrappedTab } from './components/tab/defaultTab';
2
1
  import { GroupPanelPartInitParameters, IActionsRenderer, IContentRenderer, ITabRenderer } from '../groupview/types';
3
- import { GroupviewPanel } from '../groupview/groupviewPanel';
2
+ import { GroupPanel } from '../groupview/groupviewPanel';
4
3
  import { IDisposable } from '../lifecycle';
5
4
  import { GroupPanelUpdateEvent } from '../groupview/groupPanel';
6
5
  export interface IGroupPanelView extends IDisposable {
@@ -10,7 +9,7 @@ export interface IGroupPanelView extends IDisposable {
10
9
  update(event: GroupPanelUpdateEvent): void;
11
10
  layout(width: number, height: number): void;
12
11
  init(params: GroupPanelPartInitParameters): void;
13
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
12
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
14
13
  toJSON(): {};
15
14
  }
16
15
  export declare class DefaultGroupPanelView implements IGroupPanelView {
@@ -18,7 +17,7 @@ export declare class DefaultGroupPanelView implements IGroupPanelView {
18
17
  private readonly _tab;
19
18
  private readonly _actions;
20
19
  get content(): IContentRenderer;
21
- get tab(): WrappedTab;
20
+ get tab(): ITabRenderer;
22
21
  get actions(): IActionsRenderer | undefined;
23
22
  constructor(renderers: {
24
23
  content: IContentRenderer;
@@ -26,7 +25,7 @@ export declare class DefaultGroupPanelView implements IGroupPanelView {
26
25
  actions?: IActionsRenderer;
27
26
  });
28
27
  init(params: GroupPanelPartInitParameters): void;
29
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
28
+ updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
30
29
  layout(width: number, height: number): void;
31
30
  update(event: GroupPanelUpdateEvent): void;
32
31
  toJSON(): {};
@@ -1,9 +1,9 @@
1
- import { DefaultTab, WrappedTab } from './components/tab/defaultTab';
1
+ import { DefaultTab } from './components/tab/defaultTab';
2
2
  export class DefaultGroupPanelView {
3
3
  constructor(renderers) {
4
4
  var _a;
5
5
  this._content = renderers.content;
6
- this._tab = new WrappedTab((_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab());
6
+ this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
7
7
  this._actions =
8
8
  renderers.actions ||
9
9
  (this.content.actions
@@ -43,9 +43,7 @@ export class DefaultGroupPanelView {
43
43
  toJSON() {
44
44
  return {
45
45
  content: this.content.toJSON(),
46
- tab: this.tab.innerRenderer instanceof DefaultTab
47
- ? undefined
48
- : this.tab.toJSON(),
46
+ tab: this.tab instanceof DefaultTab ? undefined : this.tab.toJSON(),
49
47
  };
50
48
  }
51
49
  dispose() {
@@ -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
  }