dockview-core 1.14.2 → 1.15.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/cjs/api/component.api.d.ts +5 -5
- package/dist/cjs/api/component.api.js +19 -2
- package/dist/cjs/constants.d.ts +2 -0
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/dnd/overlay.d.ts +6 -4
- package/dist/cjs/dnd/overlay.js +119 -28
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +4 -2
- package/dist/cjs/dockview/dockviewComponent.d.ts +24 -17
- package/dist/cjs/dockview/dockviewComponent.js +104 -47
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +3 -12
- package/dist/cjs/dockview/options.d.ts +10 -6
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/dom.d.ts +1 -0
- package/dist/cjs/dom.js +5 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/cjs/gridview/baseComponentGridview.js +8 -2
- package/dist/cjs/gridview/branchNode.d.ts +7 -3
- package/dist/cjs/gridview/branchNode.js +24 -29
- package/dist/cjs/gridview/gridview.d.ts +7 -1
- package/dist/cjs/gridview/gridview.js +31 -8
- package/dist/cjs/gridview/gridviewPanel.d.ts +1 -0
- package/dist/cjs/gridview/gridviewPanel.js +7 -0
- package/dist/cjs/math.js +5 -1
- package/dist/cjs/splitview/splitview.d.ts +13 -0
- package/dist/cjs/splitview/splitview.js +42 -12
- package/dist/cjs/types.d.ts +23 -0
- package/dist/dockview-core.amd.js +328 -112
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +327 -111
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +328 -112
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +328 -112
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +328 -112
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +327 -111
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +5 -5
- package/dist/esm/api/component.api.js +11 -2
- package/dist/esm/constants.d.ts +2 -0
- package/dist/esm/constants.js +1 -1
- package/dist/esm/dnd/overlay.d.ts +6 -4
- package/dist/esm/dnd/overlay.js +108 -28
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +4 -2
- package/dist/esm/dockview/dockviewComponent.d.ts +24 -17
- package/dist/esm/dockview/dockviewComponent.js +101 -48
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +3 -12
- package/dist/esm/dockview/options.d.ts +10 -6
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/dom.d.ts +1 -0
- package/dist/esm/dom.js +3 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/esm/gridview/baseComponentGridview.js +6 -2
- package/dist/esm/gridview/branchNode.d.ts +7 -3
- package/dist/esm/gridview/branchNode.js +19 -7
- package/dist/esm/gridview/gridview.d.ts +7 -1
- package/dist/esm/gridview/gridview.js +27 -8
- package/dist/esm/gridview/gridviewPanel.d.ts +1 -0
- package/dist/esm/gridview/gridviewPanel.js +3 -0
- package/dist/esm/math.js +5 -1
- package/dist/esm/splitview/splitview.d.ts +13 -0
- package/dist/esm/splitview/splitview.js +38 -12
- package/dist/esm/types.d.ts +23 -0
- package/dist/styles/dockview.css +0 -13
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.15.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -31,7 +31,7 @@ function styleInject(css, ref) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
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-gap-size: 3px;\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.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:last-child) .groupview {\n border-right: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:first-child) .groupview {\n border-left: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:last-child) .groupview {\n border-bottom: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:first-child) .groupview {\n border-top: var(--dv-group-gap-size) solid transparent;\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: elipsis;\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}";
|
|
34
|
+
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: elipsis;\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}";
|
|
35
35
|
styleInject(css_248z);
|
|
36
36
|
|
|
37
37
|
class TransferObject {
|
|
@@ -556,6 +556,9 @@ function isInDocument(element) {
|
|
|
556
556
|
}
|
|
557
557
|
return false;
|
|
558
558
|
}
|
|
559
|
+
function addTestId(element, id) {
|
|
560
|
+
element.setAttribute('data-testid', id);
|
|
561
|
+
}
|
|
559
562
|
|
|
560
563
|
function tail(arr) {
|
|
561
564
|
if (arr.length === 0) {
|
|
@@ -617,7 +620,11 @@ function remove(array, value) {
|
|
|
617
620
|
|
|
618
621
|
const clamp = (value, min, max) => {
|
|
619
622
|
if (min > max) {
|
|
620
|
-
|
|
623
|
+
/**
|
|
624
|
+
* caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle
|
|
625
|
+
* cases where `min` > `max` and in those cases return `min`.
|
|
626
|
+
*/
|
|
627
|
+
return min;
|
|
621
628
|
}
|
|
622
629
|
return Math.min(max, Math.max(value, min));
|
|
623
630
|
};
|
|
@@ -822,7 +829,14 @@ class Splitview {
|
|
|
822
829
|
this._disabled = value;
|
|
823
830
|
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
824
831
|
}
|
|
832
|
+
get margin() {
|
|
833
|
+
return this._margin;
|
|
834
|
+
}
|
|
835
|
+
set margin(value) {
|
|
836
|
+
this._margin = value;
|
|
837
|
+
}
|
|
825
838
|
constructor(container, options) {
|
|
839
|
+
var _a;
|
|
826
840
|
this.container = container;
|
|
827
841
|
this.viewItems = [];
|
|
828
842
|
this.sashes = [];
|
|
@@ -833,6 +847,7 @@ class Splitview {
|
|
|
833
847
|
this._startSnappingEnabled = true;
|
|
834
848
|
this._endSnappingEnabled = true;
|
|
835
849
|
this._disabled = false;
|
|
850
|
+
this._margin = 0;
|
|
836
851
|
this._onDidSashEnd = new Emitter();
|
|
837
852
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
838
853
|
this._onDidAddView = new Emitter();
|
|
@@ -921,6 +936,7 @@ class Splitview {
|
|
|
921
936
|
};
|
|
922
937
|
this._orientation = options.orientation;
|
|
923
938
|
this.element = this.createContainer();
|
|
939
|
+
this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
|
|
924
940
|
this.proportionalLayout =
|
|
925
941
|
options.proportionalLayout === undefined
|
|
926
942
|
? true
|
|
@@ -975,9 +991,7 @@ class Splitview {
|
|
|
975
991
|
if (index < 0 || index >= this.viewItems.length) {
|
|
976
992
|
throw new Error('Index out of bounds');
|
|
977
993
|
}
|
|
978
|
-
toggleClass(this.container, 'visible', visible);
|
|
979
994
|
const viewItem = this.viewItems[index];
|
|
980
|
-
toggleClass(this.container, 'visible', visible);
|
|
981
995
|
viewItem.setVisible(visible, viewItem.size);
|
|
982
996
|
this.distributeEmptySpace(index);
|
|
983
997
|
this.layoutViews();
|
|
@@ -1289,15 +1303,29 @@ class Splitview {
|
|
|
1289
1303
|
this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);
|
|
1290
1304
|
}
|
|
1291
1305
|
}
|
|
1306
|
+
/**
|
|
1307
|
+
* Margin explain:
|
|
1308
|
+
*
|
|
1309
|
+
* For `n` views in a splitview there will be `n-1` margins `m`.
|
|
1310
|
+
*
|
|
1311
|
+
* To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.
|
|
1312
|
+
*
|
|
1313
|
+
* For each view `i` the offet must be adjusted by `m * i/(n - 1)`.
|
|
1314
|
+
*/
|
|
1292
1315
|
layoutViews() {
|
|
1293
1316
|
this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
1294
|
-
let sum = 0;
|
|
1295
|
-
const x = [];
|
|
1296
1317
|
this.updateSashEnablement();
|
|
1318
|
+
if (this.viewItems.length === 0) {
|
|
1319
|
+
return;
|
|
1320
|
+
}
|
|
1321
|
+
const sashCount = this.viewItems.length - 1;
|
|
1322
|
+
const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
|
|
1323
|
+
let totalLeftOffset = 0;
|
|
1324
|
+
const viewLeftOffsets = [];
|
|
1297
1325
|
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
const offset = Math.min(Math.max(0,
|
|
1326
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1327
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1328
|
+
const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
|
|
1301
1329
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
1302
1330
|
this.sashes[i].container.style.left = `${offset}px`;
|
|
1303
1331
|
this.sashes[i].container.style.top = `0px`;
|
|
@@ -1308,19 +1336,24 @@ class Splitview {
|
|
|
1308
1336
|
}
|
|
1309
1337
|
}
|
|
1310
1338
|
this.viewItems.forEach((view, i) => {
|
|
1339
|
+
const size = view.size - marginReducedSize;
|
|
1340
|
+
const offset = i === 0
|
|
1341
|
+
? 0
|
|
1342
|
+
: viewLeftOffsets[i - 1] +
|
|
1343
|
+
(i / sashCount) * marginReducedSize;
|
|
1311
1344
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
1312
|
-
view.container.style.width = `${
|
|
1313
|
-
view.container.style.left =
|
|
1345
|
+
view.container.style.width = `${size}px`;
|
|
1346
|
+
view.container.style.left = `${offset}px`;
|
|
1314
1347
|
view.container.style.top = '';
|
|
1315
1348
|
view.container.style.height = '';
|
|
1316
1349
|
}
|
|
1317
1350
|
if (this._orientation === Orientation.VERTICAL) {
|
|
1318
|
-
view.container.style.height = `${
|
|
1319
|
-
view.container.style.top =
|
|
1351
|
+
view.container.style.height = `${size}px`;
|
|
1352
|
+
view.container.style.top = `${offset}px`;
|
|
1320
1353
|
view.container.style.width = '';
|
|
1321
1354
|
view.container.style.left = '';
|
|
1322
1355
|
}
|
|
1323
|
-
view.view.layout(view.size, this._orthogonalSize);
|
|
1356
|
+
view.view.layout(view.size - marginReducedSize, this._orthogonalSize);
|
|
1324
1357
|
});
|
|
1325
1358
|
}
|
|
1326
1359
|
findFirstSnapIndex(indexes) {
|
|
@@ -1769,7 +1802,18 @@ class BranchNode extends CompositeDisposable {
|
|
|
1769
1802
|
set disabled(value) {
|
|
1770
1803
|
this.splitview.disabled = value;
|
|
1771
1804
|
}
|
|
1772
|
-
|
|
1805
|
+
get margin() {
|
|
1806
|
+
return this.splitview.margin;
|
|
1807
|
+
}
|
|
1808
|
+
set margin(value) {
|
|
1809
|
+
this.splitview.margin = value;
|
|
1810
|
+
this.children.forEach((child) => {
|
|
1811
|
+
if (child instanceof BranchNode) {
|
|
1812
|
+
child.margin = value;
|
|
1813
|
+
}
|
|
1814
|
+
});
|
|
1815
|
+
}
|
|
1816
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {
|
|
1773
1817
|
super();
|
|
1774
1818
|
this.orientation = orientation;
|
|
1775
1819
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1789,6 +1833,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1789
1833
|
orientation: this.orientation,
|
|
1790
1834
|
proportionalLayout,
|
|
1791
1835
|
styles,
|
|
1836
|
+
margin,
|
|
1792
1837
|
});
|
|
1793
1838
|
this.splitview.layout(this.size, this.orthogonalSize);
|
|
1794
1839
|
}
|
|
@@ -1812,6 +1857,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1812
1857
|
descriptor,
|
|
1813
1858
|
proportionalLayout,
|
|
1814
1859
|
styles,
|
|
1860
|
+
margin,
|
|
1815
1861
|
});
|
|
1816
1862
|
}
|
|
1817
1863
|
this.disabled = disabled;
|
|
@@ -1820,10 +1866,8 @@ class BranchNode extends CompositeDisposable {
|
|
|
1820
1866
|
}));
|
|
1821
1867
|
this.setupChildrenEvents();
|
|
1822
1868
|
}
|
|
1823
|
-
setVisible(
|
|
1824
|
-
|
|
1825
|
-
child.setVisible(visible);
|
|
1826
|
-
}
|
|
1869
|
+
setVisible(_visible) {
|
|
1870
|
+
// noop
|
|
1827
1871
|
}
|
|
1828
1872
|
isChildVisible(index) {
|
|
1829
1873
|
if (index < 0 || index >= this.children.length) {
|
|
@@ -1840,12 +1884,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1840
1884
|
}
|
|
1841
1885
|
const wereAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1842
1886
|
this.splitview.setViewVisible(index, visible);
|
|
1887
|
+
// }
|
|
1843
1888
|
const areAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1844
1889
|
// If all children are hidden then the parent should hide the entire splitview
|
|
1845
1890
|
// If the entire splitview is hidden then the parent should show the splitview when a child is shown
|
|
1846
1891
|
if ((visible && wereAllChildrenHidden) ||
|
|
1847
1892
|
(!visible && areAllChildrenHidden)) {
|
|
1848
|
-
this._onDidVisibilityChange.fire(visible);
|
|
1893
|
+
this._onDidVisibilityChange.fire({ visible });
|
|
1849
1894
|
}
|
|
1850
1895
|
}
|
|
1851
1896
|
moveChild(from, to) {
|
|
@@ -1918,7 +1963,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1918
1963
|
this._onDidChange.fire({ size: e.orthogonalSize });
|
|
1919
1964
|
}), ...this.children.map((c, i) => {
|
|
1920
1965
|
if (c instanceof BranchNode) {
|
|
1921
|
-
return c.onDidVisibilityChange((visible) => {
|
|
1966
|
+
return c.onDidVisibilityChange(({ visible }) => {
|
|
1922
1967
|
this.setChildVisible(i, visible);
|
|
1923
1968
|
});
|
|
1924
1969
|
}
|
|
@@ -1948,7 +1993,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1948
1993
|
}
|
|
1949
1994
|
function flipNode(node, size, orthogonalSize) {
|
|
1950
1995
|
if (node instanceof BranchNode) {
|
|
1951
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1996
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);
|
|
1952
1997
|
let totalSize = 0;
|
|
1953
1998
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1954
1999
|
const child = node.children[i];
|
|
@@ -2103,6 +2148,13 @@ class Gridview {
|
|
|
2103
2148
|
}
|
|
2104
2149
|
}
|
|
2105
2150
|
}
|
|
2151
|
+
get margin() {
|
|
2152
|
+
return this._margin;
|
|
2153
|
+
}
|
|
2154
|
+
set margin(value) {
|
|
2155
|
+
this._margin = value;
|
|
2156
|
+
this.root.margin = value;
|
|
2157
|
+
}
|
|
2106
2158
|
maximizedView() {
|
|
2107
2159
|
var _a;
|
|
2108
2160
|
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
@@ -2188,13 +2240,14 @@ class Gridview {
|
|
|
2188
2240
|
this.disposable.dispose();
|
|
2189
2241
|
this._onDidChange.dispose();
|
|
2190
2242
|
this._onDidMaximizedNodeChange.dispose();
|
|
2243
|
+
this._onDidViewVisibilityChange.dispose();
|
|
2191
2244
|
this.root.dispose();
|
|
2192
2245
|
this._maximizedNode = undefined;
|
|
2193
2246
|
this.element.remove();
|
|
2194
2247
|
}
|
|
2195
2248
|
clear() {
|
|
2196
2249
|
const orientation = this.root.orientation;
|
|
2197
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.
|
|
2250
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);
|
|
2198
2251
|
}
|
|
2199
2252
|
deserialize(json, deserializer) {
|
|
2200
2253
|
const orientation = json.orientation;
|
|
@@ -2205,6 +2258,7 @@ class Gridview {
|
|
|
2205
2258
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
2206
2259
|
}
|
|
2207
2260
|
_deserializeNode(node, orientation, deserializer, orthogonalSize) {
|
|
2261
|
+
var _a;
|
|
2208
2262
|
let result;
|
|
2209
2263
|
if (node.type === 'branch') {
|
|
2210
2264
|
const serializedChildren = node.data;
|
|
@@ -2216,10 +2270,14 @@ class Gridview {
|
|
|
2216
2270
|
});
|
|
2217
2271
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2218
2272
|
orthogonalSize, // <- size - flips at each depth,
|
|
2219
|
-
this.
|
|
2273
|
+
this.locked, this.margin, children);
|
|
2220
2274
|
}
|
|
2221
2275
|
else {
|
|
2222
|
-
|
|
2276
|
+
const view = deserializer.fromJSON(node);
|
|
2277
|
+
if (typeof node.visible === 'boolean') {
|
|
2278
|
+
(_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);
|
|
2279
|
+
}
|
|
2280
|
+
result = new LeafNode(view, orientation, orthogonalSize, node.size);
|
|
2223
2281
|
}
|
|
2224
2282
|
return result;
|
|
2225
2283
|
}
|
|
@@ -2249,7 +2307,7 @@ class Gridview {
|
|
|
2249
2307
|
}
|
|
2250
2308
|
const oldRoot = this.root;
|
|
2251
2309
|
oldRoot.element.remove();
|
|
2252
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.
|
|
2310
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);
|
|
2253
2311
|
if (oldRoot.children.length === 0) ;
|
|
2254
2312
|
else if (oldRoot.children.length === 1) {
|
|
2255
2313
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2314,19 +2372,24 @@ class Gridview {
|
|
|
2314
2372
|
}
|
|
2315
2373
|
return findLeaf(this.root, reverse);
|
|
2316
2374
|
}
|
|
2317
|
-
constructor(proportionalLayout, styles, orientation) {
|
|
2375
|
+
constructor(proportionalLayout, styles, orientation, locked, margin) {
|
|
2318
2376
|
this.proportionalLayout = proportionalLayout;
|
|
2319
2377
|
this.styles = styles;
|
|
2320
2378
|
this._locked = false;
|
|
2379
|
+
this._margin = 0;
|
|
2321
2380
|
this._maximizedNode = undefined;
|
|
2322
2381
|
this.disposable = new MutableDisposable();
|
|
2323
2382
|
this._onDidChange = new Emitter();
|
|
2324
2383
|
this.onDidChange = this._onDidChange.event;
|
|
2384
|
+
this._onDidViewVisibilityChange = new Emitter();
|
|
2385
|
+
this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;
|
|
2325
2386
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2326
2387
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2327
2388
|
this.element = document.createElement('div');
|
|
2328
2389
|
this.element.className = 'grid-view';
|
|
2329
|
-
this.
|
|
2390
|
+
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2391
|
+
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2392
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
2330
2393
|
}
|
|
2331
2394
|
isViewVisible(location) {
|
|
2332
2395
|
const [rest, index] = tail(location);
|
|
@@ -2345,6 +2408,7 @@ class Gridview {
|
|
|
2345
2408
|
if (!(parent instanceof BranchNode)) {
|
|
2346
2409
|
throw new Error('Invalid from location');
|
|
2347
2410
|
}
|
|
2411
|
+
this._onDidViewVisibilityChange.fire();
|
|
2348
2412
|
parent.setChildVisible(index, visible);
|
|
2349
2413
|
}
|
|
2350
2414
|
moveView(parentLocation, from, to) {
|
|
@@ -2377,7 +2441,7 @@ class Gridview {
|
|
|
2377
2441
|
}
|
|
2378
2442
|
const child = grandParent.removeChild(parentIndex);
|
|
2379
2443
|
child.dispose();
|
|
2380
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.
|
|
2444
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);
|
|
2381
2445
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2382
2446
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2383
2447
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2616,14 +2680,18 @@ class BaseGrid extends Resizable {
|
|
|
2616
2680
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2617
2681
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2618
2682
|
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2683
|
+
this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
|
|
2684
|
+
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2619
2685
|
this.element.style.height = '100%';
|
|
2620
2686
|
this.element.style.width = '100%';
|
|
2621
2687
|
options.parentElement.appendChild(this.element);
|
|
2622
|
-
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
2688
|
+
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2623
2689
|
this.gridview.locked = !!options.locked;
|
|
2624
2690
|
this.element.appendChild(this.gridview.element);
|
|
2625
2691
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2626
|
-
this.addDisposables(
|
|
2692
|
+
this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2693
|
+
this.layout(this.width, this.height, true);
|
|
2694
|
+
}), Disposable.from(() => {
|
|
2627
2695
|
var _a;
|
|
2628
2696
|
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
2629
2697
|
}), this.gridview.onDidChange(() => {
|
|
@@ -3201,6 +3269,9 @@ class DockviewApi {
|
|
|
3201
3269
|
get totalPanels() {
|
|
3202
3270
|
return this.component.totalPanels;
|
|
3203
3271
|
}
|
|
3272
|
+
get gap() {
|
|
3273
|
+
return this.component.gap;
|
|
3274
|
+
}
|
|
3204
3275
|
/**
|
|
3205
3276
|
* Invoked when the active group changes. May be undefined if no group is active.
|
|
3206
3277
|
*/
|
|
@@ -3237,6 +3308,9 @@ class DockviewApi {
|
|
|
3237
3308
|
get onDidRemovePanel() {
|
|
3238
3309
|
return this.component.onDidRemovePanel;
|
|
3239
3310
|
}
|
|
3311
|
+
get onDidMovePanel() {
|
|
3312
|
+
return this.component.onDidMovePanel;
|
|
3313
|
+
}
|
|
3240
3314
|
/**
|
|
3241
3315
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3242
3316
|
*/
|
|
@@ -3377,8 +3451,8 @@ class DockviewApi {
|
|
|
3377
3451
|
/**
|
|
3378
3452
|
* Add a floating group
|
|
3379
3453
|
*/
|
|
3380
|
-
addFloatingGroup(item,
|
|
3381
|
-
return this.component.addFloatingGroup(item,
|
|
3454
|
+
addFloatingGroup(item, options) {
|
|
3455
|
+
return this.component.addFloatingGroup(item, options);
|
|
3382
3456
|
}
|
|
3383
3457
|
/**
|
|
3384
3458
|
* Create a component from a serialized object.
|
|
@@ -3428,6 +3502,9 @@ class DockviewApi {
|
|
|
3428
3502
|
addPopoutGroup(item, options) {
|
|
3429
3503
|
return this.component.addPopoutGroup(item, options);
|
|
3430
3504
|
}
|
|
3505
|
+
setGap(gap) {
|
|
3506
|
+
this.component.updateOptions({ gap });
|
|
3507
|
+
}
|
|
3431
3508
|
}
|
|
3432
3509
|
|
|
3433
3510
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4797,7 +4874,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4797
4874
|
this.accessor.addFloatingGroup(this.group, {
|
|
4798
4875
|
x: left - rootLeft + 20,
|
|
4799
4876
|
y: top - rootTop + 20,
|
|
4800
|
-
|
|
4877
|
+
inDragMode: true,
|
|
4878
|
+
});
|
|
4801
4879
|
}
|
|
4802
4880
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4803
4881
|
if (event.defaultPrevented) {
|
|
@@ -4866,7 +4944,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4866
4944
|
this.accessor.addFloatingGroup(panel, {
|
|
4867
4945
|
x: left - rootLeft,
|
|
4868
4946
|
y: top - rootTop,
|
|
4869
|
-
|
|
4947
|
+
inDragMode: true,
|
|
4948
|
+
});
|
|
4870
4949
|
return;
|
|
4871
4950
|
}
|
|
4872
4951
|
const isLeftClick = event.button === 0;
|
|
@@ -4939,6 +5018,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4939
5018
|
rootOverlayModel: undefined,
|
|
4940
5019
|
locked: undefined,
|
|
4941
5020
|
disableDnd: undefined,
|
|
5021
|
+
gap: undefined,
|
|
4942
5022
|
};
|
|
4943
5023
|
return Object.keys(properties);
|
|
4944
5024
|
})();
|
|
@@ -5669,6 +5749,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5669
5749
|
get isActive() {
|
|
5670
5750
|
return this.api.isActive;
|
|
5671
5751
|
}
|
|
5752
|
+
get isVisible() {
|
|
5753
|
+
return this.api.isVisible;
|
|
5754
|
+
}
|
|
5672
5755
|
constructor(id, component, options, api) {
|
|
5673
5756
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5674
5757
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6431,12 +6514,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6431
6514
|
this._element.appendChild(this.options.content);
|
|
6432
6515
|
this.options.container.appendChild(this._element);
|
|
6433
6516
|
// if input bad resize within acceptable boundaries
|
|
6434
|
-
this.setBounds({
|
|
6435
|
-
height: this.options.height,
|
|
6436
|
-
width: this.options.width,
|
|
6437
|
-
top: this.options.top,
|
|
6438
|
-
left: this.options.left,
|
|
6439
|
-
});
|
|
6517
|
+
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 })));
|
|
6440
6518
|
}
|
|
6441
6519
|
setBounds(bounds = {}) {
|
|
6442
6520
|
if (typeof bounds.height === 'number') {
|
|
@@ -6445,11 +6523,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6445
6523
|
if (typeof bounds.width === 'number') {
|
|
6446
6524
|
this._element.style.width = `${bounds.width}px`;
|
|
6447
6525
|
}
|
|
6448
|
-
if (typeof bounds.top === 'number') {
|
|
6526
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6449
6527
|
this._element.style.top = `${bounds.top}px`;
|
|
6528
|
+
this._element.style.bottom = 'auto';
|
|
6529
|
+
this.verticalAlignment = 'top';
|
|
6530
|
+
}
|
|
6531
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6532
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6533
|
+
this._element.style.top = 'auto';
|
|
6534
|
+
this.verticalAlignment = 'bottom';
|
|
6450
6535
|
}
|
|
6451
|
-
if (typeof bounds.left === 'number') {
|
|
6536
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6452
6537
|
this._element.style.left = `${bounds.left}px`;
|
|
6538
|
+
this._element.style.right = 'auto';
|
|
6539
|
+
this.horiziontalAlignment = 'left';
|
|
6540
|
+
}
|
|
6541
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6542
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6543
|
+
this._element.style.left = 'auto';
|
|
6544
|
+
this.horiziontalAlignment = 'right';
|
|
6453
6545
|
}
|
|
6454
6546
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6455
6547
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6457,24 +6549,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6457
6549
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6458
6550
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6459
6551
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6460
|
-
const yOffset =
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
this.
|
|
6552
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6553
|
+
if (this.verticalAlignment === 'top') {
|
|
6554
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6555
|
+
this._element.style.top = `${top}px`;
|
|
6556
|
+
this._element.style.bottom = 'auto';
|
|
6557
|
+
}
|
|
6558
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6559
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6560
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6561
|
+
this._element.style.top = 'auto';
|
|
6562
|
+
}
|
|
6563
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6564
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6565
|
+
this._element.style.left = `${left}px`;
|
|
6566
|
+
this._element.style.right = 'auto';
|
|
6567
|
+
}
|
|
6568
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6569
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6570
|
+
this._element.style.right = `${right}px`;
|
|
6571
|
+
this._element.style.left = 'auto';
|
|
6572
|
+
}
|
|
6467
6573
|
this._onDidChange.fire();
|
|
6468
6574
|
}
|
|
6469
6575
|
toJSON() {
|
|
6470
6576
|
const container = this.options.container.getBoundingClientRect();
|
|
6471
6577
|
const element = this._element.getBoundingClientRect();
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6578
|
+
const result = {};
|
|
6579
|
+
if (this.verticalAlignment === 'top') {
|
|
6580
|
+
result.top = parseFloat(this._element.style.top);
|
|
6581
|
+
}
|
|
6582
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6583
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6584
|
+
}
|
|
6585
|
+
else {
|
|
6586
|
+
result.top = element.top - container.top;
|
|
6587
|
+
}
|
|
6588
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6589
|
+
result.left = parseFloat(this._element.style.left);
|
|
6590
|
+
}
|
|
6591
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6592
|
+
result.right = parseFloat(this._element.style.right);
|
|
6593
|
+
}
|
|
6594
|
+
else {
|
|
6595
|
+
result.left = element.left - container.left;
|
|
6596
|
+
}
|
|
6597
|
+
result.width = element.width;
|
|
6598
|
+
result.height = element.height;
|
|
6599
|
+
return result;
|
|
6478
6600
|
}
|
|
6479
6601
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6480
6602
|
const move = new MutableDisposable();
|
|
@@ -6506,12 +6628,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6506
6628
|
};
|
|
6507
6629
|
}
|
|
6508
6630
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6509
|
-
const yOffset = Math.max(0, this.
|
|
6510
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6511
|
-
: 0);
|
|
6512
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6631
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6513
6632
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6514
|
-
|
|
6633
|
+
const bottom = clamp(offset.y -
|
|
6634
|
+
y +
|
|
6635
|
+
containerRect.height -
|
|
6636
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6637
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6638
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6639
|
+
const bounds = {};
|
|
6640
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6641
|
+
if (top <= bottom) {
|
|
6642
|
+
bounds.top = top;
|
|
6643
|
+
}
|
|
6644
|
+
else {
|
|
6645
|
+
bounds.bottom = bottom;
|
|
6646
|
+
}
|
|
6647
|
+
// Anchor to left or to right depending on which one is closer
|
|
6648
|
+
if (left <= right) {
|
|
6649
|
+
bounds.left = left;
|
|
6650
|
+
}
|
|
6651
|
+
else {
|
|
6652
|
+
bounds.right = right;
|
|
6653
|
+
}
|
|
6654
|
+
this.setBounds(bounds);
|
|
6515
6655
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6516
6656
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6517
6657
|
move.dispose();
|
|
@@ -6579,8 +6719,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6579
6719
|
};
|
|
6580
6720
|
}
|
|
6581
6721
|
let top = undefined;
|
|
6722
|
+
let bottom = undefined;
|
|
6582
6723
|
let height = undefined;
|
|
6583
6724
|
let left = undefined;
|
|
6725
|
+
let right = undefined;
|
|
6584
6726
|
let width = undefined;
|
|
6585
6727
|
const moveTop = () => {
|
|
6586
6728
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6594,6 +6736,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6594
6736
|
startPosition.originalY +
|
|
6595
6737
|
startPosition.originalHeight -
|
|
6596
6738
|
top;
|
|
6739
|
+
bottom = containerRect.height - top - height;
|
|
6597
6740
|
};
|
|
6598
6741
|
const moveBottom = () => {
|
|
6599
6742
|
top =
|
|
@@ -6605,6 +6748,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6605
6748
|
? -top +
|
|
6606
6749
|
this.options.minimumInViewportHeight
|
|
6607
6750
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6751
|
+
bottom = containerRect.height - top - height;
|
|
6608
6752
|
};
|
|
6609
6753
|
const moveLeft = () => {
|
|
6610
6754
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6618,6 +6762,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6618
6762
|
startPosition.originalX +
|
|
6619
6763
|
startPosition.originalWidth -
|
|
6620
6764
|
left;
|
|
6765
|
+
right = containerRect.width - left - width;
|
|
6621
6766
|
};
|
|
6622
6767
|
const moveRight = () => {
|
|
6623
6768
|
left =
|
|
@@ -6629,6 +6774,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6629
6774
|
? -left +
|
|
6630
6775
|
this.options.minimumInViewportWidth
|
|
6631
6776
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6777
|
+
right = containerRect.width - left - width;
|
|
6632
6778
|
};
|
|
6633
6779
|
switch (direction) {
|
|
6634
6780
|
case 'top':
|
|
@@ -6660,7 +6806,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6660
6806
|
moveRight();
|
|
6661
6807
|
break;
|
|
6662
6808
|
}
|
|
6663
|
-
|
|
6809
|
+
const bounds = {};
|
|
6810
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6811
|
+
if (top <= bottom) {
|
|
6812
|
+
bounds.top = top;
|
|
6813
|
+
}
|
|
6814
|
+
else {
|
|
6815
|
+
bounds.bottom = bottom;
|
|
6816
|
+
}
|
|
6817
|
+
// Anchor to left or to right depending on which one is closer
|
|
6818
|
+
if (left <= right) {
|
|
6819
|
+
bounds.left = left;
|
|
6820
|
+
}
|
|
6821
|
+
else {
|
|
6822
|
+
bounds.right = right;
|
|
6823
|
+
}
|
|
6824
|
+
bounds.height = height;
|
|
6825
|
+
bounds.width = width;
|
|
6826
|
+
this.setBounds(bounds);
|
|
6664
6827
|
}), {
|
|
6665
6828
|
dispose: () => {
|
|
6666
6829
|
for (const iframe of iframes) {
|
|
@@ -6683,7 +6846,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6683
6846
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6684
6847
|
return height - this.options.minimumInViewportHeight;
|
|
6685
6848
|
}
|
|
6686
|
-
return
|
|
6849
|
+
return 0;
|
|
6687
6850
|
}
|
|
6688
6851
|
dispose() {
|
|
6689
6852
|
this._element.remove();
|
|
@@ -6706,7 +6869,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6706
6869
|
}
|
|
6707
6870
|
|
|
6708
6871
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6709
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6872
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6710
6873
|
|
|
6711
6874
|
function createFocusableElement() {
|
|
6712
6875
|
const element = document.createElement('div');
|
|
@@ -7061,6 +7224,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7061
7224
|
get api() {
|
|
7062
7225
|
return this._api;
|
|
7063
7226
|
}
|
|
7227
|
+
get gap() {
|
|
7228
|
+
return this.gridview.margin;
|
|
7229
|
+
}
|
|
7064
7230
|
constructor(options) {
|
|
7065
7231
|
var _a;
|
|
7066
7232
|
super({
|
|
@@ -7072,6 +7238,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7072
7238
|
parentElement: options.parentElement,
|
|
7073
7239
|
disableAutoResizing: options.disableAutoResizing,
|
|
7074
7240
|
locked: options.locked,
|
|
7241
|
+
margin: options.gap,
|
|
7075
7242
|
});
|
|
7076
7243
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7077
7244
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7097,9 +7264,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7097
7264
|
this._onDidActivePanelChange = new Emitter();
|
|
7098
7265
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7099
7266
|
this._onDidMovePanel = new Emitter();
|
|
7267
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7100
7268
|
this._floatingGroups = [];
|
|
7101
7269
|
this._popoutGroups = [];
|
|
7102
|
-
this._ignoreEvents = 0;
|
|
7103
7270
|
this._onDidRemoveGroup = new Emitter();
|
|
7104
7271
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7105
7272
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7113,7 +7280,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7113
7280
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7114
7281
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7115
7282
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7116
|
-
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.
|
|
7283
|
+
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(() => {
|
|
7284
|
+
this.updateWatermark();
|
|
7285
|
+
}), this.onDidAdd((event) => {
|
|
7117
7286
|
if (!this._moving) {
|
|
7118
7287
|
this._onDidAddGroup.fire(event);
|
|
7119
7288
|
}
|
|
@@ -7127,7 +7296,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7127
7296
|
}
|
|
7128
7297
|
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7129
7298
|
this.updateWatermark();
|
|
7130
|
-
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7299
|
+
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7131
7300
|
this._bufferOnDidLayoutChange.fire();
|
|
7132
7301
|
}), Disposable.from(() => {
|
|
7133
7302
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7227,7 +7396,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7227
7396
|
var _a, _b, _c;
|
|
7228
7397
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7229
7398
|
itemToPopout.group.size === 1) {
|
|
7230
|
-
return this.addPopoutGroup(itemToPopout.group);
|
|
7399
|
+
return this.addPopoutGroup(itemToPopout.group, options);
|
|
7231
7400
|
}
|
|
7232
7401
|
const theme = getDockviewTheme(this.gridview.element);
|
|
7233
7402
|
const element = this.element;
|
|
@@ -7378,8 +7547,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7378
7547
|
console.error('dockview: failed to create popout window', err);
|
|
7379
7548
|
});
|
|
7380
7549
|
}
|
|
7381
|
-
addFloatingGroup(item,
|
|
7382
|
-
var _a, _b, _c, _d, _e
|
|
7550
|
+
addFloatingGroup(item, options) {
|
|
7551
|
+
var _a, _b, _c, _d, _e;
|
|
7383
7552
|
let group;
|
|
7384
7553
|
if (item instanceof DockviewPanel) {
|
|
7385
7554
|
group = this.createGroup();
|
|
@@ -7424,26 +7593,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7424
7593
|
}
|
|
7425
7594
|
}
|
|
7426
7595
|
group.model.location = { type: 'floating' };
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7596
|
+
function getAnchoredBox() {
|
|
7597
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7598
|
+
const result = {};
|
|
7599
|
+
if ('left' in options.position) {
|
|
7600
|
+
result.left = Math.max(options.position.left, 0);
|
|
7601
|
+
}
|
|
7602
|
+
else if ('right' in options.position) {
|
|
7603
|
+
result.right = Math.max(options.position.right, 0);
|
|
7604
|
+
}
|
|
7605
|
+
else {
|
|
7606
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7607
|
+
}
|
|
7608
|
+
if ('top' in options.position) {
|
|
7609
|
+
result.top = Math.max(options.position.top, 0);
|
|
7610
|
+
}
|
|
7611
|
+
else if ('bottom' in options.position) {
|
|
7612
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7613
|
+
}
|
|
7614
|
+
else {
|
|
7615
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7616
|
+
}
|
|
7617
|
+
if (typeof options.width === 'number') {
|
|
7618
|
+
result.width = Math.max(options.width, 0);
|
|
7619
|
+
}
|
|
7620
|
+
else {
|
|
7621
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7622
|
+
}
|
|
7623
|
+
if (typeof options.height === 'number') {
|
|
7624
|
+
result.height = Math.max(options.height, 0);
|
|
7625
|
+
}
|
|
7626
|
+
else {
|
|
7627
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7628
|
+
}
|
|
7629
|
+
return result;
|
|
7630
|
+
}
|
|
7631
|
+
return {
|
|
7632
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7633
|
+
? Math.max(options.x, 0)
|
|
7634
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7635
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7636
|
+
? Math.max(options.y, 0)
|
|
7637
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7638
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7639
|
+
? Math.max(options.width, 0)
|
|
7640
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7641
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7642
|
+
? Math.max(options.height, 0)
|
|
7643
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7644
|
+
};
|
|
7645
|
+
}
|
|
7646
|
+
const anchoredBox = getAnchoredBox();
|
|
7647
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7441
7648
|
? undefined
|
|
7442
|
-
: (
|
|
7443
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7649
|
+
: (_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'
|
|
7444
7650
|
? undefined
|
|
7445
|
-
: (
|
|
7446
|
-
});
|
|
7651
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7447
7652
|
const el = group.element.querySelector('.void-container');
|
|
7448
7653
|
if (!el) {
|
|
7449
7654
|
throw new Error('failed to find drag handle');
|
|
@@ -7541,12 +7746,21 @@ class DockviewComponent extends BaseGrid {
|
|
|
7541
7746
|
group.overlay.minimumInViewportWidth =
|
|
7542
7747
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7543
7748
|
}
|
|
7544
|
-
group.overlay.setBounds(
|
|
7749
|
+
group.overlay.setBounds();
|
|
7545
7750
|
}
|
|
7546
7751
|
}
|
|
7547
7752
|
if (changed_rootOverlayOptions) {
|
|
7548
7753
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7549
7754
|
}
|
|
7755
|
+
if (
|
|
7756
|
+
// if explicitly set as `undefined`
|
|
7757
|
+
'gap' in options &&
|
|
7758
|
+
options.gap === undefined) {
|
|
7759
|
+
this.gridview.margin = 0;
|
|
7760
|
+
}
|
|
7761
|
+
if (typeof options.gap === 'number') {
|
|
7762
|
+
this.gridview.margin = options.gap;
|
|
7763
|
+
}
|
|
7550
7764
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7551
7765
|
}
|
|
7552
7766
|
layout(width, height, forceResize) {
|
|
@@ -7708,11 +7922,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7708
7922
|
const { data, position } = serializedFloatingGroup;
|
|
7709
7923
|
const group = createGroupFromSerializedState(data);
|
|
7710
7924
|
this.addFloatingGroup(group, {
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7925
|
+
position: position,
|
|
7926
|
+
skipRemoveGroup: true,
|
|
7927
|
+
inDragMode: false,
|
|
7928
|
+
});
|
|
7716
7929
|
}
|
|
7717
7930
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7718
7931
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7843,15 +8056,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
7843
8056
|
if (options.floating) {
|
|
7844
8057
|
const group = this.createGroup();
|
|
7845
8058
|
this._onDidAddGroup.fire(group);
|
|
7846
|
-
const
|
|
8059
|
+
const floatingGroupOptions = typeof options.floating === 'object' &&
|
|
7847
8060
|
options.floating !== null
|
|
7848
8061
|
? options.floating
|
|
7849
8062
|
: {};
|
|
7850
|
-
this.addFloatingGroup(group,
|
|
7851
|
-
inDragMode: false,
|
|
7852
|
-
skipRemoveGroup: true,
|
|
7853
|
-
skipActiveGroup: true,
|
|
7854
|
-
});
|
|
8063
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, floatingGroupOptions), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7855
8064
|
panel = this.createPanel(options, group);
|
|
7856
8065
|
group.model.openPanel(panel, {
|
|
7857
8066
|
skipSetActive: options.inactive,
|
|
@@ -7890,11 +8099,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7890
8099
|
options.floating !== null
|
|
7891
8100
|
? options.floating
|
|
7892
8101
|
: {};
|
|
7893
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7894
|
-
inDragMode: false,
|
|
7895
|
-
skipRemoveGroup: true,
|
|
7896
|
-
skipActiveGroup: true,
|
|
7897
|
-
});
|
|
8102
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7898
8103
|
panel = this.createPanel(options, group);
|
|
7899
8104
|
group.model.openPanel(panel, {
|
|
7900
8105
|
skipSetActive: options.inactive,
|
|
@@ -7949,6 +8154,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7949
8154
|
});
|
|
7950
8155
|
const watermarkContainer = document.createElement('div');
|
|
7951
8156
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8157
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7952
8158
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7953
8159
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7954
8160
|
}
|
|
@@ -8137,6 +8343,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8137
8343
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8138
8344
|
this._onDidMovePanel.fire({
|
|
8139
8345
|
panel: removedPanel,
|
|
8346
|
+
from: sourceGroup,
|
|
8140
8347
|
});
|
|
8141
8348
|
}
|
|
8142
8349
|
else {
|
|
@@ -8160,6 +8367,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8160
8367
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8161
8368
|
// which is equivalent to swapping two views in this case
|
|
8162
8369
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8370
|
+
this._onDidMovePanel.fire({
|
|
8371
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8372
|
+
from: sourceGroup,
|
|
8373
|
+
});
|
|
8163
8374
|
return;
|
|
8164
8375
|
}
|
|
8165
8376
|
}
|
|
@@ -8173,6 +8384,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8173
8384
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8174
8385
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8175
8386
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8387
|
+
this._onDidMovePanel.fire({
|
|
8388
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8389
|
+
from: sourceGroup,
|
|
8390
|
+
});
|
|
8176
8391
|
}
|
|
8177
8392
|
else {
|
|
8178
8393
|
/**
|
|
@@ -8192,6 +8407,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8192
8407
|
skipSetGroupActive: true,
|
|
8193
8408
|
}));
|
|
8194
8409
|
this.doSetGroupAndPanelActive(group);
|
|
8410
|
+
this._onDidMovePanel.fire({
|
|
8411
|
+
panel: removedPanel,
|
|
8412
|
+
from: sourceGroup,
|
|
8413
|
+
});
|
|
8195
8414
|
}
|
|
8196
8415
|
}
|
|
8197
8416
|
}
|
|
@@ -8216,9 +8435,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8216
8435
|
}
|
|
8217
8436
|
});
|
|
8218
8437
|
this.doSetGroupAndPanelActive(to);
|
|
8219
|
-
panels.forEach((panel) => {
|
|
8220
|
-
this._onDidMovePanel.fire({ panel });
|
|
8221
|
-
});
|
|
8222
8438
|
}
|
|
8223
8439
|
else {
|
|
8224
8440
|
switch (from.api.location.type) {
|
|
@@ -8244,10 +8460,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8244
8460
|
const referenceLocation = getGridLocation(to.element);
|
|
8245
8461
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8246
8462
|
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
8247
|
-
from.panels.forEach((panel) => {
|
|
8248
|
-
this._onDidMovePanel.fire({ panel });
|
|
8249
|
-
});
|
|
8250
8463
|
}
|
|
8464
|
+
from.panels.forEach((panel) => {
|
|
8465
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8466
|
+
});
|
|
8251
8467
|
}
|
|
8252
8468
|
doSetGroupActive(group) {
|
|
8253
8469
|
super.doSetGroupActive(group);
|