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
  */
@@ -59,9 +59,79 @@ function styleInject(css, ref) {
59
59
  }
60
60
  }
61
61
 
62
- 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}";
62
+ 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}";
63
63
  styleInject(css_248z);
64
64
 
65
+ class TransferObject {
66
+ constructor() {
67
+ //
68
+ }
69
+ }
70
+ class PanelTransfer extends TransferObject {
71
+ constructor(viewId, groupId, panelId) {
72
+ super();
73
+ this.viewId = viewId;
74
+ this.groupId = groupId;
75
+ this.panelId = panelId;
76
+ }
77
+ }
78
+ class PaneTransfer extends TransferObject {
79
+ constructor(viewId, paneId) {
80
+ super();
81
+ this.viewId = viewId;
82
+ this.paneId = paneId;
83
+ }
84
+ }
85
+ /**
86
+ * A singleton to store transfer data during drag & drop operations that are only valid within the application.
87
+ */
88
+ class LocalSelectionTransfer {
89
+ constructor() {
90
+ // protect against external instantiation
91
+ }
92
+ static getInstance() {
93
+ return LocalSelectionTransfer.INSTANCE;
94
+ }
95
+ hasData(proto) {
96
+ return proto && proto === this.proto;
97
+ }
98
+ clearData(proto) {
99
+ if (this.hasData(proto)) {
100
+ this.proto = undefined;
101
+ this.data = undefined;
102
+ }
103
+ }
104
+ getData(proto) {
105
+ if (this.hasData(proto)) {
106
+ return this.data;
107
+ }
108
+ return undefined;
109
+ }
110
+ setData(data, proto) {
111
+ if (proto) {
112
+ this.data = data;
113
+ this.proto = proto;
114
+ }
115
+ }
116
+ }
117
+ LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
118
+ function getPanelData() {
119
+ const panelTransfer = LocalSelectionTransfer.getInstance();
120
+ const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
121
+ if (!isPanelEvent) {
122
+ return undefined;
123
+ }
124
+ return panelTransfer.getData(PanelTransfer.prototype)[0];
125
+ }
126
+ function getPaneData() {
127
+ const paneTransfer = LocalSelectionTransfer.getInstance();
128
+ const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
129
+ if (!isPanelEvent) {
130
+ return undefined;
131
+ }
132
+ return paneTransfer.getData(PaneTransfer.prototype)[0];
133
+ }
134
+
65
135
  exports.Event = void 0;
66
136
  (function (Event) {
67
137
  Event.any = (...children) => {
@@ -151,116 +221,6 @@ class TickDelayedEvent {
151
221
  }
152
222
  }
153
223
 
154
- exports.Disposable = void 0;
155
- (function (Disposable) {
156
- Disposable.NONE = {
157
- dispose: () => {
158
- // noop
159
- },
160
- };
161
- })(exports.Disposable || (exports.Disposable = {}));
162
- class CompositeDisposable {
163
- constructor(...args) {
164
- this.disposables = args;
165
- }
166
- static from(...args) {
167
- return new CompositeDisposable(...args);
168
- }
169
- addDisposables(...args) {
170
- args.forEach((arg) => this.disposables.push(arg));
171
- }
172
- dispose() {
173
- this.disposables.forEach((arg) => arg.dispose());
174
- }
175
- }
176
- class MutableDisposable {
177
- constructor() {
178
- this._disposable = exports.Disposable.NONE;
179
- }
180
- set value(disposable) {
181
- if (this._disposable) {
182
- this._disposable.dispose();
183
- }
184
- this._disposable = disposable;
185
- }
186
- dispose() {
187
- if (this._disposable) {
188
- this._disposable.dispose();
189
- this._disposable = exports.Disposable.NONE;
190
- }
191
- }
192
- }
193
-
194
- class TransferObject {
195
- constructor() {
196
- //
197
- }
198
- }
199
- class PanelTransfer extends TransferObject {
200
- constructor(viewId, groupId, panelId) {
201
- super();
202
- this.viewId = viewId;
203
- this.groupId = groupId;
204
- this.panelId = panelId;
205
- }
206
- }
207
- class PaneTransfer extends TransferObject {
208
- constructor(viewId, paneId) {
209
- super();
210
- this.viewId = viewId;
211
- this.paneId = paneId;
212
- }
213
- }
214
- /**
215
- * A singleton to store transfer data during drag & drop operations that are only valid within the application.
216
- */
217
- class LocalSelectionTransfer {
218
- constructor() {
219
- // protect against external instantiation
220
- }
221
- static getInstance() {
222
- return LocalSelectionTransfer.INSTANCE;
223
- }
224
- hasData(proto) {
225
- return proto && proto === this.proto;
226
- }
227
- clearData(proto) {
228
- if (this.hasData(proto)) {
229
- this.proto = undefined;
230
- this.data = undefined;
231
- }
232
- }
233
- getData(proto) {
234
- if (this.hasData(proto)) {
235
- return this.data;
236
- }
237
- return undefined;
238
- }
239
- setData(data, proto) {
240
- if (proto) {
241
- this.data = data;
242
- this.proto = proto;
243
- }
244
- }
245
- }
246
- LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
247
- function getPanelData() {
248
- const panelTransfer = LocalSelectionTransfer.getInstance();
249
- const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
250
- if (!isPanelEvent) {
251
- return undefined;
252
- }
253
- return panelTransfer.getData(PanelTransfer.prototype)[0];
254
- }
255
- function getPaneData() {
256
- const paneTransfer = LocalSelectionTransfer.getInstance();
257
- const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
258
- if (!isPanelEvent) {
259
- return undefined;
260
- }
261
- return paneTransfer.getData(PaneTransfer.prototype)[0];
262
- }
263
-
264
224
  class SplitviewApi {
265
225
  constructor(component) {
266
226
  this.component = component;
@@ -283,6 +243,9 @@ class SplitviewApi {
283
243
  get orientation() {
284
244
  return this.component.orientation;
285
245
  }
246
+ get onDidLayoutFromJSON() {
247
+ return this.component.onDidLayoutFromJSON;
248
+ }
286
249
  get onDidLayoutChange() {
287
250
  return this.component.onDidLayoutChange;
288
251
  }
@@ -325,8 +288,8 @@ class SplitviewApi {
325
288
  movePanel(from, to) {
326
289
  this.component.movePanel(from, to);
327
290
  }
328
- fromJSON(data, deferComponentLayout) {
329
- this.component.fromJSON(data, deferComponentLayout);
291
+ fromJSON(data) {
292
+ this.component.fromJSON(data);
330
293
  }
331
294
  toJSON() {
332
295
  return this.component.toJSON();
@@ -351,6 +314,9 @@ class PaneviewApi {
351
314
  get onDidLayoutChange() {
352
315
  return this.component.onDidLayoutChange;
353
316
  }
317
+ get onDidLayoutFromJSON() {
318
+ return this.component.onDidLayoutFromJSON;
319
+ }
354
320
  get onDidAddView() {
355
321
  return this.component.onDidAddView;
356
322
  }
@@ -387,13 +353,13 @@ class PaneviewApi {
387
353
  this.component.layout(width, height);
388
354
  }
389
355
  addPanel(options) {
390
- return this.component.addPanel(options);
356
+ this.component.addPanel(options);
391
357
  }
392
358
  resizeToFit() {
393
359
  this.component.resizeToFit();
394
360
  }
395
- fromJSON(data, deferComponentLayout) {
396
- this.component.fromJSON(data, deferComponentLayout);
361
+ fromJSON(data) {
362
+ this.component.fromJSON(data);
397
363
  }
398
364
  toJSON() {
399
365
  return this.component.toJSON();
@@ -421,9 +387,6 @@ class GridviewApi {
421
387
  get height() {
422
388
  return this.component.height;
423
389
  }
424
- get onGridEvent() {
425
- return this.component.onGridEvent;
426
- }
427
390
  get onDidLayoutChange() {
428
391
  return this.component.onDidLayoutChange;
429
392
  }
@@ -478,8 +441,8 @@ class GridviewApi {
478
441
  setActive(panel) {
479
442
  this.component.setActive(panel);
480
443
  }
481
- fromJSON(data, deferComponentLayout) {
482
- return this.component.fromJSON(data, deferComponentLayout);
444
+ fromJSON(data) {
445
+ return this.component.fromJSON(data);
483
446
  }
484
447
  toJSON() {
485
448
  return this.component.toJSON();
@@ -513,9 +476,6 @@ class DockviewApi {
513
476
  get totalPanels() {
514
477
  return this.component.totalPanels;
515
478
  }
516
- get onGridEvent() {
517
- return this.component.onGridEvent;
518
- }
519
479
  get onDidActiveGroupChange() {
520
480
  return this.component.onDidActiveGroupChange;
521
481
  }
@@ -534,7 +494,7 @@ class DockviewApi {
534
494
  get onDidRemovePanel() {
535
495
  return this.component.onDidRemovePanel;
536
496
  }
537
- get onDidLayoutfromJSON() {
497
+ get onDidLayoutFromJSON() {
538
498
  return this.component.onDidLayoutfromJSON;
539
499
  }
540
500
  get onDidLayoutChange() {
@@ -599,6 +559,46 @@ class DockviewApi {
599
559
  }
600
560
  }
601
561
 
562
+ var Disposable;
563
+ (function (Disposable) {
564
+ Disposable.NONE = {
565
+ dispose: () => {
566
+ // noop
567
+ },
568
+ };
569
+ })(Disposable || (Disposable = {}));
570
+ class CompositeDisposable {
571
+ constructor(...args) {
572
+ this.disposables = args;
573
+ }
574
+ static from(...args) {
575
+ return new CompositeDisposable(...args);
576
+ }
577
+ addDisposables(...args) {
578
+ args.forEach((arg) => this.disposables.push(arg));
579
+ }
580
+ dispose() {
581
+ this.disposables.forEach((arg) => arg.dispose());
582
+ }
583
+ }
584
+ class MutableDisposable {
585
+ constructor() {
586
+ this._disposable = Disposable.NONE;
587
+ }
588
+ set value(disposable) {
589
+ if (this._disposable) {
590
+ this._disposable.dispose();
591
+ }
592
+ this._disposable = disposable;
593
+ }
594
+ dispose() {
595
+ if (this._disposable) {
596
+ this._disposable.dispose();
597
+ this._disposable = Disposable.NONE;
598
+ }
599
+ }
600
+ }
601
+
602
602
  function watchElementResize(element, cb) {
603
603
  const observer = new ResizeObserver((entires) => {
604
604
  const firstEntry = entires[0];
@@ -1544,13 +1544,13 @@ class Splitview {
1544
1544
  this._onDidSashEnd.dispose();
1545
1545
  this._onDidAddView.dispose();
1546
1546
  this._onDidRemoveView.dispose();
1547
- this.element.remove();
1548
1547
  for (let i = 0; i < this.element.children.length; i++) {
1549
1548
  if (this.element.children.item(i) === this.element) {
1550
1549
  this.element.removeChild(this.element);
1551
1550
  break;
1552
1551
  }
1553
1552
  }
1553
+ this.element.remove();
1554
1554
  }
1555
1555
  }
1556
1556
 
@@ -1573,7 +1573,7 @@ class Paneview extends CompositeDisposable {
1573
1573
  });
1574
1574
  // if we've added views from the descriptor we need to
1575
1575
  // add the panes to our Pane array and setup animation
1576
- this.getPanes().forEach((pane, index) => {
1576
+ this.getPanes().forEach((pane) => {
1577
1577
  const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
1578
1578
  this.setupAnimation();
1579
1579
  this._onDidChange.fire(undefined);
@@ -1641,17 +1641,20 @@ class Paneview extends CompositeDisposable {
1641
1641
  getPanes() {
1642
1642
  return this.splitview.getViews();
1643
1643
  }
1644
- removePane(index) {
1644
+ removePane(index, options = { skipDispose: false }) {
1645
1645
  const paneItem = this.paneItems.splice(index, 1)[0];
1646
1646
  this.splitview.removeView(index);
1647
- paneItem.disposable.dispose();
1647
+ if (!options.skipDispose) {
1648
+ paneItem.disposable.dispose();
1649
+ paneItem.pane.dispose();
1650
+ }
1648
1651
  return paneItem;
1649
1652
  }
1650
1653
  moveView(from, to) {
1651
1654
  if (from === to) {
1652
1655
  return;
1653
1656
  }
1654
- const view = this.removePane(from);
1657
+ const view = this.removePane(from, { skipDispose: true });
1655
1658
  this.skipAnimation = true;
1656
1659
  try {
1657
1660
  this.addPane(view.pane, view.pane.size, to, false);
@@ -1679,15 +1682,16 @@ class Paneview extends CompositeDisposable {
1679
1682
  }
1680
1683
  dispose() {
1681
1684
  super.dispose();
1682
- this.splitview.dispose();
1683
1685
  if (this.animationTimer) {
1684
1686
  clearTimeout(this.animationTimer);
1685
1687
  this.animationTimer = undefined;
1686
1688
  }
1687
1689
  this.paneItems.forEach((paneItem) => {
1688
1690
  paneItem.disposable.dispose();
1691
+ paneItem.pane.dispose();
1689
1692
  });
1690
1693
  this.paneItems = [];
1694
+ this.splitview.dispose();
1691
1695
  this.element.remove();
1692
1696
  }
1693
1697
  }
@@ -1751,7 +1755,7 @@ class Droptarget extends CompositeDisposable {
1751
1755
  this._onDrop = new Emitter();
1752
1756
  this.onDrop = this._onDrop.event;
1753
1757
  this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
1754
- onDragEnter: (e) => undefined,
1758
+ onDragEnter: () => undefined,
1755
1759
  onDragOver: (e) => {
1756
1760
  if (isBooleanValue(this.options.canDisplayOverlay)) {
1757
1761
  if (!this.options.canDisplayOverlay) {
@@ -1792,10 +1796,10 @@ class Droptarget extends CompositeDisposable {
1792
1796
  this.toggleClasses(quadrant, isSmallX, isSmallY);
1793
1797
  this.setState(quadrant);
1794
1798
  },
1795
- onDragLeave: (e) => {
1799
+ onDragLeave: () => {
1796
1800
  this.removeDropTarget();
1797
1801
  },
1798
- onDragEnd: (e) => {
1802
+ onDragEnd: () => {
1799
1803
  this.removeDropTarget();
1800
1804
  },
1801
1805
  onDrop: (e) => {
@@ -2006,7 +2010,7 @@ class BranchNode extends CompositeDisposable {
2006
2010
  this.children = [];
2007
2011
  this._onDidChange = new Emitter();
2008
2012
  this.onDidChange = this._onDidChange.event;
2009
- this._childrenDisposable = exports.Disposable.NONE;
2013
+ this._childrenDisposable = Disposable.NONE;
2010
2014
  this._orthogonalSize = orthogonalSize;
2011
2015
  this._size = size;
2012
2016
  this.element = document.createElement('div');
@@ -2031,7 +2035,7 @@ class BranchNode extends CompositeDisposable {
2031
2035
  : true,
2032
2036
  };
2033
2037
  }),
2034
- size: this.orthogonalSize,
2038
+ size: this.size,
2035
2039
  };
2036
2040
  this.children = childDescriptors.map((c) => c.node);
2037
2041
  this.splitview = new Splitview(this.element, {
@@ -2192,7 +2196,7 @@ class BranchNode extends CompositeDisposable {
2192
2196
  }
2193
2197
  setupChildrenEvents() {
2194
2198
  this._childrenDisposable.dispose();
2195
- this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))((e) => {
2199
+ this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))(() => {
2196
2200
  /**
2197
2201
  * indicate a change has occured to allows any re-rendering but don't bubble
2198
2202
  * event because that was specific to this branch
@@ -2352,6 +2356,7 @@ class Gridview {
2352
2356
  this.disposable.dispose();
2353
2357
  this._onDidChange.dispose();
2354
2358
  this.root.dispose();
2359
+ this.element.remove();
2355
2360
  }
2356
2361
  clear() {
2357
2362
  const orientation = this.root.orientation;
@@ -2554,7 +2559,7 @@ class Gridview {
2554
2559
  const [parentIndex, ...__] = [...rest].reverse();
2555
2560
  const isSiblingVisible = parent.isChildVisible(0);
2556
2561
  parent.removeChild(0, sizing);
2557
- const sizes = grandParent.children.map((size, i) => grandParent.getChildSize(i));
2562
+ const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2558
2563
  grandParent.removeChild(parentIndex, sizing);
2559
2564
  if (sibling instanceof BranchNode) {
2560
2565
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
@@ -2653,7 +2658,7 @@ class ContentContainer extends CompositeDisposable {
2653
2658
  }
2654
2659
  this.disposable.value = disposable;
2655
2660
  }
2656
- layout(width, height) {
2661
+ layout(_width, _height) {
2657
2662
  // noop
2658
2663
  }
2659
2664
  closePanel() {
@@ -2701,7 +2706,7 @@ class DragHandler extends CompositeDisposable {
2701
2706
  if (event.dataTransfer) {
2702
2707
  event.dataTransfer.effectAllowed = 'move';
2703
2708
  }
2704
- }), addDisposableListener(this.el, 'dragend', (ev) => {
2709
+ }), addDisposableListener(this.el, 'dragend', () => {
2705
2710
  for (const iframe of this.iframes) {
2706
2711
  iframe.style.pointerEvents = 'auto';
2707
2712
  }
@@ -3068,6 +3073,9 @@ class Groupview extends CompositeDisposable {
3068
3073
  get maximumWidth() {
3069
3074
  return Number.MAX_SAFE_INTEGER;
3070
3075
  }
3076
+ get hasWatermark() {
3077
+ return !!(this.watermark && this.container.contains(this.watermark.element));
3078
+ }
3071
3079
  initialize() {
3072
3080
  var _a, _b;
3073
3081
  if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
@@ -3146,10 +3154,10 @@ class Groupview extends CompositeDisposable {
3146
3154
  containsPanel(panel) {
3147
3155
  return this.panels.includes(panel);
3148
3156
  }
3149
- init(params) {
3157
+ init(_params) {
3150
3158
  //noop
3151
3159
  }
3152
- update(params) {
3160
+ update(_params) {
3153
3161
  //noop
3154
3162
  }
3155
3163
  focus() {
@@ -3372,29 +3380,18 @@ class Groupview extends CompositeDisposable {
3372
3380
  }
3373
3381
  }
3374
3382
  dispose() {
3383
+ var _a;
3384
+ super.dispose();
3385
+ (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
3375
3386
  for (const panel of this.panels) {
3376
3387
  panel.dispose();
3377
3388
  }
3378
- super.dispose();
3379
3389
  this.dropTarget.dispose();
3380
3390
  this.tabsContainer.dispose();
3381
3391
  this.contentContainer.dispose();
3382
3392
  }
3383
3393
  }
3384
3394
 
3385
- exports.GroupChangeKind = void 0;
3386
- (function (GroupChangeKind) {
3387
- GroupChangeKind["ADD_PANEL"] = "ADD_PANEL";
3388
- GroupChangeKind["REMOVE_PANEL"] = "REMOVE_PANEL";
3389
- GroupChangeKind["PANEL_ACTIVE"] = "PANEL_ACTIVE";
3390
- //
3391
- GroupChangeKind["GROUP_ACTIVE"] = "GROUP_ACTIVE";
3392
- GroupChangeKind["ADD_GROUP"] = "ADD_GROUP";
3393
- GroupChangeKind["REMOVE_GROUP"] = "REMOVE_GROUP";
3394
- //
3395
- GroupChangeKind["LAYOUT_FROM_JSON"] = "LAYOUT_FROM_JSON";
3396
- GroupChangeKind["LAYOUT"] = "LAYOUT";
3397
- })(exports.GroupChangeKind || (exports.GroupChangeKind = {}));
3398
3395
  const nextLayoutId = sequentialNumberGenerator();
3399
3396
  function toTarget(direction) {
3400
3397
  switch (direction) {
@@ -3417,9 +3414,6 @@ class BaseGrid extends CompositeDisposable {
3417
3414
  this._element = _element;
3418
3415
  this._id = nextLayoutId.next();
3419
3416
  this._groups = new Map();
3420
- //
3421
- this._onGridEvent = new Emitter();
3422
- this.onGridEvent = this._onGridEvent.event;
3423
3417
  this._onDidLayoutChange = new Emitter();
3424
3418
  this.onDidLayoutChange = this._onDidLayoutChange.event;
3425
3419
  this._onDidRemoveGroup = new Emitter();
@@ -3428,30 +3422,18 @@ class BaseGrid extends CompositeDisposable {
3428
3422
  this.onDidAddGroup = this._onDidAddGroup.event;
3429
3423
  this._onDidActiveGroupChange = new Emitter();
3430
3424
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
3425
+ this._bufferOnDidLayoutChange = new TickDelayedEvent();
3431
3426
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
3432
3427
  this.element.appendChild(this.gridview.element);
3433
3428
  this.layout(0, 0, true); // set some elements height/widths
3434
3429
  this.addDisposables(this.gridview.onDidChange(() => {
3435
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3430
+ this._onDidLayoutChange.fire();
3436
3431
  }));
3437
- this.addDisposables((() => {
3438
- const tickDelayedEvent = new TickDelayedEvent();
3439
- return new CompositeDisposable(this.onGridEvent((event) => {
3440
- if ([
3441
- exports.GroupChangeKind.ADD_GROUP,
3442
- exports.GroupChangeKind.REMOVE_GROUP,
3443
- exports.GroupChangeKind.ADD_PANEL,
3444
- exports.GroupChangeKind.REMOVE_PANEL,
3445
- exports.GroupChangeKind.GROUP_ACTIVE,
3446
- exports.GroupChangeKind.PANEL_ACTIVE,
3447
- exports.GroupChangeKind.LAYOUT,
3448
- ].includes(event.kind)) {
3449
- tickDelayedEvent.fire();
3450
- }
3451
- }), tickDelayedEvent.onEvent(() => {
3452
- this._onDidLayoutChange.fire();
3453
- }), tickDelayedEvent);
3454
- })());
3432
+ this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3433
+ this._bufferOnDidLayoutChange.fire();
3434
+ }), this._bufferOnDidLayoutChange.onEvent(() => {
3435
+ this._onDidLayoutChange.fire();
3436
+ }), this._bufferOnDidLayoutChange);
3455
3437
  }
3456
3438
  get id() {
3457
3439
  return this._id;
@@ -3488,14 +3470,13 @@ class BaseGrid extends CompositeDisposable {
3488
3470
  }
3489
3471
  setVisible(panel, visible) {
3490
3472
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
3491
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3473
+ this._onDidLayoutChange.fire();
3492
3474
  }
3493
3475
  isVisible(panel) {
3494
3476
  return this.gridview.isViewVisible(getGridLocation(panel.element));
3495
3477
  }
3496
3478
  doAddGroup(group, location = [0], size) {
3497
3479
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
3498
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.ADD_GROUP });
3499
3480
  this._onDidAddGroup.fire(group);
3500
3481
  this.doSetGroupActive(group);
3501
3482
  }
@@ -3507,9 +3488,9 @@ class BaseGrid extends CompositeDisposable {
3507
3488
  const view = this.gridview.remove(group, exports.Sizing.Distribute);
3508
3489
  if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
3509
3490
  item.disposable.dispose();
3491
+ item.value.dispose();
3510
3492
  this._groups.delete(group.id);
3511
3493
  }
3512
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.REMOVE_GROUP });
3513
3494
  this._onDidRemoveGroup.fire(group);
3514
3495
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
3515
3496
  const groups = Array.from(this._groups.values());
@@ -3538,9 +3519,6 @@ class BaseGrid extends CompositeDisposable {
3538
3519
  }
3539
3520
  }
3540
3521
  this._activeGroup = group;
3541
- this._onGridEvent.fire({
3542
- kind: exports.GroupChangeKind.GROUP_ACTIVE,
3543
- });
3544
3522
  this._onDidActiveGroupChange.fire(group);
3545
3523
  }
3546
3524
  removeGroup(group) {
@@ -3597,11 +3575,13 @@ class BaseGrid extends CompositeDisposable {
3597
3575
  }
3598
3576
  dispose() {
3599
3577
  super.dispose();
3600
- this._onGridEvent.dispose();
3601
3578
  this._onDidActiveGroupChange.dispose();
3602
3579
  this._onDidAddGroup.dispose();
3603
3580
  this._onDidRemoveGroup.dispose();
3604
3581
  this._onDidLayoutChange.dispose();
3582
+ for (const group of this.groups) {
3583
+ group.dispose();
3584
+ }
3605
3585
  this.gridview.dispose();
3606
3586
  }
3607
3587
  }
@@ -3779,6 +3759,10 @@ class DockviewGroupPanel extends CompositeDisposable {
3779
3759
  this.update({ params: { title } });
3780
3760
  }));
3781
3761
  }
3762
+ get params() {
3763
+ var _a;
3764
+ return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
3765
+ }
3782
3766
  get title() {
3783
3767
  return this._title;
3784
3768
  }
@@ -3927,7 +3911,7 @@ class Watermark extends CompositeDisposable {
3927
3911
  get id() {
3928
3912
  return 'watermark';
3929
3913
  }
3930
- update(event) {
3914
+ update(_event) {
3931
3915
  // noop
3932
3916
  }
3933
3917
  focus() {
@@ -3936,17 +3920,17 @@ class Watermark extends CompositeDisposable {
3936
3920
  toJSON() {
3937
3921
  return {};
3938
3922
  }
3939
- layout(width, height) {
3923
+ layout(_width, _height) {
3940
3924
  // noop
3941
3925
  }
3942
3926
  init(params) {
3943
3927
  this.params = params;
3944
- this.addDisposables(this.params.containerApi.onDidLayoutChange((event) => {
3928
+ this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
3945
3929
  this.render();
3946
3930
  }));
3947
3931
  this.render();
3948
3932
  }
3949
- updateParentGroup(group, visible) {
3933
+ updateParentGroup(group, _visible) {
3950
3934
  this.group = group;
3951
3935
  this.render();
3952
3936
  }
@@ -4121,7 +4105,7 @@ class DefaultTab extends CompositeDisposable {
4121
4105
  this._isGroupActive = group.isActive;
4122
4106
  this.render();
4123
4107
  }
4124
- layout(width, height) {
4108
+ layout(_width, _height) {
4125
4109
  // noop
4126
4110
  }
4127
4111
  render() {
@@ -4195,8 +4179,10 @@ class BasePanelView extends CompositeDisposable {
4195
4179
  };
4196
4180
  }
4197
4181
  dispose() {
4182
+ var _a;
4198
4183
  super.dispose();
4199
4184
  this.api.dispose();
4185
+ (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
4200
4186
  }
4201
4187
  }
4202
4188
 
@@ -4455,7 +4441,9 @@ class DockviewComponent extends BaseGrid {
4455
4441
  this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4456
4442
  this._onDidActivePanelChange = new Emitter();
4457
4443
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4458
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop);
4444
+ this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4445
+ this._bufferOnDidLayoutChange.fire();
4446
+ }));
4459
4447
  this._options = options;
4460
4448
  if (!this.options.components) {
4461
4449
  this.options.components = {};
@@ -4589,11 +4577,12 @@ class DockviewComponent extends BaseGrid {
4589
4577
  };
4590
4578
  }
4591
4579
  fromJSON(data) {
4580
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4581
+ for (const group of groups) {
4582
+ // remove the group will automatically remove the panels
4583
+ this.removeGroup(group, true);
4584
+ }
4592
4585
  this.gridview.clear();
4593
- this.panels.forEach((panel) => {
4594
- panel.dispose();
4595
- });
4596
- this._groups.clear();
4597
4586
  if (!this.deserializer) {
4598
4587
  throw new Error('invalid deserializer');
4599
4588
  }
@@ -4617,7 +4606,6 @@ class DockviewComponent extends BaseGrid {
4617
4606
  }
4618
4607
  }
4619
4608
  this.gridview.layout(this.width, this.height);
4620
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4621
4609
  this._onDidLayoutfromJSON.fire();
4622
4610
  }
4623
4611
  closeAllGroups() {
@@ -4639,7 +4627,10 @@ class DockviewComponent extends BaseGrid {
4639
4627
  }
4640
4628
  addPanel(options) {
4641
4629
  var _a, _b;
4642
- const panel = this._addPanel(options);
4630
+ if (this.panels.find((_) => _.id === options.id)) {
4631
+ throw new Error(`panel with id ${options.id} already exists`);
4632
+ }
4633
+ const panel = this.createPanel(options);
4643
4634
  let referenceGroup;
4644
4635
  if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
4645
4636
  const referencePanel = this.getGroupPanel(options.position.referencePanel);
@@ -4667,13 +4658,20 @@ class DockviewComponent extends BaseGrid {
4667
4658
  }
4668
4659
  return panel;
4669
4660
  }
4670
- removePanel(panel) {
4661
+ removePanel(panel, options = {
4662
+ removeEmptyGroup: true,
4663
+ skipDispose: false,
4664
+ }) {
4671
4665
  const group = panel.group;
4672
4666
  if (!group) {
4673
4667
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
4674
4668
  }
4675
4669
  group.model.removePanel(panel);
4676
- if (group.model.size === 0) {
4670
+ panel.dispose();
4671
+ const retainGroupForWatermark = this.size === 1;
4672
+ if (!retainGroupForWatermark &&
4673
+ group.model.size === 0 &&
4674
+ options.removeEmptyGroup) {
4677
4675
  this.removeGroup(group);
4678
4676
  }
4679
4677
  }
@@ -4705,16 +4703,15 @@ class DockviewComponent extends BaseGrid {
4705
4703
  this.doAddGroup(group);
4706
4704
  }
4707
4705
  }
4708
- removeGroup(group) {
4706
+ removeGroup(group, skipActive = false) {
4709
4707
  const panels = [...group.model.panels]; // reassign since group panels will mutate
4710
- panels.forEach((panel) => {
4711
- this.removePanel(panel);
4712
- });
4713
- if (this._groups.size === 1) {
4714
- this._activeGroup = group;
4715
- return;
4708
+ for (const panel of panels) {
4709
+ this.removePanel(panel, {
4710
+ removeEmptyGroup: false,
4711
+ skipDispose: false,
4712
+ });
4716
4713
  }
4717
- super.removeGroup(group);
4714
+ super.doRemoveGroup(group, { skipActive });
4718
4715
  }
4719
4716
  moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
4720
4717
  var _a;
@@ -4769,15 +4766,11 @@ class DockviewComponent extends BaseGrid {
4769
4766
  }
4770
4767
  }
4771
4768
  doSetGroupActive(group, skipFocus) {
4772
- var _a, _b, _c;
4769
+ var _a, _b;
4773
4770
  const isGroupAlreadyFocused = this._activeGroup === group;
4774
4771
  super.doSetGroupActive(group, skipFocus);
4775
4772
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
4776
- this._onGridEvent.fire({
4777
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4778
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
4779
- });
4780
- this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
4773
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
4781
4774
  }
4782
4775
  }
4783
4776
  createGroup(options) {
@@ -4799,6 +4792,7 @@ class DockviewComponent extends BaseGrid {
4799
4792
  }
4800
4793
  }
4801
4794
  const view = new GroupviewPanel(this, id, options);
4795
+ view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4802
4796
  if (!this._groups.has(view.id)) {
4803
4797
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4804
4798
  const { groupId, itemId, target, index } = event;
@@ -4808,28 +4802,16 @@ class DockviewComponent extends BaseGrid {
4808
4802
  }), view.model.onDidGroupChange((event) => {
4809
4803
  switch (event.kind) {
4810
4804
  case exports.GroupChangeKind2.ADD_PANEL:
4811
- this._onGridEvent.fire({
4812
- kind: exports.GroupChangeKind.ADD_PANEL,
4813
- panel: event.panel,
4814
- });
4815
4805
  if (event.panel) {
4816
4806
  this._onDidAddPanel.fire(event.panel);
4817
4807
  }
4818
4808
  break;
4819
4809
  case exports.GroupChangeKind2.REMOVE_PANEL:
4820
- this._onGridEvent.fire({
4821
- kind: exports.GroupChangeKind.REMOVE_PANEL,
4822
- panel: event.panel,
4823
- });
4824
4810
  if (event.panel) {
4825
4811
  this._onDidRemovePanel.fire(event.panel);
4826
4812
  }
4827
4813
  break;
4828
4814
  case exports.GroupChangeKind2.PANEL_ACTIVE:
4829
- this._onGridEvent.fire({
4830
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4831
- panel: event.panel,
4832
- });
4833
4815
  this._onDidActivePanelChange.fire(event.panel);
4834
4816
  break;
4835
4817
  }
@@ -4844,7 +4826,7 @@ class DockviewComponent extends BaseGrid {
4844
4826
  }
4845
4827
  return view;
4846
4828
  }
4847
- _addPanel(options) {
4829
+ createPanel(options) {
4848
4830
  const view = new DefaultGroupPanelView({
4849
4831
  content: this.createContentComponent(options.id, options.component),
4850
4832
  tab: this.createTabComponent(options.id, options.tabComponent),
@@ -4945,7 +4927,7 @@ class GridviewComponent extends BaseGrid {
4945
4927
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
4946
4928
  }
4947
4929
  setActive(panel) {
4948
- this._groups.forEach((value, key) => {
4930
+ this._groups.forEach((value, _key) => {
4949
4931
  value.value.setActive(panel === value.value);
4950
4932
  });
4951
4933
  }
@@ -4956,10 +4938,14 @@ class GridviewComponent extends BaseGrid {
4956
4938
  var _a;
4957
4939
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4958
4940
  }
4959
- fromJSON(serializedGridview, deferComponentLayout) {
4941
+ fromJSON(serializedGridview) {
4960
4942
  const { grid, activePanel } = serializedGridview;
4943
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4944
+ for (const group of groups) {
4945
+ group.disposable.dispose();
4946
+ this.doRemoveGroup(group.value, { skipActive: true });
4947
+ }
4961
4948
  this.gridview.clear();
4962
- this._groups.clear();
4963
4949
  const queue = [];
4964
4950
  this.gridview.deserialize(grid, {
4965
4951
  fromJSON: (node) => {
@@ -4986,21 +4972,13 @@ class GridviewComponent extends BaseGrid {
4986
4972
  },
4987
4973
  });
4988
4974
  this.layout(this.width, this.height, true);
4989
- if (deferComponentLayout) {
4990
- setTimeout(() => {
4991
- queue.forEach((f) => f());
4992
- }, 0);
4993
- }
4994
- else {
4995
- queue.forEach((f) => f());
4996
- }
4975
+ queue.forEach((f) => f());
4997
4976
  if (typeof activePanel === 'string') {
4998
4977
  const panel = this.getPanel(activePanel);
4999
4978
  if (panel) {
5000
4979
  this.doSetGroupActive(panel);
5001
4980
  }
5002
4981
  }
5003
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
5004
4982
  this._onDidLayoutfromJSON.fire();
5005
4983
  }
5006
4984
  movePanel(panel, options) {
@@ -5057,7 +5035,6 @@ class GridviewComponent extends BaseGrid {
5057
5035
  });
5058
5036
  this.registerPanel(view);
5059
5037
  this.doAddGroup(view, relativeLocation, options.size);
5060
- return { api: view.api };
5061
5038
  }
5062
5039
  registerPanel(panel) {
5063
5040
  const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
@@ -5108,11 +5085,6 @@ class GridviewComponent extends BaseGrid {
5108
5085
  }
5109
5086
  removeGroup(group) {
5110
5087
  super.removeGroup(group);
5111
- const panel = this._groups.get(group.id);
5112
- if (panel) {
5113
- panel.disposable.dispose();
5114
- this._groups.delete(group.id);
5115
- }
5116
5088
  }
5117
5089
  dispose() {
5118
5090
  super.dispose();
@@ -5129,6 +5101,8 @@ class SplitviewComponent extends CompositeDisposable {
5129
5101
  this.element = element;
5130
5102
  this._disposable = new MutableDisposable();
5131
5103
  this.panels = new Map();
5104
+ this._onDidLayoutfromJSON = new Emitter();
5105
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5132
5106
  this._onDidAddView = new Emitter();
5133
5107
  this.onDidAddView = this._onDidAddView.event;
5134
5108
  this._onDidRemoveView = new Emitter();
@@ -5143,7 +5117,7 @@ class SplitviewComponent extends CompositeDisposable {
5143
5117
  options.frameworkComponents = {};
5144
5118
  }
5145
5119
  this.splitview = new Splitview(this.element, options);
5146
- this.addDisposables(this._disposable, this._onDidAddView, this._onDidRemoveView, this._onDidLayoutChange);
5120
+ this.addDisposables(this._disposable, this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
5147
5121
  }
5148
5122
  get options() {
5149
5123
  return this._options;
@@ -5219,7 +5193,11 @@ class SplitviewComponent extends CompositeDisposable {
5219
5193
  }
5220
5194
  removePanel(panel, sizing) {
5221
5195
  const disposable = this.panels.get(panel.id);
5222
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
5196
+ if (!disposable) {
5197
+ throw new Error(`unknown splitview panel ${panel.id}`);
5198
+ }
5199
+ disposable.disposable.dispose();
5200
+ disposable.value.dispose();
5223
5201
  this.panels.delete(panel.id);
5224
5202
  const index = this.getPanels().findIndex((_) => _ === panel);
5225
5203
  this.splitview.removeView(index, sizing);
@@ -5278,7 +5256,7 @@ class SplitviewComponent extends CompositeDisposable {
5278
5256
  }
5279
5257
  this.setActive(view, true);
5280
5258
  });
5281
- this.panels.set(view.id, disposable);
5259
+ this.panels.set(view.id, { disposable, value: view });
5282
5260
  }
5283
5261
  toJSON() {
5284
5262
  var _a;
@@ -5300,8 +5278,13 @@ class SplitviewComponent extends CompositeDisposable {
5300
5278
  orientation: this.splitview.orientation,
5301
5279
  };
5302
5280
  }
5303
- fromJSON(serializedSplitview, deferComponentLayout = false) {
5281
+ fromJSON(serializedSplitview) {
5304
5282
  const { views, orientation, size, activeView } = serializedSplitview;
5283
+ for (const [_, value] of this.panels.entries()) {
5284
+ value.disposable.dispose();
5285
+ value.value.dispose();
5286
+ }
5287
+ this.panels.clear();
5305
5288
  this.splitview.dispose();
5306
5289
  const queue = [];
5307
5290
  this.splitview = new Splitview(this.element, {
@@ -5341,26 +5324,22 @@ class SplitviewComponent extends CompositeDisposable {
5341
5324
  },
5342
5325
  });
5343
5326
  this.layout(this.width, this.height);
5344
- if (deferComponentLayout) {
5345
- setTimeout(() => {
5346
- queue.forEach((f) => f());
5347
- }, 0);
5348
- }
5349
- else {
5350
- queue.forEach((f) => f());
5351
- }
5327
+ queue.forEach((f) => f());
5352
5328
  if (typeof activeView === 'string') {
5353
5329
  const panel = this.getPanel(activeView);
5354
5330
  if (panel) {
5355
5331
  this.setActive(panel);
5356
5332
  }
5357
5333
  }
5334
+ this._onDidLayoutfromJSON.fire();
5358
5335
  }
5359
5336
  dispose() {
5360
- Array.from(this.panels.values()).forEach((value) => {
5361
- value.dispose();
5362
- });
5337
+ for (const [_, value] of this.panels.entries()) {
5338
+ value.disposable.dispose();
5339
+ value.value.dispose();
5340
+ }
5363
5341
  this.panels.clear();
5342
+ this.splitview.dispose();
5364
5343
  super.dispose();
5365
5344
  }
5366
5345
  }
@@ -5629,7 +5608,7 @@ class DraggablePaneviewPanel extends PaneviewPanel {
5629
5608
  })(this.header);
5630
5609
  this.target = new Droptarget(this.element, {
5631
5610
  validOverlays: 'vertical',
5632
- canDisplayOverlay: (event) => {
5611
+ canDisplayOverlay: () => {
5633
5612
  const data = getPaneData();
5634
5613
  if (!data) {
5635
5614
  return true;
@@ -5700,7 +5679,7 @@ class DefaultHeader extends CompositeDisposable {
5700
5679
  this._expander.textContent = e.isExpanded ? '<' : '>';
5701
5680
  });
5702
5681
  }
5703
- update(params) {
5682
+ update(_params) {
5704
5683
  //
5705
5684
  }
5706
5685
  dispose() {
@@ -5726,6 +5705,9 @@ class PaneviewComponent extends CompositeDisposable {
5726
5705
  super();
5727
5706
  this.element = element;
5728
5707
  this._disposable = new MutableDisposable();
5708
+ this._viewDisposables = new Map();
5709
+ this._onDidLayoutfromJSON = new Emitter();
5710
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5729
5711
  this._onDidLayoutChange = new Emitter();
5730
5712
  this.onDidLayoutChange = this._onDidLayoutChange.event;
5731
5713
  this._onDidDrop = new Emitter();
@@ -5734,7 +5716,7 @@ class PaneviewComponent extends CompositeDisposable {
5734
5716
  this.onDidAddView = this._onDidAddView.event;
5735
5717
  this._onDidRemoveView = new Emitter();
5736
5718
  this.onDidRemoveView = this._onDidRemoveView.event;
5737
- this.addDisposables(this._onDidLayoutChange, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5719
+ this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5738
5720
  this._options = options;
5739
5721
  if (!options.components) {
5740
5722
  options.components = {};
@@ -5810,9 +5792,7 @@ class PaneviewComponent extends CompositeDisposable {
5810
5792
  isExpanded: !!options.isExpanded,
5811
5793
  disableDnd: !!this.options.disableDnd,
5812
5794
  });
5813
- const disposable = new CompositeDisposable(view.onDidDrop((event) => {
5814
- this._onDidDrop.fire(event);
5815
- }));
5795
+ this.doAddPanel(view);
5816
5796
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
5817
5797
  const index = typeof options.index === 'number' ? options.index : undefined;
5818
5798
  view.init({
@@ -5825,7 +5805,7 @@ class PaneviewComponent extends CompositeDisposable {
5825
5805
  });
5826
5806
  this.paneview.addPane(view, size, index);
5827
5807
  view.orientation = this.paneview.orientation;
5828
- return disposable;
5808
+ return view;
5829
5809
  }
5830
5810
  getPanels() {
5831
5811
  return this.paneview.getPanes();
@@ -5834,6 +5814,7 @@ class PaneviewComponent extends CompositeDisposable {
5834
5814
  const views = this.getPanels();
5835
5815
  const index = views.findIndex((_) => _ === panel);
5836
5816
  this.paneview.removePane(index);
5817
+ this.doRemovePanel(panel);
5837
5818
  }
5838
5819
  movePanel(from, to) {
5839
5820
  this.paneview.moveView(from, to);
@@ -5880,9 +5861,13 @@ class PaneviewComponent extends CompositeDisposable {
5880
5861
  size: this.paneview.size,
5881
5862
  };
5882
5863
  }
5883
- fromJSON(serializedPaneview, deferComponentLayout) {
5864
+ fromJSON(serializedPaneview) {
5884
5865
  const { views, size } = serializedPaneview;
5885
5866
  const queue = [];
5867
+ for (const [_, value] of this._viewDisposables.entries()) {
5868
+ value.dispose();
5869
+ }
5870
+ this._viewDisposables.clear();
5886
5871
  this.paneview.dispose();
5887
5872
  this.paneview = new Paneview(this.element, {
5888
5873
  orientation: exports.Orientation.VERTICAL,
@@ -5918,9 +5903,7 @@ class PaneviewComponent extends CompositeDisposable {
5918
5903
  isExpanded: !!view.expanded,
5919
5904
  disableDnd: !!this.options.disableDnd,
5920
5905
  });
5921
- panel.onDidDrop((event) => {
5922
- this._onDidDrop.fire(event);
5923
- });
5906
+ this.doAddPanel(panel);
5924
5907
  queue.push(() => {
5925
5908
  panel.init({
5926
5909
  params: data.params || {},
@@ -5941,14 +5924,29 @@ class PaneviewComponent extends CompositeDisposable {
5941
5924
  },
5942
5925
  });
5943
5926
  this.layout(this.width, this.height);
5944
- if (deferComponentLayout) {
5945
- setTimeout(() => {
5946
- queue.forEach((f) => f());
5947
- }, 0);
5927
+ queue.forEach((f) => f());
5928
+ this._onDidLayoutfromJSON.fire();
5929
+ }
5930
+ doAddPanel(panel) {
5931
+ const disposable = panel.onDidDrop((event) => {
5932
+ this._onDidDrop.fire(event);
5933
+ });
5934
+ this._viewDisposables.set(panel.id, disposable);
5935
+ }
5936
+ doRemovePanel(panel) {
5937
+ const disposable = this._viewDisposables.get(panel.id);
5938
+ if (disposable) {
5939
+ disposable.dispose();
5940
+ this._viewDisposables.delete(panel.id);
5948
5941
  }
5949
- else {
5950
- queue.forEach((f) => f());
5942
+ }
5943
+ dispose() {
5944
+ super.dispose();
5945
+ for (const [_, value] of this._viewDisposables.entries()) {
5946
+ value.dispose();
5951
5947
  }
5948
+ this._viewDisposables.clear();
5949
+ this.paneview.dispose();
5952
5950
  }
5953
5951
  }
5954
5952
 
@@ -6176,18 +6174,12 @@ class ReactPanelContentPart {
6176
6174
  this.id = id;
6177
6175
  this.component = component;
6178
6176
  this.reactPortalStore = reactPortalStore;
6179
- // private hostedContainer: HostedContainer;
6180
6177
  this._onDidFocus = new Emitter();
6181
6178
  this.onDidFocus = this._onDidFocus.event;
6182
6179
  this._onDidBlur = new Emitter();
6183
6180
  this.onDidBlur = this._onDidBlur.event;
6184
6181
  this._element = document.createElement('div');
6185
6182
  this._element.className = 'dockview-react-part';
6186
- // this.hostedContainer = new HostedContainer({
6187
- // id,
6188
- // });
6189
- // this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
6190
- // this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
6191
6183
  this._actionsElement = document.createElement('div');
6192
6184
  this._actionsElement.className = 'dockview-react-part';
6193
6185
  }
@@ -6222,15 +6214,11 @@ class ReactPanelContentPart {
6222
6214
  var _a;
6223
6215
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
6224
6216
  }
6225
- updateParentGroup(group, isPanelVisible) {
6217
+ updateParentGroup(group, _isPanelVisible) {
6226
6218
  this._group = group;
6227
6219
  }
6228
- layout(width, height) {
6220
+ layout(_width, _height) {
6229
6221
  // noop
6230
- // this.hostedContainer.layout(
6231
- // this.element
6232
- // // { width, height }
6233
- // );
6234
6222
  }
6235
6223
  close() {
6236
6224
  return Promise.resolve(true);
@@ -6240,7 +6228,6 @@ class ReactPanelContentPart {
6240
6228
  this._onDidFocus.dispose();
6241
6229
  this._onDidBlur.dispose();
6242
6230
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
6243
- // this.hostedContainer?.dispose();
6244
6231
  (_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
6245
6232
  }
6246
6233
  }
@@ -6275,10 +6262,10 @@ class ReactPanelHeaderPart {
6275
6262
  id: this.id,
6276
6263
  };
6277
6264
  }
6278
- layout(width, height) {
6265
+ layout(_width, _height) {
6279
6266
  // noop - retrieval from api
6280
6267
  }
6281
- updateParentGroup(group, isPanelVisible) {
6268
+ updateParentGroup(_group, _isPanelVisible) {
6282
6269
  // noop - retrieval from api
6283
6270
  }
6284
6271
  dispose() {
@@ -6357,10 +6344,10 @@ class ReactWatermarkPart {
6357
6344
  id: this.id,
6358
6345
  };
6359
6346
  }
6360
- layout(width, height) {
6347
+ layout(_width, _height) {
6361
6348
  // noop - retrieval from api
6362
6349
  }
6363
- updateParentGroup(group, isPanelVisible) {
6350
+ updateParentGroup(group, _isPanelVisible) {
6364
6351
  // noop - retrieval from api
6365
6352
  this._groupRef.value = group;
6366
6353
  }
@@ -6394,21 +6381,21 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
6394
6381
  var _a;
6395
6382
  const factory = {
6396
6383
  content: {
6397
- createComponent: (id, componentId, component) => {
6384
+ createComponent: (_id, componentId, component) => {
6398
6385
  return new ReactPanelContentPart(componentId, component, {
6399
6386
  addPortal,
6400
6387
  });
6401
6388
  },
6402
6389
  },
6403
6390
  tab: {
6404
- createComponent: (id, componentId, component) => {
6391
+ createComponent: (_id, componentId, component) => {
6405
6392
  return new ReactPanelHeaderPart(componentId, component, {
6406
6393
  addPortal,
6407
6394
  });
6408
6395
  },
6409
6396
  },
6410
6397
  watermark: {
6411
- createComponent: (id, componentId, component) => {
6398
+ createComponent: (_id, componentId, component) => {
6412
6399
  return new ReactWatermarkPart(componentId, component, {
6413
6400
  addPortal,
6414
6401
  });
@@ -6427,11 +6414,6 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
6427
6414
  ? { separatorBorder: 'transparent' }
6428
6415
  : undefined,
6429
6416
  });
6430
- const disposable = dockview.onDidDrop((event) => {
6431
- if (props.onDidDrop) {
6432
- props.onDidDrop(event);
6433
- }
6434
- });
6435
6417
  (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
6436
6418
  dockview.deserializer = new ReactPanelDeserialzier(dockview);
6437
6419
  const { clientWidth, clientHeight } = domRef.current;
@@ -6441,10 +6423,25 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
6441
6423
  }
6442
6424
  dockviewRef.current = dockview;
6443
6425
  return () => {
6444
- disposable.dispose();
6445
6426
  dockview.dispose();
6427
+ element.remove();
6446
6428
  };
6447
6429
  }, []);
6430
+ React__namespace.useEffect(() => {
6431
+ if (!dockviewRef.current) {
6432
+ return () => {
6433
+ // noop
6434
+ };
6435
+ }
6436
+ const disposable = dockviewRef.current.onDidDrop((event) => {
6437
+ if (props.onDidDrop) {
6438
+ props.onDidDrop(event);
6439
+ }
6440
+ });
6441
+ return () => {
6442
+ disposable.dispose();
6443
+ };
6444
+ }, [props.onDidDrop]);
6448
6445
  React__namespace.useEffect(() => {
6449
6446
  if (!dockviewRef.current) {
6450
6447
  return;
@@ -6453,6 +6450,14 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
6453
6450
  frameworkComponents: props.components,
6454
6451
  });
6455
6452
  }, [props.components]);
6453
+ React__namespace.useEffect(() => {
6454
+ if (!dockviewRef.current) {
6455
+ return;
6456
+ }
6457
+ dockviewRef.current.updateOptions({
6458
+ watermarkFrameworkComponent: props.watermarkComponent,
6459
+ });
6460
+ }, [props.watermarkComponent]);
6456
6461
  React__namespace.useEffect(() => {
6457
6462
  if (!dockviewRef.current) {
6458
6463
  return;
@@ -6588,7 +6593,9 @@ const SplitviewReact = React__namespace.forwardRef((props, ref) => {
6588
6593
  });
6589
6594
  },
6590
6595
  },
6591
- proportionalLayout: props.proportionalLayout,
6596
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6597
+ ? props.proportionalLayout
6598
+ : true,
6592
6599
  styles: props.hideBorders
6593
6600
  ? { separatorBorder: 'transparent' }
6594
6601
  : undefined,
@@ -6656,7 +6663,9 @@ const GridviewReact = React__namespace.forwardRef((props, ref) => {
6656
6663
  var _a;
6657
6664
  const element = document.createElement('div');
6658
6665
  const gridview = new GridviewComponent(element, {
6659
- proportionalLayout: !!props.proportionalLayout,
6666
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6667
+ ? props.proportionalLayout
6668
+ : true,
6660
6669
  orientation: props.orientation,
6661
6670
  frameworkComponents: props.components,
6662
6671
  frameworkComponentFactory: {
@@ -6679,6 +6688,7 @@ const GridviewReact = React__namespace.forwardRef((props, ref) => {
6679
6688
  gridviewRef.current = gridview;
6680
6689
  return () => {
6681
6690
  gridview.dispose();
6691
+ element.remove();
6682
6692
  };
6683
6693
  }, []);
6684
6694
  React__namespace.useEffect(() => {
@@ -6749,7 +6759,7 @@ const PaneviewReact = React__namespace.forwardRef((props, ref) => {
6749
6759
  };
6750
6760
  }, [props.disableAutoResizing]);
6751
6761
  React__namespace.useEffect(() => {
6752
- const createComponent = (id, componentId, component) => new PanePanelSection(id, component, {
6762
+ const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
6753
6763
  addPortal,
6754
6764
  });
6755
6765
  const paneview = new PaneviewComponent(domRef.current, {
@@ -6815,13 +6825,11 @@ const PaneviewReact = React__namespace.forwardRef((props, ref) => {
6815
6825
  PaneviewReact.displayName = 'PaneviewComponent';
6816
6826
 
6817
6827
  exports.BaseGrid = BaseGrid;
6818
- exports.CompositeDisposable = CompositeDisposable;
6819
6828
  exports.ContentContainer = ContentContainer;
6820
6829
  exports.DockviewApi = DockviewApi;
6821
6830
  exports.DockviewComponent = DockviewComponent;
6822
6831
  exports.DockviewComponents = DockviewComponents;
6823
6832
  exports.DockviewReact = DockviewReact;
6824
- exports.Emitter = Emitter;
6825
6833
  exports.Gridview = Gridview;
6826
6834
  exports.GridviewApi = GridviewApi;
6827
6835
  exports.GridviewComponent = GridviewComponent;
@@ -6829,7 +6837,6 @@ exports.GridviewPanel = GridviewPanel;
6829
6837
  exports.GridviewReact = GridviewReact;
6830
6838
  exports.Groupview = Groupview;
6831
6839
  exports.LocalSelectionTransfer = LocalSelectionTransfer;
6832
- exports.MutableDisposable = MutableDisposable;
6833
6840
  exports.PaneFramework = PaneFramework;
6834
6841
  exports.PaneTransfer = PaneTransfer;
6835
6842
  exports.PanelTransfer = PanelTransfer;
@@ -6848,9 +6855,6 @@ exports.SplitviewComponent = SplitviewComponent;
6848
6855
  exports.SplitviewPanel = SplitviewPanel;
6849
6856
  exports.SplitviewReact = SplitviewReact;
6850
6857
  exports.Tab = Tab$1;
6851
- exports.TickDelayedEvent = TickDelayedEvent;
6852
- exports.addDisposableListener = addDisposableListener;
6853
- exports.addDisposableWindowListener = addDisposableWindowListener;
6854
6858
  exports.getDirectionOrientation = getDirectionOrientation;
6855
6859
  exports.getGridLocation = getGridLocation;
6856
6860
  exports.getLocationOrientation = getLocationOrientation;