dockview 1.0.3 → 1.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 (209) hide show
  1. package/README.md +243 -186
  2. package/dist/cjs/api/component.api.d.ts +28 -19
  3. package/dist/cjs/api/component.api.js +104 -33
  4. package/dist/cjs/api/component.api.js.map +1 -1
  5. package/dist/cjs/api/gridviewPanelApi.js +1 -0
  6. package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
  7. package/dist/cjs/api/groupPanelApi.d.ts +11 -14
  8. package/dist/cjs/api/groupPanelApi.js +19 -17
  9. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  10. package/dist/cjs/api/panelApi.d.ts +0 -25
  11. package/dist/cjs/api/panelApi.js +1 -20
  12. package/dist/cjs/api/panelApi.js.map +1 -1
  13. package/dist/cjs/api/paneviewPanelApi.js +1 -0
  14. package/dist/cjs/api/paneviewPanelApi.js.map +1 -1
  15. package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
  16. package/dist/cjs/api/splitviewPanelApi.js +1 -5
  17. package/dist/cjs/api/splitviewPanelApi.js.map +1 -1
  18. package/dist/cjs/dnd/abstractDragHandler.d.ts +3 -3
  19. package/dist/cjs/dnd/abstractDragHandler.js +15 -14
  20. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  21. package/dist/cjs/dnd/dataTransfer.d.ts +0 -25
  22. package/dist/cjs/dnd/dataTransfer.js +1 -45
  23. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  24. package/dist/cjs/dnd/dnd.d.ts +1 -14
  25. package/dist/cjs/dnd/dnd.js +1 -79
  26. package/dist/cjs/dnd/dnd.js.map +1 -1
  27. package/dist/cjs/dnd/droptarget.d.ts +3 -0
  28. package/dist/cjs/dnd/droptarget.js +69 -45
  29. package/dist/cjs/dnd/droptarget.js.map +1 -1
  30. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
  31. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -8
  32. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  33. package/dist/cjs/dockview/dockviewComponent.d.ts +27 -19
  34. package/dist/cjs/dockview/dockviewComponent.js +67 -178
  35. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  36. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +2 -5
  37. package/dist/cjs/dockview/dockviewGroupPanel.js +2 -31
  38. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  39. package/dist/cjs/dockview/options.d.ts +2 -1
  40. package/dist/cjs/events.js +25 -4
  41. package/dist/cjs/events.js.map +1 -1
  42. package/dist/cjs/gridview/baseComponentGridview.d.ts +9 -0
  43. package/dist/cjs/gridview/baseComponentGridview.js +14 -2
  44. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  45. package/dist/cjs/gridview/basePanelView.d.ts +5 -8
  46. package/dist/cjs/gridview/basePanelView.js +14 -8
  47. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  48. package/dist/cjs/gridview/branchNode.js +1 -1
  49. package/dist/cjs/gridview/branchNode.js.map +1 -1
  50. package/dist/cjs/gridview/gridview.js +19 -17
  51. package/dist/cjs/gridview/gridview.js.map +1 -1
  52. package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
  53. package/dist/cjs/gridview/gridviewComponent.js +5 -0
  54. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  55. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
  56. package/dist/cjs/gridview/gridviewPanel.js +3 -6
  57. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  58. package/dist/cjs/gridview/leafNode.js +1 -0
  59. package/dist/cjs/gridview/leafNode.js.map +1 -1
  60. package/dist/cjs/groupview/groupPanel.d.ts +0 -7
  61. package/dist/cjs/groupview/groupview.d.ts +15 -8
  62. package/dist/cjs/groupview/groupview.js +36 -123
  63. package/dist/cjs/groupview/groupview.js.map +1 -1
  64. package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
  65. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  66. package/dist/cjs/groupview/panel/content.js +1 -0
  67. package/dist/cjs/groupview/panel/content.js.map +1 -1
  68. package/dist/cjs/groupview/tab.d.ts +10 -13
  69. package/dist/cjs/groupview/tab.js +22 -80
  70. package/dist/cjs/groupview/tab.js.map +1 -1
  71. package/dist/cjs/groupview/titlebar/tabsContainer.js +4 -6
  72. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  73. package/dist/cjs/index.d.ts +1 -1
  74. package/dist/cjs/lifecycle.js +2 -1
  75. package/dist/cjs/lifecycle.js.map +1 -1
  76. package/dist/cjs/panel/types.d.ts +0 -2
  77. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
  78. package/dist/cjs/paneview/draggablePaneviewPanel.js +31 -28
  79. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  80. package/dist/cjs/paneview/paneview.js +1 -1
  81. package/dist/cjs/paneview/paneview.js.map +1 -1
  82. package/dist/cjs/paneview/paneviewComponent.d.ts +0 -3
  83. package/dist/cjs/paneview/paneviewComponent.js +1 -0
  84. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  85. package/dist/cjs/paneview/paneviewPanel.js +1 -1
  86. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  87. package/dist/cjs/react/deserializer.js +1 -3
  88. package/dist/cjs/react/deserializer.js.map +1 -1
  89. package/dist/cjs/react/dockview/dockview.d.ts +9 -9
  90. package/dist/cjs/react/dockview/dockview.js +14 -1
  91. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  92. package/dist/cjs/react/dockview/reactContentPart.js +4 -4
  93. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  94. package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
  95. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  96. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
  97. package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
  98. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  99. package/dist/cjs/react/gridview/view.js +2 -2
  100. package/dist/cjs/react/gridview/view.js.map +1 -1
  101. package/dist/cjs/react/index.d.ts +1 -0
  102. package/dist/cjs/react/index.js.map +1 -1
  103. package/dist/cjs/react/react.js +1 -2
  104. package/dist/cjs/react/react.js.map +1 -1
  105. package/dist/cjs/react/splitview/view.js +2 -2
  106. package/dist/cjs/react/splitview/view.js.map +1 -1
  107. package/dist/cjs/splitview/splitviewComponent.d.ts +0 -3
  108. package/dist/cjs/splitview/splitviewComponent.js +1 -1
  109. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  110. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
  111. package/dist/cjs/splitview/splitviewPanel.js +5 -3
  112. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  113. package/dist/dockview.amd.js +394 -532
  114. package/dist/dockview.amd.min.js +2 -16
  115. package/dist/dockview.amd.min.noStyle.js +2 -16
  116. package/dist/dockview.amd.noStyle.js +393 -531
  117. package/dist/dockview.cjs.js +394 -532
  118. package/dist/dockview.esm.js +395 -528
  119. package/dist/dockview.esm.min.js +2 -16
  120. package/dist/dockview.js +394 -532
  121. package/dist/dockview.min.js +2 -16
  122. package/dist/dockview.min.noStyle.js +2 -16
  123. package/dist/dockview.noStyle.js +393 -531
  124. package/dist/esm/api/component.api.d.ts +28 -19
  125. package/dist/esm/api/component.api.js +48 -21
  126. package/dist/esm/api/gridviewPanelApi.js +1 -0
  127. package/dist/esm/api/groupPanelApi.d.ts +11 -14
  128. package/dist/esm/api/groupPanelApi.js +18 -13
  129. package/dist/esm/api/panelApi.d.ts +0 -25
  130. package/dist/esm/api/panelApi.js +1 -20
  131. package/dist/esm/api/paneviewPanelApi.js +1 -0
  132. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  133. package/dist/esm/api/splitviewPanelApi.js +1 -5
  134. package/dist/esm/dnd/abstractDragHandler.d.ts +3 -3
  135. package/dist/esm/dnd/abstractDragHandler.js +9 -8
  136. package/dist/esm/dnd/dataTransfer.d.ts +0 -25
  137. package/dist/esm/dnd/dataTransfer.js +0 -40
  138. package/dist/esm/dnd/dnd.d.ts +1 -14
  139. package/dist/esm/dnd/dnd.js +1 -69
  140. package/dist/esm/dnd/droptarget.d.ts +3 -0
  141. package/dist/esm/dnd/droptarget.js +69 -45
  142. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
  143. package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
  144. package/dist/esm/dockview/dockviewComponent.d.ts +27 -19
  145. package/dist/esm/dockview/dockviewComponent.js +54 -118
  146. package/dist/esm/dockview/dockviewGroupPanel.d.ts +2 -5
  147. package/dist/esm/dockview/dockviewGroupPanel.js +2 -30
  148. package/dist/esm/dockview/options.d.ts +2 -1
  149. package/dist/esm/events.js +2 -3
  150. package/dist/esm/gridview/baseComponentGridview.d.ts +9 -0
  151. package/dist/esm/gridview/baseComponentGridview.js +14 -2
  152. package/dist/esm/gridview/basePanelView.d.ts +5 -8
  153. package/dist/esm/gridview/basePanelView.js +10 -8
  154. package/dist/esm/gridview/branchNode.js +1 -1
  155. package/dist/esm/gridview/gridview.js +16 -15
  156. package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
  157. package/dist/esm/gridview/gridviewComponent.js +5 -0
  158. package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
  159. package/dist/esm/gridview/gridviewPanel.js +3 -6
  160. package/dist/esm/gridview/leafNode.js +1 -0
  161. package/dist/esm/groupview/groupPanel.d.ts +0 -7
  162. package/dist/esm/groupview/groupview.d.ts +15 -8
  163. package/dist/esm/groupview/groupview.js +22 -56
  164. package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
  165. package/dist/esm/groupview/panel/content.js +1 -0
  166. package/dist/esm/groupview/tab.d.ts +10 -13
  167. package/dist/esm/groupview/tab.js +17 -24
  168. package/dist/esm/groupview/titlebar/tabsContainer.js +4 -6
  169. package/dist/esm/index.d.ts +1 -1
  170. package/dist/esm/lifecycle.js +2 -1
  171. package/dist/esm/panel/types.d.ts +0 -2
  172. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  173. package/dist/esm/paneview/draggablePaneviewPanel.js +31 -28
  174. package/dist/esm/paneview/paneview.js +1 -1
  175. package/dist/esm/paneview/paneviewComponent.d.ts +0 -3
  176. package/dist/esm/paneview/paneviewComponent.js +1 -0
  177. package/dist/esm/paneview/paneviewPanel.js +1 -1
  178. package/dist/esm/react/deserializer.js +1 -3
  179. package/dist/esm/react/dockview/dockview.d.ts +9 -9
  180. package/dist/esm/react/dockview/dockview.js +15 -2
  181. package/dist/esm/react/dockview/reactContentPart.js +4 -4
  182. package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
  183. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
  184. package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
  185. package/dist/esm/react/gridview/view.js +2 -2
  186. package/dist/esm/react/index.d.ts +1 -0
  187. package/dist/esm/react/react.js +1 -2
  188. package/dist/esm/react/splitview/view.js +2 -2
  189. package/dist/esm/splitview/splitviewComponent.d.ts +0 -3
  190. package/dist/esm/splitview/splitviewComponent.js +1 -1
  191. package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
  192. package/dist/esm/splitview/splitviewPanel.js +5 -3
  193. package/dist/styles/dockview.css +5 -9
  194. package/package.json +2 -2
  195. package/dist/cjs/functions.d.ts +0 -1
  196. package/dist/cjs/functions.js +0 -42
  197. package/dist/cjs/functions.js.map +0 -1
  198. package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
  199. package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
  200. package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
  201. package/dist/cjs/json.d.ts +0 -1
  202. package/dist/cjs/json.js +0 -14
  203. package/dist/cjs/json.js.map +0 -1
  204. package/dist/esm/functions.d.ts +0 -1
  205. package/dist/esm/functions.js +0 -8
  206. package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
  207. package/dist/esm/groupview/panel/hostedPanel.js +0 -43
  208. package/dist/esm/json.d.ts +0 -1
  209. package/dist/esm/json.js +0 -9
@@ -2,14 +2,14 @@ import { IDockviewComponent, SerializedDockview } from '../dockview/dockviewComp
2
2
  import { AddGroupOptions, AddPanelOptions, MovementOptions } from '../dockview/options';
3
3
  import { Direction, GroupChangeEvent } from '../gridview/baseComponentGridview';
4
4
  import { AddComponentOptions, IGridviewComponent, SerializedGridview } from '../gridview/gridviewComponent';
5
- import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
5
+ import { IGridviewPanel } from '../gridview/gridviewPanel';
6
6
  import { IGroupPanel } from '../groupview/groupPanel';
7
7
  import { AddPaneviewCompponentOptions, SerializedPaneview, IPaneviewComponent } from '../paneview/paneviewComponent';
8
- import { IPaneviewPanel, PaneviewPanel } from '../paneview/paneviewPanel';
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 { GroupviewPanel } from '../groupview/groupviewPanel';
12
+ import { IGroupviewPanel } from '../groupview/groupviewPanel';
13
13
  import { Event } from '../events';
14
14
  import { IDisposable } from '../lifecycle';
15
15
  import { PaneviewDropEvent } from '../react';
@@ -28,10 +28,10 @@ export declare class SplitviewApi implements CommonApi {
28
28
  get height(): number;
29
29
  get width(): number;
30
30
  get length(): number;
31
+ get orientation(): Orientation;
31
32
  get onDidLayoutChange(): Event<void>;
32
33
  get onDidAddView(): Event<IView>;
33
34
  get onDidRemoveView(): Event<IView>;
34
- get orientation(): Orientation;
35
35
  constructor(component: ISplitviewComponent);
36
36
  updateOptions(options: SplitviewComponentUpdateOptions): void;
37
37
  removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
@@ -49,13 +49,13 @@ export declare class SplitviewApi implements CommonApi {
49
49
  }
50
50
  export declare class PaneviewApi implements CommonApi {
51
51
  private readonly component;
52
- get width(): number;
53
- get height(): number;
54
52
  get minimumSize(): number;
55
53
  get maximumSize(): number;
54
+ get height(): number;
55
+ get width(): number;
56
56
  get onDidLayoutChange(): Event<void>;
57
- get onDidAddView(): Event<PaneviewPanel>;
58
- get onDidRemoveView(): Event<PaneviewPanel>;
57
+ get onDidAddView(): Event<IPaneviewPanel>;
58
+ get onDidRemoveView(): Event<IPaneviewPanel>;
59
59
  get onDidDrop(): Event<PaneviewDropEvent>;
60
60
  constructor(component: IPaneviewComponent);
61
61
  getPanels(): IPaneviewPanel[];
@@ -71,15 +71,19 @@ export declare class PaneviewApi implements CommonApi {
71
71
  }
72
72
  export declare class GridviewApi implements CommonApi {
73
73
  private readonly component;
74
- get width(): number;
75
- get height(): number;
76
74
  get minimumHeight(): number;
77
75
  get maximumHeight(): number;
78
76
  get minimumWidth(): number;
79
77
  get maximumWidth(): number;
78
+ get width(): number;
79
+ get height(): number;
80
80
  get onGridEvent(): Event<GroupChangeEvent>;
81
81
  get onDidLayoutChange(): Event<void>;
82
- get panels(): GridviewPanel[];
82
+ get onDidAddGroup(): Event<IGridviewPanel>;
83
+ get onDidRemoveGroup(): Event<IGridviewPanel>;
84
+ get onDidActiveGroupChange(): Event<IGridviewPanel | undefined>;
85
+ get onDidLayoutFromJSON(): Event<void>;
86
+ get panels(): IGridviewPanel[];
83
87
  get orientation(): Orientation;
84
88
  set orientation(value: Orientation);
85
89
  constructor(component: IGridviewComponent);
@@ -93,7 +97,7 @@ export declare class GridviewApi implements CommonApi {
93
97
  size?: number;
94
98
  }): void;
95
99
  resizeToFit(): void;
96
- getPanel(id: string): GridviewPanel | undefined;
100
+ getPanel(id: string): IGridviewPanel | undefined;
97
101
  toggleVisibility(panel: IGridviewPanel): void;
98
102
  setVisible(panel: IGridviewPanel, visible: boolean): void;
99
103
  setActive(panel: IGridviewPanel): void;
@@ -111,27 +115,32 @@ export declare class DockviewApi implements CommonApi {
111
115
  get size(): number;
112
116
  get totalPanels(): number;
113
117
  get onGridEvent(): Event<GroupChangeEvent>;
118
+ get onDidActiveGroupChange(): Event<IGroupviewPanel | undefined>;
119
+ get onDidAddGroup(): Event<IGroupviewPanel>;
120
+ get onDidRemoveGroup(): Event<IGroupviewPanel>;
121
+ get onDidActivePanelChange(): Event<IGroupPanel | undefined>;
122
+ get onDidAddPanel(): Event<IGroupPanel>;
123
+ get onDidRemovePanel(): Event<IGroupPanel>;
124
+ get onDidLayoutfromJSON(): Event<void>;
114
125
  get onDidLayoutChange(): Event<void>;
115
126
  get panels(): IGroupPanel[];
116
- get groups(): GroupviewPanel[];
127
+ get groups(): IGroupviewPanel[];
117
128
  get activePanel(): IGroupPanel | undefined;
118
- get activeGroup(): GroupviewPanel | undefined;
129
+ get activeGroup(): IGroupviewPanel | undefined;
119
130
  constructor(component: IDockviewComponent);
120
131
  getTabHeight(): number | undefined;
121
132
  setTabHeight(height: number | undefined): void;
122
133
  focus(): void;
123
134
  getPanel(id: string): IGroupPanel | undefined;
124
- setActivePanel(panel: IGroupPanel): void;
125
135
  layout(width: number, height: number, force?: boolean): void;
126
136
  addPanel(options: AddPanelOptions): IGroupPanel;
127
- removePanel(panel: IGroupPanel): void;
128
137
  addEmptyGroup(options?: AddGroupOptions): void;
129
138
  moveToNext(options?: MovementOptions): void;
130
139
  moveToPrevious(options?: MovementOptions): void;
131
- closeAllGroups(): Promise<boolean>;
132
- removeGroup(group: GroupviewPanel): void;
140
+ closeAllGroups(): void;
141
+ removeGroup(group: IGroupviewPanel): void;
133
142
  resizeToFit(): void;
134
- getGroup(id: string): GroupviewPanel | undefined;
143
+ getGroup(id: string): IGroupviewPanel | undefined;
135
144
  fromJSON(data: SerializedDockview): void;
136
145
  toJSON(): SerializedDockview;
137
146
  }
@@ -18,6 +18,9 @@ export class SplitviewApi {
18
18
  get length() {
19
19
  return this.component.length;
20
20
  }
21
+ get orientation() {
22
+ return this.component.orientation;
23
+ }
21
24
  get onDidLayoutChange() {
22
25
  return this.component.onDidLayoutChange;
23
26
  }
@@ -27,9 +30,6 @@ export class SplitviewApi {
27
30
  get onDidRemoveView() {
28
31
  return this.component.onDidRemoveView;
29
32
  }
30
- get orientation() {
31
- return this.component.orientation;
32
- }
33
33
  updateOptions(options) {
34
34
  this.component.updateOptions(options);
35
35
  }
@@ -74,18 +74,18 @@ export class PaneviewApi {
74
74
  constructor(component) {
75
75
  this.component = component;
76
76
  }
77
- get width() {
78
- return this.component.width;
79
- }
80
- get height() {
81
- return this.component.height;
82
- }
83
77
  get minimumSize() {
84
78
  return this.component.minimumSize;
85
79
  }
86
80
  get maximumSize() {
87
81
  return this.component.maximumSize;
88
82
  }
83
+ get height() {
84
+ return this.component.height;
85
+ }
86
+ get width() {
87
+ return this.component.width;
88
+ }
89
89
  get onDidLayoutChange() {
90
90
  return this.component.onDidLayoutChange;
91
91
  }
@@ -141,12 +141,6 @@ export class GridviewApi {
141
141
  constructor(component) {
142
142
  this.component = component;
143
143
  }
144
- get width() {
145
- return this.component.width;
146
- }
147
- get height() {
148
- return this.component.height;
149
- }
150
144
  get minimumHeight() {
151
145
  return this.component.minimumHeight;
152
146
  }
@@ -159,12 +153,30 @@ export class GridviewApi {
159
153
  get maximumWidth() {
160
154
  return this.component.maximumWidth;
161
155
  }
156
+ get width() {
157
+ return this.component.width;
158
+ }
159
+ get height() {
160
+ return this.component.height;
161
+ }
162
162
  get onGridEvent() {
163
163
  return this.component.onGridEvent;
164
164
  }
165
165
  get onDidLayoutChange() {
166
166
  return this.component.onDidLayoutChange;
167
167
  }
168
+ get onDidAddGroup() {
169
+ return this.component.onDidAddGroup;
170
+ }
171
+ get onDidRemoveGroup() {
172
+ return this.component.onDidRemoveGroup;
173
+ }
174
+ get onDidActiveGroupChange() {
175
+ return this.component.onDidActiveGroupChange;
176
+ }
177
+ get onDidLayoutFromJSON() {
178
+ return this.component.onDidLayoutFromJSON;
179
+ }
168
180
  get panels() {
169
181
  return this.component.groups;
170
182
  }
@@ -242,6 +254,27 @@ export class DockviewApi {
242
254
  get onGridEvent() {
243
255
  return this.component.onGridEvent;
244
256
  }
257
+ get onDidActiveGroupChange() {
258
+ return this.component.onDidActiveGroupChange;
259
+ }
260
+ get onDidAddGroup() {
261
+ return this.component.onDidAddGroup;
262
+ }
263
+ get onDidRemoveGroup() {
264
+ return this.component.onDidRemoveGroup;
265
+ }
266
+ get onDidActivePanelChange() {
267
+ return this.component.onDidActivePanelChange;
268
+ }
269
+ get onDidAddPanel() {
270
+ return this.component.onDidAddPanel;
271
+ }
272
+ get onDidRemovePanel() {
273
+ return this.component.onDidRemovePanel;
274
+ }
275
+ get onDidLayoutfromJSON() {
276
+ return this.component.onDidLayoutfromJSON;
277
+ }
245
278
  get onDidLayoutChange() {
246
279
  return this.component.onDidLayoutChange;
247
280
  }
@@ -269,18 +302,12 @@ export class DockviewApi {
269
302
  getPanel(id) {
270
303
  return this.component.getGroupPanel(id);
271
304
  }
272
- setActivePanel(panel) {
273
- this.component.setActivePanel(panel);
274
- }
275
305
  layout(width, height, force = false) {
276
306
  this.component.layout(width, height, force);
277
307
  }
278
308
  addPanel(options) {
279
309
  return this.component.addPanel(options);
280
310
  }
281
- removePanel(panel) {
282
- this.component.removePanel(panel);
283
- }
284
311
  addEmptyGroup(options) {
285
312
  this.component.addEmptyGroup(options);
286
313
  }
@@ -14,6 +14,7 @@ export class GridviewPanelApiImpl extends PanelApiImpl {
14
14
  //
15
15
  this._onDidSizeChange = new Emitter();
16
16
  this.onDidSizeChange = this._onDidSizeChange.event;
17
+ this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);
17
18
  }
18
19
  setConstraints(value) {
19
20
  this._onDidConstraintsChangeInternal.fire(value);
@@ -1,4 +1,4 @@
1
- import { Emitter, Event } from '../events';
1
+ import { Emitter } from '../events';
2
2
  import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
3
3
  import { IGroupPanel } from '../groupview/groupPanel';
4
4
  import { GroupviewPanel } from '../groupview/groupviewPanel';
@@ -13,24 +13,23 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
13
13
  readonly isGroupActive: boolean;
14
14
  readonly title: string;
15
15
  readonly suppressClosable: boolean;
16
- readonly onDidDirtyChange: Event<boolean>;
17
- close: () => Promise<boolean>;
18
- interceptOnCloseAction(interceptor: () => Promise<boolean>): void;
16
+ close(): void;
19
17
  setTitle(title: string): void;
20
18
  }
21
19
  export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi {
22
20
  private panel;
23
21
  private _group;
24
- private _interceptor;
25
- readonly _onDidDirtyChange: Emitter<boolean>;
26
- readonly onDidDirtyChange: Event<boolean>;
27
22
  readonly _onDidTitleChange: Emitter<TitleEvent>;
28
- readonly onDidTitleChange: Event<TitleEvent>;
23
+ readonly onDidTitleChange: import("../events").Event<TitleEvent>;
29
24
  readonly _titleChanged: Emitter<TitleEvent>;
30
- readonly titleChanged: Event<TitleEvent>;
25
+ readonly titleChanged: import("../events").Event<TitleEvent>;
31
26
  readonly _suppressClosableChanged: Emitter<SuppressClosableEvent>;
32
- readonly suppressClosableChanged: Event<SuppressClosableEvent>;
33
- get tryClose(): undefined | (() => Promise<boolean>);
27
+ readonly suppressClosableChanged: import("../events").Event<SuppressClosableEvent>;
28
+ private readonly _onDidActiveGroupChange;
29
+ readonly onDidActiveGroupChange: import("../events").Event<void>;
30
+ private readonly _onDidGroupChange;
31
+ readonly onDidGroupChange: import("../events").Event<void>;
32
+ private disposable;
34
33
  get title(): string;
35
34
  get suppressClosable(): boolean;
36
35
  get isGroupActive(): boolean;
@@ -38,7 +37,5 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
38
37
  get group(): GroupviewPanel | undefined;
39
38
  constructor(panel: IGroupPanel, group: GroupviewPanel | undefined);
40
39
  setTitle(title: string): void;
41
- close(): Promise<boolean>;
42
- interceptOnCloseAction(interceptor: () => Promise<boolean>): void;
43
- dispose(): void;
40
+ close(): void;
44
41
  }
@@ -1,22 +1,23 @@
1
1
  import { Emitter } from '../events';
2
2
  import { GridviewPanelApiImpl } from './gridviewPanelApi';
3
+ import { MutableDisposable } from '../lifecycle';
3
4
  export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
4
5
  constructor(panel, group) {
5
6
  super(panel.id);
6
7
  this.panel = panel;
7
- this._onDidDirtyChange = new Emitter();
8
- this.onDidDirtyChange = this._onDidDirtyChange.event;
9
8
  this._onDidTitleChange = new Emitter();
10
9
  this.onDidTitleChange = this._onDidTitleChange.event;
11
10
  this._titleChanged = new Emitter();
12
11
  this.titleChanged = this._titleChanged.event;
13
12
  this._suppressClosableChanged = new Emitter();
14
13
  this.suppressClosableChanged = this._suppressClosableChanged.event;
15
- this._group = group;
16
- this.addDisposables(this._onDidDirtyChange);
17
- }
18
- get tryClose() {
19
- return this._interceptor;
14
+ this._onDidActiveGroupChange = new Emitter();
15
+ this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
16
+ this._onDidGroupChange = new Emitter();
17
+ this.onDidGroupChange = this._onDidGroupChange.event;
18
+ this.disposable = new MutableDisposable();
19
+ this.group = group;
20
+ this.addDisposables(this.disposable, this._onDidTitleChange, this._titleChanged, this._suppressClosableChanged, this._onDidGroupChange, this._onDidActiveGroupChange);
20
21
  }
21
22
  get title() {
22
23
  return this.panel.title;
@@ -29,7 +30,17 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
29
30
  return !!((_a = this.group) === null || _a === void 0 ? void 0 : _a.isActive);
30
31
  }
31
32
  set group(value) {
33
+ const isOldGroupActive = this.isGroupActive;
32
34
  this._group = value;
35
+ this._onDidGroupChange.fire();
36
+ if (this._group) {
37
+ this.disposable.value = this._group.api.onDidActiveChange(() => {
38
+ this._onDidActiveGroupChange.fire();
39
+ });
40
+ if (this.isGroupActive !== isOldGroupActive) {
41
+ this._onDidActiveGroupChange.fire();
42
+ }
43
+ }
33
44
  }
34
45
  get group() {
35
46
  return this._group;
@@ -43,10 +54,4 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
43
54
  }
44
55
  return this.group.model.closePanel(this.panel);
45
56
  }
46
- interceptOnCloseAction(interceptor) {
47
- this._interceptor = interceptor;
48
- }
49
- dispose() {
50
- super.dispose();
51
- }
52
57
  }
@@ -1,17 +1,5 @@
1
1
  import { Emitter, Event } from '../events';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
- /**
4
- * A valid JSON type
5
- */
6
- export declare type StateObject = number | string | boolean | null | object | StateObject[] | {
7
- [key: string]: StateObject;
8
- };
9
- /**
10
- * A JSON-serializable object
11
- */
12
- export interface State {
13
- [key: string]: StateObject;
14
- }
15
3
  export interface FocusEvent {
16
4
  readonly isFocused: boolean;
17
5
  }
@@ -27,17 +15,12 @@ export interface ActiveEvent {
27
15
  }
28
16
  export interface PanelApi {
29
17
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
30
- readonly onDidStateChange: Event<void>;
31
18
  readonly onDidFocusChange: Event<FocusEvent>;
32
19
  readonly onDidVisibilityChange: Event<VisibilityEvent>;
33
20
  readonly onDidActiveChange: Event<ActiveEvent>;
34
21
  readonly onFocusEvent: Event<void>;
35
22
  setVisible(isVisible: boolean): void;
36
23
  setActive(): void;
37
- setState(key: string, value: StateObject): void;
38
- setState(state: State): void;
39
- getState: () => State;
40
- getStateKey: <T extends StateObject>(key: string) => T;
41
24
  /**
42
25
  * The id of the panel that would have been assigned when the panel was created
43
26
  */
@@ -68,14 +51,11 @@ export interface PanelApi {
68
51
  */
69
52
  export declare class PanelApiImpl extends CompositeDisposable implements PanelApi {
70
53
  readonly id: string;
71
- private _state;
72
54
  private _isFocused;
73
55
  private _isActive;
74
56
  private _isVisible;
75
57
  private _width;
76
58
  private _height;
77
- readonly _onDidStateChange: Emitter<void>;
78
- readonly onDidStateChange: Event<void>;
79
59
  readonly _onDidPanelDimensionChange: Emitter<PanelDimensionChangeEvent>;
80
60
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
81
61
  readonly _onDidChangeFocus: Emitter<FocusEvent>;
@@ -98,10 +78,5 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
98
78
  constructor(id: string);
99
79
  setVisible(isVisible: boolean): void;
100
80
  setActive(): void;
101
- setState(key: string | {
102
- [key: string]: StateObject;
103
- }, value?: StateObject): void;
104
- getState(): State;
105
- getStateKey<T extends StateObject>(key: string): T;
106
81
  dispose(): void;
107
82
  }
@@ -7,15 +7,11 @@ export class PanelApiImpl extends CompositeDisposable {
7
7
  constructor(id) {
8
8
  super();
9
9
  this.id = id;
10
- this._state = {};
11
10
  this._isFocused = false;
12
11
  this._isActive = false;
13
12
  this._isVisible = true;
14
13
  this._width = 0;
15
14
  this._height = 0;
16
- this._onDidStateChange = new Emitter();
17
- this.onDidStateChange = this._onDidStateChange.event;
18
- //
19
15
  this._onDidPanelDimensionChange = new Emitter({
20
16
  replay: true,
21
17
  });
@@ -44,7 +40,7 @@ export class PanelApiImpl extends CompositeDisposable {
44
40
  //
45
41
  this._onActiveChange = new Emitter();
46
42
  this.onActiveChange = this._onActiveChange.event;
47
- this.addDisposables(this._onDidStateChange, this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this.onDidFocusChange((event) => {
43
+ this.addDisposables(this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
48
44
  this._isFocused = event.isFocused;
49
45
  }), this.onDidActiveChange((event) => {
50
46
  this._isActive = event.isActive;
@@ -77,21 +73,6 @@ export class PanelApiImpl extends CompositeDisposable {
77
73
  setActive() {
78
74
  this._onActiveChange.fire();
79
75
  }
80
- setState(key, value) {
81
- if (typeof key === 'object') {
82
- this._state = key;
83
- }
84
- else if (typeof value !== undefined) {
85
- this._state[key] = value;
86
- }
87
- this._onDidStateChange.fire(undefined);
88
- }
89
- getState() {
90
- return this._state;
91
- }
92
- getStateKey(key) {
93
- return this._state[key];
94
- }
95
76
  dispose() {
96
77
  super.dispose();
97
78
  }
@@ -11,6 +11,7 @@ export class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {
11
11
  this.onMouseEnter = this._onMouseEnter.event;
12
12
  this._onMouseLeave = new Emitter({});
13
13
  this.onMouseLeave = this._onMouseLeave.event;
14
+ this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);
14
15
  }
15
16
  set pane(pane) {
16
17
  this._pane = pane;
@@ -28,6 +28,5 @@ export declare class SplitviewPanelApiImpl extends PanelApiImpl implements Split
28
28
  constructor(id: string);
29
29
  setConstraints(value: PanelConstraintChangeEvent2): void;
30
30
  setSize(event: PanelSizeEvent): void;
31
- dispose(): void;
32
31
  }
33
32
  export {};
@@ -14,6 +14,7 @@ export class SplitviewPanelApiImpl extends PanelApiImpl {
14
14
  //
15
15
  this._onDidSizeChange = new Emitter();
16
16
  this.onDidSizeChange = this._onDidSizeChange.event;
17
+ this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);
17
18
  }
18
19
  setConstraints(value) {
19
20
  this._onDidConstraintsChangeInternal.fire(value);
@@ -21,9 +22,4 @@ export class SplitviewPanelApiImpl extends PanelApiImpl {
21
22
  setSize(event) {
22
23
  this._onDidSizeChange.fire(event);
23
24
  }
24
- dispose() {
25
- super.dispose();
26
- this._onDidConstraintsChange.dispose();
27
- this._onDidSizeChange.dispose();
28
- }
29
25
  }
@@ -1,10 +1,10 @@
1
1
  import { CompositeDisposable, IDisposable } from '../lifecycle';
2
2
  export declare abstract class DragHandler extends CompositeDisposable {
3
3
  private readonly el;
4
- private iframes;
4
+ private readonly disposable;
5
5
  private readonly _onDragStart;
6
- readonly onDragStart: import("../events").Event<void>;
7
- private disposable;
6
+ readonly onDragStart: import("..").Event<void>;
7
+ private iframes;
8
8
  constructor(el: HTMLElement);
9
9
  abstract getData(): IDisposable;
10
10
  private configure;
@@ -1,3 +1,4 @@
1
+ import { MutableDisposable } from '..';
1
2
  import { getElementsByTagName } from '../dom';
2
3
  import { addDisposableListener, Emitter } from '../events';
3
4
  import { CompositeDisposable } from '../lifecycle';
@@ -5,14 +6,14 @@ export class DragHandler extends CompositeDisposable {
5
6
  constructor(el) {
6
7
  super();
7
8
  this.el = el;
8
- this.iframes = [];
9
+ this.disposable = new MutableDisposable();
9
10
  this._onDragStart = new Emitter();
10
11
  this.onDragStart = this._onDragStart.event;
12
+ this.iframes = [];
11
13
  this.configure();
12
14
  }
13
15
  configure() {
14
- this.addDisposables(addDisposableListener(this.el, 'dragstart', (event) => {
15
- var _a;
16
+ this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
16
17
  this.iframes = [
17
18
  ...getElementsByTagName('iframe'),
18
19
  ...getElementsByTagName('webview'),
@@ -22,16 +23,16 @@ export class DragHandler extends CompositeDisposable {
22
23
  }
23
24
  this.el.classList.add('dragged');
24
25
  setTimeout(() => this.el.classList.remove('dragged'), 0);
25
- (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();
26
- this.disposable = this.getData();
26
+ this.disposable.value = this.getData();
27
+ if (event.dataTransfer) {
28
+ event.dataTransfer.effectAllowed = 'move';
29
+ }
27
30
  }), addDisposableListener(this.el, 'dragend', (ev) => {
28
- var _a;
29
31
  for (const iframe of this.iframes) {
30
32
  iframe.style.pointerEvents = 'auto';
31
33
  }
32
34
  this.iframes = [];
33
- (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();
34
- this.disposable = undefined;
35
+ this.disposable.dispose();
35
36
  }));
36
37
  }
37
38
  }
@@ -1,4 +1,3 @@
1
- import { PanelOptions } from '../dockview/options';
2
1
  declare class TransferObject {
3
2
  constructor();
4
3
  }
@@ -13,30 +12,6 @@ export declare class PaneTransfer extends TransferObject {
13
12
  readonly paneId: string;
14
13
  constructor(viewId: string, paneId: string);
15
14
  }
16
- export declare const DATA_KEY = "splitview/transfer";
17
- export declare const isPanelTransferEvent: (event: DragEvent) => boolean;
18
- export declare enum DragType {
19
- DOCKVIEW_TAB = "dockview_tab",
20
- EXTERNAL = "external_group_drag"
21
- }
22
- export interface DragItem {
23
- itemId: string;
24
- groupId: string;
25
- }
26
- export interface ExternalDragItem extends PanelOptions {
27
- }
28
- export declare type DataObject = DragItem | ExternalDragItem;
29
- /**
30
- * Determine whether this data belong to that of an event that was started by
31
- * dragging a tab component
32
- */
33
- export declare const isTabDragEvent: (data: any) => data is DragItem;
34
- /**
35
- * Determine whether this data belong to that of an event that was started by
36
- * a custom drag-enable component
37
- */
38
- export declare const isCustomDragEvent: (data: any) => data is ExternalDragItem;
39
- export declare const extractData: (event: DragEvent) => DataObject | null;
40
15
  /**
41
16
  * A singleton to store transfer data during drag & drop operations that are only valid within the application.
42
17
  */
@@ -1,4 +1,3 @@
1
- import { tryParseJSON } from '../json';
2
1
  class TransferObject {
3
2
  constructor() {
4
3
  //
@@ -19,45 +18,6 @@ export class PaneTransfer extends TransferObject {
19
18
  this.paneId = paneId;
20
19
  }
21
20
  }
22
- export const DATA_KEY = 'splitview/transfer';
23
- export const isPanelTransferEvent = (event) => {
24
- if (!event.dataTransfer) {
25
- return false;
26
- }
27
- return event.dataTransfer.types.includes(DATA_KEY);
28
- };
29
- export var DragType;
30
- (function (DragType) {
31
- DragType["DOCKVIEW_TAB"] = "dockview_tab";
32
- DragType["EXTERNAL"] = "external_group_drag";
33
- })(DragType || (DragType = {}));
34
- /**
35
- * Determine whether this data belong to that of an event that was started by
36
- * dragging a tab component
37
- */
38
- export const isTabDragEvent = (data) => {
39
- return data.type === DragType.DOCKVIEW_TAB;
40
- };
41
- /**
42
- * Determine whether this data belong to that of an event that was started by
43
- * a custom drag-enable component
44
- */
45
- export const isCustomDragEvent = (data) => {
46
- return data.type === DragType.EXTERNAL;
47
- };
48
- export const extractData = (event) => {
49
- if (!event.dataTransfer) {
50
- return null;
51
- }
52
- const data = tryParseJSON(event.dataTransfer.getData(DATA_KEY));
53
- if (!data) {
54
- console.warn(`[dragEvent] ${DATA_KEY} data is missing`);
55
- }
56
- if (typeof data.type !== 'string') {
57
- console.warn(`[dragEvent] invalid type ${data.type}`);
58
- }
59
- return data;
60
- };
61
21
  /**
62
22
  * A singleton to store transfer data during drag & drop operations that are only valid within the application.
63
23
  */