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