dockview 1.0.1 → 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 (221) hide show
  1. package/README.md +243 -186
  2. package/dist/cjs/api/component.api.d.ts +32 -17
  3. package/dist/cjs/api/component.api.js +155 -28
  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 +4 -5
  28. package/dist/cjs/dnd/droptarget.js +70 -46
  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/defaultGroupPanelView.js +3 -1
  34. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  35. package/dist/cjs/dockview/dockviewComponent.d.ts +27 -19
  36. package/dist/cjs/dockview/dockviewComponent.js +67 -178
  37. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  38. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +2 -5
  39. package/dist/cjs/dockview/dockviewGroupPanel.js +2 -31
  40. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  41. package/dist/cjs/dockview/options.d.ts +2 -1
  42. package/dist/cjs/events.d.ts +7 -0
  43. package/dist/cjs/events.js +47 -5
  44. package/dist/cjs/events.js.map +1 -1
  45. package/dist/cjs/gridview/baseComponentGridview.d.ts +9 -0
  46. package/dist/cjs/gridview/baseComponentGridview.js +20 -15
  47. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  48. package/dist/cjs/gridview/basePanelView.d.ts +5 -8
  49. package/dist/cjs/gridview/basePanelView.js +14 -8
  50. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  51. package/dist/cjs/gridview/branchNode.js +1 -1
  52. package/dist/cjs/gridview/branchNode.js.map +1 -1
  53. package/dist/cjs/gridview/gridview.js +19 -18
  54. package/dist/cjs/gridview/gridview.js.map +1 -1
  55. package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
  56. package/dist/cjs/gridview/gridviewComponent.js +5 -0
  57. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  58. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
  59. package/dist/cjs/gridview/gridviewPanel.js +3 -6
  60. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  61. package/dist/cjs/gridview/leafNode.js +1 -0
  62. package/dist/cjs/gridview/leafNode.js.map +1 -1
  63. package/dist/cjs/groupview/groupPanel.d.ts +0 -7
  64. package/dist/cjs/groupview/groupview.d.ts +15 -8
  65. package/dist/cjs/groupview/groupview.js +38 -125
  66. package/dist/cjs/groupview/groupview.js.map +1 -1
  67. package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
  68. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  69. package/dist/cjs/groupview/panel/content.js +1 -0
  70. package/dist/cjs/groupview/panel/content.js.map +1 -1
  71. package/dist/cjs/groupview/tab.d.ts +10 -13
  72. package/dist/cjs/groupview/tab.js +22 -80
  73. package/dist/cjs/groupview/tab.js.map +1 -1
  74. package/dist/cjs/groupview/titlebar/tabsContainer.js +6 -8
  75. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  76. package/dist/cjs/index.d.ts +1 -1
  77. package/dist/cjs/lifecycle.js +2 -1
  78. package/dist/cjs/lifecycle.js.map +1 -1
  79. package/dist/cjs/panel/types.d.ts +0 -2
  80. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
  81. package/dist/cjs/paneview/draggablePaneviewPanel.js +32 -29
  82. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  83. package/dist/cjs/paneview/paneview.d.ts +1 -1
  84. package/dist/cjs/paneview/paneview.js +2 -5
  85. package/dist/cjs/paneview/paneview.js.map +1 -1
  86. package/dist/cjs/paneview/paneviewComponent.d.ts +6 -5
  87. package/dist/cjs/paneview/paneviewComponent.js +11 -16
  88. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  89. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
  90. package/dist/cjs/paneview/paneviewPanel.js +14 -2
  91. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  92. package/dist/cjs/react/deserializer.js +1 -3
  93. package/dist/cjs/react/deserializer.js.map +1 -1
  94. package/dist/cjs/react/dockview/dockview.d.ts +9 -9
  95. package/dist/cjs/react/dockview/dockview.js +14 -1
  96. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  97. package/dist/cjs/react/dockview/reactContentPart.js +4 -4
  98. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  99. package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
  100. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  101. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
  102. package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
  103. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  104. package/dist/cjs/react/gridview/view.js +2 -2
  105. package/dist/cjs/react/gridview/view.js.map +1 -1
  106. package/dist/cjs/react/index.d.ts +1 -0
  107. package/dist/cjs/react/index.js.map +1 -1
  108. package/dist/cjs/react/react.js +1 -2
  109. package/dist/cjs/react/react.js.map +1 -1
  110. package/dist/cjs/react/splitview/view.js +2 -2
  111. package/dist/cjs/react/splitview/view.js.map +1 -1
  112. package/dist/cjs/splitview/core/splitview.js +1 -1
  113. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  114. package/dist/cjs/splitview/splitviewComponent.d.ts +9 -6
  115. package/dist/cjs/splitview/splitviewComponent.js +11 -1
  116. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  117. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
  118. package/dist/cjs/splitview/splitviewPanel.js +5 -3
  119. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  120. package/dist/dockview.amd.js +480 -567
  121. package/dist/dockview.amd.min.js +2 -16
  122. package/dist/dockview.amd.min.noStyle.js +2 -16
  123. package/dist/dockview.amd.noStyle.js +479 -566
  124. package/dist/dockview.cjs.js +480 -567
  125. package/dist/dockview.esm.js +480 -563
  126. package/dist/dockview.esm.min.js +2 -16
  127. package/dist/dockview.js +480 -567
  128. package/dist/dockview.min.js +2 -16
  129. package/dist/dockview.min.noStyle.js +2 -16
  130. package/dist/dockview.noStyle.js +479 -566
  131. package/dist/esm/api/component.api.d.ts +32 -17
  132. package/dist/esm/api/component.api.js +71 -20
  133. package/dist/esm/api/gridviewPanelApi.js +1 -0
  134. package/dist/esm/api/groupPanelApi.d.ts +11 -14
  135. package/dist/esm/api/groupPanelApi.js +18 -13
  136. package/dist/esm/api/panelApi.d.ts +0 -25
  137. package/dist/esm/api/panelApi.js +1 -20
  138. package/dist/esm/api/paneviewPanelApi.js +1 -0
  139. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  140. package/dist/esm/api/splitviewPanelApi.js +1 -5
  141. package/dist/esm/dnd/abstractDragHandler.d.ts +3 -3
  142. package/dist/esm/dnd/abstractDragHandler.js +9 -8
  143. package/dist/esm/dnd/dataTransfer.d.ts +0 -25
  144. package/dist/esm/dnd/dataTransfer.js +0 -40
  145. package/dist/esm/dnd/dnd.d.ts +1 -14
  146. package/dist/esm/dnd/dnd.js +1 -69
  147. package/dist/esm/dnd/droptarget.d.ts +4 -5
  148. package/dist/esm/dnd/droptarget.js +70 -46
  149. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
  150. package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
  151. package/dist/esm/dockview/defaultGroupPanelView.js +3 -1
  152. package/dist/esm/dockview/dockviewComponent.d.ts +27 -19
  153. package/dist/esm/dockview/dockviewComponent.js +54 -118
  154. package/dist/esm/dockview/dockviewGroupPanel.d.ts +2 -5
  155. package/dist/esm/dockview/dockviewGroupPanel.js +2 -30
  156. package/dist/esm/dockview/options.d.ts +2 -1
  157. package/dist/esm/events.d.ts +7 -0
  158. package/dist/esm/events.js +20 -3
  159. package/dist/esm/gridview/baseComponentGridview.d.ts +9 -0
  160. package/dist/esm/gridview/baseComponentGridview.js +21 -16
  161. package/dist/esm/gridview/basePanelView.d.ts +5 -8
  162. package/dist/esm/gridview/basePanelView.js +10 -8
  163. package/dist/esm/gridview/branchNode.js +1 -1
  164. package/dist/esm/gridview/gridview.js +16 -16
  165. package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
  166. package/dist/esm/gridview/gridviewComponent.js +5 -0
  167. package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
  168. package/dist/esm/gridview/gridviewPanel.js +3 -6
  169. package/dist/esm/gridview/leafNode.js +1 -0
  170. package/dist/esm/groupview/groupPanel.d.ts +0 -7
  171. package/dist/esm/groupview/groupview.d.ts +15 -8
  172. package/dist/esm/groupview/groupview.js +24 -58
  173. package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
  174. package/dist/esm/groupview/panel/content.js +1 -0
  175. package/dist/esm/groupview/tab.d.ts +10 -13
  176. package/dist/esm/groupview/tab.js +17 -24
  177. package/dist/esm/groupview/titlebar/tabsContainer.js +6 -8
  178. package/dist/esm/index.d.ts +1 -1
  179. package/dist/esm/lifecycle.js +2 -1
  180. package/dist/esm/panel/types.d.ts +0 -2
  181. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  182. package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
  183. package/dist/esm/paneview/paneview.d.ts +1 -1
  184. package/dist/esm/paneview/paneview.js +2 -5
  185. package/dist/esm/paneview/paneviewComponent.d.ts +6 -5
  186. package/dist/esm/paneview/paneviewComponent.js +11 -8
  187. package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
  188. package/dist/esm/paneview/paneviewPanel.js +10 -2
  189. package/dist/esm/react/deserializer.js +1 -3
  190. package/dist/esm/react/dockview/dockview.d.ts +9 -9
  191. package/dist/esm/react/dockview/dockview.js +15 -2
  192. package/dist/esm/react/dockview/reactContentPart.js +4 -4
  193. package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
  194. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
  195. package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
  196. package/dist/esm/react/gridview/view.js +2 -2
  197. package/dist/esm/react/index.d.ts +1 -0
  198. package/dist/esm/react/react.js +1 -2
  199. package/dist/esm/react/splitview/view.js +2 -2
  200. package/dist/esm/splitview/core/splitview.js +1 -1
  201. package/dist/esm/splitview/splitviewComponent.d.ts +9 -6
  202. package/dist/esm/splitview/splitviewComponent.js +10 -2
  203. package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
  204. package/dist/esm/splitview/splitviewPanel.js +5 -3
  205. package/dist/styles/dockview.css +5 -9
  206. package/package.json +4 -4
  207. package/dist/cjs/functions.d.ts +0 -1
  208. package/dist/cjs/functions.js +0 -42
  209. package/dist/cjs/functions.js.map +0 -1
  210. package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
  211. package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
  212. package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
  213. package/dist/cjs/json.d.ts +0 -1
  214. package/dist/cjs/json.js +0 -14
  215. package/dist/cjs/json.js.map +0 -1
  216. package/dist/esm/functions.d.ts +0 -1
  217. package/dist/esm/functions.js +0 -8
  218. package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
  219. package/dist/esm/groupview/panel/hostedPanel.js +0 -43
  220. package/dist/esm/json.d.ts +0 -1
  221. package/dist/esm/json.js +0 -9
@@ -2,16 +2,17 @@ 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
8
  import { IPaneviewPanel } from '../paneview/paneviewPanel';
9
9
  import { AddSplitviewComponentOptions, ISplitviewComponent, SerializedSplitview, SplitviewComponentUpdateOptions } from '../splitview/splitviewComponent';
10
- import { Orientation, Sizing } from '../splitview/core/splitview';
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
+ import { PaneviewDropEvent } from '../react';
15
16
  export interface CommonApi {
16
17
  readonly height: number;
17
18
  readonly width: number;
@@ -27,8 +28,10 @@ export declare class SplitviewApi implements CommonApi {
27
28
  get height(): number;
28
29
  get width(): number;
29
30
  get length(): number;
30
- get onDidLayoutChange(): Event<void>;
31
31
  get orientation(): Orientation;
32
+ get onDidLayoutChange(): Event<void>;
33
+ get onDidAddView(): Event<IView>;
34
+ get onDidRemoveView(): Event<IView>;
32
35
  constructor(component: ISplitviewComponent);
33
36
  updateOptions(options: SplitviewComponentUpdateOptions): void;
34
37
  removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
@@ -46,11 +49,14 @@ export declare class SplitviewApi implements CommonApi {
46
49
  }
47
50
  export declare class PaneviewApi implements CommonApi {
48
51
  private readonly component;
49
- get width(): number;
50
- get height(): number;
51
52
  get minimumSize(): number;
52
53
  get maximumSize(): number;
54
+ get height(): number;
55
+ get width(): number;
53
56
  get onDidLayoutChange(): Event<void>;
57
+ get onDidAddView(): Event<IPaneviewPanel>;
58
+ get onDidRemoveView(): Event<IPaneviewPanel>;
59
+ get onDidDrop(): Event<PaneviewDropEvent>;
54
60
  constructor(component: IPaneviewComponent);
55
61
  getPanels(): IPaneviewPanel[];
56
62
  removePanel(panel: IPaneviewPanel): void;
@@ -65,15 +71,19 @@ export declare class PaneviewApi implements CommonApi {
65
71
  }
66
72
  export declare class GridviewApi implements CommonApi {
67
73
  private readonly component;
68
- get width(): number;
69
- get height(): number;
70
74
  get minimumHeight(): number;
71
75
  get maximumHeight(): number;
72
76
  get minimumWidth(): number;
73
77
  get maximumWidth(): number;
78
+ get width(): number;
79
+ get height(): number;
74
80
  get onGridEvent(): Event<GroupChangeEvent>;
75
81
  get onDidLayoutChange(): Event<void>;
76
- 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[];
77
87
  get orientation(): Orientation;
78
88
  set orientation(value: Orientation);
79
89
  constructor(component: IGridviewComponent);
@@ -87,7 +97,7 @@ export declare class GridviewApi implements CommonApi {
87
97
  size?: number;
88
98
  }): void;
89
99
  resizeToFit(): void;
90
- getPanel(id: string): GridviewPanel | undefined;
100
+ getPanel(id: string): IGridviewPanel | undefined;
91
101
  toggleVisibility(panel: IGridviewPanel): void;
92
102
  setVisible(panel: IGridviewPanel, visible: boolean): void;
93
103
  setActive(panel: IGridviewPanel): void;
@@ -105,27 +115,32 @@ export declare class DockviewApi implements CommonApi {
105
115
  get size(): number;
106
116
  get totalPanels(): number;
107
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>;
108
125
  get onDidLayoutChange(): Event<void>;
109
126
  get panels(): IGroupPanel[];
110
- get groups(): GroupviewPanel[];
127
+ get groups(): IGroupviewPanel[];
111
128
  get activePanel(): IGroupPanel | undefined;
112
- get activeGroup(): GroupviewPanel | undefined;
129
+ get activeGroup(): IGroupviewPanel | undefined;
113
130
  constructor(component: IDockviewComponent);
114
131
  getTabHeight(): number | undefined;
115
132
  setTabHeight(height: number | undefined): void;
116
133
  focus(): void;
117
134
  getPanel(id: string): IGroupPanel | undefined;
118
- setActivePanel(panel: IGroupPanel): void;
119
135
  layout(width: number, height: number, force?: boolean): void;
120
136
  addPanel(options: AddPanelOptions): IGroupPanel;
121
- removePanel(panel: IGroupPanel): void;
122
137
  addEmptyGroup(options?: AddGroupOptions): void;
123
138
  moveToNext(options?: MovementOptions): void;
124
139
  moveToPrevious(options?: MovementOptions): void;
125
- closeAllGroups(): Promise<boolean>;
126
- removeGroup(group: GroupviewPanel): void;
140
+ closeAllGroups(): void;
141
+ removeGroup(group: IGroupviewPanel): void;
127
142
  resizeToFit(): void;
128
- getGroup(id: string): GroupviewPanel | undefined;
143
+ getGroup(id: string): IGroupviewPanel | undefined;
129
144
  fromJSON(data: SerializedDockview): void;
130
145
  toJSON(): SerializedDockview;
131
146
  }
@@ -1,3 +1,4 @@
1
+ import { Emitter } from '../events';
1
2
  export class SplitviewApi {
2
3
  constructor(component) {
3
4
  this.component = component;
@@ -17,11 +18,17 @@ export class SplitviewApi {
17
18
  get length() {
18
19
  return this.component.length;
19
20
  }
21
+ get orientation() {
22
+ return this.component.orientation;
23
+ }
20
24
  get onDidLayoutChange() {
21
25
  return this.component.onDidLayoutChange;
22
26
  }
23
- get orientation() {
24
- return this.component.orientation;
27
+ get onDidAddView() {
28
+ return this.component.onDidAddView;
29
+ }
30
+ get onDidRemoveView() {
31
+ return this.component.onDidRemoveView;
25
32
  }
26
33
  updateOptions(options) {
27
34
  this.component.updateOptions(options);
@@ -67,21 +74,38 @@ export class PaneviewApi {
67
74
  constructor(component) {
68
75
  this.component = component;
69
76
  }
70
- get width() {
71
- return this.component.width;
72
- }
73
- get height() {
74
- return this.component.height;
75
- }
76
77
  get minimumSize() {
77
78
  return this.component.minimumSize;
78
79
  }
79
80
  get maximumSize() {
80
81
  return this.component.maximumSize;
81
82
  }
83
+ get height() {
84
+ return this.component.height;
85
+ }
86
+ get width() {
87
+ return this.component.width;
88
+ }
82
89
  get onDidLayoutChange() {
83
90
  return this.component.onDidLayoutChange;
84
91
  }
92
+ get onDidAddView() {
93
+ return this.component.onDidAddView;
94
+ }
95
+ get onDidRemoveView() {
96
+ return this.component.onDidRemoveView;
97
+ }
98
+ get onDidDrop() {
99
+ const emitter = new Emitter();
100
+ const disposable = this.component.onDidDrop((e) => {
101
+ emitter.fire(Object.assign(Object.assign({}, e), { api: this }));
102
+ });
103
+ emitter.dispose = () => {
104
+ disposable.dispose();
105
+ emitter.dispose();
106
+ };
107
+ return emitter.event;
108
+ }
85
109
  getPanels() {
86
110
  return this.component.getPanels();
87
111
  }
@@ -117,12 +141,6 @@ export class GridviewApi {
117
141
  constructor(component) {
118
142
  this.component = component;
119
143
  }
120
- get width() {
121
- return this.component.width;
122
- }
123
- get height() {
124
- return this.component.height;
125
- }
126
144
  get minimumHeight() {
127
145
  return this.component.minimumHeight;
128
146
  }
@@ -135,12 +153,30 @@ export class GridviewApi {
135
153
  get maximumWidth() {
136
154
  return this.component.maximumWidth;
137
155
  }
156
+ get width() {
157
+ return this.component.width;
158
+ }
159
+ get height() {
160
+ return this.component.height;
161
+ }
138
162
  get onGridEvent() {
139
163
  return this.component.onGridEvent;
140
164
  }
141
165
  get onDidLayoutChange() {
142
166
  return this.component.onDidLayoutChange;
143
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
+ }
144
180
  get panels() {
145
181
  return this.component.groups;
146
182
  }
@@ -218,6 +254,27 @@ export class DockviewApi {
218
254
  get onGridEvent() {
219
255
  return this.component.onGridEvent;
220
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
+ }
221
278
  get onDidLayoutChange() {
222
279
  return this.component.onDidLayoutChange;
223
280
  }
@@ -245,18 +302,12 @@ export class DockviewApi {
245
302
  getPanel(id) {
246
303
  return this.component.getGroupPanel(id);
247
304
  }
248
- setActivePanel(panel) {
249
- this.component.setActivePanel(panel);
250
- }
251
305
  layout(width, height, force = false) {
252
306
  this.component.layout(width, height, force);
253
307
  }
254
308
  addPanel(options) {
255
309
  return this.component.addPanel(options);
256
310
  }
257
- removePanel(panel) {
258
- this.component.removePanel(panel);
259
- }
260
311
  addEmptyGroup(options) {
261
312
  this.component.addEmptyGroup(options);
262
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
  */