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
  */
@@ -54,9 +54,79 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
54
54
  }
55
55
  }
56
56
 
57
- 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}";
57
+ 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}";
58
58
  styleInject(css_248z);
59
59
 
60
+ class TransferObject {
61
+ constructor() {
62
+ //
63
+ }
64
+ }
65
+ class PanelTransfer extends TransferObject {
66
+ constructor(viewId, groupId, panelId) {
67
+ super();
68
+ this.viewId = viewId;
69
+ this.groupId = groupId;
70
+ this.panelId = panelId;
71
+ }
72
+ }
73
+ class PaneTransfer extends TransferObject {
74
+ constructor(viewId, paneId) {
75
+ super();
76
+ this.viewId = viewId;
77
+ this.paneId = paneId;
78
+ }
79
+ }
80
+ /**
81
+ * A singleton to store transfer data during drag & drop operations that are only valid within the application.
82
+ */
83
+ class LocalSelectionTransfer {
84
+ constructor() {
85
+ // protect against external instantiation
86
+ }
87
+ static getInstance() {
88
+ return LocalSelectionTransfer.INSTANCE;
89
+ }
90
+ hasData(proto) {
91
+ return proto && proto === this.proto;
92
+ }
93
+ clearData(proto) {
94
+ if (this.hasData(proto)) {
95
+ this.proto = undefined;
96
+ this.data = undefined;
97
+ }
98
+ }
99
+ getData(proto) {
100
+ if (this.hasData(proto)) {
101
+ return this.data;
102
+ }
103
+ return undefined;
104
+ }
105
+ setData(data, proto) {
106
+ if (proto) {
107
+ this.data = data;
108
+ this.proto = proto;
109
+ }
110
+ }
111
+ }
112
+ LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
113
+ function getPanelData() {
114
+ const panelTransfer = LocalSelectionTransfer.getInstance();
115
+ const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
116
+ if (!isPanelEvent) {
117
+ return undefined;
118
+ }
119
+ return panelTransfer.getData(PanelTransfer.prototype)[0];
120
+ }
121
+ function getPaneData() {
122
+ const paneTransfer = LocalSelectionTransfer.getInstance();
123
+ const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
124
+ if (!isPanelEvent) {
125
+ return undefined;
126
+ }
127
+ return paneTransfer.getData(PaneTransfer.prototype)[0];
128
+ }
129
+
60
130
  exports.Event = void 0;
61
131
  (function (Event) {
62
132
  Event.any = (...children) => {
@@ -146,116 +216,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
146
216
  }
147
217
  }
148
218
 
149
- exports.Disposable = void 0;
150
- (function (Disposable) {
151
- Disposable.NONE = {
152
- dispose: () => {
153
- // noop
154
- },
155
- };
156
- })(exports.Disposable || (exports.Disposable = {}));
157
- class CompositeDisposable {
158
- constructor(...args) {
159
- this.disposables = args;
160
- }
161
- static from(...args) {
162
- return new CompositeDisposable(...args);
163
- }
164
- addDisposables(...args) {
165
- args.forEach((arg) => this.disposables.push(arg));
166
- }
167
- dispose() {
168
- this.disposables.forEach((arg) => arg.dispose());
169
- }
170
- }
171
- class MutableDisposable {
172
- constructor() {
173
- this._disposable = exports.Disposable.NONE;
174
- }
175
- set value(disposable) {
176
- if (this._disposable) {
177
- this._disposable.dispose();
178
- }
179
- this._disposable = disposable;
180
- }
181
- dispose() {
182
- if (this._disposable) {
183
- this._disposable.dispose();
184
- this._disposable = exports.Disposable.NONE;
185
- }
186
- }
187
- }
188
-
189
- class TransferObject {
190
- constructor() {
191
- //
192
- }
193
- }
194
- class PanelTransfer extends TransferObject {
195
- constructor(viewId, groupId, panelId) {
196
- super();
197
- this.viewId = viewId;
198
- this.groupId = groupId;
199
- this.panelId = panelId;
200
- }
201
- }
202
- class PaneTransfer extends TransferObject {
203
- constructor(viewId, paneId) {
204
- super();
205
- this.viewId = viewId;
206
- this.paneId = paneId;
207
- }
208
- }
209
- /**
210
- * A singleton to store transfer data during drag & drop operations that are only valid within the application.
211
- */
212
- class LocalSelectionTransfer {
213
- constructor() {
214
- // protect against external instantiation
215
- }
216
- static getInstance() {
217
- return LocalSelectionTransfer.INSTANCE;
218
- }
219
- hasData(proto) {
220
- return proto && proto === this.proto;
221
- }
222
- clearData(proto) {
223
- if (this.hasData(proto)) {
224
- this.proto = undefined;
225
- this.data = undefined;
226
- }
227
- }
228
- getData(proto) {
229
- if (this.hasData(proto)) {
230
- return this.data;
231
- }
232
- return undefined;
233
- }
234
- setData(data, proto) {
235
- if (proto) {
236
- this.data = data;
237
- this.proto = proto;
238
- }
239
- }
240
- }
241
- LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
242
- function getPanelData() {
243
- const panelTransfer = LocalSelectionTransfer.getInstance();
244
- const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
245
- if (!isPanelEvent) {
246
- return undefined;
247
- }
248
- return panelTransfer.getData(PanelTransfer.prototype)[0];
249
- }
250
- function getPaneData() {
251
- const paneTransfer = LocalSelectionTransfer.getInstance();
252
- const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
253
- if (!isPanelEvent) {
254
- return undefined;
255
- }
256
- return paneTransfer.getData(PaneTransfer.prototype)[0];
257
- }
258
-
259
219
  class SplitviewApi {
260
220
  constructor(component) {
261
221
  this.component = component;
@@ -278,6 +238,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
278
238
  get orientation() {
279
239
  return this.component.orientation;
280
240
  }
241
+ get onDidLayoutFromJSON() {
242
+ return this.component.onDidLayoutFromJSON;
243
+ }
281
244
  get onDidLayoutChange() {
282
245
  return this.component.onDidLayoutChange;
283
246
  }
@@ -320,8 +283,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
320
283
  movePanel(from, to) {
321
284
  this.component.movePanel(from, to);
322
285
  }
323
- fromJSON(data, deferComponentLayout) {
324
- this.component.fromJSON(data, deferComponentLayout);
286
+ fromJSON(data) {
287
+ this.component.fromJSON(data);
325
288
  }
326
289
  toJSON() {
327
290
  return this.component.toJSON();
@@ -346,6 +309,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
346
309
  get onDidLayoutChange() {
347
310
  return this.component.onDidLayoutChange;
348
311
  }
312
+ get onDidLayoutFromJSON() {
313
+ return this.component.onDidLayoutFromJSON;
314
+ }
349
315
  get onDidAddView() {
350
316
  return this.component.onDidAddView;
351
317
  }
@@ -382,13 +348,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
382
348
  this.component.layout(width, height);
383
349
  }
384
350
  addPanel(options) {
385
- return this.component.addPanel(options);
351
+ this.component.addPanel(options);
386
352
  }
387
353
  resizeToFit() {
388
354
  this.component.resizeToFit();
389
355
  }
390
- fromJSON(data, deferComponentLayout) {
391
- this.component.fromJSON(data, deferComponentLayout);
356
+ fromJSON(data) {
357
+ this.component.fromJSON(data);
392
358
  }
393
359
  toJSON() {
394
360
  return this.component.toJSON();
@@ -416,9 +382,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
416
382
  get height() {
417
383
  return this.component.height;
418
384
  }
419
- get onGridEvent() {
420
- return this.component.onGridEvent;
421
- }
422
385
  get onDidLayoutChange() {
423
386
  return this.component.onDidLayoutChange;
424
387
  }
@@ -473,8 +436,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
473
436
  setActive(panel) {
474
437
  this.component.setActive(panel);
475
438
  }
476
- fromJSON(data, deferComponentLayout) {
477
- return this.component.fromJSON(data, deferComponentLayout);
439
+ fromJSON(data) {
440
+ return this.component.fromJSON(data);
478
441
  }
479
442
  toJSON() {
480
443
  return this.component.toJSON();
@@ -508,9 +471,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
508
471
  get totalPanels() {
509
472
  return this.component.totalPanels;
510
473
  }
511
- get onGridEvent() {
512
- return this.component.onGridEvent;
513
- }
514
474
  get onDidActiveGroupChange() {
515
475
  return this.component.onDidActiveGroupChange;
516
476
  }
@@ -529,7 +489,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
529
489
  get onDidRemovePanel() {
530
490
  return this.component.onDidRemovePanel;
531
491
  }
532
- get onDidLayoutfromJSON() {
492
+ get onDidLayoutFromJSON() {
533
493
  return this.component.onDidLayoutfromJSON;
534
494
  }
535
495
  get onDidLayoutChange() {
@@ -594,6 +554,46 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
594
554
  }
595
555
  }
596
556
 
557
+ var Disposable;
558
+ (function (Disposable) {
559
+ Disposable.NONE = {
560
+ dispose: () => {
561
+ // noop
562
+ },
563
+ };
564
+ })(Disposable || (Disposable = {}));
565
+ class CompositeDisposable {
566
+ constructor(...args) {
567
+ this.disposables = args;
568
+ }
569
+ static from(...args) {
570
+ return new CompositeDisposable(...args);
571
+ }
572
+ addDisposables(...args) {
573
+ args.forEach((arg) => this.disposables.push(arg));
574
+ }
575
+ dispose() {
576
+ this.disposables.forEach((arg) => arg.dispose());
577
+ }
578
+ }
579
+ class MutableDisposable {
580
+ constructor() {
581
+ this._disposable = Disposable.NONE;
582
+ }
583
+ set value(disposable) {
584
+ if (this._disposable) {
585
+ this._disposable.dispose();
586
+ }
587
+ this._disposable = disposable;
588
+ }
589
+ dispose() {
590
+ if (this._disposable) {
591
+ this._disposable.dispose();
592
+ this._disposable = Disposable.NONE;
593
+ }
594
+ }
595
+ }
596
+
597
597
  function watchElementResize(element, cb) {
598
598
  const observer = new ResizeObserver((entires) => {
599
599
  const firstEntry = entires[0];
@@ -1539,13 +1539,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1539
1539
  this._onDidSashEnd.dispose();
1540
1540
  this._onDidAddView.dispose();
1541
1541
  this._onDidRemoveView.dispose();
1542
- this.element.remove();
1543
1542
  for (let i = 0; i < this.element.children.length; i++) {
1544
1543
  if (this.element.children.item(i) === this.element) {
1545
1544
  this.element.removeChild(this.element);
1546
1545
  break;
1547
1546
  }
1548
1547
  }
1548
+ this.element.remove();
1549
1549
  }
1550
1550
  }
1551
1551
 
@@ -1568,7 +1568,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1568
1568
  });
1569
1569
  // if we've added views from the descriptor we need to
1570
1570
  // add the panes to our Pane array and setup animation
1571
- this.getPanes().forEach((pane, index) => {
1571
+ this.getPanes().forEach((pane) => {
1572
1572
  const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
1573
1573
  this.setupAnimation();
1574
1574
  this._onDidChange.fire(undefined);
@@ -1636,17 +1636,20 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1636
1636
  getPanes() {
1637
1637
  return this.splitview.getViews();
1638
1638
  }
1639
- removePane(index) {
1639
+ removePane(index, options = { skipDispose: false }) {
1640
1640
  const paneItem = this.paneItems.splice(index, 1)[0];
1641
1641
  this.splitview.removeView(index);
1642
- paneItem.disposable.dispose();
1642
+ if (!options.skipDispose) {
1643
+ paneItem.disposable.dispose();
1644
+ paneItem.pane.dispose();
1645
+ }
1643
1646
  return paneItem;
1644
1647
  }
1645
1648
  moveView(from, to) {
1646
1649
  if (from === to) {
1647
1650
  return;
1648
1651
  }
1649
- const view = this.removePane(from);
1652
+ const view = this.removePane(from, { skipDispose: true });
1650
1653
  this.skipAnimation = true;
1651
1654
  try {
1652
1655
  this.addPane(view.pane, view.pane.size, to, false);
@@ -1674,15 +1677,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1674
1677
  }
1675
1678
  dispose() {
1676
1679
  super.dispose();
1677
- this.splitview.dispose();
1678
1680
  if (this.animationTimer) {
1679
1681
  clearTimeout(this.animationTimer);
1680
1682
  this.animationTimer = undefined;
1681
1683
  }
1682
1684
  this.paneItems.forEach((paneItem) => {
1683
1685
  paneItem.disposable.dispose();
1686
+ paneItem.pane.dispose();
1684
1687
  });
1685
1688
  this.paneItems = [];
1689
+ this.splitview.dispose();
1686
1690
  this.element.remove();
1687
1691
  }
1688
1692
  }
@@ -1746,7 +1750,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1746
1750
  this._onDrop = new Emitter();
1747
1751
  this.onDrop = this._onDrop.event;
1748
1752
  this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
1749
- onDragEnter: (e) => undefined,
1753
+ onDragEnter: () => undefined,
1750
1754
  onDragOver: (e) => {
1751
1755
  if (isBooleanValue(this.options.canDisplayOverlay)) {
1752
1756
  if (!this.options.canDisplayOverlay) {
@@ -1787,10 +1791,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1787
1791
  this.toggleClasses(quadrant, isSmallX, isSmallY);
1788
1792
  this.setState(quadrant);
1789
1793
  },
1790
- onDragLeave: (e) => {
1794
+ onDragLeave: () => {
1791
1795
  this.removeDropTarget();
1792
1796
  },
1793
- onDragEnd: (e) => {
1797
+ onDragEnd: () => {
1794
1798
  this.removeDropTarget();
1795
1799
  },
1796
1800
  onDrop: (e) => {
@@ -2001,7 +2005,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2001
2005
  this.children = [];
2002
2006
  this._onDidChange = new Emitter();
2003
2007
  this.onDidChange = this._onDidChange.event;
2004
- this._childrenDisposable = exports.Disposable.NONE;
2008
+ this._childrenDisposable = Disposable.NONE;
2005
2009
  this._orthogonalSize = orthogonalSize;
2006
2010
  this._size = size;
2007
2011
  this.element = document.createElement('div');
@@ -2026,7 +2030,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2026
2030
  : true,
2027
2031
  };
2028
2032
  }),
2029
- size: this.orthogonalSize,
2033
+ size: this.size,
2030
2034
  };
2031
2035
  this.children = childDescriptors.map((c) => c.node);
2032
2036
  this.splitview = new Splitview(this.element, {
@@ -2187,7 +2191,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2187
2191
  }
2188
2192
  setupChildrenEvents() {
2189
2193
  this._childrenDisposable.dispose();
2190
- this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))((e) => {
2194
+ this._childrenDisposable = exports.Event.any(...this.children.map((c) => c.onDidChange))(() => {
2191
2195
  /**
2192
2196
  * indicate a change has occured to allows any re-rendering but don't bubble
2193
2197
  * event because that was specific to this branch
@@ -2347,6 +2351,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2347
2351
  this.disposable.dispose();
2348
2352
  this._onDidChange.dispose();
2349
2353
  this.root.dispose();
2354
+ this.element.remove();
2350
2355
  }
2351
2356
  clear() {
2352
2357
  const orientation = this.root.orientation;
@@ -2549,7 +2554,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2549
2554
  const [parentIndex, ...__] = [...rest].reverse();
2550
2555
  const isSiblingVisible = parent.isChildVisible(0);
2551
2556
  parent.removeChild(0, sizing);
2552
- const sizes = grandParent.children.map((size, i) => grandParent.getChildSize(i));
2557
+ const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2553
2558
  grandParent.removeChild(parentIndex, sizing);
2554
2559
  if (sibling instanceof BranchNode) {
2555
2560
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
@@ -2648,7 +2653,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2648
2653
  }
2649
2654
  this.disposable.value = disposable;
2650
2655
  }
2651
- layout(width, height) {
2656
+ layout(_width, _height) {
2652
2657
  // noop
2653
2658
  }
2654
2659
  closePanel() {
@@ -2696,7 +2701,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2696
2701
  if (event.dataTransfer) {
2697
2702
  event.dataTransfer.effectAllowed = 'move';
2698
2703
  }
2699
- }), addDisposableListener(this.el, 'dragend', (ev) => {
2704
+ }), addDisposableListener(this.el, 'dragend', () => {
2700
2705
  for (const iframe of this.iframes) {
2701
2706
  iframe.style.pointerEvents = 'auto';
2702
2707
  }
@@ -3063,6 +3068,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3063
3068
  get maximumWidth() {
3064
3069
  return Number.MAX_SAFE_INTEGER;
3065
3070
  }
3071
+ get hasWatermark() {
3072
+ return !!(this.watermark && this.container.contains(this.watermark.element));
3073
+ }
3066
3074
  initialize() {
3067
3075
  var _a, _b;
3068
3076
  if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
@@ -3141,10 +3149,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3141
3149
  containsPanel(panel) {
3142
3150
  return this.panels.includes(panel);
3143
3151
  }
3144
- init(params) {
3152
+ init(_params) {
3145
3153
  //noop
3146
3154
  }
3147
- update(params) {
3155
+ update(_params) {
3148
3156
  //noop
3149
3157
  }
3150
3158
  focus() {
@@ -3367,29 +3375,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3367
3375
  }
3368
3376
  }
3369
3377
  dispose() {
3378
+ var _a;
3379
+ super.dispose();
3380
+ (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
3370
3381
  for (const panel of this.panels) {
3371
3382
  panel.dispose();
3372
3383
  }
3373
- super.dispose();
3374
3384
  this.dropTarget.dispose();
3375
3385
  this.tabsContainer.dispose();
3376
3386
  this.contentContainer.dispose();
3377
3387
  }
3378
3388
  }
3379
3389
 
3380
- exports.GroupChangeKind = void 0;
3381
- (function (GroupChangeKind) {
3382
- GroupChangeKind["ADD_PANEL"] = "ADD_PANEL";
3383
- GroupChangeKind["REMOVE_PANEL"] = "REMOVE_PANEL";
3384
- GroupChangeKind["PANEL_ACTIVE"] = "PANEL_ACTIVE";
3385
- //
3386
- GroupChangeKind["GROUP_ACTIVE"] = "GROUP_ACTIVE";
3387
- GroupChangeKind["ADD_GROUP"] = "ADD_GROUP";
3388
- GroupChangeKind["REMOVE_GROUP"] = "REMOVE_GROUP";
3389
- //
3390
- GroupChangeKind["LAYOUT_FROM_JSON"] = "LAYOUT_FROM_JSON";
3391
- GroupChangeKind["LAYOUT"] = "LAYOUT";
3392
- })(exports.GroupChangeKind || (exports.GroupChangeKind = {}));
3393
3390
  const nextLayoutId = sequentialNumberGenerator();
3394
3391
  function toTarget(direction) {
3395
3392
  switch (direction) {
@@ -3412,9 +3409,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3412
3409
  this._element = _element;
3413
3410
  this._id = nextLayoutId.next();
3414
3411
  this._groups = new Map();
3415
- //
3416
- this._onGridEvent = new Emitter();
3417
- this.onGridEvent = this._onGridEvent.event;
3418
3412
  this._onDidLayoutChange = new Emitter();
3419
3413
  this.onDidLayoutChange = this._onDidLayoutChange.event;
3420
3414
  this._onDidRemoveGroup = new Emitter();
@@ -3423,30 +3417,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3423
3417
  this.onDidAddGroup = this._onDidAddGroup.event;
3424
3418
  this._onDidActiveGroupChange = new Emitter();
3425
3419
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
3420
+ this._bufferOnDidLayoutChange = new TickDelayedEvent();
3426
3421
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
3427
3422
  this.element.appendChild(this.gridview.element);
3428
3423
  this.layout(0, 0, true); // set some elements height/widths
3429
3424
  this.addDisposables(this.gridview.onDidChange(() => {
3430
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3425
+ this._onDidLayoutChange.fire();
3431
3426
  }));
3432
- this.addDisposables((() => {
3433
- const tickDelayedEvent = new TickDelayedEvent();
3434
- return new CompositeDisposable(this.onGridEvent((event) => {
3435
- if ([
3436
- exports.GroupChangeKind.ADD_GROUP,
3437
- exports.GroupChangeKind.REMOVE_GROUP,
3438
- exports.GroupChangeKind.ADD_PANEL,
3439
- exports.GroupChangeKind.REMOVE_PANEL,
3440
- exports.GroupChangeKind.GROUP_ACTIVE,
3441
- exports.GroupChangeKind.PANEL_ACTIVE,
3442
- exports.GroupChangeKind.LAYOUT,
3443
- ].includes(event.kind)) {
3444
- tickDelayedEvent.fire();
3445
- }
3446
- }), tickDelayedEvent.onEvent(() => {
3447
- this._onDidLayoutChange.fire();
3448
- }), tickDelayedEvent);
3449
- })());
3427
+ this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3428
+ this._bufferOnDidLayoutChange.fire();
3429
+ }), this._bufferOnDidLayoutChange.onEvent(() => {
3430
+ this._onDidLayoutChange.fire();
3431
+ }), this._bufferOnDidLayoutChange);
3450
3432
  }
3451
3433
  get id() {
3452
3434
  return this._id;
@@ -3483,14 +3465,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3483
3465
  }
3484
3466
  setVisible(panel, visible) {
3485
3467
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
3486
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3468
+ this._onDidLayoutChange.fire();
3487
3469
  }
3488
3470
  isVisible(panel) {
3489
3471
  return this.gridview.isViewVisible(getGridLocation(panel.element));
3490
3472
  }
3491
3473
  doAddGroup(group, location = [0], size) {
3492
3474
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
3493
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.ADD_GROUP });
3494
3475
  this._onDidAddGroup.fire(group);
3495
3476
  this.doSetGroupActive(group);
3496
3477
  }
@@ -3502,9 +3483,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3502
3483
  const view = this.gridview.remove(group, exports.Sizing.Distribute);
3503
3484
  if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {
3504
3485
  item.disposable.dispose();
3486
+ item.value.dispose();
3505
3487
  this._groups.delete(group.id);
3506
3488
  }
3507
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.REMOVE_GROUP });
3508
3489
  this._onDidRemoveGroup.fire(group);
3509
3490
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
3510
3491
  const groups = Array.from(this._groups.values());
@@ -3533,9 +3514,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3533
3514
  }
3534
3515
  }
3535
3516
  this._activeGroup = group;
3536
- this._onGridEvent.fire({
3537
- kind: exports.GroupChangeKind.GROUP_ACTIVE,
3538
- });
3539
3517
  this._onDidActiveGroupChange.fire(group);
3540
3518
  }
3541
3519
  removeGroup(group) {
@@ -3592,11 +3570,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3592
3570
  }
3593
3571
  dispose() {
3594
3572
  super.dispose();
3595
- this._onGridEvent.dispose();
3596
3573
  this._onDidActiveGroupChange.dispose();
3597
3574
  this._onDidAddGroup.dispose();
3598
3575
  this._onDidRemoveGroup.dispose();
3599
3576
  this._onDidLayoutChange.dispose();
3577
+ for (const group of this.groups) {
3578
+ group.dispose();
3579
+ }
3600
3580
  this.gridview.dispose();
3601
3581
  }
3602
3582
  }
@@ -3774,6 +3754,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3774
3754
  this.update({ params: { title } });
3775
3755
  }));
3776
3756
  }
3757
+ get params() {
3758
+ var _a;
3759
+ return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
3760
+ }
3777
3761
  get title() {
3778
3762
  return this._title;
3779
3763
  }
@@ -3922,7 +3906,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3922
3906
  get id() {
3923
3907
  return 'watermark';
3924
3908
  }
3925
- update(event) {
3909
+ update(_event) {
3926
3910
  // noop
3927
3911
  }
3928
3912
  focus() {
@@ -3931,17 +3915,17 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3931
3915
  toJSON() {
3932
3916
  return {};
3933
3917
  }
3934
- layout(width, height) {
3918
+ layout(_width, _height) {
3935
3919
  // noop
3936
3920
  }
3937
3921
  init(params) {
3938
3922
  this.params = params;
3939
- this.addDisposables(this.params.containerApi.onDidLayoutChange((event) => {
3923
+ this.addDisposables(this.params.containerApi.onDidLayoutChange(() => {
3940
3924
  this.render();
3941
3925
  }));
3942
3926
  this.render();
3943
3927
  }
3944
- updateParentGroup(group, visible) {
3928
+ updateParentGroup(group, _visible) {
3945
3929
  this.group = group;
3946
3930
  this.render();
3947
3931
  }
@@ -4116,7 +4100,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4116
4100
  this._isGroupActive = group.isActive;
4117
4101
  this.render();
4118
4102
  }
4119
- layout(width, height) {
4103
+ layout(_width, _height) {
4120
4104
  // noop
4121
4105
  }
4122
4106
  render() {
@@ -4190,8 +4174,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4190
4174
  };
4191
4175
  }
4192
4176
  dispose() {
4177
+ var _a;
4193
4178
  super.dispose();
4194
4179
  this.api.dispose();
4180
+ (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
4195
4181
  }
4196
4182
  }
4197
4183
 
@@ -4450,7 +4436,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4450
4436
  this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4451
4437
  this._onDidActivePanelChange = new Emitter();
4452
4438
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4453
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop);
4439
+ this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4440
+ this._bufferOnDidLayoutChange.fire();
4441
+ }));
4454
4442
  this._options = options;
4455
4443
  if (!this.options.components) {
4456
4444
  this.options.components = {};
@@ -4584,11 +4572,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4584
4572
  };
4585
4573
  }
4586
4574
  fromJSON(data) {
4575
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4576
+ for (const group of groups) {
4577
+ // remove the group will automatically remove the panels
4578
+ this.removeGroup(group, true);
4579
+ }
4587
4580
  this.gridview.clear();
4588
- this.panels.forEach((panel) => {
4589
- panel.dispose();
4590
- });
4591
- this._groups.clear();
4592
4581
  if (!this.deserializer) {
4593
4582
  throw new Error('invalid deserializer');
4594
4583
  }
@@ -4612,7 +4601,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4612
4601
  }
4613
4602
  }
4614
4603
  this.gridview.layout(this.width, this.height);
4615
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4616
4604
  this._onDidLayoutfromJSON.fire();
4617
4605
  }
4618
4606
  closeAllGroups() {
@@ -4634,7 +4622,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4634
4622
  }
4635
4623
  addPanel(options) {
4636
4624
  var _a, _b;
4637
- const panel = this._addPanel(options);
4625
+ if (this.panels.find((_) => _.id === options.id)) {
4626
+ throw new Error(`panel with id ${options.id} already exists`);
4627
+ }
4628
+ const panel = this.createPanel(options);
4638
4629
  let referenceGroup;
4639
4630
  if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
4640
4631
  const referencePanel = this.getGroupPanel(options.position.referencePanel);
@@ -4662,13 +4653,20 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4662
4653
  }
4663
4654
  return panel;
4664
4655
  }
4665
- removePanel(panel) {
4656
+ removePanel(panel, options = {
4657
+ removeEmptyGroup: true,
4658
+ skipDispose: false,
4659
+ }) {
4666
4660
  const group = panel.group;
4667
4661
  if (!group) {
4668
4662
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
4669
4663
  }
4670
4664
  group.model.removePanel(panel);
4671
- if (group.model.size === 0) {
4665
+ panel.dispose();
4666
+ const retainGroupForWatermark = this.size === 1;
4667
+ if (!retainGroupForWatermark &&
4668
+ group.model.size === 0 &&
4669
+ options.removeEmptyGroup) {
4672
4670
  this.removeGroup(group);
4673
4671
  }
4674
4672
  }
@@ -4700,16 +4698,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4700
4698
  this.doAddGroup(group);
4701
4699
  }
4702
4700
  }
4703
- removeGroup(group) {
4701
+ removeGroup(group, skipActive = false) {
4704
4702
  const panels = [...group.model.panels]; // reassign since group panels will mutate
4705
- panels.forEach((panel) => {
4706
- this.removePanel(panel);
4707
- });
4708
- if (this._groups.size === 1) {
4709
- this._activeGroup = group;
4710
- return;
4703
+ for (const panel of panels) {
4704
+ this.removePanel(panel, {
4705
+ removeEmptyGroup: false,
4706
+ skipDispose: false,
4707
+ });
4711
4708
  }
4712
- super.removeGroup(group);
4709
+ super.doRemoveGroup(group, { skipActive });
4713
4710
  }
4714
4711
  moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
4715
4712
  var _a;
@@ -4764,15 +4761,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4764
4761
  }
4765
4762
  }
4766
4763
  doSetGroupActive(group, skipFocus) {
4767
- var _a, _b, _c;
4764
+ var _a, _b;
4768
4765
  const isGroupAlreadyFocused = this._activeGroup === group;
4769
4766
  super.doSetGroupActive(group, skipFocus);
4770
4767
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
4771
- this._onGridEvent.fire({
4772
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4773
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
4774
- });
4775
- this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
4768
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
4776
4769
  }
4777
4770
  }
4778
4771
  createGroup(options) {
@@ -4794,6 +4787,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4794
4787
  }
4795
4788
  }
4796
4789
  const view = new GroupviewPanel(this, id, options);
4790
+ view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4797
4791
  if (!this._groups.has(view.id)) {
4798
4792
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4799
4793
  const { groupId, itemId, target, index } = event;
@@ -4803,28 +4797,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4803
4797
  }), view.model.onDidGroupChange((event) => {
4804
4798
  switch (event.kind) {
4805
4799
  case exports.GroupChangeKind2.ADD_PANEL:
4806
- this._onGridEvent.fire({
4807
- kind: exports.GroupChangeKind.ADD_PANEL,
4808
- panel: event.panel,
4809
- });
4810
4800
  if (event.panel) {
4811
4801
  this._onDidAddPanel.fire(event.panel);
4812
4802
  }
4813
4803
  break;
4814
4804
  case exports.GroupChangeKind2.REMOVE_PANEL:
4815
- this._onGridEvent.fire({
4816
- kind: exports.GroupChangeKind.REMOVE_PANEL,
4817
- panel: event.panel,
4818
- });
4819
4805
  if (event.panel) {
4820
4806
  this._onDidRemovePanel.fire(event.panel);
4821
4807
  }
4822
4808
  break;
4823
4809
  case exports.GroupChangeKind2.PANEL_ACTIVE:
4824
- this._onGridEvent.fire({
4825
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4826
- panel: event.panel,
4827
- });
4828
4810
  this._onDidActivePanelChange.fire(event.panel);
4829
4811
  break;
4830
4812
  }
@@ -4839,7 +4821,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4839
4821
  }
4840
4822
  return view;
4841
4823
  }
4842
- _addPanel(options) {
4824
+ createPanel(options) {
4843
4825
  const view = new DefaultGroupPanelView({
4844
4826
  content: this.createContentComponent(options.id, options.component),
4845
4827
  tab: this.createTabComponent(options.id, options.tabComponent),
@@ -4940,7 +4922,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4940
4922
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
4941
4923
  }
4942
4924
  setActive(panel) {
4943
- this._groups.forEach((value, key) => {
4925
+ this._groups.forEach((value, _key) => {
4944
4926
  value.value.setActive(panel === value.value);
4945
4927
  });
4946
4928
  }
@@ -4951,10 +4933,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4951
4933
  var _a;
4952
4934
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4953
4935
  }
4954
- fromJSON(serializedGridview, deferComponentLayout) {
4936
+ fromJSON(serializedGridview) {
4955
4937
  const { grid, activePanel } = serializedGridview;
4938
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4939
+ for (const group of groups) {
4940
+ group.disposable.dispose();
4941
+ this.doRemoveGroup(group.value, { skipActive: true });
4942
+ }
4956
4943
  this.gridview.clear();
4957
- this._groups.clear();
4958
4944
  const queue = [];
4959
4945
  this.gridview.deserialize(grid, {
4960
4946
  fromJSON: (node) => {
@@ -4981,21 +4967,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4981
4967
  },
4982
4968
  });
4983
4969
  this.layout(this.width, this.height, true);
4984
- if (deferComponentLayout) {
4985
- setTimeout(() => {
4986
- queue.forEach((f) => f());
4987
- }, 0);
4988
- }
4989
- else {
4990
- queue.forEach((f) => f());
4991
- }
4970
+ queue.forEach((f) => f());
4992
4971
  if (typeof activePanel === 'string') {
4993
4972
  const panel = this.getPanel(activePanel);
4994
4973
  if (panel) {
4995
4974
  this.doSetGroupActive(panel);
4996
4975
  }
4997
4976
  }
4998
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4999
4977
  this._onDidLayoutfromJSON.fire();
5000
4978
  }
5001
4979
  movePanel(panel, options) {
@@ -5052,7 +5030,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5052
5030
  });
5053
5031
  this.registerPanel(view);
5054
5032
  this.doAddGroup(view, relativeLocation, options.size);
5055
- return { api: view.api };
5056
5033
  }
5057
5034
  registerPanel(panel) {
5058
5035
  const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
@@ -5103,11 +5080,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5103
5080
  }
5104
5081
  removeGroup(group) {
5105
5082
  super.removeGroup(group);
5106
- const panel = this._groups.get(group.id);
5107
- if (panel) {
5108
- panel.disposable.dispose();
5109
- this._groups.delete(group.id);
5110
- }
5111
5083
  }
5112
5084
  dispose() {
5113
5085
  super.dispose();
@@ -5124,6 +5096,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5124
5096
  this.element = element;
5125
5097
  this._disposable = new MutableDisposable();
5126
5098
  this.panels = new Map();
5099
+ this._onDidLayoutfromJSON = new Emitter();
5100
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5127
5101
  this._onDidAddView = new Emitter();
5128
5102
  this.onDidAddView = this._onDidAddView.event;
5129
5103
  this._onDidRemoveView = new Emitter();
@@ -5138,7 +5112,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5138
5112
  options.frameworkComponents = {};
5139
5113
  }
5140
5114
  this.splitview = new Splitview(this.element, options);
5141
- this.addDisposables(this._disposable, this._onDidAddView, this._onDidRemoveView, this._onDidLayoutChange);
5115
+ this.addDisposables(this._disposable, this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
5142
5116
  }
5143
5117
  get options() {
5144
5118
  return this._options;
@@ -5214,7 +5188,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5214
5188
  }
5215
5189
  removePanel(panel, sizing) {
5216
5190
  const disposable = this.panels.get(panel.id);
5217
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
5191
+ if (!disposable) {
5192
+ throw new Error(`unknown splitview panel ${panel.id}`);
5193
+ }
5194
+ disposable.disposable.dispose();
5195
+ disposable.value.dispose();
5218
5196
  this.panels.delete(panel.id);
5219
5197
  const index = this.getPanels().findIndex((_) => _ === panel);
5220
5198
  this.splitview.removeView(index, sizing);
@@ -5273,7 +5251,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5273
5251
  }
5274
5252
  this.setActive(view, true);
5275
5253
  });
5276
- this.panels.set(view.id, disposable);
5254
+ this.panels.set(view.id, { disposable, value: view });
5277
5255
  }
5278
5256
  toJSON() {
5279
5257
  var _a;
@@ -5295,8 +5273,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5295
5273
  orientation: this.splitview.orientation,
5296
5274
  };
5297
5275
  }
5298
- fromJSON(serializedSplitview, deferComponentLayout = false) {
5276
+ fromJSON(serializedSplitview) {
5299
5277
  const { views, orientation, size, activeView } = serializedSplitview;
5278
+ for (const [_, value] of this.panels.entries()) {
5279
+ value.disposable.dispose();
5280
+ value.value.dispose();
5281
+ }
5282
+ this.panels.clear();
5300
5283
  this.splitview.dispose();
5301
5284
  const queue = [];
5302
5285
  this.splitview = new Splitview(this.element, {
@@ -5336,26 +5319,22 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5336
5319
  },
5337
5320
  });
5338
5321
  this.layout(this.width, this.height);
5339
- if (deferComponentLayout) {
5340
- setTimeout(() => {
5341
- queue.forEach((f) => f());
5342
- }, 0);
5343
- }
5344
- else {
5345
- queue.forEach((f) => f());
5346
- }
5322
+ queue.forEach((f) => f());
5347
5323
  if (typeof activeView === 'string') {
5348
5324
  const panel = this.getPanel(activeView);
5349
5325
  if (panel) {
5350
5326
  this.setActive(panel);
5351
5327
  }
5352
5328
  }
5329
+ this._onDidLayoutfromJSON.fire();
5353
5330
  }
5354
5331
  dispose() {
5355
- Array.from(this.panels.values()).forEach((value) => {
5356
- value.dispose();
5357
- });
5332
+ for (const [_, value] of this.panels.entries()) {
5333
+ value.disposable.dispose();
5334
+ value.value.dispose();
5335
+ }
5358
5336
  this.panels.clear();
5337
+ this.splitview.dispose();
5359
5338
  super.dispose();
5360
5339
  }
5361
5340
  }
@@ -5624,7 +5603,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5624
5603
  })(this.header);
5625
5604
  this.target = new Droptarget(this.element, {
5626
5605
  validOverlays: 'vertical',
5627
- canDisplayOverlay: (event) => {
5606
+ canDisplayOverlay: () => {
5628
5607
  const data = getPaneData();
5629
5608
  if (!data) {
5630
5609
  return true;
@@ -5695,7 +5674,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5695
5674
  this._expander.textContent = e.isExpanded ? '<' : '>';
5696
5675
  });
5697
5676
  }
5698
- update(params) {
5677
+ update(_params) {
5699
5678
  //
5700
5679
  }
5701
5680
  dispose() {
@@ -5721,6 +5700,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5721
5700
  super();
5722
5701
  this.element = element;
5723
5702
  this._disposable = new MutableDisposable();
5703
+ this._viewDisposables = new Map();
5704
+ this._onDidLayoutfromJSON = new Emitter();
5705
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
5724
5706
  this._onDidLayoutChange = new Emitter();
5725
5707
  this.onDidLayoutChange = this._onDidLayoutChange.event;
5726
5708
  this._onDidDrop = new Emitter();
@@ -5729,7 +5711,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5729
5711
  this.onDidAddView = this._onDidAddView.event;
5730
5712
  this._onDidRemoveView = new Emitter();
5731
5713
  this.onDidRemoveView = this._onDidRemoveView.event;
5732
- this.addDisposables(this._onDidLayoutChange, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5714
+ this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
5733
5715
  this._options = options;
5734
5716
  if (!options.components) {
5735
5717
  options.components = {};
@@ -5805,9 +5787,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5805
5787
  isExpanded: !!options.isExpanded,
5806
5788
  disableDnd: !!this.options.disableDnd,
5807
5789
  });
5808
- const disposable = new CompositeDisposable(view.onDidDrop((event) => {
5809
- this._onDidDrop.fire(event);
5810
- }));
5790
+ this.doAddPanel(view);
5811
5791
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
5812
5792
  const index = typeof options.index === 'number' ? options.index : undefined;
5813
5793
  view.init({
@@ -5820,7 +5800,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5820
5800
  });
5821
5801
  this.paneview.addPane(view, size, index);
5822
5802
  view.orientation = this.paneview.orientation;
5823
- return disposable;
5803
+ return view;
5824
5804
  }
5825
5805
  getPanels() {
5826
5806
  return this.paneview.getPanes();
@@ -5829,6 +5809,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5829
5809
  const views = this.getPanels();
5830
5810
  const index = views.findIndex((_) => _ === panel);
5831
5811
  this.paneview.removePane(index);
5812
+ this.doRemovePanel(panel);
5832
5813
  }
5833
5814
  movePanel(from, to) {
5834
5815
  this.paneview.moveView(from, to);
@@ -5875,9 +5856,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5875
5856
  size: this.paneview.size,
5876
5857
  };
5877
5858
  }
5878
- fromJSON(serializedPaneview, deferComponentLayout) {
5859
+ fromJSON(serializedPaneview) {
5879
5860
  const { views, size } = serializedPaneview;
5880
5861
  const queue = [];
5862
+ for (const [_, value] of this._viewDisposables.entries()) {
5863
+ value.dispose();
5864
+ }
5865
+ this._viewDisposables.clear();
5881
5866
  this.paneview.dispose();
5882
5867
  this.paneview = new Paneview(this.element, {
5883
5868
  orientation: exports.Orientation.VERTICAL,
@@ -5913,9 +5898,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5913
5898
  isExpanded: !!view.expanded,
5914
5899
  disableDnd: !!this.options.disableDnd,
5915
5900
  });
5916
- panel.onDidDrop((event) => {
5917
- this._onDidDrop.fire(event);
5918
- });
5901
+ this.doAddPanel(panel);
5919
5902
  queue.push(() => {
5920
5903
  panel.init({
5921
5904
  params: data.params || {},
@@ -5936,14 +5919,29 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5936
5919
  },
5937
5920
  });
5938
5921
  this.layout(this.width, this.height);
5939
- if (deferComponentLayout) {
5940
- setTimeout(() => {
5941
- queue.forEach((f) => f());
5942
- }, 0);
5922
+ queue.forEach((f) => f());
5923
+ this._onDidLayoutfromJSON.fire();
5924
+ }
5925
+ doAddPanel(panel) {
5926
+ const disposable = panel.onDidDrop((event) => {
5927
+ this._onDidDrop.fire(event);
5928
+ });
5929
+ this._viewDisposables.set(panel.id, disposable);
5930
+ }
5931
+ doRemovePanel(panel) {
5932
+ const disposable = this._viewDisposables.get(panel.id);
5933
+ if (disposable) {
5934
+ disposable.dispose();
5935
+ this._viewDisposables.delete(panel.id);
5943
5936
  }
5944
- else {
5945
- queue.forEach((f) => f());
5937
+ }
5938
+ dispose() {
5939
+ super.dispose();
5940
+ for (const [_, value] of this._viewDisposables.entries()) {
5941
+ value.dispose();
5946
5942
  }
5943
+ this._viewDisposables.clear();
5944
+ this.paneview.dispose();
5947
5945
  }
5948
5946
  }
5949
5947
 
@@ -6171,18 +6169,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6171
6169
  this.id = id;
6172
6170
  this.component = component;
6173
6171
  this.reactPortalStore = reactPortalStore;
6174
- // private hostedContainer: HostedContainer;
6175
6172
  this._onDidFocus = new Emitter();
6176
6173
  this.onDidFocus = this._onDidFocus.event;
6177
6174
  this._onDidBlur = new Emitter();
6178
6175
  this.onDidBlur = this._onDidBlur.event;
6179
6176
  this._element = document.createElement('div');
6180
6177
  this._element.className = 'dockview-react-part';
6181
- // this.hostedContainer = new HostedContainer({
6182
- // id,
6183
- // });
6184
- // this.hostedContainer.onDidFocus(() => this._onDidFocus.fire());
6185
- // this.hostedContainer.onDidBlur(() => this._onDidBlur.fire());
6186
6178
  this._actionsElement = document.createElement('div');
6187
6179
  this._actionsElement.className = 'dockview-react-part';
6188
6180
  }
@@ -6217,15 +6209,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6217
6209
  var _a;
6218
6210
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
6219
6211
  }
6220
- updateParentGroup(group, isPanelVisible) {
6212
+ updateParentGroup(group, _isPanelVisible) {
6221
6213
  this._group = group;
6222
6214
  }
6223
- layout(width, height) {
6215
+ layout(_width, _height) {
6224
6216
  // noop
6225
- // this.hostedContainer.layout(
6226
- // this.element
6227
- // // { width, height }
6228
- // );
6229
6217
  }
6230
6218
  close() {
6231
6219
  return Promise.resolve(true);
@@ -6235,7 +6223,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6235
6223
  this._onDidFocus.dispose();
6236
6224
  this._onDidBlur.dispose();
6237
6225
  (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
6238
- // this.hostedContainer?.dispose();
6239
6226
  (_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
6240
6227
  }
6241
6228
  }
@@ -6270,10 +6257,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6270
6257
  id: this.id,
6271
6258
  };
6272
6259
  }
6273
- layout(width, height) {
6260
+ layout(_width, _height) {
6274
6261
  // noop - retrieval from api
6275
6262
  }
6276
- updateParentGroup(group, isPanelVisible) {
6263
+ updateParentGroup(_group, _isPanelVisible) {
6277
6264
  // noop - retrieval from api
6278
6265
  }
6279
6266
  dispose() {
@@ -6352,10 +6339,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6352
6339
  id: this.id,
6353
6340
  };
6354
6341
  }
6355
- layout(width, height) {
6342
+ layout(_width, _height) {
6356
6343
  // noop - retrieval from api
6357
6344
  }
6358
- updateParentGroup(group, isPanelVisible) {
6345
+ updateParentGroup(group, _isPanelVisible) {
6359
6346
  // noop - retrieval from api
6360
6347
  this._groupRef.value = group;
6361
6348
  }
@@ -6389,21 +6376,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6389
6376
  var _a;
6390
6377
  const factory = {
6391
6378
  content: {
6392
- createComponent: (id, componentId, component) => {
6379
+ createComponent: (_id, componentId, component) => {
6393
6380
  return new ReactPanelContentPart(componentId, component, {
6394
6381
  addPortal,
6395
6382
  });
6396
6383
  },
6397
6384
  },
6398
6385
  tab: {
6399
- createComponent: (id, componentId, component) => {
6386
+ createComponent: (_id, componentId, component) => {
6400
6387
  return new ReactPanelHeaderPart(componentId, component, {
6401
6388
  addPortal,
6402
6389
  });
6403
6390
  },
6404
6391
  },
6405
6392
  watermark: {
6406
- createComponent: (id, componentId, component) => {
6393
+ createComponent: (_id, componentId, component) => {
6407
6394
  return new ReactWatermarkPart(componentId, component, {
6408
6395
  addPortal,
6409
6396
  });
@@ -6422,11 +6409,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6422
6409
  ? { separatorBorder: 'transparent' }
6423
6410
  : undefined,
6424
6411
  });
6425
- const disposable = dockview.onDidDrop((event) => {
6426
- if (props.onDidDrop) {
6427
- props.onDidDrop(event);
6428
- }
6429
- });
6430
6412
  (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
6431
6413
  dockview.deserializer = new ReactPanelDeserialzier(dockview);
6432
6414
  const { clientWidth, clientHeight } = domRef.current;
@@ -6436,10 +6418,25 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6436
6418
  }
6437
6419
  dockviewRef.current = dockview;
6438
6420
  return () => {
6439
- disposable.dispose();
6440
6421
  dockview.dispose();
6422
+ element.remove();
6441
6423
  };
6442
6424
  }, []);
6425
+ React__namespace.useEffect(() => {
6426
+ if (!dockviewRef.current) {
6427
+ return () => {
6428
+ // noop
6429
+ };
6430
+ }
6431
+ const disposable = dockviewRef.current.onDidDrop((event) => {
6432
+ if (props.onDidDrop) {
6433
+ props.onDidDrop(event);
6434
+ }
6435
+ });
6436
+ return () => {
6437
+ disposable.dispose();
6438
+ };
6439
+ }, [props.onDidDrop]);
6443
6440
  React__namespace.useEffect(() => {
6444
6441
  if (!dockviewRef.current) {
6445
6442
  return;
@@ -6448,6 +6445,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6448
6445
  frameworkComponents: props.components,
6449
6446
  });
6450
6447
  }, [props.components]);
6448
+ React__namespace.useEffect(() => {
6449
+ if (!dockviewRef.current) {
6450
+ return;
6451
+ }
6452
+ dockviewRef.current.updateOptions({
6453
+ watermarkFrameworkComponent: props.watermarkComponent,
6454
+ });
6455
+ }, [props.watermarkComponent]);
6451
6456
  React__namespace.useEffect(() => {
6452
6457
  if (!dockviewRef.current) {
6453
6458
  return;
@@ -6583,7 +6588,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6583
6588
  });
6584
6589
  },
6585
6590
  },
6586
- proportionalLayout: props.proportionalLayout,
6591
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6592
+ ? props.proportionalLayout
6593
+ : true,
6587
6594
  styles: props.hideBorders
6588
6595
  ? { separatorBorder: 'transparent' }
6589
6596
  : undefined,
@@ -6651,7 +6658,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6651
6658
  var _a;
6652
6659
  const element = document.createElement('div');
6653
6660
  const gridview = new GridviewComponent(element, {
6654
- proportionalLayout: !!props.proportionalLayout,
6661
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6662
+ ? props.proportionalLayout
6663
+ : true,
6655
6664
  orientation: props.orientation,
6656
6665
  frameworkComponents: props.components,
6657
6666
  frameworkComponentFactory: {
@@ -6674,6 +6683,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6674
6683
  gridviewRef.current = gridview;
6675
6684
  return () => {
6676
6685
  gridview.dispose();
6686
+ element.remove();
6677
6687
  };
6678
6688
  }, []);
6679
6689
  React__namespace.useEffect(() => {
@@ -6744,7 +6754,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6744
6754
  };
6745
6755
  }, [props.disableAutoResizing]);
6746
6756
  React__namespace.useEffect(() => {
6747
- const createComponent = (id, componentId, component) => new PanePanelSection(id, component, {
6757
+ const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
6748
6758
  addPortal,
6749
6759
  });
6750
6760
  const paneview = new PaneviewComponent(domRef.current, {
@@ -6810,13 +6820,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6810
6820
  PaneviewReact.displayName = 'PaneviewComponent';
6811
6821
 
6812
6822
  exports.BaseGrid = BaseGrid;
6813
- exports.CompositeDisposable = CompositeDisposable;
6814
6823
  exports.ContentContainer = ContentContainer;
6815
6824
  exports.DockviewApi = DockviewApi;
6816
6825
  exports.DockviewComponent = DockviewComponent;
6817
6826
  exports.DockviewComponents = DockviewComponents;
6818
6827
  exports.DockviewReact = DockviewReact;
6819
- exports.Emitter = Emitter;
6820
6828
  exports.Gridview = Gridview;
6821
6829
  exports.GridviewApi = GridviewApi;
6822
6830
  exports.GridviewComponent = GridviewComponent;
@@ -6824,7 +6832,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6824
6832
  exports.GridviewReact = GridviewReact;
6825
6833
  exports.Groupview = Groupview;
6826
6834
  exports.LocalSelectionTransfer = LocalSelectionTransfer;
6827
- exports.MutableDisposable = MutableDisposable;
6828
6835
  exports.PaneFramework = PaneFramework;
6829
6836
  exports.PaneTransfer = PaneTransfer;
6830
6837
  exports.PanelTransfer = PanelTransfer;
@@ -6843,9 +6850,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6843
6850
  exports.SplitviewPanel = SplitviewPanel;
6844
6851
  exports.SplitviewReact = SplitviewReact;
6845
6852
  exports.Tab = Tab$1;
6846
- exports.TickDelayedEvent = TickDelayedEvent;
6847
- exports.addDisposableListener = addDisposableListener;
6848
- exports.addDisposableWindowListener = addDisposableWindowListener;
6849
6853
  exports.getDirectionOrientation = getDirectionOrientation;
6850
6854
  exports.getGridLocation = getGridLocation;
6851
6855
  exports.getLocationOrientation = getLocationOrientation;