dockview-react 1.14.2 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dockview-react.amd.js +328 -112
- package/dist/dockview-react.amd.js.map +1 -1
- package/dist/dockview-react.amd.min.js +2 -2
- package/dist/dockview-react.amd.min.js.map +1 -1
- package/dist/dockview-react.amd.min.noStyle.js +2 -2
- package/dist/dockview-react.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-react.amd.noStyle.js +327 -111
- package/dist/dockview-react.amd.noStyle.js.map +1 -1
- package/dist/dockview-react.cjs.js +328 -112
- package/dist/dockview-react.cjs.js.map +1 -1
- package/dist/dockview-react.esm.js +328 -112
- package/dist/dockview-react.esm.js.map +1 -1
- package/dist/dockview-react.esm.min.js +2 -2
- package/dist/dockview-react.esm.min.js.map +1 -1
- package/dist/dockview-react.js +328 -112
- package/dist/dockview-react.js.map +1 -1
- package/dist/dockview-react.min.js +2 -2
- package/dist/dockview-react.min.js.map +1 -1
- package/dist/dockview-react.min.noStyle.js +2 -2
- package/dist/dockview-react.min.noStyle.js.map +1 -1
- package/dist/dockview-react.noStyle.js +327 -111
- package/dist/dockview-react.noStyle.js.map +1 -1
- package/dist/styles/dockview.css +0 -13
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-react
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.15.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -36,7 +36,7 @@ function styleInject(css, ref) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
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}";
|
|
39
|
+
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}";
|
|
40
40
|
styleInject(css_248z);
|
|
41
41
|
|
|
42
42
|
class TransferObject {
|
|
@@ -561,6 +561,9 @@ function isInDocument(element) {
|
|
|
561
561
|
}
|
|
562
562
|
return false;
|
|
563
563
|
}
|
|
564
|
+
function addTestId(element, id) {
|
|
565
|
+
element.setAttribute('data-testid', id);
|
|
566
|
+
}
|
|
564
567
|
|
|
565
568
|
function tail(arr) {
|
|
566
569
|
if (arr.length === 0) {
|
|
@@ -622,7 +625,11 @@ function remove(array, value) {
|
|
|
622
625
|
|
|
623
626
|
const clamp = (value, min, max) => {
|
|
624
627
|
if (min > max) {
|
|
625
|
-
|
|
628
|
+
/**
|
|
629
|
+
* caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle
|
|
630
|
+
* cases where `min` > `max` and in those cases return `min`.
|
|
631
|
+
*/
|
|
632
|
+
return min;
|
|
626
633
|
}
|
|
627
634
|
return Math.min(max, Math.max(value, min));
|
|
628
635
|
};
|
|
@@ -827,7 +834,14 @@ class Splitview {
|
|
|
827
834
|
this._disabled = value;
|
|
828
835
|
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
829
836
|
}
|
|
837
|
+
get margin() {
|
|
838
|
+
return this._margin;
|
|
839
|
+
}
|
|
840
|
+
set margin(value) {
|
|
841
|
+
this._margin = value;
|
|
842
|
+
}
|
|
830
843
|
constructor(container, options) {
|
|
844
|
+
var _a;
|
|
831
845
|
this.container = container;
|
|
832
846
|
this.viewItems = [];
|
|
833
847
|
this.sashes = [];
|
|
@@ -838,6 +852,7 @@ class Splitview {
|
|
|
838
852
|
this._startSnappingEnabled = true;
|
|
839
853
|
this._endSnappingEnabled = true;
|
|
840
854
|
this._disabled = false;
|
|
855
|
+
this._margin = 0;
|
|
841
856
|
this._onDidSashEnd = new Emitter();
|
|
842
857
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
843
858
|
this._onDidAddView = new Emitter();
|
|
@@ -926,6 +941,7 @@ class Splitview {
|
|
|
926
941
|
};
|
|
927
942
|
this._orientation = options.orientation;
|
|
928
943
|
this.element = this.createContainer();
|
|
944
|
+
this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
|
|
929
945
|
this.proportionalLayout =
|
|
930
946
|
options.proportionalLayout === undefined
|
|
931
947
|
? true
|
|
@@ -980,9 +996,7 @@ class Splitview {
|
|
|
980
996
|
if (index < 0 || index >= this.viewItems.length) {
|
|
981
997
|
throw new Error('Index out of bounds');
|
|
982
998
|
}
|
|
983
|
-
toggleClass(this.container, 'visible', visible);
|
|
984
999
|
const viewItem = this.viewItems[index];
|
|
985
|
-
toggleClass(this.container, 'visible', visible);
|
|
986
1000
|
viewItem.setVisible(visible, viewItem.size);
|
|
987
1001
|
this.distributeEmptySpace(index);
|
|
988
1002
|
this.layoutViews();
|
|
@@ -1294,15 +1308,29 @@ class Splitview {
|
|
|
1294
1308
|
this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);
|
|
1295
1309
|
}
|
|
1296
1310
|
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Margin explain:
|
|
1313
|
+
*
|
|
1314
|
+
* For `n` views in a splitview there will be `n-1` margins `m`.
|
|
1315
|
+
*
|
|
1316
|
+
* To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.
|
|
1317
|
+
*
|
|
1318
|
+
* For each view `i` the offet must be adjusted by `m * i/(n - 1)`.
|
|
1319
|
+
*/
|
|
1297
1320
|
layoutViews() {
|
|
1298
1321
|
this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
1299
|
-
let sum = 0;
|
|
1300
|
-
const x = [];
|
|
1301
1322
|
this.updateSashEnablement();
|
|
1323
|
+
if (this.viewItems.length === 0) {
|
|
1324
|
+
return;
|
|
1325
|
+
}
|
|
1326
|
+
const sashCount = this.viewItems.length - 1;
|
|
1327
|
+
const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
|
|
1328
|
+
let totalLeftOffset = 0;
|
|
1329
|
+
const viewLeftOffsets = [];
|
|
1302
1330
|
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
const offset = Math.min(Math.max(0,
|
|
1331
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1332
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1333
|
+
const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
|
|
1306
1334
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1307
1335
|
this.sashes[i].container.style.left = `${offset}px`;
|
|
1308
1336
|
this.sashes[i].container.style.top = `0px`;
|
|
@@ -1313,19 +1341,24 @@ class Splitview {
|
|
|
1313
1341
|
}
|
|
1314
1342
|
}
|
|
1315
1343
|
this.viewItems.forEach((view, i) => {
|
|
1344
|
+
const size = view.size - marginReducedSize;
|
|
1345
|
+
const offset = i === 0
|
|
1346
|
+
? 0
|
|
1347
|
+
: viewLeftOffsets[i - 1] +
|
|
1348
|
+
(i / sashCount) * marginReducedSize;
|
|
1316
1349
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1317
|
-
view.container.style.width = `${
|
|
1318
|
-
view.container.style.left =
|
|
1350
|
+
view.container.style.width = `${size}px`;
|
|
1351
|
+
view.container.style.left = `${offset}px`;
|
|
1319
1352
|
view.container.style.top = '';
|
|
1320
1353
|
view.container.style.height = '';
|
|
1321
1354
|
}
|
|
1322
1355
|
if (this._orientation === exports.Orientation.VERTICAL) {
|
|
1323
|
-
view.container.style.height = `${
|
|
1324
|
-
view.container.style.top =
|
|
1356
|
+
view.container.style.height = `${size}px`;
|
|
1357
|
+
view.container.style.top = `${offset}px`;
|
|
1325
1358
|
view.container.style.width = '';
|
|
1326
1359
|
view.container.style.left = '';
|
|
1327
1360
|
}
|
|
1328
|
-
view.view.layout(view.size, this._orthogonalSize);
|
|
1361
|
+
view.view.layout(view.size - marginReducedSize, this._orthogonalSize);
|
|
1329
1362
|
});
|
|
1330
1363
|
}
|
|
1331
1364
|
findFirstSnapIndex(indexes) {
|
|
@@ -1774,7 +1807,18 @@ class BranchNode extends CompositeDisposable {
|
|
|
1774
1807
|
set disabled(value) {
|
|
1775
1808
|
this.splitview.disabled = value;
|
|
1776
1809
|
}
|
|
1777
|
-
|
|
1810
|
+
get margin() {
|
|
1811
|
+
return this.splitview.margin;
|
|
1812
|
+
}
|
|
1813
|
+
set margin(value) {
|
|
1814
|
+
this.splitview.margin = value;
|
|
1815
|
+
this.children.forEach((child) => {
|
|
1816
|
+
if (child instanceof BranchNode) {
|
|
1817
|
+
child.margin = value;
|
|
1818
|
+
}
|
|
1819
|
+
});
|
|
1820
|
+
}
|
|
1821
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {
|
|
1778
1822
|
super();
|
|
1779
1823
|
this.orientation = orientation;
|
|
1780
1824
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1794,6 +1838,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1794
1838
|
orientation: this.orientation,
|
|
1795
1839
|
proportionalLayout,
|
|
1796
1840
|
styles,
|
|
1841
|
+
margin,
|
|
1797
1842
|
});
|
|
1798
1843
|
this.splitview.layout(this.size, this.orthogonalSize);
|
|
1799
1844
|
}
|
|
@@ -1817,6 +1862,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1817
1862
|
descriptor,
|
|
1818
1863
|
proportionalLayout,
|
|
1819
1864
|
styles,
|
|
1865
|
+
margin,
|
|
1820
1866
|
});
|
|
1821
1867
|
}
|
|
1822
1868
|
this.disabled = disabled;
|
|
@@ -1825,10 +1871,8 @@ class BranchNode extends CompositeDisposable {
|
|
|
1825
1871
|
}));
|
|
1826
1872
|
this.setupChildrenEvents();
|
|
1827
1873
|
}
|
|
1828
|
-
setVisible(
|
|
1829
|
-
|
|
1830
|
-
child.setVisible(visible);
|
|
1831
|
-
}
|
|
1874
|
+
setVisible(_visible) {
|
|
1875
|
+
// noop
|
|
1832
1876
|
}
|
|
1833
1877
|
isChildVisible(index) {
|
|
1834
1878
|
if (index < 0 || index >= this.children.length) {
|
|
@@ -1845,12 +1889,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1845
1889
|
}
|
|
1846
1890
|
const wereAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1847
1891
|
this.splitview.setViewVisible(index, visible);
|
|
1892
|
+
// }
|
|
1848
1893
|
const areAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1849
1894
|
// If all children are hidden then the parent should hide the entire splitview
|
|
1850
1895
|
// If the entire splitview is hidden then the parent should show the splitview when a child is shown
|
|
1851
1896
|
if ((visible && wereAllChildrenHidden) ||
|
|
1852
1897
|
(!visible && areAllChildrenHidden)) {
|
|
1853
|
-
this._onDidVisibilityChange.fire(visible);
|
|
1898
|
+
this._onDidVisibilityChange.fire({ visible });
|
|
1854
1899
|
}
|
|
1855
1900
|
}
|
|
1856
1901
|
moveChild(from, to) {
|
|
@@ -1923,7 +1968,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1923
1968
|
this._onDidChange.fire({ size: e.orthogonalSize });
|
|
1924
1969
|
}), ...this.children.map((c, i) => {
|
|
1925
1970
|
if (c instanceof BranchNode) {
|
|
1926
|
-
return c.onDidVisibilityChange((visible) => {
|
|
1971
|
+
return c.onDidVisibilityChange(({ visible }) => {
|
|
1927
1972
|
this.setChildVisible(i, visible);
|
|
1928
1973
|
});
|
|
1929
1974
|
}
|
|
@@ -1953,7 +1998,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1953
1998
|
}
|
|
1954
1999
|
function flipNode(node, size, orthogonalSize) {
|
|
1955
2000
|
if (node instanceof BranchNode) {
|
|
1956
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
2001
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);
|
|
1957
2002
|
let totalSize = 0;
|
|
1958
2003
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1959
2004
|
const child = node.children[i];
|
|
@@ -2108,6 +2153,13 @@ class Gridview {
|
|
|
2108
2153
|
}
|
|
2109
2154
|
}
|
|
2110
2155
|
}
|
|
2156
|
+
get margin() {
|
|
2157
|
+
return this._margin;
|
|
2158
|
+
}
|
|
2159
|
+
set margin(value) {
|
|
2160
|
+
this._margin = value;
|
|
2161
|
+
this.root.margin = value;
|
|
2162
|
+
}
|
|
2111
2163
|
maximizedView() {
|
|
2112
2164
|
var _a;
|
|
2113
2165
|
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
@@ -2193,13 +2245,14 @@ class Gridview {
|
|
|
2193
2245
|
this.disposable.dispose();
|
|
2194
2246
|
this._onDidChange.dispose();
|
|
2195
2247
|
this._onDidMaximizedNodeChange.dispose();
|
|
2248
|
+
this._onDidViewVisibilityChange.dispose();
|
|
2196
2249
|
this.root.dispose();
|
|
2197
2250
|
this._maximizedNode = undefined;
|
|
2198
2251
|
this.element.remove();
|
|
2199
2252
|
}
|
|
2200
2253
|
clear() {
|
|
2201
2254
|
const orientation = this.root.orientation;
|
|
2202
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.
|
|
2255
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);
|
|
2203
2256
|
}
|
|
2204
2257
|
deserialize(json, deserializer) {
|
|
2205
2258
|
const orientation = json.orientation;
|
|
@@ -2210,6 +2263,7 @@ class Gridview {
|
|
|
2210
2263
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
2211
2264
|
}
|
|
2212
2265
|
_deserializeNode(node, orientation, deserializer, orthogonalSize) {
|
|
2266
|
+
var _a;
|
|
2213
2267
|
let result;
|
|
2214
2268
|
if (node.type === 'branch') {
|
|
2215
2269
|
const serializedChildren = node.data;
|
|
@@ -2221,10 +2275,14 @@ class Gridview {
|
|
|
2221
2275
|
});
|
|
2222
2276
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2223
2277
|
orthogonalSize, // <- size - flips at each depth,
|
|
2224
|
-
this.
|
|
2278
|
+
this.locked, this.margin, children);
|
|
2225
2279
|
}
|
|
2226
2280
|
else {
|
|
2227
|
-
|
|
2281
|
+
const view = deserializer.fromJSON(node);
|
|
2282
|
+
if (typeof node.visible === 'boolean') {
|
|
2283
|
+
(_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);
|
|
2284
|
+
}
|
|
2285
|
+
result = new LeafNode(view, orientation, orthogonalSize, node.size);
|
|
2228
2286
|
}
|
|
2229
2287
|
return result;
|
|
2230
2288
|
}
|
|
@@ -2254,7 +2312,7 @@ class Gridview {
|
|
|
2254
2312
|
}
|
|
2255
2313
|
const oldRoot = this.root;
|
|
2256
2314
|
oldRoot.element.remove();
|
|
2257
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.
|
|
2315
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);
|
|
2258
2316
|
if (oldRoot.children.length === 0) ;
|
|
2259
2317
|
else if (oldRoot.children.length === 1) {
|
|
2260
2318
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2319,19 +2377,24 @@ class Gridview {
|
|
|
2319
2377
|
}
|
|
2320
2378
|
return findLeaf(this.root, reverse);
|
|
2321
2379
|
}
|
|
2322
|
-
constructor(proportionalLayout, styles, orientation) {
|
|
2380
|
+
constructor(proportionalLayout, styles, orientation, locked, margin) {
|
|
2323
2381
|
this.proportionalLayout = proportionalLayout;
|
|
2324
2382
|
this.styles = styles;
|
|
2325
2383
|
this._locked = false;
|
|
2384
|
+
this._margin = 0;
|
|
2326
2385
|
this._maximizedNode = undefined;
|
|
2327
2386
|
this.disposable = new MutableDisposable();
|
|
2328
2387
|
this._onDidChange = new Emitter();
|
|
2329
2388
|
this.onDidChange = this._onDidChange.event;
|
|
2389
|
+
this._onDidViewVisibilityChange = new Emitter();
|
|
2390
|
+
this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;
|
|
2330
2391
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2331
2392
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2332
2393
|
this.element = document.createElement('div');
|
|
2333
2394
|
this.element.className = 'grid-view';
|
|
2334
|
-
this.
|
|
2395
|
+
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2396
|
+
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2397
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
2335
2398
|
}
|
|
2336
2399
|
isViewVisible(location) {
|
|
2337
2400
|
const [rest, index] = tail(location);
|
|
@@ -2350,6 +2413,7 @@ class Gridview {
|
|
|
2350
2413
|
if (!(parent instanceof BranchNode)) {
|
|
2351
2414
|
throw new Error('Invalid from location');
|
|
2352
2415
|
}
|
|
2416
|
+
this._onDidViewVisibilityChange.fire();
|
|
2353
2417
|
parent.setChildVisible(index, visible);
|
|
2354
2418
|
}
|
|
2355
2419
|
moveView(parentLocation, from, to) {
|
|
@@ -2382,7 +2446,7 @@ class Gridview {
|
|
|
2382
2446
|
}
|
|
2383
2447
|
const child = grandParent.removeChild(parentIndex);
|
|
2384
2448
|
child.dispose();
|
|
2385
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.
|
|
2449
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);
|
|
2386
2450
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2387
2451
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2388
2452
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2621,14 +2685,18 @@ class BaseGrid extends Resizable {
|
|
|
2621
2685
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2622
2686
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2623
2687
|
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2688
|
+
this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
|
|
2689
|
+
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2624
2690
|
this.element.style.height = '100%';
|
|
2625
2691
|
this.element.style.width = '100%';
|
|
2626
2692
|
options.parentElement.appendChild(this.element);
|
|
2627
|
-
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
2693
|
+
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2628
2694
|
this.gridview.locked = !!options.locked;
|
|
2629
2695
|
this.element.appendChild(this.gridview.element);
|
|
2630
2696
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2631
|
-
this.addDisposables(
|
|
2697
|
+
this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2698
|
+
this.layout(this.width, this.height, true);
|
|
2699
|
+
}), exports.DockviewDisposable.from(() => {
|
|
2632
2700
|
var _a;
|
|
2633
2701
|
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
2634
2702
|
}), this.gridview.onDidChange(() => {
|
|
@@ -3206,6 +3274,9 @@ class DockviewApi {
|
|
|
3206
3274
|
get totalPanels() {
|
|
3207
3275
|
return this.component.totalPanels;
|
|
3208
3276
|
}
|
|
3277
|
+
get gap() {
|
|
3278
|
+
return this.component.gap;
|
|
3279
|
+
}
|
|
3209
3280
|
/**
|
|
3210
3281
|
* Invoked when the active group changes. May be undefined if no group is active.
|
|
3211
3282
|
*/
|
|
@@ -3242,6 +3313,9 @@ class DockviewApi {
|
|
|
3242
3313
|
get onDidRemovePanel() {
|
|
3243
3314
|
return this.component.onDidRemovePanel;
|
|
3244
3315
|
}
|
|
3316
|
+
get onDidMovePanel() {
|
|
3317
|
+
return this.component.onDidMovePanel;
|
|
3318
|
+
}
|
|
3245
3319
|
/**
|
|
3246
3320
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3247
3321
|
*/
|
|
@@ -3382,8 +3456,8 @@ class DockviewApi {
|
|
|
3382
3456
|
/**
|
|
3383
3457
|
* Add a floating group
|
|
3384
3458
|
*/
|
|
3385
|
-
addFloatingGroup(item,
|
|
3386
|
-
return this.component.addFloatingGroup(item,
|
|
3459
|
+
addFloatingGroup(item, options) {
|
|
3460
|
+
return this.component.addFloatingGroup(item, options);
|
|
3387
3461
|
}
|
|
3388
3462
|
/**
|
|
3389
3463
|
* Create a component from a serialized object.
|
|
@@ -3433,6 +3507,9 @@ class DockviewApi {
|
|
|
3433
3507
|
addPopoutGroup(item, options) {
|
|
3434
3508
|
return this.component.addPopoutGroup(item, options);
|
|
3435
3509
|
}
|
|
3510
|
+
setGap(gap) {
|
|
3511
|
+
this.component.updateOptions({ gap });
|
|
3512
|
+
}
|
|
3436
3513
|
}
|
|
3437
3514
|
|
|
3438
3515
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4802,7 +4879,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4802
4879
|
this.accessor.addFloatingGroup(this.group, {
|
|
4803
4880
|
x: left - rootLeft + 20,
|
|
4804
4881
|
y: top - rootTop + 20,
|
|
4805
|
-
|
|
4882
|
+
inDragMode: true,
|
|
4883
|
+
});
|
|
4806
4884
|
}
|
|
4807
4885
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4808
4886
|
if (event.defaultPrevented) {
|
|
@@ -4871,7 +4949,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4871
4949
|
this.accessor.addFloatingGroup(panel, {
|
|
4872
4950
|
x: left - rootLeft,
|
|
4873
4951
|
y: top - rootTop,
|
|
4874
|
-
|
|
4952
|
+
inDragMode: true,
|
|
4953
|
+
});
|
|
4875
4954
|
return;
|
|
4876
4955
|
}
|
|
4877
4956
|
const isLeftClick = event.button === 0;
|
|
@@ -4944,6 +5023,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4944
5023
|
rootOverlayModel: undefined,
|
|
4945
5024
|
locked: undefined,
|
|
4946
5025
|
disableDnd: undefined,
|
|
5026
|
+
gap: undefined,
|
|
4947
5027
|
};
|
|
4948
5028
|
return Object.keys(properties);
|
|
4949
5029
|
})();
|
|
@@ -5674,6 +5754,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5674
5754
|
get isActive() {
|
|
5675
5755
|
return this.api.isActive;
|
|
5676
5756
|
}
|
|
5757
|
+
get isVisible() {
|
|
5758
|
+
return this.api.isVisible;
|
|
5759
|
+
}
|
|
5677
5760
|
constructor(id, component, options, api) {
|
|
5678
5761
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5679
5762
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6436,12 +6519,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6436
6519
|
this._element.appendChild(this.options.content);
|
|
6437
6520
|
this.options.container.appendChild(this._element);
|
|
6438
6521
|
// if input bad resize within acceptable boundaries
|
|
6439
|
-
this.setBounds({
|
|
6440
|
-
height: this.options.height,
|
|
6441
|
-
width: this.options.width,
|
|
6442
|
-
top: this.options.top,
|
|
6443
|
-
left: this.options.left,
|
|
6444
|
-
});
|
|
6522
|
+
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 })));
|
|
6445
6523
|
}
|
|
6446
6524
|
setBounds(bounds = {}) {
|
|
6447
6525
|
if (typeof bounds.height === 'number') {
|
|
@@ -6450,11 +6528,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6450
6528
|
if (typeof bounds.width === 'number') {
|
|
6451
6529
|
this._element.style.width = `${bounds.width}px`;
|
|
6452
6530
|
}
|
|
6453
|
-
if (typeof bounds.top === 'number') {
|
|
6531
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6454
6532
|
this._element.style.top = `${bounds.top}px`;
|
|
6533
|
+
this._element.style.bottom = 'auto';
|
|
6534
|
+
this.verticalAlignment = 'top';
|
|
6535
|
+
}
|
|
6536
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6537
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6538
|
+
this._element.style.top = 'auto';
|
|
6539
|
+
this.verticalAlignment = 'bottom';
|
|
6455
6540
|
}
|
|
6456
|
-
if (typeof bounds.left === 'number') {
|
|
6541
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6457
6542
|
this._element.style.left = `${bounds.left}px`;
|
|
6543
|
+
this._element.style.right = 'auto';
|
|
6544
|
+
this.horiziontalAlignment = 'left';
|
|
6545
|
+
}
|
|
6546
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6547
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6548
|
+
this._element.style.left = 'auto';
|
|
6549
|
+
this.horiziontalAlignment = 'right';
|
|
6458
6550
|
}
|
|
6459
6551
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6460
6552
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6462,24 +6554,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6462
6554
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6463
6555
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6464
6556
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6465
|
-
const yOffset =
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
this.
|
|
6557
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6558
|
+
if (this.verticalAlignment === 'top') {
|
|
6559
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6560
|
+
this._element.style.top = `${top}px`;
|
|
6561
|
+
this._element.style.bottom = 'auto';
|
|
6562
|
+
}
|
|
6563
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6564
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6565
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6566
|
+
this._element.style.top = 'auto';
|
|
6567
|
+
}
|
|
6568
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6569
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6570
|
+
this._element.style.left = `${left}px`;
|
|
6571
|
+
this._element.style.right = 'auto';
|
|
6572
|
+
}
|
|
6573
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6574
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6575
|
+
this._element.style.right = `${right}px`;
|
|
6576
|
+
this._element.style.left = 'auto';
|
|
6577
|
+
}
|
|
6472
6578
|
this._onDidChange.fire();
|
|
6473
6579
|
}
|
|
6474
6580
|
toJSON() {
|
|
6475
6581
|
const container = this.options.container.getBoundingClientRect();
|
|
6476
6582
|
const element = this._element.getBoundingClientRect();
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6583
|
+
const result = {};
|
|
6584
|
+
if (this.verticalAlignment === 'top') {
|
|
6585
|
+
result.top = parseFloat(this._element.style.top);
|
|
6586
|
+
}
|
|
6587
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6588
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6589
|
+
}
|
|
6590
|
+
else {
|
|
6591
|
+
result.top = element.top - container.top;
|
|
6592
|
+
}
|
|
6593
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6594
|
+
result.left = parseFloat(this._element.style.left);
|
|
6595
|
+
}
|
|
6596
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6597
|
+
result.right = parseFloat(this._element.style.right);
|
|
6598
|
+
}
|
|
6599
|
+
else {
|
|
6600
|
+
result.left = element.left - container.left;
|
|
6601
|
+
}
|
|
6602
|
+
result.width = element.width;
|
|
6603
|
+
result.height = element.height;
|
|
6604
|
+
return result;
|
|
6483
6605
|
}
|
|
6484
6606
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6485
6607
|
const move = new MutableDisposable();
|
|
@@ -6511,12 +6633,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6511
6633
|
};
|
|
6512
6634
|
}
|
|
6513
6635
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6514
|
-
const yOffset = Math.max(0, this.
|
|
6515
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6516
|
-
: 0);
|
|
6517
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6636
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6518
6637
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6519
|
-
|
|
6638
|
+
const bottom = clamp(offset.y -
|
|
6639
|
+
y +
|
|
6640
|
+
containerRect.height -
|
|
6641
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6642
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6643
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6644
|
+
const bounds = {};
|
|
6645
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6646
|
+
if (top <= bottom) {
|
|
6647
|
+
bounds.top = top;
|
|
6648
|
+
}
|
|
6649
|
+
else {
|
|
6650
|
+
bounds.bottom = bottom;
|
|
6651
|
+
}
|
|
6652
|
+
// Anchor to left or to right depending on which one is closer
|
|
6653
|
+
if (left <= right) {
|
|
6654
|
+
bounds.left = left;
|
|
6655
|
+
}
|
|
6656
|
+
else {
|
|
6657
|
+
bounds.right = right;
|
|
6658
|
+
}
|
|
6659
|
+
this.setBounds(bounds);
|
|
6520
6660
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6521
6661
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6522
6662
|
move.dispose();
|
|
@@ -6584,8 +6724,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6584
6724
|
};
|
|
6585
6725
|
}
|
|
6586
6726
|
let top = undefined;
|
|
6727
|
+
let bottom = undefined;
|
|
6587
6728
|
let height = undefined;
|
|
6588
6729
|
let left = undefined;
|
|
6730
|
+
let right = undefined;
|
|
6589
6731
|
let width = undefined;
|
|
6590
6732
|
const moveTop = () => {
|
|
6591
6733
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6599,6 +6741,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6599
6741
|
startPosition.originalY +
|
|
6600
6742
|
startPosition.originalHeight -
|
|
6601
6743
|
top;
|
|
6744
|
+
bottom = containerRect.height - top - height;
|
|
6602
6745
|
};
|
|
6603
6746
|
const moveBottom = () => {
|
|
6604
6747
|
top =
|
|
@@ -6610,6 +6753,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6610
6753
|
? -top +
|
|
6611
6754
|
this.options.minimumInViewportHeight
|
|
6612
6755
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6756
|
+
bottom = containerRect.height - top - height;
|
|
6613
6757
|
};
|
|
6614
6758
|
const moveLeft = () => {
|
|
6615
6759
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6623,6 +6767,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6623
6767
|
startPosition.originalX +
|
|
6624
6768
|
startPosition.originalWidth -
|
|
6625
6769
|
left;
|
|
6770
|
+
right = containerRect.width - left - width;
|
|
6626
6771
|
};
|
|
6627
6772
|
const moveRight = () => {
|
|
6628
6773
|
left =
|
|
@@ -6634,6 +6779,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6634
6779
|
? -left +
|
|
6635
6780
|
this.options.minimumInViewportWidth
|
|
6636
6781
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6782
|
+
right = containerRect.width - left - width;
|
|
6637
6783
|
};
|
|
6638
6784
|
switch (direction) {
|
|
6639
6785
|
case 'top':
|
|
@@ -6665,7 +6811,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6665
6811
|
moveRight();
|
|
6666
6812
|
break;
|
|
6667
6813
|
}
|
|
6668
|
-
|
|
6814
|
+
const bounds = {};
|
|
6815
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6816
|
+
if (top <= bottom) {
|
|
6817
|
+
bounds.top = top;
|
|
6818
|
+
}
|
|
6819
|
+
else {
|
|
6820
|
+
bounds.bottom = bottom;
|
|
6821
|
+
}
|
|
6822
|
+
// Anchor to left or to right depending on which one is closer
|
|
6823
|
+
if (left <= right) {
|
|
6824
|
+
bounds.left = left;
|
|
6825
|
+
}
|
|
6826
|
+
else {
|
|
6827
|
+
bounds.right = right;
|
|
6828
|
+
}
|
|
6829
|
+
bounds.height = height;
|
|
6830
|
+
bounds.width = width;
|
|
6831
|
+
this.setBounds(bounds);
|
|
6669
6832
|
}), {
|
|
6670
6833
|
dispose: () => {
|
|
6671
6834
|
for (const iframe of iframes) {
|
|
@@ -6688,7 +6851,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6688
6851
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6689
6852
|
return height - this.options.minimumInViewportHeight;
|
|
6690
6853
|
}
|
|
6691
|
-
return
|
|
6854
|
+
return 0;
|
|
6692
6855
|
}
|
|
6693
6856
|
dispose() {
|
|
6694
6857
|
this._element.remove();
|
|
@@ -6711,7 +6874,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6711
6874
|
}
|
|
6712
6875
|
|
|
6713
6876
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6714
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6877
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6715
6878
|
|
|
6716
6879
|
function createFocusableElement() {
|
|
6717
6880
|
const element = document.createElement('div');
|
|
@@ -7043,6 +7206,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7043
7206
|
get api() {
|
|
7044
7207
|
return this._api;
|
|
7045
7208
|
}
|
|
7209
|
+
get gap() {
|
|
7210
|
+
return this.gridview.margin;
|
|
7211
|
+
}
|
|
7046
7212
|
constructor(options) {
|
|
7047
7213
|
var _a;
|
|
7048
7214
|
super({
|
|
@@ -7054,6 +7220,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7054
7220
|
parentElement: options.parentElement,
|
|
7055
7221
|
disableAutoResizing: options.disableAutoResizing,
|
|
7056
7222
|
locked: options.locked,
|
|
7223
|
+
margin: options.gap,
|
|
7057
7224
|
});
|
|
7058
7225
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7059
7226
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7079,9 +7246,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7079
7246
|
this._onDidActivePanelChange = new Emitter();
|
|
7080
7247
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7081
7248
|
this._onDidMovePanel = new Emitter();
|
|
7249
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7082
7250
|
this._floatingGroups = [];
|
|
7083
7251
|
this._popoutGroups = [];
|
|
7084
|
-
this._ignoreEvents = 0;
|
|
7085
7252
|
this._onDidRemoveGroup = new Emitter();
|
|
7086
7253
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7087
7254
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7095,7 +7262,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7095
7262
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7096
7263
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7097
7264
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7098
|
-
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.
|
|
7265
|
+
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(() => {
|
|
7266
|
+
this.updateWatermark();
|
|
7267
|
+
}), this.onDidAdd((event) => {
|
|
7099
7268
|
if (!this._moving) {
|
|
7100
7269
|
this._onDidAddGroup.fire(event);
|
|
7101
7270
|
}
|
|
@@ -7109,7 +7278,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7109
7278
|
}
|
|
7110
7279
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7111
7280
|
this.updateWatermark();
|
|
7112
|
-
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7281
|
+
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7113
7282
|
this._bufferOnDidLayoutChange.fire();
|
|
7114
7283
|
}), exports.DockviewDisposable.from(() => {
|
|
7115
7284
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7209,7 +7378,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7209
7378
|
var _a, _b, _c;
|
|
7210
7379
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7211
7380
|
itemToPopout.group.size === 1) {
|
|
7212
|
-
return this.addPopoutGroup(itemToPopout.group);
|
|
7381
|
+
return this.addPopoutGroup(itemToPopout.group, options);
|
|
7213
7382
|
}
|
|
7214
7383
|
const theme = getDockviewTheme(this.gridview.element);
|
|
7215
7384
|
const element = this.element;
|
|
@@ -7360,8 +7529,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7360
7529
|
console.error('dockview: failed to create popout window', err);
|
|
7361
7530
|
});
|
|
7362
7531
|
}
|
|
7363
|
-
addFloatingGroup(item,
|
|
7364
|
-
var _a, _b, _c, _d, _e
|
|
7532
|
+
addFloatingGroup(item, options) {
|
|
7533
|
+
var _a, _b, _c, _d, _e;
|
|
7365
7534
|
let group;
|
|
7366
7535
|
if (item instanceof DockviewPanel) {
|
|
7367
7536
|
group = this.createGroup();
|
|
@@ -7406,26 +7575,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7406
7575
|
}
|
|
7407
7576
|
}
|
|
7408
7577
|
group.model.location = { type: 'floating' };
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7578
|
+
function getAnchoredBox() {
|
|
7579
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7580
|
+
const result = {};
|
|
7581
|
+
if ('left' in options.position) {
|
|
7582
|
+
result.left = Math.max(options.position.left, 0);
|
|
7583
|
+
}
|
|
7584
|
+
else if ('right' in options.position) {
|
|
7585
|
+
result.right = Math.max(options.position.right, 0);
|
|
7586
|
+
}
|
|
7587
|
+
else {
|
|
7588
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7589
|
+
}
|
|
7590
|
+
if ('top' in options.position) {
|
|
7591
|
+
result.top = Math.max(options.position.top, 0);
|
|
7592
|
+
}
|
|
7593
|
+
else if ('bottom' in options.position) {
|
|
7594
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7595
|
+
}
|
|
7596
|
+
else {
|
|
7597
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7598
|
+
}
|
|
7599
|
+
if (typeof options.width === 'number') {
|
|
7600
|
+
result.width = Math.max(options.width, 0);
|
|
7601
|
+
}
|
|
7602
|
+
else {
|
|
7603
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7604
|
+
}
|
|
7605
|
+
if (typeof options.height === 'number') {
|
|
7606
|
+
result.height = Math.max(options.height, 0);
|
|
7607
|
+
}
|
|
7608
|
+
else {
|
|
7609
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7610
|
+
}
|
|
7611
|
+
return result;
|
|
7612
|
+
}
|
|
7613
|
+
return {
|
|
7614
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7615
|
+
? Math.max(options.x, 0)
|
|
7616
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7617
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7618
|
+
? Math.max(options.y, 0)
|
|
7619
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7620
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7621
|
+
? Math.max(options.width, 0)
|
|
7622
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7623
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7624
|
+
? Math.max(options.height, 0)
|
|
7625
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7626
|
+
};
|
|
7627
|
+
}
|
|
7628
|
+
const anchoredBox = getAnchoredBox();
|
|
7629
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7423
7630
|
? undefined
|
|
7424
|
-
: (
|
|
7425
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7631
|
+
: (_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'
|
|
7426
7632
|
? undefined
|
|
7427
|
-
: (
|
|
7428
|
-
});
|
|
7633
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7429
7634
|
const el = group.element.querySelector('.void-container');
|
|
7430
7635
|
if (!el) {
|
|
7431
7636
|
throw new Error('failed to find drag handle');
|
|
@@ -7523,12 +7728,21 @@ class DockviewComponent extends BaseGrid {
|
|
|
7523
7728
|
group.overlay.minimumInViewportWidth =
|
|
7524
7729
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7525
7730
|
}
|
|
7526
|
-
group.overlay.setBounds(
|
|
7731
|
+
group.overlay.setBounds();
|
|
7527
7732
|
}
|
|
7528
7733
|
}
|
|
7529
7734
|
if (changed_rootOverlayOptions) {
|
|
7530
7735
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7531
7736
|
}
|
|
7737
|
+
if (
|
|
7738
|
+
// if explicitly set as `undefined`
|
|
7739
|
+
'gap' in options &&
|
|
7740
|
+
options.gap === undefined) {
|
|
7741
|
+
this.gridview.margin = 0;
|
|
7742
|
+
}
|
|
7743
|
+
if (typeof options.gap === 'number') {
|
|
7744
|
+
this.gridview.margin = options.gap;
|
|
7745
|
+
}
|
|
7532
7746
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7533
7747
|
}
|
|
7534
7748
|
layout(width, height, forceResize) {
|
|
@@ -7690,11 +7904,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7690
7904
|
const { data, position } = serializedFloatingGroup;
|
|
7691
7905
|
const group = createGroupFromSerializedState(data);
|
|
7692
7906
|
this.addFloatingGroup(group, {
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7907
|
+
position: position,
|
|
7908
|
+
skipRemoveGroup: true,
|
|
7909
|
+
inDragMode: false,
|
|
7910
|
+
});
|
|
7698
7911
|
}
|
|
7699
7912
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7700
7913
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7825,15 +8038,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
7825
8038
|
if (options.floating) {
|
|
7826
8039
|
const group = this.createGroup();
|
|
7827
8040
|
this._onDidAddGroup.fire(group);
|
|
7828
|
-
const
|
|
8041
|
+
const floatingGroupOptions = typeof options.floating === 'object' &&
|
|
7829
8042
|
options.floating !== null
|
|
7830
8043
|
? options.floating
|
|
7831
8044
|
: {};
|
|
7832
|
-
this.addFloatingGroup(group,
|
|
7833
|
-
inDragMode: false,
|
|
7834
|
-
skipRemoveGroup: true,
|
|
7835
|
-
skipActiveGroup: true,
|
|
7836
|
-
});
|
|
8045
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, floatingGroupOptions), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7837
8046
|
panel = this.createPanel(options, group);
|
|
7838
8047
|
group.model.openPanel(panel, {
|
|
7839
8048
|
skipSetActive: options.inactive,
|
|
@@ -7872,11 +8081,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7872
8081
|
options.floating !== null
|
|
7873
8082
|
? options.floating
|
|
7874
8083
|
: {};
|
|
7875
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7876
|
-
inDragMode: false,
|
|
7877
|
-
skipRemoveGroup: true,
|
|
7878
|
-
skipActiveGroup: true,
|
|
7879
|
-
});
|
|
8084
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7880
8085
|
panel = this.createPanel(options, group);
|
|
7881
8086
|
group.model.openPanel(panel, {
|
|
7882
8087
|
skipSetActive: options.inactive,
|
|
@@ -7931,6 +8136,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7931
8136
|
});
|
|
7932
8137
|
const watermarkContainer = document.createElement('div');
|
|
7933
8138
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8139
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7934
8140
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7935
8141
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7936
8142
|
}
|
|
@@ -8119,6 +8325,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8119
8325
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8120
8326
|
this._onDidMovePanel.fire({
|
|
8121
8327
|
panel: removedPanel,
|
|
8328
|
+
from: sourceGroup,
|
|
8122
8329
|
});
|
|
8123
8330
|
}
|
|
8124
8331
|
else {
|
|
@@ -8142,6 +8349,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8142
8349
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8143
8350
|
// which is equivalent to swapping two views in this case
|
|
8144
8351
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8352
|
+
this._onDidMovePanel.fire({
|
|
8353
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8354
|
+
from: sourceGroup,
|
|
8355
|
+
});
|
|
8145
8356
|
return;
|
|
8146
8357
|
}
|
|
8147
8358
|
}
|
|
@@ -8155,6 +8366,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8155
8366
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8156
8367
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8157
8368
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8369
|
+
this._onDidMovePanel.fire({
|
|
8370
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8371
|
+
from: sourceGroup,
|
|
8372
|
+
});
|
|
8158
8373
|
}
|
|
8159
8374
|
else {
|
|
8160
8375
|
/**
|
|
@@ -8174,6 +8389,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8174
8389
|
skipSetGroupActive: true,
|
|
8175
8390
|
}));
|
|
8176
8391
|
this.doSetGroupAndPanelActive(group);
|
|
8392
|
+
this._onDidMovePanel.fire({
|
|
8393
|
+
panel: removedPanel,
|
|
8394
|
+
from: sourceGroup,
|
|
8395
|
+
});
|
|
8177
8396
|
}
|
|
8178
8397
|
}
|
|
8179
8398
|
}
|
|
@@ -8198,9 +8417,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8198
8417
|
}
|
|
8199
8418
|
});
|
|
8200
8419
|
this.doSetGroupAndPanelActive(to);
|
|
8201
|
-
panels.forEach((panel) => {
|
|
8202
|
-
this._onDidMovePanel.fire({ panel });
|
|
8203
|
-
});
|
|
8204
8420
|
}
|
|
8205
8421
|
else {
|
|
8206
8422
|
switch (from.api.location.type) {
|
|
@@ -8226,10 +8442,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8226
8442
|
const referenceLocation = getGridLocation(to.element);
|
|
8227
8443
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8228
8444
|
this.gridview.addView(from, exports.Sizing.Distribute, dropLocation);
|
|
8229
|
-
from.panels.forEach((panel) => {
|
|
8230
|
-
this._onDidMovePanel.fire({ panel });
|
|
8231
|
-
});
|
|
8232
8445
|
}
|
|
8446
|
+
from.panels.forEach((panel) => {
|
|
8447
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8448
|
+
});
|
|
8233
8449
|
}
|
|
8234
8450
|
doSetGroupActive(group) {
|
|
8235
8451
|
super.doSetGroupActive(group);
|