dockview-core 1.14.2 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +4 -5
- package/dist/cjs/api/component.api.js +12 -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 +20 -17
- package/dist/cjs/dockview/dockviewComponent.js +92 -45
- 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 +317 -110
- 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 +316 -109
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +317 -110
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +317 -110
- 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 +317 -110
- 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 +316 -109
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +4 -5
- package/dist/esm/api/component.api.js +8 -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 +20 -17
- package/dist/esm/dockview/dockviewComponent.js +93 -46
- 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.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -33,7 +33,7 @@ function styleInject(css, ref) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
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}";
|
|
36
|
+
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}";
|
|
37
37
|
styleInject(css_248z);
|
|
38
38
|
|
|
39
39
|
class TransferObject {
|
|
@@ -558,6 +558,9 @@ function isInDocument(element) {
|
|
|
558
558
|
}
|
|
559
559
|
return false;
|
|
560
560
|
}
|
|
561
|
+
function addTestId(element, id) {
|
|
562
|
+
element.setAttribute('data-testid', id);
|
|
563
|
+
}
|
|
561
564
|
|
|
562
565
|
function tail(arr) {
|
|
563
566
|
if (arr.length === 0) {
|
|
@@ -619,7 +622,11 @@ function remove(array, value) {
|
|
|
619
622
|
|
|
620
623
|
const clamp = (value, min, max) => {
|
|
621
624
|
if (min > max) {
|
|
622
|
-
|
|
625
|
+
/**
|
|
626
|
+
* caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle
|
|
627
|
+
* cases where `min` > `max` and in those cases return `min`.
|
|
628
|
+
*/
|
|
629
|
+
return min;
|
|
623
630
|
}
|
|
624
631
|
return Math.min(max, Math.max(value, min));
|
|
625
632
|
};
|
|
@@ -824,7 +831,14 @@ class Splitview {
|
|
|
824
831
|
this._disabled = value;
|
|
825
832
|
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
826
833
|
}
|
|
834
|
+
get margin() {
|
|
835
|
+
return this._margin;
|
|
836
|
+
}
|
|
837
|
+
set margin(value) {
|
|
838
|
+
this._margin = value;
|
|
839
|
+
}
|
|
827
840
|
constructor(container, options) {
|
|
841
|
+
var _a;
|
|
828
842
|
this.container = container;
|
|
829
843
|
this.viewItems = [];
|
|
830
844
|
this.sashes = [];
|
|
@@ -835,6 +849,7 @@ class Splitview {
|
|
|
835
849
|
this._startSnappingEnabled = true;
|
|
836
850
|
this._endSnappingEnabled = true;
|
|
837
851
|
this._disabled = false;
|
|
852
|
+
this._margin = 0;
|
|
838
853
|
this._onDidSashEnd = new Emitter();
|
|
839
854
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
840
855
|
this._onDidAddView = new Emitter();
|
|
@@ -923,6 +938,7 @@ class Splitview {
|
|
|
923
938
|
};
|
|
924
939
|
this._orientation = options.orientation;
|
|
925
940
|
this.element = this.createContainer();
|
|
941
|
+
this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
|
|
926
942
|
this.proportionalLayout =
|
|
927
943
|
options.proportionalLayout === undefined
|
|
928
944
|
? true
|
|
@@ -977,9 +993,7 @@ class Splitview {
|
|
|
977
993
|
if (index < 0 || index >= this.viewItems.length) {
|
|
978
994
|
throw new Error('Index out of bounds');
|
|
979
995
|
}
|
|
980
|
-
toggleClass(this.container, 'visible', visible);
|
|
981
996
|
const viewItem = this.viewItems[index];
|
|
982
|
-
toggleClass(this.container, 'visible', visible);
|
|
983
997
|
viewItem.setVisible(visible, viewItem.size);
|
|
984
998
|
this.distributeEmptySpace(index);
|
|
985
999
|
this.layoutViews();
|
|
@@ -1291,15 +1305,29 @@ class Splitview {
|
|
|
1291
1305
|
this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);
|
|
1292
1306
|
}
|
|
1293
1307
|
}
|
|
1308
|
+
/**
|
|
1309
|
+
* Margin explain:
|
|
1310
|
+
*
|
|
1311
|
+
* For `n` views in a splitview there will be `n-1` margins `m`.
|
|
1312
|
+
*
|
|
1313
|
+
* To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.
|
|
1314
|
+
*
|
|
1315
|
+
* For each view `i` the offet must be adjusted by `m * i/(n - 1)`.
|
|
1316
|
+
*/
|
|
1294
1317
|
layoutViews() {
|
|
1295
1318
|
this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
1296
|
-
let sum = 0;
|
|
1297
|
-
const x = [];
|
|
1298
1319
|
this.updateSashEnablement();
|
|
1320
|
+
if (this.viewItems.length === 0) {
|
|
1321
|
+
return;
|
|
1322
|
+
}
|
|
1323
|
+
const sashCount = this.viewItems.length - 1;
|
|
1324
|
+
const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
|
|
1325
|
+
let totalLeftOffset = 0;
|
|
1326
|
+
const viewLeftOffsets = [];
|
|
1299
1327
|
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
const offset = Math.min(Math.max(0,
|
|
1328
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1329
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1330
|
+
const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
|
|
1303
1331
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1304
1332
|
this.sashes[i].container.style.left = `${offset}px`;
|
|
1305
1333
|
this.sashes[i].container.style.top = `0px`;
|
|
@@ -1310,19 +1338,24 @@ class Splitview {
|
|
|
1310
1338
|
}
|
|
1311
1339
|
}
|
|
1312
1340
|
this.viewItems.forEach((view, i) => {
|
|
1341
|
+
const size = view.size - marginReducedSize;
|
|
1342
|
+
const offset = i === 0
|
|
1343
|
+
? 0
|
|
1344
|
+
: viewLeftOffsets[i - 1] +
|
|
1345
|
+
(i / sashCount) * marginReducedSize;
|
|
1313
1346
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1314
|
-
view.container.style.width = `${
|
|
1315
|
-
view.container.style.left =
|
|
1347
|
+
view.container.style.width = `${size}px`;
|
|
1348
|
+
view.container.style.left = `${offset}px`;
|
|
1316
1349
|
view.container.style.top = '';
|
|
1317
1350
|
view.container.style.height = '';
|
|
1318
1351
|
}
|
|
1319
1352
|
if (this._orientation === exports.Orientation.VERTICAL) {
|
|
1320
|
-
view.container.style.height = `${
|
|
1321
|
-
view.container.style.top =
|
|
1353
|
+
view.container.style.height = `${size}px`;
|
|
1354
|
+
view.container.style.top = `${offset}px`;
|
|
1322
1355
|
view.container.style.width = '';
|
|
1323
1356
|
view.container.style.left = '';
|
|
1324
1357
|
}
|
|
1325
|
-
view.view.layout(view.size, this._orthogonalSize);
|
|
1358
|
+
view.view.layout(view.size - marginReducedSize, this._orthogonalSize);
|
|
1326
1359
|
});
|
|
1327
1360
|
}
|
|
1328
1361
|
findFirstSnapIndex(indexes) {
|
|
@@ -1771,7 +1804,18 @@ class BranchNode extends CompositeDisposable {
|
|
|
1771
1804
|
set disabled(value) {
|
|
1772
1805
|
this.splitview.disabled = value;
|
|
1773
1806
|
}
|
|
1774
|
-
|
|
1807
|
+
get margin() {
|
|
1808
|
+
return this.splitview.margin;
|
|
1809
|
+
}
|
|
1810
|
+
set margin(value) {
|
|
1811
|
+
this.splitview.margin = value;
|
|
1812
|
+
this.children.forEach((child) => {
|
|
1813
|
+
if (child instanceof BranchNode) {
|
|
1814
|
+
child.margin = value;
|
|
1815
|
+
}
|
|
1816
|
+
});
|
|
1817
|
+
}
|
|
1818
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {
|
|
1775
1819
|
super();
|
|
1776
1820
|
this.orientation = orientation;
|
|
1777
1821
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1791,6 +1835,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1791
1835
|
orientation: this.orientation,
|
|
1792
1836
|
proportionalLayout,
|
|
1793
1837
|
styles,
|
|
1838
|
+
margin,
|
|
1794
1839
|
});
|
|
1795
1840
|
this.splitview.layout(this.size, this.orthogonalSize);
|
|
1796
1841
|
}
|
|
@@ -1814,6 +1859,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1814
1859
|
descriptor,
|
|
1815
1860
|
proportionalLayout,
|
|
1816
1861
|
styles,
|
|
1862
|
+
margin,
|
|
1817
1863
|
});
|
|
1818
1864
|
}
|
|
1819
1865
|
this.disabled = disabled;
|
|
@@ -1822,10 +1868,8 @@ class BranchNode extends CompositeDisposable {
|
|
|
1822
1868
|
}));
|
|
1823
1869
|
this.setupChildrenEvents();
|
|
1824
1870
|
}
|
|
1825
|
-
setVisible(
|
|
1826
|
-
|
|
1827
|
-
child.setVisible(visible);
|
|
1828
|
-
}
|
|
1871
|
+
setVisible(_visible) {
|
|
1872
|
+
// noop
|
|
1829
1873
|
}
|
|
1830
1874
|
isChildVisible(index) {
|
|
1831
1875
|
if (index < 0 || index >= this.children.length) {
|
|
@@ -1842,12 +1886,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1842
1886
|
}
|
|
1843
1887
|
const wereAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1844
1888
|
this.splitview.setViewVisible(index, visible);
|
|
1889
|
+
// }
|
|
1845
1890
|
const areAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1846
1891
|
// If all children are hidden then the parent should hide the entire splitview
|
|
1847
1892
|
// If the entire splitview is hidden then the parent should show the splitview when a child is shown
|
|
1848
1893
|
if ((visible && wereAllChildrenHidden) ||
|
|
1849
1894
|
(!visible && areAllChildrenHidden)) {
|
|
1850
|
-
this._onDidVisibilityChange.fire(visible);
|
|
1895
|
+
this._onDidVisibilityChange.fire({ visible });
|
|
1851
1896
|
}
|
|
1852
1897
|
}
|
|
1853
1898
|
moveChild(from, to) {
|
|
@@ -1920,7 +1965,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1920
1965
|
this._onDidChange.fire({ size: e.orthogonalSize });
|
|
1921
1966
|
}), ...this.children.map((c, i) => {
|
|
1922
1967
|
if (c instanceof BranchNode) {
|
|
1923
|
-
return c.onDidVisibilityChange((visible) => {
|
|
1968
|
+
return c.onDidVisibilityChange(({ visible }) => {
|
|
1924
1969
|
this.setChildVisible(i, visible);
|
|
1925
1970
|
});
|
|
1926
1971
|
}
|
|
@@ -1950,7 +1995,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1950
1995
|
}
|
|
1951
1996
|
function flipNode(node, size, orthogonalSize) {
|
|
1952
1997
|
if (node instanceof BranchNode) {
|
|
1953
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1998
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);
|
|
1954
1999
|
let totalSize = 0;
|
|
1955
2000
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1956
2001
|
const child = node.children[i];
|
|
@@ -2105,6 +2150,13 @@ class Gridview {
|
|
|
2105
2150
|
}
|
|
2106
2151
|
}
|
|
2107
2152
|
}
|
|
2153
|
+
get margin() {
|
|
2154
|
+
return this._margin;
|
|
2155
|
+
}
|
|
2156
|
+
set margin(value) {
|
|
2157
|
+
this._margin = value;
|
|
2158
|
+
this.root.margin = value;
|
|
2159
|
+
}
|
|
2108
2160
|
maximizedView() {
|
|
2109
2161
|
var _a;
|
|
2110
2162
|
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
@@ -2190,13 +2242,14 @@ class Gridview {
|
|
|
2190
2242
|
this.disposable.dispose();
|
|
2191
2243
|
this._onDidChange.dispose();
|
|
2192
2244
|
this._onDidMaximizedNodeChange.dispose();
|
|
2245
|
+
this._onDidViewVisibilityChange.dispose();
|
|
2193
2246
|
this.root.dispose();
|
|
2194
2247
|
this._maximizedNode = undefined;
|
|
2195
2248
|
this.element.remove();
|
|
2196
2249
|
}
|
|
2197
2250
|
clear() {
|
|
2198
2251
|
const orientation = this.root.orientation;
|
|
2199
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.
|
|
2252
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);
|
|
2200
2253
|
}
|
|
2201
2254
|
deserialize(json, deserializer) {
|
|
2202
2255
|
const orientation = json.orientation;
|
|
@@ -2207,6 +2260,7 @@ class Gridview {
|
|
|
2207
2260
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
2208
2261
|
}
|
|
2209
2262
|
_deserializeNode(node, orientation, deserializer, orthogonalSize) {
|
|
2263
|
+
var _a;
|
|
2210
2264
|
let result;
|
|
2211
2265
|
if (node.type === 'branch') {
|
|
2212
2266
|
const serializedChildren = node.data;
|
|
@@ -2218,10 +2272,14 @@ class Gridview {
|
|
|
2218
2272
|
});
|
|
2219
2273
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2220
2274
|
orthogonalSize, // <- size - flips at each depth,
|
|
2221
|
-
this.
|
|
2275
|
+
this.locked, this.margin, children);
|
|
2222
2276
|
}
|
|
2223
2277
|
else {
|
|
2224
|
-
|
|
2278
|
+
const view = deserializer.fromJSON(node);
|
|
2279
|
+
if (typeof node.visible === 'boolean') {
|
|
2280
|
+
(_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);
|
|
2281
|
+
}
|
|
2282
|
+
result = new LeafNode(view, orientation, orthogonalSize, node.size);
|
|
2225
2283
|
}
|
|
2226
2284
|
return result;
|
|
2227
2285
|
}
|
|
@@ -2251,7 +2309,7 @@ class Gridview {
|
|
|
2251
2309
|
}
|
|
2252
2310
|
const oldRoot = this.root;
|
|
2253
2311
|
oldRoot.element.remove();
|
|
2254
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.
|
|
2312
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);
|
|
2255
2313
|
if (oldRoot.children.length === 0) ;
|
|
2256
2314
|
else if (oldRoot.children.length === 1) {
|
|
2257
2315
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2316,19 +2374,24 @@ class Gridview {
|
|
|
2316
2374
|
}
|
|
2317
2375
|
return findLeaf(this.root, reverse);
|
|
2318
2376
|
}
|
|
2319
|
-
constructor(proportionalLayout, styles, orientation) {
|
|
2377
|
+
constructor(proportionalLayout, styles, orientation, locked, margin) {
|
|
2320
2378
|
this.proportionalLayout = proportionalLayout;
|
|
2321
2379
|
this.styles = styles;
|
|
2322
2380
|
this._locked = false;
|
|
2381
|
+
this._margin = 0;
|
|
2323
2382
|
this._maximizedNode = undefined;
|
|
2324
2383
|
this.disposable = new MutableDisposable();
|
|
2325
2384
|
this._onDidChange = new Emitter();
|
|
2326
2385
|
this.onDidChange = this._onDidChange.event;
|
|
2386
|
+
this._onDidViewVisibilityChange = new Emitter();
|
|
2387
|
+
this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;
|
|
2327
2388
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2328
2389
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2329
2390
|
this.element = document.createElement('div');
|
|
2330
2391
|
this.element.className = 'grid-view';
|
|
2331
|
-
this.
|
|
2392
|
+
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2393
|
+
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2394
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
2332
2395
|
}
|
|
2333
2396
|
isViewVisible(location) {
|
|
2334
2397
|
const [rest, index] = tail(location);
|
|
@@ -2347,6 +2410,7 @@ class Gridview {
|
|
|
2347
2410
|
if (!(parent instanceof BranchNode)) {
|
|
2348
2411
|
throw new Error('Invalid from location');
|
|
2349
2412
|
}
|
|
2413
|
+
this._onDidViewVisibilityChange.fire();
|
|
2350
2414
|
parent.setChildVisible(index, visible);
|
|
2351
2415
|
}
|
|
2352
2416
|
moveView(parentLocation, from, to) {
|
|
@@ -2379,7 +2443,7 @@ class Gridview {
|
|
|
2379
2443
|
}
|
|
2380
2444
|
const child = grandParent.removeChild(parentIndex);
|
|
2381
2445
|
child.dispose();
|
|
2382
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.
|
|
2446
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);
|
|
2383
2447
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2384
2448
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2385
2449
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2618,14 +2682,18 @@ class BaseGrid extends Resizable {
|
|
|
2618
2682
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2619
2683
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2620
2684
|
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2685
|
+
this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
|
|
2686
|
+
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2621
2687
|
this.element.style.height = '100%';
|
|
2622
2688
|
this.element.style.width = '100%';
|
|
2623
2689
|
options.parentElement.appendChild(this.element);
|
|
2624
|
-
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
2690
|
+
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2625
2691
|
this.gridview.locked = !!options.locked;
|
|
2626
2692
|
this.element.appendChild(this.gridview.element);
|
|
2627
2693
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2628
|
-
this.addDisposables(
|
|
2694
|
+
this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2695
|
+
this.layout(this.width, this.height, true);
|
|
2696
|
+
}), exports.DockviewDisposable.from(() => {
|
|
2629
2697
|
var _a;
|
|
2630
2698
|
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
2631
2699
|
}), this.gridview.onDidChange(() => {
|
|
@@ -3239,6 +3307,9 @@ class DockviewApi {
|
|
|
3239
3307
|
get onDidRemovePanel() {
|
|
3240
3308
|
return this.component.onDidRemovePanel;
|
|
3241
3309
|
}
|
|
3310
|
+
get onDidMovePanel() {
|
|
3311
|
+
return this.component.onDidMovePanel;
|
|
3312
|
+
}
|
|
3242
3313
|
/**
|
|
3243
3314
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3244
3315
|
*/
|
|
@@ -3379,8 +3450,8 @@ class DockviewApi {
|
|
|
3379
3450
|
/**
|
|
3380
3451
|
* Add a floating group
|
|
3381
3452
|
*/
|
|
3382
|
-
addFloatingGroup(item,
|
|
3383
|
-
return this.component.addFloatingGroup(item,
|
|
3453
|
+
addFloatingGroup(item, options) {
|
|
3454
|
+
return this.component.addFloatingGroup(item, options);
|
|
3384
3455
|
}
|
|
3385
3456
|
/**
|
|
3386
3457
|
* Create a component from a serialized object.
|
|
@@ -3430,6 +3501,9 @@ class DockviewApi {
|
|
|
3430
3501
|
addPopoutGroup(item, options) {
|
|
3431
3502
|
return this.component.addPopoutGroup(item, options);
|
|
3432
3503
|
}
|
|
3504
|
+
setGap(gap) {
|
|
3505
|
+
this.component.updateOptions({ gap });
|
|
3506
|
+
}
|
|
3433
3507
|
}
|
|
3434
3508
|
|
|
3435
3509
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4799,7 +4873,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4799
4873
|
this.accessor.addFloatingGroup(this.group, {
|
|
4800
4874
|
x: left - rootLeft + 20,
|
|
4801
4875
|
y: top - rootTop + 20,
|
|
4802
|
-
|
|
4876
|
+
inDragMode: true,
|
|
4877
|
+
});
|
|
4803
4878
|
}
|
|
4804
4879
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4805
4880
|
if (event.defaultPrevented) {
|
|
@@ -4868,7 +4943,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4868
4943
|
this.accessor.addFloatingGroup(panel, {
|
|
4869
4944
|
x: left - rootLeft,
|
|
4870
4945
|
y: top - rootTop,
|
|
4871
|
-
|
|
4946
|
+
inDragMode: true,
|
|
4947
|
+
});
|
|
4872
4948
|
return;
|
|
4873
4949
|
}
|
|
4874
4950
|
const isLeftClick = event.button === 0;
|
|
@@ -4941,6 +5017,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4941
5017
|
rootOverlayModel: undefined,
|
|
4942
5018
|
locked: undefined,
|
|
4943
5019
|
disableDnd: undefined,
|
|
5020
|
+
gap: undefined,
|
|
4944
5021
|
};
|
|
4945
5022
|
return Object.keys(properties);
|
|
4946
5023
|
})();
|
|
@@ -5671,6 +5748,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5671
5748
|
get isActive() {
|
|
5672
5749
|
return this.api.isActive;
|
|
5673
5750
|
}
|
|
5751
|
+
get isVisible() {
|
|
5752
|
+
return this.api.isVisible;
|
|
5753
|
+
}
|
|
5674
5754
|
constructor(id, component, options, api) {
|
|
5675
5755
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5676
5756
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6433,12 +6513,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6433
6513
|
this._element.appendChild(this.options.content);
|
|
6434
6514
|
this.options.container.appendChild(this._element);
|
|
6435
6515
|
// if input bad resize within acceptable boundaries
|
|
6436
|
-
this.setBounds({
|
|
6437
|
-
height: this.options.height,
|
|
6438
|
-
width: this.options.width,
|
|
6439
|
-
top: this.options.top,
|
|
6440
|
-
left: this.options.left,
|
|
6441
|
-
});
|
|
6516
|
+
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 })));
|
|
6442
6517
|
}
|
|
6443
6518
|
setBounds(bounds = {}) {
|
|
6444
6519
|
if (typeof bounds.height === 'number') {
|
|
@@ -6447,11 +6522,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6447
6522
|
if (typeof bounds.width === 'number') {
|
|
6448
6523
|
this._element.style.width = `${bounds.width}px`;
|
|
6449
6524
|
}
|
|
6450
|
-
if (typeof bounds.top === 'number') {
|
|
6525
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6451
6526
|
this._element.style.top = `${bounds.top}px`;
|
|
6527
|
+
this._element.style.bottom = 'auto';
|
|
6528
|
+
this.verticalAlignment = 'top';
|
|
6529
|
+
}
|
|
6530
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6531
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6532
|
+
this._element.style.top = 'auto';
|
|
6533
|
+
this.verticalAlignment = 'bottom';
|
|
6452
6534
|
}
|
|
6453
|
-
if (typeof bounds.left === 'number') {
|
|
6535
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6454
6536
|
this._element.style.left = `${bounds.left}px`;
|
|
6537
|
+
this._element.style.right = 'auto';
|
|
6538
|
+
this.horiziontalAlignment = 'left';
|
|
6539
|
+
}
|
|
6540
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6541
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6542
|
+
this._element.style.left = 'auto';
|
|
6543
|
+
this.horiziontalAlignment = 'right';
|
|
6455
6544
|
}
|
|
6456
6545
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6457
6546
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6459,24 +6548,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6459
6548
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6460
6549
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6461
6550
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6462
|
-
const yOffset =
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
this.
|
|
6551
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6552
|
+
if (this.verticalAlignment === 'top') {
|
|
6553
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6554
|
+
this._element.style.top = `${top}px`;
|
|
6555
|
+
this._element.style.bottom = 'auto';
|
|
6556
|
+
}
|
|
6557
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6558
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6559
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6560
|
+
this._element.style.top = 'auto';
|
|
6561
|
+
}
|
|
6562
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6563
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6564
|
+
this._element.style.left = `${left}px`;
|
|
6565
|
+
this._element.style.right = 'auto';
|
|
6566
|
+
}
|
|
6567
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6568
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6569
|
+
this._element.style.right = `${right}px`;
|
|
6570
|
+
this._element.style.left = 'auto';
|
|
6571
|
+
}
|
|
6469
6572
|
this._onDidChange.fire();
|
|
6470
6573
|
}
|
|
6471
6574
|
toJSON() {
|
|
6472
6575
|
const container = this.options.container.getBoundingClientRect();
|
|
6473
6576
|
const element = this._element.getBoundingClientRect();
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6577
|
+
const result = {};
|
|
6578
|
+
if (this.verticalAlignment === 'top') {
|
|
6579
|
+
result.top = parseFloat(this._element.style.top);
|
|
6580
|
+
}
|
|
6581
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6582
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6583
|
+
}
|
|
6584
|
+
else {
|
|
6585
|
+
result.top = element.top - container.top;
|
|
6586
|
+
}
|
|
6587
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6588
|
+
result.left = parseFloat(this._element.style.left);
|
|
6589
|
+
}
|
|
6590
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6591
|
+
result.right = parseFloat(this._element.style.right);
|
|
6592
|
+
}
|
|
6593
|
+
else {
|
|
6594
|
+
result.left = element.left - container.left;
|
|
6595
|
+
}
|
|
6596
|
+
result.width = element.width;
|
|
6597
|
+
result.height = element.height;
|
|
6598
|
+
return result;
|
|
6480
6599
|
}
|
|
6481
6600
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6482
6601
|
const move = new MutableDisposable();
|
|
@@ -6508,12 +6627,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6508
6627
|
};
|
|
6509
6628
|
}
|
|
6510
6629
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6511
|
-
const yOffset = Math.max(0, this.
|
|
6512
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6513
|
-
: 0);
|
|
6514
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6630
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6515
6631
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6516
|
-
|
|
6632
|
+
const bottom = clamp(offset.y -
|
|
6633
|
+
y +
|
|
6634
|
+
containerRect.height -
|
|
6635
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6636
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6637
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6638
|
+
const bounds = {};
|
|
6639
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6640
|
+
if (top <= bottom) {
|
|
6641
|
+
bounds.top = top;
|
|
6642
|
+
}
|
|
6643
|
+
else {
|
|
6644
|
+
bounds.bottom = bottom;
|
|
6645
|
+
}
|
|
6646
|
+
// Anchor to left or to right depending on which one is closer
|
|
6647
|
+
if (left <= right) {
|
|
6648
|
+
bounds.left = left;
|
|
6649
|
+
}
|
|
6650
|
+
else {
|
|
6651
|
+
bounds.right = right;
|
|
6652
|
+
}
|
|
6653
|
+
this.setBounds(bounds);
|
|
6517
6654
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6518
6655
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6519
6656
|
move.dispose();
|
|
@@ -6581,8 +6718,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6581
6718
|
};
|
|
6582
6719
|
}
|
|
6583
6720
|
let top = undefined;
|
|
6721
|
+
let bottom = undefined;
|
|
6584
6722
|
let height = undefined;
|
|
6585
6723
|
let left = undefined;
|
|
6724
|
+
let right = undefined;
|
|
6586
6725
|
let width = undefined;
|
|
6587
6726
|
const moveTop = () => {
|
|
6588
6727
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6596,6 +6735,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6596
6735
|
startPosition.originalY +
|
|
6597
6736
|
startPosition.originalHeight -
|
|
6598
6737
|
top;
|
|
6738
|
+
bottom = containerRect.height - top - height;
|
|
6599
6739
|
};
|
|
6600
6740
|
const moveBottom = () => {
|
|
6601
6741
|
top =
|
|
@@ -6607,6 +6747,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6607
6747
|
? -top +
|
|
6608
6748
|
this.options.minimumInViewportHeight
|
|
6609
6749
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6750
|
+
bottom = containerRect.height - top - height;
|
|
6610
6751
|
};
|
|
6611
6752
|
const moveLeft = () => {
|
|
6612
6753
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6620,6 +6761,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6620
6761
|
startPosition.originalX +
|
|
6621
6762
|
startPosition.originalWidth -
|
|
6622
6763
|
left;
|
|
6764
|
+
right = containerRect.width - left - width;
|
|
6623
6765
|
};
|
|
6624
6766
|
const moveRight = () => {
|
|
6625
6767
|
left =
|
|
@@ -6631,6 +6773,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6631
6773
|
? -left +
|
|
6632
6774
|
this.options.minimumInViewportWidth
|
|
6633
6775
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6776
|
+
right = containerRect.width - left - width;
|
|
6634
6777
|
};
|
|
6635
6778
|
switch (direction) {
|
|
6636
6779
|
case 'top':
|
|
@@ -6662,7 +6805,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6662
6805
|
moveRight();
|
|
6663
6806
|
break;
|
|
6664
6807
|
}
|
|
6665
|
-
|
|
6808
|
+
const bounds = {};
|
|
6809
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6810
|
+
if (top <= bottom) {
|
|
6811
|
+
bounds.top = top;
|
|
6812
|
+
}
|
|
6813
|
+
else {
|
|
6814
|
+
bounds.bottom = bottom;
|
|
6815
|
+
}
|
|
6816
|
+
// Anchor to left or to right depending on which one is closer
|
|
6817
|
+
if (left <= right) {
|
|
6818
|
+
bounds.left = left;
|
|
6819
|
+
}
|
|
6820
|
+
else {
|
|
6821
|
+
bounds.right = right;
|
|
6822
|
+
}
|
|
6823
|
+
bounds.height = height;
|
|
6824
|
+
bounds.width = width;
|
|
6825
|
+
this.setBounds(bounds);
|
|
6666
6826
|
}), {
|
|
6667
6827
|
dispose: () => {
|
|
6668
6828
|
for (const iframe of iframes) {
|
|
@@ -6685,7 +6845,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6685
6845
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6686
6846
|
return height - this.options.minimumInViewportHeight;
|
|
6687
6847
|
}
|
|
6688
|
-
return
|
|
6848
|
+
return 0;
|
|
6689
6849
|
}
|
|
6690
6850
|
dispose() {
|
|
6691
6851
|
this._element.remove();
|
|
@@ -6708,7 +6868,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6708
6868
|
}
|
|
6709
6869
|
|
|
6710
6870
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6711
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6871
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6712
6872
|
|
|
6713
6873
|
function createFocusableElement() {
|
|
6714
6874
|
const element = document.createElement('div');
|
|
@@ -7074,6 +7234,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7074
7234
|
parentElement: options.parentElement,
|
|
7075
7235
|
disableAutoResizing: options.disableAutoResizing,
|
|
7076
7236
|
locked: options.locked,
|
|
7237
|
+
margin: options.gap,
|
|
7077
7238
|
});
|
|
7078
7239
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7079
7240
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7099,9 +7260,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7099
7260
|
this._onDidActivePanelChange = new Emitter();
|
|
7100
7261
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7101
7262
|
this._onDidMovePanel = new Emitter();
|
|
7263
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7102
7264
|
this._floatingGroups = [];
|
|
7103
7265
|
this._popoutGroups = [];
|
|
7104
|
-
this._ignoreEvents = 0;
|
|
7105
7266
|
this._onDidRemoveGroup = new Emitter();
|
|
7106
7267
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7107
7268
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7115,7 +7276,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7115
7276
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7116
7277
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7117
7278
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7118
|
-
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.
|
|
7279
|
+
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(() => {
|
|
7280
|
+
this.updateWatermark();
|
|
7281
|
+
}), this.onDidAdd((event) => {
|
|
7119
7282
|
if (!this._moving) {
|
|
7120
7283
|
this._onDidAddGroup.fire(event);
|
|
7121
7284
|
}
|
|
@@ -7129,7 +7292,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7129
7292
|
}
|
|
7130
7293
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7131
7294
|
this.updateWatermark();
|
|
7132
|
-
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7295
|
+
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7133
7296
|
this._bufferOnDidLayoutChange.fire();
|
|
7134
7297
|
}), exports.DockviewDisposable.from(() => {
|
|
7135
7298
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7380,8 +7543,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7380
7543
|
console.error('dockview: failed to create popout window', err);
|
|
7381
7544
|
});
|
|
7382
7545
|
}
|
|
7383
|
-
addFloatingGroup(item,
|
|
7384
|
-
var _a, _b, _c, _d, _e
|
|
7546
|
+
addFloatingGroup(item, options) {
|
|
7547
|
+
var _a, _b, _c, _d, _e;
|
|
7385
7548
|
let group;
|
|
7386
7549
|
if (item instanceof DockviewPanel) {
|
|
7387
7550
|
group = this.createGroup();
|
|
@@ -7426,26 +7589,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7426
7589
|
}
|
|
7427
7590
|
}
|
|
7428
7591
|
group.model.location = { type: 'floating' };
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7592
|
+
function getAnchoredBox() {
|
|
7593
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7594
|
+
const result = {};
|
|
7595
|
+
if ('left' in options.position) {
|
|
7596
|
+
result.left = Math.max(options.position.left, 0);
|
|
7597
|
+
}
|
|
7598
|
+
else if ('right' in options.position) {
|
|
7599
|
+
result.right = Math.max(options.position.right, 0);
|
|
7600
|
+
}
|
|
7601
|
+
else {
|
|
7602
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7603
|
+
}
|
|
7604
|
+
if ('top' in options.position) {
|
|
7605
|
+
result.top = Math.max(options.position.top, 0);
|
|
7606
|
+
}
|
|
7607
|
+
else if ('bottom' in options.position) {
|
|
7608
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7609
|
+
}
|
|
7610
|
+
else {
|
|
7611
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7612
|
+
}
|
|
7613
|
+
if ('width' in options.position) {
|
|
7614
|
+
result.width = Math.max(options.position.width, 0);
|
|
7615
|
+
}
|
|
7616
|
+
else {
|
|
7617
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7618
|
+
}
|
|
7619
|
+
if ('height' in options.position) {
|
|
7620
|
+
result.height = Math.max(options.position.height, 0);
|
|
7621
|
+
}
|
|
7622
|
+
else {
|
|
7623
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7624
|
+
}
|
|
7625
|
+
return result;
|
|
7626
|
+
}
|
|
7627
|
+
return {
|
|
7628
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7629
|
+
? Math.max(options.x, 0)
|
|
7630
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7631
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7632
|
+
? Math.max(options.y, 0)
|
|
7633
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7634
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7635
|
+
? Math.max(options.width, 0)
|
|
7636
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7637
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7638
|
+
? Math.max(options.height, 0)
|
|
7639
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7640
|
+
};
|
|
7641
|
+
}
|
|
7642
|
+
const anchoredBox = getAnchoredBox();
|
|
7643
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7443
7644
|
? undefined
|
|
7444
|
-
: (
|
|
7445
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7645
|
+
: (_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'
|
|
7446
7646
|
? undefined
|
|
7447
|
-
: (
|
|
7448
|
-
});
|
|
7647
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7449
7648
|
const el = group.element.querySelector('.void-container');
|
|
7450
7649
|
if (!el) {
|
|
7451
7650
|
throw new Error('failed to find drag handle');
|
|
@@ -7543,12 +7742,18 @@ class DockviewComponent extends BaseGrid {
|
|
|
7543
7742
|
group.overlay.minimumInViewportWidth =
|
|
7544
7743
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7545
7744
|
}
|
|
7546
|
-
group.overlay.setBounds(
|
|
7745
|
+
group.overlay.setBounds();
|
|
7547
7746
|
}
|
|
7548
7747
|
}
|
|
7549
7748
|
if (changed_rootOverlayOptions) {
|
|
7550
7749
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7551
7750
|
}
|
|
7751
|
+
if (this.gridview.margin !== 0 && options.gap === undefined) {
|
|
7752
|
+
this.gridview.margin = 0;
|
|
7753
|
+
}
|
|
7754
|
+
if (typeof options.gap === 'number') {
|
|
7755
|
+
this.gridview.margin = options.gap;
|
|
7756
|
+
}
|
|
7552
7757
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7553
7758
|
}
|
|
7554
7759
|
layout(width, height, forceResize) {
|
|
@@ -7710,11 +7915,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7710
7915
|
const { data, position } = serializedFloatingGroup;
|
|
7711
7916
|
const group = createGroupFromSerializedState(data);
|
|
7712
7917
|
this.addFloatingGroup(group, {
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7918
|
+
position: position,
|
|
7919
|
+
skipRemoveGroup: true,
|
|
7920
|
+
inDragMode: false,
|
|
7921
|
+
});
|
|
7718
7922
|
}
|
|
7719
7923
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7720
7924
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7849,11 +8053,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7849
8053
|
options.floating !== null
|
|
7850
8054
|
? options.floating
|
|
7851
8055
|
: {};
|
|
7852
|
-
this.addFloatingGroup(group, o, {
|
|
7853
|
-
inDragMode: false,
|
|
7854
|
-
skipRemoveGroup: true,
|
|
7855
|
-
skipActiveGroup: true,
|
|
7856
|
-
});
|
|
8056
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, o), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7857
8057
|
panel = this.createPanel(options, group);
|
|
7858
8058
|
group.model.openPanel(panel, {
|
|
7859
8059
|
skipSetActive: options.inactive,
|
|
@@ -7892,11 +8092,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7892
8092
|
options.floating !== null
|
|
7893
8093
|
? options.floating
|
|
7894
8094
|
: {};
|
|
7895
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7896
|
-
inDragMode: false,
|
|
7897
|
-
skipRemoveGroup: true,
|
|
7898
|
-
skipActiveGroup: true,
|
|
7899
|
-
});
|
|
8095
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7900
8096
|
panel = this.createPanel(options, group);
|
|
7901
8097
|
group.model.openPanel(panel, {
|
|
7902
8098
|
skipSetActive: options.inactive,
|
|
@@ -7951,6 +8147,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7951
8147
|
});
|
|
7952
8148
|
const watermarkContainer = document.createElement('div');
|
|
7953
8149
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8150
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7954
8151
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7955
8152
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7956
8153
|
}
|
|
@@ -8139,6 +8336,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8139
8336
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8140
8337
|
this._onDidMovePanel.fire({
|
|
8141
8338
|
panel: removedPanel,
|
|
8339
|
+
from: sourceGroup,
|
|
8142
8340
|
});
|
|
8143
8341
|
}
|
|
8144
8342
|
else {
|
|
@@ -8162,6 +8360,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8162
8360
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8163
8361
|
// which is equivalent to swapping two views in this case
|
|
8164
8362
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8363
|
+
this._onDidMovePanel.fire({
|
|
8364
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8365
|
+
from: sourceGroup,
|
|
8366
|
+
});
|
|
8165
8367
|
return;
|
|
8166
8368
|
}
|
|
8167
8369
|
}
|
|
@@ -8175,6 +8377,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8175
8377
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8176
8378
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8177
8379
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8380
|
+
this._onDidMovePanel.fire({
|
|
8381
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8382
|
+
from: sourceGroup,
|
|
8383
|
+
});
|
|
8178
8384
|
}
|
|
8179
8385
|
else {
|
|
8180
8386
|
/**
|
|
@@ -8194,6 +8400,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8194
8400
|
skipSetGroupActive: true,
|
|
8195
8401
|
}));
|
|
8196
8402
|
this.doSetGroupAndPanelActive(group);
|
|
8403
|
+
this._onDidMovePanel.fire({
|
|
8404
|
+
panel: removedPanel,
|
|
8405
|
+
from: sourceGroup,
|
|
8406
|
+
});
|
|
8197
8407
|
}
|
|
8198
8408
|
}
|
|
8199
8409
|
}
|
|
@@ -8218,9 +8428,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8218
8428
|
}
|
|
8219
8429
|
});
|
|
8220
8430
|
this.doSetGroupAndPanelActive(to);
|
|
8221
|
-
panels.forEach((panel) => {
|
|
8222
|
-
this._onDidMovePanel.fire({ panel });
|
|
8223
|
-
});
|
|
8224
8431
|
}
|
|
8225
8432
|
else {
|
|
8226
8433
|
switch (from.api.location.type) {
|
|
@@ -8246,10 +8453,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8246
8453
|
const referenceLocation = getGridLocation(to.element);
|
|
8247
8454
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8248
8455
|
this.gridview.addView(from, exports.Sizing.Distribute, dropLocation);
|
|
8249
|
-
from.panels.forEach((panel) => {
|
|
8250
|
-
this._onDidMovePanel.fire({ panel });
|
|
8251
|
-
});
|
|
8252
8456
|
}
|
|
8457
|
+
from.panels.forEach((panel) => {
|
|
8458
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8459
|
+
});
|
|
8253
8460
|
}
|
|
8254
8461
|
doSetGroupActive(group) {
|
|
8255
8462
|
super.doSetGroupActive(group);
|