dockview 1.0.3 → 1.3.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 (261) hide show
  1. package/README.md +243 -186
  2. package/dist/cjs/api/component.api.d.ts +31 -25
  3. package/dist/cjs/api/component.api.js +97 -40
  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 +15 -15
  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 +72 -48
  29. package/dist/cjs/dnd/droptarget.js.map +1 -1
  30. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +1 -2
  31. package/dist/cjs/dockview/components/tab/defaultTab.js +1 -9
  32. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  33. package/dist/cjs/dockview/components/watermark/watermark.d.ts +3 -3
  34. package/dist/cjs/dockview/components/watermark/watermark.js +4 -4
  35. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  36. package/dist/cjs/dockview/deserializer.js.map +1 -1
  37. package/dist/cjs/dockview/dockviewComponent.d.ts +34 -23
  38. package/dist/cjs/dockview/dockviewComponent.js +117 -209
  39. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  40. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +3 -5
  41. package/dist/cjs/dockview/dockviewGroupPanel.js +10 -31
  42. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  43. package/dist/cjs/dockview/options.d.ts +2 -1
  44. package/dist/cjs/events.js +25 -4
  45. package/dist/cjs/events.js.map +1 -1
  46. package/dist/cjs/gridview/baseComponentGridview.d.ts +12 -20
  47. package/dist/cjs/gridview/baseComponentGridview.js +49 -45
  48. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  49. package/dist/cjs/gridview/basePanelView.d.ts +5 -8
  50. package/dist/cjs/gridview/basePanelView.js +16 -8
  51. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  52. package/dist/cjs/gridview/branchNode.js +3 -3
  53. package/dist/cjs/gridview/branchNode.js.map +1 -1
  54. package/dist/cjs/gridview/gridview.js +21 -18
  55. package/dist/cjs/gridview/gridview.js.map +1 -1
  56. package/dist/cjs/gridview/gridviewComponent.d.ts +5 -6
  57. package/dist/cjs/gridview/gridviewComponent.js +33 -9
  58. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  59. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
  60. package/dist/cjs/gridview/gridviewPanel.js +3 -6
  61. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  62. package/dist/cjs/gridview/leafNode.js +2 -1
  63. package/dist/cjs/gridview/leafNode.js.map +1 -1
  64. package/dist/cjs/groupview/groupPanel.d.ts +1 -7
  65. package/dist/cjs/groupview/groupview.d.ts +18 -10
  66. package/dist/cjs/groupview/groupview.js +51 -129
  67. package/dist/cjs/groupview/groupview.js.map +1 -1
  68. package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
  69. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  70. package/dist/cjs/groupview/panel/content.d.ts +1 -1
  71. package/dist/cjs/groupview/panel/content.js +2 -1
  72. package/dist/cjs/groupview/panel/content.js.map +1 -1
  73. package/dist/cjs/groupview/tab.d.ts +10 -13
  74. package/dist/cjs/groupview/tab.js +22 -80
  75. package/dist/cjs/groupview/tab.js.map +1 -1
  76. package/dist/cjs/groupview/titlebar/tabsContainer.js +4 -6
  77. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  78. package/dist/cjs/hostedContainer.js +2 -2
  79. package/dist/cjs/hostedContainer.js.map +1 -1
  80. package/dist/cjs/index.d.ts +3 -3
  81. package/dist/cjs/index.js +8 -4
  82. package/dist/cjs/index.js.map +1 -1
  83. package/dist/cjs/lifecycle.js +2 -1
  84. package/dist/cjs/lifecycle.js.map +1 -1
  85. package/dist/cjs/panel/types.d.ts +0 -2
  86. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
  87. package/dist/cjs/paneview/defaultPaneviewHeader.js +1 -1
  88. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
  89. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
  90. package/dist/cjs/paneview/draggablePaneviewPanel.js +32 -29
  91. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  92. package/dist/cjs/paneview/paneview.d.ts +3 -1
  93. package/dist/cjs/paneview/paneview.js +13 -7
  94. package/dist/cjs/paneview/paneview.js.map +1 -1
  95. package/dist/cjs/paneview/paneviewComponent.d.ts +7 -6
  96. package/dist/cjs/paneview/paneviewComponent.js +65 -8
  97. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  98. package/dist/cjs/paneview/paneviewPanel.js +1 -1
  99. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  100. package/dist/cjs/react/deserializer.js +1 -3
  101. package/dist/cjs/react/deserializer.js.map +1 -1
  102. package/dist/cjs/react/dockview/components.js +5 -1
  103. package/dist/cjs/react/dockview/components.js.map +1 -1
  104. package/dist/cjs/react/dockview/dockview.d.ts +9 -9
  105. package/dist/cjs/react/dockview/dockview.js +40 -5
  106. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  107. package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -2
  108. package/dist/cjs/react/dockview/reactContentPart.js +6 -17
  109. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  110. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
  111. package/dist/cjs/react/dockview/reactHeaderPart.js +3 -2
  112. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  113. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +3 -4
  114. package/dist/cjs/react/dockview/reactWatermarkPart.js +3 -4
  115. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  116. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  117. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +2 -2
  118. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
  119. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  120. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +2 -2
  121. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +1 -1
  122. package/dist/cjs/react/gridview/gridview.js +9 -2
  123. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  124. package/dist/cjs/react/gridview/view.d.ts +3 -2
  125. package/dist/cjs/react/gridview/view.js +2 -2
  126. package/dist/cjs/react/gridview/view.js.map +1 -1
  127. package/dist/cjs/react/index.d.ts +1 -0
  128. package/dist/cjs/react/index.js +5 -1
  129. package/dist/cjs/react/index.js.map +1 -1
  130. package/dist/cjs/react/paneview/paneview.js +6 -2
  131. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  132. package/dist/cjs/react/react.js +6 -3
  133. package/dist/cjs/react/react.js.map +1 -1
  134. package/dist/cjs/react/splitview/splitview.js +8 -2
  135. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  136. package/dist/cjs/react/splitview/view.js +2 -2
  137. package/dist/cjs/react/splitview/view.js.map +1 -1
  138. package/dist/cjs/splitview/core/splitview.js +1 -1
  139. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  140. package/dist/cjs/splitview/splitviewComponent.d.ts +0 -3
  141. package/dist/cjs/splitview/splitviewComponent.js +50 -6
  142. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  143. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
  144. package/dist/cjs/splitview/splitviewPanel.js +5 -3
  145. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  146. package/dist/dockview.amd.js +666 -791
  147. package/dist/dockview.amd.min.js +2 -16
  148. package/dist/dockview.amd.min.noStyle.js +2 -16
  149. package/dist/dockview.amd.noStyle.js +665 -790
  150. package/dist/dockview.cjs.js +666 -791
  151. package/dist/dockview.esm.js +666 -780
  152. package/dist/dockview.esm.min.js +2 -16
  153. package/dist/dockview.js +666 -791
  154. package/dist/dockview.min.js +2 -16
  155. package/dist/dockview.min.noStyle.js +2 -16
  156. package/dist/dockview.noStyle.js +665 -790
  157. package/dist/esm/api/component.api.d.ts +31 -25
  158. package/dist/esm/api/component.api.js +47 -26
  159. package/dist/esm/api/gridviewPanelApi.js +1 -0
  160. package/dist/esm/api/groupPanelApi.d.ts +11 -14
  161. package/dist/esm/api/groupPanelApi.js +18 -13
  162. package/dist/esm/api/panelApi.d.ts +0 -25
  163. package/dist/esm/api/panelApi.js +1 -20
  164. package/dist/esm/api/paneviewPanelApi.js +1 -0
  165. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  166. package/dist/esm/api/splitviewPanelApi.js +1 -5
  167. package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
  168. package/dist/esm/dnd/abstractDragHandler.js +10 -10
  169. package/dist/esm/dnd/dataTransfer.d.ts +0 -25
  170. package/dist/esm/dnd/dataTransfer.js +0 -40
  171. package/dist/esm/dnd/dnd.d.ts +1 -14
  172. package/dist/esm/dnd/dnd.js +1 -69
  173. package/dist/esm/dnd/droptarget.d.ts +3 -0
  174. package/dist/esm/dnd/droptarget.js +72 -48
  175. package/dist/esm/dockview/components/tab/defaultTab.d.ts +1 -2
  176. package/dist/esm/dockview/components/tab/defaultTab.js +2 -10
  177. package/dist/esm/dockview/components/watermark/watermark.d.ts +3 -3
  178. package/dist/esm/dockview/components/watermark/watermark.js +4 -4
  179. package/dist/esm/dockview/dockviewComponent.d.ts +34 -23
  180. package/dist/esm/dockview/dockviewComponent.js +82 -150
  181. package/dist/esm/dockview/dockviewGroupPanel.d.ts +3 -5
  182. package/dist/esm/dockview/dockviewGroupPanel.js +6 -30
  183. package/dist/esm/dockview/options.d.ts +2 -1
  184. package/dist/esm/events.js +2 -3
  185. package/dist/esm/gridview/baseComponentGridview.d.ts +12 -20
  186. package/dist/esm/gridview/baseComponentGridview.js +27 -45
  187. package/dist/esm/gridview/basePanelView.d.ts +5 -8
  188. package/dist/esm/gridview/basePanelView.js +12 -8
  189. package/dist/esm/gridview/branchNode.js +3 -3
  190. package/dist/esm/gridview/gridview.js +18 -16
  191. package/dist/esm/gridview/gridviewComponent.d.ts +5 -6
  192. package/dist/esm/gridview/gridviewComponent.js +12 -10
  193. package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
  194. package/dist/esm/gridview/gridviewPanel.js +3 -6
  195. package/dist/esm/gridview/leafNode.js +1 -0
  196. package/dist/esm/groupview/groupPanel.d.ts +1 -7
  197. package/dist/esm/groupview/groupview.d.ts +18 -10
  198. package/dist/esm/groupview/groupview.js +30 -59
  199. package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
  200. package/dist/esm/groupview/panel/content.d.ts +1 -1
  201. package/dist/esm/groupview/panel/content.js +2 -1
  202. package/dist/esm/groupview/tab.d.ts +10 -13
  203. package/dist/esm/groupview/tab.js +17 -24
  204. package/dist/esm/groupview/titlebar/tabsContainer.js +4 -6
  205. package/dist/esm/hostedContainer.js +2 -2
  206. package/dist/esm/index.d.ts +3 -3
  207. package/dist/esm/index.js +1 -2
  208. package/dist/esm/lifecycle.js +2 -1
  209. package/dist/esm/panel/types.d.ts +0 -2
  210. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
  211. package/dist/esm/paneview/defaultPaneviewHeader.js +1 -1
  212. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  213. package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
  214. package/dist/esm/paneview/paneview.d.ts +3 -1
  215. package/dist/esm/paneview/paneview.js +10 -6
  216. package/dist/esm/paneview/paneviewComponent.d.ts +7 -6
  217. package/dist/esm/paneview/paneviewComponent.js +31 -7
  218. package/dist/esm/paneview/paneviewPanel.js +1 -1
  219. package/dist/esm/react/deserializer.js +1 -3
  220. package/dist/esm/react/dockview/dockview.d.ts +9 -9
  221. package/dist/esm/react/dockview/dockview.js +36 -5
  222. package/dist/esm/react/dockview/reactContentPart.d.ts +2 -2
  223. package/dist/esm/react/dockview/reactContentPart.js +6 -17
  224. package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
  225. package/dist/esm/react/dockview/reactHeaderPart.js +3 -2
  226. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +3 -4
  227. package/dist/esm/react/dockview/reactWatermarkPart.js +3 -4
  228. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  229. package/dist/esm/react/dockview/v2/reactContentRenderer.js +2 -2
  230. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  231. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +2 -2
  232. package/dist/esm/react/gridview/gridview.js +4 -1
  233. package/dist/esm/react/gridview/view.d.ts +3 -2
  234. package/dist/esm/react/gridview/view.js +2 -2
  235. package/dist/esm/react/index.d.ts +1 -0
  236. package/dist/esm/react/paneview/paneview.js +1 -1
  237. package/dist/esm/react/react.js +1 -2
  238. package/dist/esm/react/splitview/splitview.js +3 -1
  239. package/dist/esm/react/splitview/view.js +2 -2
  240. package/dist/esm/splitview/core/splitview.js +1 -1
  241. package/dist/esm/splitview/splitviewComponent.d.ts +0 -3
  242. package/dist/esm/splitview/splitviewComponent.js +17 -6
  243. package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
  244. package/dist/esm/splitview/splitviewPanel.js +5 -3
  245. package/dist/styles/dockview.css +14 -17
  246. package/package.json +13 -13
  247. package/dist/cjs/functions.d.ts +0 -1
  248. package/dist/cjs/functions.js +0 -42
  249. package/dist/cjs/functions.js.map +0 -1
  250. package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
  251. package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
  252. package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
  253. package/dist/cjs/json.d.ts +0 -1
  254. package/dist/cjs/json.js +0 -14
  255. package/dist/cjs/json.js.map +0 -1
  256. package/dist/esm/functions.d.ts +0 -1
  257. package/dist/esm/functions.js +0 -8
  258. package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
  259. package/dist/esm/groupview/panel/hostedPanel.js +0 -43
  260. package/dist/esm/json.d.ts +0 -1
  261. package/dist/esm/json.js +0 -9
@@ -1,4 +1,3 @@
1
- import { tryParseJSON } from '../json';
2
1
  class TransferObject {
3
2
  constructor() {
4
3
  //
@@ -19,45 +18,6 @@ export class PaneTransfer extends TransferObject {
19
18
  this.paneId = paneId;
20
19
  }
21
20
  }
22
- export const DATA_KEY = 'splitview/transfer';
23
- export const isPanelTransferEvent = (event) => {
24
- if (!event.dataTransfer) {
25
- return false;
26
- }
27
- return event.dataTransfer.types.includes(DATA_KEY);
28
- };
29
- export var DragType;
30
- (function (DragType) {
31
- DragType["DOCKVIEW_TAB"] = "dockview_tab";
32
- DragType["EXTERNAL"] = "external_group_drag";
33
- })(DragType || (DragType = {}));
34
- /**
35
- * Determine whether this data belong to that of an event that was started by
36
- * dragging a tab component
37
- */
38
- export const isTabDragEvent = (data) => {
39
- return data.type === DragType.DOCKVIEW_TAB;
40
- };
41
- /**
42
- * Determine whether this data belong to that of an event that was started by
43
- * a custom drag-enable component
44
- */
45
- export const isCustomDragEvent = (data) => {
46
- return data.type === DragType.EXTERNAL;
47
- };
48
- export const extractData = (event) => {
49
- if (!event.dataTransfer) {
50
- return null;
51
- }
52
- const data = tryParseJSON(event.dataTransfer.getData(DATA_KEY));
53
- if (!data) {
54
- console.warn(`[dragEvent] ${DATA_KEY} data is missing`);
55
- }
56
- if (typeof data.type !== 'string') {
57
- console.warn(`[dragEvent] invalid type ${data.type}`);
58
- }
59
- return data;
60
- };
61
21
  /**
62
22
  * A singleton to store transfer data during drag & drop operations that are only valid within the application.
63
23
  */
@@ -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,8 +20,8 @@ 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, {
24
- onDragEnter: (e) => undefined,
23
+ this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
24
+ onDragEnter: () => undefined,
25
25
  onDragOver: (e) => {
26
26
  if (isBooleanValue(this.options.canDisplayOverlay)) {
27
27
  if (!this.options.canDisplayOverlay) {
@@ -56,56 +56,16 @@ 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
- onDragLeave: (e) => {
65
+ onDragLeave: () => {
106
66
  this.removeDropTarget();
107
67
  },
108
- onDragEnd: (e) => {
68
+ onDragEnd: () => {
109
69
  this.removeDropTarget();
110
70
  },
111
71
  onDrop: (e) => {
@@ -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();
@@ -39,6 +38,6 @@ export declare class DefaultTab extends CompositeDisposable implements ITabRende
39
38
  focus(): void;
40
39
  init(params: GroupPanelPartInitParameters): void;
41
40
  updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
42
- layout(width: number, height: number): void;
41
+ layout(_width: number, _height: number): void;
43
42
  private render;
44
43
  }
@@ -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(); //
@@ -121,7 +113,7 @@ export class DefaultTab extends CompositeDisposable {
121
113
  this._isGroupActive = group.isActive;
122
114
  this.render();
123
115
  }
124
- layout(width, height) {
116
+ layout(_width, _height) {
125
117
  // noop
126
118
  }
127
119
  render() {
@@ -8,12 +8,12 @@ export declare class Watermark extends CompositeDisposable implements IWatermark
8
8
  private params;
9
9
  get id(): string;
10
10
  constructor();
11
- update(event: PanelUpdateEvent): void;
11
+ update(_event: PanelUpdateEvent): void;
12
12
  focus(): void;
13
13
  toJSON(): {};
14
- layout(width: number, height: number): void;
14
+ layout(_width: number, _height: number): void;
15
15
  init(params: GroupPanelPartInitParameters): void;
16
- updateParentGroup(group: GroupviewPanel, visible: boolean): void;
16
+ updateParentGroup(group: GroupviewPanel, _visible: boolean): void;
17
17
  get element(): HTMLElement;
18
18
  private render;
19
19
  dispose(): void;
@@ -32,7 +32,7 @@ export class Watermark extends CompositeDisposable {
32
32
  get id() {
33
33
  return 'watermark';
34
34
  }
35
- update(event) {
35
+ update(_event) {
36
36
  // noop
37
37
  }
38
38
  focus() {
@@ -41,17 +41,17 @@ export class Watermark extends CompositeDisposable {
41
41
  toJSON() {
42
42
  return {};
43
43
  }
44
- layout(width, height) {
44
+ layout(_width, _height) {
45
45
  // noop
46
46
  }
47
47
  init(params) {
48
48
  this.params = params;
49
- this.addDisposables(this.params.containerApi.onDidLayoutChange((event) => {
49
+ this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
50
50
  this.render();
51
51
  }));
52
52
  this.render();
53
53
  }
54
- updateParentGroup(group, visible) {
54
+ updateParentGroup(group, _visible) {
55
55
  this.group = group;
56
56
  this.render();
57
57
  }
@@ -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: {
@@ -29,15 +30,19 @@ export interface SerializedDockview {
29
30
  [key: string]: GroupviewPanelState;
30
31
  };
31
32
  activeGroup?: string;
32
- options: {
33
+ options?: {
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,23 @@ 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
+ skipDispose: boolean;
119
+ }): void;
104
120
  createWatermarkComponent(): IWatermarkRenderer;
105
121
  addEmptyGroup(options: AddGroupOptions): void;
106
- removeGroup(group: GroupviewPanel): void;
122
+ removeGroup(group: GroupviewPanel, skipActive?: boolean): void;
107
123
  moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
108
124
  doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
109
125
  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
- private _addPanel;
126
+ private createPanel;
116
127
  private createContentComponent;
117
128
  private createTabComponent;
118
129
  private addPanelToNewGroup;
119
130
  private findGroup;
120
- private addDirtyPanel;
131
+ dispose(): void;
121
132
  }