dockview-react 1.17.2 → 2.1.0

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-react
3
- * @version 1.17.2
3
+ * @version 2.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -33,7 +33,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
33
33
  }
34
34
  }
35
35
 
36
- var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\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: 1000;\n pointer-events: none;\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.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\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.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n 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.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n 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.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\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 min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\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 .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\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.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\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 user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):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:not(.disabled):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 background-color: var(--dv-background-color);\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.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* 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:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-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.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\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.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\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}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
36
+ var css_248z = ".dv-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\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-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\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-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-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-overlay-z-index: 999;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .dv-groupview .dv-content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .dv-groupview.dv-active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview.dv-inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled)::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled)::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dv-drop-target {\n position: relative;\n}\n.dv-drop-target > .dv-drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n 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.dv-tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-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.dv-groupview:focus {\n outline: none;\n}\n.dv-groupview > .dv-content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.dv-grid-view,\n.dv-branch-node {\n height: 100%;\n width: 100%;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-hidden {\n display: none;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dv-pane-container {\n height: 100%;\n width: 100%;\n}\n.dv-pane-container.dv-animated .dv-view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-pane-container .dv-view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.dv-pane-container .dv-view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.dv-pane-container .dv-view:not(:first-child) .dv-pane > .dv-pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.dv-pane-container .dv-view .dv-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.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dv-pane-container .dv-view .dv-default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.dv-pane-container:first-of-type > .dv-pane > .dv-pane-header {\n border-top: none !important;\n}\n.dv-pane-container .dv-pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.dv-pane-container .dv-pane .dv-pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable {\n cursor: pointer;\n}\n.dv-pane-container .dv-pane .dv-pane-header:focus:before, .dv-pane-container .dv-pane .dv-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.dv-pane-container .dv-pane .dv-pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-body:focus:before, .dv-pane-container .dv-pane .dv-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.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled {\n background-color: black;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled {\n background-color: orange;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum {\n background-color: green;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum {\n background-color: red;\n}\n\n.dv-split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container.dv-splitview-disabled > .dv-sash-container > .dv-sash {\n pointer-events: none;\n}\n.dv-split-view-container.dv-animation .dv-view,\n.dv-split-view-container.dv-animation .dv-sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-split-view-container.dv-horizontal {\n height: 100%;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash {\n height: 100%;\n width: 4px;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ew-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: w-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: e-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.dv-split-view-container.dv-vertical {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash {\n width: 100%;\n height: 4px;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ns-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: n-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: s-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.dv-split-view-container .dv-sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.dv-split-view-container .dv-sash-container .dv-sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):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.dv-split-view-container .dv-view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container .dv-view-container .dv-view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.dv-split-view-container.dv-separator-border .dv-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.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.dv-tab {\n flex-shrink: 0;\n}\n.dv-tab:focus-within, .dv-tab:focus {\n position: relative;\n}\n.dv-tab:focus-within::after, .dv-tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.dv-tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.dv-tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.dv-tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.dv-tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.dv-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.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container {\n flex-grow: 0;\n}\n.dv-tabs-and-actions-container .dv-void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.dv-tabs-and-actions-container .dv-tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-watermark {\n display: flex;\n height: 100%;\n}";
37
37
  styleInject(css_248z);
38
38
 
39
39
  class TransferObject {
@@ -354,31 +354,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
354
354
  }
355
355
  }
356
356
 
357
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
358
- const Component = typeof componentName === 'string'
359
- ? components[componentName]
360
- : undefined;
361
- const FrameworkComponent = typeof componentName === 'string'
362
- ? frameworkComponents[componentName]
363
- : undefined;
364
- if (Component && FrameworkComponent) {
365
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
366
- }
367
- if (FrameworkComponent) {
368
- if (!createFrameworkComponent) {
369
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
370
- }
371
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
372
- }
373
- if (!Component) {
374
- if (fallback) {
375
- return fallback();
376
- }
377
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
378
- }
379
- return new Component(id, componentName);
380
- }
381
-
382
357
  function watchElementResize(element, cb) {
383
358
  const observer = new ResizeObserver((entires) => {
384
359
  /**
@@ -847,10 +822,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
847
822
  const tmp = this.size;
848
823
  this.size = this.orthogonalSize;
849
824
  this.orthogonalSize = tmp;
850
- removeClasses(this.element, 'horizontal', 'vertical');
825
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
851
826
  this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
852
- ? 'horizontal'
853
- : 'vertical');
827
+ ? 'dv-horizontal'
828
+ : 'dv-vertical');
854
829
  }
855
830
  get minimumSize() {
856
831
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -1028,11 +1003,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1028
1003
  }
1029
1004
  style(styles) {
1030
1005
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1031
- removeClasses(this.element, 'separator-border');
1006
+ removeClasses(this.element, 'dv-separator-border');
1032
1007
  this.element.style.removeProperty('--dv-separator-border');
1033
1008
  }
1034
1009
  else {
1035
- addClasses(this.element, 'separator-border');
1010
+ addClasses(this.element, 'dv-separator-border');
1036
1011
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1037
1012
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1038
1013
  }
@@ -1102,7 +1077,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1102
1077
  }
1103
1078
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1104
1079
  const container = document.createElement('div');
1105
- container.className = 'view';
1080
+ container.className = 'dv-view';
1106
1081
  container.appendChild(view.element);
1107
1082
  let viewSize;
1108
1083
  if (typeof size === 'number') {
@@ -1134,7 +1109,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1134
1109
  if (this.viewItems.length > 1) {
1135
1110
  //add sash
1136
1111
  const sash = document.createElement('div');
1137
- sash.className = 'sash';
1112
+ sash.className = 'dv-sash';
1138
1113
  const onPointerStart = (event) => {
1139
1114
  for (const item of this.viewItems) {
1140
1115
  item.enabled = false;
@@ -1393,7 +1368,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1393
1368
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1394
1369
  ? 0
1395
1370
  : viewLeftOffsets[i - 1] +
1396
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1371
+ (visiblePanelsBeforeThisView / sashCount) *
1372
+ marginReducedSize;
1397
1373
  if (i < this.viewItems.length - 1) {
1398
1374
  // calculate sash position
1399
1375
  const newSize = view.visible
@@ -1504,27 +1480,27 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1504
1480
  }
1505
1481
  }
1506
1482
  updateSash(sash, state) {
1507
- toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
1508
- toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
1509
- toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
1510
- toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
1483
+ toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
1484
+ toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
1485
+ toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
1486
+ toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
1511
1487
  }
1512
1488
  createViewContainer() {
1513
1489
  const element = document.createElement('div');
1514
- element.className = 'view-container';
1490
+ element.className = 'dv-view-container';
1515
1491
  return element;
1516
1492
  }
1517
1493
  createSashContainer() {
1518
1494
  const element = document.createElement('div');
1519
- element.className = 'sash-container';
1495
+ element.className = 'dv-sash-container';
1520
1496
  return element;
1521
1497
  }
1522
1498
  createContainer() {
1523
1499
  const element = document.createElement('div');
1524
1500
  const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
1525
- ? 'horizontal'
1526
- : 'vertical';
1527
- element.className = `split-view-container ${orientationClassname}`;
1501
+ ? 'dv-horizontal'
1502
+ : 'dv-vertical';
1503
+ element.className = `dv-split-view-container ${orientationClassname}`;
1528
1504
  return element;
1529
1505
  }
1530
1506
  dispose() {
@@ -1575,7 +1551,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1575
1551
  this.onDidChange = this._onDidChange.event;
1576
1552
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
1577
1553
  this.element = document.createElement('div');
1578
- this.element.className = 'pane-container';
1554
+ this.element.className = 'dv-pane-container';
1579
1555
  container.appendChild(this.element);
1580
1556
  this.splitview = new Splitview(this.element, {
1581
1557
  orientation: this._orientation,
@@ -1667,10 +1643,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1667
1643
  clearTimeout(this.animationTimer);
1668
1644
  this.animationTimer = undefined;
1669
1645
  }
1670
- addClasses(this.element, 'animated');
1646
+ addClasses(this.element, 'dv-animated');
1671
1647
  this.animationTimer = setTimeout(() => {
1672
1648
  this.animationTimer = undefined;
1673
- removeClasses(this.element, 'animated');
1649
+ removeClasses(this.element, 'dv-animated');
1674
1650
  }, 200);
1675
1651
  }
1676
1652
  dispose() {
@@ -1895,7 +1871,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1895
1871
  this._orthogonalSize = orthogonalSize;
1896
1872
  this._size = size;
1897
1873
  this.element = document.createElement('div');
1898
- this.element.className = 'branch-node';
1874
+ this.element.className = 'dv-branch-node';
1899
1875
  if (!childDescriptors) {
1900
1876
  this.splitview = new Splitview(this.element, {
1901
1877
  orientation: this.orientation,
@@ -2106,7 +2082,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2106
2082
  if (!parentElement) {
2107
2083
  throw new Error('Invalid grid element');
2108
2084
  }
2109
- if (/\bgrid-view\b/.test(parentElement.className)) {
2085
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2110
2086
  return [];
2111
2087
  }
2112
2088
  const index = indexInParent(parentElement);
@@ -2243,6 +2219,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2243
2219
  if (this.hasMaximizedView()) {
2244
2220
  this.exitMaximizedView();
2245
2221
  }
2222
+ serializeBranchNode(this.getView(), this.orientation);
2246
2223
  const hiddenOnMaximize = [];
2247
2224
  function hideAllViewsBut(parent, exclude) {
2248
2225
  for (let i = 0; i < parent.children.length; i++) {
@@ -2264,7 +2241,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2264
2241
  }
2265
2242
  hideAllViewsBut(this.root, node);
2266
2243
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
2267
- this._onDidMaximizedNodeChange.fire();
2244
+ this._onDidMaximizedNodeChange.fire({
2245
+ view: node.view,
2246
+ isMaximized: true,
2247
+ });
2268
2248
  }
2269
2249
  exitMaximizedView() {
2270
2250
  if (!this._maximizedNode) {
@@ -2285,24 +2265,51 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2285
2265
  }
2286
2266
  }
2287
2267
  showViewsInReverseOrder(this.root);
2268
+ const tmp = this._maximizedNode.leaf;
2288
2269
  this._maximizedNode = undefined;
2289
- this._onDidMaximizedNodeChange.fire();
2270
+ this._onDidMaximizedNodeChange.fire({
2271
+ view: tmp.view,
2272
+ isMaximized: false,
2273
+ });
2290
2274
  }
2291
2275
  serialize() {
2276
+ const maximizedView = this.maximizedView();
2277
+ let maxmizedViewLocation;
2278
+ if (maximizedView) {
2279
+ /**
2280
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
2281
+ * which is represented as a branch of indices
2282
+ */
2283
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
2284
+ }
2292
2285
  if (this.hasMaximizedView()) {
2293
2286
  /**
2294
- * do not persist maximized view state
2295
- * firstly exit any maximized views to ensure the correct dimensions are persisted
2287
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
2288
+ * view dimensions will be wrong
2289
+ *
2290
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
2291
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
2292
+ * perspective when `.toJSON()` is called
2296
2293
  */
2297
2294
  this.exitMaximizedView();
2298
2295
  }
2299
2296
  const root = serializeBranchNode(this.getView(), this.orientation);
2300
- return {
2297
+ const resullt = {
2301
2298
  root,
2302
2299
  width: this.width,
2303
2300
  height: this.height,
2304
2301
  orientation: this.orientation,
2305
2302
  };
2303
+ if (maxmizedViewLocation) {
2304
+ resullt.maximizedNode = {
2305
+ location: maxmizedViewLocation,
2306
+ };
2307
+ }
2308
+ if (maximizedView) {
2309
+ // replace any maximzied view that was removed for serialization purposes
2310
+ this.maximizeView(maximizedView);
2311
+ }
2312
+ return resullt;
2306
2313
  }
2307
2314
  dispose() {
2308
2315
  this.disposable.dispose();
@@ -2321,6 +2328,19 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2321
2328
  const orientation = json.orientation;
2322
2329
  const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
2323
2330
  this._deserialize(json.root, orientation, deserializer, height);
2331
+ /**
2332
+ * The deserialied layout must be positioned through this.layout(...)
2333
+ * before any maximizedNode can be positioned
2334
+ */
2335
+ this.layout(json.width, json.height);
2336
+ if (json.maximizedNode) {
2337
+ const location = json.maximizedNode.location;
2338
+ const [_, node] = this.getNode(location);
2339
+ if (!(node instanceof LeafNode)) {
2340
+ return;
2341
+ }
2342
+ this.maximizeView(node.view);
2343
+ }
2324
2344
  }
2325
2345
  _deserialize(root, orientation, deserializer, orthogonalSize) {
2326
2346
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -2454,7 +2474,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2454
2474
  this._onDidMaximizedNodeChange = new Emitter();
2455
2475
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2456
2476
  this.element = document.createElement('div');
2457
- this.element.className = 'grid-view';
2477
+ this.element.className = 'dv-grid-view';
2458
2478
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2459
2479
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2460
2480
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -2745,6 +2765,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2745
2765
  this.onDidRemove = this._onDidRemove.event;
2746
2766
  this._onDidAdd = new Emitter();
2747
2767
  this.onDidAdd = this._onDidAdd.event;
2768
+ this._onDidMaximizedChange = new Emitter();
2769
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
2748
2770
  this._onDidActiveChange = new Emitter();
2749
2771
  this.onDidActiveChange = this._onDidActiveChange.event;
2750
2772
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -2760,7 +2782,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2760
2782
  this.gridview.locked = !!options.locked;
2761
2783
  this.element.appendChild(this.gridview.element);
2762
2784
  this.layout(0, 0, true); // set some elements height/widths
2763
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2785
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
2786
+ this._onDidMaximizedChange.fire({
2787
+ panel: event.view,
2788
+ isMaximized: event.isMaximized,
2789
+ });
2790
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2764
2791
  this.layout(this.width, this.height, true);
2765
2792
  }), exports.DockviewDisposable.from(() => {
2766
2793
  var _a;
@@ -2810,9 +2837,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2810
2837
  hasMaximizedGroup() {
2811
2838
  return this.gridview.hasMaximizedView();
2812
2839
  }
2813
- get onDidMaximizedGroupChange() {
2814
- return this.gridview.onDidMaximizedNodeChange;
2815
- }
2816
2840
  doAddGroup(group, location = [0], size) {
2817
2841
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
2818
2842
  this._onDidAdd.fire(group);
@@ -3676,7 +3700,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3676
3700
  * dnd logic. You can see the code at
3677
3701
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3678
3702
  */
3679
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3703
+ event.dataTransfer.setData('text/plain', '');
3680
3704
  }
3681
3705
  }
3682
3706
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3850,12 +3874,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3850
3874
  this.markAsUsed(e);
3851
3875
  if (!this.targetElement) {
3852
3876
  this.targetElement = document.createElement('div');
3853
- this.targetElement.className = 'drop-target-dropzone';
3877
+ this.targetElement.className = 'dv-drop-target-dropzone';
3854
3878
  this.overlayElement = document.createElement('div');
3855
- this.overlayElement.className = 'drop-target-selection';
3879
+ this.overlayElement.className = 'dv-drop-target-selection';
3856
3880
  this._state = 'center';
3857
3881
  this.targetElement.appendChild(this.overlayElement);
3858
- this.element.classList.add('drop-target');
3882
+ this.element.classList.add('dv-drop-target');
3859
3883
  this.element.append(this.targetElement);
3860
3884
  }
3861
3885
  this.toggleClasses(quadrant, width, height);
@@ -3993,7 +4017,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3993
4017
  this.element.removeChild(this.targetElement);
3994
4018
  this.targetElement = undefined;
3995
4019
  this.overlayElement = undefined;
3996
- this.element.classList.remove('drop-target');
4020
+ this.element.classList.remove('dv-drop-target');
3997
4021
  }
3998
4022
  }
3999
4023
  }
@@ -4330,7 +4354,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4330
4354
  this._headerVisible = isHeaderVisible;
4331
4355
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4332
4356
  this._orientation = orientation;
4333
- this.element.classList.add('pane');
4357
+ this.element.classList.add('dv-pane');
4334
4358
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4335
4359
  const { isVisible } = event;
4336
4360
  const { accessor } = this._params;
@@ -4427,14 +4451,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4427
4451
  renderOnce() {
4428
4452
  this.header = document.createElement('div');
4429
4453
  this.header.tabIndex = 0;
4430
- this.header.className = 'pane-header';
4454
+ this.header.className = 'dv-pane-header';
4431
4455
  this.header.style.height = `${this.headerSize}px`;
4432
4456
  this.header.style.lineHeight = `${this.headerSize}px`;
4433
4457
  this.header.style.minHeight = `${this.headerSize}px`;
4434
4458
  this.header.style.maxHeight = `${this.headerSize}px`;
4435
4459
  this.element.appendChild(this.header);
4436
4460
  this.body = document.createElement('div');
4437
- this.body.className = 'pane-body';
4461
+ this.body.className = 'dv-pane-body';
4438
4462
  this.element.appendChild(this.body);
4439
4463
  }
4440
4464
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4555,7 +4579,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4555
4579
  this._onDidBlur = new Emitter();
4556
4580
  this.onDidBlur = this._onDidBlur.event;
4557
4581
  this._element = document.createElement('div');
4558
- this._element.className = 'content-container';
4582
+ this._element.className = 'dv-content-container';
4559
4583
  this._element.tabIndex = -1;
4560
4584
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4561
4585
  this.dropTarget = new Droptarget(this.element, {
@@ -4628,6 +4652,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4628
4652
  referenceContainer: this,
4629
4653
  });
4630
4654
  break;
4655
+ default:
4656
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4631
4657
  }
4632
4658
  if (doRender) {
4633
4659
  const focusTracker = trackFocus(container);
@@ -4694,10 +4720,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4694
4720
  this._onDragStart = new Emitter();
4695
4721
  this.onDragStart = this._onDragStart.event;
4696
4722
  this._element = document.createElement('div');
4697
- this._element.className = 'tab';
4723
+ this._element.className = 'dv-tab';
4698
4724
  this._element.tabIndex = 0;
4699
4725
  this._element.draggable = true;
4700
- toggleClass(this.element, 'inactive-tab', true);
4726
+ toggleClass(this.element, 'dv-inactive-tab', true);
4701
4727
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4702
4728
  this.dropTarget = new Droptarget(this._element, {
4703
4729
  acceptedTargetZones: ['center'],
@@ -4730,8 +4756,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4730
4756
  }), this.dropTarget);
4731
4757
  }
4732
4758
  setActive(isActive) {
4733
- toggleClass(this.element, 'active-tab', isActive);
4734
- toggleClass(this.element, 'inactive-tab', !isActive);
4759
+ toggleClass(this.element, 'dv-active-tab', isActive);
4760
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4735
4761
  }
4736
4762
  setContent(part) {
4737
4763
  if (this.content) {
@@ -4819,8 +4845,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4819
4845
  this._onDragStart = new Emitter();
4820
4846
  this.onDragStart = this._onDragStart.event;
4821
4847
  this._element = document.createElement('div');
4822
- this._element.className = 'void-container';
4823
- this._element.tabIndex = 0;
4848
+ this._element.className = 'dv-void-container';
4824
4849
  this._element.draggable = true;
4825
4850
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4826
4851
  this.accessor.doSetGroupActive(this.group);
@@ -4939,16 +4964,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4939
4964
  this._onWillShowOverlay = new Emitter();
4940
4965
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4941
4966
  this._element = document.createElement('div');
4942
- this._element.className = 'tabs-and-actions-container';
4967
+ this._element.className = 'dv-tabs-and-actions-container';
4943
4968
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4944
4969
  this.rightActionsContainer = document.createElement('div');
4945
- this.rightActionsContainer.className = 'right-actions-container';
4970
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4946
4971
  this.leftActionsContainer = document.createElement('div');
4947
- this.leftActionsContainer.className = 'left-actions-container';
4972
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4948
4973
  this.preActionsContainer = document.createElement('div');
4949
- this.preActionsContainer.className = 'pre-actions-container';
4974
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4950
4975
  this.tabContainer = document.createElement('div');
4951
- this.tabContainer.className = 'tabs-container';
4976
+ this.tabContainer.className = 'dv-tabs-container';
4952
4977
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4953
4978
  this._element.appendChild(this.preActionsContainer);
4954
4979
  this._element.appendChild(this.tabContainer);
@@ -5037,14 +5062,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5037
5062
  });
5038
5063
  }
5039
5064
  openPanel(panel, index = this.tabs.length) {
5040
- var _a;
5041
5065
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5042
5066
  return;
5043
5067
  }
5044
5068
  const tab = new Tab(panel, this.accessor, this.group);
5045
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5046
- throw new Error('invalid header component');
5047
- }
5048
5069
  tab.setContent(panel.view.tab);
5049
5070
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5050
5071
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5138,6 +5159,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5138
5159
  disableDnd: undefined,
5139
5160
  gap: undefined,
5140
5161
  className: undefined,
5162
+ noPanelsOverlay: undefined,
5141
5163
  };
5142
5164
  return Object.keys(properties);
5143
5165
  })();
@@ -5234,7 +5256,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5234
5256
  }
5235
5257
  class DockviewGroupPanelModel extends CompositeDisposable {
5236
5258
  get element() {
5237
- throw new Error('not supported');
5259
+ throw new Error('dockview: not supported');
5238
5260
  }
5239
5261
  get activePanel() {
5240
5262
  return this._activePanel;
@@ -5244,7 +5266,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5244
5266
  }
5245
5267
  set locked(value) {
5246
5268
  this._locked = value;
5247
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5269
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5248
5270
  }
5249
5271
  get isActive() {
5250
5272
  return this._isGroupActive;
@@ -5315,6 +5337,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5315
5337
  this._locked = false;
5316
5338
  this._location = { type: 'grid' };
5317
5339
  this.mostRecentlyUsed = [];
5340
+ this._overwriteRenderContainer = null;
5318
5341
  this._onDidChange = new Emitter();
5319
5342
  this.onDidChange = this._onDidChange.event;
5320
5343
  this._width = 0;
@@ -5345,8 +5368,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5345
5368
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5346
5369
  this._onUnhandledDragOverEvent = new Emitter();
5347
5370
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5348
- this._overwriteRenderContainer = null;
5349
- toggleClass(this.container, 'groupview', true);
5371
+ toggleClass(this.container, 'dv-groupview', true);
5350
5372
  this._api = new DockviewApi(this.accessor);
5351
5373
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5352
5374
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5578,7 +5600,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5578
5600
  this.doClose(panel);
5579
5601
  }
5580
5602
  doClose(panel) {
5581
- this.accessor.removePanel(panel);
5603
+ const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
5604
+ this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
5605
+ ? { removeEmptyGroup: false }
5606
+ : undefined);
5582
5607
  }
5583
5608
  isPanelActive(panel) {
5584
5609
  return this._activePanel === panel;
@@ -5591,8 +5616,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5591
5616
  return;
5592
5617
  }
5593
5618
  this._isGroupActive = isGroupActive;
5594
- toggleClass(this.container, 'active-group', isGroupActive);
5595
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5619
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5620
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5596
5621
  this.tabsContainer.setActive(this.isActive);
5597
5622
  if (!this._activePanel && this.panels.length > 0) {
5598
5623
  this.doSetActivePanel(this.panels[0]);
@@ -5684,7 +5709,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5684
5709
  }
5685
5710
  updateContainer() {
5686
5711
  var _a, _b;
5687
- toggleClass(this.container, 'empty', this.isEmpty);
5688
5712
  this.panels.forEach((panel) => panel.runEvents());
5689
5713
  if (this.isEmpty && !this.watermark) {
5690
5714
  const watermark = this.accessor.createWatermarkComponent();
@@ -5698,14 +5722,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5698
5722
  this.accessor.doSetGroupActive(this.groupPanel);
5699
5723
  }
5700
5724
  });
5701
- this.tabsContainer.hide();
5702
5725
  this.contentContainer.element.appendChild(this.watermark.element);
5703
5726
  }
5704
5727
  if (!this.isEmpty && this.watermark) {
5705
5728
  this.watermark.element.remove();
5706
5729
  (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
5707
5730
  this.watermark = undefined;
5708
- this.tabsContainer.show();
5709
5731
  }
5710
5732
  }
5711
5733
  canDisplayOverlay(event, position, target) {
@@ -5825,6 +5847,34 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5825
5847
  return this._snap;
5826
5848
  }
5827
5849
  get minimumWidth() {
5850
+ /**
5851
+ * defer to protected function to allow subclasses to override easily.
5852
+ * see https://github.com/microsoft/TypeScript/issues/338
5853
+ */
5854
+ return this.__minimumWidth();
5855
+ }
5856
+ get minimumHeight() {
5857
+ /**
5858
+ * defer to protected function to allow subclasses to override easily.
5859
+ * see https://github.com/microsoft/TypeScript/issues/338
5860
+ */
5861
+ return this.__minimumHeight();
5862
+ }
5863
+ get maximumHeight() {
5864
+ /**
5865
+ * defer to protected function to allow subclasses to override easily.
5866
+ * see https://github.com/microsoft/TypeScript/issues/338
5867
+ */
5868
+ return this.__maximumHeight();
5869
+ }
5870
+ get maximumWidth() {
5871
+ /**
5872
+ * defer to protected function to allow subclasses to override easily.
5873
+ * see https://github.com/microsoft/TypeScript/issues/338
5874
+ */
5875
+ return this.__maximumWidth();
5876
+ }
5877
+ __minimumWidth() {
5828
5878
  const width = typeof this._minimumWidth === 'function'
5829
5879
  ? this._minimumWidth()
5830
5880
  : this._minimumWidth;
@@ -5834,7 +5884,17 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5834
5884
  }
5835
5885
  return width;
5836
5886
  }
5837
- get minimumHeight() {
5887
+ __maximumWidth() {
5888
+ const width = typeof this._maximumWidth === 'function'
5889
+ ? this._maximumWidth()
5890
+ : this._maximumWidth;
5891
+ if (width !== this._evaluatedMaximumWidth) {
5892
+ this._evaluatedMaximumWidth = width;
5893
+ this.updateConstraints();
5894
+ }
5895
+ return width;
5896
+ }
5897
+ __minimumHeight() {
5838
5898
  const height = typeof this._minimumHeight === 'function'
5839
5899
  ? this._minimumHeight()
5840
5900
  : this._minimumHeight;
@@ -5844,7 +5904,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5844
5904
  }
5845
5905
  return height;
5846
5906
  }
5847
- get maximumHeight() {
5907
+ __maximumHeight() {
5848
5908
  const height = typeof this._maximumHeight === 'function'
5849
5909
  ? this._maximumHeight()
5850
5910
  : this._maximumHeight;
@@ -5854,16 +5914,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5854
5914
  }
5855
5915
  return height;
5856
5916
  }
5857
- get maximumWidth() {
5858
- const width = typeof this._maximumWidth === 'function'
5859
- ? this._maximumWidth()
5860
- : this._maximumWidth;
5861
- if (width !== this._evaluatedMaximumWidth) {
5862
- this._evaluatedMaximumWidth = width;
5863
- this.updateConstraints();
5864
- }
5865
- return width;
5866
- }
5867
5917
  get isActive() {
5868
5918
  return this.api.isActive;
5869
5919
  }
@@ -6014,6 +6064,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6014
6064
  position: options.group
6015
6065
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
6016
6066
  : 'center',
6067
+ index: options.index,
6017
6068
  },
6018
6069
  });
6019
6070
  }
@@ -6065,30 +6116,34 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6065
6116
  get minimumWidth() {
6066
6117
  var _a;
6067
6118
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6068
- return typeof activePanelMinimumWidth === 'number'
6069
- ? activePanelMinimumWidth
6070
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6119
+ if (typeof activePanelMinimumWidth === 'number') {
6120
+ return activePanelMinimumWidth;
6121
+ }
6122
+ return super.__minimumWidth();
6071
6123
  }
6072
6124
  get minimumHeight() {
6073
6125
  var _a;
6074
6126
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6075
- return typeof activePanelMinimumHeight === 'number'
6076
- ? activePanelMinimumHeight
6077
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6127
+ if (typeof activePanelMinimumHeight === 'number') {
6128
+ return activePanelMinimumHeight;
6129
+ }
6130
+ return super.__minimumHeight();
6078
6131
  }
6079
6132
  get maximumWidth() {
6080
6133
  var _a;
6081
6134
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6082
- return typeof activePanelMaximumWidth === 'number'
6083
- ? activePanelMaximumWidth
6084
- : Number.MAX_SAFE_INTEGER;
6135
+ if (typeof activePanelMaximumWidth === 'number') {
6136
+ return activePanelMaximumWidth;
6137
+ }
6138
+ return super.__maximumWidth();
6085
6139
  }
6086
6140
  get maximumHeight() {
6087
6141
  var _a;
6088
6142
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6089
- return typeof activePanelMaximumHeight === 'number'
6090
- ? activePanelMaximumHeight
6091
- : Number.MAX_SAFE_INTEGER;
6143
+ if (typeof activePanelMaximumHeight === 'number') {
6144
+ return activePanelMaximumHeight;
6145
+ }
6146
+ return super.__maximumHeight();
6092
6147
  }
6093
6148
  get panels() {
6094
6149
  return this._model.panels;
@@ -6202,12 +6257,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6202
6257
  return this.group.api.getWindow();
6203
6258
  }
6204
6259
  moveTo(options) {
6205
- var _a;
6260
+ var _a, _b;
6206
6261
  this.accessor.moveGroupOrPanel({
6207
6262
  from: { groupId: this._group.id, panelId: this.panel.id },
6208
6263
  to: {
6209
- group: options.group,
6210
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6264
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6265
+ position: options.group
6266
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6267
+ : 'center',
6211
6268
  index: options.index,
6212
6269
  },
6213
6270
  });
@@ -6426,7 +6483,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6426
6483
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6427
6484
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6428
6485
  svg.setAttributeNS(null, 'focusable', 'false');
6429
- svg.classList.add('dockview-svg');
6486
+ svg.classList.add('dv-svg');
6430
6487
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6431
6488
  path.setAttributeNS(null, 'd', params.path);
6432
6489
  svg.appendChild(path);
@@ -6597,39 +6654,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6597
6654
  constructor() {
6598
6655
  super();
6599
6656
  this._element = document.createElement('div');
6600
- this._element.className = 'watermark';
6601
- const title = document.createElement('div');
6602
- title.className = 'watermark-title';
6603
- const emptySpace = document.createElement('span');
6604
- emptySpace.style.flexGrow = '1';
6605
- const content = document.createElement('div');
6606
- content.className = 'watermark-content';
6607
- this._element.appendChild(title);
6608
- this._element.appendChild(content);
6609
- const actionsContainer = document.createElement('div');
6610
- actionsContainer.className = 'actions-container';
6611
- const closeAnchor = document.createElement('div');
6612
- closeAnchor.className = 'close-action';
6613
- closeAnchor.appendChild(createCloseButton());
6614
- actionsContainer.appendChild(closeAnchor);
6615
- title.appendChild(emptySpace);
6616
- title.appendChild(actionsContainer);
6617
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
6618
- var _a;
6619
- event.preventDefault();
6620
- if (this._group) {
6621
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
6622
- }
6623
- }));
6657
+ this._element.className = 'dv-watermark';
6624
6658
  }
6625
6659
  init(_params) {
6626
- this._api = _params.containerApi;
6627
- this._group = _params.group;
6628
- this.render();
6629
- }
6630
- render() {
6631
- const isOneGroup = !!(this._api && this._api.size <= 1);
6632
- toggleClass(this.element, 'has-actions', isOneGroup);
6660
+ // noop
6633
6661
  }
6634
6662
  }
6635
6663
 
@@ -6666,6 +6694,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6666
6694
  get element() {
6667
6695
  return this._element;
6668
6696
  }
6697
+ get isVisible() {
6698
+ return this._isVisible;
6699
+ }
6669
6700
  constructor(options) {
6670
6701
  super();
6671
6702
  this.options = options;
@@ -6676,6 +6707,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6676
6707
  this.onDidChangeEnd = this._onDidChangeEnd.event;
6677
6708
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
6678
6709
  this._element.className = 'dv-resize-container';
6710
+ this._isVisible = true;
6679
6711
  this.setupResize('top');
6680
6712
  this.setupResize('bottom');
6681
6713
  this.setupResize('left');
@@ -6690,6 +6722,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6690
6722
  this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
6691
6723
  arialLevelTracker.push(this._element);
6692
6724
  }
6725
+ setVisible(isVisible) {
6726
+ if (isVisible === this.isVisible) {
6727
+ return;
6728
+ }
6729
+ this._isVisible = isVisible;
6730
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
6731
+ }
6693
6732
  bringToFront() {
6694
6733
  arialLevelTracker.push(this._element);
6695
6734
  }
@@ -7240,7 +7279,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7240
7279
  window: this._window.value,
7241
7280
  });
7242
7281
  this._window.disposable.dispose();
7243
- this._window.value.close();
7244
7282
  this._window = null;
7245
7283
  this._onDidClose.fire();
7246
7284
  }
@@ -7272,7 +7310,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7272
7310
  }
7273
7311
  const disposable = new CompositeDisposable();
7274
7312
  this._window = { value: externalWindow, disposable };
7275
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7313
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7314
+ externalWindow.close();
7315
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7276
7316
  /**
7277
7317
  * before the main window closes we should close this popup too
7278
7318
  * to be good citizens
@@ -7289,7 +7329,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7289
7329
  id: this.target,
7290
7330
  window: externalWindow,
7291
7331
  });
7292
- return new Promise((resolve) => {
7332
+ return new Promise((resolve, reject) => {
7293
7333
  externalWindow.addEventListener('unload', (e) => {
7294
7334
  // if page fails to load before unloading
7295
7335
  // this.close();
@@ -7298,21 +7338,27 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7298
7338
  /**
7299
7339
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7300
7340
  */
7301
- const externalDocument = externalWindow.document;
7302
- externalDocument.title = document.title;
7303
- externalDocument.body.appendChild(container);
7304
- addStyles(externalDocument, window.document.styleSheets);
7305
- /**
7306
- * beforeunload must be registered after load for reasons I could not determine
7307
- * otherwise the beforeunload event will not fire when the window is closed
7308
- */
7309
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7341
+ try {
7342
+ const externalDocument = externalWindow.document;
7343
+ externalDocument.title = document.title;
7344
+ externalDocument.body.appendChild(container);
7345
+ addStyles(externalDocument, window.document.styleSheets);
7310
7346
  /**
7311
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7347
+ * beforeunload must be registered after load for reasons I could not determine
7348
+ * otherwise the beforeunload event will not fire when the window is closed
7312
7349
  */
7313
- this.close();
7314
- });
7315
- resolve(container);
7350
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7351
+ /**
7352
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7353
+ */
7354
+ this.close();
7355
+ });
7356
+ resolve(container);
7357
+ }
7358
+ catch (err) {
7359
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7360
+ reject(err);
7361
+ }
7316
7362
  });
7317
7363
  });
7318
7364
  });
@@ -7419,6 +7465,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7419
7465
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
7420
7466
  this._onDidMovePanel = new Emitter();
7421
7467
  this.onDidMovePanel = this._onDidMovePanel.event;
7468
+ this._onDidMaximizedGroupChange = new Emitter();
7469
+ this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
7422
7470
  this._floatingGroups = [];
7423
7471
  this._popoutGroups = [];
7424
7472
  this._onDidRemoveGroup = new Emitter();
@@ -7445,6 +7493,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7445
7493
  if (!this._moving) {
7446
7494
  this._onDidActiveGroupChange.fire(event);
7447
7495
  }
7496
+ }), this.onDidMaximizedChange((event) => {
7497
+ this._onDidMaximizedGroupChange.fire({
7498
+ group: event.panel,
7499
+ isMaximized: event.isMaximized,
7500
+ });
7448
7501
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
7449
7502
  this.updateWatermark();
7450
7503
  }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
@@ -7543,8 +7596,28 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7543
7596
  this._api = new DockviewApi(this);
7544
7597
  this.updateWatermark();
7545
7598
  }
7599
+ setVisible(panel, visible) {
7600
+ switch (panel.api.location.type) {
7601
+ case 'grid':
7602
+ super.setVisible(panel, visible);
7603
+ break;
7604
+ case 'floating': {
7605
+ const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
7606
+ if (item) {
7607
+ item.overlay.setVisible(visible);
7608
+ panel.api._onDidVisibilityChange.fire({
7609
+ isVisible: visible,
7610
+ });
7611
+ }
7612
+ break;
7613
+ }
7614
+ case 'popout':
7615
+ console.warn('dockview: You cannot hide a group that is in a popout window');
7616
+ break;
7617
+ }
7618
+ }
7546
7619
  addPopoutGroup(itemToPopout, options) {
7547
- var _a, _b, _c;
7620
+ var _a, _b, _c, _d, _e;
7548
7621
  if (itemToPopout instanceof DockviewPanel &&
7549
7622
  itemToPopout.group.size === 1) {
7550
7623
  return this.addPopoutGroup(itemToPopout.group, options);
@@ -7565,12 +7638,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7565
7638
  }
7566
7639
  const box = getBox();
7567
7640
  const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
7568
- if (itemToPopout.api.location.type === 'grid') {
7569
- itemToPopout.api.setVisible(false);
7570
- }
7571
7641
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7572
7642
  theme !== null && theme !== void 0 ? theme : '', {
7573
- url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
7643
+ url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
7574
7644
  left: window.screenX + box.left,
7575
7645
  top: window.screenY + box.top,
7576
7646
  width: box.width,
@@ -7584,13 +7654,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7584
7654
  return _window
7585
7655
  .open()
7586
7656
  .then((popoutContainer) => {
7587
- var _a;
7588
7657
  if (_window.isDisposed) {
7589
- return;
7658
+ return false;
7590
7659
  }
7591
7660
  if (popoutContainer === null) {
7592
7661
  popoutWindowDisposable.dispose();
7593
- return;
7662
+ return false;
7594
7663
  }
7595
7664
  const gready = document.createElement('div');
7596
7665
  gready.className = 'dv-overlay-render-container';
@@ -7599,30 +7668,45 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7599
7668
  ? itemToPopout.group
7600
7669
  : itemToPopout;
7601
7670
  const referenceLocation = itemToPopout.api.location.type;
7602
- const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7603
- group.model.renderContainer = overlayRenderContainer;
7604
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7605
- this._onDidAddGroup.fire(group);
7671
+ /**
7672
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7673
+ * of this case is when being called from the `fromJSON(...)` method
7674
+ */
7675
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7676
+ let group;
7677
+ if (!isGroupAddedToDom) {
7678
+ group = referenceGroup;
7606
7679
  }
7607
- if (itemToPopout instanceof DockviewPanel) {
7608
- this.movingLock(() => {
7609
- const panel = referenceGroup.model.removePanel(itemToPopout);
7610
- group.model.openPanel(panel);
7611
- });
7680
+ else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
7681
+ group = options.overridePopoutGroup;
7612
7682
  }
7613
7683
  else {
7614
- this.movingLock(() => moveGroupWithoutDestroying({
7615
- from: referenceGroup,
7616
- to: group,
7617
- }));
7618
- switch (referenceLocation) {
7619
- case 'grid':
7620
- referenceGroup.api.setVisible(false);
7621
- break;
7622
- case 'floating':
7623
- case 'popout':
7624
- this.removeGroup(referenceGroup);
7625
- break;
7684
+ group = this.createGroup({ id: groupId });
7685
+ this._onDidAddGroup.fire(group);
7686
+ }
7687
+ group.model.renderContainer = overlayRenderContainer;
7688
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7689
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7690
+ if (itemToPopout instanceof DockviewPanel) {
7691
+ this.movingLock(() => {
7692
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7693
+ group.model.openPanel(panel);
7694
+ });
7695
+ }
7696
+ else {
7697
+ this.movingLock(() => moveGroupWithoutDestroying({
7698
+ from: referenceGroup,
7699
+ to: group,
7700
+ }));
7701
+ switch (referenceLocation) {
7702
+ case 'grid':
7703
+ referenceGroup.api.setVisible(false);
7704
+ break;
7705
+ case 'floating':
7706
+ case 'popout':
7707
+ this.removeGroup(referenceGroup);
7708
+ break;
7709
+ }
7626
7710
  }
7627
7711
  }
7628
7712
  popoutContainer.classList.add('dv-dockview');
@@ -7632,7 +7716,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7632
7716
  group.model.location = {
7633
7717
  type: 'popout',
7634
7718
  getWindow: () => _window.window,
7719
+ popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
7635
7720
  };
7721
+ if (isGroupAddedToDom &&
7722
+ itemToPopout.api.location.type === 'grid') {
7723
+ itemToPopout.api.setVisible(false);
7724
+ }
7636
7725
  this.doSetGroupAndPanelActive(group);
7637
7726
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7638
7727
  var _a;
@@ -7644,10 +7733,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7644
7733
  (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
7645
7734
  }));
7646
7735
  let returnedGroup;
7736
+ const isValidReferenceGroup = isGroupAddedToDom &&
7737
+ referenceGroup &&
7738
+ this.getPanel(referenceGroup.id);
7647
7739
  const value = {
7648
7740
  window: _window,
7649
7741
  popoutGroup: group,
7650
- referenceGroup: this.getPanel(referenceGroup.id)
7742
+ referenceGroup: isValidReferenceGroup
7651
7743
  ? referenceGroup.id
7652
7744
  : undefined,
7653
7745
  disposable: {
@@ -7664,9 +7756,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7664
7756
  * window dimensions
7665
7757
  */
7666
7758
  addDisposableWindowListener(_window.window, 'resize', () => {
7667
- group.layout(window.innerWidth, window.innerHeight);
7759
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7668
7760
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7669
- if (this.getPanel(referenceGroup.id)) {
7761
+ if (isGroupAddedToDom &&
7762
+ this.getPanel(referenceGroup.id)) {
7670
7763
  this.movingLock(() => moveGroupWithoutDestroying({
7671
7764
  from: group,
7672
7765
  to: referenceGroup,
@@ -7681,21 +7774,27 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7681
7774
  }
7682
7775
  }
7683
7776
  else if (this.getPanel(group.id)) {
7684
- const removedGroup = this.doRemoveGroup(group, {
7777
+ this.doRemoveGroup(group, {
7685
7778
  skipDispose: true,
7686
7779
  skipActive: true,
7780
+ skipPopoutReturn: true,
7687
7781
  });
7782
+ const removedGroup = group;
7688
7783
  removedGroup.model.renderContainer =
7689
7784
  this.overlayRenderContainer;
7690
7785
  removedGroup.model.location = { type: 'grid' };
7691
7786
  returnedGroup = removedGroup;
7787
+ this.doAddGroup(removedGroup, [0]);
7788
+ this.doSetGroupAndPanelActive(removedGroup);
7692
7789
  }
7693
7790
  }));
7694
7791
  this._popoutGroups.push(value);
7695
7792
  this.updateWatermark();
7793
+ return true;
7696
7794
  })
7697
7795
  .catch((err) => {
7698
7796
  console.error('dockview: failed to create popout window', err);
7797
+ return false;
7699
7798
  });
7700
7799
  }
7701
7800
  addFloatingGroup(item, options) {
@@ -7799,7 +7898,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7799
7898
  : (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
7800
7899
  ? undefined
7801
7900
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7802
- const el = group.element.querySelector('.void-container');
7901
+ const el = group.element.querySelector('.dv-void-container');
7803
7902
  if (!el) {
7804
7903
  throw new Error('failed to find drag handle');
7805
7904
  }
@@ -7991,6 +8090,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
7991
8090
  data: group.popoutGroup.toJSON(),
7992
8091
  gridReferenceGroup: group.referenceGroup,
7993
8092
  position: group.window.dimensions(),
8093
+ url: group.popoutGroup.api.location.type === 'popout'
8094
+ ? group.popoutGroup.api.location.popoutUrl
8095
+ : undefined,
7994
8096
  };
7995
8097
  });
7996
8098
  const result = {
@@ -8077,16 +8179,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8077
8179
  }
8078
8180
  const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
8079
8181
  for (const serializedPopoutGroup of serializedPopoutGroups) {
8080
- const { data, position, gridReferenceGroup } = serializedPopoutGroup;
8182
+ const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
8081
8183
  const group = createGroupFromSerializedState(data);
8082
8184
  this.addPopoutGroup((_c = (gridReferenceGroup
8083
8185
  ? this.getPanel(gridReferenceGroup)
8084
8186
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8085
- skipRemoveGroup: true,
8086
8187
  position: position !== null && position !== void 0 ? position : undefined,
8087
8188
  overridePopoutGroup: gridReferenceGroup
8088
8189
  ? group
8089
8190
  : undefined,
8191
+ popoutUrl: url,
8090
8192
  });
8091
8193
  }
8092
8194
  for (const floatingGroup of this._floatingGroups) {
@@ -8100,6 +8202,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8100
8202
  }
8101
8203
  }
8102
8204
  catch (err) {
8205
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8103
8206
  /**
8104
8207
  * Takes all the successfully created groups and remove all of their panels.
8105
8208
  */
@@ -8167,11 +8270,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8167
8270
  width: options.initialWidth,
8168
8271
  height: options.initialHeight,
8169
8272
  };
8273
+ let index;
8170
8274
  if (options.position) {
8171
8275
  if (isPanelOptionsWithPanel(options.position)) {
8172
8276
  const referencePanel = typeof options.position.referencePanel === 'string'
8173
8277
  ? this.getGroupPanel(options.position.referencePanel)
8174
8278
  : options.position.referencePanel;
8279
+ index = options.position.index;
8175
8280
  if (!referencePanel) {
8176
8281
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8177
8282
  }
@@ -8182,6 +8287,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8182
8287
  typeof options.position.referenceGroup === 'string'
8183
8288
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8184
8289
  : options.position.referenceGroup;
8290
+ index = options.position.index;
8185
8291
  if (!referenceGroup) {
8186
8292
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8187
8293
  }
@@ -8192,6 +8298,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8192
8298
  group.model.openPanel(panel, {
8193
8299
  skipSetActive: options.inactive,
8194
8300
  skipSetGroupActive: options.inactive,
8301
+ index,
8195
8302
  });
8196
8303
  if (!options.inactive) {
8197
8304
  this.doSetGroupAndPanelActive(group);
@@ -8221,6 +8328,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8221
8328
  group.model.openPanel(panel, {
8222
8329
  skipSetActive: options.inactive,
8223
8330
  skipSetGroupActive: options.inactive,
8331
+ index,
8224
8332
  });
8225
8333
  }
8226
8334
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8229,6 +8337,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8229
8337
  referenceGroup.model.openPanel(panel, {
8230
8338
  skipSetActive: options.inactive,
8231
8339
  skipSetGroupActive: options.inactive,
8340
+ index,
8232
8341
  });
8233
8342
  referenceGroup.api.setSize({
8234
8343
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8249,6 +8358,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8249
8358
  group.model.openPanel(panel, {
8250
8359
  skipSetActive: options.inactive,
8251
8360
  skipSetGroupActive: options.inactive,
8361
+ index,
8252
8362
  });
8253
8363
  if (!options.inactive) {
8254
8364
  this.doSetGroupAndPanelActive(group);
@@ -8267,6 +8377,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8267
8377
  group.model.openPanel(panel, {
8268
8378
  skipSetActive: options.inactive,
8269
8379
  skipSetGroupActive: options.inactive,
8380
+ index,
8270
8381
  });
8271
8382
  }
8272
8383
  else {
@@ -8277,6 +8388,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8277
8388
  group.model.openPanel(panel, {
8278
8389
  skipSetActive: options.inactive,
8279
8390
  skipSetGroupActive: options.inactive,
8391
+ index,
8280
8392
  });
8281
8393
  if (!options.inactive) {
8282
8394
  this.doSetGroupAndPanelActive(group);
@@ -8286,7 +8398,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8286
8398
  }
8287
8399
  removePanel(panel, options = {
8288
8400
  removeEmptyGroup: true,
8289
- skipDispose: false,
8290
8401
  }) {
8291
8402
  const group = panel.group;
8292
8403
  if (!group) {
@@ -8817,6 +8928,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8817
8928
  }
8818
8929
  }
8819
8930
 
8931
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8932
+ const Component = typeof componentName === 'string'
8933
+ ? components[componentName]
8934
+ : undefined;
8935
+ const FrameworkComponent = typeof componentName === 'string'
8936
+ ? frameworkComponents[componentName]
8937
+ : undefined;
8938
+ if (Component && FrameworkComponent) {
8939
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8940
+ }
8941
+ if (FrameworkComponent) {
8942
+ if (!createFrameworkComponent) {
8943
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8944
+ }
8945
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8946
+ }
8947
+ if (!Component) {
8948
+ if (fallback) {
8949
+ return fallback();
8950
+ }
8951
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8952
+ }
8953
+ return new Component(id, componentName);
8954
+ }
8955
+
8820
8956
  class GridviewComponent extends BaseGrid {
8821
8957
  get orientation() {
8822
8958
  return this.gridview.orientation;
@@ -9365,12 +9501,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
9365
9501
  this._expandedIcon = createExpandMoreButton();
9366
9502
  this._collapsedIcon = createChevronRightButton();
9367
9503
  this.disposable = new MutableDisposable();
9368
- this.apiRef = { api: null };
9504
+ this.apiRef = {
9505
+ api: null,
9506
+ };
9369
9507
  this._element = document.createElement('div');
9370
- this.element.className = 'default-header';
9508
+ this.element.className = 'dv-default-header';
9371
9509
  this._content = document.createElement('span');
9372
9510
  this._expander = document.createElement('div');
9373
- this._expander.className = 'dockview-pane-header-icon';
9511
+ this._expander.className = 'dv-pane-header-icon';
9374
9512
  this.element.appendChild(this._expander);
9375
9513
  this.element.appendChild(this._content);
9376
9514
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -10227,22 +10365,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10227
10365
  disposable.dispose();
10228
10366
  };
10229
10367
  }, [props.onDidDrop]);
10230
- React.useEffect(() => {
10231
- if (!dockviewRef.current) {
10232
- return () => {
10233
- // noop
10234
- };
10235
- }
10236
- const disposable = dockviewRef.current.onUnhandledDragOverEvent((event) => {
10237
- var _a;
10238
- if ((_a = props.showDndOverlay) === null || _a === void 0 ? void 0 : _a.call(props, event)) {
10239
- event.accept();
10240
- }
10241
- });
10242
- return () => {
10243
- disposable.dispose();
10244
- };
10245
- }, [props.showDndOverlay]);
10246
10368
  React.useEffect(() => {
10247
10369
  if (!dockviewRef.current) {
10248
10370
  return () => {
@@ -10660,7 +10782,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10660
10782
  exports.GridviewComponent = GridviewComponent;
10661
10783
  exports.GridviewPanel = GridviewPanel;
10662
10784
  exports.GridviewReact = GridviewReact;
10663
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
10664
10785
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
10665
10786
  exports.PaneFramework = PaneFramework;
10666
10787
  exports.PaneTransfer = PaneTransfer;
@@ -10679,7 +10800,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10679
10800
  exports.SplitviewReact = SplitviewReact;
10680
10801
  exports.Tab = Tab;
10681
10802
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10682
- exports.createComponent = createComponent;
10683
10803
  exports.createDockview = createDockview;
10684
10804
  exports.createGridview = createGridview;
10685
10805
  exports.createPaneview = createPaneview;