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,511 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:
4
+ * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid
5
+ *--------------------------------------------------------------------------------------------*/
6
+ var __read = (this && this.__read) || function (o, n) {
7
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
8
+ if (!m) return o;
9
+ var i = m.call(o), r, ar = [], e;
10
+ try {
11
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
12
+ }
13
+ catch (error) { e = { error: error }; }
14
+ finally {
15
+ try {
16
+ if (r && !r.done && (m = i["return"])) m.call(i);
17
+ }
18
+ finally { if (e) throw e.error; }
19
+ }
20
+ return ar;
21
+ };
22
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
23
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
24
+ if (ar || !(i in from)) {
25
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
26
+ ar[i] = from[i];
27
+ }
28
+ }
29
+ return to.concat(ar || Array.prototype.slice.call(from));
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.Gridview = exports.isGridBranchNode = exports.orthogonal = exports.getLocationOrientation = exports.getDirectionOrientation = exports.getRelativeLocation = exports.getGridLocation = exports.indexInParent = void 0;
33
+ var splitview_1 = require("../splitview/splitview");
34
+ var array_1 = require("../array");
35
+ var leafNode_1 = require("./leafNode");
36
+ var branchNode_1 = require("./branchNode");
37
+ var events_1 = require("../events");
38
+ var lifecycle_1 = require("../lifecycle");
39
+ function findLeaf(candiateNode, last) {
40
+ if (candiateNode instanceof leafNode_1.LeafNode) {
41
+ return candiateNode;
42
+ }
43
+ if (candiateNode instanceof branchNode_1.BranchNode) {
44
+ return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);
45
+ }
46
+ throw new Error('invalid node');
47
+ }
48
+ function flipNode(node, size, orthogonalSize) {
49
+ if (node instanceof branchNode_1.BranchNode) {
50
+ var result = new branchNode_1.BranchNode((0, exports.orthogonal)(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);
51
+ var totalSize = 0;
52
+ for (var i = node.children.length - 1; i >= 0; i--) {
53
+ var child = node.children[i];
54
+ var childSize = child instanceof branchNode_1.BranchNode ? child.orthogonalSize : child.size;
55
+ var newSize = node.size === 0
56
+ ? 0
57
+ : Math.round((size * childSize) / node.size);
58
+ totalSize += newSize;
59
+ // The last view to add should adjust to rounding errors
60
+ if (i === 0) {
61
+ newSize += size - totalSize;
62
+ }
63
+ result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);
64
+ }
65
+ return result;
66
+ }
67
+ else {
68
+ return new leafNode_1.LeafNode(node.view, (0, exports.orthogonal)(node.orientation), orthogonalSize);
69
+ }
70
+ }
71
+ function indexInParent(element) {
72
+ var parentElement = element.parentElement;
73
+ if (!parentElement) {
74
+ throw new Error('Invalid grid element');
75
+ }
76
+ var el = parentElement.firstElementChild;
77
+ var index = 0;
78
+ while (el !== element && el !== parentElement.lastElementChild && el) {
79
+ el = el.nextElementSibling;
80
+ index++;
81
+ }
82
+ return index;
83
+ }
84
+ exports.indexInParent = indexInParent;
85
+ /**
86
+ * Find the grid location of a specific DOM element by traversing the parent
87
+ * chain and finding each child index on the way.
88
+ *
89
+ * This will break as soon as DOM structures of the Splitview or Gridview change.
90
+ */
91
+ function getGridLocation(element) {
92
+ var parentElement = element.parentElement;
93
+ if (!parentElement) {
94
+ throw new Error('Invalid grid element');
95
+ }
96
+ if (/\bgrid-view\b/.test(parentElement.className)) {
97
+ return [];
98
+ }
99
+ var index = indexInParent(parentElement);
100
+ var ancestor = parentElement.parentElement.parentElement.parentElement;
101
+ return __spreadArray(__spreadArray([], __read(getGridLocation(ancestor)), false), [index], false);
102
+ }
103
+ exports.getGridLocation = getGridLocation;
104
+ function getRelativeLocation(rootOrientation, location, direction) {
105
+ var orientation = getLocationOrientation(rootOrientation, location);
106
+ var directionOrientation = getDirectionOrientation(direction);
107
+ if (orientation === directionOrientation) {
108
+ var _a = __read((0, array_1.tail)(location), 2), rest = _a[0], _index = _a[1];
109
+ var index = _index;
110
+ if (direction === 'right' || direction === 'bottom') {
111
+ index += 1;
112
+ }
113
+ return __spreadArray(__spreadArray([], __read(rest), false), [index], false);
114
+ }
115
+ else {
116
+ var index = direction === 'right' || direction === 'bottom' ? 1 : 0;
117
+ return __spreadArray(__spreadArray([], __read(location), false), [index], false);
118
+ }
119
+ }
120
+ exports.getRelativeLocation = getRelativeLocation;
121
+ function getDirectionOrientation(direction) {
122
+ return direction === 'top' || direction === 'bottom'
123
+ ? splitview_1.Orientation.VERTICAL
124
+ : splitview_1.Orientation.HORIZONTAL;
125
+ }
126
+ exports.getDirectionOrientation = getDirectionOrientation;
127
+ function getLocationOrientation(rootOrientation, location) {
128
+ return location.length % 2 === 0
129
+ ? (0, exports.orthogonal)(rootOrientation)
130
+ : rootOrientation;
131
+ }
132
+ exports.getLocationOrientation = getLocationOrientation;
133
+ var orthogonal = function (orientation) {
134
+ return orientation === splitview_1.Orientation.HORIZONTAL
135
+ ? splitview_1.Orientation.VERTICAL
136
+ : splitview_1.Orientation.HORIZONTAL;
137
+ };
138
+ exports.orthogonal = orthogonal;
139
+ function isGridBranchNode(node) {
140
+ return !!node.children;
141
+ }
142
+ exports.isGridBranchNode = isGridBranchNode;
143
+ var serializeBranchNode = function (node, orientation) {
144
+ var size = orientation === splitview_1.Orientation.VERTICAL ? node.box.width : node.box.height;
145
+ if (!isGridBranchNode(node)) {
146
+ if (typeof node.cachedVisibleSize === 'number') {
147
+ return {
148
+ type: 'leaf',
149
+ data: node.view.toJSON(),
150
+ size: node.cachedVisibleSize,
151
+ visible: false,
152
+ };
153
+ }
154
+ return { type: 'leaf', data: node.view.toJSON(), size: size };
155
+ }
156
+ return {
157
+ type: 'branch',
158
+ data: node.children.map(function (c) {
159
+ return serializeBranchNode(c, (0, exports.orthogonal)(orientation));
160
+ }),
161
+ size: size,
162
+ };
163
+ };
164
+ var Gridview = /** @class */ (function () {
165
+ function Gridview(proportionalLayout, styles, orientation) {
166
+ this.proportionalLayout = proportionalLayout;
167
+ this.styles = styles;
168
+ this.disposable = new lifecycle_1.MutableDisposable();
169
+ this._onDidChange = new events_1.Emitter();
170
+ this.onDidChange = this._onDidChange.event;
171
+ this.element = document.createElement('div');
172
+ this.element.className = 'grid-view';
173
+ this.root = new branchNode_1.BranchNode(orientation, proportionalLayout, styles, 0, 0);
174
+ }
175
+ Object.defineProperty(Gridview.prototype, "length", {
176
+ get: function () {
177
+ return this._root ? this._root.children.length : 0;
178
+ },
179
+ enumerable: false,
180
+ configurable: true
181
+ });
182
+ Object.defineProperty(Gridview.prototype, "orientation", {
183
+ get: function () {
184
+ return this.root.orientation;
185
+ },
186
+ set: function (orientation) {
187
+ if (this.root.orientation === orientation) {
188
+ return;
189
+ }
190
+ var _a = this.root, size = _a.size, orthogonalSize = _a.orthogonalSize;
191
+ this.root = flipNode(this.root, orthogonalSize, size);
192
+ this.root.layout(size, orthogonalSize);
193
+ },
194
+ enumerable: false,
195
+ configurable: true
196
+ });
197
+ Object.defineProperty(Gridview.prototype, "width", {
198
+ get: function () {
199
+ return this.root.width;
200
+ },
201
+ enumerable: false,
202
+ configurable: true
203
+ });
204
+ Object.defineProperty(Gridview.prototype, "height", {
205
+ get: function () {
206
+ return this.root.height;
207
+ },
208
+ enumerable: false,
209
+ configurable: true
210
+ });
211
+ Object.defineProperty(Gridview.prototype, "minimumWidth", {
212
+ get: function () {
213
+ return this.root.minimumWidth;
214
+ },
215
+ enumerable: false,
216
+ configurable: true
217
+ });
218
+ Object.defineProperty(Gridview.prototype, "minimumHeight", {
219
+ get: function () {
220
+ return this.root.minimumHeight;
221
+ },
222
+ enumerable: false,
223
+ configurable: true
224
+ });
225
+ Object.defineProperty(Gridview.prototype, "maximumWidth", {
226
+ get: function () {
227
+ return this.root.maximumHeight;
228
+ },
229
+ enumerable: false,
230
+ configurable: true
231
+ });
232
+ Object.defineProperty(Gridview.prototype, "maximumHeight", {
233
+ get: function () {
234
+ return this.root.maximumHeight;
235
+ },
236
+ enumerable: false,
237
+ configurable: true
238
+ });
239
+ Gridview.prototype.serialize = function () {
240
+ var root = serializeBranchNode(this.getView(), this.orientation);
241
+ return {
242
+ root: root,
243
+ width: this.width,
244
+ height: this.height,
245
+ orientation: this.orientation,
246
+ };
247
+ };
248
+ Gridview.prototype.dispose = function () {
249
+ this.disposable.dispose();
250
+ this._onDidChange.dispose();
251
+ this.root.dispose();
252
+ this.element.remove();
253
+ };
254
+ Gridview.prototype.clear = function () {
255
+ var orientation = this.root.orientation;
256
+ this.root = new branchNode_1.BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);
257
+ };
258
+ Gridview.prototype.deserialize = function (json, deserializer) {
259
+ var orientation = json.orientation;
260
+ var height = orientation === splitview_1.Orientation.VERTICAL ? json.height : json.width;
261
+ this._deserialize(json.root, orientation, deserializer, height);
262
+ };
263
+ Gridview.prototype._deserialize = function (root, orientation, deserializer, orthogonalSize) {
264
+ this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize, true);
265
+ };
266
+ Gridview.prototype._deserializeNode = function (node, orientation, deserializer, orthogonalSize, isRoot) {
267
+ var _this = this;
268
+ if (isRoot === void 0) { isRoot = false; }
269
+ var result;
270
+ if (node.type === 'branch') {
271
+ var serializedChildren = node.data;
272
+ var children = serializedChildren.map(function (serializedChild) {
273
+ return {
274
+ node: _this._deserializeNode(serializedChild, (0, exports.orthogonal)(orientation), deserializer, node.size),
275
+ visible: serializedChild.visible,
276
+ };
277
+ });
278
+ // HORIZONTAL => height=orthogonalsize width=size
279
+ // VERTICAL => height=size width=orthogonalsize
280
+ result = new branchNode_1.BranchNode(orientation, this.proportionalLayout, this.styles, isRoot ? orthogonalSize : node.size, isRoot ? node.size : orthogonalSize, children);
281
+ }
282
+ else {
283
+ result = new leafNode_1.LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);
284
+ }
285
+ return result;
286
+ };
287
+ Object.defineProperty(Gridview.prototype, "root", {
288
+ get: function () {
289
+ return this._root;
290
+ },
291
+ set: function (root) {
292
+ var _this = this;
293
+ var oldRoot = this._root;
294
+ if (oldRoot) {
295
+ oldRoot.dispose();
296
+ this.element.removeChild(oldRoot.element);
297
+ }
298
+ this._root = root;
299
+ this.element.appendChild(this._root.element);
300
+ this.disposable.value = this._root.onDidChange(function (e) {
301
+ _this._onDidChange.fire(e);
302
+ });
303
+ },
304
+ enumerable: false,
305
+ configurable: true
306
+ });
307
+ /**
308
+ * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node
309
+ * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node
310
+ */
311
+ Gridview.prototype.insertOrthogonalSplitviewAtRoot = function () {
312
+ var _this = this;
313
+ if (!this._root) {
314
+ return;
315
+ }
316
+ var oldRoot = this.root;
317
+ oldRoot.element.remove();
318
+ this._root = new branchNode_1.BranchNode((0, exports.orthogonal)(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);
319
+ if (oldRoot.children.length === 1) {
320
+ // can remove one level of redundant branching if there is only a single child
321
+ var childReference = oldRoot.children[0];
322
+ oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root
323
+ oldRoot.dispose();
324
+ this._root.addChild(childReference, splitview_1.Sizing.Distribute, 0);
325
+ }
326
+ else {
327
+ this._root.addChild(oldRoot, splitview_1.Sizing.Distribute, 0);
328
+ }
329
+ this.element.appendChild(this._root.element);
330
+ this.disposable.value = this._root.onDidChange(function (e) {
331
+ _this._onDidChange.fire(e);
332
+ });
333
+ };
334
+ Gridview.prototype.next = function (location) {
335
+ return this.progmaticSelect(location);
336
+ };
337
+ Gridview.prototype.previous = function (location) {
338
+ return this.progmaticSelect(location, true);
339
+ };
340
+ Gridview.prototype.getView = function (location) {
341
+ var node = location ? this.getNode(location)[1] : this.root;
342
+ return this._getViews(node, this.orientation);
343
+ };
344
+ Gridview.prototype._getViews = function (node, orientation, cachedVisibleSize) {
345
+ var box = { height: node.height, width: node.width };
346
+ if (node instanceof leafNode_1.LeafNode) {
347
+ return { box: box, view: node.view, cachedVisibleSize: cachedVisibleSize };
348
+ }
349
+ var children = [];
350
+ for (var i = 0; i < node.children.length; i++) {
351
+ var child = node.children[i];
352
+ var nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);
353
+ children.push(this._getViews(child, (0, exports.orthogonal)(orientation), nodeCachedVisibleSize));
354
+ }
355
+ return { box: box, children: children };
356
+ };
357
+ Gridview.prototype.progmaticSelect = function (location, reverse) {
358
+ if (reverse === void 0) { reverse = false; }
359
+ var _a = __read(this.getNode(location), 2), path = _a[0], node = _a[1];
360
+ if (!(node instanceof leafNode_1.LeafNode)) {
361
+ throw new Error('invalid location');
362
+ }
363
+ for (var i = path.length - 1; i > -1; i--) {
364
+ var n = path[i];
365
+ var l = location[i] || 0;
366
+ var canProgressInCurrentLevel = reverse
367
+ ? l - 1 > -1
368
+ : l + 1 < n.children.length;
369
+ if (canProgressInCurrentLevel) {
370
+ return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);
371
+ }
372
+ }
373
+ return findLeaf(this.root, reverse);
374
+ };
375
+ Gridview.prototype.isViewVisible = function (location) {
376
+ var _a = __read((0, array_1.tail)(location), 2), rest = _a[0], index = _a[1];
377
+ var _b = __read(this.getNode(rest), 2), parent = _b[1];
378
+ if (!(parent instanceof branchNode_1.BranchNode)) {
379
+ throw new Error('Invalid from location');
380
+ }
381
+ return parent.isChildVisible(index);
382
+ };
383
+ Gridview.prototype.setViewVisible = function (location, visible) {
384
+ var _a = __read((0, array_1.tail)(location), 2), rest = _a[0], index = _a[1];
385
+ var _b = __read(this.getNode(rest), 2), parent = _b[1];
386
+ if (!(parent instanceof branchNode_1.BranchNode)) {
387
+ throw new Error('Invalid from location');
388
+ }
389
+ parent.setChildVisible(index, visible);
390
+ };
391
+ Gridview.prototype.moveView = function (parentLocation, from, to) {
392
+ var _a = __read(this.getNode(parentLocation), 2), parent = _a[1];
393
+ if (!(parent instanceof branchNode_1.BranchNode)) {
394
+ throw new Error('Invalid location');
395
+ }
396
+ parent.moveChild(from, to);
397
+ };
398
+ Gridview.prototype.addView = function (view, size, location) {
399
+ var _a = __read((0, array_1.tail)(location), 2), rest = _a[0], index = _a[1];
400
+ var _b = __read(this.getNode(rest), 2), pathToParent = _b[0], parent = _b[1];
401
+ if (parent instanceof branchNode_1.BranchNode) {
402
+ var node = new leafNode_1.LeafNode(view, (0, exports.orthogonal)(parent.orientation), parent.orthogonalSize);
403
+ parent.addChild(node, size, index);
404
+ }
405
+ else {
406
+ var _c = __read(__spreadArray([], __read(pathToParent), false).reverse()), grandParent = _c[0], _ = _c.slice(1);
407
+ var _d = __read(__spreadArray([], __read(rest), false).reverse()), parentIndex = _d[0], __ = _d.slice(1);
408
+ var newSiblingSize = 0;
409
+ var newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);
410
+ if (typeof newSiblingCachedVisibleSize === 'number') {
411
+ newSiblingSize = splitview_1.Sizing.Invisible(newSiblingCachedVisibleSize);
412
+ }
413
+ grandParent.removeChild(parentIndex);
414
+ var newParent = new branchNode_1.BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);
415
+ grandParent.addChild(newParent, parent.size, parentIndex);
416
+ var newSibling = new leafNode_1.LeafNode(parent.view, grandParent.orientation, parent.size);
417
+ newParent.addChild(newSibling, newSiblingSize, 0);
418
+ if (typeof size !== 'number' && size.type === 'split') {
419
+ size = { type: 'split', index: 0 };
420
+ }
421
+ var node = new leafNode_1.LeafNode(view, grandParent.orientation, parent.size);
422
+ newParent.addChild(node, size, index);
423
+ }
424
+ };
425
+ Gridview.prototype.remove = function (view, sizing) {
426
+ var location = getGridLocation(view.element);
427
+ return this.removeView(location, sizing);
428
+ };
429
+ Gridview.prototype.removeView = function (location, sizing) {
430
+ var _a = __read((0, array_1.tail)(location), 2), rest = _a[0], index = _a[1];
431
+ var _b = __read(this.getNode(rest), 2), pathToParent = _b[0], parent = _b[1];
432
+ if (!(parent instanceof branchNode_1.BranchNode)) {
433
+ throw new Error('Invalid location');
434
+ }
435
+ var node = parent.children[index];
436
+ if (!(node instanceof leafNode_1.LeafNode)) {
437
+ throw new Error('Invalid location');
438
+ }
439
+ parent.removeChild(index, sizing);
440
+ if (parent.children.length === 0) {
441
+ return node.view;
442
+ }
443
+ if (parent.children.length > 1) {
444
+ return node.view;
445
+ }
446
+ var sibling = parent.children[0];
447
+ if (pathToParent.length === 0) {
448
+ // parent is root
449
+ if (sibling instanceof leafNode_1.LeafNode) {
450
+ return node.view;
451
+ }
452
+ // we must promote sibling to be the new root
453
+ parent.removeChild(0, sizing);
454
+ this.root = sibling;
455
+ return node.view;
456
+ }
457
+ var _c = __read(__spreadArray([], __read(pathToParent), false).reverse()), grandParent = _c[0], _ = _c.slice(1);
458
+ var _d = __read(__spreadArray([], __read(rest), false).reverse()), parentIndex = _d[0], __ = _d.slice(1);
459
+ var isSiblingVisible = parent.isChildVisible(0);
460
+ parent.removeChild(0, sizing);
461
+ var sizes = grandParent.children.map(function (_size, i) {
462
+ return grandParent.getChildSize(i);
463
+ });
464
+ grandParent.removeChild(parentIndex, sizing);
465
+ if (sibling instanceof branchNode_1.BranchNode) {
466
+ sizes.splice.apply(sizes, __spreadArray([parentIndex,
467
+ 1], __read(sibling.children.map(function (c) { return c.size; })), false));
468
+ for (var i = 0; i < sibling.children.length; i++) {
469
+ var child = sibling.children[i];
470
+ grandParent.addChild(child, child.size, parentIndex + i);
471
+ }
472
+ }
473
+ else {
474
+ var newSibling = new leafNode_1.LeafNode(sibling.view, (0, exports.orthogonal)(sibling.orientation), sibling.size);
475
+ var siblingSizing = isSiblingVisible
476
+ ? sibling.orthogonalSize
477
+ : splitview_1.Sizing.Invisible(sibling.orthogonalSize);
478
+ grandParent.addChild(newSibling, siblingSizing, parentIndex);
479
+ }
480
+ for (var i = 0; i < sizes.length; i++) {
481
+ grandParent.resizeChild(i, sizes[i]);
482
+ }
483
+ return node.view;
484
+ };
485
+ Gridview.prototype.layout = function (width, height) {
486
+ var _a = __read(this.root.orientation === splitview_1.Orientation.HORIZONTAL
487
+ ? [height, width]
488
+ : [width, height], 2), size = _a[0], orthogonalSize = _a[1];
489
+ this.root.layout(size, orthogonalSize);
490
+ };
491
+ Gridview.prototype.getNode = function (location, node, path) {
492
+ if (node === void 0) { node = this.root; }
493
+ if (path === void 0) { path = []; }
494
+ if (location.length === 0) {
495
+ return [path, node];
496
+ }
497
+ if (!(node instanceof branchNode_1.BranchNode)) {
498
+ throw new Error('Invalid location');
499
+ }
500
+ var _a = __read(location), index = _a[0], rest = _a.slice(1);
501
+ if (index < 0 || index >= node.children.length) {
502
+ throw new Error('Invalid location');
503
+ }
504
+ var child = node.children[index];
505
+ path.push(node);
506
+ return this.getNode(rest, child, path);
507
+ };
508
+ return Gridview;
509
+ }());
510
+ exports.Gridview = Gridview;
511
+ //# sourceMappingURL=gridview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridview.js","sourceRoot":"","sources":["../../../src/gridview/gridview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { SerializedGridview } from './gridview';
2
+ import { IPanelDeserializer } from '../dockview/deserializer';
3
+ import { GridviewComponentOptions } from './options';
4
+ import { BaseGrid, Direction, IBaseGrid, IGridPanelView } from './baseComponentGridview';
5
+ import { GridviewPanel, GridviewInitParameters, GridPanelViewState, IGridviewPanel } from './gridviewPanel';
6
+ import { BaseComponentOptions } from '../panel/types';
7
+ import { Orientation, Sizing } from '../splitview/splitview';
8
+ import { Event } from '../events';
9
+ import { Position } from '../dnd/droptarget';
10
+ export interface SerializedGridviewComponent {
11
+ grid: SerializedGridview<GridPanelViewState>;
12
+ activePanel?: string;
13
+ }
14
+ export interface AddComponentOptions extends BaseComponentOptions {
15
+ minimumWidth?: number;
16
+ maximumWidth?: number;
17
+ minimumHeight?: number;
18
+ maximumHeight?: number;
19
+ position?: {
20
+ direction: Direction;
21
+ referencePanel: string;
22
+ };
23
+ location?: number[];
24
+ }
25
+ export interface IGridPanelComponentView extends IGridPanelView {
26
+ init: (params: GridviewInitParameters) => void;
27
+ }
28
+ export type GridviewComponentUpdateOptions = Pick<GridviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
29
+ export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
30
+ readonly orientation: Orientation;
31
+ readonly onDidLayoutFromJSON: Event<void>;
32
+ updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
33
+ addPanel(options: AddComponentOptions): IGridviewPanel;
34
+ removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
35
+ focus(): void;
36
+ fromJSON(serializedGridview: SerializedGridviewComponent): void;
37
+ toJSON(): SerializedGridviewComponent;
38
+ movePanel(panel: IGridviewPanel, options: {
39
+ direction: Direction;
40
+ reference: string;
41
+ size?: number;
42
+ }): void;
43
+ setVisible(panel: IGridviewPanel, visible: boolean): void;
44
+ setActive(panel: IGridviewPanel): void;
45
+ }
46
+ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implements IGridviewComponent {
47
+ private _options;
48
+ private _deserializer;
49
+ private readonly _onDidLayoutfromJSON;
50
+ readonly onDidLayoutFromJSON: Event<void>;
51
+ get orientation(): Orientation;
52
+ set orientation(value: Orientation);
53
+ get options(): GridviewComponentOptions;
54
+ get deserializer(): IPanelDeserializer | undefined;
55
+ set deserializer(value: IPanelDeserializer | undefined);
56
+ constructor(element: HTMLElement, options: GridviewComponentOptions);
57
+ updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
58
+ removePanel(panel: GridviewPanel): void;
59
+ /**
60
+ * Serialize the current state of the layout
61
+ *
62
+ * @returns A JSON respresentation of the layout
63
+ */
64
+ toJSON(): SerializedGridviewComponent;
65
+ setVisible(panel: GridviewPanel, visible: boolean): void;
66
+ setActive(panel: GridviewPanel): void;
67
+ focus(): void;
68
+ fromJSON(serializedGridview: SerializedGridviewComponent): void;
69
+ clear(): void;
70
+ movePanel(panel: GridviewPanel, options: {
71
+ direction: Direction;
72
+ reference: string;
73
+ size?: number;
74
+ }): void;
75
+ addPanel(options: AddComponentOptions): IGridviewPanel;
76
+ private registerPanel;
77
+ moveGroup(referenceGroup: IGridPanelComponentView, groupId: string, target: Position): void;
78
+ removeGroup(group: GridviewPanel): void;
79
+ dispose(): void;
80
+ }