dockview 1.0.2 → 1.2.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 (229) hide show
  1. package/README.md +243 -186
  2. package/dist/cjs/api/component.api.d.ts +32 -23
  3. package/dist/cjs/api/component.api.js +105 -34
  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 +2 -2
  19. package/dist/cjs/dnd/abstractDragHandler.js +14 -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/deserializer.js.map +1 -1
  34. package/dist/cjs/dockview/dockviewComponent.d.ts +31 -21
  35. package/dist/cjs/dockview/dockviewComponent.js +103 -207
  36. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  37. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +3 -5
  38. package/dist/cjs/dockview/dockviewGroupPanel.js +10 -31
  39. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  40. package/dist/cjs/dockview/options.d.ts +2 -1
  41. package/dist/cjs/events.js +25 -4
  42. package/dist/cjs/events.js.map +1 -1
  43. package/dist/cjs/gridview/baseComponentGridview.d.ts +12 -20
  44. package/dist/cjs/gridview/baseComponentGridview.js +23 -45
  45. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  46. package/dist/cjs/gridview/basePanelView.d.ts +5 -8
  47. package/dist/cjs/gridview/basePanelView.js +14 -8
  48. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  49. package/dist/cjs/gridview/branchNode.js +2 -2
  50. package/dist/cjs/gridview/branchNode.js.map +1 -1
  51. package/dist/cjs/gridview/gridview.js +20 -17
  52. package/dist/cjs/gridview/gridview.js.map +1 -1
  53. package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
  54. package/dist/cjs/gridview/gridviewComponent.js +5 -1
  55. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  56. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
  57. package/dist/cjs/gridview/gridviewPanel.js +3 -6
  58. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  59. package/dist/cjs/gridview/leafNode.js +2 -1
  60. package/dist/cjs/gridview/leafNode.js.map +1 -1
  61. package/dist/cjs/groupview/groupPanel.d.ts +1 -7
  62. package/dist/cjs/groupview/groupview.d.ts +15 -8
  63. package/dist/cjs/groupview/groupview.js +36 -123
  64. package/dist/cjs/groupview/groupview.js.map +1 -1
  65. package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
  66. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  67. package/dist/cjs/groupview/panel/content.js +1 -0
  68. package/dist/cjs/groupview/panel/content.js.map +1 -1
  69. package/dist/cjs/groupview/tab.d.ts +10 -13
  70. package/dist/cjs/groupview/tab.js +22 -80
  71. package/dist/cjs/groupview/tab.js.map +1 -1
  72. package/dist/cjs/groupview/titlebar/tabsContainer.js +4 -6
  73. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  74. package/dist/cjs/index.d.ts +3 -3
  75. package/dist/cjs/index.js +8 -4
  76. package/dist/cjs/index.js.map +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.js +4 -3
  84. package/dist/cjs/paneview/paneview.js.map +1 -1
  85. package/dist/cjs/paneview/paneviewComponent.d.ts +5 -5
  86. package/dist/cjs/paneview/paneviewComponent.js +15 -16
  87. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  88. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
  89. package/dist/cjs/paneview/paneviewPanel.js +14 -2
  90. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  91. package/dist/cjs/react/deserializer.js +1 -3
  92. package/dist/cjs/react/deserializer.js.map +1 -1
  93. package/dist/cjs/react/dockview/components.js +5 -1
  94. package/dist/cjs/react/dockview/components.js.map +1 -1
  95. package/dist/cjs/react/dockview/dockview.d.ts +9 -9
  96. package/dist/cjs/react/dockview/dockview.js +28 -2
  97. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  98. package/dist/cjs/react/dockview/reactContentPart.js +4 -4
  99. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  100. package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
  101. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  102. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
  103. package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
  104. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  105. package/dist/cjs/react/gridview/gridview.js +9 -2
  106. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  107. package/dist/cjs/react/gridview/view.js +2 -2
  108. package/dist/cjs/react/gridview/view.js.map +1 -1
  109. package/dist/cjs/react/index.d.ts +1 -0
  110. package/dist/cjs/react/index.js +5 -1
  111. package/dist/cjs/react/index.js.map +1 -1
  112. package/dist/cjs/react/paneview/paneview.js +5 -1
  113. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  114. package/dist/cjs/react/react.js +6 -3
  115. package/dist/cjs/react/react.js.map +1 -1
  116. package/dist/cjs/react/splitview/splitview.js +8 -2
  117. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  118. package/dist/cjs/react/splitview/view.js +2 -2
  119. package/dist/cjs/react/splitview/view.js.map +1 -1
  120. package/dist/cjs/splitview/core/splitview.js +2 -2
  121. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  122. package/dist/cjs/splitview/splitviewComponent.d.ts +9 -6
  123. package/dist/cjs/splitview/splitviewComponent.js +12 -1
  124. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  125. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
  126. package/dist/cjs/splitview/splitviewPanel.js +5 -3
  127. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  128. package/dist/dockview.amd.js +592 -745
  129. package/dist/dockview.amd.min.js +2 -16
  130. package/dist/dockview.amd.min.noStyle.js +2 -16
  131. package/dist/dockview.amd.noStyle.js +591 -744
  132. package/dist/dockview.cjs.js +592 -745
  133. package/dist/dockview.esm.js +592 -734
  134. package/dist/dockview.esm.min.js +2 -16
  135. package/dist/dockview.js +592 -745
  136. package/dist/dockview.min.js +2 -16
  137. package/dist/dockview.min.noStyle.js +2 -16
  138. package/dist/dockview.noStyle.js +591 -744
  139. package/dist/esm/api/component.api.d.ts +32 -23
  140. package/dist/esm/api/component.api.js +51 -24
  141. package/dist/esm/api/gridviewPanelApi.js +1 -0
  142. package/dist/esm/api/groupPanelApi.d.ts +11 -14
  143. package/dist/esm/api/groupPanelApi.js +18 -13
  144. package/dist/esm/api/panelApi.d.ts +0 -25
  145. package/dist/esm/api/panelApi.js +1 -20
  146. package/dist/esm/api/paneviewPanelApi.js +1 -0
  147. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  148. package/dist/esm/api/splitviewPanelApi.js +1 -5
  149. package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
  150. package/dist/esm/dnd/abstractDragHandler.js +9 -9
  151. package/dist/esm/dnd/dataTransfer.d.ts +0 -25
  152. package/dist/esm/dnd/dataTransfer.js +0 -40
  153. package/dist/esm/dnd/dnd.d.ts +1 -14
  154. package/dist/esm/dnd/dnd.js +1 -69
  155. package/dist/esm/dnd/droptarget.d.ts +3 -0
  156. package/dist/esm/dnd/droptarget.js +69 -45
  157. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
  158. package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
  159. package/dist/esm/dockview/dockviewComponent.d.ts +31 -21
  160. package/dist/esm/dockview/dockviewComponent.js +68 -148
  161. package/dist/esm/dockview/dockviewGroupPanel.d.ts +3 -5
  162. package/dist/esm/dockview/dockviewGroupPanel.js +6 -30
  163. package/dist/esm/dockview/options.d.ts +2 -1
  164. package/dist/esm/events.js +2 -3
  165. package/dist/esm/gridview/baseComponentGridview.d.ts +12 -20
  166. package/dist/esm/gridview/baseComponentGridview.js +23 -45
  167. package/dist/esm/gridview/basePanelView.d.ts +5 -8
  168. package/dist/esm/gridview/basePanelView.js +10 -8
  169. package/dist/esm/gridview/branchNode.js +2 -2
  170. package/dist/esm/gridview/gridview.js +17 -15
  171. package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
  172. package/dist/esm/gridview/gridviewComponent.js +6 -2
  173. package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
  174. package/dist/esm/gridview/gridviewPanel.js +3 -6
  175. package/dist/esm/gridview/leafNode.js +1 -0
  176. package/dist/esm/groupview/groupPanel.d.ts +1 -7
  177. package/dist/esm/groupview/groupview.d.ts +15 -8
  178. package/dist/esm/groupview/groupview.js +22 -56
  179. package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
  180. package/dist/esm/groupview/panel/content.js +1 -0
  181. package/dist/esm/groupview/tab.d.ts +10 -13
  182. package/dist/esm/groupview/tab.js +17 -24
  183. package/dist/esm/groupview/titlebar/tabsContainer.js +4 -6
  184. package/dist/esm/index.d.ts +3 -3
  185. package/dist/esm/index.js +1 -2
  186. package/dist/esm/lifecycle.js +2 -1
  187. package/dist/esm/panel/types.d.ts +0 -2
  188. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  189. package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
  190. package/dist/esm/paneview/paneview.js +2 -2
  191. package/dist/esm/paneview/paneviewComponent.d.ts +5 -5
  192. package/dist/esm/paneview/paneviewComponent.js +15 -8
  193. package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
  194. package/dist/esm/paneview/paneviewPanel.js +10 -2
  195. package/dist/esm/react/deserializer.js +1 -3
  196. package/dist/esm/react/dockview/dockview.d.ts +9 -9
  197. package/dist/esm/react/dockview/dockview.js +24 -2
  198. package/dist/esm/react/dockview/reactContentPart.js +4 -4
  199. package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
  200. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
  201. package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
  202. package/dist/esm/react/gridview/gridview.js +4 -1
  203. package/dist/esm/react/gridview/view.js +2 -2
  204. package/dist/esm/react/index.d.ts +1 -0
  205. package/dist/esm/react/react.js +1 -2
  206. package/dist/esm/react/splitview/splitview.js +3 -1
  207. package/dist/esm/react/splitview/view.js +2 -2
  208. package/dist/esm/splitview/core/splitview.js +2 -2
  209. package/dist/esm/splitview/splitviewComponent.d.ts +9 -6
  210. package/dist/esm/splitview/splitviewComponent.js +11 -2
  211. package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
  212. package/dist/esm/splitview/splitviewPanel.js +5 -3
  213. package/dist/styles/dockview.css +51 -54
  214. package/package.json +11 -11
  215. package/dist/cjs/functions.d.ts +0 -1
  216. package/dist/cjs/functions.js +0 -42
  217. package/dist/cjs/functions.js.map +0 -1
  218. package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
  219. package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
  220. package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
  221. package/dist/cjs/json.d.ts +0 -1
  222. package/dist/cjs/json.js +0 -14
  223. package/dist/cjs/json.js.map +0 -1
  224. package/dist/esm/functions.d.ts +0 -1
  225. package/dist/esm/functions.js +0 -8
  226. package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
  227. package/dist/esm/groupview/panel/hostedPanel.js +0 -43
  228. package/dist/esm/json.d.ts +0 -1
  229. package/dist/esm/json.js +0 -9
@@ -1,4 +1,4 @@
1
- import { CompositeDisposable, IDisposable } from '../lifecycle';
1
+ import { CompositeDisposable } from '../lifecycle';
2
2
  export interface IDragAndDropObserverCallbacks {
3
3
  onDragEnter: (e: DragEvent) => void;
4
4
  onDragLeave: (e: DragEvent) => void;
@@ -25,16 +25,3 @@ export interface ICompositeDragAndDropObserverCallbacks {
25
25
  onDragStart?: (e: IDraggedCompositeData) => void;
26
26
  onDragEnd?: (e: IDraggedCompositeData) => void;
27
27
  }
28
- export declare class DragAndDrop extends CompositeDisposable {
29
- private _onDragStart;
30
- private _onDragEnd;
31
- private static _instance;
32
- static get INSTANCE(): DragAndDrop;
33
- private transferData;
34
- private constructor();
35
- registerTarget(element: HTMLElement, callbacks: ICompositeDragAndDropObserverCallbacks): IDisposable;
36
- registerDraggable(element: HTMLElement, draggedItemProvider: () => {
37
- type: string;
38
- id: string;
39
- }, callbacks: ICompositeDragAndDropObserverCallbacks): IDisposable;
40
- }
@@ -1,6 +1,5 @@
1
- import { addDisposableListener, Emitter } from '../events';
1
+ import { addDisposableListener } from '../events';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
- import { LocalSelectionTransfer } from './dataTransfer';
4
3
  export class DragAndDropObserver extends CompositeDisposable {
5
4
  constructor(element, callbacks) {
6
5
  super();
@@ -40,70 +39,3 @@ export class DragAndDropObserver extends CompositeDisposable {
40
39
  }));
41
40
  }
42
41
  }
43
- class DockviewIdentifier {
44
- constructor(data) {
45
- this.data = data;
46
- //
47
- }
48
- }
49
- export class DragAndDrop extends CompositeDisposable {
50
- constructor() {
51
- super();
52
- this._onDragStart = new Emitter();
53
- this._onDragEnd = new Emitter();
54
- this.transferData = LocalSelectionTransfer.getInstance();
55
- this.addDisposables(this._onDragStart, this._onDragEnd);
56
- }
57
- static get INSTANCE() {
58
- if (!DragAndDrop._instance) {
59
- DragAndDrop._instance = new DragAndDrop();
60
- }
61
- return DragAndDrop._instance;
62
- }
63
- registerTarget(element, callbacks) {
64
- const disposables = new CompositeDisposable();
65
- disposables.addDisposables(new DragAndDropObserver(element, {
66
- onDragEnd: (e) => {
67
- // no-op
68
- },
69
- onDragEnter: (e) => {
70
- e.preventDefault();
71
- },
72
- onDragLeave: (e) => {
73
- //
74
- },
75
- onDrop: (e) => {
76
- //
77
- },
78
- onDragOver: (e) => {
79
- //
80
- },
81
- }));
82
- return disposables;
83
- }
84
- registerDraggable(element, draggedItemProvider, callbacks) {
85
- element.draggable = true;
86
- const disposables = new CompositeDisposable();
87
- disposables.addDisposables(addDisposableListener(element, 'dragstart', (e) => {
88
- this._onDragStart.fire({ event: e });
89
- }));
90
- disposables.addDisposables(new DragAndDropObserver(element, {
91
- onDragEnd: (e) => {
92
- // no-op
93
- },
94
- onDragEnter: (e) => {
95
- //
96
- },
97
- onDragLeave: (e) => {
98
- //
99
- },
100
- onDrop: (e) => {
101
- //
102
- },
103
- onDragOver: (e) => {
104
- //
105
- },
106
- }));
107
- return disposables;
108
- }
109
- }
@@ -29,5 +29,8 @@ export declare class Droptarget extends CompositeDisposable {
29
29
  validOverlays: DropTargetDirections;
30
30
  });
31
31
  dispose(): void;
32
+ private toggleClasses;
33
+ private setState;
34
+ private calculateQuadrant;
32
35
  private removeDropTarget;
33
36
  }
@@ -20,7 +20,7 @@ export class Droptarget extends CompositeDisposable {
20
20
  this.options = options;
21
21
  this._onDrop = new Emitter();
22
22
  this.onDrop = this._onDrop.event;
23
- this.addDisposables(new DragAndDropObserver(this.element, {
23
+ this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
24
24
  onDragEnter: (e) => undefined,
25
25
  onDragOver: (e) => {
26
26
  if (isBooleanValue(this.options.canDisplayOverlay)) {
@@ -56,51 +56,11 @@ export class Droptarget extends CompositeDisposable {
56
56
  const y = e.offsetY;
57
57
  const xp = (100 * x) / width;
58
58
  const yp = (100 * y) / height;
59
- let isRight = false;
60
- let isLeft = false;
61
- let isTop = false;
62
- let isBottom = false;
63
- switch (this.options.validOverlays) {
64
- case 'all':
65
- isRight = xp > 80;
66
- isLeft = xp < 20;
67
- isTop = !isRight && !isLeft && yp < 20;
68
- isBottom = !isRight && !isLeft && yp > 80;
69
- break;
70
- case 'vertical':
71
- isTop = yp < 50;
72
- isBottom = yp >= 50;
73
- break;
74
- case 'horizontal':
75
- isLeft = xp < 50;
76
- isRight = xp >= 50;
77
- break;
78
- }
59
+ const quadrant = this.calculateQuadrant(this.options.validOverlays, xp, yp);
79
60
  const isSmallX = width < 100;
80
61
  const isSmallY = height < 100;
81
- toggleClass(this.overlay, 'right', !isSmallX && isRight);
82
- toggleClass(this.overlay, 'left', !isSmallX && isLeft);
83
- toggleClass(this.overlay, 'top', !isSmallY && isTop);
84
- toggleClass(this.overlay, 'bottom', !isSmallY && isBottom);
85
- toggleClass(this.overlay, 'small-right', isSmallX && isRight);
86
- toggleClass(this.overlay, 'small-left', isSmallX && isLeft);
87
- toggleClass(this.overlay, 'small-top', isSmallY && isTop);
88
- toggleClass(this.overlay, 'small-bottom', isSmallY && isBottom);
89
- if (isRight) {
90
- this._state = Position.Right;
91
- }
92
- else if (isLeft) {
93
- this._state = Position.Left;
94
- }
95
- else if (isTop) {
96
- this._state = Position.Top;
97
- }
98
- else if (isBottom) {
99
- this._state = Position.Bottom;
100
- }
101
- else {
102
- this._state = Position.Center;
103
- }
62
+ this.toggleClasses(quadrant, isSmallX, isSmallY);
63
+ this.setState(quadrant);
104
64
  },
105
65
  onDragLeave: (e) => {
106
66
  this.removeDropTarget();
@@ -129,9 +89,73 @@ export class Droptarget extends CompositeDisposable {
129
89
  this.options.canDisplayOverlay = value;
130
90
  }
131
91
  dispose() {
132
- this._onDrop.dispose();
133
92
  this.removeDropTarget();
134
93
  }
94
+ toggleClasses(quadrant, isSmallX, isSmallY) {
95
+ if (!this.overlay) {
96
+ return;
97
+ }
98
+ const isLeft = quadrant === 'left';
99
+ const isRight = quadrant === 'right';
100
+ const isTop = quadrant === 'top';
101
+ const isBottom = quadrant === 'bottom';
102
+ toggleClass(this.overlay, 'right', !isSmallX && isRight);
103
+ toggleClass(this.overlay, 'left', !isSmallX && isLeft);
104
+ toggleClass(this.overlay, 'top', !isSmallY && isTop);
105
+ toggleClass(this.overlay, 'bottom', !isSmallY && isBottom);
106
+ toggleClass(this.overlay, 'small-right', isSmallX && isRight);
107
+ toggleClass(this.overlay, 'small-left', isSmallX && isLeft);
108
+ toggleClass(this.overlay, 'small-top', isSmallY && isTop);
109
+ toggleClass(this.overlay, 'small-bottom', isSmallY && isBottom);
110
+ }
111
+ setState(quadrant) {
112
+ switch (quadrant) {
113
+ case 'top':
114
+ this._state = Position.Top;
115
+ break;
116
+ case 'left':
117
+ this._state = Position.Left;
118
+ break;
119
+ case 'bottom':
120
+ this._state = Position.Bottom;
121
+ break;
122
+ case 'right':
123
+ this._state = Position.Right;
124
+ break;
125
+ default:
126
+ this._state = Position.Center;
127
+ break;
128
+ }
129
+ }
130
+ calculateQuadrant(overlayType, xp, yp) {
131
+ switch (overlayType) {
132
+ case 'all':
133
+ if (xp < 20) {
134
+ return 'left';
135
+ }
136
+ if (xp > 80) {
137
+ return 'right';
138
+ }
139
+ if (yp < 20) {
140
+ return 'top';
141
+ }
142
+ if (yp > 80) {
143
+ return 'bottom';
144
+ }
145
+ break;
146
+ case 'vertical':
147
+ if (yp < 50) {
148
+ return 'top';
149
+ }
150
+ return 'bottom';
151
+ case 'horizontal':
152
+ if (xp < 50) {
153
+ return 'left';
154
+ }
155
+ return 'right';
156
+ }
157
+ return null;
158
+ }
135
159
  removeDropTarget() {
136
160
  if (this.target) {
137
161
  this._state = undefined;
@@ -28,7 +28,6 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
28
28
  private _list;
29
29
  private action;
30
30
  private params;
31
- private isDirtyDisposable;
32
31
  get element(): HTMLElement;
33
32
  get id(): string;
34
33
  constructor();
@@ -1,6 +1,5 @@
1
- import { CompositeDisposable, MutableDisposable } from '../../../lifecycle';
1
+ import { CompositeDisposable } from '../../../lifecycle';
2
2
  import { addDisposableListener } from '../../../events';
3
- import { toggleClass } from '../../../dom';
4
3
  export class WrappedTab {
5
4
  constructor(renderer) {
6
5
  this.renderer = renderer;
@@ -55,9 +54,6 @@ export class DefaultTab extends CompositeDisposable {
55
54
  this._isGroupActive = false;
56
55
  //
57
56
  this.params = {};
58
- //
59
- this.isDirtyDisposable = new MutableDisposable();
60
- this.addDisposables(this.isDirtyDisposable);
61
57
  this._element = document.createElement('div');
62
58
  this._element.className = 'default-tab';
63
59
  //
@@ -102,10 +98,6 @@ export class DefaultTab extends CompositeDisposable {
102
98
  init(params) {
103
99
  this.params = params;
104
100
  this._content.textContent = params.title;
105
- this.isDirtyDisposable.value = this.params.api.onDidDirtyChange((event) => {
106
- const isDirty = event;
107
- toggleClass(this.action, 'dirty', isDirty);
108
- });
109
101
  if (!this.params.suppressClosable) {
110
102
  addDisposableListener(this.action, 'click', (ev) => {
111
103
  ev.preventDefault(); //
@@ -6,9 +6,10 @@ import { IWatermarkRenderer } from '../groupview/types';
6
6
  import { IPanelDeserializer } from './deserializer';
7
7
  import { AddGroupOptions, AddPanelOptions, DockviewOptions as DockviewComponentOptions, MovementOptions, TabContextMenuEvent } from './options';
8
8
  import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
9
+ import { DockviewApi } from '../api/component.api';
9
10
  import { LayoutMouseEvent } from '../groupview/tab';
10
11
  import { Orientation } from '../splitview/core/splitview';
11
- import { GroupOptions, GroupPanelViewState } from '../groupview/groupview';
12
+ import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from '../groupview/groupview';
12
13
  import { GroupviewPanel } from '../groupview/groupviewPanel';
13
14
  export interface PanelReference {
14
15
  update: (event: {
@@ -33,11 +34,15 @@ export interface SerializedDockview {
33
34
  tabHeight?: number;
34
35
  };
35
36
  }
36
- export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents'>;
37
+ export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent'>;
38
+ export interface DockviewDropEvent extends GroupviewDropEvent {
39
+ api: DockviewApi;
40
+ }
37
41
  export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
38
42
  readonly activePanel: IGroupPanel | undefined;
39
43
  readonly totalPanels: number;
40
44
  readonly panels: IGroupPanel[];
45
+ readonly onDidDrop: Event<DockviewDropEvent>;
41
46
  tabHeight: number | undefined;
42
47
  deserializer: IPanelDeserializer | undefined;
43
48
  updateOptions(options: DockviewComponentUpdateOptions): void;
@@ -51,7 +56,7 @@ export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
51
56
  fireMouseEvent(event: LayoutMouseEvent): void;
52
57
  createWatermarkComponent(): IWatermarkRenderer;
53
58
  addEmptyGroup(options?: AddGroupOptions): void;
54
- closeAllGroups: () => Promise<boolean>;
59
+ closeAllGroups(): void;
55
60
  onTabInteractionEvent: Event<LayoutMouseEvent>;
56
61
  onTabContextMenu: Event<TabContextMenuEvent>;
57
62
  moveToNext(options?: MovementOptions): void;
@@ -60,19 +65,29 @@ export interface IDockviewComponent extends IBaseGrid<GroupviewPanel> {
60
65
  focus(): void;
61
66
  toJSON(): SerializedDockview;
62
67
  fromJSON(data: SerializedDockview): void;
68
+ readonly onDidRemovePanel: Event<IGroupPanel>;
69
+ readonly onDidAddPanel: Event<IGroupPanel>;
70
+ readonly onDidLayoutfromJSON: Event<void>;
71
+ readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
63
72
  }
64
73
  export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implements IDockviewComponent {
65
- private readonly _panels;
66
- private readonly dirtyPanels;
67
- private readonly debouncedDeque;
74
+ private _deserializer;
75
+ private _api;
76
+ private _options;
68
77
  private readonly _onTabInteractionEvent;
69
78
  readonly onTabInteractionEvent: Event<LayoutMouseEvent>;
70
79
  private readonly _onTabContextMenu;
71
80
  readonly onTabContextMenu: Event<TabContextMenuEvent>;
72
- private _deserializer;
73
- private panelState;
74
- private _api;
75
- private _options;
81
+ private readonly _onDidDrop;
82
+ readonly onDidDrop: Event<DockviewDropEvent>;
83
+ private readonly _onDidRemovePanel;
84
+ readonly onDidRemovePanel: Event<IGroupPanel>;
85
+ private readonly _onDidAddPanel;
86
+ readonly onDidAddPanel: Event<IGroupPanel>;
87
+ private readonly _onDidLayoutfromJSON;
88
+ readonly onDidLayoutfromJSON: Event<void>;
89
+ private readonly _onDidActivePanelChange;
90
+ readonly onDidActivePanelChange: Event<IGroupPanel | undefined>;
76
91
  get totalPanels(): number;
77
92
  get panels(): IGroupPanel[];
78
93
  get deserializer(): IPanelDeserializer | undefined;
@@ -88,8 +103,6 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
88
103
  setActivePanel(panel: IGroupPanel): void;
89
104
  moveToNext(options?: MovementOptions): void;
90
105
  moveToPrevious(options?: MovementOptions): void;
91
- private registerPanel;
92
- private unregisterPanel;
93
106
  /**
94
107
  * Serialize the current state of the layout
95
108
  *
@@ -97,25 +110,22 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
97
110
  */
98
111
  toJSON(): SerializedDockview;
99
112
  fromJSON(data: SerializedDockview): void;
100
- closeAllGroups(): Promise<boolean>;
113
+ closeAllGroups(): void;
101
114
  fireMouseEvent(event: LayoutMouseEvent): void;
102
115
  addPanel(options: AddPanelOptions): IGroupPanel;
103
- removePanel(panel: IGroupPanel): void;
116
+ removePanel(panel: IGroupPanel, options?: {
117
+ removeEmptyGroup: boolean;
118
+ }): void;
104
119
  createWatermarkComponent(): IWatermarkRenderer;
105
120
  addEmptyGroup(options: AddGroupOptions): void;
106
- removeGroup(group: GroupviewPanel): void;
121
+ removeGroup(group: GroupviewPanel, skipActive?: boolean): void;
107
122
  moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
108
123
  doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
109
124
  createGroup(options?: GroupOptions): GroupviewPanel;
110
- dispose(): void;
111
- /**
112
- * Ensure the local copy of the layout state is up-to-date
113
- */
114
- private syncConfigs;
115
125
  private _addPanel;
116
126
  private createContentComponent;
117
127
  private createTabComponent;
118
128
  private addPanelToNewGroup;
119
129
  private findGroup;
120
- private addDirtyPanel;
130
+ dispose(): void;
121
131
  }