dockview 1.1.0 → 1.3.1

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 (162) hide show
  1. package/dist/cjs/api/component.api.d.ts +17 -15
  2. package/dist/cjs/api/component.api.js +22 -22
  3. package/dist/cjs/api/component.api.js.map +1 -1
  4. package/dist/cjs/dnd/abstractDragHandler.d.ts +1 -1
  5. package/dist/cjs/dnd/abstractDragHandler.js +2 -3
  6. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  7. package/dist/cjs/dnd/droptarget.js +3 -3
  8. package/dist/cjs/dnd/droptarget.js.map +1 -1
  9. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +1 -1
  10. package/dist/cjs/dockview/components/tab/defaultTab.js +1 -1
  11. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  12. package/dist/cjs/dockview/components/watermark/watermark.d.ts +3 -3
  13. package/dist/cjs/dockview/components/watermark/watermark.js +4 -4
  14. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  15. package/dist/cjs/dockview/deserializer.js.map +1 -1
  16. package/dist/cjs/dockview/dockviewComponent.d.ts +8 -5
  17. package/dist/cjs/dockview/dockviewComponent.js +60 -41
  18. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  19. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -0
  20. package/dist/cjs/dockview/dockviewGroupPanel.js +8 -0
  21. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  22. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -20
  23. package/dist/cjs/gridview/baseComponentGridview.js +35 -43
  24. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  25. package/dist/cjs/gridview/basePanelView.js +2 -0
  26. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  27. package/dist/cjs/gridview/branchNode.js +2 -2
  28. package/dist/cjs/gridview/branchNode.js.map +1 -1
  29. package/dist/cjs/gridview/gridview.js +3 -2
  30. package/dist/cjs/gridview/gridview.js.map +1 -1
  31. package/dist/cjs/gridview/gridviewComponent.d.ts +3 -9
  32. package/dist/cjs/gridview/gridviewComponent.js +30 -18
  33. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  34. package/dist/cjs/gridview/leafNode.js +1 -1
  35. package/dist/cjs/gridview/leafNode.js.map +1 -1
  36. package/dist/cjs/groupview/groupPanel.d.ts +1 -0
  37. package/dist/cjs/groupview/groupview.d.ts +3 -2
  38. package/dist/cjs/groupview/groupview.js +15 -6
  39. package/dist/cjs/groupview/groupview.js.map +1 -1
  40. package/dist/cjs/groupview/panel/content.d.ts +1 -1
  41. package/dist/cjs/groupview/panel/content.js +1 -1
  42. package/dist/cjs/groupview/panel/content.js.map +1 -1
  43. package/dist/cjs/hostedContainer.js +2 -2
  44. package/dist/cjs/hostedContainer.js.map +1 -1
  45. package/dist/cjs/index.d.ts +2 -2
  46. package/dist/cjs/index.js +8 -4
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/panel/types.d.ts +1 -0
  49. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
  50. package/dist/cjs/paneview/defaultPaneviewHeader.js +1 -1
  51. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
  52. package/dist/cjs/paneview/draggablePaneviewPanel.js +1 -1
  53. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  54. package/dist/cjs/paneview/paneview.d.ts +3 -1
  55. package/dist/cjs/paneview/paneview.js +12 -6
  56. package/dist/cjs/paneview/paneview.js.map +1 -1
  57. package/dist/cjs/paneview/paneviewComponent.d.ts +12 -5
  58. package/dist/cjs/paneview/paneviewComponent.js +68 -16
  59. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  60. package/dist/cjs/react/dockview/components.js +5 -1
  61. package/dist/cjs/react/dockview/components.js.map +1 -1
  62. package/dist/cjs/react/dockview/dockview.js +32 -10
  63. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  64. package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -2
  65. package/dist/cjs/react/dockview/reactContentPart.js +2 -13
  66. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  67. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
  68. package/dist/cjs/react/dockview/reactHeaderPart.js +2 -2
  69. package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
  70. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +2 -2
  71. package/dist/cjs/react/dockview/reactWatermarkPart.js +2 -2
  72. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
  73. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  74. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +2 -2
  75. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
  76. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  77. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +2 -2
  78. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +1 -1
  79. package/dist/cjs/react/gridview/gridview.js +9 -2
  80. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  81. package/dist/cjs/react/gridview/view.d.ts +3 -2
  82. package/dist/cjs/react/gridview/view.js.map +1 -1
  83. package/dist/cjs/react/index.js +5 -1
  84. package/dist/cjs/react/index.js.map +1 -1
  85. package/dist/cjs/react/paneview/paneview.js +6 -2
  86. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  87. package/dist/cjs/react/react.js +5 -1
  88. package/dist/cjs/react/react.js.map +1 -1
  89. package/dist/cjs/react/splitview/splitview.js +8 -2
  90. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  91. package/dist/cjs/splitview/core/splitview.js +1 -1
  92. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  93. package/dist/cjs/splitview/splitviewComponent.d.ts +5 -3
  94. package/dist/cjs/splitview/splitviewComponent.js +55 -16
  95. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  96. package/dist/dockview.amd.js +316 -312
  97. package/dist/dockview.amd.min.js +2 -2
  98. package/dist/dockview.amd.min.noStyle.js +2 -2
  99. package/dist/dockview.amd.noStyle.js +315 -311
  100. package/dist/dockview.cjs.js +316 -312
  101. package/dist/dockview.esm.js +316 -306
  102. package/dist/dockview.esm.min.js +2 -2
  103. package/dist/dockview.js +316 -312
  104. package/dist/dockview.min.js +2 -2
  105. package/dist/dockview.min.noStyle.js +2 -2
  106. package/dist/dockview.noStyle.js +315 -311
  107. package/dist/esm/api/component.api.d.ts +17 -15
  108. package/dist/esm/api/component.api.js +14 -14
  109. package/dist/esm/dnd/abstractDragHandler.d.ts +1 -1
  110. package/dist/esm/dnd/abstractDragHandler.js +2 -3
  111. package/dist/esm/dnd/droptarget.js +3 -3
  112. package/dist/esm/dockview/components/tab/defaultTab.d.ts +1 -1
  113. package/dist/esm/dockview/components/tab/defaultTab.js +1 -1
  114. package/dist/esm/dockview/components/watermark/watermark.d.ts +3 -3
  115. package/dist/esm/dockview/components/watermark/watermark.js +4 -4
  116. package/dist/esm/dockview/dockviewComponent.d.ts +8 -5
  117. package/dist/esm/dockview/dockviewComponent.js +34 -38
  118. package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -0
  119. package/dist/esm/dockview/dockviewGroupPanel.js +4 -0
  120. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -20
  121. package/dist/esm/gridview/baseComponentGridview.js +13 -43
  122. package/dist/esm/gridview/basePanelView.js +2 -0
  123. package/dist/esm/gridview/branchNode.js +2 -2
  124. package/dist/esm/gridview/gridview.js +2 -1
  125. package/dist/esm/gridview/gridviewComponent.d.ts +3 -9
  126. package/dist/esm/gridview/gridviewComponent.js +9 -19
  127. package/dist/esm/groupview/groupPanel.d.ts +1 -0
  128. package/dist/esm/groupview/groupview.d.ts +3 -2
  129. package/dist/esm/groupview/groupview.js +8 -3
  130. package/dist/esm/groupview/panel/content.d.ts +1 -1
  131. package/dist/esm/groupview/panel/content.js +1 -1
  132. package/dist/esm/hostedContainer.js +2 -2
  133. package/dist/esm/index.d.ts +2 -2
  134. package/dist/esm/index.js +1 -2
  135. package/dist/esm/panel/types.d.ts +1 -0
  136. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
  137. package/dist/esm/paneview/defaultPaneviewHeader.js +1 -1
  138. package/dist/esm/paneview/draggablePaneviewPanel.js +1 -1
  139. package/dist/esm/paneview/paneview.d.ts +3 -1
  140. package/dist/esm/paneview/paneview.js +9 -5
  141. package/dist/esm/paneview/paneviewComponent.d.ts +12 -5
  142. package/dist/esm/paneview/paneviewComponent.js +34 -15
  143. package/dist/esm/react/dockview/dockview.js +27 -9
  144. package/dist/esm/react/dockview/reactContentPart.d.ts +2 -2
  145. package/dist/esm/react/dockview/reactContentPart.js +2 -13
  146. package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
  147. package/dist/esm/react/dockview/reactHeaderPart.js +2 -2
  148. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +2 -2
  149. package/dist/esm/react/dockview/reactWatermarkPart.js +2 -2
  150. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -2
  151. package/dist/esm/react/dockview/v2/reactContentRenderer.js +2 -2
  152. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
  153. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +2 -2
  154. package/dist/esm/react/gridview/gridview.js +4 -1
  155. package/dist/esm/react/gridview/view.d.ts +3 -2
  156. package/dist/esm/react/paneview/paneview.js +1 -1
  157. package/dist/esm/react/splitview/splitview.js +3 -1
  158. package/dist/esm/splitview/core/splitview.js +1 -1
  159. package/dist/esm/splitview/splitviewComponent.d.ts +5 -3
  160. package/dist/esm/splitview/splitviewComponent.js +22 -15
  161. package/dist/styles/dockview.css +10 -10
  162. package/package.json +13 -13
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.1.0
3
+ * @version 1.3.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -34,9 +34,79 @@ function styleInject(css, ref) {
34
34
  }
35
35
  }
36
36
 
37
- var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n pointer-events: none;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left, .drop-target > .drop-target-dropzone > .drop-target-selection.right {\n width: 50%;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translate(100%, 0%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translate(0%, 100%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top, .drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n height: 50%;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n}\n.pane-container .view .default-header > span {\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
37
+ var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n}\n.pane-container .view .default-header > span {\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
38
38
  styleInject(css_248z);
39
39
 
40
+ class TransferObject {
41
+ constructor() {
42
+ //
43
+ }
44
+ }
45
+ class PanelTransfer extends TransferObject {
46
+ constructor(viewId, groupId, panelId) {
47
+ super();
48
+ this.viewId = viewId;
49
+ this.groupId = groupId;
50
+ this.panelId = panelId;
51
+ }
52
+ }
53
+ class PaneTransfer extends TransferObject {
54
+ constructor(viewId, paneId) {
55
+ super();
56
+ this.viewId = viewId;
57
+ this.paneId = paneId;
58
+ }
59
+ }
60
+ /**
61
+ * A singleton to store transfer data during drag & drop operations that are only valid within the application.
62
+ */
63
+ class LocalSelectionTransfer {
64
+ constructor() {
65
+ // protect against external instantiation
66
+ }
67
+ static getInstance() {
68
+ return LocalSelectionTransfer.INSTANCE;
69
+ }
70
+ hasData(proto) {
71
+ return proto && proto === this.proto;
72
+ }
73
+ clearData(proto) {
74
+ if (this.hasData(proto)) {
75
+ this.proto = undefined;
76
+ this.data = undefined;
77
+ }
78
+ }
79
+ getData(proto) {
80
+ if (this.hasData(proto)) {
81
+ return this.data;
82
+ }
83
+ return undefined;
84
+ }
85
+ setData(data, proto) {
86
+ if (proto) {
87
+ this.data = data;
88
+ this.proto = proto;
89
+ }
90
+ }
91
+ }
92
+ LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
93
+ function getPanelData() {
94
+ const panelTransfer = LocalSelectionTransfer.getInstance();
95
+ const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
96
+ if (!isPanelEvent) {
97
+ return undefined;
98
+ }
99
+ return panelTransfer.getData(PanelTransfer.prototype)[0];
100
+ }
101
+ function getPaneData() {
102
+ const paneTransfer = LocalSelectionTransfer.getInstance();
103
+ const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
104
+ if (!isPanelEvent) {
105
+ return undefined;
106
+ }
107
+ return paneTransfer.getData(PaneTransfer.prototype)[0];
108
+ }
109
+
40
110
  var Event;
41
111
  (function (Event) {
42
112
  Event.any = (...children) => {
@@ -126,116 +196,6 @@ class TickDelayedEvent {
126
196
  }
127
197
  }
128
198
 
129
- var Disposable;
130
- (function (Disposable) {
131
- Disposable.NONE = {
132
- dispose: () => {
133
- // noop
134
- },
135
- };
136
- })(Disposable || (Disposable = {}));
137
- class CompositeDisposable {
138
- constructor(...args) {
139
- this.disposables = args;
140
- }
141
- static from(...args) {
142
- return new CompositeDisposable(...args);
143
- }
144
- addDisposables(...args) {
145
- args.forEach((arg) => this.disposables.push(arg));
146
- }
147
- dispose() {
148
- this.disposables.forEach((arg) => arg.dispose());
149
- }
150
- }
151
- class MutableDisposable {
152
- constructor() {
153
- this._disposable = Disposable.NONE;
154
- }
155
- set value(disposable) {
156
- if (this._disposable) {
157
- this._disposable.dispose();
158
- }
159
- this._disposable = disposable;
160
- }
161
- dispose() {
162
- if (this._disposable) {
163
- this._disposable.dispose();
164
- this._disposable = Disposable.NONE;
165
- }
166
- }
167
- }
168
-
169
- class TransferObject {
170
- constructor() {
171
- //
172
- }
173
- }
174
- class PanelTransfer extends TransferObject {
175
- constructor(viewId, groupId, panelId) {
176
- super();
177
- this.viewId = viewId;
178
- this.groupId = groupId;
179
- this.panelId = panelId;
180
- }
181
- }
182
- class PaneTransfer extends TransferObject {
183
- constructor(viewId, paneId) {
184
- super();
185
- this.viewId = viewId;
186
- this.paneId = paneId;
187
- }
188
- }
189
- /**
190
- * A singleton to store transfer data during drag & drop operations that are only valid within the application.
191
- */
192
- class LocalSelectionTransfer {
193
- constructor() {
194
- // protect against external instantiation
195
- }
196
- static getInstance() {
197
- return LocalSelectionTransfer.INSTANCE;
198
- }
199
- hasData(proto) {
200
- return proto && proto === this.proto;
201
- }
202
- clearData(proto) {
203
- if (this.hasData(proto)) {
204
- this.proto = undefined;
205
- this.data = undefined;
206
- }
207
- }
208
- getData(proto) {
209
- if (this.hasData(proto)) {
210
- return this.data;
211
- }
212
- return undefined;
213
- }
214
- setData(data, proto) {
215
- if (proto) {
216
- this.data = data;
217
- this.proto = proto;
218
- }
219
- }
220
- }
221
- LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
222
- function getPanelData() {
223
- const panelTransfer = LocalSelectionTransfer.getInstance();
224
- const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
225
- if (!isPanelEvent) {
226
- return undefined;
227
- }
228
- return panelTransfer.getData(PanelTransfer.prototype)[0];
229
- }
230
- function getPaneData() {
231
- const paneTransfer = LocalSelectionTransfer.getInstance();
232
- const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
233
- if (!isPanelEvent) {
234
- return undefined;
235
- }
236
- return paneTransfer.getData(PaneTransfer.prototype)[0];
237
- }
238
-
239
199
  class SplitviewApi {
240
200
  constructor(component) {
241
201
  this.component = component;
@@ -258,6 +218,9 @@ class SplitviewApi {
258
218
  get orientation() {
259
219
  return this.component.orientation;
260
220
  }
221
+ get onDidLayoutFromJSON() {
222
+ return this.component.onDidLayoutFromJSON;
223
+ }
261
224
  get onDidLayoutChange() {
262
225
  return this.component.onDidLayoutChange;
263
226
  }
@@ -300,8 +263,8 @@ class SplitviewApi {
300
263
  movePanel(from, to) {
301
264
  this.component.movePanel(from, to);
302
265
  }
303
- fromJSON(data, deferComponentLayout) {
304
- this.component.fromJSON(data, deferComponentLayout);
266
+ fromJSON(data) {
267
+ this.component.fromJSON(data);
305
268
  }
306
269
  toJSON() {
307
270
  return this.component.toJSON();
@@ -326,6 +289,9 @@ class PaneviewApi {
326
289
  get onDidLayoutChange() {
327
290
  return this.component.onDidLayoutChange;
328
291
  }
292
+ get onDidLayoutFromJSON() {
293
+ return this.component.onDidLayoutFromJSON;
294
+ }
329
295
  get onDidAddView() {
330
296
  return this.component.onDidAddView;
331
297
  }
@@ -362,13 +328,13 @@ class PaneviewApi {
362
328
  this.component.layout(width, height);
363
329
  }
364
330
  addPanel(options) {
365
- return this.component.addPanel(options);
331
+ this.component.addPanel(options);
366
332
  }
367
333
  resizeToFit() {
368
334
  this.component.resizeToFit();
369
335
  }
370
- fromJSON(data, deferComponentLayout) {
371
- this.component.fromJSON(data, deferComponentLayout);
336
+ fromJSON(data) {
337
+ this.component.fromJSON(data);
372
338
  }
373
339
  toJSON() {
374
340
  return this.component.toJSON();
@@ -396,9 +362,6 @@ class GridviewApi {
396
362
  get height() {
397
363
  return this.component.height;
398
364
  }
399
- get onGridEvent() {
400
- return this.component.onGridEvent;
401
- }
402
365
  get onDidLayoutChange() {
403
366
  return this.component.onDidLayoutChange;
404
367
  }
@@ -453,8 +416,8 @@ class GridviewApi {
453
416
  setActive(panel) {
454
417
  this.component.setActive(panel);
455
418
  }
456
- fromJSON(data, deferComponentLayout) {
457
- return this.component.fromJSON(data, deferComponentLayout);
419
+ fromJSON(data) {
420
+ return this.component.fromJSON(data);
458
421
  }
459
422
  toJSON() {
460
423
  return this.component.toJSON();
@@ -488,9 +451,6 @@ class DockviewApi {
488
451
  get totalPanels() {
489
452
  return this.component.totalPanels;
490
453
  }
491
- get onGridEvent() {
492
- return this.component.onGridEvent;
493
- }
494
454
  get onDidActiveGroupChange() {
495
455
  return this.component.onDidActiveGroupChange;
496
456
  }
@@ -509,7 +469,7 @@ class DockviewApi {
509
469
  get onDidRemovePanel() {
510
470
  return this.component.onDidRemovePanel;
511
471
  }
512
- get onDidLayoutfromJSON() {
472
+ get onDidLayoutFromJSON() {
513
473
  return this.component.onDidLayoutfromJSON;
514
474
  }
515
475
  get onDidLayoutChange() {
@@ -574,6 +534,46 @@ class DockviewApi {
574
534
  }
575
535
  }
576
536
 
537
+ var Disposable;
538
+ (function (Disposable) {
539
+ Disposable.NONE = {
540
+ dispose: () => {
541
+ // noop
542
+ },
543
+ };
544
+ })(Disposable || (Disposable = {}));
545
+ class CompositeDisposable {
546
+ constructor(...args) {
547
+ this.disposables = args;
548
+ }
549
+ static from(...args) {
550
+ return new CompositeDisposable(...args);
551
+ }
552
+ addDisposables(...args) {
553
+ args.forEach((arg) => this.disposables.push(arg));
554
+ }
555
+ dispose() {
556
+ this.disposables.forEach((arg) => arg.dispose());
557
+ }
558
+ }
559
+ class MutableDisposable {
560
+ constructor() {
561
+ this._disposable = Disposable.NONE;
562
+ }
563
+ set value(disposable) {
564
+ if (this._disposable) {
565
+ this._disposable.dispose();
566
+ }
567
+ this._disposable = disposable;
568
+ }
569
+ dispose() {
570
+ if (this._disposable) {
571
+ this._disposable.dispose();
572
+ this._disposable = Disposable.NONE;
573
+ }
574
+ }
575
+ }
576
+
577
577
  function watchElementResize(element, cb) {
578
578
  const observer = new ResizeObserver((entires) => {
579
579
  const firstEntry = entires[0];
@@ -1519,13 +1519,13 @@ class Splitview {
1519
1519
  this._onDidSashEnd.dispose();
1520
1520
  this._onDidAddView.dispose();
1521
1521
  this._onDidRemoveView.dispose();
1522
- this.element.remove();
1523
1522
  for (let i = 0; i < this.element.children.length; i++) {
1524
1523
  if (this.element.children.item(i) === this.element) {
1525
1524
  this.element.removeChild(this.element);
1526
1525
  break;
1527
1526
  }
1528
1527
  }
1528
+ this.element.remove();
1529
1529
  }
1530
1530
  }
1531
1531
 
@@ -1548,7 +1548,7 @@ class Paneview extends CompositeDisposable {
1548
1548
  });
1549
1549
  // if we've added views from the descriptor we need to
1550
1550
  // add the panes to our Pane array and setup animation
1551
- this.getPanes().forEach((pane, index) => {
1551
+ this.getPanes().forEach((pane) => {
1552
1552
  const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
1553
1553
  this.setupAnimation();
1554
1554
  this._onDidChange.fire(undefined);
@@ -1616,17 +1616,20 @@ class Paneview extends CompositeDisposable {
1616
1616
  getPanes() {
1617
1617
  return this.splitview.getViews();
1618
1618
  }
1619
- removePane(index) {
1619
+ removePane(index, options = { skipDispose: false }) {
1620
1620
  const paneItem = this.paneItems.splice(index, 1)[0];
1621
1621
  this.splitview.removeView(index);
1622
- paneItem.disposable.dispose();
1622
+ if (!options.skipDispose) {
1623
+ paneItem.disposable.dispose();
1624
+ paneItem.pane.dispose();
1625
+ }
1623
1626
  return paneItem;
1624
1627
  }
1625
1628
  moveView(from, to) {
1626
1629
  if (from === to) {
1627
1630
  return;
1628
1631
  }
1629
- const view = this.removePane(from);
1632
+ const view = this.removePane(from, { skipDispose: true });
1630
1633
  this.skipAnimation = true;
1631
1634
  try {
1632
1635
  this.addPane(view.pane, view.pane.size, to, false);
@@ -1654,15 +1657,16 @@ class Paneview extends CompositeDisposable {
1654
1657
  }
1655
1658
  dispose() {
1656
1659
  super.dispose();
1657
- this.splitview.dispose();
1658
1660
  if (this.animationTimer) {
1659
1661
  clearTimeout(this.animationTimer);
1660
1662
  this.animationTimer = undefined;
1661
1663
  }
1662
1664
  this.paneItems.forEach((paneItem) => {
1663
1665
  paneItem.disposable.dispose();
1666
+ paneItem.pane.dispose();
1664
1667
  });
1665
1668
  this.paneItems = [];
1669
+ this.splitview.dispose();
1666
1670
  this.element.remove();
1667
1671
  }
1668
1672
  }
@@ -1726,7 +1730,7 @@ class Droptarget extends CompositeDisposable {
1726
1730
  this._onDrop = new Emitter();
1727
1731
  this.onDrop = this._onDrop.event;
1728
1732
  this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
1729
- onDragEnter: (e) => undefined,
1733
+ onDragEnter: () => undefined,
1730
1734
  onDragOver: (e) => {
1731
1735
  if (isBooleanValue(this.options.canDisplayOverlay)) {
1732
1736
  if (!this.options.canDisplayOverlay) {
@@ -1767,10 +1771,10 @@ class Droptarget extends CompositeDisposable {
1767
1771
  this.toggleClasses(quadrant, isSmallX, isSmallY);
1768
1772
  this.setState(quadrant);
1769
1773
  },
1770
- onDragLeave: (e) => {
1774
+ onDragLeave: () => {
1771
1775
  this.removeDropTarget();
1772
1776
  },
1773
- onDragEnd: (e) => {
1777
+ onDragEnd: () => {
1774
1778
  this.removeDropTarget();
1775
1779
  },
1776
1780
  onDrop: (e) => {
@@ -2006,7 +2010,7 @@ class BranchNode extends CompositeDisposable {
2006
2010
  : true,
2007
2011
  };
2008
2012
  }),
2009
- size: this.orthogonalSize,
2013
+ size: this.size,
2010
2014
  };
2011
2015
  this.children = childDescriptors.map((c) => c.node);
2012
2016
  this.splitview = new Splitview(this.element, {
@@ -2167,7 +2171,7 @@ class BranchNode extends CompositeDisposable {
2167
2171
  }
2168
2172
  setupChildrenEvents() {
2169
2173
  this._childrenDisposable.dispose();
2170
- this._childrenDisposable = Event.any(...this.children.map((c) => c.onDidChange))((e) => {
2174
+ this._childrenDisposable = Event.any(...this.children.map((c) => c.onDidChange))(() => {
2171
2175
  /**
2172
2176
  * indicate a change has occured to allows any re-rendering but don't bubble
2173
2177
  * event because that was specific to this branch
@@ -2327,6 +2331,7 @@ class Gridview {
2327
2331
  this.disposable.dispose();
2328
2332
  this._onDidChange.dispose();
2329
2333
  this.root.dispose();
2334
+ this.element.remove();
2330
2335
  }
2331
2336
  clear() {
2332
2337
  const orientation = this.root.orientation;
@@ -2529,7 +2534,7 @@ class Gridview {
2529
2534
  const [parentIndex, ...__] = [...rest].reverse();
2530
2535
  const isSiblingVisible = parent.isChildVisible(0);
2531
2536
  parent.removeChild(0, sizing);
2532
- const sizes = grandParent.children.map((size, i) => grandParent.getChildSize(i));
2537
+ const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2533
2538
  grandParent.removeChild(parentIndex, sizing);
2534
2539
  if (sibling instanceof BranchNode) {
2535
2540
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
@@ -2628,7 +2633,7 @@ class ContentContainer extends CompositeDisposable {
2628
2633
  }
2629
2634
  this.disposable.value = disposable;
2630
2635
  }
2631
- layout(width, height) {
2636
+ layout(_width, _height) {
2632
2637
  // noop
2633
2638
  }
2634
2639
  closePanel() {
@@ -2676,7 +2681,7 @@ class DragHandler extends CompositeDisposable {
2676
2681
  if (event.dataTransfer) {
2677
2682
  event.dataTransfer.effectAllowed = 'move';
2678
2683
  }
2679
- }), addDisposableListener(this.el, 'dragend', (ev) => {
2684
+ }), addDisposableListener(this.el, 'dragend', () => {
2680
2685
  for (const iframe of this.iframes) {
2681
2686
  iframe.style.pointerEvents = 'auto';
2682
2687
  }
@@ -3043,6 +3048,9 @@ class Groupview extends CompositeDisposable {
3043
3048
  get maximumWidth() {
3044
3049
  return Number.MAX_SAFE_INTEGER;
3045
3050
  }
3051
+ get hasWatermark() {
3052
+ return !!(this.watermark && this.container.contains(this.watermark.element));
3053
+ }
3046
3054
  initialize() {
3047
3055
  var _a, _b;
3048
3056
  if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
@@ -3121,10 +3129,10 @@ class Groupview extends CompositeDisposable {
3121
3129
  containsPanel(panel) {
3122
3130
  return this.panels.includes(panel);
3123
3131
  }
3124
- init(params) {
3132
+ init(_params) {
3125
3133
  //noop
3126
3134
  }
3127
- update(params) {
3135
+ update(_params) {
3128
3136
  //noop
3129
3137
  }
3130
3138
  focus() {
@@ -3347,29 +3355,18 @@ class Groupview extends CompositeDisposable {
3347
3355
  }
3348
3356
  }
3349
3357
  dispose() {
3358
+ var _a;
3359
+ super.dispose();
3360
+ (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
3350
3361
  for (const panel of this.panels) {
3351
3362
  panel.dispose();
3352
3363
  }
3353
- super.dispose();
3354
3364
  this.dropTarget.dispose();
3355
3365
  this.tabsContainer.dispose();
3356
3366
  this.contentContainer.dispose();
3357
3367
  }
3358
3368
  }
3359
3369
 
3360
- var GroupChangeKind;
3361
- (function (GroupChangeKind) {
3362
- GroupChangeKind["ADD_PANEL"] = "ADD_PANEL";
3363
- GroupChangeKind["REMOVE_PANEL"] = "REMOVE_PANEL";
3364
- GroupChangeKind["PANEL_ACTIVE"] = "PANEL_ACTIVE";
3365
- //
3366
- GroupChangeKind["GROUP_ACTIVE"] = "GROUP_ACTIVE";
3367
- GroupChangeKind["ADD_GROUP"] = "ADD_GROUP";
3368
- GroupChangeKind["REMOVE_GROUP"] = "REMOVE_GROUP";
3369
- //
3370
- GroupChangeKind["LAYOUT_FROM_JSON"] = "LAYOUT_FROM_JSON";
3371
- GroupChangeKind["LAYOUT"] = "LAYOUT";
3372
- })(GroupChangeKind || (GroupChangeKind = {}));
3373
3370
  const nextLayoutId = sequentialNumberGenerator();
3374
3371
  function toTarget(direction) {
3375
3372
  switch (direction) {
@@ -3392,9 +3389,6 @@ class BaseGrid extends CompositeDisposable {
3392
3389
  this._element = _element;
3393
3390
  this._id = nextLayoutId.next();
3394
3391
  this._groups = new Map();
3395
- //
3396
- this._onGridEvent = new Emitter();
3397
- this.onGridEvent = this._onGridEvent.event;
3398
3392
  this._onDidLayoutChange = new Emitter();
3399
3393
  this.onDidLayoutChange = this._onDidLayoutChange.event;
3400
3394
  this._onDidRemoveGroup = new Emitter();
@@ -3403,30 +3397,18 @@ class BaseGrid extends CompositeDisposable {
3403
3397
  this.onDidAddGroup = this._onDidAddGroup.event;
3404
3398
  this._onDidActiveGroupChange = new Emitter();
3405
3399
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
3400
+ this._bufferOnDidLayoutChange = new TickDelayedEvent();
3406
3401
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
3407
3402
  this.element.appendChild(this.gridview.element);
3408
3403
  this.layout(0, 0, true); // set some elements height/widths
3409
3404
  this.addDisposables(this.gridview.onDidChange(() => {
3410
- this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT });
3405
+ this._onDidLayoutChange.fire();
3411
3406
  }));
3412
- this.addDisposables((() => {
3413
- const tickDelayedEvent = new TickDelayedEvent();
3414
- return new CompositeDisposable(this.onGridEvent((event) => {
3415
- if ([
3416
- GroupChangeKind.ADD_GROUP,
3417
- GroupChangeKind.REMOVE_GROUP,
3418
- GroupChangeKind.ADD_PANEL,
3419
- GroupChangeKind.REMOVE_PANEL,
3420
- GroupChangeKind.GROUP_ACTIVE,
3421
- GroupChangeKind.PANEL_ACTIVE,
3422
- GroupChangeKind.LAYOUT,
3423
- ].includes(event.kind)) {
3424
- tickDelayedEvent.fire();
3425
- }
3426
- }), tickDelayedEvent.onEvent(() => {
3427
- this._onDidLayoutChange.fire();
3428
- }), tickDelayedEvent);
3429
- })());
3407
+ this.addDisposables(Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3408
+ this._bufferOnDidLayoutChange.fire();
3409
+ }), this._bufferOnDidLayoutChange.onEvent(() => {
3410
+ this._onDidLayoutChange.fire();
3411
+ }), this._bufferOnDidLayoutChange);
3430
3412
  }
3431
3413
  get id() {
3432
3414
  return this._id;
@@ -3463,14 +3445,13 @@ class BaseGrid extends CompositeDisposable {
3463
3445
  }
3464
3446
  setVisible(panel, visible) {
3465
3447
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
3466
- this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT });
3448
+ this._onDidLayoutChange.fire();
3467
3449
  }
3468
3450
  isVisible(panel) {
3469
3451
  return this.gridview.isViewVisible(getGridLocation(panel.element));
3470
3452
  }
3471
3453
  doAddGroup(group, location = [0], size) {
3472
3454
  this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
3473
- this._onGridEvent.fire({ kind: GroupChangeKind.ADD_GROUP });
3474
3455
  this._onDidAddGroup.fire(group);
3475
3456
  this.doSetGroupActive(group);
3476
3457
  }
@@ -3482,9 +3463,9 @@ class BaseGrid extends CompositeDisposable {
3482
3463
  const view = this.gridview.remove(group, Sizing.Distribute);
3483
3464
  if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
3484
3465
  item.disposable.dispose();
3466
+ item.value.dispose();
3485
3467
  this._groups.delete(group.id);
3486
3468
  }
3487
- this._onGridEvent.fire({ kind: GroupChangeKind.REMOVE_GROUP });
3488
3469
  this._onDidRemoveGroup.fire(group);
3489
3470
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
3490
3471
  const groups = Array.from(this._groups.values());
@@ -3513,9 +3494,6 @@ class BaseGrid extends CompositeDisposable {
3513
3494
  }
3514
3495
  }
3515
3496
  this._activeGroup = group;
3516
- this._onGridEvent.fire({
3517
- kind: GroupChangeKind.GROUP_ACTIVE,
3518
- });
3519
3497
  this._onDidActiveGroupChange.fire(group);
3520
3498
  }
3521
3499
  removeGroup(group) {
@@ -3572,11 +3550,13 @@ class BaseGrid extends CompositeDisposable {
3572
3550
  }
3573
3551
  dispose() {
3574
3552
  super.dispose();
3575
- this._onGridEvent.dispose();
3576
3553
  this._onDidActiveGroupChange.dispose();
3577
3554
  this._onDidAddGroup.dispose();
3578
3555
  this._onDidRemoveGroup.dispose();
3579
3556
  this._onDidLayoutChange.dispose();
3557
+ for (const group of this.groups) {
3558
+ group.dispose();
3559
+ }
3580
3560
  this.gridview.dispose();
3581
3561
  }
3582
3562
  }
@@ -3754,6 +3734,10 @@ class DockviewGroupPanel extends CompositeDisposable {
3754
3734
  this.update({ params: { title } });
3755
3735
  }));
3756
3736
  }
3737
+ get params() {
3738
+ var _a;
3739
+ return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
3740
+ }
3757
3741
  get title() {
3758
3742
  return this._title;
3759
3743
  }
@@ -3902,7 +3886,7 @@ class Watermark extends CompositeDisposable {
3902
3886
  get id() {
3903
3887
  return 'watermark';
3904
3888
  }
3905
- update(event) {
3889
+ update(_event) {
3906
3890
  // noop
3907
3891
  }
3908
3892
  focus() {
@@ -3911,17 +3895,17 @@ class Watermark extends CompositeDisposable {
3911
3895
  toJSON() {
3912
3896
  return {};
3913
3897
  }
3914
- layout(width, height) {
3898
+ layout(_width, _height) {
3915
3899
  // noop
3916
3900
  }
3917
3901
  init(params) {
3918
3902
  this.params = params;
3919
- this.addDisposables(this.params.containerApi.onDidLayoutChange((event) => {
3903
+ this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
3920
3904
  this.render();
3921
3905
  }));
3922
3906
  this.render();
3923
3907
  }
3924
- updateParentGroup(group, visible) {
3908
+ updateParentGroup(group, _visible) {
3925
3909
  this.group = group;
3926
3910
  this.render();
3927
3911
  }
@@ -4096,7 +4080,7 @@ class DefaultTab extends CompositeDisposable {
4096
4080
  this._isGroupActive = group.isActive;
4097
4081
  this.render();
4098
4082
  }
4099
- layout(width, height) {
4083
+ layout(_width, _height) {
4100
4084
  // noop
4101
4085
  }
4102
4086
  render() {
@@ -4170,8 +4154,10 @@ class BasePanelView extends CompositeDisposable {
4170
4154
  };
4171
4155
  }
4172
4156
  dispose() {
4157
+ var _a;
4173
4158
  super.dispose();
4174
4159
  this.api.dispose();
4160
+ (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
4175
4161
  }
4176
4162
  }
4177
4163
 
@@ -4430,7 +4416,9 @@ class DockviewComponent extends BaseGrid {
4430
4416
  this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4431
4417
  this._onDidActivePanelChange = new Emitter();
4432
4418
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4433
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop);
4419
+ this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4420
+ this._bufferOnDidLayoutChange.fire();
4421
+ }));
4434
4422
  this._options = options;
4435
4423
  if (!this.options.components) {
4436
4424
  this.options.components = {};
@@ -4564,11 +4552,12 @@ class DockviewComponent extends BaseGrid {
4564
4552
  };
4565
4553
  }
4566
4554
  fromJSON(data) {
4555
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4556
+ for (const group of groups) {
4557
+ // remove the group will automatically remove the panels
4558
+ this.removeGroup(group, true);
4559
+ }
4567
4560
  this.gridview.clear();
4568
- this.panels.forEach((panel) => {
4569
- panel.dispose();
4570
- });
4571
- this._groups.clear();
4572
4561
  if (!this.deserializer) {
4573
4562
  throw new Error('invalid deserializer');
4574
4563
  }
@@ -4592,7 +4581,6 @@ class DockviewComponent extends BaseGrid {
4592
4581
  }
4593
4582
  }
4594
4583
  this.gridview.layout(this.width, this.height);
4595
- this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT_FROM_JSON });
4596
4584
  this._onDidLayoutfromJSON.fire();
4597
4585
  }
4598
4586
  closeAllGroups() {
@@ -4614,7 +4602,10 @@ class DockviewComponent extends BaseGrid {
4614
4602
  }
4615
4603
  addPanel(options) {
4616
4604
  var _a, _b;
4617
- const panel = this._addPanel(options);
4605
+ if (this.panels.find((_) => _.id === options.id)) {
4606
+ throw new Error(`panel with id ${options.id} already exists`);
4607
+ }
4608
+ const panel = this.createPanel(options);
4618
4609
  let referenceGroup;
4619
4610
  if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
4620
4611
  const referencePanel = this.getGroupPanel(options.position.referencePanel);
@@ -4642,13 +4633,20 @@ class DockviewComponent extends BaseGrid {
4642
4633
  }
4643
4634
  return panel;
4644
4635
  }
4645
- removePanel(panel) {
4636
+ removePanel(panel, options = {
4637
+ removeEmptyGroup: true,
4638
+ skipDispose: false,
4639
+ }) {
4646
4640
  const group = panel.group;
4647
4641
  if (!group) {
4648
4642
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
4649
4643
  }
4650
4644
  group.model.removePanel(panel);
4651
- if (group.model.size === 0) {
4645
+ panel.dispose();
4646
+ const retainGroupForWatermark = this.size === 1;
4647
+ if (!retainGroupForWatermark &&
4648
+ group.model.size === 0 &&
4649
+ options.removeEmptyGroup) {
4652
4650
  this.removeGroup(group);
4653
4651
  }
4654
4652
  }
@@ -4680,16 +4678,15 @@ class DockviewComponent extends BaseGrid {
4680
4678
  this.doAddGroup(group);
4681
4679
  }
4682
4680
  }
4683
- removeGroup(group) {
4681
+ removeGroup(group, skipActive = false) {
4684
4682
  const panels = [...group.model.panels]; // reassign since group panels will mutate
4685
- panels.forEach((panel) => {
4686
- this.removePanel(panel);
4687
- });
4688
- if (this._groups.size === 1) {
4689
- this._activeGroup = group;
4690
- return;
4683
+ for (const panel of panels) {
4684
+ this.removePanel(panel, {
4685
+ removeEmptyGroup: false,
4686
+ skipDispose: false,
4687
+ });
4691
4688
  }
4692
- super.removeGroup(group);
4689
+ super.doRemoveGroup(group, { skipActive });
4693
4690
  }
4694
4691
  moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
4695
4692
  var _a;
@@ -4744,15 +4741,11 @@ class DockviewComponent extends BaseGrid {
4744
4741
  }
4745
4742
  }
4746
4743
  doSetGroupActive(group, skipFocus) {
4747
- var _a, _b, _c;
4744
+ var _a, _b;
4748
4745
  const isGroupAlreadyFocused = this._activeGroup === group;
4749
4746
  super.doSetGroupActive(group, skipFocus);
4750
4747
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
4751
- this._onGridEvent.fire({
4752
- kind: GroupChangeKind.PANEL_ACTIVE,
4753
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
4754
- });
4755
- this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
4748
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
4756
4749
  }
4757
4750
  }
4758
4751
  createGroup(options) {
@@ -4774,6 +4767,7 @@ class DockviewComponent extends BaseGrid {
4774
4767
  }
4775
4768
  }
4776
4769
  const view = new GroupviewPanel(this, id, options);
4770
+ view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4777
4771
  if (!this._groups.has(view.id)) {
4778
4772
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4779
4773
  const { groupId, itemId, target, index } = event;
@@ -4783,28 +4777,16 @@ class DockviewComponent extends BaseGrid {
4783
4777
  }), view.model.onDidGroupChange((event) => {
4784
4778
  switch (event.kind) {
4785
4779
  case GroupChangeKind2.ADD_PANEL:
4786
- this._onGridEvent.fire({
4787
- kind: GroupChangeKind.ADD_PANEL,
4788
- panel: event.panel,
4789
- });
4790
4780
  if (event.panel) {
4791
4781
  this._onDidAddPanel.fire(event.panel);
4792
4782
  }
4793
4783
  break;
4794
4784
  case GroupChangeKind2.REMOVE_PANEL:
4795
- this._onGridEvent.fire({
4796
- kind: GroupChangeKind.REMOVE_PANEL,
4797
- panel: event.panel,
4798
- });
4799
4785
  if (event.panel) {
4800
4786
  this._onDidRemovePanel.fire(event.panel);
4801
4787
  }
4802
4788
  break;
4803
4789
  case GroupChangeKind2.PANEL_ACTIVE:
4804
- this._onGridEvent.fire({
4805
- kind: GroupChangeKind.PANEL_ACTIVE,
4806
- panel: event.panel,
4807
- });
4808
4790
  this._onDidActivePanelChange.fire(event.panel);
4809
4791
  break;
4810
4792
  }
@@ -4819,7 +4801,7 @@ class DockviewComponent extends BaseGrid {
4819
4801
  }
4820
4802
  return view;
4821
4803
  }
4822
- _addPanel(options) {
4804
+ createPanel(options) {
4823
4805
  const view = new DefaultGroupPanelView({
4824
4806
  content: this.createContentComponent(options.id, options.component),
4825
4807
  tab: this.createTabComponent(options.id, options.tabComponent),
@@ -4920,7 +4902,7 @@ class GridviewComponent extends BaseGrid {
4920
4902
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
4921
4903
  }
4922
4904
  setActive(panel) {
4923
- this._groups.forEach((value, key) => {
4905
+ this._groups.forEach((value, _key) => {
4924
4906
  value.value.setActive(panel === value.value);
4925
4907
  });
4926
4908
  }
@@ -4931,10 +4913,14 @@ class GridviewComponent extends BaseGrid {
4931
4913
  var _a;
4932
4914
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4933
4915
  }
4934
- fromJSON(serializedGridview, deferComponentLayout) {
4916
+ fromJSON(serializedGridview) {
4935
4917
  const { grid, activePanel } = serializedGridview;
4918
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4919
+ for (const group of groups) {
4920
+ group.disposable.dispose();
4921
+ this.doRemoveGroup(group.value, { skipActive: true });
4922
+ }
4936
4923
  this.gridview.clear();
4937
- this._groups.clear();
4938
4924
  const queue = [];
4939
4925
  this.gridview.deserialize(grid, {
4940
4926
  fromJSON: (node) => {
@@ -4961,21 +4947,13 @@ class GridviewComponent extends BaseGrid {
4961
4947
  },
4962
4948
  });
4963
4949
  this.layout(this.width, this.height, true);
4964
- if (deferComponentLayout) {
4965
- setTimeout(() => {
4966
- queue.forEach((f) => f());
4967
- }, 0);
4968
- }
4969
- else {
4970
- queue.forEach((f) => f());
4971
- }
4950
+ queue.forEach((f) => f());
4972
4951
  if (typeof activePanel === 'string') {
4973
4952
  const panel = this.getPanel(activePanel);
4974
4953
  if (panel) {
4975
4954
  this.doSetGroupActive(panel);
4976
4955
  }
4977
4956
  }
4978
- this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT_FROM_JSON });
4979
4957
  this._onDidLayoutfromJSON.fire();
4980
4958
  }
4981
4959
  movePanel(panel, options) {
@@ -5032,7 +5010,6 @@ class GridviewComponent extends BaseGrid {
5032
5010
  });
5033
5011
  this.registerPanel(view);
5034
5012
  this.doAddGroup(view, relativeLocation, options.size);
5035
- return { api: view.api };
5036
5013
  }
5037
5014
  registerPanel(panel) {
5038
5015
  const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
@@ -5083,11 +5060,6 @@ class GridviewComponent extends BaseGrid {
5083
5060
  }
5084
5061
  removeGroup(group) {
5085
5062
  super.removeGroup(group);
5086
- const panel = this._groups.get(group.id);
5087
- if (panel) {
5088
- panel.disposable.dispose();
5089
- this._groups.delete(group.id);
5090
- }
5091
5063
  }
5092
5064
  dispose() {
5093
5065
  super.dispose();
@@ -5104,6 +5076,8 @@ class SplitviewComponent extends CompositeDisposable {
5104
5076
  this.element = element;
5105
5077
  this._disposable = new MutableDisposable();
5106
5078
  this.panels = new Map();
5079
+ this._onDidLayoutfromJSON = new Emitter();
5080
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5107
5081
  this._onDidAddView = new Emitter();
5108
5082
  this.onDidAddView = this._onDidAddView.event;
5109
5083
  this._onDidRemoveView = new Emitter();
@@ -5118,7 +5092,7 @@ class SplitviewComponent extends CompositeDisposable {
5118
5092
  options.frameworkComponents = {};
5119
5093
  }
5120
5094
  this.splitview = new Splitview(this.element, options);
5121
- this.addDisposables(this._disposable, this._onDidAddView, this._onDidRemoveView, this._onDidLayoutChange);
5095
+ this.addDisposables(this._disposable, this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
5122
5096
  }
5123
5097
  get options() {
5124
5098
  return this._options;
@@ -5194,7 +5168,11 @@ class SplitviewComponent extends CompositeDisposable {
5194
5168
  }
5195
5169
  removePanel(panel, sizing) {
5196
5170
  const disposable = this.panels.get(panel.id);
5197
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
5171
+ if (!disposable) {
5172
+ throw new Error(`unknown splitview panel ${panel.id}`);
5173
+ }
5174
+ disposable.disposable.dispose();
5175
+ disposable.value.dispose();
5198
5176
  this.panels.delete(panel.id);
5199
5177
  const index = this.getPanels().findIndex((_) => _ === panel);
5200
5178
  this.splitview.removeView(index, sizing);
@@ -5253,7 +5231,7 @@ class SplitviewComponent extends CompositeDisposable {
5253
5231
  }
5254
5232
  this.setActive(view, true);
5255
5233
  });
5256
- this.panels.set(view.id, disposable);
5234
+ this.panels.set(view.id, { disposable, value: view });
5257
5235
  }
5258
5236
  toJSON() {
5259
5237
  var _a;
@@ -5275,8 +5253,13 @@ class SplitviewComponent extends CompositeDisposable {
5275
5253
  orientation: this.splitview.orientation,
5276
5254
  };
5277
5255
  }
5278
- fromJSON(serializedSplitview, deferComponentLayout = false) {
5256
+ fromJSON(serializedSplitview) {
5279
5257
  const { views, orientation, size, activeView } = serializedSplitview;
5258
+ for (const [_, value] of this.panels.entries()) {
5259
+ value.disposable.dispose();
5260
+ value.value.dispose();
5261
+ }
5262
+ this.panels.clear();
5280
5263
  this.splitview.dispose();
5281
5264
  const queue = [];
5282
5265
  this.splitview = new Splitview(this.element, {
@@ -5316,26 +5299,22 @@ class SplitviewComponent extends CompositeDisposable {
5316
5299
  },
5317
5300
  });
5318
5301
  this.layout(this.width, this.height);
5319
- if (deferComponentLayout) {
5320
- setTimeout(() => {
5321
- queue.forEach((f) => f());
5322
- }, 0);
5323
- }
5324
- else {
5325
- queue.forEach((f) => f());
5326
- }
5302
+ queue.forEach((f) => f());
5327
5303
  if (typeof activeView === 'string') {
5328
5304
  const panel = this.getPanel(activeView);
5329
5305
  if (panel) {
5330
5306
  this.setActive(panel);
5331
5307
  }
5332
5308
  }
5309
+ this._onDidLayoutfromJSON.fire();
5333
5310
  }
5334
5311
  dispose() {
5335
- Array.from(this.panels.values()).forEach((value) => {
5336
- value.dispose();
5337
- });
5312
+ for (const [_, value] of this.panels.entries()) {
5313
+ value.disposable.dispose();
5314
+ value.value.dispose();
5315
+ }
5338
5316
  this.panels.clear();
5317
+ this.splitview.dispose();
5339
5318
  super.dispose();
5340
5319
  }
5341
5320
  }
@@ -5604,7 +5583,7 @@ class DraggablePaneviewPanel extends PaneviewPanel {
5604
5583
  })(this.header);
5605
5584
  this.target = new Droptarget(this.element, {
5606
5585
  validOverlays: 'vertical',
5607
- canDisplayOverlay: (event) => {
5586
+ canDisplayOverlay: () => {
5608
5587
  const data = getPaneData();
5609
5588
  if (!data) {
5610
5589
  return true;
@@ -5675,7 +5654,7 @@ class DefaultHeader extends CompositeDisposable {
5675
5654
  this._expander.textContent = e.isExpanded ? '<' : '>';
5676
5655
  });
5677
5656
  }
5678
- update(params) {
5657
+ update(_params) {
5679
5658
  //
5680
5659
  }
5681
5660
  dispose() {
@@ -5701,6 +5680,9 @@ class PaneviewComponent extends CompositeDisposable {
5701
5680
  super();
5702
5681
  this.element = element;
5703
5682
  this._disposable = new MutableDisposable();
5683
+ this._viewDisposables = new Map();
5684
+ this._onDidLayoutfromJSON = new Emitter();
5685
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5704
5686
  this._onDidLayoutChange = new Emitter();
5705
5687
  this.onDidLayoutChange = this._onDidLayoutChange.event;
5706
5688
  this._onDidDrop = new Emitter();
@@ -5709,7 +5691,7 @@ class PaneviewComponent extends CompositeDisposable {
5709
5691
  this.onDidAddView = this._onDidAddView.event;
5710
5692
  this._onDidRemoveView = new Emitter();
5711
5693
  this.onDidRemoveView = this._onDidRemoveView.event;
5712
- this.addDisposables(this._onDidLayoutChange, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5694
+ this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5713
5695
  this._options = options;
5714
5696
  if (!options.components) {
5715
5697
  options.components = {};
@@ -5785,9 +5767,7 @@ class PaneviewComponent extends CompositeDisposable {
5785
5767
  isExpanded: !!options.isExpanded,
5786
5768
  disableDnd: !!this.options.disableDnd,
5787
5769
  });
5788
- const disposable = new CompositeDisposable(view.onDidDrop((event) => {
5789
- this._onDidDrop.fire(event);
5790
- }));
5770
+ this.doAddPanel(view);
5791
5771
  const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
5792
5772
  const index = typeof options.index === 'number' ? options.index : undefined;
5793
5773
  view.init({
@@ -5800,7 +5780,7 @@ class PaneviewComponent extends CompositeDisposable {
5800
5780
  });
5801
5781
  this.paneview.addPane(view, size, index);
5802
5782
  view.orientation = this.paneview.orientation;
5803
- return disposable;
5783
+ return view;
5804
5784
  }
5805
5785
  getPanels() {
5806
5786
  return this.paneview.getPanes();
@@ -5809,6 +5789,7 @@ class PaneviewComponent extends CompositeDisposable {
5809
5789
  const views = this.getPanels();
5810
5790
  const index = views.findIndex((_) => _ === panel);
5811
5791
  this.paneview.removePane(index);
5792
+ this.doRemovePanel(panel);
5812
5793
  }
5813
5794
  movePanel(from, to) {
5814
5795
  this.paneview.moveView(from, to);
@@ -5855,9 +5836,13 @@ class PaneviewComponent extends CompositeDisposable {
5855
5836
  size: this.paneview.size,
5856
5837
  };
5857
5838
  }
5858
- fromJSON(serializedPaneview, deferComponentLayout) {
5839
+ fromJSON(serializedPaneview) {
5859
5840
  const { views, size } = serializedPaneview;
5860
5841
  const queue = [];
5842
+ for (const [_, value] of this._viewDisposables.entries()) {
5843
+ value.dispose();
5844
+ }
5845
+ this._viewDisposables.clear();
5861
5846
  this.paneview.dispose();
5862
5847
  this.paneview = new Paneview(this.element, {
5863
5848
  orientation: Orientation.VERTICAL,
@@ -5893,9 +5878,7 @@ class PaneviewComponent extends CompositeDisposable {
5893
5878
  isExpanded: !!view.expanded,
5894
5879
  disableDnd: !!this.options.disableDnd,
5895
5880
  });
5896
- panel.onDidDrop((event) => {
5897
- this._onDidDrop.fire(event);
5898
- });
5881
+ this.doAddPanel(panel);
5899
5882
  queue.push(() => {
5900
5883
  panel.init({
5901
5884
  params: data.params || {},
@@ -5916,14 +5899,29 @@ class PaneviewComponent extends CompositeDisposable {
5916
5899
  },
5917
5900
  });
5918
5901
  this.layout(this.width, this.height);
5919
- if (deferComponentLayout) {
5920
- setTimeout(() => {
5921
- queue.forEach((f) => f());
5922
- }, 0);
5902
+ queue.forEach((f) => f());
5903
+ this._onDidLayoutfromJSON.fire();
5904
+ }
5905
+ doAddPanel(panel) {
5906
+ const disposable = panel.onDidDrop((event) => {
5907
+ this._onDidDrop.fire(event);
5908
+ });
5909
+ this._viewDisposables.set(panel.id, disposable);
5910
+ }
5911
+ doRemovePanel(panel) {
5912
+ const disposable = this._viewDisposables.get(panel.id);
5913
+ if (disposable) {
5914
+ disposable.dispose();
5915
+ this._viewDisposables.delete(panel.id);
5923
5916
  }
5924
- else {
5925
- queue.forEach((f) => f());
5917
+ }
5918
+ dispose() {
5919
+ super.dispose();
5920
+ for (const [_, value] of this._viewDisposables.entries()) {
5921
+ value.dispose();
5926
5922
  }
5923
+ this._viewDisposables.clear();
5924
+ this.paneview.dispose();
5927
5925
  }
5928
5926
  }
5929
5927
 
@@ -6151,18 +6149,12 @@ class ReactPanelContentPart {
6151
6149
  this.id = id;
6152
6150
  this.component = component;
6153
6151
  this.reactPortalStore = reactPortalStore;
6154
- // private hostedContainer: HostedContainer;
6155
6152
  this._onDidFocus = new Emitter();
6156
6153
  this.onDidFocus = this._onDidFocus.event;
6157
6154
  this._onDidBlur = new Emitter();
6158
6155
  this.onDidBlur = this._onDidBlur.event;
6159
6156
  this._element = document.createElement('div');
6160
6157
  this._element.className = 'dockview-react-part';
6161
- // this.hostedContainer = new HostedContainer({
6162
- // id,
6163
- // });
6164
- // this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
6165
- // this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
6166
6158
  this._actionsElement = document.createElement('div');
6167
6159
  this._actionsElement.className = 'dockview-react-part';
6168
6160
  }
@@ -6197,15 +6189,11 @@ class ReactPanelContentPart {
6197
6189
  var _a;
6198
6190
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
6199
6191
  }
6200
- updateParentGroup(group, isPanelVisible) {
6192
+ updateParentGroup(group, _isPanelVisible) {
6201
6193
  this._group = group;
6202
6194
  }
6203
- layout(width, height) {
6195
+ layout(_width, _height) {
6204
6196
  // noop
6205
- // this.hostedContainer.layout(
6206
- // this.element
6207
- // // { width, height }
6208
- // );
6209
6197
  }
6210
6198
  close() {
6211
6199
  return Promise.resolve(true);
@@ -6215,7 +6203,6 @@ class ReactPanelContentPart {
6215
6203
  this._onDidFocus.dispose();
6216
6204
  this._onDidBlur.dispose();
6217
6205
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
6218
- // this.hostedContainer?.dispose();
6219
6206
  (_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
6220
6207
  }
6221
6208
  }
@@ -6250,10 +6237,10 @@ class ReactPanelHeaderPart {
6250
6237
  id: this.id,
6251
6238
  };
6252
6239
  }
6253
- layout(width, height) {
6240
+ layout(_width, _height) {
6254
6241
  // noop - retrieval from api
6255
6242
  }
6256
- updateParentGroup(group, isPanelVisible) {
6243
+ updateParentGroup(_group, _isPanelVisible) {
6257
6244
  // noop - retrieval from api
6258
6245
  }
6259
6246
  dispose() {
@@ -6332,10 +6319,10 @@ class ReactWatermarkPart {
6332
6319
  id: this.id,
6333
6320
  };
6334
6321
  }
6335
- layout(width, height) {
6322
+ layout(_width, _height) {
6336
6323
  // noop - retrieval from api
6337
6324
  }
6338
- updateParentGroup(group, isPanelVisible) {
6325
+ updateParentGroup(group, _isPanelVisible) {
6339
6326
  // noop - retrieval from api
6340
6327
  this._groupRef.value = group;
6341
6328
  }
@@ -6369,21 +6356,21 @@ const DockviewReact = React.forwardRef((props, ref) => {
6369
6356
  var _a;
6370
6357
  const factory = {
6371
6358
  content: {
6372
- createComponent: (id, componentId, component) => {
6359
+ createComponent: (_id, componentId, component) => {
6373
6360
  return new ReactPanelContentPart(componentId, component, {
6374
6361
  addPortal,
6375
6362
  });
6376
6363
  },
6377
6364
  },
6378
6365
  tab: {
6379
- createComponent: (id, componentId, component) => {
6366
+ createComponent: (_id, componentId, component) => {
6380
6367
  return new ReactPanelHeaderPart(componentId, component, {
6381
6368
  addPortal,
6382
6369
  });
6383
6370
  },
6384
6371
  },
6385
6372
  watermark: {
6386
- createComponent: (id, componentId, component) => {
6373
+ createComponent: (_id, componentId, component) => {
6387
6374
  return new ReactWatermarkPart(componentId, component, {
6388
6375
  addPortal,
6389
6376
  });
@@ -6402,11 +6389,6 @@ const DockviewReact = React.forwardRef((props, ref) => {
6402
6389
  ? { separatorBorder: 'transparent' }
6403
6390
  : undefined,
6404
6391
  });
6405
- const disposable = dockview.onDidDrop((event) => {
6406
- if (props.onDidDrop) {
6407
- props.onDidDrop(event);
6408
- }
6409
- });
6410
6392
  (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
6411
6393
  dockview.deserializer = new ReactPanelDeserialzier(dockview);
6412
6394
  const { clientWidth, clientHeight } = domRef.current;
@@ -6416,10 +6398,25 @@ const DockviewReact = React.forwardRef((props, ref) => {
6416
6398
  }
6417
6399
  dockviewRef.current = dockview;
6418
6400
  return () => {
6419
- disposable.dispose();
6420
6401
  dockview.dispose();
6402
+ element.remove();
6421
6403
  };
6422
6404
  }, []);
6405
+ React.useEffect(() => {
6406
+ if (!dockviewRef.current) {
6407
+ return () => {
6408
+ // noop
6409
+ };
6410
+ }
6411
+ const disposable = dockviewRef.current.onDidDrop((event) => {
6412
+ if (props.onDidDrop) {
6413
+ props.onDidDrop(event);
6414
+ }
6415
+ });
6416
+ return () => {
6417
+ disposable.dispose();
6418
+ };
6419
+ }, [props.onDidDrop]);
6423
6420
  React.useEffect(() => {
6424
6421
  if (!dockviewRef.current) {
6425
6422
  return;
@@ -6428,6 +6425,14 @@ const DockviewReact = React.forwardRef((props, ref) => {
6428
6425
  frameworkComponents: props.components,
6429
6426
  });
6430
6427
  }, [props.components]);
6428
+ React.useEffect(() => {
6429
+ if (!dockviewRef.current) {
6430
+ return;
6431
+ }
6432
+ dockviewRef.current.updateOptions({
6433
+ watermarkFrameworkComponent: props.watermarkComponent,
6434
+ });
6435
+ }, [props.watermarkComponent]);
6431
6436
  React.useEffect(() => {
6432
6437
  if (!dockviewRef.current) {
6433
6438
  return;
@@ -6563,7 +6568,9 @@ const SplitviewReact = React.forwardRef((props, ref) => {
6563
6568
  });
6564
6569
  },
6565
6570
  },
6566
- proportionalLayout: props.proportionalLayout,
6571
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6572
+ ? props.proportionalLayout
6573
+ : true,
6567
6574
  styles: props.hideBorders
6568
6575
  ? { separatorBorder: 'transparent' }
6569
6576
  : undefined,
@@ -6631,7 +6638,9 @@ const GridviewReact = React.forwardRef((props, ref) => {
6631
6638
  var _a;
6632
6639
  const element = document.createElement('div');
6633
6640
  const gridview = new GridviewComponent(element, {
6634
- proportionalLayout: !!props.proportionalLayout,
6641
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6642
+ ? props.proportionalLayout
6643
+ : true,
6635
6644
  orientation: props.orientation,
6636
6645
  frameworkComponents: props.components,
6637
6646
  frameworkComponentFactory: {
@@ -6654,6 +6663,7 @@ const GridviewReact = React.forwardRef((props, ref) => {
6654
6663
  gridviewRef.current = gridview;
6655
6664
  return () => {
6656
6665
  gridview.dispose();
6666
+ element.remove();
6657
6667
  };
6658
6668
  }, []);
6659
6669
  React.useEffect(() => {
@@ -6724,7 +6734,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
6724
6734
  };
6725
6735
  }, [props.disableAutoResizing]);
6726
6736
  React.useEffect(() => {
6727
- const createComponent = (id, componentId, component) => new PanePanelSection(id, component, {
6737
+ const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
6728
6738
  addPortal,
6729
6739
  });
6730
6740
  const paneview = new PaneviewComponent(domRef.current, {
@@ -6789,4 +6799,4 @@ const PaneviewReact = React.forwardRef((props, ref) => {
6789
6799
  });
6790
6800
  PaneviewReact.displayName = 'PaneviewComponent';
6791
6801
 
6792
- export { BaseGrid, CompositeDisposable, ContentContainer, Disposable, DockviewApi, DockviewComponent, DockviewComponents, DockviewReact, Emitter, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, GroupChangeKind, GroupChangeKind2, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, MutableDisposable, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPanelContentPart, ReactPanelHeaderPart, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab$1 as Tab, TickDelayedEvent, addDisposableListener, addDisposableWindowListener, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };
6802
+ export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewComponents, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, GroupChangeKind2, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPanelContentPart, ReactPanelHeaderPart, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab$1 as Tab, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };