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
  */
@@ -54,7 +54,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
54
54
  }
55
55
  }
56
56
 
57
- var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n 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}";
57
+ var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n 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}";
58
58
  styleInject(css_248z);
59
59
 
60
60
  class TransferObject {
@@ -2303,18 +2303,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2303
2303
  removePanel(panel, sizing) {
2304
2304
  this.component.removePanel(panel, sizing);
2305
2305
  }
2306
- setVisible(panel, isVisible) {
2307
- this.component.setVisible(panel, isVisible);
2308
- }
2309
2306
  focus() {
2310
2307
  this.component.focus();
2311
2308
  }
2312
2309
  getPanel(id) {
2313
2310
  return this.component.getPanel(id);
2314
2311
  }
2315
- setActive(panel) {
2316
- this.component.setActive(panel);
2317
- }
2318
2312
  layout(width, height) {
2319
2313
  return this.component.layout(width, height);
2320
2314
  }
@@ -2330,6 +2324,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2330
2324
  toJSON() {
2331
2325
  return this.component.toJSON();
2332
2326
  }
2327
+ clear() {
2328
+ this.component.clear();
2329
+ }
2333
2330
  }
2334
2331
  class PaneviewApi {
2335
2332
  constructor(component) {
@@ -2397,6 +2394,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2397
2394
  toJSON() {
2398
2395
  return this.component.toJSON();
2399
2396
  }
2397
+ clear() {
2398
+ this.component.clear();
2399
+ }
2400
2400
  }
2401
2401
  class GridviewApi {
2402
2402
  constructor(component) {
@@ -2423,13 +2423,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2423
2423
  get onDidLayoutChange() {
2424
2424
  return this.component.onDidLayoutChange;
2425
2425
  }
2426
- get onDidAddGroup() {
2426
+ get onDidAddPanel() {
2427
2427
  return this.component.onDidAddGroup;
2428
2428
  }
2429
- get onDidRemoveGroup() {
2429
+ get onDidRemovePanel() {
2430
2430
  return this.component.onDidRemoveGroup;
2431
2431
  }
2432
- get onDidActiveGroupChange() {
2432
+ get onDidActivePanelChange() {
2433
2433
  return this.component.onDidActiveGroupChange;
2434
2434
  }
2435
2435
  get onDidLayoutFromJSON() {
@@ -2462,21 +2462,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2462
2462
  getPanel(id) {
2463
2463
  return this.component.getPanel(id);
2464
2464
  }
2465
- toggleVisibility(panel) {
2466
- this.component.toggleVisibility(panel);
2467
- }
2468
- setVisible(panel, visible) {
2469
- this.component.setVisible(panel, visible);
2470
- }
2471
- setActive(panel) {
2472
- this.component.setActive(panel);
2473
- }
2474
2465
  fromJSON(data) {
2475
2466
  return this.component.fromJSON(data);
2476
2467
  }
2477
2468
  toJSON() {
2478
2469
  return this.component.toJSON();
2479
2470
  }
2471
+ clear() {
2472
+ this.component.clear();
2473
+ }
2480
2474
  }
2481
2475
  class DockviewApi {
2482
2476
  constructor(component) {
@@ -2525,7 +2519,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2525
2519
  return this.component.onDidRemovePanel;
2526
2520
  }
2527
2521
  get onDidLayoutFromJSON() {
2528
- return this.component.onDidLayoutfromJSON;
2522
+ return this.component.onDidLayoutFromJSON;
2529
2523
  }
2530
2524
  get onDidLayoutChange() {
2531
2525
  return this.component.onDidLayoutChange;
@@ -2587,6 +2581,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2587
2581
  toJSON() {
2588
2582
  return this.component.toJSON();
2589
2583
  }
2584
+ clear() {
2585
+ this.component.clear();
2586
+ }
2590
2587
  }
2591
2588
 
2592
2589
  class ContentContainer extends CompositeDisposable {
@@ -2660,12 +2657,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2660
2657
  }
2661
2658
  }
2662
2659
 
2663
- var DockviewDropTargets;
2660
+ exports.DockviewDropTargets = void 0;
2664
2661
  (function (DockviewDropTargets) {
2665
2662
  DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
2666
2663
  DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
2667
2664
  DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
2668
- })(DockviewDropTargets || (DockviewDropTargets = {}));
2665
+ })(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
2669
2666
 
2670
2667
  class DragHandler extends CompositeDisposable {
2671
2668
  constructor(el) {
@@ -2707,7 +2704,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2707
2704
  MouseEventKind["CLICK"] = "CLICK";
2708
2705
  MouseEventKind["CONTEXT_MENU"] = "CONTEXT_MENU";
2709
2706
  })(exports.MouseEventKind || (exports.MouseEventKind = {}));
2710
- class Tab$1 extends CompositeDisposable {
2707
+ class Tab extends CompositeDisposable {
2711
2708
  constructor(panelId, accessor, group) {
2712
2709
  super();
2713
2710
  this.panelId = panelId;
@@ -2721,6 +2718,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2721
2718
  this._element.className = 'tab';
2722
2719
  this._element.tabIndex = 0;
2723
2720
  this._element.draggable = true;
2721
+ toggleClass(this.element, 'inactive-tab', true);
2724
2722
  this.addDisposables(new (class Handler extends DragHandler {
2725
2723
  constructor() {
2726
2724
  super(...arguments);
@@ -2763,7 +2761,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2763
2761
  if (data) {
2764
2762
  return this.panelId !== data.panelId;
2765
2763
  }
2766
- return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
2764
+ return this.group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Tab);
2767
2765
  },
2768
2766
  });
2769
2767
  this.addDisposables(this.droptarget.onDrop((event) => {
@@ -2797,7 +2795,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2797
2795
  this.group = group;
2798
2796
  this.tabs = [];
2799
2797
  this.selectedIndex = -1;
2800
- this.active = false;
2801
2798
  this._hidden = false;
2802
2799
  this._onDrop = new Emitter();
2803
2800
  this.onDrop = this._onDrop.event;
@@ -2823,7 +2820,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2823
2820
  // don't show the overlay if the tab being dragged is the last panel of this group
2824
2821
  return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
2825
2822
  }
2826
- return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
2823
+ return group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
2827
2824
  },
2828
2825
  });
2829
2826
  this.addDisposables(this.voidDropTarget.onDrop((event) => {
@@ -2901,8 +2898,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2901
2898
  indexOf(id) {
2902
2899
  return this.tabs.findIndex((tab) => tab.value.panelId === id);
2903
2900
  }
2904
- setActive(isGroupActive) {
2905
- this.active = isGroupActive;
2901
+ setActive(_isGroupActive) {
2902
+ // noop
2906
2903
  }
2907
2904
  addTab(tab, index = this.tabs.length) {
2908
2905
  if (index < 0 || index > this.tabs.length) {
@@ -2936,7 +2933,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2936
2933
  if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {
2937
2934
  return;
2938
2935
  }
2939
- const tabToAdd = new Tab$1(panel.id, this.accessor, this.group);
2936
+ const tabToAdd = new Tab(panel.id, this.accessor, this.group);
2940
2937
  if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
2941
2938
  throw new Error('invalid header component');
2942
2939
  }
@@ -2963,7 +2960,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2963
2960
  }));
2964
2961
  const value = { value: tabToAdd, disposable };
2965
2962
  this.addTab(value, index);
2966
- this.activePanel = panel;
2967
2963
  }
2968
2964
  closePanel(panel) {
2969
2965
  this.delete(panel.id);
@@ -3022,7 +3018,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3022
3018
  const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
3023
3019
  return !groupHasOnePanelAndIsActiveDragElement;
3024
3020
  }
3025
- return this.canDisplayOverlay(event, DockviewDropTargets.Panel);
3021
+ return this.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
3026
3022
  },
3027
3023
  });
3028
3024
  container.append(this.tabsContainer.element, this.contentContainer.element);
@@ -3180,16 +3176,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3180
3176
  options.index > this.panels.length) {
3181
3177
  options.index = this.panels.length;
3182
3178
  }
3183
- const skipSetActive = !!options.skipSetActive;
3179
+ const skipSetPanelActive = !!options.skipSetPanelActive;
3180
+ const skipSetGroupActive = !!options.skipSetGroupActive;
3184
3181
  // ensure the group is updated before we fire any events
3185
3182
  panel.updateParentGroup(this.parent, true);
3186
- if (!skipSetActive && this._activePanel === panel) {
3187
- this.accessor.doSetGroupActive(this.parent);
3183
+ if (this._activePanel === panel) {
3184
+ if (!skipSetGroupActive) {
3185
+ this.accessor.doSetGroupActive(this.parent);
3186
+ }
3188
3187
  return;
3189
3188
  }
3190
- this.doAddPanel(panel, options.index);
3191
- if (!skipSetActive) {
3189
+ this.doAddPanel(panel, options.index, skipSetPanelActive);
3190
+ if (!skipSetPanelActive) {
3192
3191
  this.doSetActivePanel(panel);
3192
+ }
3193
+ if (!skipSetGroupActive) {
3193
3194
  this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
3194
3195
  }
3195
3196
  this.updateContainer();
@@ -3293,11 +3294,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3293
3294
  panel,
3294
3295
  });
3295
3296
  }
3296
- doAddPanel(panel, index = this.panels.length) {
3297
+ doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
3297
3298
  const existingPanel = this._panels.indexOf(panel);
3298
3299
  const hasExistingPanel = existingPanel > -1;
3299
3300
  this.tabsContainer.openPanel(panel, index);
3300
- this.contentContainer.openPanel(panel);
3301
+ if (!skipSetActive) {
3302
+ this.contentContainer.openPanel(panel);
3303
+ }
3301
3304
  this.tabsContainer.show();
3302
3305
  this.contentContainer.show();
3303
3306
  if (hasExistingPanel) {
@@ -3363,7 +3366,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3363
3366
  canDisplayOverlay(event, target) {
3364
3367
  // custom overlay handler
3365
3368
  if (this.accessor.options.showDndOverlay) {
3366
- return this.accessor.options.showDndOverlay(event, target);
3369
+ return this.accessor.options.showDndOverlay({
3370
+ nativeEvent: event,
3371
+ target,
3372
+ group: this.accessor.getPanel(this.id),
3373
+ });
3367
3374
  }
3368
3375
  return false;
3369
3376
  }
@@ -3446,7 +3453,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3446
3453
  this.element.appendChild(this.gridview.element);
3447
3454
  this.layout(0, 0, true); // set some elements height/widths
3448
3455
  this.addDisposables(this.gridview.onDidChange(() => {
3449
- this._onDidLayoutChange.fire();
3456
+ this._bufferOnDidLayoutChange.fire();
3450
3457
  }));
3451
3458
  this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3452
3459
  this._bufferOnDidLayoutChange.fire();
@@ -3607,10 +3614,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3607
3614
  this._isVisible = true;
3608
3615
  this._width = 0;
3609
3616
  this._height = 0;
3610
- this._onDidPanelDimensionChange = new Emitter({
3617
+ this._onDidDimensionChange = new Emitter({
3611
3618
  replay: true,
3612
3619
  });
3613
- this.onDidDimensionsChange = this._onDidPanelDimensionChange.event;
3620
+ this.onDidDimensionsChange = this._onDidDimensionChange.event;
3614
3621
  //
3615
3622
  this._onDidChangeFocus = new Emitter({
3616
3623
  replay: true,
@@ -3635,7 +3642,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3635
3642
  //
3636
3643
  this._onActiveChange = new Emitter();
3637
3644
  this.onActiveChange = this._onActiveChange.event;
3638
- this.addDisposables(this._onDidPanelDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3645
+ this.addDisposables(this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this.onDidFocusChange((event) => {
3639
3646
  this._isFocused = event.isFocused;
3640
3647
  }), this.onDidActiveChange((event) => {
3641
3648
  this._isActive = event.isActive;
@@ -3859,7 +3866,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3859
3866
  layout(width, height) {
3860
3867
  var _a;
3861
3868
  // the obtain the correct dimensions of the content panel we must deduct the tab height
3862
- this.api._onDidPanelDimensionChange.fire({
3869
+ this.api._onDidDimensionChange.fire({
3863
3870
  width,
3864
3871
  height: height - (this.group.model.header.height || 0),
3865
3872
  });
@@ -3956,34 +3963,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3956
3963
  }
3957
3964
  }
3958
3965
 
3959
- class DefaultDeserializer {
3960
- constructor(layout, panelDeserializer) {
3961
- this.layout = layout;
3962
- this.panelDeserializer = panelDeserializer;
3963
- }
3964
- fromJSON(node) {
3965
- const data = node.data;
3966
- const children = data.views;
3967
- const active = data.activeView;
3968
- const group = this.layout.createGroup({
3969
- id: data.id,
3970
- locked: !!data.locked,
3971
- hideHeader: !!data.hideHeader,
3972
- });
3973
- for (const child of children) {
3974
- const panel = this.panelDeserializer.createPanel(child, group);
3975
- const isActive = typeof active === 'string' && active === panel.id;
3976
- group.model.openPanel(panel, {
3977
- skipSetActive: !isActive,
3978
- });
3979
- }
3980
- if (!group.activePanel && group.panels.length > 0) {
3981
- group.model.openPanel(group.panels[group.panels.length - 1]);
3982
- }
3983
- return group;
3984
- }
3985
- }
3986
-
3987
3966
  function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
3988
3967
  const Component = typeof componentName === 'string'
3989
3968
  ? components[componentName]
@@ -4009,53 +3988,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4009
3988
  return new Component(id, componentName);
4010
3989
  }
4011
3990
 
4012
- class WrappedTab {
4013
- constructor(renderer) {
4014
- this.renderer = renderer;
4015
- this._element = document.createElement('element');
4016
- this.show();
4017
- }
4018
- get innerRenderer() {
4019
- return this.renderer;
4020
- }
4021
- get element() {
4022
- return this._element;
4023
- }
4024
- get id() {
4025
- return this.renderer.id;
4026
- }
4027
- show() {
4028
- if (!this.renderer.element.parentElement) {
4029
- this._element.appendChild(this.renderer.element);
4030
- }
4031
- }
4032
- hide() {
4033
- if (this.renderer.element.parentElement) {
4034
- this.renderer.element.remove();
4035
- }
4036
- }
4037
- layout(width, height) {
4038
- this.renderer.layout(width, height);
4039
- }
4040
- update(event) {
4041
- this.renderer.update(event);
4042
- }
4043
- toJSON() {
4044
- return this.renderer.toJSON();
4045
- }
4046
- focus() {
4047
- this.renderer.focus();
4048
- }
4049
- init(parameters) {
4050
- this.renderer.init(parameters);
4051
- }
4052
- updateParentGroup(group, isPanelVisible) {
4053
- this.renderer.updateParentGroup(group, isPanelVisible);
4054
- }
4055
- dispose() {
4056
- this.renderer.dispose();
4057
- }
4058
- }
4059
3991
  class DefaultTab extends CompositeDisposable {
4060
3992
  constructor() {
4061
3993
  super();
@@ -4118,15 +4050,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4118
4050
  }
4119
4051
  }
4120
4052
  updateParentGroup(group, isPanelVisible) {
4053
+ const changed = this._isPanelVisible !== isPanelVisible ||
4054
+ this._isGroupActive !== group.isActive;
4121
4055
  this._isPanelVisible = isPanelVisible;
4122
4056
  this._isGroupActive = group.isActive;
4123
- this.render();
4057
+ if (changed) {
4058
+ this.render();
4059
+ }
4124
4060
  }
4125
4061
  layout(_width, _height) {
4126
4062
  // noop
4127
4063
  }
4128
4064
  render() {
4129
- this._content.textContent = this.params.title;
4065
+ if (this._content.textContent !== this.params.title) {
4066
+ this._content.textContent = this.params.title;
4067
+ }
4130
4068
  }
4131
4069
  }
4132
4070
 
@@ -4170,7 +4108,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4170
4108
  layout(width, height) {
4171
4109
  this._width = width;
4172
4110
  this._height = height;
4173
- this.api._onDidPanelDimensionChange.fire({ width, height });
4111
+ this.api._onDidDimensionChange.fire({ width, height });
4174
4112
  if (this.part) {
4175
4113
  if (this._params) {
4176
4114
  this.part.update(this._params.params);
@@ -4219,11 +4157,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4219
4157
  this.onDidChange = this._onDidChange.event;
4220
4158
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
4221
4159
  const { isVisible } = event;
4222
- const { containerApi } = this._params;
4223
- containerApi.setVisible(this, isVisible);
4160
+ const { accessor } = this._params;
4161
+ accessor.setVisible(this, isVisible);
4224
4162
  }), this.api.onActiveChange(() => {
4225
- const { containerApi } = this._params;
4226
- containerApi.setActive(this);
4163
+ const { accessor } = this._params;
4164
+ accessor.setActive(this);
4227
4165
  }), this.api.onDidConstraintsChangeInternal((event) => {
4228
4166
  if (typeof event.minimumWidth === 'number' ||
4229
4167
  typeof event.minimumWidth === 'function') {
@@ -4402,7 +4340,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4402
4340
  constructor(renderers) {
4403
4341
  var _a;
4404
4342
  this._content = renderers.content;
4405
- this._tab = new WrappedTab((_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab());
4343
+ this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
4406
4344
  this._actions =
4407
4345
  renderers.actions ||
4408
4346
  (this.content.actions
@@ -4442,9 +4380,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4442
4380
  toJSON() {
4443
4381
  return {
4444
4382
  content: this.content.toJSON(),
4445
- tab: this.tab.innerRenderer instanceof DefaultTab
4446
- ? undefined
4447
- : this.tab.toJSON(),
4383
+ tab: this.tab instanceof DefaultTab ? undefined : this.tab.toJSON(),
4448
4384
  };
4449
4385
  }
4450
4386
  dispose() {
@@ -4463,9 +4399,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4463
4399
  orientation: options.orientation || exports.Orientation.HORIZONTAL,
4464
4400
  styles: options.styles,
4465
4401
  });
4466
- // events
4467
- this._onTabInteractionEvent = new Emitter();
4468
- this.onTabInteractionEvent = this._onTabInteractionEvent.event;
4469
4402
  this._onTabContextMenu = new Emitter();
4470
4403
  this.onTabContextMenu = this._onTabContextMenu.event;
4471
4404
  this._onDidDrop = new Emitter();
@@ -4474,11 +4407,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4474
4407
  this.onDidRemovePanel = this._onDidRemovePanel.event;
4475
4408
  this._onDidAddPanel = new Emitter();
4476
4409
  this.onDidAddPanel = this._onDidAddPanel.event;
4477
- this._onDidLayoutfromJSON = new Emitter();
4478
- this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4410
+ this._onDidLayoutFromJSON = new Emitter();
4411
+ this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
4479
4412
  this._onDidActivePanelChange = new Emitter();
4480
4413
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4481
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4414
+ this.addDisposables(this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4482
4415
  this._bufferOnDidLayoutChange.fire();
4483
4416
  }));
4484
4417
  this._options = options;
@@ -4533,7 +4466,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4533
4466
  }
4534
4467
  updateOptions(options) {
4535
4468
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4536
- this.options.orientation !== options.orientation;
4469
+ this.gridview.orientation !== options.orientation;
4537
4470
  this._options = Object.assign(Object.assign({}, this.options), options);
4538
4471
  if (hasOrientationChanged) {
4539
4472
  this.gridview.orientation = options.orientation;
@@ -4611,12 +4544,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4611
4544
  };
4612
4545
  }
4613
4546
  fromJSON(data) {
4614
- const groups = Array.from(this._groups.values()).map((_) => _.value);
4615
- for (const group of groups) {
4616
- // remove the group will automatically remove the panels
4617
- this.removeGroup(group, true);
4618
- }
4619
- this.gridview.clear();
4547
+ this.clear();
4620
4548
  if (!this.deserializer) {
4621
4549
  throw new Error('invalid deserializer');
4622
4550
  }
@@ -4627,12 +4555,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4627
4555
  if (!this.deserializer) {
4628
4556
  throw new Error('no deserializer provided');
4629
4557
  }
4630
- this.gridview.deserialize(grid, new DefaultDeserializer(this, {
4631
- createPanel: (id, group) => {
4632
- const panelData = panels[id];
4633
- return this.deserializer.fromJSON(panelData, group);
4634
- },
4635
- }));
4558
+ this.gridview.deserialize(grid, {
4559
+ fromJSON: (node) => {
4560
+ const { id, locked, hideHeader, views, activeView } = node.data;
4561
+ const group = this.createGroup({
4562
+ id,
4563
+ locked: !!locked,
4564
+ hideHeader: !!hideHeader,
4565
+ });
4566
+ this._onDidAddGroup.fire(group);
4567
+ for (const child of views) {
4568
+ const panel = this.deserializer.fromJSON(panels[child], group);
4569
+ const isActive = typeof activeView === 'string' && activeView === panel.id;
4570
+ group.model.openPanel(panel, {
4571
+ skipSetPanelActive: !isActive,
4572
+ skipSetGroupActive: true
4573
+ });
4574
+ }
4575
+ if (!group.activePanel && group.panels.length > 0) {
4576
+ group.model.openPanel(group.panels[group.panels.length - 1], {
4577
+ skipSetGroupActive: true
4578
+ });
4579
+ }
4580
+ return group;
4581
+ }
4582
+ });
4636
4583
  if (typeof activeGroup === 'string') {
4637
4584
  const panel = this.getPanel(activeGroup);
4638
4585
  if (panel) {
@@ -4640,7 +4587,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4640
4587
  }
4641
4588
  }
4642
4589
  this.gridview.layout(this.width, this.height);
4643
- this._onDidLayoutfromJSON.fire();
4590
+ this._onDidLayoutFromJSON.fire();
4591
+ }
4592
+ clear() {
4593
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4594
+ const hasActiveGroup = !!this.activeGroup;
4595
+ const hasActivePanel = !!this.activePanel;
4596
+ for (const group of groups) {
4597
+ // remove the group will automatically remove the panels
4598
+ this.removeGroup(group, true);
4599
+ }
4600
+ if (hasActiveGroup) {
4601
+ this.doSetGroupActive(undefined);
4602
+ }
4603
+ if (hasActivePanel) {
4604
+ this._onDidActivePanelChange.fire(undefined);
4605
+ }
4606
+ this.gridview.clear();
4644
4607
  }
4645
4608
  closeAllGroups() {
4646
4609
  for (const entry of this._groups.entries()) {
@@ -4832,13 +4795,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4832
4795
  }
4833
4796
  }
4834
4797
  const view = new GroupPanel(this, id, options);
4835
- view.init({ params: {}, containerApi: null }); // required to initialized .part and allow for correct disposal of group
4798
+ view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
4836
4799
  if (!this._groups.has(view.id)) {
4837
4800
  const disposable = new CompositeDisposable(view.model.onMove((event) => {
4838
4801
  const { groupId, itemId, target, index } = event;
4839
4802
  this.moveGroupOrPanel(view, groupId, itemId, target, index);
4840
4803
  }), view.model.onDidDrop((event) => {
4841
- this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
4804
+ this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
4842
4805
  }), view.model.onDidGroupChange((event) => {
4843
4806
  switch (event.kind) {
4844
4807
  case exports.GroupChangeKind2.ADD_PANEL:
@@ -4902,7 +4865,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4902
4865
  this._onDidActivePanelChange.dispose();
4903
4866
  this._onDidAddPanel.dispose();
4904
4867
  this._onDidRemovePanel.dispose();
4905
- this._onDidLayoutfromJSON.dispose();
4868
+ this._onDidLayoutFromJSON.dispose();
4906
4869
  }
4907
4870
  }
4908
4871
 
@@ -4940,7 +4903,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4940
4903
  }
4941
4904
  updateOptions(options) {
4942
4905
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4943
- this.options.orientation !== options.orientation;
4906
+ this.gridview.orientation !== options.orientation;
4944
4907
  this._options = Object.assign(Object.assign({}, this.options), options);
4945
4908
  if (hasOrientationChanged) {
4946
4909
  this.gridview.orientation = options.orientation;
@@ -4971,21 +4934,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4971
4934
  value.value.setActive(panel === value.value);
4972
4935
  });
4973
4936
  }
4974
- toggleVisibility(panel) {
4975
- this.setVisible(panel, !this.isVisible(panel));
4976
- }
4977
4937
  focus() {
4978
4938
  var _a;
4979
4939
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4980
4940
  }
4981
4941
  fromJSON(serializedGridview) {
4942
+ this.clear();
4982
4943
  const { grid, activePanel } = serializedGridview;
4983
- const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4984
- for (const group of groups) {
4985
- group.disposable.dispose();
4986
- this.doRemoveGroup(group.value, { skipActive: true });
4987
- }
4988
- this.gridview.clear();
4989
4944
  const queue = [];
4990
4945
  this.gridview.deserialize(grid, {
4991
4946
  fromJSON: (node) => {
@@ -5004,9 +4959,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5004
4959
  maximumHeight: data.maximumHeight,
5005
4960
  priority: data.priority,
5006
4961
  snap: !!data.snap,
5007
- containerApi: new GridviewApi(this),
4962
+ accessor: this,
5008
4963
  isVisible: node.visible,
5009
4964
  }));
4965
+ this._onDidAddGroup.fire(view);
5010
4966
  this.registerPanel(view);
5011
4967
  return view;
5012
4968
  },
@@ -5021,6 +4977,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5021
4977
  }
5022
4978
  this._onDidLayoutfromJSON.fire();
5023
4979
  }
4980
+ clear() {
4981
+ const hasActiveGroup = this.activeGroup;
4982
+ const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4983
+ for (const group of groups) {
4984
+ group.disposable.dispose();
4985
+ this.doRemoveGroup(group.value, { skipActive: true });
4986
+ }
4987
+ if (hasActiveGroup) {
4988
+ this.doSetGroupActive(undefined);
4989
+ }
4990
+ this.gridview.clear();
4991
+ }
5024
4992
  movePanel(panel, options) {
5025
4993
  var _a;
5026
4994
  let relativeLocation;
@@ -5070,7 +5038,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5070
5038
  maximumHeight: options.maximumHeight,
5071
5039
  priority: options.priority,
5072
5040
  snap: !!options.snap,
5073
- containerApi: new GridviewApi(this),
5041
+ accessor: this,
5074
5042
  isVisible: true,
5075
5043
  });
5076
5044
  this.registerPanel(view);
@@ -5266,7 +5234,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5266
5234
  maximumSize: options.maximumSize,
5267
5235
  snap: options.snap,
5268
5236
  priority: options.priority,
5269
- containerApi: new SplitviewApi(this),
5237
+ accessor: this,
5270
5238
  });
5271
5239
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
5272
5240
  const index = typeof options.index === 'number' ? options.index : undefined;
@@ -5311,13 +5279,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5311
5279
  };
5312
5280
  }
5313
5281
  fromJSON(serializedSplitview) {
5282
+ this.clear();
5314
5283
  const { views, orientation, size, activeView } = serializedSplitview;
5315
- for (const [_, value] of this._panels.entries()) {
5316
- value.disposable.dispose();
5317
- value.value.dispose();
5318
- }
5319
- this._panels.clear();
5320
- this.splitview.dispose();
5321
5284
  const queue = [];
5322
5285
  this.splitview = new Splitview(this.element, {
5323
5286
  orientation,
@@ -5342,7 +5305,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5342
5305
  maximumSize: data.maximumSize,
5343
5306
  snap: view.snap,
5344
5307
  priority: view.priority,
5345
- containerApi: new SplitviewApi(this),
5308
+ accessor: this,
5346
5309
  });
5347
5310
  });
5348
5311
  panel.orientation = orientation;
@@ -5365,6 +5328,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5365
5328
  }
5366
5329
  this._onDidLayoutfromJSON.fire();
5367
5330
  }
5331
+ clear() {
5332
+ for (const [_, value] of this._panels.entries()) {
5333
+ value.disposable.dispose();
5334
+ value.value.dispose();
5335
+ }
5336
+ this._panels.clear();
5337
+ this.splitview.dispose();
5338
+ }
5368
5339
  dispose() {
5369
5340
  for (const [_, value] of this._panels.entries()) {
5370
5341
  value.disposable.dispose();
@@ -5693,9 +5664,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5693
5664
  this.element.className = 'default-header';
5694
5665
  this._content = document.createElement('span');
5695
5666
  this._expander = document.createElement('a');
5696
- this.element.appendChild(this._content);
5697
5667
  this.element.appendChild(this._expander);
5698
- this.addDisposables(addDisposableListener(this._expander, 'click', () => {
5668
+ this.element.appendChild(this._content);
5669
+ this.addDisposables(addDisposableListener(this._element, 'click', () => {
5699
5670
  var _a;
5700
5671
  (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
5701
5672
  }));
@@ -5706,9 +5677,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5706
5677
  init(params) {
5707
5678
  this.apiRef.api = params.api;
5708
5679
  this._content.textContent = params.title;
5709
- this._expander.textContent = params.api.isExpanded ? '<' : '>';
5680
+ this._expander.textContent = '';
5681
+ toggleClass(this._expander, 'collapsed', !params.api.isExpanded);
5710
5682
  this.disposable.value = params.api.onDidExpansionChange((e) => {
5711
- this._expander.textContent = e.isExpanded ? '<' : '>';
5683
+ toggleClass(this._expander, 'collapsed', !e.isExpanded);
5712
5684
  });
5713
5685
  }
5714
5686
  update(_params) {
@@ -5884,13 +5856,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5884
5856
  };
5885
5857
  }
5886
5858
  fromJSON(serializedPaneview) {
5859
+ this.clear();
5887
5860
  const { views, size } = serializedPaneview;
5888
5861
  const queue = [];
5889
- for (const [_, value] of this._viewDisposables.entries()) {
5890
- value.dispose();
5891
- }
5892
- this._viewDisposables.clear();
5893
- this.paneview.dispose();
5894
5862
  this.paneview = new Paneview(this.element, {
5895
5863
  orientation: exports.Orientation.VERTICAL,
5896
5864
  descriptor: {
@@ -5949,6 +5917,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5949
5917
  queue.forEach((f) => f());
5950
5918
  this._onDidLayoutfromJSON.fire();
5951
5919
  }
5920
+ clear() {
5921
+ for (const [_, value] of this._viewDisposables.entries()) {
5922
+ value.dispose();
5923
+ }
5924
+ this._viewDisposables.clear();
5925
+ this.paneview.dispose();
5926
+ }
5952
5927
  doAddPanel(panel) {
5953
5928
  const disposable = panel.onDidDrop((event) => {
5954
5929
  this._onDidDrop.fire(event);
@@ -5984,13 +5959,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5984
5959
  this.onDidChange = this._onDidChange.event;
5985
5960
  this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
5986
5961
  const { isVisible } = event;
5987
- const { containerApi } = this
5988
- ._params;
5989
- containerApi.setVisible(this, isVisible);
5962
+ const { accessor } = this._params;
5963
+ accessor.setVisible(this, isVisible);
5990
5964
  }), this.api.onActiveChange(() => {
5991
- const { containerApi } = this
5992
- ._params;
5993
- containerApi.setActive(this);
5965
+ const { accessor } = this._params;
5966
+ accessor.setActive(this);
5994
5967
  }), this.api.onDidConstraintsChangeInternal((event) => {
5995
5968
  if (typeof event.minimumSize === 'number' ||
5996
5969
  typeof event.minimumSize === 'function') {
@@ -6242,9 +6215,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6242
6215
  layout(_width, _height) {
6243
6216
  // noop
6244
6217
  }
6245
- close() {
6246
- return Promise.resolve(true);
6247
- }
6248
6218
  dispose() {
6249
6219
  var _a, _b;
6250
6220
  this._onDidFocus.dispose();
@@ -6514,58 +6484,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6514
6484
  });
6515
6485
  DockviewReact.displayName = 'DockviewComponent';
6516
6486
 
6517
- const Tab = (props) => {
6518
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6519
- };
6520
- const Content = (props) => {
6521
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6522
- };
6523
- const Actions = (props) => {
6524
- return React__namespace.createElement(React__namespace.Fragment, null, props.children);
6525
- };
6526
- function isValidComponent(element) {
6527
- return [Content, Actions, Tab].find((comp) => element.type === comp);
6528
- }
6529
- const Panel = (props) => {
6530
- const context = React__namespace.useContext(ReactPartContext);
6531
- const sections = React__namespace.useMemo(() => {
6532
- var _a;
6533
- const childs = ((_a = React__namespace.Children.map(props.children, (_) => _)) === null || _a === void 0 ? void 0 : _a.filter(isReactElement)) || [];
6534
- const isInvalid = !!childs.find((_) => !isValidComponent(_));
6535
- if (isInvalid) {
6536
- throw new Error('Children of DockviewComponents.Panel must be one of the following: DockviewComponents.Content, DockviewComponents.Actions, DockviewComponents.Tab');
6537
- }
6538
- const body = childs.find((_) => _.type === Content);
6539
- const actions = childs.find((_) => _.type === Actions);
6540
- const tab = childs.find((_) => _.type === Tab);
6541
- return { body, actions, tab };
6542
- }, [props.children]);
6543
- React__namespace.useEffect(() => {
6544
- /**
6545
- * hide or show the default tab behavior based on whether we want to override
6546
- * with our own React tab.
6547
- */
6548
- if (sections.tab) {
6549
- context.tabPortalElement.hide();
6550
- }
6551
- else {
6552
- context.tabPortalElement.show();
6553
- }
6554
- }, [sections.tab]);
6555
- return (React__namespace.createElement(React__namespace.Fragment, null,
6556
- sections.actions &&
6557
- ReactDOM__namespace.createPortal(sections.actions, context.actionsPortalElement),
6558
- sections.tab &&
6559
- ReactDOM__namespace.createPortal(sections.tab, context.tabPortalElement.element),
6560
- sections.body || props.children));
6561
- };
6562
- const DockviewComponents = {
6563
- Tab,
6564
- Content,
6565
- Actions,
6566
- Panel,
6567
- };
6568
-
6569
6487
  class ReactPanelView extends SplitviewPanel {
6570
6488
  constructor(id, component, reactComponent, reactPortalStore) {
6571
6489
  super(id, component);
@@ -6577,8 +6495,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6577
6495
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6578
6496
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6579
6497
  api: this.api,
6580
- containerApi: this._params
6581
- .containerApi,
6498
+ containerApi: new SplitviewApi(this._params.accessor),
6582
6499
  });
6583
6500
  }
6584
6501
  }
@@ -6654,8 +6571,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6654
6571
  return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
6655
6572
  params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
6656
6573
  api: this.api,
6657
- containerApi: this._params
6658
- .containerApi,
6574
+ containerApi: new GridviewApi(this._params.accessor),
6659
6575
  });
6660
6576
  }
6661
6577
  }
@@ -6849,7 +6765,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6849
6765
  exports.ContentContainer = ContentContainer;
6850
6766
  exports.DockviewApi = DockviewApi;
6851
6767
  exports.DockviewComponent = DockviewComponent;
6852
- exports.DockviewComponents = DockviewComponents;
6853
6768
  exports.DockviewReact = DockviewReact;
6854
6769
  exports.Gridview = Gridview;
6855
6770
  exports.GridviewApi = GridviewApi;
@@ -6875,7 +6790,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6875
6790
  exports.SplitviewComponent = SplitviewComponent;
6876
6791
  exports.SplitviewPanel = SplitviewPanel;
6877
6792
  exports.SplitviewReact = SplitviewReact;
6878
- exports.Tab = Tab$1;
6793
+ exports.Tab = Tab;
6879
6794
  exports.getDirectionOrientation = getDirectionOrientation;
6880
6795
  exports.getGridLocation = getGridLocation;
6881
6796
  exports.getLocationOrientation = getLocationOrientation;