dockview 1.15.3 → 1.16.1

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.
package/dist/dockview.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.15.3
3
+ * @version 1.16.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -37,7 +37,7 @@
37
37
  }
38
38
  }
39
39
 
40
- var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.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-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-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-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-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-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-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::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:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::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: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-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 position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\n position: absolute;\n cursor: se-resize;\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.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}";
40
+ 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-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-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-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-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-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-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 position: absolute;\n z-index: 997;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\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: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 998;\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}";
41
41
  styleInject(css_248z);
42
42
 
43
43
  class TransferObject {
@@ -565,6 +565,26 @@
565
565
  function addTestId(element, id) {
566
566
  element.setAttribute('data-testid', id);
567
567
  }
568
+ function disableIframePointEvents() {
569
+ const iframes = [
570
+ ...getElementsByTagName('iframe'),
571
+ ...getElementsByTagName('webview'),
572
+ ];
573
+ const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
574
+ for (const iframe of iframes) {
575
+ original.set(iframe, iframe.style.pointerEvents);
576
+ iframe.style.pointerEvents = 'none';
577
+ }
578
+ return {
579
+ release: () => {
580
+ var _a;
581
+ for (const iframe of iframes) {
582
+ iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
583
+ }
584
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
585
+ },
586
+ };
587
+ }
568
588
 
569
589
  function tail(arr) {
570
590
  if (arr.length === 0) {
@@ -1087,13 +1107,7 @@
1087
1107
  for (const item of this.viewItems) {
1088
1108
  item.enabled = false;
1089
1109
  }
1090
- const iframes = [
1091
- ...getElementsByTagName('iframe'),
1092
- ...getElementsByTagName('webview'),
1093
- ];
1094
- for (const iframe of iframes) {
1095
- iframe.style.pointerEvents = 'none';
1096
- }
1110
+ const iframes = disableIframePointEvents();
1097
1111
  const start = this._orientation === exports.Orientation.HORIZONTAL
1098
1112
  ? event.clientX
1099
1113
  : event.clientY;
@@ -1155,9 +1169,7 @@
1155
1169
  for (const item of this.viewItems) {
1156
1170
  item.enabled = true;
1157
1171
  }
1158
- for (const iframe of iframes) {
1159
- iframe.style.pointerEvents = 'auto';
1160
- }
1172
+ iframes.release();
1161
1173
  this.saveProportions();
1162
1174
  document.removeEventListener('pointermove', onPointerMove);
1163
1175
  document.removeEventListener('pointerup', end);
@@ -1324,29 +1336,47 @@
1324
1336
  if (this.viewItems.length === 0) {
1325
1337
  return;
1326
1338
  }
1327
- const sashCount = this.viewItems.length - 1;
1328
- const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
1339
+ const visibleViewItems = this.viewItems.filter((i) => i.visible);
1340
+ const sashCount = Math.max(0, visibleViewItems.length - 1);
1341
+ const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
1329
1342
  let totalLeftOffset = 0;
1330
1343
  const viewLeftOffsets = [];
1331
- for (let i = 0; i < this.viewItems.length - 1; i++) {
1332
- totalLeftOffset += this.viewItems[i].size;
1333
- viewLeftOffsets.push(totalLeftOffset);
1334
- const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
1335
- if (this._orientation === exports.Orientation.HORIZONTAL) {
1336
- this.sashes[i].container.style.left = `${offset}px`;
1337
- this.sashes[i].container.style.top = `0px`;
1344
+ const sashWidth = 4; // hardcoded in css
1345
+ const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {
1346
+ const flag = viewItem.visible ? 1 : 0;
1347
+ if (i === 0) {
1348
+ arr.push(flag);
1338
1349
  }
1339
- if (this._orientation === exports.Orientation.VERTICAL) {
1340
- this.sashes[i].container.style.left = `0px`;
1341
- this.sashes[i].container.style.top = `${offset}px`;
1350
+ else {
1351
+ arr.push(arr[i - 1] + flag);
1342
1352
  }
1343
- }
1353
+ return arr;
1354
+ }, []);
1355
+ // calculate both view and cash positions
1344
1356
  this.viewItems.forEach((view, i) => {
1345
- const size = view.size - marginReducedSize;
1346
- const offset = i === 0
1357
+ totalLeftOffset += this.viewItems[i].size;
1358
+ viewLeftOffsets.push(totalLeftOffset);
1359
+ const size = view.visible ? view.size - marginReducedSize : 0;
1360
+ const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
1361
+ const offset = i === 0 || visiblePanelsBeforeThisView === 0
1347
1362
  ? 0
1348
1363
  : viewLeftOffsets[i - 1] +
1349
- (i / sashCount) * marginReducedSize;
1364
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1365
+ if (i < this.viewItems.length - 1) {
1366
+ // calculate sash position
1367
+ const newSize = view.visible
1368
+ ? offset + size - sashWidth / 2 + this.margin / 2
1369
+ : offset;
1370
+ if (this._orientation === exports.Orientation.HORIZONTAL) {
1371
+ this.sashes[i].container.style.left = `${newSize}px`;
1372
+ this.sashes[i].container.style.top = `0px`;
1373
+ }
1374
+ if (this._orientation === exports.Orientation.VERTICAL) {
1375
+ this.sashes[i].container.style.left = `0px`;
1376
+ this.sashes[i].container.style.top = `${newSize}px`;
1377
+ }
1378
+ }
1379
+ // calculate view position
1350
1380
  if (this._orientation === exports.Orientation.HORIZONTAL) {
1351
1381
  view.container.style.width = `${size}px`;
1352
1382
  view.container.style.left = `${offset}px`;
@@ -2675,6 +2705,7 @@
2675
2705
  this.gridview.locked = value;
2676
2706
  }
2677
2707
  constructor(options) {
2708
+ var _a, _b;
2678
2709
  super(document.createElement('div'), options.disableAutoResizing);
2679
2710
  this._id = nextLayoutId$1.next();
2680
2711
  this._groups = new Map();
@@ -2688,8 +2719,13 @@
2688
2719
  this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
2689
2720
  this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
2690
2721
  this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
2722
+ this.classNames = [];
2691
2723
  this.element.style.height = '100%';
2692
2724
  this.element.style.width = '100%';
2725
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2726
+ for (const className of this.classNames) {
2727
+ toggleClass(this.element, className, true);
2728
+ }
2693
2729
  options.parentElement.appendChild(this.element);
2694
2730
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2695
2731
  this.gridview.locked = !!options.locked;
@@ -2713,6 +2749,18 @@
2713
2749
  isVisible(panel) {
2714
2750
  return this.gridview.isViewVisible(getGridLocation(panel.element));
2715
2751
  }
2752
+ updateOptions(options) {
2753
+ var _a, _b;
2754
+ if ('className' in options) {
2755
+ for (const className of this.classNames) {
2756
+ toggleClass(this.element, className, false);
2757
+ }
2758
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
2759
+ for (const className of this.classNames) {
2760
+ toggleClass(this.element, className, true);
2761
+ }
2762
+ }
2763
+ }
2716
2764
  maximizeGroup(panel) {
2717
2765
  this.gridview.maximizeView(panel);
2718
2766
  this.doSetGroupActive(panel);
@@ -2893,12 +2941,6 @@
2893
2941
  constructor(component) {
2894
2942
  this.component = component;
2895
2943
  }
2896
- /**
2897
- * Update configuratable options.
2898
- */
2899
- updateOptions(options) {
2900
- this.component.updateOptions(options);
2901
- }
2902
2944
  /**
2903
2945
  * Removes an existing panel and optionally provide a `Sizing` method
2904
2946
  * for the subsequent resize.
@@ -2952,6 +2994,18 @@
2952
2994
  clear() {
2953
2995
  this.component.clear();
2954
2996
  }
2997
+ /**
2998
+ * Update configuratable options.
2999
+ */
3000
+ updateOptions(options) {
3001
+ this.component.updateOptions(options);
3002
+ }
3003
+ /**
3004
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3005
+ */
3006
+ dispose() {
3007
+ this.component.dispose();
3008
+ }
2955
3009
  }
2956
3010
  class PaneviewApi {
2957
3011
  /**
@@ -3079,6 +3133,18 @@
3079
3133
  clear() {
3080
3134
  this.component.clear();
3081
3135
  }
3136
+ /**
3137
+ * Update configuratable options.
3138
+ */
3139
+ updateOptions(options) {
3140
+ this.component.updateOptions(options);
3141
+ }
3142
+ /**
3143
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3144
+ */
3145
+ dispose() {
3146
+ this.component.dispose();
3147
+ }
3082
3148
  }
3083
3149
  class GridviewApi {
3084
3150
  /**
@@ -3219,6 +3285,15 @@
3219
3285
  clear() {
3220
3286
  this.component.clear();
3221
3287
  }
3288
+ updateOptions(options) {
3289
+ this.component.updateOptions(options);
3290
+ }
3291
+ /**
3292
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3293
+ */
3294
+ dispose() {
3295
+ this.component.dispose();
3296
+ }
3222
3297
  }
3223
3298
  class DockviewApi {
3224
3299
  /**
@@ -3511,6 +3586,15 @@
3511
3586
  setGap(gap) {
3512
3587
  this.component.updateOptions({ gap });
3513
3588
  }
3589
+ updateOptions(options) {
3590
+ this.component.updateOptions(options);
3591
+ }
3592
+ /**
3593
+ * Release resources and teardown component. Do not call when using framework versions of dockview.
3594
+ */
3595
+ dispose() {
3596
+ this.component.dispose();
3597
+ }
3514
3598
  }
3515
3599
 
3516
3600
  class DragHandler extends CompositeDisposable {
@@ -3533,20 +3617,12 @@
3533
3617
  event.preventDefault();
3534
3618
  return;
3535
3619
  }
3536
- const iframes = [
3537
- ...getElementsByTagName('iframe'),
3538
- ...getElementsByTagName('webview'),
3539
- ];
3620
+ const iframes = disableIframePointEvents();
3540
3621
  this.pointerEventsDisposable.value = {
3541
3622
  dispose: () => {
3542
- for (const iframe of iframes) {
3543
- iframe.style.pointerEvents = 'auto';
3544
- }
3623
+ iframes.release();
3545
3624
  },
3546
3625
  };
3547
- for (const iframe of iframes) {
3548
- iframe.style.pointerEvents = 'none';
3549
- }
3550
3626
  this.el.classList.add('dv-dragged');
3551
3627
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
3552
3628
  this.dataDisposable.value = this.getData(event);
@@ -4710,7 +4786,7 @@
4710
4786
  this._element.className = 'void-container';
4711
4787
  this._element.tabIndex = 0;
4712
4788
  this._element.draggable = true;
4713
- this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
4789
+ this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4714
4790
  this.accessor.doSetGroupActive(this.group);
4715
4791
  }));
4716
4792
  const handler = new GroupDragHandler(this._element, accessor, group);
@@ -5025,6 +5101,7 @@
5025
5101
  locked: undefined,
5026
5102
  disableDnd: undefined,
5027
5103
  gap: undefined,
5104
+ className: undefined,
5028
5105
  };
5029
5106
  return Object.keys(properties);
5030
5107
  })();
@@ -5580,7 +5657,7 @@
5580
5657
  group: this.groupPanel,
5581
5658
  });
5582
5659
  this.watermark = watermark;
5583
- addDisposableListener(this.watermark.element, 'click', () => {
5660
+ addDisposableListener(this.watermark.element, 'pointerdown', () => {
5584
5661
  if (!this.isActive) {
5585
5662
  this.accessor.doSetGroupActive(this.groupPanel);
5586
5663
  }
@@ -6145,7 +6222,7 @@
6145
6222
  // forward the resize event to the group since if you want to resize a panel
6146
6223
  // you are actually just resizing the panels parent which is the group
6147
6224
  this.group.api.setSize(event);
6148
- }), this.api.onDidRendererChange((event) => {
6225
+ }), this.api.onDidRendererChange(() => {
6149
6226
  this.group.model.rerender(this);
6150
6227
  }));
6151
6228
  }
@@ -6481,17 +6558,30 @@
6481
6558
  }
6482
6559
  }
6483
6560
 
6484
- const bringElementToFront = (() => {
6485
- let previous = null;
6486
- function pushToTop(element) {
6487
- if (previous !== element && previous !== null) {
6488
- toggleClass(previous, 'dv-bring-to-front', false);
6561
+ const DEFAULT_OVERLAY_Z_INDEX = 999;
6562
+ class AriaLevelTracker {
6563
+ constructor() {
6564
+ this._orderedList = [];
6565
+ }
6566
+ push(element) {
6567
+ this._orderedList = [
6568
+ ...this._orderedList.filter((item) => item !== element),
6569
+ element,
6570
+ ];
6571
+ this.update();
6572
+ }
6573
+ destroy(element) {
6574
+ this._orderedList = this._orderedList.filter((item) => item !== element);
6575
+ this.update();
6576
+ }
6577
+ update() {
6578
+ for (let i = 0; i < this._orderedList.length; i++) {
6579
+ this._orderedList[i].setAttribute('aria-level', `${i}`);
6580
+ this._orderedList[i].style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + i * 2}`;
6489
6581
  }
6490
- toggleClass(element, 'dv-bring-to-front', true);
6491
- previous = element;
6492
6582
  }
6493
- return pushToTop;
6494
- })();
6583
+ }
6584
+ const arialLevelTracker = new AriaLevelTracker();
6495
6585
  class Overlay extends CompositeDisposable {
6496
6586
  set minimumInViewportWidth(value) {
6497
6587
  this.options.minimumInViewportWidth = value;
@@ -6499,6 +6589,9 @@
6499
6589
  set minimumInViewportHeight(value) {
6500
6590
  this.options.minimumInViewportHeight = value;
6501
6591
  }
6592
+ get element() {
6593
+ return this._element;
6594
+ }
6502
6595
  constructor(options) {
6503
6596
  super();
6504
6597
  this.options = options;
@@ -6521,6 +6614,10 @@
6521
6614
  this.options.container.appendChild(this._element);
6522
6615
  // if input bad resize within acceptable boundaries
6523
6616
  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 })));
6617
+ arialLevelTracker.push(this._element);
6618
+ }
6619
+ bringToFront() {
6620
+ arialLevelTracker.push(this._element);
6524
6621
  }
6525
6622
  setBounds(bounds = {}) {
6526
6623
  if (typeof bounds.height === 'number') {
@@ -6608,18 +6705,10 @@
6608
6705
  const move = new MutableDisposable();
6609
6706
  const track = () => {
6610
6707
  let offset = null;
6611
- const iframes = [
6612
- ...getElementsByTagName('iframe'),
6613
- ...getElementsByTagName('webview'),
6614
- ];
6615
- for (const iframe of iframes) {
6616
- iframe.style.pointerEvents = 'none';
6617
- }
6708
+ const iframes = disableIframePointEvents();
6618
6709
  move.value = new CompositeDisposable({
6619
6710
  dispose: () => {
6620
- for (const iframe of iframes) {
6621
- iframe.style.pointerEvents = 'auto';
6622
- }
6711
+ iframes.release();
6623
6712
  },
6624
6713
  }, addDisposableWindowListener(window, 'mousemove', (e) => {
6625
6714
  const containerRect = this.options.container.getBoundingClientRect();
@@ -6688,9 +6777,8 @@
6688
6777
  track();
6689
6778
  }
6690
6779
  }), addDisposableListener(this.options.content, 'mousedown', () => {
6691
- bringElementToFront(this._element);
6780
+ arialLevelTracker.push(this._element);
6692
6781
  }, true));
6693
- bringElementToFront(this._element);
6694
6782
  if (options.inDragMode) {
6695
6783
  track();
6696
6784
  }
@@ -6703,13 +6791,7 @@
6703
6791
  this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {
6704
6792
  e.preventDefault();
6705
6793
  let startPosition = null;
6706
- const iframes = [
6707
- ...getElementsByTagName('iframe'),
6708
- ...getElementsByTagName('webview'),
6709
- ];
6710
- for (const iframe of iframes) {
6711
- iframe.style.pointerEvents = 'none';
6712
- }
6794
+ const iframes = disableIframePointEvents();
6713
6795
  move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {
6714
6796
  const containerRect = this.options.container.getBoundingClientRect();
6715
6797
  const overlayRect = this._element.getBoundingClientRect();
@@ -6832,9 +6914,7 @@
6832
6914
  this.setBounds(bounds);
6833
6915
  }), {
6834
6916
  dispose: () => {
6835
- for (const iframe of iframes) {
6836
- iframe.style.pointerEvents = 'auto';
6837
- }
6917
+ iframes.release();
6838
6918
  },
6839
6919
  }, addDisposableWindowListener(window, 'mouseup', () => {
6840
6920
  move.dispose();
@@ -6855,6 +6935,7 @@
6855
6935
  return 0;
6856
6936
  }
6857
6937
  dispose() {
6938
+ arialLevelTracker.destroy(this._element);
6858
6939
  this._element.remove();
6859
6940
  super.dispose();
6860
6941
  }
@@ -6883,9 +6964,10 @@
6883
6964
  return element;
6884
6965
  }
6885
6966
  class OverlayRenderContainer extends CompositeDisposable {
6886
- constructor(element) {
6967
+ constructor(element, accessor) {
6887
6968
  super();
6888
6969
  this.element = element;
6970
+ this.accessor = accessor;
6889
6971
  this.map = {};
6890
6972
  this._disposed = false;
6891
6973
  this.addDisposables(exports.DockviewDisposable.from(() => {
@@ -6941,7 +7023,35 @@
6941
7023
  }
6942
7024
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
6943
7025
  };
6944
- const disposable = new CompositeDisposable(
7026
+ const observerDisposable = new MutableDisposable();
7027
+ const correctLayerPosition = () => {
7028
+ if (panel.api.location.type === 'floating') {
7029
+ queueMicrotask(() => {
7030
+ const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);
7031
+ if (!floatingGroup) {
7032
+ return;
7033
+ }
7034
+ const element = floatingGroup.overlay.element;
7035
+ const update = () => {
7036
+ const level = Number(element.getAttribute('aria-level'));
7037
+ focusContainer.style.zIndex = `${DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1}`;
7038
+ };
7039
+ const observer = new MutationObserver(() => {
7040
+ update();
7041
+ });
7042
+ observerDisposable.value = exports.DockviewDisposable.from(() => observer.disconnect());
7043
+ observer.observe(element, {
7044
+ attributeFilter: ['aria-level'],
7045
+ attributes: true,
7046
+ });
7047
+ update();
7048
+ });
7049
+ }
7050
+ else {
7051
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
7052
+ }
7053
+ };
7054
+ const disposable = new CompositeDisposable(observerDisposable,
6945
7055
  /**
6946
7056
  * since container is positioned absoutely we must explicitly forward
6947
7057
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -6965,7 +7075,7 @@
6965
7075
  onDragOver: (e) => {
6966
7076
  referenceContainer.dropTarget.dnd.onDragOver(e);
6967
7077
  },
6968
- }), panel.api.onDidVisibilityChange((event) => {
7078
+ }), panel.api.onDidVisibilityChange(() => {
6969
7079
  /**
6970
7080
  * Control the visibility of the content, however even when not visible (display: none)
6971
7081
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -6977,6 +7087,8 @@
6977
7087
  return;
6978
7088
  }
6979
7089
  resize();
7090
+ }), panel.api.onDidLocationChange(() => {
7091
+ correctLayerPosition();
6980
7092
  }));
6981
7093
  this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6982
7094
  var _a;
@@ -6985,6 +7097,7 @@
6985
7097
  }
6986
7098
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
6987
7099
  });
7100
+ correctLayerPosition();
6988
7101
  queueMicrotask(() => {
6989
7102
  if (this.isDisposed) {
6990
7103
  return;
@@ -7210,7 +7323,10 @@
7210
7323
  get gap() {
7211
7324
  return this.gridview.margin;
7212
7325
  }
7213
- constructor(options) {
7326
+ get floatingGroups() {
7327
+ return this._floatingGroups;
7328
+ }
7329
+ constructor(parentElement, options) {
7214
7330
  var _a;
7215
7331
  super({
7216
7332
  proportionalLayout: true,
@@ -7218,10 +7334,11 @@
7218
7334
  styles: options.hideBorders
7219
7335
  ? { separatorBorder: 'transparent' }
7220
7336
  : undefined,
7221
- parentElement: options.parentElement,
7337
+ parentElement: parentElement,
7222
7338
  disableAutoResizing: options.disableAutoResizing,
7223
7339
  locked: options.locked,
7224
7340
  margin: options.gap,
7341
+ className: options.className,
7225
7342
  });
7226
7343
  this.nextGroupId = sequentialNumberGenerator();
7227
7344
  this._deserializer = new DefaultDockviewDeserialzier(this);
@@ -7257,10 +7374,10 @@
7257
7374
  this._onDidActiveGroupChange = new Emitter();
7258
7375
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
7259
7376
  this._moving = false;
7260
- const gready = document.createElement('div');
7261
- gready.className = 'dv-overlay-render-container';
7262
- this.gridview.element.appendChild(gready);
7263
- this.overlayRenderContainer = new OverlayRenderContainer(gready);
7377
+ // const gready = document.createElement('div');
7378
+ // gready.className = 'dv-overlay-render-container';
7379
+ // this.gridview.element.appendChild(gready);
7380
+ this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
7264
7381
  toggleClass(this.gridview.element, 'dv-dockview', true);
7265
7382
  toggleClass(this.element, 'dv-debug', !!options.debug);
7266
7383
  this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
@@ -7426,7 +7543,7 @@
7426
7543
  }
7427
7544
  const gready = document.createElement('div');
7428
7545
  gready.className = 'dv-overlay-render-container';
7429
- const overlayRenderContainer = new OverlayRenderContainer(gready);
7546
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
7430
7547
  const referenceGroup = itemToPopout instanceof DockviewPanel
7431
7548
  ? itemToPopout.group
7432
7549
  : itemToPopout;
@@ -7575,7 +7692,6 @@
7575
7692
  }
7576
7693
  }
7577
7694
  }
7578
- group.model.location = { type: 'floating' };
7579
7695
  function getAnchoredBox() {
7580
7696
  if (options === null || options === void 0 ? void 0 : options.position) {
7581
7697
  const result = {};
@@ -7642,10 +7758,14 @@
7642
7758
  : false,
7643
7759
  });
7644
7760
  const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
7645
- const disposable = watchElementResize(group.element, (entry) => {
7761
+ const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {
7762
+ if (event.isActive) {
7763
+ overlay.bringToFront();
7764
+ }
7765
+ }), watchElementResize(group.element, (entry) => {
7646
7766
  const { width, height } = entry.contentRect;
7647
7767
  group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
7648
- });
7768
+ }));
7649
7769
  floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
7650
7770
  // this is either a resize or a move
7651
7771
  // to inform the panels .layout(...) the group with it's current size
@@ -7661,12 +7781,13 @@
7661
7781
  }), {
7662
7782
  dispose: () => {
7663
7783
  disposable.dispose();
7664
- group.model.location = { type: 'grid' };
7665
7784
  remove(this._floatingGroups, floatingGroupPanel);
7785
+ group.model.location = { type: 'grid' };
7666
7786
  this.updateWatermark();
7667
7787
  },
7668
7788
  });
7669
7789
  this._floatingGroups.push(floatingGroupPanel);
7790
+ group.model.location = { type: 'floating' };
7670
7791
  if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
7671
7792
  this.doSetGroupAndPanelActive(group);
7672
7793
  }
@@ -7705,6 +7826,7 @@
7705
7826
  }
7706
7827
  updateOptions(options) {
7707
7828
  var _a, _b;
7829
+ super.updateOptions(options);
7708
7830
  const changed_floatingGroupBounds = 'floatingGroupBounds' in options &&
7709
7831
  options.floatingGroupBounds !== this.options.floatingGroupBounds;
7710
7832
  const changed_rootOverlayOptions = 'rootOverlayModel' in options &&
@@ -8248,6 +8370,7 @@
8248
8370
  this._groups.delete(group.id);
8249
8371
  this._onDidRemoveGroup.fire(group);
8250
8372
  }
8373
+ remove(this._popoutGroups, selectedGroup);
8251
8374
  const removedGroup = selectedGroup.disposable.dispose();
8252
8375
  if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
8253
8376
  this.doAddGroup(removedGroup, [0]);
@@ -8359,6 +8482,31 @@
8359
8482
  return;
8360
8483
  }
8361
8484
  }
8485
+ if (sourceGroup.api.location.type === 'popout') {
8486
+ /**
8487
+ * the source group is a popout group with a single panel
8488
+ *
8489
+ * 1. remove the panel from the group without triggering any events
8490
+ * 2. remove the popout group
8491
+ * 3. create a new group at the requested location and add that panel
8492
+ */
8493
+ const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);
8494
+ const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {
8495
+ skipSetActive: true,
8496
+ skipSetActiveGroup: true,
8497
+ }));
8498
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
8499
+ const newGroup = this.createGroupAtLocation(targetLocation);
8500
+ this.movingLock(() => newGroup.model.openPanel(removedPanel, {
8501
+ skipSetActive: true,
8502
+ }));
8503
+ this.doSetGroupAndPanelActive(newGroup);
8504
+ this._onDidMovePanel.fire({
8505
+ panel: this.getGroupPanel(sourceItemId),
8506
+ from: sourceGroup,
8507
+ });
8508
+ return;
8509
+ }
8362
8510
  // source group will become empty so delete the group
8363
8511
  const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
8364
8512
  skipActive: true,
@@ -8590,13 +8738,14 @@
8590
8738
  set deserializer(value) {
8591
8739
  this._deserializer = value;
8592
8740
  }
8593
- constructor(options) {
8741
+ constructor(parentElement, options) {
8594
8742
  super({
8595
- parentElement: options.parentElement,
8743
+ parentElement: parentElement,
8596
8744
  proportionalLayout: options.proportionalLayout,
8597
8745
  orientation: options.orientation,
8598
8746
  styles: options.styles,
8599
8747
  disableAutoResizing: options.disableAutoResizing,
8748
+ className: options.className,
8600
8749
  });
8601
8750
  this._onDidLayoutfromJSON = new Emitter();
8602
8751
  this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
@@ -8622,6 +8771,7 @@
8622
8771
  }
8623
8772
  }
8624
8773
  updateOptions(options) {
8774
+ super.updateOptions(options);
8625
8775
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8626
8776
  this.gridview.orientation !== options.orientation;
8627
8777
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -8888,8 +9038,9 @@
8888
9038
  ? this.splitview.size
8889
9039
  : this.splitview.orthogonalSize;
8890
9040
  }
8891
- constructor(options) {
8892
- super(options.parentElement, options.disableAutoResizing);
9041
+ constructor(parentElement, options) {
9042
+ var _a, _b;
9043
+ super(parentElement, options.disableAutoResizing);
8893
9044
  this._splitviewChangeDisposable = new MutableDisposable();
8894
9045
  this._panels = new Map();
8895
9046
  this._onDidLayoutfromJSON = new Emitter();
@@ -8900,6 +9051,11 @@
8900
9051
  this.onDidRemoveView = this._onDidRemoveView.event;
8901
9052
  this._onDidLayoutChange = new Emitter();
8902
9053
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9054
+ this.classNames = [];
9055
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9056
+ for (const className of this.classNames) {
9057
+ toggleClass(this.element, className, true);
9058
+ }
8903
9059
  this._options = options;
8904
9060
  if (!options.components) {
8905
9061
  options.components = {};
@@ -8911,6 +9067,16 @@
8911
9067
  this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
8912
9068
  }
8913
9069
  updateOptions(options) {
9070
+ var _a, _b;
9071
+ if ('className' in options) {
9072
+ for (const className of this.classNames) {
9073
+ toggleClass(this.element, className, false);
9074
+ }
9075
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9076
+ for (const className of this.classNames) {
9077
+ toggleClass(this.element, className, true);
9078
+ }
9079
+ }
8914
9080
  const hasOrientationChanged = typeof options.orientation === 'string' &&
8915
9081
  this.options.orientation !== options.orientation;
8916
9082
  this._options = Object.assign(Object.assign({}, this.options), options);
@@ -9212,8 +9378,9 @@
9212
9378
  get options() {
9213
9379
  return this._options;
9214
9380
  }
9215
- constructor(options) {
9216
- super(options.parentElement, options.disableAutoResizing);
9381
+ constructor(parentElement, options) {
9382
+ var _a, _b;
9383
+ super(parentElement, options.disableAutoResizing);
9217
9384
  this._id = nextLayoutId.next();
9218
9385
  this._disposable = new MutableDisposable();
9219
9386
  this._viewDisposables = new Map();
@@ -9227,7 +9394,12 @@
9227
9394
  this.onDidAddView = this._onDidAddView.event;
9228
9395
  this._onDidRemoveView = new Emitter();
9229
9396
  this.onDidRemoveView = this._onDidRemoveView.event;
9397
+ this.classNames = [];
9230
9398
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);
9399
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9400
+ for (const className of this.classNames) {
9401
+ toggleClass(this.element, className, true);
9402
+ }
9231
9403
  this._options = options;
9232
9404
  if (!options.components) {
9233
9405
  options.components = {};
@@ -9249,6 +9421,16 @@
9249
9421
  //noop
9250
9422
  }
9251
9423
  updateOptions(options) {
9424
+ var _a, _b;
9425
+ if ('className' in options) {
9426
+ for (const className of this.classNames) {
9427
+ toggleClass(this.element, className, false);
9428
+ }
9429
+ this.classNames = (_b = (_a = options.className) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
9430
+ for (const className of this.classNames) {
9431
+ toggleClass(this.element, className, true);
9432
+ }
9433
+ }
9252
9434
  this._options = Object.assign(Object.assign({}, this.options), options);
9253
9435
  }
9254
9436
  addPanel(options) {
@@ -9542,6 +9724,23 @@
9542
9724
  }
9543
9725
  }
9544
9726
 
9727
+ function createDockview(element, options) {
9728
+ const component = new DockviewComponent(element, options);
9729
+ return component.api;
9730
+ }
9731
+ function createSplitview(element, options) {
9732
+ const component = new SplitviewComponent(element, options);
9733
+ return new SplitviewApi(component);
9734
+ }
9735
+ function createGridview(element, options) {
9736
+ const component = new GridviewComponent(element, options);
9737
+ return new GridviewApi(component);
9738
+ }
9739
+ function createPaneview(element, options) {
9740
+ const component = new PaneviewComponent(element, options);
9741
+ return new PaneviewApi(component);
9742
+ }
9743
+
9545
9744
  /**
9546
9745
  * This component is intended to interface between vanilla-js and React hence we need to be
9547
9746
  * creative in how we update props.
@@ -9921,20 +10120,19 @@
9921
10120
  });
9922
10121
  }
9923
10122
  : undefined,
9924
- parentElement: domRef.current,
9925
10123
  defaultTabComponent: props.defaultTabComponent
9926
10124
  ? DEFAULT_REACT_TAB
9927
10125
  : undefined,
9928
10126
  };
9929
- const dockview = new DockviewComponent(Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
10127
+ const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
9930
10128
  const { clientWidth, clientHeight } = domRef.current;
9931
- dockview.layout(clientWidth, clientHeight);
10129
+ api.layout(clientWidth, clientHeight);
9932
10130
  if (props.onReady) {
9933
- props.onReady({ api: new DockviewApi(dockview) });
10131
+ props.onReady({ api });
9934
10132
  }
9935
- dockviewRef.current = dockview;
10133
+ dockviewRef.current = api;
9936
10134
  return () => {
9937
- dockview.dispose();
10135
+ api.dispose();
9938
10136
  };
9939
10137
  }, []);
9940
10138
  React.useEffect(() => {
@@ -10160,8 +10358,7 @@
10160
10358
  React.useImperativeHandle(ref, () => domRef.current, []);
10161
10359
  React.useEffect(() => {
10162
10360
  var _a;
10163
- const splitview = new SplitviewComponent({
10164
- parentElement: domRef.current,
10361
+ const api = createSplitview(domRef.current, {
10165
10362
  disableAutoResizing: props.disableAutoResizing,
10166
10363
  orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.HORIZONTAL,
10167
10364
  frameworkComponents: props.components,
@@ -10180,13 +10377,13 @@
10180
10377
  : undefined,
10181
10378
  });
10182
10379
  const { clientWidth, clientHeight } = domRef.current;
10183
- splitview.layout(clientWidth, clientHeight);
10380
+ api.layout(clientWidth, clientHeight);
10184
10381
  if (props.onReady) {
10185
- props.onReady({ api: new SplitviewApi(splitview) });
10382
+ props.onReady({ api });
10186
10383
  }
10187
- splitviewRef.current = splitview;
10384
+ splitviewRef.current = api;
10188
10385
  return () => {
10189
- splitview.dispose();
10386
+ api.dispose();
10190
10387
  };
10191
10388
  }, []);
10192
10389
  React.useEffect(() => {
@@ -10231,8 +10428,7 @@
10231
10428
  // noop
10232
10429
  };
10233
10430
  }
10234
- const gridview = new GridviewComponent({
10235
- parentElement: domRef.current,
10431
+ const api = createGridview(domRef.current, {
10236
10432
  disableAutoResizing: props.disableAutoResizing,
10237
10433
  proportionalLayout: typeof props.proportionalLayout === 'boolean'
10238
10434
  ? props.proportionalLayout
@@ -10251,13 +10447,13 @@
10251
10447
  : undefined,
10252
10448
  });
10253
10449
  const { clientWidth, clientHeight } = domRef.current;
10254
- gridview.layout(clientWidth, clientHeight);
10450
+ api.layout(clientWidth, clientHeight);
10255
10451
  if (props.onReady) {
10256
- props.onReady({ api: new GridviewApi(gridview) });
10452
+ props.onReady({ api });
10257
10453
  }
10258
- gridviewRef.current = gridview;
10454
+ gridviewRef.current = api;
10259
10455
  return () => {
10260
- gridview.dispose();
10456
+ api.dispose();
10261
10457
  };
10262
10458
  }, []);
10263
10459
  React.useEffect(() => {
@@ -10316,8 +10512,7 @@
10316
10512
  const createComponent = (id, _componentId, component) => new PanePanelSection(id, component, {
10317
10513
  addPortal,
10318
10514
  });
10319
- const paneview = new PaneviewComponent({
10320
- parentElement: domRef.current,
10515
+ const api = createPaneview(domRef.current, {
10321
10516
  disableAutoResizing: props.disableAutoResizing,
10322
10517
  frameworkComponents: props.components,
10323
10518
  components: {},
@@ -10334,15 +10529,14 @@
10334
10529
  },
10335
10530
  showDndOverlay: props.showDndOverlay,
10336
10531
  });
10337
- const api = new PaneviewApi(paneview);
10338
10532
  const { clientWidth, clientHeight } = domRef.current;
10339
- paneview.layout(clientWidth, clientHeight);
10533
+ api.layout(clientWidth, clientHeight);
10340
10534
  if (props.onReady) {
10341
10535
  props.onReady({ api });
10342
10536
  }
10343
- paneviewRef.current = paneview;
10537
+ paneviewRef.current = api;
10344
10538
  return () => {
10345
- paneview.dispose();
10539
+ api.dispose();
10346
10540
  };
10347
10541
  }, []);
10348
10542
  React.useEffect(() => {
@@ -10367,10 +10561,10 @@
10367
10561
  //
10368
10562
  };
10369
10563
  }
10370
- const paneview = paneviewRef.current;
10371
- const disposable = paneview.onDidDrop((event) => {
10564
+ const api = paneviewRef.current;
10565
+ const disposable = api.onDidDrop((event) => {
10372
10566
  if (props.onDidDrop) {
10373
- props.onDidDrop(Object.assign(Object.assign({}, event), { api: new PaneviewApi(paneview) }));
10567
+ props.onDidDrop(Object.assign(Object.assign({}, event), { api }));
10374
10568
  }
10375
10569
  });
10376
10570
  return () => {
@@ -10432,6 +10626,10 @@
10432
10626
  exports.Tab = Tab;
10433
10627
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
10434
10628
  exports.createComponent = createComponent;
10629
+ exports.createDockview = createDockview;
10630
+ exports.createGridview = createGridview;
10631
+ exports.createPaneview = createPaneview;
10632
+ exports.createSplitview = createSplitview;
10435
10633
  exports.directionToPosition = directionToPosition;
10436
10634
  exports.getDirectionOrientation = getDirectionOrientation;
10437
10635
  exports.getGridLocation = getGridLocation;