dockview 1.0.1 → 1.1.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 (221) hide show
  1. package/README.md +243 -186
  2. package/dist/cjs/api/component.api.d.ts +32 -17
  3. package/dist/cjs/api/component.api.js +155 -28
  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 +3 -3
  19. package/dist/cjs/dnd/abstractDragHandler.js +15 -14
  20. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  21. package/dist/cjs/dnd/dataTransfer.d.ts +0 -25
  22. package/dist/cjs/dnd/dataTransfer.js +1 -45
  23. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  24. package/dist/cjs/dnd/dnd.d.ts +1 -14
  25. package/dist/cjs/dnd/dnd.js +1 -79
  26. package/dist/cjs/dnd/dnd.js.map +1 -1
  27. package/dist/cjs/dnd/droptarget.d.ts +4 -5
  28. package/dist/cjs/dnd/droptarget.js +70 -46
  29. package/dist/cjs/dnd/droptarget.js.map +1 -1
  30. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
  31. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -8
  32. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  33. package/dist/cjs/dockview/defaultGroupPanelView.js +3 -1
  34. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  35. package/dist/cjs/dockview/dockviewComponent.d.ts +27 -19
  36. package/dist/cjs/dockview/dockviewComponent.js +67 -178
  37. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  38. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +2 -5
  39. package/dist/cjs/dockview/dockviewGroupPanel.js +2 -31
  40. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  41. package/dist/cjs/dockview/options.d.ts +2 -1
  42. package/dist/cjs/events.d.ts +7 -0
  43. package/dist/cjs/events.js +47 -5
  44. package/dist/cjs/events.js.map +1 -1
  45. package/dist/cjs/gridview/baseComponentGridview.d.ts +9 -0
  46. package/dist/cjs/gridview/baseComponentGridview.js +20 -15
  47. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  48. package/dist/cjs/gridview/basePanelView.d.ts +5 -8
  49. package/dist/cjs/gridview/basePanelView.js +14 -8
  50. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  51. package/dist/cjs/gridview/branchNode.js +1 -1
  52. package/dist/cjs/gridview/branchNode.js.map +1 -1
  53. package/dist/cjs/gridview/gridview.js +19 -18
  54. package/dist/cjs/gridview/gridview.js.map +1 -1
  55. package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
  56. package/dist/cjs/gridview/gridviewComponent.js +5 -0
  57. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  58. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
  59. package/dist/cjs/gridview/gridviewPanel.js +3 -6
  60. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  61. package/dist/cjs/gridview/leafNode.js +1 -0
  62. package/dist/cjs/gridview/leafNode.js.map +1 -1
  63. package/dist/cjs/groupview/groupPanel.d.ts +0 -7
  64. package/dist/cjs/groupview/groupview.d.ts +15 -8
  65. package/dist/cjs/groupview/groupview.js +38 -125
  66. package/dist/cjs/groupview/groupview.js.map +1 -1
  67. package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
  68. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  69. package/dist/cjs/groupview/panel/content.js +1 -0
  70. package/dist/cjs/groupview/panel/content.js.map +1 -1
  71. package/dist/cjs/groupview/tab.d.ts +10 -13
  72. package/dist/cjs/groupview/tab.js +22 -80
  73. package/dist/cjs/groupview/tab.js.map +1 -1
  74. package/dist/cjs/groupview/titlebar/tabsContainer.js +6 -8
  75. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  76. package/dist/cjs/index.d.ts +1 -1
  77. package/dist/cjs/lifecycle.js +2 -1
  78. package/dist/cjs/lifecycle.js.map +1 -1
  79. package/dist/cjs/panel/types.d.ts +0 -2
  80. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
  81. package/dist/cjs/paneview/draggablePaneviewPanel.js +32 -29
  82. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  83. package/dist/cjs/paneview/paneview.d.ts +1 -1
  84. package/dist/cjs/paneview/paneview.js +2 -5
  85. package/dist/cjs/paneview/paneview.js.map +1 -1
  86. package/dist/cjs/paneview/paneviewComponent.d.ts +6 -5
  87. package/dist/cjs/paneview/paneviewComponent.js +11 -16
  88. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  89. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
  90. package/dist/cjs/paneview/paneviewPanel.js +14 -2
  91. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  92. package/dist/cjs/react/deserializer.js +1 -3
  93. package/dist/cjs/react/deserializer.js.map +1 -1
  94. package/dist/cjs/react/dockview/dockview.d.ts +9 -9
  95. package/dist/cjs/react/dockview/dockview.js +14 -1
  96. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  97. package/dist/cjs/react/dockview/reactContentPart.js +4 -4
  98. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  99. package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
  100. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  101. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
  102. package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
  103. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  104. package/dist/cjs/react/gridview/view.js +2 -2
  105. package/dist/cjs/react/gridview/view.js.map +1 -1
  106. package/dist/cjs/react/index.d.ts +1 -0
  107. package/dist/cjs/react/index.js.map +1 -1
  108. package/dist/cjs/react/react.js +1 -2
  109. package/dist/cjs/react/react.js.map +1 -1
  110. package/dist/cjs/react/splitview/view.js +2 -2
  111. package/dist/cjs/react/splitview/view.js.map +1 -1
  112. package/dist/cjs/splitview/core/splitview.js +1 -1
  113. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  114. package/dist/cjs/splitview/splitviewComponent.d.ts +9 -6
  115. package/dist/cjs/splitview/splitviewComponent.js +11 -1
  116. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  117. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
  118. package/dist/cjs/splitview/splitviewPanel.js +5 -3
  119. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  120. package/dist/dockview.amd.js +480 -567
  121. package/dist/dockview.amd.min.js +2 -16
  122. package/dist/dockview.amd.min.noStyle.js +2 -16
  123. package/dist/dockview.amd.noStyle.js +479 -566
  124. package/dist/dockview.cjs.js +480 -567
  125. package/dist/dockview.esm.js +480 -563
  126. package/dist/dockview.esm.min.js +2 -16
  127. package/dist/dockview.js +480 -567
  128. package/dist/dockview.min.js +2 -16
  129. package/dist/dockview.min.noStyle.js +2 -16
  130. package/dist/dockview.noStyle.js +479 -566
  131. package/dist/esm/api/component.api.d.ts +32 -17
  132. package/dist/esm/api/component.api.js +71 -20
  133. package/dist/esm/api/gridviewPanelApi.js +1 -0
  134. package/dist/esm/api/groupPanelApi.d.ts +11 -14
  135. package/dist/esm/api/groupPanelApi.js +18 -13
  136. package/dist/esm/api/panelApi.d.ts +0 -25
  137. package/dist/esm/api/panelApi.js +1 -20
  138. package/dist/esm/api/paneviewPanelApi.js +1 -0
  139. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  140. package/dist/esm/api/splitviewPanelApi.js +1 -5
  141. package/dist/esm/dnd/abstractDragHandler.d.ts +3 -3
  142. package/dist/esm/dnd/abstractDragHandler.js +9 -8
  143. package/dist/esm/dnd/dataTransfer.d.ts +0 -25
  144. package/dist/esm/dnd/dataTransfer.js +0 -40
  145. package/dist/esm/dnd/dnd.d.ts +1 -14
  146. package/dist/esm/dnd/dnd.js +1 -69
  147. package/dist/esm/dnd/droptarget.d.ts +4 -5
  148. package/dist/esm/dnd/droptarget.js +70 -46
  149. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
  150. package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
  151. package/dist/esm/dockview/defaultGroupPanelView.js +3 -1
  152. package/dist/esm/dockview/dockviewComponent.d.ts +27 -19
  153. package/dist/esm/dockview/dockviewComponent.js +54 -118
  154. package/dist/esm/dockview/dockviewGroupPanel.d.ts +2 -5
  155. package/dist/esm/dockview/dockviewGroupPanel.js +2 -30
  156. package/dist/esm/dockview/options.d.ts +2 -1
  157. package/dist/esm/events.d.ts +7 -0
  158. package/dist/esm/events.js +20 -3
  159. package/dist/esm/gridview/baseComponentGridview.d.ts +9 -0
  160. package/dist/esm/gridview/baseComponentGridview.js +21 -16
  161. package/dist/esm/gridview/basePanelView.d.ts +5 -8
  162. package/dist/esm/gridview/basePanelView.js +10 -8
  163. package/dist/esm/gridview/branchNode.js +1 -1
  164. package/dist/esm/gridview/gridview.js +16 -16
  165. package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
  166. package/dist/esm/gridview/gridviewComponent.js +5 -0
  167. package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
  168. package/dist/esm/gridview/gridviewPanel.js +3 -6
  169. package/dist/esm/gridview/leafNode.js +1 -0
  170. package/dist/esm/groupview/groupPanel.d.ts +0 -7
  171. package/dist/esm/groupview/groupview.d.ts +15 -8
  172. package/dist/esm/groupview/groupview.js +24 -58
  173. package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
  174. package/dist/esm/groupview/panel/content.js +1 -0
  175. package/dist/esm/groupview/tab.d.ts +10 -13
  176. package/dist/esm/groupview/tab.js +17 -24
  177. package/dist/esm/groupview/titlebar/tabsContainer.js +6 -8
  178. package/dist/esm/index.d.ts +1 -1
  179. package/dist/esm/lifecycle.js +2 -1
  180. package/dist/esm/panel/types.d.ts +0 -2
  181. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  182. package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
  183. package/dist/esm/paneview/paneview.d.ts +1 -1
  184. package/dist/esm/paneview/paneview.js +2 -5
  185. package/dist/esm/paneview/paneviewComponent.d.ts +6 -5
  186. package/dist/esm/paneview/paneviewComponent.js +11 -8
  187. package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
  188. package/dist/esm/paneview/paneviewPanel.js +10 -2
  189. package/dist/esm/react/deserializer.js +1 -3
  190. package/dist/esm/react/dockview/dockview.d.ts +9 -9
  191. package/dist/esm/react/dockview/dockview.js +15 -2
  192. package/dist/esm/react/dockview/reactContentPart.js +4 -4
  193. package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
  194. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
  195. package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
  196. package/dist/esm/react/gridview/view.js +2 -2
  197. package/dist/esm/react/index.d.ts +1 -0
  198. package/dist/esm/react/react.js +1 -2
  199. package/dist/esm/react/splitview/view.js +2 -2
  200. package/dist/esm/splitview/core/splitview.js +1 -1
  201. package/dist/esm/splitview/splitviewComponent.d.ts +9 -6
  202. package/dist/esm/splitview/splitviewComponent.js +10 -2
  203. package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
  204. package/dist/esm/splitview/splitviewPanel.js +5 -3
  205. package/dist/styles/dockview.css +5 -9
  206. package/package.json +4 -4
  207. package/dist/cjs/functions.d.ts +0 -1
  208. package/dist/cjs/functions.js +0 -42
  209. package/dist/cjs/functions.js.map +0 -1
  210. package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
  211. package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
  212. package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
  213. package/dist/cjs/json.d.ts +0 -1
  214. package/dist/cjs/json.js +0 -14
  215. package/dist/cjs/json.js.map +0 -1
  216. package/dist/esm/functions.d.ts +0 -1
  217. package/dist/esm/functions.js +0 -8
  218. package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
  219. package/dist/esm/groupview/panel/hostedPanel.js +0 -43
  220. package/dist/esm/json.d.ts +0 -1
  221. package/dist/esm/json.js +0 -9
@@ -55,7 +55,9 @@ var DefaultGroupPanelView = /** @class */ (function () {
55
55
  this.tab.init(params);
56
56
  };
57
57
  DefaultGroupPanelView.prototype.updateParentGroup = function (group, isPanelVisible) {
58
- // TODO
58
+ var _a;
59
+ this._content.updateParentGroup(group, isPanelVisible);
60
+ (_a = this._tab) === null || _a === void 0 ? void 0 : _a.updateParentGroup(group, isPanelVisible);
59
61
  };
60
62
  DefaultGroupPanelView.prototype.layout = function (width, height) {
61
63
  this.content.layout(width, height);
@@ -1 +1 @@
1
- {"version":3,"file":"defaultGroupPanelView.js","sourceRoot":"","sources":["../../../src/dockview/defaultGroupPanelView.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAqE;AAsBrE;IAiBI,+BAAY,SAIX;;QACG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,MAAA,SAAS,CAAC,GAAG,mCAAI,IAAI,uBAAU,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ;YACT,SAAS,CAAC,OAAO;gBACjB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC;wBACI,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;wBAC7B,OAAO,EAAE;4BACL,EAAE;wBACN,CAAC;qBACJ;oBACH,CAAC,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IA7BD,sBAAI,0CAAO;aAAX;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,sCAAG;aAAP;YACI,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,0CAAO;aAAX;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAqBD,oCAAI,GAAJ,UAAK,MAAoC;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,uBAAM,MAAM,KAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAG,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,iDAAiB,GAAjB,UAAkB,KAAqB,EAAE,cAAuB;QAC5D,OAAO;IACX,CAAC;IAED,sCAAM,GAAN,UAAO,KAAa,EAAE,MAAc;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,sCAAM,GAAN,UAAO,KAA4B;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,sCAAM,GAAN;QACI,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,GAAG,EACC,IAAI,CAAC,GAAG,CAAC,aAAa,YAAY,uBAAU;gBACxC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;SAC9B,CAAC;IACN,CAAC;IAED,uCAAO,GAAP;;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IACL,4BAAC;AAAD,CAAC,AArED,IAqEC;AArEY,sDAAqB"}
1
+ {"version":3,"file":"defaultGroupPanelView.js","sourceRoot":"","sources":["../../../src/dockview/defaultGroupPanelView.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAqE;AAsBrE;IAiBI,+BAAY,SAIX;;QACG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,MAAA,SAAS,CAAC,GAAG,mCAAI,IAAI,uBAAU,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ;YACT,SAAS,CAAC,OAAO;gBACjB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC;wBACI,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;wBAC7B,OAAO,EAAE;4BACL,EAAE;wBACN,CAAC;qBACJ;oBACH,CAAC,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IA7BD,sBAAI,0CAAO;aAAX;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,sCAAG;aAAP;YACI,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;;;OAAA;IAED,sBAAI,0CAAO;aAAX;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAqBD,oCAAI,GAAJ,UAAK,MAAoC;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,uBAAM,MAAM,KAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAG,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,iDAAiB,GAAjB,UAAkB,KAAqB,EAAE,cAAuB;;QAC5D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACvD,MAAA,IAAI,CAAC,IAAI,0CAAE,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IAED,sCAAM,GAAN,UAAO,KAAa,EAAE,MAAc;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,sCAAM,GAAN,UAAO,KAA4B;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,sCAAM,GAAN;QACI,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,GAAG,EACC,IAAI,CAAC,GAAG,CAAC,aAAa,YAAY,uBAAU;gBACxC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;SAC9B,CAAC;IACN,CAAC;IAED,uCAAO,GAAP;;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IACL,4BAAC;AAAD,CAAC,AAtED,IAsEC;AAtEY,sDAAqB"}
@@ -6,9 +6,10 @@ import { IWatermarkRenderer } from '../groupview/types';
6
6
  import { IPanelDeserializer } from './deserializer';
7
7
  import { AddGroupOptions, AddPanelOptions, DockviewOptions as DockviewComponentOptions, MovementOptions, TabContextMenuEvent } from './options';
8
8
  import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
9
+ import { DockviewApi } from '../api/component.api';
9
10
  import { LayoutMouseEvent } from '../groupview/tab';
10
11
  import { Orientation } from '../splitview/core/splitview';
11
- import { GroupOptions, GroupPanelViewState } from '../groupview/groupview';
12
+ import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from '../groupview/groupview';
12
13
  import { GroupviewPanel } from '../groupview/groupviewPanel';
13
14
  export interface PanelReference {
14
15
  update: (event: {
@@ -33,11 +34,15 @@ export interface SerializedDockview {
33
34
  tabHeight?: number;
34
35
  };
35
36
  }
36
- export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents'>;
37
+ export declare type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay'>;
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,7 +110,7 @@ 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
116
  removePanel(panel: IGroupPanel): void;
@@ -107,15 +120,10 @@ export declare class DockviewComponent extends BaseGrid<GroupviewPanel> implemen
107
120
  moveGroupOrPanel(referenceGroup: GroupviewPanel, groupId: string, itemId: string, target: Position, index?: number): void;
108
121
  doSetGroupActive(group: GroupviewPanel | undefined, skipFocus?: boolean): void;
109
122
  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
123
  private _addPanel;
116
124
  private createContentComponent;
117
125
  private createTabComponent;
118
126
  private addPanelToNewGroup;
119
127
  private findGroup;
120
- private addDirtyPanel;
128
+ dispose(): void;
121
129
  }
@@ -25,42 +25,6 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  return __assign.apply(this, arguments);
27
27
  };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (_) try {
44
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
28
  var __values = (this && this.__values) || function(o) {
65
29
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
66
30
  if (m) return m.call(o);
@@ -106,7 +70,6 @@ var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
106
70
  var lifecycle_1 = require("../lifecycle");
107
71
  var events_1 = require("../events");
108
72
  var watermark_1 = require("./components/watermark/watermark");
109
- var functions_1 = require("../functions");
110
73
  var math_1 = require("../math");
111
74
  var deserializer_1 = require("./deserializer");
112
75
  var componentFactory_1 = require("../panel/componentFactory");
@@ -127,15 +90,22 @@ var DockviewComponent = /** @class */ (function (_super) {
127
90
  orientation: options.orientation || splitview_1.Orientation.HORIZONTAL,
128
91
  styles: options.styles,
129
92
  }) || this;
130
- _this._panels = new Map();
131
- _this.dirtyPanels = new Set();
132
- _this.debouncedDeque = (0, functions_1.debounce)(_this.syncConfigs.bind(_this), 5000);
133
93
  // events
134
94
  _this._onTabInteractionEvent = new events_1.Emitter();
135
95
  _this.onTabInteractionEvent = _this._onTabInteractionEvent.event;
136
96
  _this._onTabContextMenu = new events_1.Emitter();
137
97
  _this.onTabContextMenu = _this._onTabContextMenu.event;
138
- _this.panelState = {};
98
+ _this._onDidDrop = new events_1.Emitter();
99
+ _this.onDidDrop = _this._onDidDrop.event;
100
+ _this._onDidRemovePanel = new events_1.Emitter();
101
+ _this.onDidRemovePanel = _this._onDidRemovePanel.event;
102
+ _this._onDidAddPanel = new events_1.Emitter();
103
+ _this.onDidAddPanel = _this._onDidAddPanel.event;
104
+ _this._onDidLayoutfromJSON = new events_1.Emitter();
105
+ _this.onDidLayoutfromJSON = _this._onDidLayoutfromJSON.event;
106
+ _this._onDidActivePanelChange = new events_1.Emitter();
107
+ _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
108
+ _this.addDisposables(_this._onTabInteractionEvent, _this._onTabContextMenu, _this._onDidDrop);
139
109
  _this._options = options;
140
110
  if (!_this.options.components) {
141
111
  _this.options.components = {};
@@ -158,14 +128,14 @@ var DockviewComponent = /** @class */ (function (_super) {
158
128
  }
159
129
  Object.defineProperty(DockviewComponent.prototype, "totalPanels", {
160
130
  get: function () {
161
- return this._panels.size;
131
+ return this.panels.length;
162
132
  },
163
133
  enumerable: false,
164
134
  configurable: true
165
135
  });
166
136
  Object.defineProperty(DockviewComponent.prototype, "panels", {
167
137
  get: function () {
168
- return Array.from(this._panels.values()).map(function (_) { return _.value; });
138
+ return this.groups.flatMap(function (group) { return group.model.panels; });
169
139
  },
170
140
  enumerable: false,
171
141
  configurable: true
@@ -214,10 +184,6 @@ var DockviewComponent = /** @class */ (function (_super) {
214
184
  DockviewComponent.prototype.updateOptions = function (options) {
215
185
  var hasOrientationChanged = typeof options.orientation === 'string' &&
216
186
  this.options.orientation !== options.orientation;
217
- // TODO support style update
218
- // const hasStylesChanged =
219
- // typeof options.styles === 'object' &&
220
- // this.options.styles !== options.styles;
221
187
  this._options = __assign(__assign({}, this.options), options);
222
188
  if (hasOrientationChanged) {
223
189
  this.gridview.orientation = options.orientation;
@@ -229,8 +195,7 @@ var DockviewComponent = /** @class */ (function (_super) {
229
195
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
230
196
  };
231
197
  DockviewComponent.prototype.getGroupPanel = function (id) {
232
- var _a;
233
- return (_a = this._panels.get(id)) === null || _a === void 0 ? void 0 : _a.value;
198
+ return this.panels.find(function (panel) { return panel.id === id; });
234
199
  };
235
200
  DockviewComponent.prototype.setActivePanel = function (panel) {
236
201
  if (!panel.group) {
@@ -281,39 +246,16 @@ var DockviewComponent = /** @class */ (function (_super) {
281
246
  this.doSetGroupActive(next);
282
247
  }
283
248
  };
284
- DockviewComponent.prototype.registerPanel = function (panel) {
285
- var _this = this;
286
- if (this._panels.has(panel.id)) {
287
- throw new Error("panel ".concat(panel.id, " already exists"));
288
- }
289
- var disposable = new lifecycle_1.CompositeDisposable(panel.onDidStateChange(function () { return _this.addDirtyPanel(panel); }));
290
- this._panels.set(panel.id, { value: panel, disposable: disposable });
291
- };
292
- DockviewComponent.prototype.unregisterPanel = function (panel) {
293
- if (!this._panels.has(panel.id)) {
294
- throw new Error("panel ".concat(panel.id, " doesn't exist"));
295
- }
296
- var item = this._panels.get(panel.id);
297
- if (item) {
298
- item.disposable.dispose();
299
- item.value.dispose();
300
- }
301
- this._panels.delete(panel.id);
302
- };
303
249
  /**
304
250
  * Serialize the current state of the layout
305
251
  *
306
252
  * @returns A JSON respresentation of the layout
307
253
  */
308
254
  DockviewComponent.prototype.toJSON = function () {
309
- var _this = this;
310
255
  var _a;
311
- this.syncConfigs();
312
256
  var data = this.gridview.serialize();
313
- var panels = Array.from(this._panels.values()).reduce(function (collection, panel) {
314
- if (!_this.panelState[panel.value.id]) {
315
- collection[panel.value.id] = panel.value.toJSON();
316
- }
257
+ var panels = this.panels.reduce(function (collection, panel) {
258
+ collection[panel.id] = panel.toJSON();
317
259
  return collection;
318
260
  }, {});
319
261
  return {
@@ -326,11 +268,9 @@ var DockviewComponent = /** @class */ (function (_super) {
326
268
  DockviewComponent.prototype.fromJSON = function (data) {
327
269
  var _this = this;
328
270
  this.gridview.clear();
329
- this._panels.forEach(function (panel) {
330
- panel.disposable.dispose();
331
- panel.value.dispose();
271
+ this.panels.forEach(function (panel) {
272
+ panel.dispose();
332
273
  });
333
- this._panels.clear();
334
274
  this._groups.clear();
335
275
  if (!this.deserializer) {
336
276
  throw new Error('invalid deserializer');
@@ -345,9 +285,7 @@ var DockviewComponent = /** @class */ (function (_super) {
345
285
  this.gridview.deserialize(grid, new deserializer_1.DefaultDeserializer(this, {
346
286
  createPanel: function (id) {
347
287
  var panelData = panels[id];
348
- var panel = _this.deserializer.fromJSON(panelData);
349
- _this.registerPanel(panel);
350
- return panel;
288
+ return _this.deserializer.fromJSON(panelData);
351
289
  },
352
290
  }));
353
291
  if (typeof activeGroup === 'string') {
@@ -358,58 +296,34 @@ var DockviewComponent = /** @class */ (function (_super) {
358
296
  }
359
297
  this.gridview.layout(this.width, this.height);
360
298
  this._onGridEvent.fire({ kind: baseComponentGridview_1.GroupChangeKind.LAYOUT_FROM_JSON });
299
+ this._onDidLayoutfromJSON.fire();
361
300
  };
362
301
  DockviewComponent.prototype.closeAllGroups = function () {
363
- return __awaiter(this, void 0, void 0, function () {
364
- var _a, _b, entry, _c, _, group, didCloseAll, e_1_1;
365
- var e_1, _d;
366
- return __generator(this, function (_e) {
367
- switch (_e.label) {
368
- case 0:
369
- _e.trys.push([0, 5, 6, 7]);
370
- _a = __values(this._groups.entries()), _b = _a.next();
371
- _e.label = 1;
372
- case 1:
373
- if (!!_b.done) return [3 /*break*/, 4];
374
- entry = _b.value;
375
- _c = __read(entry, 2), _ = _c[0], group = _c[1];
376
- return [4 /*yield*/, group.value.model.closeAllPanels()];
377
- case 2:
378
- didCloseAll = _e.sent();
379
- if (!didCloseAll) {
380
- return [2 /*return*/, false];
381
- }
382
- _e.label = 3;
383
- case 3:
384
- _b = _a.next();
385
- return [3 /*break*/, 1];
386
- case 4: return [3 /*break*/, 7];
387
- case 5:
388
- e_1_1 = _e.sent();
389
- e_1 = { error: e_1_1 };
390
- return [3 /*break*/, 7];
391
- case 6:
392
- try {
393
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
394
- }
395
- finally { if (e_1) throw e_1.error; }
396
- return [7 /*endfinally*/];
397
- case 7: return [2 /*return*/, true];
398
- }
399
- });
400
- });
302
+ var e_1, _a;
303
+ try {
304
+ for (var _b = __values(this._groups.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
305
+ var entry = _c.value;
306
+ var _d = __read(entry, 2), _ = _d[0], group = _d[1];
307
+ group.value.model.closeAllPanels();
308
+ }
309
+ }
310
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
311
+ finally {
312
+ try {
313
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
314
+ }
315
+ finally { if (e_1) throw e_1.error; }
316
+ }
401
317
  };
402
318
  DockviewComponent.prototype.fireMouseEvent = function (event) {
403
- switch (event.kind) {
404
- case tab_1.MouseEventKind.CONTEXT_MENU:
405
- if (event.tab && event.panel) {
406
- this._onTabContextMenu.fire({
407
- event: event.event,
408
- api: this._api,
409
- panel: event.panel,
410
- });
411
- }
412
- break;
319
+ if (event.kind === tab_1.MouseEventKind.CONTEXT_MENU) {
320
+ if (event.tab && event.panel) {
321
+ this._onTabContextMenu.fire({
322
+ event: event.event,
323
+ api: this._api,
324
+ panel: event.panel,
325
+ });
326
+ }
413
327
  }
414
328
  };
415
329
  DockviewComponent.prototype.addPanel = function (options) {
@@ -443,7 +357,6 @@ var DockviewComponent = /** @class */ (function (_super) {
443
357
  return panel;
444
358
  };
445
359
  DockviewComponent.prototype.removePanel = function (panel) {
446
- this.unregisterPanel(panel);
447
360
  var group = panel.group;
448
361
  if (!group) {
449
362
  throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
@@ -462,10 +375,9 @@ var DockviewComponent = /** @class */ (function (_super) {
462
375
  : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
463
376
  };
464
377
  DockviewComponent.prototype.addEmptyGroup = function (options) {
465
- var _a;
466
378
  var group = this.createGroup();
467
379
  if (options) {
468
- var referencePanel = (_a = this._panels.get(options.referencePanel)) === null || _a === void 0 ? void 0 : _a.value;
380
+ var referencePanel = this.panels.find(function (panel) { return panel.id === options.referencePanel; });
469
381
  if (!referencePanel) {
470
382
  throw new Error("reference panel ".concat(options.referencePanel, " does not exist"));
471
383
  }
@@ -495,13 +407,13 @@ var DockviewComponent = /** @class */ (function (_super) {
495
407
  _super.prototype.removeGroup.call(this, group);
496
408
  };
497
409
  DockviewComponent.prototype.moveGroupOrPanel = function (referenceGroup, groupId, itemId, target, index) {
498
- var _a, _b, _c;
410
+ var _a;
499
411
  var sourceGroup = groupId
500
412
  ? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
501
413
  : undefined;
502
414
  if (!target || target === droptarget_1.Position.Center) {
503
415
  var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
504
- ((_b = this._panels.get(itemId)) === null || _b === void 0 ? void 0 : _b.value);
416
+ this.panels.find(function (panel) { return panel.id === itemId; });
505
417
  if (!groupItem) {
506
418
  throw new Error("No panel with id ".concat(itemId));
507
419
  }
@@ -514,9 +426,9 @@ var DockviewComponent = /** @class */ (function (_super) {
514
426
  var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
515
427
  var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
516
428
  if (sourceGroup && sourceGroup.model.size < 2) {
517
- var _d = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _d[0], to = _d[1];
429
+ var _b = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _b[0], to = _b[1];
518
430
  var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
519
- var _e = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _e[0], from = _e[1];
431
+ var _c = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _c[0], from = _c[1];
520
432
  if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
521
433
  // special case when 'swapping' two views within same grid location
522
434
  // if a group has one tab - we are essentially moving the 'group'
@@ -537,7 +449,7 @@ var DockviewComponent = /** @class */ (function (_super) {
537
449
  }
538
450
  else {
539
451
  var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
540
- ((_c = this._panels.get(itemId)) === null || _c === void 0 ? void 0 : _c.value);
452
+ this.panels.find(function (panel) { return panel.id === itemId; });
541
453
  if (!groupItem) {
542
454
  throw new Error("No panel with id ".concat(itemId));
543
455
  }
@@ -547,7 +459,7 @@ var DockviewComponent = /** @class */ (function (_super) {
547
459
  }
548
460
  };
549
461
  DockviewComponent.prototype.doSetGroupActive = function (group, skipFocus) {
550
- var _a, _b;
462
+ var _a, _b, _c;
551
463
  var isGroupAlreadyFocused = this._activeGroup === group;
552
464
  _super.prototype.doSetGroupActive.call(this, group, skipFocus);
553
465
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
@@ -555,6 +467,7 @@ var DockviewComponent = /** @class */ (function (_super) {
555
467
  kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
556
468
  panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
557
469
  });
470
+ this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
558
471
  }
559
472
  };
560
473
  DockviewComponent.prototype.createGroup = function (options) {
@@ -581,6 +494,8 @@ var DockviewComponent = /** @class */ (function (_super) {
581
494
  var disposable = new lifecycle_1.CompositeDisposable(view.model.onMove(function (event) {
582
495
  var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
583
496
  _this.moveGroupOrPanel(view, groupId, itemId, target, index);
497
+ }), view.model.onDidDrop(function (event) {
498
+ _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api }));
584
499
  }), view.model.onDidGroupChange(function (event) {
585
500
  switch (event.kind) {
586
501
  case groupview_1.GroupChangeKind2.ADD_PANEL:
@@ -588,24 +503,25 @@ var DockviewComponent = /** @class */ (function (_super) {
588
503
  kind: baseComponentGridview_1.GroupChangeKind.ADD_PANEL,
589
504
  panel: event.panel,
590
505
  });
591
- break;
592
- case groupview_1.GroupChangeKind2.GROUP_ACTIVE:
593
- _this._onGridEvent.fire({
594
- kind: baseComponentGridview_1.GroupChangeKind.GROUP_ACTIVE,
595
- panel: event.panel,
596
- });
506
+ if (event.panel) {
507
+ _this._onDidAddPanel.fire(event.panel);
508
+ }
597
509
  break;
598
510
  case groupview_1.GroupChangeKind2.REMOVE_PANEL:
599
511
  _this._onGridEvent.fire({
600
512
  kind: baseComponentGridview_1.GroupChangeKind.REMOVE_PANEL,
601
513
  panel: event.panel,
602
514
  });
515
+ if (event.panel) {
516
+ _this._onDidRemovePanel.fire(event.panel);
517
+ }
603
518
  break;
604
519
  case groupview_1.GroupChangeKind2.PANEL_ACTIVE:
605
520
  _this._onGridEvent.fire({
606
521
  kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
607
522
  panel: event.panel,
608
523
  });
524
+ _this._onDidActivePanelChange.fire(event.panel);
609
525
  break;
610
526
  }
611
527
  }));
@@ -619,47 +535,18 @@ var DockviewComponent = /** @class */ (function (_super) {
619
535
  }
620
536
  return view;
621
537
  };
622
- DockviewComponent.prototype.dispose = function () {
623
- _super.prototype.dispose.call(this);
624
- this._onGridEvent.dispose();
625
- };
626
- /**
627
- * Ensure the local copy of the layout state is up-to-date
628
- */
629
- DockviewComponent.prototype.syncConfigs = function () {
630
- var _this = this;
631
- var dirtyPanels = Array.from(this.dirtyPanels);
632
- if (dirtyPanels.length === 0) {
633
- //
634
- }
635
- this.dirtyPanels.clear();
636
- var partialPanelState = dirtyPanels
637
- .map(function (panel) { return _this._panels.get(panel.id); })
638
- .filter(function (_) { return !!_; })
639
- .reduce(function (collection, panel) {
640
- collection[panel.value.id] = panel.value.toJSON();
641
- return collection;
642
- }, {});
643
- this.panelState = __assign(__assign({}, this.panelState), partialPanelState);
644
- dirtyPanels
645
- .filter(function (p) { return _this._panels.has(p.id); })
646
- .forEach(function (panel) {
647
- panel.setDirty(false);
648
- });
649
- };
650
538
  DockviewComponent.prototype._addPanel = function (options) {
651
539
  var view = new defaultGroupPanelView_1.DefaultGroupPanelView({
652
540
  content: this.createContentComponent(options.id, options.component),
653
541
  tab: this.createTabComponent(options.id, options.tabComponent),
654
542
  });
655
- var panel = new dockviewGroupPanel_1.DockviewGroupPanel(options.id, this._api);
543
+ var panel = new dockviewGroupPanel_1.DockviewGroupPanel(options.id, this, this._api);
656
544
  panel.init({
657
545
  view: view,
658
546
  title: options.title || options.id,
659
547
  suppressClosable: options === null || options === void 0 ? void 0 : options.suppressClosable,
660
548
  params: (options === null || options === void 0 ? void 0 : options.params) || {},
661
549
  });
662
- this.registerPanel(panel);
663
550
  return panel;
664
551
  };
665
552
  DockviewComponent.prototype.createContentComponent = function (id, componentName) {
@@ -682,10 +569,12 @@ var DockviewComponent = /** @class */ (function (_super) {
682
569
  return group.value.model.containsPanel(panel);
683
570
  })) === null || _a === void 0 ? void 0 : _a.value;
684
571
  };
685
- DockviewComponent.prototype.addDirtyPanel = function (panel) {
686
- this.dirtyPanels.add(panel);
687
- panel.setDirty(true);
688
- this.debouncedDeque();
572
+ DockviewComponent.prototype.dispose = function () {
573
+ _super.prototype.dispose.call(this);
574
+ this._onDidActivePanelChange.dispose();
575
+ this._onDidAddPanel.dispose();
576
+ this._onDidRemovePanel.dispose();
577
+ this._onDidLayoutfromJSON.dispose();
689
578
  };
690
579
  return DockviewComponent;
691
580
  }(baseComponentGridview_1.BaseGrid));