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
package/dist/dockview.js CHANGED
@@ -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
  */
@@ -58,7 +58,7 @@
58
58
  }
59
59
  }
60
60
 
61
- 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}";
61
+ 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}";
62
62
  styleInject(css_248z);
63
63
 
64
64
  class TransferObject {
@@ -2307,18 +2307,12 @@
2307
2307
  removePanel(panel, sizing) {
2308
2308
  this.component.removePanel(panel, sizing);
2309
2309
  }
2310
- setVisible(panel, isVisible) {
2311
- this.component.setVisible(panel, isVisible);
2312
- }
2313
2310
  focus() {
2314
2311
  this.component.focus();
2315
2312
  }
2316
2313
  getPanel(id) {
2317
2314
  return this.component.getPanel(id);
2318
2315
  }
2319
- setActive(panel) {
2320
- this.component.setActive(panel);
2321
- }
2322
2316
  layout(width, height) {
2323
2317
  return this.component.layout(width, height);
2324
2318
  }
@@ -2334,6 +2328,9 @@
2334
2328
  toJSON() {
2335
2329
  return this.component.toJSON();
2336
2330
  }
2331
+ clear() {
2332
+ this.component.clear();
2333
+ }
2337
2334
  }
2338
2335
  class PaneviewApi {
2339
2336
  constructor(component) {
@@ -2401,6 +2398,9 @@
2401
2398
  toJSON() {
2402
2399
  return this.component.toJSON();
2403
2400
  }
2401
+ clear() {
2402
+ this.component.clear();
2403
+ }
2404
2404
  }
2405
2405
  class GridviewApi {
2406
2406
  constructor(component) {
@@ -2427,13 +2427,13 @@
2427
2427
  get onDidLayoutChange() {
2428
2428
  return this.component.onDidLayoutChange;
2429
2429
  }
2430
- get onDidAddGroup() {
2430
+ get onDidAddPanel() {
2431
2431
  return this.component.onDidAddGroup;
2432
2432
  }
2433
- get onDidRemoveGroup() {
2433
+ get onDidRemovePanel() {
2434
2434
  return this.component.onDidRemoveGroup;
2435
2435
  }
2436
- get onDidActiveGroupChange() {
2436
+ get onDidActivePanelChange() {
2437
2437
  return this.component.onDidActiveGroupChange;
2438
2438
  }
2439
2439
  get onDidLayoutFromJSON() {
@@ -2466,21 +2466,15 @@
2466
2466
  getPanel(id) {
2467
2467
  return this.component.getPanel(id);
2468
2468
  }
2469
- toggleVisibility(panel) {
2470
- this.component.toggleVisibility(panel);
2471
- }
2472
- setVisible(panel, visible) {
2473
- this.component.setVisible(panel, visible);
2474
- }
2475
- setActive(panel) {
2476
- this.component.setActive(panel);
2477
- }
2478
2469
  fromJSON(data) {
2479
2470
  return this.component.fromJSON(data);
2480
2471
  }
2481
2472
  toJSON() {
2482
2473
  return this.component.toJSON();
2483
2474
  }
2475
+ clear() {
2476
+ this.component.clear();
2477
+ }
2484
2478
  }
2485
2479
  class DockviewApi {
2486
2480
  constructor(component) {
@@ -2529,7 +2523,7 @@
2529
2523
  return this.component.onDidRemovePanel;
2530
2524
  }
2531
2525
  get onDidLayoutFromJSON() {
2532
- return this.component.onDidLayoutfromJSON;
2526
+ return this.component.onDidLayoutFromJSON;
2533
2527
  }
2534
2528
  get onDidLayoutChange() {
2535
2529
  return this.component.onDidLayoutChange;
@@ -2591,6 +2585,9 @@
2591
2585
  toJSON() {
2592
2586
  return this.component.toJSON();
2593
2587
  }
2588
+ clear() {
2589
+ this.component.clear();
2590
+ }
2594
2591
  }
2595
2592
 
2596
2593
  class ContentContainer extends CompositeDisposable {
@@ -2664,12 +2661,12 @@
2664
2661
  }
2665
2662
  }
2666
2663
 
2667
- var DockviewDropTargets;
2664
+ exports.DockviewDropTargets = void 0;
2668
2665
  (function (DockviewDropTargets) {
2669
2666
  DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
2670
2667
  DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
2671
2668
  DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
2672
- })(DockviewDropTargets || (DockviewDropTargets = {}));
2669
+ })(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
2673
2670
 
2674
2671
  class DragHandler extends CompositeDisposable {
2675
2672
  constructor(el) {
@@ -2711,7 +2708,7 @@
2711
2708
  MouseEventKind["CLICK"] = "CLICK";
2712
2709
  MouseEventKind["CONTEXT_MENU"] = "CONTEXT_MENU";
2713
2710
  })(exports.MouseEventKind || (exports.MouseEventKind = {}));
2714
- class Tab$1 extends CompositeDisposable {
2711
+ class Tab extends CompositeDisposable {
2715
2712
  constructor(panelId, accessor, group) {
2716
2713
  super();
2717
2714
  this.panelId = panelId;
@@ -2725,6 +2722,7 @@
2725
2722
  this._element.className = 'tab';
2726
2723
  this._element.tabIndex = 0;
2727
2724
  this._element.draggable = true;
2725
+ toggleClass(this.element, 'inactive-tab', true);
2728
2726
  this.addDisposables(new (class Handler extends DragHandler {
2729
2727
  constructor() {
2730
2728
  super(...arguments);
@@ -2767,7 +2765,7 @@
2767
2765
  if (data) {
2768
2766
  return this.panelId !== data.panelId;
2769
2767
  }
2770
- return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
2768
+ return this.group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Tab);
2771
2769
  },
2772
2770
  });
2773
2771
  this.addDisposables(this.droptarget.onDrop((event) => {
@@ -2801,7 +2799,6 @@
2801
2799
  this.group = group;
2802
2800
  this.tabs = [];
2803
2801
  this.selectedIndex = -1;
2804
- this.active = false;
2805
2802
  this._hidden = false;
2806
2803
  this._onDrop = new Emitter();
2807
2804
  this.onDrop = this._onDrop.event;
@@ -2827,7 +2824,7 @@
2827
2824
  // don't show the overlay if the tab being dragged is the last panel of this group
2828
2825
  return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
2829
2826
  }
2830
- return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
2827
+ return group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
2831
2828
  },
2832
2829
  });
2833
2830
  this.addDisposables(this.voidDropTarget.onDrop((event) => {
@@ -2905,8 +2902,8 @@
2905
2902
  indexOf(id) {
2906
2903
  return this.tabs.findIndex((tab) => tab.value.panelId === id);
2907
2904
  }
2908
- setActive(isGroupActive) {
2909
- this.active = isGroupActive;
2905
+ setActive(_isGroupActive) {
2906
+ // noop
2910
2907
  }
2911
2908
  addTab(tab, index = this.tabs.length) {
2912
2909
  if (index < 0 || index > this.tabs.length) {
@@ -2940,7 +2937,7 @@
2940
2937
  if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {
2941
2938
  return;
2942
2939
  }
2943
- const tabToAdd = new Tab$1(panel.id, this.accessor, this.group);
2940
+ const tabToAdd = new Tab(panel.id, this.accessor, this.group);
2944
2941
  if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
2945
2942
  throw new Error('invalid header component');
2946
2943
  }
@@ -2967,7 +2964,6 @@
2967
2964
  }));
2968
2965
  const value = { value: tabToAdd, disposable };
2969
2966
  this.addTab(value, index);
2970
- this.activePanel = panel;
2971
2967
  }
2972
2968
  closePanel(panel) {
2973
2969
  this.delete(panel.id);
@@ -3026,7 +3022,7 @@
3026
3022
  const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
3027
3023
  return !groupHasOnePanelAndIsActiveDragElement;
3028
3024
  }
3029
- return this.canDisplayOverlay(event, DockviewDropTargets.Panel);
3025
+ return this.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
3030
3026
  },
3031
3027
  });
3032
3028
  container.append(this.tabsContainer.element, this.contentContainer.element);
@@ -3184,16 +3180,21 @@
3184
3180
  options.index > this.panels.length) {
3185
3181
  options.index = this.panels.length;
3186
3182
  }
3187
- const skipSetActive = !!options.skipSetActive;
3183
+ const skipSetPanelActive = !!options.skipSetPanelActive;
3184
+ const skipSetGroupActive = !!options.skipSetGroupActive;
3188
3185
  // ensure the group is updated before we fire any events
3189
3186
  panel.updateParentGroup(this.parent, true);
3190
- if (!skipSetActive && this._activePanel === panel) {
3191
- this.accessor.doSetGroupActive(this.parent);
3187
+ if (this._activePanel === panel) {
3188
+ if (!skipSetGroupActive) {
3189
+ this.accessor.doSetGroupActive(this.parent);
3190
+ }
3192
3191
  return;
3193
3192
  }
3194
- this.doAddPanel(panel, options.index);
3195
- if (!skipSetActive) {
3193
+ this.doAddPanel(panel, options.index, skipSetPanelActive);
3194
+ if (!skipSetPanelActive) {
3196
3195
  this.doSetActivePanel(panel);
3196
+ }
3197
+ if (!skipSetGroupActive) {
3197
3198
  this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
3198
3199
  }
3199
3200
  this.updateContainer();
@@ -3297,11 +3298,13 @@
3297
3298
  panel,
3298
3299
  });
3299
3300
  }
3300
- doAddPanel(panel, index = this.panels.length) {
3301
+ doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
3301
3302
  const existingPanel = this._panels.indexOf(panel);
3302
3303
  const hasExistingPanel = existingPanel > -1;
3303
3304
  this.tabsContainer.openPanel(panel, index);
3304
- this.contentContainer.openPanel(panel);
3305
+ if (!skipSetActive) {
3306
+ this.contentContainer.openPanel(panel);
3307
+ }
3305
3308
  this.tabsContainer.show();
3306
3309
  this.contentContainer.show();
3307
3310
  if (hasExistingPanel) {
@@ -3367,7 +3370,11 @@
3367
3370
  canDisplayOverlay(event, target) {
3368
3371
  // custom overlay handler
3369
3372
  if (this.accessor.options.showDndOverlay) {
3370
- return this.accessor.options.showDndOverlay(event, target);
3373
+ return this.accessor.options.showDndOverlay({
3374
+ nativeEvent: event,
3375
+ target,
3376
+ group: this.accessor.getPanel(this.id),
3377
+ });
3371
3378
  }
3372
3379
  return false;
3373
3380
  }
@@ -3450,7 +3457,7 @@
3450
3457
  this.element.appendChild(this.gridview.element);
3451
3458
  this.layout(0, 0, true); // set some elements height/widths
3452
3459
  this.addDisposables(this.gridview.onDidChange(() => {
3453
- this._onDidLayoutChange.fire();
3460
+ this._bufferOnDidLayoutChange.fire();
3454
3461
  }));
3455
3462
  this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3456
3463
  this._bufferOnDidLayoutChange.fire();
@@ -3611,10 +3618,10 @@
3611
3618
  this._isVisible = true;
3612
3619
  this._width = 0;
3613
3620
  this._height = 0;
3614
- this._onDidPanelDimensionChange = new Emitter({
3621
+ this._onDidDimensionChange = new Emitter({
3615
3622
  replay: true,
3616
3623
  });
3617
- this.onDidDimensionsChange = this._onDidPanelDimensionChange.event;
3624
+ this.onDidDimensionsChange = this._onDidDimensionChange.event;
3618
3625
  //
3619
3626
  this._onDidChangeFocus = new Emitter({
3620
3627
  replay: true,
@@ -3639,7 +3646,7 @@
3639
3646
  //
3640
3647
  this._onActiveChange = new Emitter();
3641
3648
  this.onActiveChange = this._onActiveChange.event;
3642
- this.addDisposables(this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3649
+ this.addDisposables(this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3643
3650
  this._isFocused = event.isFocused;
3644
3651
  }), this.onDidActiveChange((event) => {
3645
3652
  this._isActive = event.isActive;
@@ -3863,7 +3870,7 @@
3863
3870
  layout(width, height) {
3864
3871
  var _a;
3865
3872
  // the obtain the correct dimensions of the content panel we must deduct the tab height
3866
- this.api._onDidPanelDimensionChange.fire({
3873
+ this.api._onDidDimensionChange.fire({
3867
3874
  width,
3868
3875
  height: height - (this.group.model.header.height || 0),
3869
3876
  });
@@ -3960,34 +3967,6 @@
3960
3967
  }
3961
3968
  }
3962
3969
 
3963
- class DefaultDeserializer {
3964
- constructor(layout, panelDeserializer) {
3965
- this.layout = layout;
3966
- this.panelDeserializer = panelDeserializer;
3967
- }
3968
- fromJSON(node) {
3969
- const data = node.data;
3970
- const children = data.views;
3971
- const active = data.activeView;
3972
- const group = this.layout.createGroup({
3973
- id: data.id,
3974
- locked: !!data.locked,
3975
- hideHeader: !!data.hideHeader,
3976
- });
3977
- for (const child of children) {
3978
- const panel = this.panelDeserializer.createPanel(child, group);
3979
- const isActive = typeof active === 'string' && active === panel.id;
3980
- group.model.openPanel(panel, {
3981
- skipSetActive: !isActive,
3982
- });
3983
- }
3984
- if (!group.activePanel && group.panels.length > 0) {
3985
- group.model.openPanel(group.panels[group.panels.length - 1]);
3986
- }
3987
- return group;
3988
- }
3989
- }
3990
-
3991
3970
  function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
3992
3971
  const Component = typeof componentName === 'string'
3993
3972
  ? components[componentName]
@@ -4013,53 +3992,6 @@
4013
3992
  return new Component(id, componentName);
4014
3993
  }
4015
3994
 
4016
- class WrappedTab {
4017
- constructor(renderer) {
4018
- this.renderer = renderer;
4019
- this._element = document.createElement('element');
4020
- this.show();
4021
- }
4022
- get innerRenderer() {
4023
- return this.renderer;
4024
- }
4025
- get element() {
4026
- return this._element;
4027
- }
4028
- get id() {
4029
- return this.renderer.id;
4030
- }
4031
- show() {
4032
- if (!this.renderer.element.parentElement) {
4033
- this._element.appendChild(this.renderer.element);
4034
- }
4035
- }
4036
- hide() {
4037
- if (this.renderer.element.parentElement) {
4038
- this.renderer.element.remove();
4039
- }
4040
- }
4041
- layout(width, height) {
4042
- this.renderer.layout(width, height);
4043
- }
4044
- update(event) {
4045
- this.renderer.update(event);
4046
- }
4047
- toJSON() {
4048
- return this.renderer.toJSON();
4049
- }
4050
- focus() {
4051
- this.renderer.focus();
4052
- }
4053
- init(parameters) {
4054
- this.renderer.init(parameters);
4055
- }
4056
- updateParentGroup(group, isPanelVisible) {
4057
- this.renderer.updateParentGroup(group, isPanelVisible);
4058
- }
4059
- dispose() {
4060
- this.renderer.dispose();
4061
- }
4062
- }
4063
3995
  class DefaultTab extends CompositeDisposable {
4064
3996
  constructor() {
4065
3997
  super();
@@ -4122,15 +4054,21 @@
4122
4054
  }
4123
4055
  }
4124
4056
  updateParentGroup(group, isPanelVisible) {
4057
+ const changed = this._isPanelVisible !== isPanelVisible ||
4058
+ this._isGroupActive !== group.isActive;
4125
4059
  this._isPanelVisible = isPanelVisible;
4126
4060
  this._isGroupActive = group.isActive;
4127
- this.render();
4061
+ if (changed) {
4062
+ this.render();
4063
+ }
4128
4064
  }
4129
4065
  layout(_width, _height) {
4130
4066
  // noop
4131
4067
  }
4132
4068
  render() {
4133
- this._content.textContent = this.params.title;
4069
+ if (this._content.textContent !== this.params.title) {
4070
+ this._content.textContent = this.params.title;
4071
+ }
4134
4072
  }
4135
4073
  }
4136
4074
 
@@ -4174,7 +4112,7 @@
4174
4112
  layout(width, height) {
4175
4113
  this._width = width;
4176
4114
  this._height = height;
4177
- this.api._onDidPanelDimensionChange.fire({ width, height });
4115
+ this.api._onDidDimensionChange.fire({ width, height });
4178
4116
  if (this.part) {
4179
4117
  if (this._params) {
4180
4118
  this.part.update(this._params.params);
@@ -4223,11 +4161,11 @@
4223
4161
  this.onDidChange = this._onDidChange.event;
4224
4162
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
4225
4163
  const { isVisible } = event;
4226
- const { containerApi } = this._params;
4227
- containerApi.setVisible(this, isVisible);
4164
+ const { accessor } = this._params;
4165
+ accessor.setVisible(this, isVisible);
4228
4166
  }), this.api.onActiveChange(() => {
4229
- const { containerApi } = this._params;
4230
- containerApi.setActive(this);
4167
+ const { accessor } = this._params;
4168
+ accessor.setActive(this);
4231
4169
  }), this.api.onDidConstraintsChangeInternal((event) => {
4232
4170
  if (typeof event.minimumWidth === 'number' ||
4233
4171
  typeof event.minimumWidth === 'function') {
@@ -4406,7 +4344,7 @@
4406
4344
  constructor(renderers) {
4407
4345
  var _a;
4408
4346
  this._content = renderers.content;
4409
- this._tab = new WrappedTab((_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab());
4347
+ this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
4410
4348
  this._actions =
4411
4349
  renderers.actions ||
4412
4350
  (this.content.actions
@@ -4446,9 +4384,7 @@
4446
4384
  toJSON() {
4447
4385
  return {
4448
4386
  content: this.content.toJSON(),
4449
- tab: this.tab.innerRenderer instanceof DefaultTab
4450
- ? undefined
4451
- : this.tab.toJSON(),
4387
+ tab: this.tab instanceof DefaultTab ? undefined : this.tab.toJSON(),
4452
4388
  };
4453
4389
  }
4454
4390
  dispose() {
@@ -4467,9 +4403,6 @@
4467
4403
  orientation: options.orientation || exports.Orientation.HORIZONTAL,
4468
4404
  styles: options.styles,
4469
4405
  });
4470
- // events
4471
- this._onTabInteractionEvent = new Emitter();
4472
- this.onTabInteractionEvent = this._onTabInteractionEvent.event;
4473
4406
  this._onTabContextMenu = new Emitter();
4474
4407
  this.onTabContextMenu = this._onTabContextMenu.event;
4475
4408
  this._onDidDrop = new Emitter();
@@ -4478,11 +4411,11 @@
4478
4411
  this.onDidRemovePanel = this._onDidRemovePanel.event;
4479
4412
  this._onDidAddPanel = new Emitter();
4480
4413
  this.onDidAddPanel = this._onDidAddPanel.event;
4481
- this._onDidLayoutfromJSON = new Emitter();
4482
- this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4414
+ this._onDidLayoutFromJSON = new Emitter();
4415
+ this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
4483
4416
  this._onDidActivePanelChange = new Emitter();
4484
4417
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4485
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4418
+ this.addDisposables(this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4486
4419
  this._bufferOnDidLayoutChange.fire();
4487
4420
  }));
4488
4421
  this._options = options;
@@ -4537,7 +4470,7 @@
4537
4470
  }
4538
4471
  updateOptions(options) {
4539
4472
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4540
- this.options.orientation !== options.orientation;
4473
+ this.gridview.orientation !== options.orientation;
4541
4474
  this._options = Object.assign(Object.assign({}, this.options), options);
4542
4475
  if (hasOrientationChanged) {
4543
4476
  this.gridview.orientation = options.orientation;
@@ -4615,12 +4548,7 @@
4615
4548
  };
4616
4549
  }
4617
4550
  fromJSON(data) {
4618
- const groups = Array.from(this._groups.values()).map((_) => _.value);
4619
- for (const group of groups) {
4620
- // remove the group will automatically remove the panels
4621
- this.removeGroup(group, true);
4622
- }
4623
- this.gridview.clear();
4551
+ this.clear();
4624
4552
  if (!this.deserializer) {
4625
4553
  throw new Error('invalid deserializer');
4626
4554
  }
@@ -4631,12 +4559,31 @@
4631
4559
  if (!this.deserializer) {
4632
4560
  throw new Error('no deserializer provided');
4633
4561
  }
4634
- this.gridview.deserialize(grid, new DefaultDeserializer(this, {
4635
- createPanel: (id, group) => {
4636
- const panelData = panels[id];
4637
- return this.deserializer.fromJSON(panelData, group);
4638
- },
4639
- }));
4562
+ this.gridview.deserialize(grid, {
4563
+ fromJSON: (node) => {
4564
+ const { id, locked, hideHeader, views, activeView } = node.data;
4565
+ const group = this.createGroup({
4566
+ id,
4567
+ locked: !!locked,
4568
+ hideHeader: !!hideHeader,
4569
+ });
4570
+ this._onDidAddGroup.fire(group);
4571
+ for (const child of views) {
4572
+ const panel = this.deserializer.fromJSON(panels[child], group);
4573
+ const isActive = typeof activeView === 'string' && activeView === panel.id;
4574
+ group.model.openPanel(panel, {
4575
+ skipSetPanelActive: !isActive,
4576
+ skipSetGroupActive: true
4577
+ });
4578
+ }
4579
+ if (!group.activePanel && group.panels.length > 0) {
4580
+ group.model.openPanel(group.panels[group.panels.length - 1], {
4581
+ skipSetGroupActive: true
4582
+ });
4583
+ }
4584
+ return group;
4585
+ }
4586
+ });
4640
4587
  if (typeof activeGroup === 'string') {
4641
4588
  const panel = this.getPanel(activeGroup);
4642
4589
  if (panel) {
@@ -4644,7 +4591,23 @@
4644
4591
  }
4645
4592
  }
4646
4593
  this.gridview.layout(this.width, this.height);
4647
- this._onDidLayoutfromJSON.fire();
4594
+ this._onDidLayoutFromJSON.fire();
4595
+ }
4596
+ clear() {
4597
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4598
+ const hasActiveGroup = !!this.activeGroup;
4599
+ const hasActivePanel = !!this.activePanel;
4600
+ for (const group of groups) {
4601
+ // remove the group will automatically remove the panels
4602
+ this.removeGroup(group, true);
4603
+ }
4604
+ if (hasActiveGroup) {
4605
+ this.doSetGroupActive(undefined);
4606
+ }
4607
+ if (hasActivePanel) {
4608
+ this._onDidActivePanelChange.fire(undefined);
4609
+ }
4610
+ this.gridview.clear();
4648
4611
  }
4649
4612
  closeAllGroups() {
4650
4613
  for (const entry of this._groups.entries()) {
@@ -4836,13 +4799,13 @@
4836
4799
  }
4837
4800
  }
4838
4801
  const view = new GroupPanel(this, id, options);
4839
- view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4802
+ view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
4840
4803
  if (!this._groups.has(view.id)) {
4841
4804
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4842
4805
  const { groupId, itemId, target, index } = event;
4843
4806
  this.moveGroupOrPanel(view, groupId, itemId, target, index);
4844
4807
  }), view.model.onDidDrop((event) => {
4845
- this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
4808
+ this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
4846
4809
  }), view.model.onDidGroupChange((event) => {
4847
4810
  switch (event.kind) {
4848
4811
  case exports.GroupChangeKind2.ADD_PANEL:
@@ -4906,7 +4869,7 @@
4906
4869
  this._onDidActivePanelChange.dispose();
4907
4870
  this._onDidAddPanel.dispose();
4908
4871
  this._onDidRemovePanel.dispose();
4909
- this._onDidLayoutfromJSON.dispose();
4872
+ this._onDidLayoutFromJSON.dispose();
4910
4873
  }
4911
4874
  }
4912
4875
 
@@ -4944,7 +4907,7 @@
4944
4907
  }
4945
4908
  updateOptions(options) {
4946
4909
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4947
- this.options.orientation !== options.orientation;
4910
+ this.gridview.orientation !== options.orientation;
4948
4911
  this._options = Object.assign(Object.assign({}, this.options), options);
4949
4912
  if (hasOrientationChanged) {
4950
4913
  this.gridview.orientation = options.orientation;
@@ -4975,21 +4938,13 @@
4975
4938
  value.value.setActive(panel === value.value);
4976
4939
  });
4977
4940
  }
4978
- toggleVisibility(panel) {
4979
- this.setVisible(panel, !this.isVisible(panel));
4980
- }
4981
4941
  focus() {
4982
4942
  var _a;
4983
4943
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4984
4944
  }
4985
4945
  fromJSON(serializedGridview) {
4946
+ this.clear();
4986
4947
  const { grid, activePanel } = serializedGridview;
4987
- const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4988
- for (const group of groups) {
4989
- group.disposable.dispose();
4990
- this.doRemoveGroup(group.value, { skipActive: true });
4991
- }
4992
- this.gridview.clear();
4993
4948
  const queue = [];
4994
4949
  this.gridview.deserialize(grid, {
4995
4950
  fromJSON: (node) => {
@@ -5008,9 +4963,10 @@
5008
4963
  maximumHeight: data.maximumHeight,
5009
4964
  priority: data.priority,
5010
4965
  snap: !!data.snap,
5011
- containerApi: new GridviewApi(this),
4966
+ accessor: this,
5012
4967
  isVisible: node.visible,
5013
4968
  }));
4969
+ this._onDidAddGroup.fire(view);
5014
4970
  this.registerPanel(view);
5015
4971
  return view;
5016
4972
  },
@@ -5025,6 +4981,18 @@
5025
4981
  }
5026
4982
  this._onDidLayoutfromJSON.fire();
5027
4983
  }
4984
+ clear() {
4985
+ const hasActiveGroup = this.activeGroup;
4986
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4987
+ for (const group of groups) {
4988
+ group.disposable.dispose();
4989
+ this.doRemoveGroup(group.value, { skipActive: true });
4990
+ }
4991
+ if (hasActiveGroup) {
4992
+ this.doSetGroupActive(undefined);
4993
+ }
4994
+ this.gridview.clear();
4995
+ }
5028
4996
  movePanel(panel, options) {
5029
4997
  var _a;
5030
4998
  let relativeLocation;
@@ -5074,7 +5042,7 @@
5074
5042
  maximumHeight: options.maximumHeight,
5075
5043
  priority: options.priority,
5076
5044
  snap: !!options.snap,
5077
- containerApi: new GridviewApi(this),
5045
+ accessor: this,
5078
5046
  isVisible: true,
5079
5047
  });
5080
5048
  this.registerPanel(view);
@@ -5270,7 +5238,7 @@
5270
5238
  maximumSize: options.maximumSize,
5271
5239
  snap: options.snap,
5272
5240
  priority: options.priority,
5273
- containerApi: new SplitviewApi(this),
5241
+ accessor: this,
5274
5242
  });
5275
5243
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
5276
5244
  const index = typeof options.index === 'number' ? options.index : undefined;
@@ -5315,13 +5283,8 @@
5315
5283
  };
5316
5284
  }
5317
5285
  fromJSON(serializedSplitview) {
5286
+ this.clear();
5318
5287
  const { views, orientation, size, activeView } = serializedSplitview;
5319
- for (const [_, value] of this._panels.entries()) {
5320
- value.disposable.dispose();
5321
- value.value.dispose();
5322
- }
5323
- this._panels.clear();
5324
- this.splitview.dispose();
5325
5288
  const queue = [];
5326
5289
  this.splitview = new Splitview(this.element, {
5327
5290
  orientation,
@@ -5346,7 +5309,7 @@
5346
5309
  maximumSize: data.maximumSize,
5347
5310
  snap: view.snap,
5348
5311
  priority: view.priority,
5349
- containerApi: new SplitviewApi(this),
5312
+ accessor: this,
5350
5313
  });
5351
5314
  });
5352
5315
  panel.orientation = orientation;
@@ -5369,6 +5332,14 @@
5369
5332
  }
5370
5333
  this._onDidLayoutfromJSON.fire();
5371
5334
  }
5335
+ clear() {
5336
+ for (const [_, value] of this._panels.entries()) {
5337
+ value.disposable.dispose();
5338
+ value.value.dispose();
5339
+ }
5340
+ this._panels.clear();
5341
+ this.splitview.dispose();
5342
+ }
5372
5343
  dispose() {
5373
5344
  for (const [_, value] of this._panels.entries()) {
5374
5345
  value.disposable.dispose();
@@ -5697,9 +5668,9 @@
5697
5668
  this.element.className = 'default-header';
5698
5669
  this._content = document.createElement('span');
5699
5670
  this._expander = document.createElement('a');
5700
- this.element.appendChild(this._content);
5701
5671
  this.element.appendChild(this._expander);
5702
- this.addDisposables(addDisposableListener(this._expander, 'click', () => {
5672
+ this.element.appendChild(this._content);
5673
+ this.addDisposables(addDisposableListener(this._element, 'click', () => {
5703
5674
  var _a;
5704
5675
  (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
5705
5676
  }));
@@ -5710,9 +5681,10 @@
5710
5681
  init(params) {
5711
5682
  this.apiRef.api = params.api;
5712
5683
  this._content.textContent = params.title;
5713
- this._expander.textContent = params.api.isExpanded ? '<' : '>';
5684
+ this._expander.textContent = '';
5685
+ toggleClass(this._expander, 'collapsed', !params.api.isExpanded);
5714
5686
  this.disposable.value = params.api.onDidExpansionChange((e) => {
5715
- this._expander.textContent = e.isExpanded ? '<' : '>';
5687
+ toggleClass(this._expander, 'collapsed', !e.isExpanded);
5716
5688
  });
5717
5689
  }
5718
5690
  update(_params) {
@@ -5888,13 +5860,9 @@
5888
5860
  };
5889
5861
  }
5890
5862
  fromJSON(serializedPaneview) {
5863
+ this.clear();
5891
5864
  const { views, size } = serializedPaneview;
5892
5865
  const queue = [];
5893
- for (const [_, value] of this._viewDisposables.entries()) {
5894
- value.dispose();
5895
- }
5896
- this._viewDisposables.clear();
5897
- this.paneview.dispose();
5898
5866
  this.paneview = new Paneview(this.element, {
5899
5867
  orientation: exports.Orientation.VERTICAL,
5900
5868
  descriptor: {
@@ -5953,6 +5921,13 @@
5953
5921
  queue.forEach((f) => f());
5954
5922
  this._onDidLayoutfromJSON.fire();
5955
5923
  }
5924
+ clear() {
5925
+ for (const [_, value] of this._viewDisposables.entries()) {
5926
+ value.dispose();
5927
+ }
5928
+ this._viewDisposables.clear();
5929
+ this.paneview.dispose();
5930
+ }
5956
5931
  doAddPanel(panel) {
5957
5932
  const disposable = panel.onDidDrop((event) => {
5958
5933
  this._onDidDrop.fire(event);
@@ -5988,13 +5963,11 @@
5988
5963
  this.onDidChange = this._onDidChange.event;
5989
5964
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
5990
5965
  const { isVisible } = event;
5991
- const { containerApi } = this
5992
- ._params;
5993
- containerApi.setVisible(this, isVisible);
5966
+ const { accessor } = this._params;
5967
+ accessor.setVisible(this, isVisible);
5994
5968
  }), this.api.onActiveChange(() => {
5995
- const { containerApi } = this
5996
- ._params;
5997
- containerApi.setActive(this);
5969
+ const { accessor } = this._params;
5970
+ accessor.setActive(this);
5998
5971
  }), this.api.onDidConstraintsChangeInternal((event) => {
5999
5972
  if (typeof event.minimumSize === 'number' ||
6000
5973
  typeof event.minimumSize === 'function') {
@@ -6246,9 +6219,6 @@
6246
6219
  layout(_width, _height) {
6247
6220
  // noop
6248
6221
  }
6249
- close() {
6250
- return Promise.resolve(true);
6251
- }
6252
6222
  dispose() {
6253
6223
  var _a, _b;
6254
6224
  this._onDidFocus.dispose();
@@ -6518,58 +6488,6 @@
6518
6488
  });
6519
6489
  DockviewReact.displayName = 'DockviewComponent';
6520
6490
 
6521
- const Tab = (props) => {
6522
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6523
- };
6524
- const Content = (props) => {
6525
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6526
- };
6527
- const Actions = (props) => {
6528
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6529
- };
6530
- function isValidComponent(element) {
6531
- return [Content, Actions, Tab].find((comp) => element.type === comp);
6532
- }
6533
- const Panel = (props) => {
6534
- const context = React__namespace.useContext(ReactPartContext);
6535
- const sections = React__namespace.useMemo(() => {
6536
- var _a;
6537
- const childs = ((_a = React__namespace.Children.map(props.children, (_) => _)) === null || _a === void 0 ? void 0 : _a.filter(isReactElement)) || [];
6538
- const isInvalid = !!childs.find((_) => !isValidComponent(_));
6539
- if (isInvalid) {
6540
- throw new Error('Children of DockviewComponents.Panel must be one of the following: DockviewComponents.Content, DockviewComponents.Actions, DockviewComponents.Tab');
6541
- }
6542
- const body = childs.find((_) => _.type === Content);
6543
- const actions = childs.find((_) => _.type === Actions);
6544
- const tab = childs.find((_) => _.type === Tab);
6545
- return { body, actions, tab };
6546
- }, [props.children]);
6547
- React__namespace.useEffect(() => {
6548
- /**
6549
- * hide or show the default tab behavior based on whether we want to override
6550
- * with our own React tab.
6551
- */
6552
- if (sections.tab) {
6553
- context.tabPortalElement.hide();
6554
- }
6555
- else {
6556
- context.tabPortalElement.show();
6557
- }
6558
- }, [sections.tab]);
6559
- return (React__namespace.createElement(React__namespace.Fragment, null,
6560
- sections.actions &&
6561
- ReactDOM__namespace.createPortal(sections.actions, context.actionsPortalElement),
6562
- sections.tab &&
6563
- ReactDOM__namespace.createPortal(sections.tab, context.tabPortalElement.element),
6564
- sections.body || props.children));
6565
- };
6566
- const DockviewComponents = {
6567
- Tab,
6568
- Content,
6569
- Actions,
6570
- Panel,
6571
- };
6572
-
6573
6491
  class ReactPanelView extends SplitviewPanel {
6574
6492
  constructor(id, component, reactComponent, reactPortalStore) {
6575
6493
  super(id, component);
@@ -6581,8 +6499,7 @@
6581
6499
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6582
6500
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6583
6501
  api: this.api,
6584
- containerApi: this._params
6585
- .containerApi,
6502
+ containerApi: new SplitviewApi(this._params.accessor),
6586
6503
  });
6587
6504
  }
6588
6505
  }
@@ -6658,8 +6575,7 @@
6658
6575
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6659
6576
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6660
6577
  api: this.api,
6661
- containerApi: this._params
6662
- .containerApi,
6578
+ containerApi: new GridviewApi(this._params.accessor),
6663
6579
  });
6664
6580
  }
6665
6581
  }
@@ -6853,7 +6769,6 @@
6853
6769
  exports.ContentContainer = ContentContainer;
6854
6770
  exports.DockviewApi = DockviewApi;
6855
6771
  exports.DockviewComponent = DockviewComponent;
6856
- exports.DockviewComponents = DockviewComponents;
6857
6772
  exports.DockviewReact = DockviewReact;
6858
6773
  exports.Gridview = Gridview;
6859
6774
  exports.GridviewApi = GridviewApi;
@@ -6879,7 +6794,7 @@
6879
6794
  exports.SplitviewComponent = SplitviewComponent;
6880
6795
  exports.SplitviewPanel = SplitviewPanel;
6881
6796
  exports.SplitviewReact = SplitviewReact;
6882
- exports.Tab = Tab$1;
6797
+ exports.Tab = Tab;
6883
6798
  exports.getDirectionOrientation = getDirectionOrientation;
6884
6799
  exports.getGridLocation = getGridLocation;
6885
6800
  exports.getLocationOrientation = getLocationOrientation;