dockview 1.5.2 → 1.6.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 (220) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -2
  2. package/dist/cjs/api/component.api.js +9 -2
  3. package/dist/cjs/api/component.api.js.map +1 -1
  4. package/dist/cjs/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
  5. package/dist/cjs/api/{groupPanelApi.js → dockviewPanelApi.js} +4 -6
  6. package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +4 -3
  8. package/dist/cjs/api/gridviewPanelApi.js +4 -4
  9. package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
  10. package/dist/cjs/api/panelApi.d.ts +7 -0
  11. package/dist/cjs/api/panelApi.js +17 -1
  12. package/dist/cjs/api/panelApi.js.map +1 -1
  13. package/dist/cjs/array.d.ts +1 -1
  14. package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
  15. package/dist/cjs/dnd/abstractDragHandler.js +3 -3
  16. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  17. package/dist/cjs/dnd/dataTransfer.d.ts +2 -2
  18. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  19. package/dist/cjs/dnd/dnd.d.ts +1 -1
  20. package/dist/cjs/dnd/dnd.js +7 -12
  21. package/dist/cjs/dnd/dnd.js.map +1 -1
  22. package/dist/cjs/dnd/droptarget.d.ts +20 -15
  23. package/dist/cjs/dnd/droptarget.js +152 -74
  24. package/dist/cjs/dnd/droptarget.js.map +1 -1
  25. package/dist/cjs/dnd/ghost.d.ts +1 -0
  26. package/dist/cjs/dnd/ghost.js +15 -0
  27. package/dist/cjs/dnd/ghost.js.map +1 -0
  28. package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
  29. package/dist/cjs/dnd/groupDragHandler.js +62 -0
  30. package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
  31. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -1
  32. package/dist/cjs/dockview/deserializer.d.ts +2 -1
  33. package/dist/cjs/dockview/dockviewComponent.d.ts +15 -7
  34. package/dist/cjs/dockview/dockviewComponent.js +215 -34
  35. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  36. package/dist/{esm/dockview/dockviewGroupPanel.d.ts → cjs/dockview/dockviewPanel.d.ts} +16 -5
  37. package/dist/cjs/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +25 -21
  38. package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
  39. package/dist/cjs/dockview/options.d.ts +32 -10
  40. package/dist/cjs/dockview/options.js +29 -0
  41. package/dist/cjs/dockview/options.js.map +1 -1
  42. package/dist/cjs/dockview/validation.d.ts +2 -0
  43. package/dist/cjs/dockview/validation.js +135 -0
  44. package/dist/cjs/dockview/validation.js.map +1 -0
  45. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
  46. package/dist/cjs/gridview/baseComponentGridview.js +5 -6
  47. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  48. package/dist/cjs/gridview/basePanelView.d.ts +2 -2
  49. package/dist/cjs/gridview/gridview.d.ts +9 -3
  50. package/dist/cjs/gridview/gridview.js +38 -7
  51. package/dist/cjs/gridview/gridview.js.map +1 -1
  52. package/dist/cjs/gridview/gridviewComponent.d.ts +2 -2
  53. package/dist/cjs/gridview/gridviewComponent.js +2 -3
  54. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  55. package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
  56. package/dist/cjs/gridview/gridviewPanel.js +1 -2
  57. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  58. package/dist/cjs/gridview/types.d.ts +1 -1
  59. package/dist/cjs/groupview/dnd.d.ts +2 -1
  60. package/dist/cjs/groupview/dnd.js +1 -0
  61. package/dist/cjs/groupview/dnd.js.map +1 -1
  62. package/dist/cjs/groupview/groupview.d.ts +6 -6
  63. package/dist/cjs/groupview/groupview.js +43 -25
  64. package/dist/cjs/groupview/groupview.js.map +1 -1
  65. package/dist/cjs/groupview/groupviewPanel.d.ts +3 -3
  66. package/dist/cjs/groupview/panel/content.d.ts +1 -1
  67. package/dist/cjs/groupview/tab.d.ts +2 -12
  68. package/dist/cjs/groupview/tab.js +13 -9
  69. package/dist/cjs/groupview/tab.js.map +1 -1
  70. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +5 -8
  71. package/dist/cjs/groupview/titlebar/tabsContainer.js +23 -30
  72. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  73. package/dist/cjs/groupview/titlebar/voidContainer.d.ts +15 -0
  74. package/dist/cjs/groupview/titlebar/voidContainer.js +74 -0
  75. package/dist/cjs/groupview/titlebar/voidContainer.js.map +1 -0
  76. package/dist/cjs/groupview/types.d.ts +18 -2
  77. package/dist/cjs/index.d.ts +3 -3
  78. package/dist/cjs/index.js +4 -3
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/paneview/draggablePaneviewPanel.js +6 -5
  81. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  82. package/dist/cjs/paneview/paneviewComponent.js +2 -2
  83. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  84. package/dist/cjs/paneview/paneviewPanel.js +1 -0
  85. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  86. package/dist/cjs/react/deserializer.d.ts +2 -1
  87. package/dist/cjs/react/deserializer.js +2 -2
  88. package/dist/cjs/react/deserializer.js.map +1 -1
  89. package/dist/cjs/react/dockview/defaultTab.d.ts +1 -1
  90. package/dist/cjs/react/dockview/dockview.d.ts +5 -4
  91. package/dist/cjs/react/dockview/dockview.js +1 -0
  92. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  93. package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +1 -1
  94. package/dist/cjs/react/gridview/view.js +2 -1
  95. package/dist/cjs/react/gridview/view.js.map +1 -1
  96. package/dist/cjs/react/react.d.ts +1 -1
  97. package/dist/cjs/splitview/core/splitview.d.ts +4 -4
  98. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  99. package/dist/cjs/splitview/splitviewComponent.js +2 -2
  100. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  101. package/dist/cjs/splitview/splitviewPanel.js +1 -0
  102. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  103. package/dist/cjs/types.d.ts +2 -1
  104. package/dist/cjs/types.js +5 -0
  105. package/dist/cjs/types.js.map +1 -1
  106. package/dist/dockview.amd.js +1411 -987
  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 +1410 -986
  110. package/dist/dockview.cjs.js +1394 -970
  111. package/dist/dockview.esm.js +1385 -964
  112. package/dist/dockview.esm.min.js +2 -2
  113. package/dist/dockview.js +1411 -987
  114. package/dist/dockview.min.js +2 -2
  115. package/dist/dockview.min.noStyle.js +2 -2
  116. package/dist/dockview.noStyle.js +1410 -986
  117. package/dist/esm/actionbar/actionsContainer.js +3 -3
  118. package/dist/esm/api/component.api.d.ts +3 -2
  119. package/dist/esm/api/component.api.js +16 -13
  120. package/dist/esm/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
  121. package/dist/esm/api/{groupPanelApi.js → dockviewPanelApi.js} +16 -18
  122. package/dist/esm/api/gridviewPanelApi.d.ts +4 -3
  123. package/dist/esm/api/gridviewPanelApi.js +4 -4
  124. package/dist/esm/api/panelApi.d.ts +7 -0
  125. package/dist/esm/api/panelApi.js +33 -17
  126. package/dist/esm/api/paneviewPanelApi.js +3 -3
  127. package/dist/esm/array.d.ts +1 -1
  128. package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
  129. package/dist/esm/dnd/abstractDragHandler.js +3 -3
  130. package/dist/esm/dnd/dataTransfer.d.ts +2 -2
  131. package/dist/esm/dnd/dnd.d.ts +1 -1
  132. package/dist/esm/dnd/dnd.js +7 -12
  133. package/dist/esm/dnd/droptarget.d.ts +20 -15
  134. package/dist/esm/dnd/droptarget.js +149 -67
  135. package/dist/esm/dnd/ghost.d.ts +1 -0
  136. package/dist/esm/dnd/ghost.js +10 -0
  137. package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
  138. package/dist/esm/dnd/groupDragHandler.js +38 -0
  139. package/dist/esm/dockview/components/tab/defaultTab.js +6 -6
  140. package/dist/esm/dockview/components/watermark/watermark.js +3 -3
  141. package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -1
  142. package/dist/esm/dockview/defaultGroupPanelView.js +5 -5
  143. package/dist/esm/dockview/deserializer.d.ts +2 -1
  144. package/dist/esm/dockview/dockviewComponent.d.ts +15 -7
  145. package/dist/esm/dockview/dockviewComponent.js +229 -65
  146. package/dist/{cjs/dockview/dockviewGroupPanel.d.ts → esm/dockview/dockviewPanel.d.ts} +16 -5
  147. package/dist/esm/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +19 -15
  148. package/dist/esm/dockview/options.d.ts +32 -10
  149. package/dist/esm/dockview/options.js +24 -1
  150. package/dist/esm/dockview/validation.d.ts +2 -0
  151. package/dist/esm/dockview/validation.js +86 -0
  152. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
  153. package/dist/esm/gridview/baseComponentGridview.js +31 -32
  154. package/dist/esm/gridview/basePanelView.d.ts +2 -2
  155. package/dist/esm/gridview/basePanelView.js +13 -13
  156. package/dist/esm/gridview/branchNode.js +47 -47
  157. package/dist/esm/gridview/gridview.d.ts +9 -3
  158. package/dist/esm/gridview/gridview.js +41 -15
  159. package/dist/esm/gridview/gridviewComponent.d.ts +2 -2
  160. package/dist/esm/gridview/gridviewComponent.js +17 -18
  161. package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
  162. package/dist/esm/gridview/gridviewPanel.js +45 -45
  163. package/dist/esm/gridview/leafNode.js +23 -23
  164. package/dist/esm/gridview/types.d.ts +1 -1
  165. package/dist/esm/groupview/dnd.d.ts +2 -1
  166. package/dist/esm/groupview/dnd.js +1 -0
  167. package/dist/esm/groupview/groupview.d.ts +6 -6
  168. package/dist/esm/groupview/groupview.js +90 -72
  169. package/dist/esm/groupview/groupviewPanel.d.ts +3 -3
  170. package/dist/esm/groupview/groupviewPanel.js +4 -4
  171. package/dist/esm/groupview/panel/content.d.ts +1 -1
  172. package/dist/esm/groupview/panel/content.js +3 -3
  173. package/dist/esm/groupview/tab.d.ts +2 -12
  174. package/dist/esm/groupview/tab.js +15 -11
  175. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +5 -8
  176. package/dist/esm/groupview/titlebar/tabsContainer.js +54 -61
  177. package/dist/esm/groupview/titlebar/voidContainer.d.ts +15 -0
  178. package/dist/esm/groupview/titlebar/voidContainer.js +47 -0
  179. package/dist/esm/groupview/types.d.ts +18 -2
  180. package/dist/esm/hostedContainer.js +3 -3
  181. package/dist/esm/index.d.ts +3 -3
  182. package/dist/esm/index.js +2 -2
  183. package/dist/esm/lifecycle.js +3 -3
  184. package/dist/esm/paneview/defaultPaneviewHeader.js +3 -3
  185. package/dist/esm/paneview/draggablePaneviewPanel.js +7 -6
  186. package/dist/esm/paneview/paneview.js +21 -21
  187. package/dist/esm/paneview/paneviewComponent.js +30 -30
  188. package/dist/esm/paneview/paneviewPanel.js +45 -44
  189. package/dist/esm/react/deserializer.d.ts +2 -1
  190. package/dist/esm/react/deserializer.js +2 -2
  191. package/dist/esm/react/dockview/defaultTab.d.ts +1 -1
  192. package/dist/esm/react/dockview/dockview.d.ts +5 -4
  193. package/dist/esm/react/dockview/dockview.js +1 -0
  194. package/dist/esm/react/dockview/groupControlsRenderer.d.ts +1 -1
  195. package/dist/esm/react/dockview/groupControlsRenderer.js +8 -8
  196. package/dist/esm/react/dockview/reactContentPart.js +3 -3
  197. package/dist/esm/react/dockview/reactHeaderPart.js +3 -3
  198. package/dist/esm/react/dockview/reactWatermarkPart.js +3 -3
  199. package/dist/esm/react/dockview/v2/reactContentRenderer.js +9 -9
  200. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +3 -3
  201. package/dist/esm/react/gridview/view.js +2 -1
  202. package/dist/esm/react/paneview/view.js +3 -3
  203. package/dist/esm/react/react.d.ts +1 -1
  204. package/dist/esm/splitview/core/splitview.d.ts +4 -4
  205. package/dist/esm/splitview/core/splitview.js +59 -59
  206. package/dist/esm/splitview/core/viewItem.js +15 -15
  207. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  208. package/dist/esm/splitview/splitviewComponent.js +23 -23
  209. package/dist/esm/splitview/splitviewPanel.js +31 -30
  210. package/dist/esm/types.d.ts +2 -1
  211. package/dist/esm/types.js +3 -1
  212. package/dist/styles/dockview.css +23 -26
  213. package/package.json +12 -16
  214. package/dist/cjs/api/groupPanelApi.js.map +0 -1
  215. package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
  216. package/dist/cjs/groupview/groupPanel.d.ts +0 -32
  217. package/dist/cjs/groupview/groupPanel.js +0 -3
  218. package/dist/cjs/groupview/groupPanel.js.map +0 -1
  219. package/dist/esm/groupview/groupPanel.d.ts +0 -32
  220. package/dist/esm/groupview/groupPanel.js +0 -1
@@ -1,4 +1,7 @@
1
1
  export class ActionContainer {
2
+ get element() {
3
+ return this._element;
4
+ }
2
5
  constructor() {
3
6
  this._element = document.createElement('div');
4
7
  this._element.className = 'actions-bar';
@@ -6,9 +9,6 @@ export class ActionContainer {
6
9
  this._list.className = 'actions-container';
7
10
  this._element.appendChild(this._list);
8
11
  }
9
- get element() {
10
- return this._element;
11
- }
12
12
  add(element) {
13
13
  const listItem = document.createElement('li');
14
14
  listItem.className = 'action-item';
@@ -3,7 +3,6 @@ import { AddGroupOptions, AddPanelOptions, MovementOptions } from '../dockview/o
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 { IDockviewPanel } from '../groupview/groupPanel';
7
6
  import { AddPaneviewComponentOptions, SerializedPaneview, IPaneviewComponent } from '../paneview/paneviewComponent';
8
7
  import { IPaneviewPanel } from '../paneview/paneviewPanel';
9
8
  import { AddSplitviewComponentOptions, ISplitviewComponent, SerializedSplitview, SplitviewComponentUpdateOptions } from '../splitview/splitviewComponent';
@@ -12,6 +11,7 @@ import { ISplitviewPanel } from '../splitview/splitviewPanel';
12
11
  import { GroupPanel, IGroupviewPanel } from '../groupview/groupviewPanel';
13
12
  import { Event } from '../events';
14
13
  import { PaneviewDropEvent } from '../react';
14
+ import { IDockviewPanel } from '../dockview/dockviewPanel';
15
15
  export interface CommonApi<T = any> {
16
16
  readonly height: number;
17
17
  readonly width: number;
@@ -104,6 +104,7 @@ export declare class GridviewApi implements CommonApi<SerializedGridview> {
104
104
  }
105
105
  export declare class DockviewApi implements CommonApi<SerializedDockview> {
106
106
  private readonly component;
107
+ get id(): string;
107
108
  get width(): number;
108
109
  get height(): number;
109
110
  get minimumHeight(): number;
@@ -132,7 +133,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
132
133
  getPanel(id: string): IDockviewPanel | undefined;
133
134
  layout(width: number, height: number, force?: boolean): void;
134
135
  addPanel(options: AddPanelOptions): IDockviewPanel;
135
- addEmptyGroup(options?: AddGroupOptions): void;
136
+ addGroup(options?: AddGroupOptions): IGroupviewPanel;
136
137
  moveToNext(options?: MovementOptions): void;
137
138
  moveToPrevious(options?: MovementOptions): void;
138
139
  closeAllGroups(): void;
@@ -1,8 +1,5 @@
1
1
  import { Emitter } from '../events';
2
2
  export class SplitviewApi {
3
- constructor(component) {
4
- this.component = component;
5
- }
6
3
  get minimumSize() {
7
4
  return this.component.minimumSize;
8
5
  }
@@ -36,6 +33,9 @@ export class SplitviewApi {
36
33
  get onDidRemoveView() {
37
34
  return this.component.onDidRemoveView;
38
35
  }
36
+ constructor(component) {
37
+ this.component = component;
38
+ }
39
39
  updateOptions(options) {
40
40
  this.component.updateOptions(options);
41
41
  }
@@ -68,9 +68,6 @@ export class SplitviewApi {
68
68
  }
69
69
  }
70
70
  export class PaneviewApi {
71
- constructor(component) {
72
- this.component = component;
73
- }
74
71
  get minimumSize() {
75
72
  return this.component.minimumSize;
76
73
  }
@@ -109,6 +106,9 @@ export class PaneviewApi {
109
106
  };
110
107
  return emitter.event;
111
108
  }
109
+ constructor(component) {
110
+ this.component = component;
111
+ }
112
112
  removePanel(panel) {
113
113
  this.component.removePanel(panel);
114
114
  }
@@ -138,9 +138,6 @@ export class PaneviewApi {
138
138
  }
139
139
  }
140
140
  export class GridviewApi {
141
- constructor(component) {
142
- this.component = component;
143
- }
144
141
  get minimumHeight() {
145
142
  return this.component.minimumHeight;
146
143
  }
@@ -183,6 +180,9 @@ export class GridviewApi {
183
180
  set orientation(value) {
184
181
  this.component.updateOptions({ orientation: value });
185
182
  }
183
+ constructor(component) {
184
+ this.component = component;
185
+ }
186
186
  focus() {
187
187
  this.component.focus();
188
188
  }
@@ -212,8 +212,8 @@ export class GridviewApi {
212
212
  }
213
213
  }
214
214
  export class DockviewApi {
215
- constructor(component) {
216
- this.component = component;
215
+ get id() {
216
+ return this.component.id;
217
217
  }
218
218
  get width() {
219
219
  return this.component.width;
@@ -278,6 +278,9 @@ export class DockviewApi {
278
278
  get activeGroup() {
279
279
  return this.component.activeGroup;
280
280
  }
281
+ constructor(component) {
282
+ this.component = component;
283
+ }
281
284
  getTabHeight() {
282
285
  return this.component.tabHeight;
283
286
  }
@@ -296,8 +299,8 @@ export class DockviewApi {
296
299
  addPanel(options) {
297
300
  return this.component.addPanel(options);
298
301
  }
299
- addEmptyGroup(options) {
300
- this.component.addEmptyGroup(options);
302
+ addGroup(options) {
303
+ return this.component.addGroup(options);
301
304
  }
302
305
  moveToNext(options) {
303
306
  this.component.moveToNext(options);
@@ -1,7 +1,7 @@
1
1
  import { Emitter, Event } from '../events';
2
2
  import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
3
- import { IDockviewPanel } from '../groupview/groupPanel';
4
3
  import { GroupPanel } from '../groupview/groupviewPanel';
4
+ import { IDockviewPanel } from '../dockview/dockviewPanel';
5
5
  export interface TitleEvent {
6
6
  readonly title: string;
7
7
  }
@@ -23,7 +23,7 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
23
23
  readonly onDidActiveGroupChange: Event<void>;
24
24
  private readonly _onDidGroupChange;
25
25
  readonly onDidGroupChange: Event<void>;
26
- private disposable;
26
+ private readonly disposable;
27
27
  get title(): string;
28
28
  get isGroupActive(): boolean;
29
29
  set group(value: GroupPanel);
@@ -2,19 +2,6 @@ import { Emitter } from '../events';
2
2
  import { GridviewPanelApiImpl } from './gridviewPanelApi';
3
3
  import { MutableDisposable } from '../lifecycle';
4
4
  export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
5
- constructor(panel, group) {
6
- super(panel.id);
7
- this.panel = panel;
8
- this._onDidTitleChange = new Emitter();
9
- this.onDidTitleChange = this._onDidTitleChange.event;
10
- this._onDidActiveGroupChange = new Emitter();
11
- this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
12
- this._onDidGroupChange = new Emitter();
13
- this.onDidGroupChange = this._onDidGroupChange.event;
14
- this.disposable = new MutableDisposable();
15
- this._group = group;
16
- this.addDisposables(this.disposable, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange);
17
- }
18
5
  get title() {
19
6
  return this.panel.title;
20
7
  }
@@ -38,13 +25,24 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl {
38
25
  get group() {
39
26
  return this._group;
40
27
  }
28
+ constructor(panel, group) {
29
+ super(panel.id);
30
+ this.panel = panel;
31
+ this._onDidTitleChange = new Emitter();
32
+ this.onDidTitleChange = this._onDidTitleChange.event;
33
+ this._onDidActiveGroupChange = new Emitter();
34
+ this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
35
+ this._onDidGroupChange = new Emitter();
36
+ this.onDidGroupChange = this._onDidGroupChange.event;
37
+ this.disposable = new MutableDisposable();
38
+ this.initialize(panel);
39
+ this._group = group;
40
+ this.addDisposables(this.disposable, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange);
41
+ }
41
42
  setTitle(title) {
42
- this._onDidTitleChange.fire({ title });
43
+ this.panel.update({ params: { title } });
43
44
  }
44
45
  close() {
45
- if (!this.group) {
46
- throw new Error(`panel ${this.id} has no group`);
47
- }
48
- return this.group.model.closePanel(this.panel);
46
+ this.group.model.closePanel(this.panel);
49
47
  }
50
48
  }
@@ -1,4 +1,5 @@
1
1
  import { Emitter, Event } from '../events';
2
+ import { IPanel } from '../panel/types';
2
3
  import { FunctionOrValue } from '../types';
3
4
  import { PanelApiImpl, PanelApi } from './panelApi';
4
5
  export interface GridConstraintChangeEvent {
@@ -23,13 +24,13 @@ export interface GridviewPanelApi extends PanelApi {
23
24
  setSize(event: SizeEvent): void;
24
25
  }
25
26
  export declare class GridviewPanelApiImpl extends PanelApiImpl implements GridviewPanelApi {
26
- readonly _onDidConstraintsChangeInternal: Emitter<GridConstraintChangeEvent2>;
27
+ private readonly _onDidConstraintsChangeInternal;
27
28
  readonly onDidConstraintsChangeInternal: Event<GridConstraintChangeEvent2>;
28
29
  readonly _onDidConstraintsChange: Emitter<GridConstraintChangeEvent>;
29
30
  readonly onDidConstraintsChange: Event<GridConstraintChangeEvent>;
30
- readonly _onDidSizeChange: Emitter<SizeEvent>;
31
+ private readonly _onDidSizeChange;
31
32
  readonly onDidSizeChange: Event<SizeEvent>;
32
- constructor(id: string);
33
+ constructor(id: string, panel?: IPanel);
33
34
  setConstraints(value: GridConstraintChangeEvent): void;
34
35
  setSize(event: SizeEvent): void;
35
36
  }
@@ -1,20 +1,20 @@
1
1
  import { Emitter } from '../events';
2
2
  import { PanelApiImpl } from './panelApi';
3
3
  export class GridviewPanelApiImpl extends PanelApiImpl {
4
- //
5
- constructor(id) {
4
+ constructor(id, panel) {
6
5
  super(id);
7
6
  this._onDidConstraintsChangeInternal = new Emitter();
8
7
  this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
9
- //
10
8
  this._onDidConstraintsChange = new Emitter({
11
9
  replay: true,
12
10
  });
13
11
  this.onDidConstraintsChange = this._onDidConstraintsChange.event;
14
- //
15
12
  this._onDidSizeChange = new Emitter();
16
13
  this.onDidSizeChange = this._onDidSizeChange.event;
17
14
  this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);
15
+ if (panel) {
16
+ this.initialize(panel);
17
+ }
18
18
  }
19
19
  setConstraints(value) {
20
20
  this._onDidConstraintsChangeInternal.fire(value);
@@ -1,5 +1,6 @@
1
1
  import { Emitter, Event } from '../events';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
+ import { IPanel, Parameters } from '../panel/types';
3
4
  export interface FocusEvent {
4
5
  readonly isFocused: boolean;
5
6
  }
@@ -20,6 +21,7 @@ export interface PanelApi {
20
21
  readonly onDidActiveChange: Event<ActiveEvent>;
21
22
  setVisible(isVisible: boolean): void;
22
23
  setActive(): void;
24
+ updateParameters(parameters: Parameters): void;
23
25
  /**
24
26
  * The id of the panel that would have been assigned when the panel was created
25
27
  */
@@ -55,6 +57,7 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
55
57
  private _isVisible;
56
58
  private _width;
57
59
  private _height;
60
+ private readonly panelUpdatesDisposable;
58
61
  readonly _onDidDimensionChange: Emitter<PanelDimensionChangeEvent>;
59
62
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
60
63
  readonly _onDidChangeFocus: Emitter<FocusEvent>;
@@ -69,13 +72,17 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
69
72
  readonly onDidActiveChange: Event<ActiveEvent>;
70
73
  readonly _onActiveChange: Emitter<void>;
71
74
  readonly onActiveChange: Event<void>;
75
+ readonly _onUpdateParameters: Emitter<Parameters>;
76
+ readonly onUpdateParameters: Event<Parameters>;
72
77
  get isFocused(): boolean;
73
78
  get isActive(): boolean;
74
79
  get isVisible(): boolean;
75
80
  get width(): number;
76
81
  get height(): number;
77
82
  constructor(id: string);
83
+ initialize(panel: IPanel): void;
78
84
  setVisible(isVisible: boolean): void;
79
85
  setActive(): void;
86
+ updateParameters(parameters: Parameters): void;
80
87
  dispose(): void;
81
88
  }
@@ -1,9 +1,25 @@
1
1
  import { Emitter } from '../events';
2
- import { CompositeDisposable } from '../lifecycle';
2
+ import { CompositeDisposable, MutableDisposable } from '../lifecycle';
3
3
  /**
4
4
  * A core api implementation that should be used across all panel-like objects
5
5
  */
6
6
  export class PanelApiImpl extends CompositeDisposable {
7
+ //
8
+ get isFocused() {
9
+ return this._isFocused;
10
+ }
11
+ get isActive() {
12
+ return this._isActive;
13
+ }
14
+ get isVisible() {
15
+ return this._isVisible;
16
+ }
17
+ get width() {
18
+ return this._width;
19
+ }
20
+ get height() {
21
+ return this._height;
22
+ }
7
23
  constructor(id) {
8
24
  super();
9
25
  this.id = id;
@@ -12,6 +28,7 @@ export class PanelApiImpl extends CompositeDisposable {
12
28
  this._isVisible = true;
13
29
  this._width = 0;
14
30
  this._height = 0;
31
+ this.panelUpdatesDisposable = new MutableDisposable();
15
32
  this._onDidDimensionChange = new Emitter({
16
33
  replay: true,
17
34
  });
@@ -40,7 +57,10 @@ export class PanelApiImpl extends CompositeDisposable {
40
57
  //
41
58
  this._onActiveChange = new Emitter();
42
59
  this.onActiveChange = this._onActiveChange.event;
43
- this.addDisposables(this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
60
+ //
61
+ this._onUpdateParameters = new Emitter();
62
+ this.onUpdateParameters = this._onUpdateParameters.event;
63
+ this.addDisposables(this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this._onUpdateParameters, this.onDidFocusChange((event) => {
44
64
  this._isFocused = event.isFocused;
45
65
  }), this.onDidActiveChange((event) => {
46
66
  this._isActive = event.isActive;
@@ -51,21 +71,14 @@ export class PanelApiImpl extends CompositeDisposable {
51
71
  this._height = event.height;
52
72
  }));
53
73
  }
54
- //
55
- get isFocused() {
56
- return this._isFocused;
57
- }
58
- get isActive() {
59
- return this._isActive;
60
- }
61
- get isVisible() {
62
- return this._isVisible;
63
- }
64
- get width() {
65
- return this._width;
66
- }
67
- get height() {
68
- return this._height;
74
+ initialize(panel) {
75
+ this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
76
+ panel.update({
77
+ params: {
78
+ params: parameters,
79
+ },
80
+ });
81
+ });
69
82
  }
70
83
  setVisible(isVisible) {
71
84
  this._onVisibilityChange.fire({ isVisible });
@@ -73,6 +86,9 @@ export class PanelApiImpl extends CompositeDisposable {
73
86
  setActive() {
74
87
  this._onActiveChange.fire();
75
88
  }
89
+ updateParameters(parameters) {
90
+ this._onUpdateParameters.fire(parameters);
91
+ }
76
92
  dispose() {
77
93
  super.dispose();
78
94
  }
@@ -1,6 +1,9 @@
1
1
  import { Emitter } from '../events';
2
2
  import { SplitviewPanelApiImpl } from './splitviewPanelApi';
3
3
  export class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {
4
+ set pane(pane) {
5
+ this._pane = pane;
6
+ }
4
7
  constructor(id) {
5
8
  super(id);
6
9
  this._onDidExpansionChange = new Emitter({
@@ -13,9 +16,6 @@ export class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {
13
16
  this.onMouseLeave = this._onMouseLeave.event;
14
17
  this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);
15
18
  }
16
- set pane(pane) {
17
- this._pane = pane;
18
- }
19
19
  setExpanded(isExpanded) {
20
20
  var _a;
21
21
  (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);
@@ -9,5 +9,5 @@ export declare function pushToStart<T>(arr: T[], value: T): void;
9
9
  * Pushes an element to the end of the array, if found.
10
10
  */
11
11
  export declare function pushToEnd<T>(arr: T[], value: T): void;
12
- export declare const range: (from: number, to?: number | undefined) => number[];
12
+ export declare const range: (from: number, to?: number) => number[];
13
13
  export declare function firstIndex<T>(array: T[] | ReadonlyArray<T>, fn: (item: T) => boolean): number;
@@ -1,11 +1,11 @@
1
1
  import { CompositeDisposable, IDisposable } from '../lifecycle';
2
2
  export declare abstract class DragHandler extends CompositeDisposable {
3
- private readonly el;
3
+ protected readonly el: HTMLElement;
4
4
  private readonly disposable;
5
5
  private readonly _onDragStart;
6
6
  readonly onDragStart: import("../events").Event<void>;
7
7
  private iframes;
8
8
  constructor(el: HTMLElement);
9
- abstract getData(): IDisposable;
9
+ abstract getData(dataTransfer?: DataTransfer | null): IDisposable;
10
10
  private configure;
11
11
  }
@@ -20,9 +20,9 @@ export class DragHandler extends CompositeDisposable {
20
20
  for (const iframe of this.iframes) {
21
21
  iframe.style.pointerEvents = 'none';
22
22
  }
23
- this.el.classList.add('dragged');
24
- setTimeout(() => this.el.classList.remove('dragged'), 0);
25
- this.disposable.value = this.getData();
23
+ this.el.classList.add('dv-dragged');
24
+ setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
25
+ this.disposable.value = this.getData(event.dataTransfer);
26
26
  if (event.dataTransfer) {
27
27
  event.dataTransfer.effectAllowed = 'move';
28
28
  }
@@ -4,8 +4,8 @@ declare class TransferObject {
4
4
  export declare class PanelTransfer extends TransferObject {
5
5
  readonly viewId: string;
6
6
  readonly groupId: string;
7
- readonly panelId: string;
8
- constructor(viewId: string, groupId: string, panelId: string);
7
+ readonly panelId: string | null;
8
+ constructor(viewId: string, groupId: string, panelId: string | null);
9
9
  }
10
10
  export declare class PaneTransfer extends TransferObject {
11
11
  readonly viewId: string;
@@ -9,7 +9,7 @@ export interface IDragAndDropObserverCallbacks {
9
9
  export declare class DragAndDropObserver extends CompositeDisposable {
10
10
  private element;
11
11
  private callbacks;
12
- private counter;
12
+ private target;
13
13
  constructor(element: HTMLElement, callbacks: IDragAndDropObserverCallbacks);
14
14
  private registerListeners;
15
15
  }
@@ -5,36 +5,31 @@ export class DragAndDropObserver extends CompositeDisposable {
5
5
  super();
6
6
  this.element = element;
7
7
  this.callbacks = callbacks;
8
- // A helper to fix issues with repeated DRAG_ENTER / DRAG_LEAVE
9
- // calls see https://github.com/microsoft/vscode/issues/14470
10
- // when the element has child elements where the events are fired
11
- // repeadedly.
12
- this.counter = 0;
8
+ this.target = null;
13
9
  this.registerListeners();
14
10
  }
15
11
  registerListeners() {
16
12
  this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {
17
- this.counter++;
13
+ this.target = e.target;
18
14
  this.callbacks.onDragEnter(e);
19
- }));
15
+ }, true));
20
16
  this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {
21
17
  e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)
22
18
  if (this.callbacks.onDragOver) {
23
19
  this.callbacks.onDragOver(e);
24
20
  }
25
- }));
21
+ }, true));
26
22
  this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {
27
- this.counter--;
28
- if (this.counter === 0) {
23
+ if (this.target === e.target) {
24
+ this.target = null;
29
25
  this.callbacks.onDragLeave(e);
30
26
  }
31
27
  }));
32
28
  this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {
33
- this.counter = 0;
29
+ this.target = null;
34
30
  this.callbacks.onDragEnd(e);
35
31
  }));
36
32
  this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {
37
- this.counter = 0;
38
33
  this.callbacks.onDrop(e);
39
34
  }));
40
35
  }
@@ -1,19 +1,14 @@
1
1
  import { Event } from '../events';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
- export declare enum Position {
4
- Top = "Top",
5
- Left = "Left",
6
- Bottom = "Bottom",
7
- Right = "Right",
8
- Center = "Center"
9
- }
10
- export declare type Quadrant = 'top' | 'bottom' | 'left' | 'right';
3
+ import { Direction } from '../gridview/baseComponentGridview';
4
+ export declare function directionToPosition(direction: Direction): Position;
5
+ export declare function positionToDirection(position: Position): Direction;
11
6
  export interface DroptargetEvent {
12
- position: Position;
13
- nativeEvent: DragEvent;
7
+ readonly position: Position;
8
+ readonly nativeEvent: DragEvent;
14
9
  }
15
- export declare type DropTargetDirections = 'vertical' | 'horizontal' | 'all' | 'none';
16
- export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent, state: Quadrant | null) => boolean);
10
+ export type Position = 'top' | 'bottom' | 'left' | 'right' | 'center';
11
+ export type CanDisplayOverlay = boolean | ((dragEvent: DragEvent, state: Position) => boolean);
17
12
  export declare class Droptarget extends CompositeDisposable {
18
13
  private readonly element;
19
14
  private readonly options;
@@ -23,11 +18,19 @@ export declare class Droptarget extends CompositeDisposable {
23
18
  private readonly _onDrop;
24
19
  readonly onDrop: Event<DroptargetEvent>;
25
20
  get state(): Position | undefined;
26
- set validOverlays(value: DropTargetDirections);
27
- set canDisplayOverlay(value: CanDisplayOverlay);
28
21
  constructor(element: HTMLElement, options: {
29
22
  canDisplayOverlay: CanDisplayOverlay;
30
- validOverlays: DropTargetDirections;
23
+ acceptedTargetZones: Position[];
24
+ overlayModel?: {
25
+ size?: {
26
+ value: number;
27
+ type: 'pixels' | 'percentage';
28
+ };
29
+ activationSize?: {
30
+ value: number;
31
+ type: 'pixels' | 'percentage';
32
+ };
33
+ };
31
34
  });
32
35
  dispose(): void;
33
36
  private toggleClasses;
@@ -35,3 +38,5 @@ export declare class Droptarget extends CompositeDisposable {
35
38
  private calculateQuadrant;
36
39
  private removeDropTarget;
37
40
  }
41
+ export declare function calculateQuadrantAsPercentage(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;
42
+ export declare function calculateQuadrantAsPixels(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;