dockview 1.4.2 → 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 (75) hide show
  1. package/README.md +4 -195
  2. package/dist/cjs/api/component.api.d.ts +5 -0
  3. package/dist/cjs/api/component.api.js +13 -1
  4. package/dist/cjs/api/component.api.js.map +1 -1
  5. package/dist/cjs/dnd/droptarget.d.ts +1 -2
  6. package/dist/cjs/dockview/deserializer.d.ts +0 -12
  7. package/dist/cjs/dockview/deserializer.js +0 -52
  8. package/dist/cjs/dockview/deserializer.js.map +1 -1
  9. package/dist/cjs/dockview/dockviewComponent.d.ts +5 -7
  10. package/dist/cjs/dockview/dockviewComponent.js +77 -40
  11. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  12. package/dist/cjs/dockview/options.d.ts +6 -1
  13. package/dist/cjs/gridview/baseComponentGridview.d.ts +4 -2
  14. package/dist/cjs/gridview/baseComponentGridview.js +1 -1
  15. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  16. package/dist/cjs/gridview/gridviewComponent.d.ts +1 -0
  17. package/dist/cjs/gridview/gridviewComponent.js +26 -18
  18. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  19. package/dist/cjs/groupview/groupview.d.ts +4 -3
  20. package/dist/cjs/groupview/groupview.js +15 -6
  21. package/dist/cjs/groupview/groupview.js.map +1 -1
  22. package/dist/cjs/groupview/groupviewPanel.d.ts +2 -2
  23. package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
  24. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +2 -2
  25. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  26. package/dist/cjs/index.d.ts +1 -0
  27. package/dist/cjs/index.js +1 -0
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/paneview/defaultPaneviewHeader.js +6 -4
  30. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
  31. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
  32. package/dist/cjs/paneview/paneviewComponent.js +19 -16
  33. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  34. package/dist/cjs/react/dockview/dockview.d.ts +2 -3
  35. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  36. package/dist/cjs/splitview/splitviewComponent.d.ts +2 -0
  37. package/dist/cjs/splitview/splitviewComponent.js +20 -17
  38. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  39. package/dist/dockview.amd.js +122 -87
  40. package/dist/dockview.amd.min.js +2 -2
  41. package/dist/dockview.amd.min.noStyle.js +2 -2
  42. package/dist/dockview.amd.noStyle.js +121 -86
  43. package/dist/dockview.cjs.js +122 -87
  44. package/dist/dockview.esm.js +118 -83
  45. package/dist/dockview.esm.min.js +2 -2
  46. package/dist/dockview.js +122 -87
  47. package/dist/dockview.min.js +2 -2
  48. package/dist/dockview.min.noStyle.js +2 -2
  49. package/dist/dockview.noStyle.js +121 -86
  50. package/dist/esm/api/component.api.d.ts +5 -0
  51. package/dist/esm/api/component.api.js +13 -1
  52. package/dist/esm/dnd/droptarget.d.ts +1 -2
  53. package/dist/esm/dockview/deserializer.d.ts +0 -12
  54. package/dist/esm/dockview/deserializer.js +1 -27
  55. package/dist/esm/dockview/dockviewComponent.d.ts +5 -7
  56. package/dist/esm/dockview/dockviewComponent.js +49 -23
  57. package/dist/esm/dockview/options.d.ts +6 -1
  58. package/dist/esm/gridview/baseComponentGridview.d.ts +4 -2
  59. package/dist/esm/gridview/baseComponentGridview.js +1 -1
  60. package/dist/esm/gridview/gridviewComponent.d.ts +1 -0
  61. package/dist/esm/gridview/gridviewComponent.js +15 -7
  62. package/dist/esm/groupview/groupview.d.ts +4 -3
  63. package/dist/esm/groupview/groupview.js +15 -6
  64. package/dist/esm/groupview/groupviewPanel.d.ts +2 -2
  65. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +2 -2
  66. package/dist/esm/index.d.ts +1 -0
  67. package/dist/esm/index.js +1 -0
  68. package/dist/esm/paneview/defaultPaneviewHeader.js +6 -4
  69. package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
  70. package/dist/esm/paneview/paneviewComponent.js +8 -5
  71. package/dist/esm/react/dockview/dockview.d.ts +2 -3
  72. package/dist/esm/splitview/splitviewComponent.d.ts +2 -0
  73. package/dist/esm/splitview/splitviewComponent.js +9 -6
  74. package/dist/styles/dockview.css +5 -0
  75. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.4.2
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 {
@@ -2324,6 +2324,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2324
2324
  toJSON() {
2325
2325
  return this.component.toJSON();
2326
2326
  }
2327
+ clear() {
2328
+ this.component.clear();
2329
+ }
2327
2330
  }
2328
2331
  class PaneviewApi {
2329
2332
  constructor(component) {
@@ -2391,6 +2394,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2391
2394
  toJSON() {
2392
2395
  return this.component.toJSON();
2393
2396
  }
2397
+ clear() {
2398
+ this.component.clear();
2399
+ }
2394
2400
  }
2395
2401
  class GridviewApi {
2396
2402
  constructor(component) {
@@ -2462,6 +2468,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2462
2468
  toJSON() {
2463
2469
  return this.component.toJSON();
2464
2470
  }
2471
+ clear() {
2472
+ this.component.clear();
2473
+ }
2465
2474
  }
2466
2475
  class DockviewApi {
2467
2476
  constructor(component) {
@@ -2510,7 +2519,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2510
2519
  return this.component.onDidRemovePanel;
2511
2520
  }
2512
2521
  get onDidLayoutFromJSON() {
2513
- return this.component.onDidLayoutfromJSON;
2522
+ return this.component.onDidLayoutFromJSON;
2514
2523
  }
2515
2524
  get onDidLayoutChange() {
2516
2525
  return this.component.onDidLayoutChange;
@@ -2572,6 +2581,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2572
2581
  toJSON() {
2573
2582
  return this.component.toJSON();
2574
2583
  }
2584
+ clear() {
2585
+ this.component.clear();
2586
+ }
2575
2587
  }
2576
2588
 
2577
2589
  class ContentContainer extends CompositeDisposable {
@@ -2645,12 +2657,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2645
2657
  }
2646
2658
  }
2647
2659
 
2648
- var DockviewDropTargets;
2660
+ exports.DockviewDropTargets = void 0;
2649
2661
  (function (DockviewDropTargets) {
2650
2662
  DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
2651
2663
  DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
2652
2664
  DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
2653
- })(DockviewDropTargets || (DockviewDropTargets = {}));
2665
+ })(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
2654
2666
 
2655
2667
  class DragHandler extends CompositeDisposable {
2656
2668
  constructor(el) {
@@ -2749,7 +2761,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2749
2761
  if (data) {
2750
2762
  return this.panelId !== data.panelId;
2751
2763
  }
2752
- return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
2764
+ return this.group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Tab);
2753
2765
  },
2754
2766
  });
2755
2767
  this.addDisposables(this.droptarget.onDrop((event) => {
@@ -2808,7 +2820,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2808
2820
  // don't show the overlay if the tab being dragged is the last panel of this group
2809
2821
  return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
2810
2822
  }
2811
- return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
2823
+ return group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
2812
2824
  },
2813
2825
  });
2814
2826
  this.addDisposables(this.voidDropTarget.onDrop((event) => {
@@ -3006,7 +3018,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3006
3018
  const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
3007
3019
  return !groupHasOnePanelAndIsActiveDragElement;
3008
3020
  }
3009
- return this.canDisplayOverlay(event, DockviewDropTargets.Panel);
3021
+ return this.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
3010
3022
  },
3011
3023
  });
3012
3024
  container.append(this.tabsContainer.element, this.contentContainer.element);
@@ -3164,16 +3176,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3164
3176
  options.index > this.panels.length) {
3165
3177
  options.index = this.panels.length;
3166
3178
  }
3167
- const skipSetActive = !!options.skipSetActive;
3179
+ const skipSetPanelActive = !!options.skipSetPanelActive;
3180
+ const skipSetGroupActive = !!options.skipSetGroupActive;
3168
3181
  // ensure the group is updated before we fire any events
3169
3182
  panel.updateParentGroup(this.parent, true);
3170
- if (!skipSetActive && this._activePanel === panel) {
3171
- this.accessor.doSetGroupActive(this.parent);
3183
+ if (this._activePanel === panel) {
3184
+ if (!skipSetGroupActive) {
3185
+ this.accessor.doSetGroupActive(this.parent);
3186
+ }
3172
3187
  return;
3173
3188
  }
3174
- this.doAddPanel(panel, options.index, skipSetActive);
3175
- if (!skipSetActive) {
3189
+ this.doAddPanel(panel, options.index, skipSetPanelActive);
3190
+ if (!skipSetPanelActive) {
3176
3191
  this.doSetActivePanel(panel);
3192
+ }
3193
+ if (!skipSetGroupActive) {
3177
3194
  this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
3178
3195
  }
3179
3196
  this.updateContainer();
@@ -3349,7 +3366,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3349
3366
  canDisplayOverlay(event, target) {
3350
3367
  // custom overlay handler
3351
3368
  if (this.accessor.options.showDndOverlay) {
3352
- 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
+ });
3353
3374
  }
3354
3375
  return false;
3355
3376
  }
@@ -3432,7 +3453,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3432
3453
  this.element.appendChild(this.gridview.element);
3433
3454
  this.layout(0, 0, true); // set some elements height/widths
3434
3455
  this.addDisposables(this.gridview.onDidChange(() => {
3435
- this._onDidLayoutChange.fire();
3456
+ this._bufferOnDidLayoutChange.fire();
3436
3457
  }));
3437
3458
  this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3438
3459
  this._bufferOnDidLayoutChange.fire();
@@ -3942,34 +3963,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3942
3963
  }
3943
3964
  }
3944
3965
 
3945
- class DefaultDeserializer {
3946
- constructor(layout, panelDeserializer) {
3947
- this.layout = layout;
3948
- this.panelDeserializer = panelDeserializer;
3949
- }
3950
- fromJSON(node) {
3951
- const data = node.data;
3952
- const children = data.views;
3953
- const active = data.activeView;
3954
- const group = this.layout.createGroup({
3955
- id: data.id,
3956
- locked: !!data.locked,
3957
- hideHeader: !!data.hideHeader,
3958
- });
3959
- for (const child of children) {
3960
- const panel = this.panelDeserializer.createPanel(child, group);
3961
- const isActive = typeof active === 'string' && active === panel.id;
3962
- group.model.openPanel(panel, {
3963
- skipSetActive: !isActive,
3964
- });
3965
- }
3966
- if (!group.activePanel && group.panels.length > 0) {
3967
- group.model.openPanel(group.panels[group.panels.length - 1]);
3968
- }
3969
- return group;
3970
- }
3971
- }
3972
-
3973
3966
  function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
3974
3967
  const Component = typeof componentName === 'string'
3975
3968
  ? components[componentName]
@@ -4406,9 +4399,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4406
4399
  orientation: options.orientation || exports.Orientation.HORIZONTAL,
4407
4400
  styles: options.styles,
4408
4401
  });
4409
- // events
4410
- this._onTabInteractionEvent = new Emitter();
4411
- this.onTabInteractionEvent = this._onTabInteractionEvent.event;
4412
4402
  this._onTabContextMenu = new Emitter();
4413
4403
  this.onTabContextMenu = this._onTabContextMenu.event;
4414
4404
  this._onDidDrop = new Emitter();
@@ -4417,11 +4407,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4417
4407
  this.onDidRemovePanel = this._onDidRemovePanel.event;
4418
4408
  this._onDidAddPanel = new Emitter();
4419
4409
  this.onDidAddPanel = this._onDidAddPanel.event;
4420
- this._onDidLayoutfromJSON = new Emitter();
4421
- this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4410
+ this._onDidLayoutFromJSON = new Emitter();
4411
+ this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
4422
4412
  this._onDidActivePanelChange = new Emitter();
4423
4413
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4424
- 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)(() => {
4425
4415
  this._bufferOnDidLayoutChange.fire();
4426
4416
  }));
4427
4417
  this._options = options;
@@ -4476,7 +4466,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4476
4466
  }
4477
4467
  updateOptions(options) {
4478
4468
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4479
- this.options.orientation !== options.orientation;
4469
+ this.gridview.orientation !== options.orientation;
4480
4470
  this._options = Object.assign(Object.assign({}, this.options), options);
4481
4471
  if (hasOrientationChanged) {
4482
4472
  this.gridview.orientation = options.orientation;
@@ -4554,12 +4544,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4554
4544
  };
4555
4545
  }
4556
4546
  fromJSON(data) {
4557
- const groups = Array.from(this._groups.values()).map((_) => _.value);
4558
- for (const group of groups) {
4559
- // remove the group will automatically remove the panels
4560
- this.removeGroup(group, true);
4561
- }
4562
- this.gridview.clear();
4547
+ this.clear();
4563
4548
  if (!this.deserializer) {
4564
4549
  throw new Error('invalid deserializer');
4565
4550
  }
@@ -4570,12 +4555,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4570
4555
  if (!this.deserializer) {
4571
4556
  throw new Error('no deserializer provided');
4572
4557
  }
4573
- this.gridview.deserialize(grid, new DefaultDeserializer(this, {
4574
- createPanel: (id, group) => {
4575
- const panelData = panels[id];
4576
- return this.deserializer.fromJSON(panelData, group);
4577
- },
4578
- }));
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
+ });
4579
4583
  if (typeof activeGroup === 'string') {
4580
4584
  const panel = this.getPanel(activeGroup);
4581
4585
  if (panel) {
@@ -4583,7 +4587,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4583
4587
  }
4584
4588
  }
4585
4589
  this.gridview.layout(this.width, this.height);
4586
- 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();
4587
4607
  }
4588
4608
  closeAllGroups() {
4589
4609
  for (const entry of this._groups.entries()) {
@@ -4781,7 +4801,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4781
4801
  const { groupId, itemId, target, index } = event;
4782
4802
  this.moveGroupOrPanel(view, groupId, itemId, target, index);
4783
4803
  }), view.model.onDidDrop((event) => {
4784
- 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 }));
4785
4805
  }), view.model.onDidGroupChange((event) => {
4786
4806
  switch (event.kind) {
4787
4807
  case exports.GroupChangeKind2.ADD_PANEL:
@@ -4845,7 +4865,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4845
4865
  this._onDidActivePanelChange.dispose();
4846
4866
  this._onDidAddPanel.dispose();
4847
4867
  this._onDidRemovePanel.dispose();
4848
- this._onDidLayoutfromJSON.dispose();
4868
+ this._onDidLayoutFromJSON.dispose();
4849
4869
  }
4850
4870
  }
4851
4871
 
@@ -4883,7 +4903,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4883
4903
  }
4884
4904
  updateOptions(options) {
4885
4905
  const hasOrientationChanged = typeof options.orientation === 'string' &&
4886
- this.options.orientation !== options.orientation;
4906
+ this.gridview.orientation !== options.orientation;
4887
4907
  this._options = Object.assign(Object.assign({}, this.options), options);
4888
4908
  if (hasOrientationChanged) {
4889
4909
  this.gridview.orientation = options.orientation;
@@ -4919,13 +4939,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4919
4939
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
4920
4940
  }
4921
4941
  fromJSON(serializedGridview) {
4942
+ this.clear();
4922
4943
  const { grid, activePanel } = serializedGridview;
4923
- const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
4924
- for (const group of groups) {
4925
- group.disposable.dispose();
4926
- this.doRemoveGroup(group.value, { skipActive: true });
4927
- }
4928
- this.gridview.clear();
4929
4944
  const queue = [];
4930
4945
  this.gridview.deserialize(grid, {
4931
4946
  fromJSON: (node) => {
@@ -4947,6 +4962,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4947
4962
  accessor: this,
4948
4963
  isVisible: node.visible,
4949
4964
  }));
4965
+ this._onDidAddGroup.fire(view);
4950
4966
  this.registerPanel(view);
4951
4967
  return view;
4952
4968
  },
@@ -4961,6 +4977,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4961
4977
  }
4962
4978
  this._onDidLayoutfromJSON.fire();
4963
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
+ }
4964
4992
  movePanel(panel, options) {
4965
4993
  var _a;
4966
4994
  let relativeLocation;
@@ -5251,13 +5279,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5251
5279
  };
5252
5280
  }
5253
5281
  fromJSON(serializedSplitview) {
5282
+ this.clear();
5254
5283
  const { views, orientation, size, activeView } = serializedSplitview;
5255
- for (const [_, value] of this._panels.entries()) {
5256
- value.disposable.dispose();
5257
- value.value.dispose();
5258
- }
5259
- this._panels.clear();
5260
- this.splitview.dispose();
5261
5284
  const queue = [];
5262
5285
  this.splitview = new Splitview(this.element, {
5263
5286
  orientation,
@@ -5305,6 +5328,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5305
5328
  }
5306
5329
  this._onDidLayoutfromJSON.fire();
5307
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
+ }
5308
5339
  dispose() {
5309
5340
  for (const [_, value] of this._panels.entries()) {
5310
5341
  value.disposable.dispose();
@@ -5633,9 +5664,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5633
5664
  this.element.className = 'default-header';
5634
5665
  this._content = document.createElement('span');
5635
5666
  this._expander = document.createElement('a');
5636
- this.element.appendChild(this._content);
5637
5667
  this.element.appendChild(this._expander);
5638
- this.addDisposables(addDisposableListener(this._expander, 'click', () => {
5668
+ this.element.appendChild(this._content);
5669
+ this.addDisposables(addDisposableListener(this._element, 'click', () => {
5639
5670
  var _a;
5640
5671
  (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
5641
5672
  }));
@@ -5646,9 +5677,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5646
5677
  init(params) {
5647
5678
  this.apiRef.api = params.api;
5648
5679
  this._content.textContent = params.title;
5649
- this._expander.textContent = params.api.isExpanded ? '<' : '>';
5680
+ this._expander.textContent = '';
5681
+ toggleClass(this._expander, 'collapsed', !params.api.isExpanded);
5650
5682
  this.disposable.value = params.api.onDidExpansionChange((e) => {
5651
- this._expander.textContent = e.isExpanded ? '<' : '>';
5683
+ toggleClass(this._expander, 'collapsed', !e.isExpanded);
5652
5684
  });
5653
5685
  }
5654
5686
  update(_params) {
@@ -5824,13 +5856,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5824
5856
  };
5825
5857
  }
5826
5858
  fromJSON(serializedPaneview) {
5859
+ this.clear();
5827
5860
  const { views, size } = serializedPaneview;
5828
5861
  const queue = [];
5829
- for (const [_, value] of this._viewDisposables.entries()) {
5830
- value.dispose();
5831
- }
5832
- this._viewDisposables.clear();
5833
- this.paneview.dispose();
5834
5862
  this.paneview = new Paneview(this.element, {
5835
5863
  orientation: exports.Orientation.VERTICAL,
5836
5864
  descriptor: {
@@ -5889,6 +5917,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5889
5917
  queue.forEach((f) => f());
5890
5918
  this._onDidLayoutfromJSON.fire();
5891
5919
  }
5920
+ clear() {
5921
+ for (const [_, value] of this._viewDisposables.entries()) {
5922
+ value.dispose();
5923
+ }
5924
+ this._viewDisposables.clear();
5925
+ this.paneview.dispose();
5926
+ }
5892
5927
  doAddPanel(panel) {
5893
5928
  const disposable = panel.onDidDrop((event) => {
5894
5929
  this._onDidDrop.fire(event);