dockview-core 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 (294) hide show
  1. package/README.md +52 -0
  2. package/dist/cjs/api/component.api.d.ts +145 -0
  3. package/dist/cjs/api/component.api.js +579 -0
  4. package/dist/cjs/api/component.api.js.map +1 -0
  5. package/dist/cjs/api/dockviewPanelApi.d.ts +34 -0
  6. package/dist/cjs/api/dockviewPanelApi.js +84 -0
  7. package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
  8. package/dist/cjs/api/gridviewPanelApi.d.ts +37 -0
  9. package/dist/cjs/api/gridviewPanelApi.js +48 -0
  10. package/dist/cjs/api/gridviewPanelApi.js.map +1 -0
  11. package/dist/cjs/api/panelApi.d.ts +88 -0
  12. package/dist/cjs/api/panelApi.js +138 -0
  13. package/dist/cjs/api/panelApi.js.map +1 -0
  14. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -0
  15. package/dist/cjs/api/paneviewPanelApi.js +58 -0
  16. package/dist/cjs/api/paneviewPanelApi.js.map +1 -0
  17. package/dist/cjs/api/splitviewPanelApi.d.ts +32 -0
  18. package/dist/cjs/api/splitviewPanelApi.js +48 -0
  19. package/dist/cjs/api/splitviewPanelApi.js.map +1 -0
  20. package/dist/cjs/array.d.ts +12 -0
  21. package/dist/cjs/array.js +59 -0
  22. package/dist/cjs/array.js.map +1 -0
  23. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -0
  24. package/dist/cjs/dnd/abstractDragHandler.js +126 -0
  25. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -0
  26. package/dist/cjs/dnd/dataTransfer.d.ts +31 -0
  27. package/dist/cjs/dnd/dataTransfer.js +101 -0
  28. package/dist/cjs/dnd/dataTransfer.js.map +1 -0
  29. package/dist/cjs/dnd/dnd.d.ts +27 -0
  30. package/dist/cjs/dnd/dnd.js +60 -0
  31. package/dist/cjs/dnd/dnd.js.map +1 -0
  32. package/dist/cjs/dnd/droptarget.d.ts +42 -0
  33. package/dist/cjs/dnd/droptarget.js +281 -0
  34. package/dist/cjs/dnd/droptarget.js.map +1 -0
  35. package/dist/cjs/dnd/ghost.d.ts +1 -0
  36. package/dist/cjs/dnd/ghost.js +16 -0
  37. package/dist/cjs/dnd/ghost.js.map +1 -0
  38. package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
  39. package/dist/cjs/dnd/groupDragHandler.js +62 -0
  40. package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
  41. package/dist/cjs/dockview/components/panel/content.d.ts +30 -0
  42. package/dist/cjs/dockview/components/panel/content.js +101 -0
  43. package/dist/cjs/dockview/components/panel/content.js.map +1 -0
  44. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +21 -0
  45. package/dist/cjs/dockview/components/tab/defaultTab.js +106 -0
  46. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -0
  47. package/dist/cjs/dockview/components/tab/tab.d.ts +31 -0
  48. package/dist/cjs/dockview/components/tab/tab.js +125 -0
  49. package/dist/cjs/dockview/components/tab/tab.js.map +1 -0
  50. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +63 -0
  51. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +248 -0
  52. package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -0
  53. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +15 -0
  54. package/dist/cjs/dockview/components/titlebar/voidContainer.js +74 -0
  55. package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +1 -0
  56. package/dist/cjs/dockview/components/watermark/watermark.d.ts +18 -0
  57. package/dist/cjs/dockview/components/watermark/watermark.js +87 -0
  58. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -0
  59. package/dist/cjs/dockview/deserializer.d.ts +12 -0
  60. package/dist/cjs/dockview/deserializer.js +46 -0
  61. package/dist/cjs/dockview/deserializer.js.map +1 -0
  62. package/dist/cjs/dockview/dockviewComponent.d.ts +126 -0
  63. package/dist/cjs/dockview/dockviewComponent.js +772 -0
  64. package/dist/cjs/dockview/dockviewComponent.js.map +1 -0
  65. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +31 -0
  66. package/dist/cjs/dockview/dockviewGroupPanel.js +97 -0
  67. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -0
  68. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +176 -0
  69. package/dist/cjs/dockview/dockviewGroupPanelModel.js +579 -0
  70. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -0
  71. package/dist/cjs/dockview/dockviewPanel.d.ts +40 -0
  72. package/dist/cjs/dockview/dockviewPanel.js +150 -0
  73. package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
  74. package/dist/cjs/dockview/dockviewPanelModel.d.ts +34 -0
  75. package/dist/cjs/dockview/dockviewPanelModel.js +93 -0
  76. package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -0
  77. package/dist/cjs/dockview/options.d.ts +116 -0
  78. package/dist/cjs/dockview/options.js +32 -0
  79. package/dist/cjs/dockview/options.js.map +1 -0
  80. package/dist/cjs/dockview/types.d.ts +67 -0
  81. package/dist/cjs/dockview/types.js +11 -0
  82. package/dist/cjs/dockview/types.js.map +1 -0
  83. package/dist/cjs/dom.d.ts +14 -0
  84. package/dist/cjs/dom.js +183 -0
  85. package/dist/cjs/dom.js.map +1 -0
  86. package/dist/cjs/events.d.ts +30 -0
  87. package/dist/cjs/events.js +130 -0
  88. package/dist/cjs/events.js.map +1 -0
  89. package/dist/cjs/gridview/baseComponentGridview.d.ts +87 -0
  90. package/dist/cjs/gridview/baseComponentGridview.js +280 -0
  91. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -0
  92. package/dist/cjs/gridview/basePanelView.d.ts +40 -0
  93. package/dist/cjs/gridview/basePanelView.js +124 -0
  94. package/dist/cjs/gridview/basePanelView.js.map +1 -0
  95. package/dist/cjs/gridview/branchNode.d.ts +49 -0
  96. package/dist/cjs/gridview/branchNode.js +343 -0
  97. package/dist/cjs/gridview/branchNode.js.map +1 -0
  98. package/dist/cjs/gridview/gridview.d.ts +133 -0
  99. package/dist/cjs/gridview/gridview.js +511 -0
  100. package/dist/cjs/gridview/gridview.js.map +1 -0
  101. package/dist/cjs/gridview/gridviewComponent.d.ts +80 -0
  102. package/dist/cjs/gridview/gridviewComponent.js +325 -0
  103. package/dist/cjs/gridview/gridviewComponent.js.map +1 -0
  104. package/dist/cjs/gridview/gridviewPanel.d.ts +65 -0
  105. package/dist/cjs/gridview/gridviewPanel.js +215 -0
  106. package/dist/cjs/gridview/gridviewPanel.js.map +1 -0
  107. package/dist/cjs/gridview/leafNode.d.ts +34 -0
  108. package/dist/cjs/gridview/leafNode.js +171 -0
  109. package/dist/cjs/gridview/leafNode.js.map +1 -0
  110. package/dist/cjs/gridview/options.d.ts +18 -0
  111. package/dist/cjs/gridview/options.js +3 -0
  112. package/dist/cjs/gridview/options.js.map +1 -0
  113. package/dist/cjs/gridview/types.d.ts +3 -0
  114. package/dist/cjs/gridview/types.js +3 -0
  115. package/dist/cjs/gridview/types.js.map +1 -0
  116. package/dist/cjs/index.d.ts +41 -0
  117. package/dist/cjs/index.js +64 -0
  118. package/dist/cjs/index.js.map +1 -0
  119. package/dist/cjs/lifecycle.d.ts +22 -0
  120. package/dist/cjs/lifecycle.js +89 -0
  121. package/dist/cjs/lifecycle.js.map +1 -0
  122. package/dist/cjs/math.d.ts +5 -0
  123. package/dist/cjs/math.js +35 -0
  124. package/dist/cjs/math.js.map +1 -0
  125. package/dist/cjs/panel/componentFactory.d.ts +10 -0
  126. package/dist/cjs/panel/componentFactory.js +31 -0
  127. package/dist/cjs/panel/componentFactory.js.map +1 -0
  128. package/dist/cjs/panel/types.d.ts +33 -0
  129. package/dist/cjs/panel/types.js +3 -0
  130. package/dist/cjs/panel/types.js.map +1 -0
  131. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +21 -0
  132. package/dist/cjs/paneview/defaultPaneviewHeader.js +91 -0
  133. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -0
  134. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +21 -0
  135. package/dist/cjs/paneview/draggablePaneviewPanel.js +132 -0
  136. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -0
  137. package/dist/cjs/paneview/options.d.ts +27 -0
  138. package/dist/cjs/paneview/options.js +3 -0
  139. package/dist/cjs/paneview/options.js.map +1 -0
  140. package/dist/cjs/paneview/paneview.d.ts +40 -0
  141. package/dist/cjs/paneview/paneview.js +202 -0
  142. package/dist/cjs/paneview/paneview.js.map +1 -0
  143. package/dist/cjs/paneview/paneviewComponent.d.ts +129 -0
  144. package/dist/cjs/paneview/paneviewComponent.js +395 -0
  145. package/dist/cjs/paneview/paneviewComponent.js.map +1 -0
  146. package/dist/cjs/paneview/paneviewPanel.d.ts +92 -0
  147. package/dist/cjs/paneview/paneviewPanel.js +276 -0
  148. package/dist/cjs/paneview/paneviewPanel.js.map +1 -0
  149. package/dist/cjs/splitview/options.d.ts +26 -0
  150. package/dist/cjs/splitview/options.js +3 -0
  151. package/dist/cjs/splitview/options.js.map +1 -0
  152. package/dist/cjs/splitview/splitview.d.ts +127 -0
  153. package/dist/cjs/splitview/splitview.js +909 -0
  154. package/dist/cjs/splitview/splitview.js.map +1 -0
  155. package/dist/cjs/splitview/splitviewComponent.d.ts +101 -0
  156. package/dist/cjs/splitview/splitviewComponent.js +374 -0
  157. package/dist/cjs/splitview/splitviewComponent.js.map +1 -0
  158. package/dist/cjs/splitview/splitviewPanel.d.ts +45 -0
  159. package/dist/cjs/splitview/splitviewPanel.js +180 -0
  160. package/dist/cjs/splitview/splitviewPanel.js.map +1 -0
  161. package/dist/cjs/splitview/viewItem.d.ts +25 -0
  162. package/dist/cjs/splitview/viewItem.js +120 -0
  163. package/dist/cjs/splitview/viewItem.js.map +1 -0
  164. package/dist/cjs/svg.d.ts +3 -0
  165. package/dist/cjs/svg.js +44 -0
  166. package/dist/cjs/svg.js.map +1 -0
  167. package/dist/cjs/types.d.ts +2 -0
  168. package/dist/cjs/types.js +3 -0
  169. package/dist/cjs/types.js.map +1 -0
  170. package/dist/dockview-core.amd.js +6492 -0
  171. package/dist/dockview-core.amd.min.js +7 -0
  172. package/dist/dockview-core.amd.min.noStyle.js +7 -0
  173. package/dist/dockview-core.amd.noStyle.js +6462 -0
  174. package/dist/dockview-core.cjs.js +6490 -0
  175. package/dist/dockview-core.esm.js +6441 -0
  176. package/dist/dockview-core.esm.min.js +7 -0
  177. package/dist/dockview-core.js +6496 -0
  178. package/dist/dockview-core.min.js +7 -0
  179. package/dist/dockview-core.min.noStyle.js +7 -0
  180. package/dist/dockview-core.noStyle.js +6466 -0
  181. package/dist/esm/api/component.api.d.ts +145 -0
  182. package/dist/esm/api/component.api.js +329 -0
  183. package/dist/esm/api/dockviewPanelApi.d.ts +34 -0
  184. package/dist/esm/api/dockviewPanelApi.js +48 -0
  185. package/dist/esm/api/gridviewPanelApi.d.ts +37 -0
  186. package/dist/esm/api/gridviewPanelApi.js +25 -0
  187. package/dist/esm/api/panelApi.d.ts +88 -0
  188. package/dist/esm/api/panelApi.js +95 -0
  189. package/dist/esm/api/paneviewPanelApi.d.ts +26 -0
  190. package/dist/esm/api/paneviewPanelApi.js +27 -0
  191. package/dist/esm/api/splitviewPanelApi.d.ts +32 -0
  192. package/dist/esm/api/splitviewPanelApi.js +25 -0
  193. package/dist/esm/array.d.ts +12 -0
  194. package/dist/esm/array.js +49 -0
  195. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -0
  196. package/dist/esm/dnd/abstractDragHandler.js +47 -0
  197. package/dist/esm/dnd/dataTransfer.d.ts +31 -0
  198. package/dist/esm/dnd/dataTransfer.js +69 -0
  199. package/dist/esm/dnd/dnd.d.ts +27 -0
  200. package/dist/esm/dnd/dnd.js +36 -0
  201. package/dist/esm/dnd/droptarget.d.ts +42 -0
  202. package/dist/esm/dnd/droptarget.js +250 -0
  203. package/dist/esm/dnd/ghost.d.ts +1 -0
  204. package/dist/esm/dnd/ghost.js +11 -0
  205. package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
  206. package/dist/esm/dnd/groupDragHandler.js +38 -0
  207. package/dist/esm/dockview/components/panel/content.d.ts +30 -0
  208. package/dist/esm/dockview/components/panel/content.js +73 -0
  209. package/dist/esm/dockview/components/tab/defaultTab.d.ts +21 -0
  210. package/dist/esm/dockview/components/tab/defaultTab.js +67 -0
  211. package/dist/esm/dockview/components/tab/tab.d.ts +31 -0
  212. package/dist/esm/dockview/components/tab/tab.js +94 -0
  213. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +63 -0
  214. package/dist/esm/dockview/components/titlebar/tabsContainer.js +179 -0
  215. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +15 -0
  216. package/dist/esm/dockview/components/titlebar/voidContainer.js +47 -0
  217. package/dist/esm/dockview/components/watermark/watermark.d.ts +18 -0
  218. package/dist/esm/dockview/components/watermark/watermark.js +60 -0
  219. package/dist/esm/dockview/deserializer.d.ts +12 -0
  220. package/dist/esm/dockview/deserializer.js +40 -0
  221. package/dist/esm/dockview/dockviewComponent.d.ts +126 -0
  222. package/dist/esm/dockview/dockviewComponent.js +612 -0
  223. package/dist/esm/dockview/dockviewGroupPanel.d.ts +31 -0
  224. package/dist/esm/dockview/dockviewGroupPanel.js +50 -0
  225. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +176 -0
  226. package/dist/esm/dockview/dockviewGroupPanelModel.js +449 -0
  227. package/dist/esm/dockview/dockviewPanel.d.ts +40 -0
  228. package/dist/esm/dockview/dockviewPanel.js +104 -0
  229. package/dist/esm/dockview/dockviewPanelModel.d.ts +34 -0
  230. package/dist/esm/dockview/dockviewPanelModel.js +68 -0
  231. package/dist/esm/dockview/options.d.ts +116 -0
  232. package/dist/esm/dockview/options.js +24 -0
  233. package/dist/esm/dockview/types.d.ts +67 -0
  234. package/dist/esm/dockview/types.js +7 -0
  235. package/dist/esm/dom.d.ts +14 -0
  236. package/dist/esm/dom.js +113 -0
  237. package/dist/esm/events.d.ts +30 -0
  238. package/dist/esm/events.js +88 -0
  239. package/dist/esm/gridview/baseComponentGridview.d.ts +87 -0
  240. package/dist/esm/gridview/baseComponentGridview.js +189 -0
  241. package/dist/esm/gridview/basePanelView.d.ts +40 -0
  242. package/dist/esm/gridview/basePanelView.js +74 -0
  243. package/dist/esm/gridview/branchNode.d.ts +49 -0
  244. package/dist/esm/gridview/branchNode.js +218 -0
  245. package/dist/esm/gridview/gridview.d.ts +133 -0
  246. package/dist/esm/gridview/gridview.js +423 -0
  247. package/dist/esm/gridview/gridviewComponent.d.ts +80 -0
  248. package/dist/esm/gridview/gridviewComponent.js +237 -0
  249. package/dist/esm/gridview/gridviewPanel.d.ts +65 -0
  250. package/dist/esm/gridview/gridviewPanel.js +151 -0
  251. package/dist/esm/gridview/leafNode.d.ts +34 -0
  252. package/dist/esm/gridview/leafNode.js +103 -0
  253. package/dist/esm/gridview/options.d.ts +18 -0
  254. package/dist/esm/gridview/options.js +1 -0
  255. package/dist/esm/gridview/types.d.ts +3 -0
  256. package/dist/esm/gridview/types.js +1 -0
  257. package/dist/esm/index.d.ts +41 -0
  258. package/dist/esm/index.js +35 -0
  259. package/dist/esm/lifecycle.d.ts +22 -0
  260. package/dist/esm/lifecycle.js +39 -0
  261. package/dist/esm/math.d.ts +5 -0
  262. package/dist/esm/math.js +28 -0
  263. package/dist/esm/panel/componentFactory.d.ts +10 -0
  264. package/dist/esm/panel/componentFactory.js +24 -0
  265. package/dist/esm/panel/types.d.ts +33 -0
  266. package/dist/esm/panel/types.js +1 -0
  267. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +21 -0
  268. package/dist/esm/paneview/defaultPaneviewHeader.js +63 -0
  269. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +21 -0
  270. package/dist/esm/paneview/draggablePaneviewPanel.js +92 -0
  271. package/dist/esm/paneview/options.d.ts +27 -0
  272. package/dist/esm/paneview/options.js +1 -0
  273. package/dist/esm/paneview/paneview.d.ts +40 -0
  274. package/dist/esm/paneview/paneview.js +145 -0
  275. package/dist/esm/paneview/paneviewComponent.d.ts +129 -0
  276. package/dist/esm/paneview/paneviewComponent.js +270 -0
  277. package/dist/esm/paneview/paneviewPanel.d.ts +92 -0
  278. package/dist/esm/paneview/paneviewPanel.js +192 -0
  279. package/dist/esm/splitview/options.d.ts +26 -0
  280. package/dist/esm/splitview/options.js +1 -0
  281. package/dist/esm/splitview/splitview.d.ts +127 -0
  282. package/dist/esm/splitview/splitview.js +689 -0
  283. package/dist/esm/splitview/splitviewComponent.d.ts +101 -0
  284. package/dist/esm/splitview/splitviewComponent.js +249 -0
  285. package/dist/esm/splitview/splitviewPanel.d.ts +45 -0
  286. package/dist/esm/splitview/splitviewPanel.js +108 -0
  287. package/dist/esm/splitview/viewItem.d.ts +25 -0
  288. package/dist/esm/splitview/viewItem.js +74 -0
  289. package/dist/esm/svg.d.ts +3 -0
  290. package/dist/esm/svg.js +31 -0
  291. package/dist/esm/types.d.ts +2 -0
  292. package/dist/esm/types.js +1 -0
  293. package/dist/styles/dockview.css +615 -0
  294. package/package.json +68 -0
@@ -0,0 +1,35 @@
1
+ export * from './dnd/dataTransfer';
2
+ export { watchElementResize } from './dom';
3
+ /**
4
+ * Events, Emitters and Disposables are very common concepts that most codebases will contain.
5
+ * We export them with a 'Dockview' prefix here to prevent accidental use by others.
6
+ */
7
+ export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
8
+ export { MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, } from './lifecycle';
9
+ export * from './panel/types';
10
+ export * from './panel/componentFactory';
11
+ export * from './splitview/splitview';
12
+ export * from './splitview/options';
13
+ export * from './paneview/paneview';
14
+ export * from './gridview/gridview';
15
+ export * from './dockview/dockviewGroupPanelModel';
16
+ export * from './gridview/baseComponentGridview';
17
+ export * from './paneview/draggablePaneviewPanel';
18
+ export * from './dockview/components/panel/content';
19
+ export * from './dockview/components/tab/tab';
20
+ export * from './dockview/types';
21
+ export * from './dockview/dockviewGroupPanel';
22
+ export * from './dockview/options';
23
+ export * from './dockview/dockviewPanel';
24
+ export * from './dockview/components/tab/defaultTab';
25
+ export * from './dockview/deserializer';
26
+ export * from './dockview/dockviewComponent';
27
+ export * from './gridview/gridviewComponent';
28
+ export * from './splitview/splitviewComponent';
29
+ export * from './paneview/paneviewComponent';
30
+ export * from './gridview/gridviewPanel';
31
+ export * from './splitview/splitviewPanel';
32
+ export * from './paneview/paneviewPanel';
33
+ export * from './dockview/types';
34
+ export { positionToDirection, directionToPosition, } from './dnd/droptarget';
35
+ export { SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
@@ -0,0 +1,22 @@
1
+ export interface IDisposable {
2
+ dispose: () => void;
3
+ }
4
+ export interface IValueDisposable<T> {
5
+ readonly value: T;
6
+ readonly disposable: IDisposable;
7
+ }
8
+ export declare namespace Disposable {
9
+ const NONE: IDisposable;
10
+ }
11
+ export declare class CompositeDisposable {
12
+ private readonly disposables;
13
+ static from(...args: IDisposable[]): CompositeDisposable;
14
+ constructor(...args: IDisposable[]);
15
+ addDisposables(...args: IDisposable[]): void;
16
+ dispose(): void;
17
+ }
18
+ export declare class MutableDisposable implements IDisposable {
19
+ private _disposable;
20
+ set value(disposable: IDisposable);
21
+ dispose(): void;
22
+ }
@@ -0,0 +1,39 @@
1
+ export var Disposable;
2
+ (function (Disposable) {
3
+ Disposable.NONE = {
4
+ dispose: () => {
5
+ // noop
6
+ },
7
+ };
8
+ })(Disposable || (Disposable = {}));
9
+ export class CompositeDisposable {
10
+ static from(...args) {
11
+ return new CompositeDisposable(...args);
12
+ }
13
+ constructor(...args) {
14
+ this.disposables = args;
15
+ }
16
+ addDisposables(...args) {
17
+ args.forEach((arg) => this.disposables.push(arg));
18
+ }
19
+ dispose() {
20
+ this.disposables.forEach((arg) => arg.dispose());
21
+ }
22
+ }
23
+ export class MutableDisposable {
24
+ constructor() {
25
+ this._disposable = Disposable.NONE;
26
+ }
27
+ set value(disposable) {
28
+ if (this._disposable) {
29
+ this._disposable.dispose();
30
+ }
31
+ this._disposable = disposable;
32
+ }
33
+ dispose() {
34
+ if (this._disposable) {
35
+ this._disposable.dispose();
36
+ this._disposable = Disposable.NONE;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,5 @@
1
+ export declare const clamp: (value: number, min: number, max: number) => number;
2
+ export declare const sequentialNumberGenerator: () => {
3
+ next: () => string;
4
+ };
5
+ export declare const range: (from: number, to?: number) => number[];
@@ -0,0 +1,28 @@
1
+ export const clamp = (value, min, max) => {
2
+ if (min > max) {
3
+ throw new Error(`${min} > ${max} is an invalid condition`);
4
+ }
5
+ return Math.min(max, Math.max(value, min));
6
+ };
7
+ export const sequentialNumberGenerator = () => {
8
+ let value = 1;
9
+ return { next: () => (value++).toString() };
10
+ };
11
+ export const range = (from, to) => {
12
+ const result = [];
13
+ if (typeof to !== 'number') {
14
+ to = from;
15
+ from = 0;
16
+ }
17
+ if (from <= to) {
18
+ for (let i = from; i < to; i++) {
19
+ result.push(i);
20
+ }
21
+ }
22
+ else {
23
+ for (let i = from; i > to; i--) {
24
+ result.push(i);
25
+ }
26
+ }
27
+ return result;
28
+ };
@@ -0,0 +1,10 @@
1
+ export interface FrameworkFactory<T> {
2
+ createComponent: (id: string, componentId: string, component: any) => T;
3
+ }
4
+ export declare function createComponent<T>(id: string, componentName?: string, components?: {
5
+ [componentName: string]: {
6
+ new (id: string, component: string): T;
7
+ };
8
+ }, frameworkComponents?: {
9
+ [componentName: string]: any;
10
+ }, createFrameworkComponent?: FrameworkFactory<T>, fallback?: () => T): T;
@@ -0,0 +1,24 @@
1
+ export function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
2
+ const Component = typeof componentName === 'string'
3
+ ? components[componentName]
4
+ : undefined;
5
+ const FrameworkComponent = typeof componentName === 'string'
6
+ ? frameworkComponents[componentName]
7
+ : undefined;
8
+ if (Component && FrameworkComponent) {
9
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
10
+ }
11
+ if (FrameworkComponent) {
12
+ if (!createFrameworkComponent) {
13
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
14
+ }
15
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
16
+ }
17
+ if (!Component) {
18
+ if (fallback) {
19
+ return fallback();
20
+ }
21
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
22
+ }
23
+ return new Component(id, componentName);
24
+ }
@@ -0,0 +1,33 @@
1
+ import { IDisposable } from '../lifecycle';
2
+ import { LayoutPriority } from '../splitview/splitview';
3
+ /**
4
+ * A key-value object of anything that is a valid JavaScript Object.
5
+ */
6
+ export interface Parameters {
7
+ [key: string]: any;
8
+ }
9
+ export interface PanelInitParameters {
10
+ params: Parameters;
11
+ }
12
+ export interface PanelUpdateEvent<T extends Parameters = Parameters> {
13
+ params: Partial<T>;
14
+ }
15
+ export interface IPanel extends IDisposable {
16
+ readonly id: string;
17
+ init(params: PanelInitParameters): void;
18
+ layout(width: number, height: number): void;
19
+ update(event: PanelUpdateEvent<Parameters>): void;
20
+ toJSON(): object;
21
+ focus?(): void;
22
+ }
23
+ export interface IFrameworkPart extends IDisposable {
24
+ update(params: Parameters): void;
25
+ }
26
+ export interface BaseComponentOptions {
27
+ id: string;
28
+ component: string;
29
+ params?: Parameters;
30
+ snap?: boolean;
31
+ priority?: LayoutPriority;
32
+ size?: number;
33
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';
2
+ import { CompositeDisposable } from '../lifecycle';
3
+ import { PanelUpdateEvent } from '../panel/types';
4
+ import { IPaneHeaderPart, PanePanelInitParameter } from './paneviewPanel';
5
+ export declare class DefaultHeader extends CompositeDisposable implements IPaneHeaderPart {
6
+ private readonly _expandedIcon;
7
+ private readonly _collapsedIcon;
8
+ private readonly disposable;
9
+ private readonly _element;
10
+ private readonly _content;
11
+ private readonly _expander;
12
+ private apiRef;
13
+ get element(): HTMLElement;
14
+ constructor();
15
+ init(params: PanePanelInitParameter & {
16
+ api: PaneviewPanelApiImpl;
17
+ }): void;
18
+ private updateIcon;
19
+ update(_params: PanelUpdateEvent): void;
20
+ dispose(): void;
21
+ }
@@ -0,0 +1,63 @@
1
+ import { addDisposableListener } from '../events';
2
+ import { CompositeDisposable, MutableDisposable } from '../lifecycle';
3
+ import { toggleClass } from '../dom';
4
+ import { createChevronRightButton, createExpandMoreButton } from '../svg';
5
+ export class DefaultHeader extends CompositeDisposable {
6
+ get element() {
7
+ return this._element;
8
+ }
9
+ constructor() {
10
+ super();
11
+ this._expandedIcon = createExpandMoreButton();
12
+ this._collapsedIcon = createChevronRightButton();
13
+ this.disposable = new MutableDisposable();
14
+ this.apiRef = { api: null };
15
+ this._element = document.createElement('div');
16
+ this.element.className = 'default-header';
17
+ this._content = document.createElement('span');
18
+ this._expander = document.createElement('div');
19
+ this._expander.className = 'dockview-pane-header-icon';
20
+ this.element.appendChild(this._expander);
21
+ this.element.appendChild(this._content);
22
+ this.addDisposables(addDisposableListener(this._element, 'click', () => {
23
+ var _a;
24
+ (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
25
+ }));
26
+ }
27
+ init(params) {
28
+ this.apiRef.api = params.api;
29
+ this._content.textContent = params.title;
30
+ this.updateIcon();
31
+ this.disposable.value = params.api.onDidExpansionChange(() => {
32
+ this.updateIcon();
33
+ });
34
+ }
35
+ updateIcon() {
36
+ var _a;
37
+ const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);
38
+ toggleClass(this._expander, 'collapsed', !isExpanded);
39
+ if (isExpanded) {
40
+ if (this._expander.contains(this._collapsedIcon)) {
41
+ this._collapsedIcon.remove();
42
+ }
43
+ if (!this._expander.contains(this._expandedIcon)) {
44
+ this._expander.appendChild(this._expandedIcon);
45
+ }
46
+ }
47
+ else {
48
+ if (this._expander.contains(this._expandedIcon)) {
49
+ this._expandedIcon.remove();
50
+ }
51
+ if (!this._expander.contains(this._collapsedIcon)) {
52
+ this._expander.appendChild(this._collapsedIcon);
53
+ }
54
+ }
55
+ }
56
+ update(_params) {
57
+ //
58
+ }
59
+ dispose() {
60
+ this.disposable.dispose();
61
+ super.dispose();
62
+ }
63
+ }
@@ -0,0 +1,21 @@
1
+ import { PaneviewApi } from '../api/component.api';
2
+ import { PaneTransfer } from '../dnd/dataTransfer';
3
+ import { DroptargetEvent } from '../dnd/droptarget';
4
+ import { Orientation } from '../splitview/splitview';
5
+ import { IPaneviewComponent } from './paneviewComponent';
6
+ import { IPaneviewPanel, PaneviewPanel } from './paneviewPanel';
7
+ export interface PaneviewDropEvent extends DroptargetEvent {
8
+ panel: IPaneviewPanel;
9
+ getData: () => PaneTransfer | undefined;
10
+ api: PaneviewApi;
11
+ }
12
+ export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
13
+ private readonly accessor;
14
+ private handler;
15
+ private target;
16
+ private readonly _onDidDrop;
17
+ readonly onDidDrop: import("../events").Event<PaneviewDropEvent>;
18
+ constructor(accessor: IPaneviewComponent, id: string, component: string, headerComponent: string | undefined, orientation: Orientation, isExpanded: boolean, disableDnd: boolean);
19
+ private initDragFeatures;
20
+ private onDrop;
21
+ }
@@ -0,0 +1,92 @@
1
+ import { PaneviewApi } from '../api/component.api';
2
+ import { DragHandler } from '../dnd/abstractDragHandler';
3
+ import { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';
4
+ import { Droptarget } from '../dnd/droptarget';
5
+ import { Emitter } from '../events';
6
+ import { PaneviewPanel, } from './paneviewPanel';
7
+ export class DraggablePaneviewPanel extends PaneviewPanel {
8
+ constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
9
+ super(id, component, headerComponent, orientation, isExpanded, true);
10
+ this.accessor = accessor;
11
+ this._onDidDrop = new Emitter();
12
+ this.onDidDrop = this._onDidDrop.event;
13
+ if (!disableDnd) {
14
+ this.initDragFeatures();
15
+ }
16
+ }
17
+ initDragFeatures() {
18
+ if (!this.header) {
19
+ return;
20
+ }
21
+ const id = this.id;
22
+ const accessorId = this.accessor.id;
23
+ this.header.draggable = true;
24
+ this.handler = new (class PaneDragHandler extends DragHandler {
25
+ getData() {
26
+ LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);
27
+ return {
28
+ dispose: () => {
29
+ LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);
30
+ },
31
+ };
32
+ }
33
+ })(this.header);
34
+ this.target = new Droptarget(this.element, {
35
+ acceptedTargetZones: ['top', 'bottom'],
36
+ overlayModel: {
37
+ activationSize: { type: 'percentage', value: 50 },
38
+ },
39
+ canDisplayOverlay: (event) => {
40
+ const data = getPaneData();
41
+ if (data) {
42
+ if (data.paneId !== this.id &&
43
+ data.viewId === this.accessor.id) {
44
+ return true;
45
+ }
46
+ }
47
+ if (this.accessor.options.showDndOverlay) {
48
+ return this.accessor.options.showDndOverlay({
49
+ nativeEvent: event,
50
+ getData: getPaneData,
51
+ panel: this,
52
+ });
53
+ }
54
+ return false;
55
+ },
56
+ });
57
+ this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
58
+ this.onDrop(event);
59
+ }));
60
+ }
61
+ onDrop(event) {
62
+ const data = getPaneData();
63
+ if (!data || data.viewId !== this.accessor.id) {
64
+ // if there is no local drag event for this panel
65
+ // or if the drag event was creating by another Paneview instance
66
+ this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));
67
+ return;
68
+ }
69
+ const containerApi = this._params
70
+ .containerApi;
71
+ const panelId = data.paneId;
72
+ const existingPanel = containerApi.getPanel(panelId);
73
+ if (!existingPanel) {
74
+ // if the panel doesn't exist
75
+ this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));
76
+ return;
77
+ }
78
+ const allPanels = containerApi.panels;
79
+ const fromIndex = allPanels.indexOf(existingPanel);
80
+ let toIndex = containerApi.panels.indexOf(this);
81
+ if (event.position === 'left' || event.position === 'top') {
82
+ toIndex = Math.max(0, toIndex - 1);
83
+ }
84
+ if (event.position === 'right' || event.position === 'bottom') {
85
+ if (fromIndex > toIndex) {
86
+ toIndex++;
87
+ }
88
+ toIndex = Math.min(allPanels.length - 1, toIndex);
89
+ }
90
+ containerApi.movePanel(fromIndex, toIndex);
91
+ }
92
+ }
@@ -0,0 +1,27 @@
1
+ import { FrameworkFactory } from '../panel/componentFactory';
2
+ import { PaneviewDndOverlayEvent } from './paneviewComponent';
3
+ import { IPaneBodyPart, IPaneHeaderPart, PaneviewPanel } from './paneviewPanel';
4
+ export interface PaneviewComponentOptions {
5
+ components?: {
6
+ [componentName: string]: {
7
+ new (id: string, componentName: string): PaneviewPanel;
8
+ };
9
+ };
10
+ frameworkComponents?: {
11
+ [componentName: string]: any;
12
+ };
13
+ headerComponents?: {
14
+ [componentName: string]: {
15
+ new (id: string, componentName: string): PaneviewPanel;
16
+ };
17
+ };
18
+ headerframeworkComponents?: {
19
+ [componentName: string]: any;
20
+ };
21
+ frameworkWrapper?: {
22
+ header: FrameworkFactory<IPaneHeaderPart>;
23
+ body: FrameworkFactory<IPaneBodyPart>;
24
+ };
25
+ disableDnd?: boolean;
26
+ showDndOverlay?: (event: PaneviewDndOverlayEvent) => boolean;
27
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ import { Orientation, ISplitViewDescriptor, Sizing } from '../splitview/splitview';
2
+ import { CompositeDisposable, IDisposable } from '../lifecycle';
3
+ import { Event } from '../events';
4
+ import { PaneviewPanel } from './paneviewPanel';
5
+ interface PaneItem {
6
+ pane: PaneviewPanel;
7
+ disposable: IDisposable;
8
+ }
9
+ export declare class Paneview extends CompositeDisposable implements IDisposable {
10
+ private element;
11
+ private splitview;
12
+ private paneItems;
13
+ private _orientation;
14
+ private animationTimer;
15
+ private skipAnimation;
16
+ private readonly _onDidChange;
17
+ readonly onDidChange: Event<void>;
18
+ get onDidAddView(): Event<PaneviewPanel>;
19
+ get onDidRemoveView(): Event<PaneviewPanel>;
20
+ get minimumSize(): number;
21
+ get maximumSize(): number;
22
+ get orientation(): Orientation;
23
+ get size(): number;
24
+ get orthogonalSize(): number;
25
+ constructor(container: HTMLElement, options: {
26
+ orientation: Orientation;
27
+ descriptor?: ISplitViewDescriptor;
28
+ });
29
+ addPane(pane: PaneviewPanel, size?: number | Sizing, index?: number, skipLayout?: boolean): void;
30
+ getViewSize(index: number): number;
31
+ getPanes(): PaneviewPanel[];
32
+ removePane(index: number, options?: {
33
+ skipDispose: boolean;
34
+ }): PaneItem;
35
+ moveView(from: number, to: number): void;
36
+ layout(size: number, orthogonalSize: number): void;
37
+ private setupAnimation;
38
+ dispose(): void;
39
+ }
40
+ export {};
@@ -0,0 +1,145 @@
1
+ import { Splitview, Orientation, } from '../splitview/splitview';
2
+ import { CompositeDisposable } from '../lifecycle';
3
+ import { Emitter } from '../events';
4
+ import { addClasses, removeClasses } from '../dom';
5
+ export class Paneview extends CompositeDisposable {
6
+ get onDidAddView() {
7
+ return this.splitview.onDidAddView;
8
+ }
9
+ get onDidRemoveView() {
10
+ return this.splitview.onDidRemoveView;
11
+ }
12
+ get minimumSize() {
13
+ return this.splitview.minimumSize;
14
+ }
15
+ get maximumSize() {
16
+ return this.splitview.maximumSize;
17
+ }
18
+ get orientation() {
19
+ return this.splitview.orientation;
20
+ }
21
+ get size() {
22
+ return this.splitview.size;
23
+ }
24
+ get orthogonalSize() {
25
+ return this.splitview.orthogonalSize;
26
+ }
27
+ constructor(container, options) {
28
+ var _a;
29
+ super();
30
+ this.paneItems = [];
31
+ this.skipAnimation = false;
32
+ this._onDidChange = new Emitter();
33
+ this.onDidChange = this._onDidChange.event;
34
+ this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;
35
+ this.element = document.createElement('div');
36
+ this.element.className = 'pane-container';
37
+ container.appendChild(this.element);
38
+ this.splitview = new Splitview(this.element, {
39
+ orientation: this._orientation,
40
+ proportionalLayout: false,
41
+ descriptor: options.descriptor,
42
+ });
43
+ // if we've added views from the descriptor we need to
44
+ // add the panes to our Pane array and setup animation
45
+ this.getPanes().forEach((pane) => {
46
+ const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
47
+ this.setupAnimation();
48
+ this._onDidChange.fire(undefined);
49
+ }));
50
+ const paneItem = {
51
+ pane,
52
+ disposable: {
53
+ dispose: () => {
54
+ disposable.dispose();
55
+ },
56
+ },
57
+ };
58
+ this.paneItems.push(paneItem);
59
+ pane.orthogonalSize = this.splitview.orthogonalSize;
60
+ });
61
+ this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {
62
+ this._onDidChange.fire(undefined);
63
+ }), this.splitview.onDidAddView(() => {
64
+ this._onDidChange.fire();
65
+ }), this.splitview.onDidRemoveView(() => {
66
+ this._onDidChange.fire();
67
+ }));
68
+ }
69
+ addPane(pane, size, index = this.splitview.length, skipLayout = false) {
70
+ const disposable = pane.onDidChangeExpansionState(() => {
71
+ this.setupAnimation();
72
+ this._onDidChange.fire(undefined);
73
+ });
74
+ const paneItem = {
75
+ pane,
76
+ disposable: {
77
+ dispose: () => {
78
+ disposable.dispose();
79
+ },
80
+ },
81
+ };
82
+ this.paneItems.splice(index, 0, paneItem);
83
+ pane.orthogonalSize = this.splitview.orthogonalSize;
84
+ this.splitview.addView(pane, size, index, skipLayout);
85
+ }
86
+ getViewSize(index) {
87
+ return this.splitview.getViewSize(index);
88
+ }
89
+ getPanes() {
90
+ return this.splitview.getViews();
91
+ }
92
+ removePane(index, options = { skipDispose: false }) {
93
+ const paneItem = this.paneItems.splice(index, 1)[0];
94
+ this.splitview.removeView(index);
95
+ if (!options.skipDispose) {
96
+ paneItem.disposable.dispose();
97
+ paneItem.pane.dispose();
98
+ }
99
+ return paneItem;
100
+ }
101
+ moveView(from, to) {
102
+ if (from === to) {
103
+ return;
104
+ }
105
+ const view = this.removePane(from, { skipDispose: true });
106
+ this.skipAnimation = true;
107
+ try {
108
+ this.addPane(view.pane, view.pane.size, to, false);
109
+ }
110
+ finally {
111
+ this.skipAnimation = false;
112
+ }
113
+ }
114
+ layout(size, orthogonalSize) {
115
+ this.splitview.layout(size, orthogonalSize);
116
+ }
117
+ setupAnimation() {
118
+ if (this.skipAnimation) {
119
+ return;
120
+ }
121
+ if (this.animationTimer) {
122
+ clearTimeout(this.animationTimer);
123
+ this.animationTimer = undefined;
124
+ }
125
+ addClasses(this.element, 'animated');
126
+ this.animationTimer = setTimeout(() => {
127
+ this.animationTimer = undefined;
128
+ removeClasses(this.element, 'animated');
129
+ }, 200);
130
+ }
131
+ dispose() {
132
+ super.dispose();
133
+ if (this.animationTimer) {
134
+ clearTimeout(this.animationTimer);
135
+ this.animationTimer = undefined;
136
+ }
137
+ this.paneItems.forEach((paneItem) => {
138
+ paneItem.disposable.dispose();
139
+ paneItem.pane.dispose();
140
+ });
141
+ this.paneItems = [];
142
+ this.splitview.dispose();
143
+ this.element.remove();
144
+ }
145
+ }