dockview 1.4.0 → 1.4.3

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 (141) hide show
  1. package/README.md +4 -195
  2. package/dist/cjs/api/component.api.d.ts +8 -8
  3. package/dist/cjs/api/component.api.js +16 -19
  4. package/dist/cjs/api/component.api.js.map +1 -1
  5. package/dist/cjs/api/panelApi.d.ts +1 -2
  6. package/dist/cjs/api/panelApi.js +3 -3
  7. package/dist/cjs/api/panelApi.js.map +1 -1
  8. package/dist/cjs/dnd/droptarget.d.ts +1 -2
  9. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -17
  10. package/dist/cjs/dockview/components/tab/defaultTab.js +9 -64
  11. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  12. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -2
  13. package/dist/cjs/dockview/defaultGroupPanelView.js +2 -4
  14. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  15. package/dist/cjs/dockview/deserializer.d.ts +0 -12
  16. package/dist/cjs/dockview/deserializer.js +0 -52
  17. package/dist/cjs/dockview/deserializer.js.map +1 -1
  18. package/dist/cjs/dockview/dockviewComponent.d.ts +5 -7
  19. package/dist/cjs/dockview/dockviewComponent.js +79 -42
  20. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  21. package/dist/cjs/dockview/dockviewGroupPanel.js +1 -1
  22. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  23. package/dist/cjs/dockview/options.d.ts +6 -1
  24. package/dist/cjs/gridview/baseComponentGridview.d.ts +4 -2
  25. package/dist/cjs/gridview/baseComponentGridview.js +1 -1
  26. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  27. package/dist/cjs/gridview/basePanelView.js +1 -1
  28. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  29. package/dist/cjs/gridview/gridview.js +1 -1
  30. package/dist/cjs/gridview/gridview.js.map +1 -1
  31. package/dist/cjs/gridview/gridviewComponent.d.ts +1 -2
  32. package/dist/cjs/gridview/gridviewComponent.js +28 -24
  33. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  34. package/dist/cjs/gridview/gridviewPanel.d.ts +2 -3
  35. package/dist/cjs/gridview/gridviewPanel.js +4 -4
  36. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  37. package/dist/cjs/groupview/groupview.d.ts +4 -3
  38. package/dist/cjs/groupview/groupview.js +20 -8
  39. package/dist/cjs/groupview/groupview.js.map +1 -1
  40. package/dist/cjs/groupview/groupviewPanel.d.ts +2 -2
  41. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  42. package/dist/cjs/groupview/tab.js +1 -0
  43. package/dist/cjs/groupview/tab.js.map +1 -1
  44. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +3 -5
  45. package/dist/cjs/groupview/titlebar/tabsContainer.js +2 -4
  46. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  47. package/dist/cjs/groupview/types.d.ts +1 -3
  48. package/dist/cjs/index.d.ts +1 -0
  49. package/dist/cjs/index.js +1 -0
  50. package/dist/cjs/index.js.map +1 -1
  51. package/dist/cjs/paneview/defaultPaneviewHeader.js +6 -4
  52. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
  53. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
  54. package/dist/cjs/paneview/paneviewComponent.js +20 -17
  55. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  56. package/dist/cjs/react/dockview/dockview.d.ts +2 -3
  57. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  58. package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -4
  59. package/dist/cjs/react/dockview/reactContentPart.js +0 -3
  60. package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
  61. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +0 -1
  62. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +0 -3
  63. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
  64. package/dist/cjs/react/gridview/view.js +2 -2
  65. package/dist/cjs/react/gridview/view.js.map +1 -1
  66. package/dist/cjs/react/index.d.ts +0 -1
  67. package/dist/cjs/react/index.js +0 -1
  68. package/dist/cjs/react/index.js.map +1 -1
  69. package/dist/cjs/react/splitview/view.js +2 -2
  70. package/dist/cjs/react/splitview/view.js.map +1 -1
  71. package/dist/cjs/splitview/core/options.d.ts +2 -2
  72. package/dist/cjs/splitview/splitviewComponent.d.ts +2 -1
  73. package/dist/cjs/splitview/splitviewComponent.js +23 -21
  74. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  75. package/dist/cjs/splitview/splitviewPanel.js +4 -6
  76. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  77. package/dist/dockview.amd.js +165 -250
  78. package/dist/dockview.amd.min.js +2 -2
  79. package/dist/dockview.amd.min.noStyle.js +2 -2
  80. package/dist/dockview.amd.noStyle.js +164 -249
  81. package/dist/dockview.cjs.js +165 -250
  82. package/dist/dockview.esm.js +160 -244
  83. package/dist/dockview.esm.min.js +2 -2
  84. package/dist/dockview.js +165 -250
  85. package/dist/dockview.min.js +2 -2
  86. package/dist/dockview.min.noStyle.js +2 -2
  87. package/dist/dockview.noStyle.js +164 -249
  88. package/dist/esm/api/component.api.d.ts +8 -8
  89. package/dist/esm/api/component.api.js +16 -19
  90. package/dist/esm/api/panelApi.d.ts +1 -2
  91. package/dist/esm/api/panelApi.js +3 -3
  92. package/dist/esm/dnd/droptarget.d.ts +1 -2
  93. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -17
  94. package/dist/esm/dockview/components/tab/defaultTab.js +8 -49
  95. package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -2
  96. package/dist/esm/dockview/defaultGroupPanelView.js +3 -5
  97. package/dist/esm/dockview/deserializer.d.ts +0 -12
  98. package/dist/esm/dockview/deserializer.js +1 -27
  99. package/dist/esm/dockview/dockviewComponent.d.ts +5 -7
  100. package/dist/esm/dockview/dockviewComponent.js +50 -24
  101. package/dist/esm/dockview/dockviewGroupPanel.js +1 -1
  102. package/dist/esm/dockview/options.d.ts +6 -1
  103. package/dist/esm/gridview/baseComponentGridview.d.ts +4 -2
  104. package/dist/esm/gridview/baseComponentGridview.js +1 -1
  105. package/dist/esm/gridview/basePanelView.js +1 -1
  106. package/dist/esm/gridview/gridviewComponent.d.ts +1 -2
  107. package/dist/esm/gridview/gridviewComponent.js +17 -13
  108. package/dist/esm/gridview/gridviewPanel.d.ts +2 -3
  109. package/dist/esm/gridview/gridviewPanel.js +4 -4
  110. package/dist/esm/groupview/groupview.d.ts +4 -3
  111. package/dist/esm/groupview/groupview.js +19 -8
  112. package/dist/esm/groupview/groupviewPanel.d.ts +2 -2
  113. package/dist/esm/groupview/tab.js +1 -0
  114. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +3 -5
  115. package/dist/esm/groupview/titlebar/tabsContainer.js +2 -4
  116. package/dist/esm/groupview/types.d.ts +1 -3
  117. package/dist/esm/index.d.ts +1 -0
  118. package/dist/esm/index.js +1 -0
  119. package/dist/esm/paneview/defaultPaneviewHeader.js +6 -4
  120. package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
  121. package/dist/esm/paneview/paneviewComponent.js +8 -5
  122. package/dist/esm/react/dockview/dockview.d.ts +2 -3
  123. package/dist/esm/react/dockview/reactContentPart.d.ts +2 -4
  124. package/dist/esm/react/dockview/reactContentPart.js +0 -3
  125. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +0 -1
  126. package/dist/esm/react/dockview/v2/reactContentRenderer.js +0 -3
  127. package/dist/esm/react/gridview/view.js +2 -2
  128. package/dist/esm/react/index.d.ts +0 -1
  129. package/dist/esm/react/index.js +0 -1
  130. package/dist/esm/react/splitview/view.js +2 -2
  131. package/dist/esm/splitview/core/options.d.ts +2 -2
  132. package/dist/esm/splitview/splitviewComponent.d.ts +2 -1
  133. package/dist/esm/splitview/splitviewComponent.js +11 -9
  134. package/dist/esm/splitview/splitviewPanel.js +4 -6
  135. package/dist/styles/dockview.css +5 -0
  136. package/package.json +2 -2
  137. package/dist/cjs/react/dockview/components.d.ts +0 -11
  138. package/dist/cjs/react/dockview/components.js +0 -81
  139. package/dist/cjs/react/dockview/components.js.map +0 -1
  140. package/dist/esm/react/dockview/components.d.ts +0 -11
  141. package/dist/esm/react/dockview/components.js +0 -54
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.4.0
3
+ * @version 1.4.3
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
34
34
  }
35
35
  }
36
36
 
37
- var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n 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}";
37
+ var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .collapsed {\n transform: rotate(-90deg);\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
38
38
  styleInject(css_248z);
39
39
 
40
40
  class TransferObject {
@@ -2283,18 +2283,12 @@ class SplitviewApi {
2283
2283
  removePanel(panel, sizing) {
2284
2284
  this.component.removePanel(panel, sizing);
2285
2285
  }
2286
- setVisible(panel, isVisible) {
2287
- this.component.setVisible(panel, isVisible);
2288
- }
2289
2286
  focus() {
2290
2287
  this.component.focus();
2291
2288
  }
2292
2289
  getPanel(id) {
2293
2290
  return this.component.getPanel(id);
2294
2291
  }
2295
- setActive(panel) {
2296
- this.component.setActive(panel);
2297
- }
2298
2292
  layout(width, height) {
2299
2293
  return this.component.layout(width, height);
2300
2294
  }
@@ -2310,6 +2304,9 @@ class SplitviewApi {
2310
2304
  toJSON() {
2311
2305
  return this.component.toJSON();
2312
2306
  }
2307
+ clear() {
2308
+ this.component.clear();
2309
+ }
2313
2310
  }
2314
2311
  class PaneviewApi {
2315
2312
  constructor(component) {
@@ -2377,6 +2374,9 @@ class PaneviewApi {
2377
2374
  toJSON() {
2378
2375
  return this.component.toJSON();
2379
2376
  }
2377
+ clear() {
2378
+ this.component.clear();
2379
+ }
2380
2380
  }
2381
2381
  class GridviewApi {
2382
2382
  constructor(component) {
@@ -2403,13 +2403,13 @@ class GridviewApi {
2403
2403
  get onDidLayoutChange() {
2404
2404
  return this.component.onDidLayoutChange;
2405
2405
  }
2406
- get onDidAddGroup() {
2406
+ get onDidAddPanel() {
2407
2407
  return this.component.onDidAddGroup;
2408
2408
  }
2409
- get onDidRemoveGroup() {
2409
+ get onDidRemovePanel() {
2410
2410
  return this.component.onDidRemoveGroup;
2411
2411
  }
2412
- get onDidActiveGroupChange() {
2412
+ get onDidActivePanelChange() {
2413
2413
  return this.component.onDidActiveGroupChange;
2414
2414
  }
2415
2415
  get onDidLayoutFromJSON() {
@@ -2442,21 +2442,15 @@ class GridviewApi {
2442
2442
  getPanel(id) {
2443
2443
  return this.component.getPanel(id);
2444
2444
  }
2445
- toggleVisibility(panel) {
2446
- this.component.toggleVisibility(panel);
2447
- }
2448
- setVisible(panel, visible) {
2449
- this.component.setVisible(panel, visible);
2450
- }
2451
- setActive(panel) {
2452
- this.component.setActive(panel);
2453
- }
2454
2445
  fromJSON(data) {
2455
2446
  return this.component.fromJSON(data);
2456
2447
  }
2457
2448
  toJSON() {
2458
2449
  return this.component.toJSON();
2459
2450
  }
2451
+ clear() {
2452
+ this.component.clear();
2453
+ }
2460
2454
  }
2461
2455
  class DockviewApi {
2462
2456
  constructor(component) {
@@ -2505,7 +2499,7 @@ class DockviewApi {
2505
2499
  return this.component.onDidRemovePanel;
2506
2500
  }
2507
2501
  get onDidLayoutFromJSON() {
2508
- return this.component.onDidLayoutfromJSON;
2502
+ return this.component.onDidLayoutFromJSON;
2509
2503
  }
2510
2504
  get onDidLayoutChange() {
2511
2505
  return this.component.onDidLayoutChange;
@@ -2567,6 +2561,9 @@ class DockviewApi {
2567
2561
  toJSON() {
2568
2562
  return this.component.toJSON();
2569
2563
  }
2564
+ clear() {
2565
+ this.component.clear();
2566
+ }
2570
2567
  }
2571
2568
 
2572
2569
  class ContentContainer extends CompositeDisposable {
@@ -2687,7 +2684,7 @@ var MouseEventKind;
2687
2684
  MouseEventKind["CLICK"] = "CLICK";
2688
2685
  MouseEventKind["CONTEXT_MENU"] = "CONTEXT_MENU";
2689
2686
  })(MouseEventKind || (MouseEventKind = {}));
2690
- class Tab$1 extends CompositeDisposable {
2687
+ class Tab extends CompositeDisposable {
2691
2688
  constructor(panelId, accessor, group) {
2692
2689
  super();
2693
2690
  this.panelId = panelId;
@@ -2701,6 +2698,7 @@ class Tab$1 extends CompositeDisposable {
2701
2698
  this._element.className = 'tab';
2702
2699
  this._element.tabIndex = 0;
2703
2700
  this._element.draggable = true;
2701
+ toggleClass(this.element, 'inactive-tab', true);
2704
2702
  this.addDisposables(new (class Handler extends DragHandler {
2705
2703
  constructor() {
2706
2704
  super(...arguments);
@@ -2777,7 +2775,6 @@ class TabsContainer extends CompositeDisposable {
2777
2775
  this.group = group;
2778
2776
  this.tabs = [];
2779
2777
  this.selectedIndex = -1;
2780
- this.active = false;
2781
2778
  this._hidden = false;
2782
2779
  this._onDrop = new Emitter();
2783
2780
  this.onDrop = this._onDrop.event;
@@ -2881,8 +2878,8 @@ class TabsContainer extends CompositeDisposable {
2881
2878
  indexOf(id) {
2882
2879
  return this.tabs.findIndex((tab) => tab.value.panelId === id);
2883
2880
  }
2884
- setActive(isGroupActive) {
2885
- this.active = isGroupActive;
2881
+ setActive(_isGroupActive) {
2882
+ // noop
2886
2883
  }
2887
2884
  addTab(tab, index = this.tabs.length) {
2888
2885
  if (index < 0 || index > this.tabs.length) {
@@ -2916,7 +2913,7 @@ class TabsContainer extends CompositeDisposable {
2916
2913
  if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {
2917
2914
  return;
2918
2915
  }
2919
- const tabToAdd = new Tab$1(panel.id, this.accessor, this.group);
2916
+ const tabToAdd = new Tab(panel.id, this.accessor, this.group);
2920
2917
  if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
2921
2918
  throw new Error('invalid header component');
2922
2919
  }
@@ -2943,7 +2940,6 @@ class TabsContainer extends CompositeDisposable {
2943
2940
  }));
2944
2941
  const value = { value: tabToAdd, disposable };
2945
2942
  this.addTab(value, index);
2946
- this.activePanel = panel;
2947
2943
  }
2948
2944
  closePanel(panel) {
2949
2945
  this.delete(panel.id);
@@ -3160,16 +3156,21 @@ class Groupview extends CompositeDisposable {
3160
3156
  options.index > this.panels.length) {
3161
3157
  options.index = this.panels.length;
3162
3158
  }
3163
- const skipSetActive = !!options.skipSetActive;
3159
+ const skipSetPanelActive = !!options.skipSetPanelActive;
3160
+ const skipSetGroupActive = !!options.skipSetGroupActive;
3164
3161
  // ensure the group is updated before we fire any events
3165
3162
  panel.updateParentGroup(this.parent, true);
3166
- if (!skipSetActive && this._activePanel === panel) {
3167
- this.accessor.doSetGroupActive(this.parent);
3163
+ if (this._activePanel === panel) {
3164
+ if (!skipSetGroupActive) {
3165
+ this.accessor.doSetGroupActive(this.parent);
3166
+ }
3168
3167
  return;
3169
3168
  }
3170
- this.doAddPanel(panel, options.index);
3171
- if (!skipSetActive) {
3169
+ this.doAddPanel(panel, options.index, skipSetPanelActive);
3170
+ if (!skipSetPanelActive) {
3172
3171
  this.doSetActivePanel(panel);
3172
+ }
3173
+ if (!skipSetGroupActive) {
3173
3174
  this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
3174
3175
  }
3175
3176
  this.updateContainer();
@@ -3273,11 +3274,13 @@ class Groupview extends CompositeDisposable {
3273
3274
  panel,
3274
3275
  });
3275
3276
  }
3276
- doAddPanel(panel, index = this.panels.length) {
3277
+ doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
3277
3278
  const existingPanel = this._panels.indexOf(panel);
3278
3279
  const hasExistingPanel = existingPanel > -1;
3279
3280
  this.tabsContainer.openPanel(panel, index);
3280
- this.contentContainer.openPanel(panel);
3281
+ if (!skipSetActive) {
3282
+ this.contentContainer.openPanel(panel);
3283
+ }
3281
3284
  this.tabsContainer.show();
3282
3285
  this.contentContainer.show();
3283
3286
  if (hasExistingPanel) {
@@ -3343,7 +3346,11 @@ class Groupview extends CompositeDisposable {
3343
3346
  canDisplayOverlay(event, target) {
3344
3347
  // custom overlay handler
3345
3348
  if (this.accessor.options.showDndOverlay) {
3346
- return this.accessor.options.showDndOverlay(event, target);
3349
+ return this.accessor.options.showDndOverlay({
3350
+ nativeEvent: event,
3351
+ target,
3352
+ group: this.accessor.getPanel(this.id),
3353
+ });
3347
3354
  }
3348
3355
  return false;
3349
3356
  }
@@ -3426,7 +3433,7 @@ class BaseGrid extends CompositeDisposable {
3426
3433
  this.element.appendChild(this.gridview.element);
3427
3434
  this.layout(0, 0, true); // set some elements height/widths
3428
3435
  this.addDisposables(this.gridview.onDidChange(() => {
3429
- this._onDidLayoutChange.fire();
3436
+ this._bufferOnDidLayoutChange.fire();
3430
3437
  }));
3431
3438
  this.addDisposables(Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3432
3439
  this._bufferOnDidLayoutChange.fire();
@@ -3587,10 +3594,10 @@ class PanelApiImpl extends CompositeDisposable {
3587
3594
  this._isVisible = true;
3588
3595
  this._width = 0;
3589
3596
  this._height = 0;
3590
- this._onDidPanelDimensionChange = new Emitter({
3597
+ this._onDidDimensionChange = new Emitter({
3591
3598
  replay: true,
3592
3599
  });
3593
- this.onDidDimensionsChange = this._onDidPanelDimensionChange.event;
3600
+ this.onDidDimensionsChange = this._onDidDimensionChange.event;
3594
3601
  //
3595
3602
  this._onDidChangeFocus = new Emitter({
3596
3603
  replay: true,
@@ -3615,7 +3622,7 @@ class PanelApiImpl extends CompositeDisposable {
3615
3622
  //
3616
3623
  this._onActiveChange = new Emitter();
3617
3624
  this.onActiveChange = this._onActiveChange.event;
3618
- this.addDisposables(this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3625
+ this.addDisposables(this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3619
3626
  this._isFocused = event.isFocused;
3620
3627
  }), this.onDidActiveChange((event) => {
3621
3628
  this._isActive = event.isActive;
@@ -3839,7 +3846,7 @@ class DockviewGroupPanel extends CompositeDisposable {
3839
3846
  layout(width, height) {
3840
3847
  var _a;
3841
3848
  // the obtain the correct dimensions of the content panel we must deduct the tab height
3842
- this.api._onDidPanelDimensionChange.fire({
3849
+ this.api._onDidDimensionChange.fire({
3843
3850
  width,
3844
3851
  height: height - (this.group.model.header.height || 0),
3845
3852
  });
@@ -3936,34 +3943,6 @@ class Watermark extends CompositeDisposable {
3936
3943
  }
3937
3944
  }
3938
3945
 
3939
- class DefaultDeserializer {
3940
- constructor(layout, panelDeserializer) {
3941
- this.layout = layout;
3942
- this.panelDeserializer = panelDeserializer;
3943
- }
3944
- fromJSON(node) {
3945
- const data = node.data;
3946
- const children = data.views;
3947
- const active = data.activeView;
3948
- const group = this.layout.createGroup({
3949
- id: data.id,
3950
- locked: !!data.locked,
3951
- hideHeader: !!data.hideHeader,
3952
- });
3953
- for (const child of children) {
3954
- const panel = this.panelDeserializer.createPanel(child, group);
3955
- const isActive = typeof active === 'string' && active === panel.id;
3956
- group.model.openPanel(panel, {
3957
- skipSetActive: !isActive,
3958
- });
3959
- }
3960
- if (!group.activePanel && group.panels.length > 0) {
3961
- group.model.openPanel(group.panels[group.panels.length - 1]);
3962
- }
3963
- return group;
3964
- }
3965
- }
3966
-
3967
3946
  function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
3968
3947
  const Component = typeof componentName === 'string'
3969
3948
  ? components[componentName]
@@ -3989,53 +3968,6 @@ function createComponent(id, componentName, components = {}, frameworkComponents
3989
3968
  return new Component(id, componentName);
3990
3969
  }
3991
3970
 
3992
- class WrappedTab {
3993
- constructor(renderer) {
3994
- this.renderer = renderer;
3995
- this._element = document.createElement('element');
3996
- this.show();
3997
- }
3998
- get innerRenderer() {
3999
- return this.renderer;
4000
- }
4001
- get element() {
4002
- return this._element;
4003
- }
4004
- get id() {
4005
- return this.renderer.id;
4006
- }
4007
- show() {
4008
- if (!this.renderer.element.parentElement) {
4009
- this._element.appendChild(this.renderer.element);
4010
- }
4011
- }
4012
- hide() {
4013
- if (this.renderer.element.parentElement) {
4014
- this.renderer.element.remove();
4015
- }
4016
- }
4017
- layout(width, height) {
4018
- this.renderer.layout(width, height);
4019
- }
4020
- update(event) {
4021
- this.renderer.update(event);
4022
- }
4023
- toJSON() {
4024
- return this.renderer.toJSON();
4025
- }
4026
- focus() {
4027
- this.renderer.focus();
4028
- }
4029
- init(parameters) {
4030
- this.renderer.init(parameters);
4031
- }
4032
- updateParentGroup(group, isPanelVisible) {
4033
- this.renderer.updateParentGroup(group, isPanelVisible);
4034
- }
4035
- dispose() {
4036
- this.renderer.dispose();
4037
- }
4038
- }
4039
3971
  class DefaultTab extends CompositeDisposable {
4040
3972
  constructor() {
4041
3973
  super();
@@ -4098,15 +4030,21 @@ class DefaultTab extends CompositeDisposable {
4098
4030
  }
4099
4031
  }
4100
4032
  updateParentGroup(group, isPanelVisible) {
4033
+ const changed = this._isPanelVisible !== isPanelVisible ||
4034
+ this._isGroupActive !== group.isActive;
4101
4035
  this._isPanelVisible = isPanelVisible;
4102
4036
  this._isGroupActive = group.isActive;
4103
- this.render();
4037
+ if (changed) {
4038
+ this.render();
4039
+ }
4104
4040
  }
4105
4041
  layout(_width, _height) {
4106
4042
  // noop
4107
4043
  }
4108
4044
  render() {
4109
- this._content.textContent = this.params.title;
4045
+ if (this._content.textContent !== this.params.title) {
4046
+ this._content.textContent = this.params.title;
4047
+ }
4110
4048
  }
4111
4049
  }
4112
4050
 
@@ -4150,7 +4088,7 @@ class BasePanelView extends CompositeDisposable {
4150
4088
  layout(width, height) {
4151
4089
  this._width = width;
4152
4090
  this._height = height;
4153
- this.api._onDidPanelDimensionChange.fire({ width, height });
4091
+ this.api._onDidDimensionChange.fire({ width, height });
4154
4092
  if (this.part) {
4155
4093
  if (this._params) {
4156
4094
  this.part.update(this._params.params);
@@ -4199,11 +4137,11 @@ class GridviewPanel extends BasePanelView {
4199
4137
  this.onDidChange = this._onDidChange.event;
4200
4138
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
4201
4139
  const { isVisible } = event;
4202
- const { containerApi } = this._params;
4203
- containerApi.setVisible(this, isVisible);
4140
+ const { accessor } = this._params;
4141
+ accessor.setVisible(this, isVisible);
4204
4142
  }), this.api.onActiveChange(() => {
4205
- const { containerApi } = this._params;
4206
- containerApi.setActive(this);
4143
+ const { accessor } = this._params;
4144
+ accessor.setActive(this);
4207
4145
  }), this.api.onDidConstraintsChangeInternal((event) => {
4208
4146
  if (typeof event.minimumWidth === 'number' ||
4209
4147
  typeof event.minimumWidth === 'function') {
@@ -4382,7 +4320,7 @@ class DefaultGroupPanelView {
4382
4320
  constructor(renderers) {
4383
4321
  var _a;
4384
4322
  this._content = renderers.content;
4385
- this._tab = new WrappedTab((_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab());
4323
+ this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
4386
4324
  this._actions =
4387
4325
  renderers.actions ||
4388
4326
  (this.content.actions
@@ -4422,9 +4360,7 @@ class DefaultGroupPanelView {
4422
4360
  toJSON() {
4423
4361
  return {
4424
4362
  content: this.content.toJSON(),
4425
- tab: this.tab.innerRenderer instanceof DefaultTab
4426
- ? undefined
4427
- : this.tab.toJSON(),
4363
+ tab: this.tab instanceof DefaultTab ? undefined : this.tab.toJSON(),
4428
4364
  };
4429
4365
  }
4430
4366
  dispose() {
@@ -4443,9 +4379,6 @@ class DockviewComponent extends BaseGrid {
4443
4379
  orientation: options.orientation || Orientation.HORIZONTAL,
4444
4380
  styles: options.styles,
4445
4381
  });
4446
- // events
4447
- this._onTabInteractionEvent = new Emitter();
4448
- this.onTabInteractionEvent = this._onTabInteractionEvent.event;
4449
4382
  this._onTabContextMenu = new Emitter();
4450
4383
  this.onTabContextMenu = this._onTabContextMenu.event;
4451
4384
  this._onDidDrop = new Emitter();
@@ -4454,11 +4387,11 @@ class DockviewComponent extends BaseGrid {
4454
4387
  this.onDidRemovePanel = this._onDidRemovePanel.event;
4455
4388
  this._onDidAddPanel = new Emitter();
4456
4389
  this.onDidAddPanel = this._onDidAddPanel.event;
4457
- this._onDidLayoutfromJSON = new Emitter();
4458
- this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4390
+ this._onDidLayoutFromJSON = new Emitter();
4391
+ this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
4459
4392
  this._onDidActivePanelChange = new Emitter();
4460
4393
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4461
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4394
+ this.addDisposables(this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4462
4395
  this._bufferOnDidLayoutChange.fire();
4463
4396
  }));
4464
4397
  this._options = options;
@@ -4513,7 +4446,7 @@ class DockviewComponent extends BaseGrid {
4513
4446
  }
4514
4447
  updateOptions(options) {
4515
4448
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4516
- this.options.orientation !== options.orientation;
4449
+ this.gridview.orientation !== options.orientation;
4517
4450
  this._options = Object.assign(Object.assign({}, this.options), options);
4518
4451
  if (hasOrientationChanged) {
4519
4452
  this.gridview.orientation = options.orientation;
@@ -4591,12 +4524,7 @@ class DockviewComponent extends BaseGrid {
4591
4524
  };
4592
4525
  }
4593
4526
  fromJSON(data) {
4594
- const groups = Array.from(this._groups.values()).map((_) => _.value);
4595
- for (const group of groups) {
4596
- // remove the group will automatically remove the panels
4597
- this.removeGroup(group, true);
4598
- }
4599
- this.gridview.clear();
4527
+ this.clear();
4600
4528
  if (!this.deserializer) {
4601
4529
  throw new Error('invalid deserializer');
4602
4530
  }
@@ -4607,12 +4535,31 @@ class DockviewComponent extends BaseGrid {
4607
4535
  if (!this.deserializer) {
4608
4536
  throw new Error('no deserializer provided');
4609
4537
  }
4610
- this.gridview.deserialize(grid, new DefaultDeserializer(this, {
4611
- createPanel: (id, group) => {
4612
- const panelData = panels[id];
4613
- return this.deserializer.fromJSON(panelData, group);
4614
- },
4615
- }));
4538
+ this.gridview.deserialize(grid, {
4539
+ fromJSON: (node) => {
4540
+ const { id, locked, hideHeader, views, activeView } = node.data;
4541
+ const group = this.createGroup({
4542
+ id,
4543
+ locked: !!locked,
4544
+ hideHeader: !!hideHeader,
4545
+ });
4546
+ this._onDidAddGroup.fire(group);
4547
+ for (const child of views) {
4548
+ const panel = this.deserializer.fromJSON(panels[child], group);
4549
+ const isActive = typeof activeView === 'string' && activeView === panel.id;
4550
+ group.model.openPanel(panel, {
4551
+ skipSetPanelActive: !isActive,
4552
+ skipSetGroupActive: true
4553
+ });
4554
+ }
4555
+ if (!group.activePanel && group.panels.length > 0) {
4556
+ group.model.openPanel(group.panels[group.panels.length - 1], {
4557
+ skipSetGroupActive: true
4558
+ });
4559
+ }
4560
+ return group;
4561
+ }
4562
+ });
4616
4563
  if (typeof activeGroup === 'string') {
4617
4564
  const panel = this.getPanel(activeGroup);
4618
4565
  if (panel) {
@@ -4620,7 +4567,23 @@ class DockviewComponent extends BaseGrid {
4620
4567
  }
4621
4568
  }
4622
4569
  this.gridview.layout(this.width, this.height);
4623
- this._onDidLayoutfromJSON.fire();
4570
+ this._onDidLayoutFromJSON.fire();
4571
+ }
4572
+ clear() {
4573
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4574
+ const hasActiveGroup = !!this.activeGroup;
4575
+ const hasActivePanel = !!this.activePanel;
4576
+ for (const group of groups) {
4577
+ // remove the group will automatically remove the panels
4578
+ this.removeGroup(group, true);
4579
+ }
4580
+ if (hasActiveGroup) {
4581
+ this.doSetGroupActive(undefined);
4582
+ }
4583
+ if (hasActivePanel) {
4584
+ this._onDidActivePanelChange.fire(undefined);
4585
+ }
4586
+ this.gridview.clear();
4624
4587
  }
4625
4588
  closeAllGroups() {
4626
4589
  for (const entry of this._groups.entries()) {
@@ -4812,13 +4775,13 @@ class DockviewComponent extends BaseGrid {
4812
4775
  }
4813
4776
  }
4814
4777
  const view = new GroupPanel(this, id, options);
4815
- view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4778
+ view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
4816
4779
  if (!this._groups.has(view.id)) {
4817
4780
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4818
4781
  const { groupId, itemId, target, index } = event;
4819
4782
  this.moveGroupOrPanel(view, groupId, itemId, target, index);
4820
4783
  }), view.model.onDidDrop((event) => {
4821
- this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
4784
+ this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
4822
4785
  }), view.model.onDidGroupChange((event) => {
4823
4786
  switch (event.kind) {
4824
4787
  case GroupChangeKind2.ADD_PANEL:
@@ -4882,7 +4845,7 @@ class DockviewComponent extends BaseGrid {
4882
4845
  this._onDidActivePanelChange.dispose();
4883
4846
  this._onDidAddPanel.dispose();
4884
4847
  this._onDidRemovePanel.dispose();
4885
- this._onDidLayoutfromJSON.dispose();
4848
+ this._onDidLayoutFromJSON.dispose();
4886
4849
  }
4887
4850
  }
4888
4851
 
@@ -4920,7 +4883,7 @@ class GridviewComponent extends BaseGrid {
4920
4883
  }
4921
4884
  updateOptions(options) {
4922
4885
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4923
- this.options.orientation !== options.orientation;
4886
+ this.gridview.orientation !== options.orientation;
4924
4887
  this._options = Object.assign(Object.assign({}, this.options), options);
4925
4888
  if (hasOrientationChanged) {
4926
4889
  this.gridview.orientation = options.orientation;
@@ -4951,21 +4914,13 @@ class GridviewComponent extends BaseGrid {
4951
4914
  value.value.setActive(panel === value.value);
4952
4915
  });
4953
4916
  }
4954
- toggleVisibility(panel) {
4955
- this.setVisible(panel, !this.isVisible(panel));
4956
- }
4957
4917
  focus() {
4958
4918
  var _a;
4959
4919
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4960
4920
  }
4961
4921
  fromJSON(serializedGridview) {
4922
+ this.clear();
4962
4923
  const { grid, activePanel } = serializedGridview;
4963
- const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4964
- for (const group of groups) {
4965
- group.disposable.dispose();
4966
- this.doRemoveGroup(group.value, { skipActive: true });
4967
- }
4968
- this.gridview.clear();
4969
4924
  const queue = [];
4970
4925
  this.gridview.deserialize(grid, {
4971
4926
  fromJSON: (node) => {
@@ -4984,9 +4939,10 @@ class GridviewComponent extends BaseGrid {
4984
4939
  maximumHeight: data.maximumHeight,
4985
4940
  priority: data.priority,
4986
4941
  snap: !!data.snap,
4987
- containerApi: new GridviewApi(this),
4942
+ accessor: this,
4988
4943
  isVisible: node.visible,
4989
4944
  }));
4945
+ this._onDidAddGroup.fire(view);
4990
4946
  this.registerPanel(view);
4991
4947
  return view;
4992
4948
  },
@@ -5001,6 +4957,18 @@ class GridviewComponent extends BaseGrid {
5001
4957
  }
5002
4958
  this._onDidLayoutfromJSON.fire();
5003
4959
  }
4960
+ clear() {
4961
+ const hasActiveGroup = this.activeGroup;
4962
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4963
+ for (const group of groups) {
4964
+ group.disposable.dispose();
4965
+ this.doRemoveGroup(group.value, { skipActive: true });
4966
+ }
4967
+ if (hasActiveGroup) {
4968
+ this.doSetGroupActive(undefined);
4969
+ }
4970
+ this.gridview.clear();
4971
+ }
5004
4972
  movePanel(panel, options) {
5005
4973
  var _a;
5006
4974
  let relativeLocation;
@@ -5050,7 +5018,7 @@ class GridviewComponent extends BaseGrid {
5050
5018
  maximumHeight: options.maximumHeight,
5051
5019
  priority: options.priority,
5052
5020
  snap: !!options.snap,
5053
- containerApi: new GridviewApi(this),
5021
+ accessor: this,
5054
5022
  isVisible: true,
5055
5023
  });
5056
5024
  this.registerPanel(view);
@@ -5246,7 +5214,7 @@ class SplitviewComponent extends CompositeDisposable {
5246
5214
  maximumSize: options.maximumSize,
5247
5215
  snap: options.snap,
5248
5216
  priority: options.priority,
5249
- containerApi: new SplitviewApi(this),
5217
+ accessor: this,
5250
5218
  });
5251
5219
  const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
5252
5220
  const index = typeof options.index === 'number' ? options.index : undefined;
@@ -5291,13 +5259,8 @@ class SplitviewComponent extends CompositeDisposable {
5291
5259
  };
5292
5260
  }
5293
5261
  fromJSON(serializedSplitview) {
5262
+ this.clear();
5294
5263
  const { views, orientation, size, activeView } = serializedSplitview;
5295
- for (const [_, value] of this._panels.entries()) {
5296
- value.disposable.dispose();
5297
- value.value.dispose();
5298
- }
5299
- this._panels.clear();
5300
- this.splitview.dispose();
5301
5264
  const queue = [];
5302
5265
  this.splitview = new Splitview(this.element, {
5303
5266
  orientation,
@@ -5322,7 +5285,7 @@ class SplitviewComponent extends CompositeDisposable {
5322
5285
  maximumSize: data.maximumSize,
5323
5286
  snap: view.snap,
5324
5287
  priority: view.priority,
5325
- containerApi: new SplitviewApi(this),
5288
+ accessor: this,
5326
5289
  });
5327
5290
  });
5328
5291
  panel.orientation = orientation;
@@ -5345,6 +5308,14 @@ class SplitviewComponent extends CompositeDisposable {
5345
5308
  }
5346
5309
  this._onDidLayoutfromJSON.fire();
5347
5310
  }
5311
+ clear() {
5312
+ for (const [_, value] of this._panels.entries()) {
5313
+ value.disposable.dispose();
5314
+ value.value.dispose();
5315
+ }
5316
+ this._panels.clear();
5317
+ this.splitview.dispose();
5318
+ }
5348
5319
  dispose() {
5349
5320
  for (const [_, value] of this._panels.entries()) {
5350
5321
  value.disposable.dispose();
@@ -5673,9 +5644,9 @@ class DefaultHeader extends CompositeDisposable {
5673
5644
  this.element.className = 'default-header';
5674
5645
  this._content = document.createElement('span');
5675
5646
  this._expander = document.createElement('a');
5676
- this.element.appendChild(this._content);
5677
5647
  this.element.appendChild(this._expander);
5678
- this.addDisposables(addDisposableListener(this._expander, 'click', () => {
5648
+ this.element.appendChild(this._content);
5649
+ this.addDisposables(addDisposableListener(this._element, 'click', () => {
5679
5650
  var _a;
5680
5651
  (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
5681
5652
  }));
@@ -5686,9 +5657,10 @@ class DefaultHeader extends CompositeDisposable {
5686
5657
  init(params) {
5687
5658
  this.apiRef.api = params.api;
5688
5659
  this._content.textContent = params.title;
5689
- this._expander.textContent = params.api.isExpanded ? '<' : '>';
5660
+ this._expander.textContent = '';
5661
+ toggleClass(this._expander, 'collapsed', !params.api.isExpanded);
5690
5662
  this.disposable.value = params.api.onDidExpansionChange((e) => {
5691
- this._expander.textContent = e.isExpanded ? '<' : '>';
5663
+ toggleClass(this._expander, 'collapsed', !e.isExpanded);
5692
5664
  });
5693
5665
  }
5694
5666
  update(_params) {
@@ -5864,13 +5836,9 @@ class PaneviewComponent extends CompositeDisposable {
5864
5836
  };
5865
5837
  }
5866
5838
  fromJSON(serializedPaneview) {
5839
+ this.clear();
5867
5840
  const { views, size } = serializedPaneview;
5868
5841
  const queue = [];
5869
- for (const [_, value] of this._viewDisposables.entries()) {
5870
- value.dispose();
5871
- }
5872
- this._viewDisposables.clear();
5873
- this.paneview.dispose();
5874
5842
  this.paneview = new Paneview(this.element, {
5875
5843
  orientation: Orientation.VERTICAL,
5876
5844
  descriptor: {
@@ -5929,6 +5897,13 @@ class PaneviewComponent extends CompositeDisposable {
5929
5897
  queue.forEach((f) => f());
5930
5898
  this._onDidLayoutfromJSON.fire();
5931
5899
  }
5900
+ clear() {
5901
+ for (const [_, value] of this._viewDisposables.entries()) {
5902
+ value.dispose();
5903
+ }
5904
+ this._viewDisposables.clear();
5905
+ this.paneview.dispose();
5906
+ }
5932
5907
  doAddPanel(panel) {
5933
5908
  const disposable = panel.onDidDrop((event) => {
5934
5909
  this._onDidDrop.fire(event);
@@ -5964,13 +5939,11 @@ class SplitviewPanel extends BasePanelView {
5964
5939
  this.onDidChange = this._onDidChange.event;
5965
5940
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
5966
5941
  const { isVisible } = event;
5967
- const { containerApi } = this
5968
- ._params;
5969
- containerApi.setVisible(this, isVisible);
5942
+ const { accessor } = this._params;
5943
+ accessor.setVisible(this, isVisible);
5970
5944
  }), this.api.onActiveChange(() => {
5971
- const { containerApi } = this
5972
- ._params;
5973
- containerApi.setActive(this);
5945
+ const { accessor } = this._params;
5946
+ accessor.setActive(this);
5974
5947
  }), this.api.onDidConstraintsChangeInternal((event) => {
5975
5948
  if (typeof event.minimumSize === 'number' ||
5976
5949
  typeof event.minimumSize === 'function') {
@@ -6222,9 +6195,6 @@ class ReactPanelContentPart {
6222
6195
  layout(_width, _height) {
6223
6196
  // noop
6224
6197
  }
6225
- close() {
6226
- return Promise.resolve(true);
6227
- }
6228
6198
  dispose() {
6229
6199
  var _a, _b;
6230
6200
  this._onDidFocus.dispose();
@@ -6494,58 +6464,6 @@ const DockviewReact = React.forwardRef((props, ref) => {
6494
6464
  });
6495
6465
  DockviewReact.displayName = 'DockviewComponent';
6496
6466
 
6497
- const Tab = (props) => {
6498
- return React.createElement(React.Fragment, null, props.children);
6499
- };
6500
- const Content = (props) => {
6501
- return React.createElement(React.Fragment, null, props.children);
6502
- };
6503
- const Actions = (props) => {
6504
- return React.createElement(React.Fragment, null, props.children);
6505
- };
6506
- function isValidComponent(element) {
6507
- return [Content, Actions, Tab].find((comp) => element.type === comp);
6508
- }
6509
- const Panel = (props) => {
6510
- const context = React.useContext(ReactPartContext);
6511
- const sections = React.useMemo(() => {
6512
- var _a;
6513
- const childs = ((_a = React.Children.map(props.children, (_) => _)) === null || _a === void 0 ? void 0 : _a.filter(isReactElement)) || [];
6514
- const isInvalid = !!childs.find((_) => !isValidComponent(_));
6515
- if (isInvalid) {
6516
- throw new Error('Children of DockviewComponents.Panel must be one of the following: DockviewComponents.Content, DockviewComponents.Actions, DockviewComponents.Tab');
6517
- }
6518
- const body = childs.find((_) => _.type === Content);
6519
- const actions = childs.find((_) => _.type === Actions);
6520
- const tab = childs.find((_) => _.type === Tab);
6521
- return { body, actions, tab };
6522
- }, [props.children]);
6523
- React.useEffect(() => {
6524
- /**
6525
- * hide or show the default tab behavior based on whether we want to override
6526
- * with our own React tab.
6527
- */
6528
- if (sections.tab) {
6529
- context.tabPortalElement.hide();
6530
- }
6531
- else {
6532
- context.tabPortalElement.show();
6533
- }
6534
- }, [sections.tab]);
6535
- return (React.createElement(React.Fragment, null,
6536
- sections.actions &&
6537
- ReactDOM.createPortal(sections.actions, context.actionsPortalElement),
6538
- sections.tab &&
6539
- ReactDOM.createPortal(sections.tab, context.tabPortalElement.element),
6540
- sections.body || props.children));
6541
- };
6542
- const DockviewComponents = {
6543
- Tab,
6544
- Content,
6545
- Actions,
6546
- Panel,
6547
- };
6548
-
6549
6467
  class ReactPanelView extends SplitviewPanel {
6550
6468
  constructor(id, component, reactComponent, reactPortalStore) {
6551
6469
  super(id, component);
@@ -6557,8 +6475,7 @@ class ReactPanelView extends SplitviewPanel {
6557
6475
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6558
6476
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6559
6477
  api: this.api,
6560
- containerApi: this._params
6561
- .containerApi,
6478
+ containerApi: new SplitviewApi(this._params.accessor),
6562
6479
  });
6563
6480
  }
6564
6481
  }
@@ -6634,8 +6551,7 @@ class ReactGridPanelView extends GridviewPanel {
6634
6551
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6635
6552
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6636
6553
  api: this.api,
6637
- containerApi: this._params
6638
- .containerApi,
6554
+ containerApi: new GridviewApi(this._params.accessor),
6639
6555
  });
6640
6556
  }
6641
6557
  }
@@ -6825,4 +6741,4 @@ const PaneviewReact = React.forwardRef((props, ref) => {
6825
6741
  });
6826
6742
  PaneviewReact.displayName = 'PaneviewComponent';
6827
6743
 
6828
- export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewComponents, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, GroupChangeKind2, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPanelContentPart, ReactPanelHeaderPart, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab$1 as Tab, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };
6744
+ export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewDropTargets, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, GroupChangeKind2, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPanelContentPart, ReactPanelHeaderPart, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };