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
|
*/
|
|
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
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}";
|
|
37
|
+
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}";
|
|
38
38
|
styleInject(css_248z);
|
|
39
39
|
|
|
40
40
|
class TransferObject {
|
|
@@ -559,6 +559,9 @@ function isInDocument(element) {
|
|
|
559
559
|
}
|
|
560
560
|
return false;
|
|
561
561
|
}
|
|
562
|
+
function addTestId(element, id) {
|
|
563
|
+
element.setAttribute('data-testid', id);
|
|
564
|
+
}
|
|
562
565
|
|
|
563
566
|
function tail(arr) {
|
|
564
567
|
if (arr.length === 0) {
|
|
@@ -620,7 +623,11 @@ function remove(array, value) {
|
|
|
620
623
|
|
|
621
624
|
const clamp = (value, min, max) => {
|
|
622
625
|
if (min > max) {
|
|
623
|
-
|
|
626
|
+
/**
|
|
627
|
+
* caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle
|
|
628
|
+
* cases where `min` > `max` and in those cases return `min`.
|
|
629
|
+
*/
|
|
630
|
+
return min;
|
|
624
631
|
}
|
|
625
632
|
return Math.min(max, Math.max(value, min));
|
|
626
633
|
};
|
|
@@ -825,7 +832,14 @@ class Splitview {
|
|
|
825
832
|
this._disabled = value;
|
|
826
833
|
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
827
834
|
}
|
|
835
|
+
get margin() {
|
|
836
|
+
return this._margin;
|
|
837
|
+
}
|
|
838
|
+
set margin(value) {
|
|
839
|
+
this._margin = value;
|
|
840
|
+
}
|
|
828
841
|
constructor(container, options) {
|
|
842
|
+
var _a;
|
|
829
843
|
this.container = container;
|
|
830
844
|
this.viewItems = [];
|
|
831
845
|
this.sashes = [];
|
|
@@ -836,6 +850,7 @@ class Splitview {
|
|
|
836
850
|
this._startSnappingEnabled = true;
|
|
837
851
|
this._endSnappingEnabled = true;
|
|
838
852
|
this._disabled = false;
|
|
853
|
+
this._margin = 0;
|
|
839
854
|
this._onDidSashEnd = new Emitter();
|
|
840
855
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
841
856
|
this._onDidAddView = new Emitter();
|
|
@@ -924,6 +939,7 @@ class Splitview {
|
|
|
924
939
|
};
|
|
925
940
|
this._orientation = options.orientation;
|
|
926
941
|
this.element = this.createContainer();
|
|
942
|
+
this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
|
|
927
943
|
this.proportionalLayout =
|
|
928
944
|
options.proportionalLayout === undefined
|
|
929
945
|
? true
|
|
@@ -978,9 +994,7 @@ class Splitview {
|
|
|
978
994
|
if (index < 0 || index >= this.viewItems.length) {
|
|
979
995
|
throw new Error('Index out of bounds');
|
|
980
996
|
}
|
|
981
|
-
toggleClass(this.container, 'visible', visible);
|
|
982
997
|
const viewItem = this.viewItems[index];
|
|
983
|
-
toggleClass(this.container, 'visible', visible);
|
|
984
998
|
viewItem.setVisible(visible, viewItem.size);
|
|
985
999
|
this.distributeEmptySpace(index);
|
|
986
1000
|
this.layoutViews();
|
|
@@ -1292,15 +1306,29 @@ class Splitview {
|
|
|
1292
1306
|
this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);
|
|
1293
1307
|
}
|
|
1294
1308
|
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Margin explain:
|
|
1311
|
+
*
|
|
1312
|
+
* For `n` views in a splitview there will be `n-1` margins `m`.
|
|
1313
|
+
*
|
|
1314
|
+
* To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.
|
|
1315
|
+
*
|
|
1316
|
+
* For each view `i` the offet must be adjusted by `m * i/(n - 1)`.
|
|
1317
|
+
*/
|
|
1295
1318
|
layoutViews() {
|
|
1296
1319
|
this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
1297
|
-
let sum = 0;
|
|
1298
|
-
const x = [];
|
|
1299
1320
|
this.updateSashEnablement();
|
|
1321
|
+
if (this.viewItems.length === 0) {
|
|
1322
|
+
return;
|
|
1323
|
+
}
|
|
1324
|
+
const sashCount = this.viewItems.length - 1;
|
|
1325
|
+
const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
|
|
1326
|
+
let totalLeftOffset = 0;
|
|
1327
|
+
const viewLeftOffsets = [];
|
|
1300
1328
|
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
const offset = Math.min(Math.max(0,
|
|
1329
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1330
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1331
|
+
const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
|
|
1304
1332
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
1305
1333
|
this.sashes[i].container.style.left = `${offset}px`;
|
|
1306
1334
|
this.sashes[i].container.style.top = `0px`;
|
|
@@ -1311,19 +1339,24 @@ class Splitview {
|
|
|
1311
1339
|
}
|
|
1312
1340
|
}
|
|
1313
1341
|
this.viewItems.forEach((view, i) => {
|
|
1342
|
+
const size = view.size - marginReducedSize;
|
|
1343
|
+
const offset = i === 0
|
|
1344
|
+
? 0
|
|
1345
|
+
: viewLeftOffsets[i - 1] +
|
|
1346
|
+
(i / sashCount) * marginReducedSize;
|
|
1314
1347
|
if (this._orientation === Orientation.HORIZONTAL) {
|
|
1315
|
-
view.container.style.width = `${
|
|
1316
|
-
view.container.style.left =
|
|
1348
|
+
view.container.style.width = `${size}px`;
|
|
1349
|
+
view.container.style.left = `${offset}px`;
|
|
1317
1350
|
view.container.style.top = '';
|
|
1318
1351
|
view.container.style.height = '';
|
|
1319
1352
|
}
|
|
1320
1353
|
if (this._orientation === Orientation.VERTICAL) {
|
|
1321
|
-
view.container.style.height = `${
|
|
1322
|
-
view.container.style.top =
|
|
1354
|
+
view.container.style.height = `${size}px`;
|
|
1355
|
+
view.container.style.top = `${offset}px`;
|
|
1323
1356
|
view.container.style.width = '';
|
|
1324
1357
|
view.container.style.left = '';
|
|
1325
1358
|
}
|
|
1326
|
-
view.view.layout(view.size, this._orthogonalSize);
|
|
1359
|
+
view.view.layout(view.size - marginReducedSize, this._orthogonalSize);
|
|
1327
1360
|
});
|
|
1328
1361
|
}
|
|
1329
1362
|
findFirstSnapIndex(indexes) {
|
|
@@ -1772,7 +1805,18 @@ class BranchNode extends CompositeDisposable {
|
|
|
1772
1805
|
set disabled(value) {
|
|
1773
1806
|
this.splitview.disabled = value;
|
|
1774
1807
|
}
|
|
1775
|
-
|
|
1808
|
+
get margin() {
|
|
1809
|
+
return this.splitview.margin;
|
|
1810
|
+
}
|
|
1811
|
+
set margin(value) {
|
|
1812
|
+
this.splitview.margin = value;
|
|
1813
|
+
this.children.forEach((child) => {
|
|
1814
|
+
if (child instanceof BranchNode) {
|
|
1815
|
+
child.margin = value;
|
|
1816
|
+
}
|
|
1817
|
+
});
|
|
1818
|
+
}
|
|
1819
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {
|
|
1776
1820
|
super();
|
|
1777
1821
|
this.orientation = orientation;
|
|
1778
1822
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1792,6 +1836,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1792
1836
|
orientation: this.orientation,
|
|
1793
1837
|
proportionalLayout,
|
|
1794
1838
|
styles,
|
|
1839
|
+
margin,
|
|
1795
1840
|
});
|
|
1796
1841
|
this.splitview.layout(this.size, this.orthogonalSize);
|
|
1797
1842
|
}
|
|
@@ -1815,6 +1860,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1815
1860
|
descriptor,
|
|
1816
1861
|
proportionalLayout,
|
|
1817
1862
|
styles,
|
|
1863
|
+
margin,
|
|
1818
1864
|
});
|
|
1819
1865
|
}
|
|
1820
1866
|
this.disabled = disabled;
|
|
@@ -1823,10 +1869,8 @@ class BranchNode extends CompositeDisposable {
|
|
|
1823
1869
|
}));
|
|
1824
1870
|
this.setupChildrenEvents();
|
|
1825
1871
|
}
|
|
1826
|
-
setVisible(
|
|
1827
|
-
|
|
1828
|
-
child.setVisible(visible);
|
|
1829
|
-
}
|
|
1872
|
+
setVisible(_visible) {
|
|
1873
|
+
// noop
|
|
1830
1874
|
}
|
|
1831
1875
|
isChildVisible(index) {
|
|
1832
1876
|
if (index < 0 || index >= this.children.length) {
|
|
@@ -1843,12 +1887,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1843
1887
|
}
|
|
1844
1888
|
const wereAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1845
1889
|
this.splitview.setViewVisible(index, visible);
|
|
1890
|
+
// }
|
|
1846
1891
|
const areAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1847
1892
|
// If all children are hidden then the parent should hide the entire splitview
|
|
1848
1893
|
// If the entire splitview is hidden then the parent should show the splitview when a child is shown
|
|
1849
1894
|
if ((visible && wereAllChildrenHidden) ||
|
|
1850
1895
|
(!visible && areAllChildrenHidden)) {
|
|
1851
|
-
this._onDidVisibilityChange.fire(visible);
|
|
1896
|
+
this._onDidVisibilityChange.fire({ visible });
|
|
1852
1897
|
}
|
|
1853
1898
|
}
|
|
1854
1899
|
moveChild(from, to) {
|
|
@@ -1921,7 +1966,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1921
1966
|
this._onDidChange.fire({ size: e.orthogonalSize });
|
|
1922
1967
|
}), ...this.children.map((c, i) => {
|
|
1923
1968
|
if (c instanceof BranchNode) {
|
|
1924
|
-
return c.onDidVisibilityChange((visible) => {
|
|
1969
|
+
return c.onDidVisibilityChange(({ visible }) => {
|
|
1925
1970
|
this.setChildVisible(i, visible);
|
|
1926
1971
|
});
|
|
1927
1972
|
}
|
|
@@ -1951,7 +1996,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1951
1996
|
}
|
|
1952
1997
|
function flipNode(node, size, orthogonalSize) {
|
|
1953
1998
|
if (node instanceof BranchNode) {
|
|
1954
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1999
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);
|
|
1955
2000
|
let totalSize = 0;
|
|
1956
2001
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1957
2002
|
const child = node.children[i];
|
|
@@ -2106,6 +2151,13 @@ class Gridview {
|
|
|
2106
2151
|
}
|
|
2107
2152
|
}
|
|
2108
2153
|
}
|
|
2154
|
+
get margin() {
|
|
2155
|
+
return this._margin;
|
|
2156
|
+
}
|
|
2157
|
+
set margin(value) {
|
|
2158
|
+
this._margin = value;
|
|
2159
|
+
this.root.margin = value;
|
|
2160
|
+
}
|
|
2109
2161
|
maximizedView() {
|
|
2110
2162
|
var _a;
|
|
2111
2163
|
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
@@ -2191,13 +2243,14 @@ class Gridview {
|
|
|
2191
2243
|
this.disposable.dispose();
|
|
2192
2244
|
this._onDidChange.dispose();
|
|
2193
2245
|
this._onDidMaximizedNodeChange.dispose();
|
|
2246
|
+
this._onDidViewVisibilityChange.dispose();
|
|
2194
2247
|
this.root.dispose();
|
|
2195
2248
|
this._maximizedNode = undefined;
|
|
2196
2249
|
this.element.remove();
|
|
2197
2250
|
}
|
|
2198
2251
|
clear() {
|
|
2199
2252
|
const orientation = this.root.orientation;
|
|
2200
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.
|
|
2253
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);
|
|
2201
2254
|
}
|
|
2202
2255
|
deserialize(json, deserializer) {
|
|
2203
2256
|
const orientation = json.orientation;
|
|
@@ -2208,6 +2261,7 @@ class Gridview {
|
|
|
2208
2261
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
2209
2262
|
}
|
|
2210
2263
|
_deserializeNode(node, orientation, deserializer, orthogonalSize) {
|
|
2264
|
+
var _a;
|
|
2211
2265
|
let result;
|
|
2212
2266
|
if (node.type === 'branch') {
|
|
2213
2267
|
const serializedChildren = node.data;
|
|
@@ -2219,10 +2273,14 @@ class Gridview {
|
|
|
2219
2273
|
});
|
|
2220
2274
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2221
2275
|
orthogonalSize, // <- size - flips at each depth,
|
|
2222
|
-
this.
|
|
2276
|
+
this.locked, this.margin, children);
|
|
2223
2277
|
}
|
|
2224
2278
|
else {
|
|
2225
|
-
|
|
2279
|
+
const view = deserializer.fromJSON(node);
|
|
2280
|
+
if (typeof node.visible === 'boolean') {
|
|
2281
|
+
(_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);
|
|
2282
|
+
}
|
|
2283
|
+
result = new LeafNode(view, orientation, orthogonalSize, node.size);
|
|
2226
2284
|
}
|
|
2227
2285
|
return result;
|
|
2228
2286
|
}
|
|
@@ -2252,7 +2310,7 @@ class Gridview {
|
|
|
2252
2310
|
}
|
|
2253
2311
|
const oldRoot = this.root;
|
|
2254
2312
|
oldRoot.element.remove();
|
|
2255
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.
|
|
2313
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);
|
|
2256
2314
|
if (oldRoot.children.length === 0) ;
|
|
2257
2315
|
else if (oldRoot.children.length === 1) {
|
|
2258
2316
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2317,19 +2375,24 @@ class Gridview {
|
|
|
2317
2375
|
}
|
|
2318
2376
|
return findLeaf(this.root, reverse);
|
|
2319
2377
|
}
|
|
2320
|
-
constructor(proportionalLayout, styles, orientation) {
|
|
2378
|
+
constructor(proportionalLayout, styles, orientation, locked, margin) {
|
|
2321
2379
|
this.proportionalLayout = proportionalLayout;
|
|
2322
2380
|
this.styles = styles;
|
|
2323
2381
|
this._locked = false;
|
|
2382
|
+
this._margin = 0;
|
|
2324
2383
|
this._maximizedNode = undefined;
|
|
2325
2384
|
this.disposable = new MutableDisposable();
|
|
2326
2385
|
this._onDidChange = new Emitter();
|
|
2327
2386
|
this.onDidChange = this._onDidChange.event;
|
|
2387
|
+
this._onDidViewVisibilityChange = new Emitter();
|
|
2388
|
+
this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;
|
|
2328
2389
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2329
2390
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2330
2391
|
this.element = document.createElement('div');
|
|
2331
2392
|
this.element.className = 'grid-view';
|
|
2332
|
-
this.
|
|
2393
|
+
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2394
|
+
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2395
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
2333
2396
|
}
|
|
2334
2397
|
isViewVisible(location) {
|
|
2335
2398
|
const [rest, index] = tail(location);
|
|
@@ -2348,6 +2411,7 @@ class Gridview {
|
|
|
2348
2411
|
if (!(parent instanceof BranchNode)) {
|
|
2349
2412
|
throw new Error('Invalid from location');
|
|
2350
2413
|
}
|
|
2414
|
+
this._onDidViewVisibilityChange.fire();
|
|
2351
2415
|
parent.setChildVisible(index, visible);
|
|
2352
2416
|
}
|
|
2353
2417
|
moveView(parentLocation, from, to) {
|
|
@@ -2380,7 +2444,7 @@ class Gridview {
|
|
|
2380
2444
|
}
|
|
2381
2445
|
const child = grandParent.removeChild(parentIndex);
|
|
2382
2446
|
child.dispose();
|
|
2383
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.
|
|
2447
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);
|
|
2384
2448
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2385
2449
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2386
2450
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2619,14 +2683,18 @@ class BaseGrid extends Resizable {
|
|
|
2619
2683
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2620
2684
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2621
2685
|
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2686
|
+
this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
|
|
2687
|
+
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2622
2688
|
this.element.style.height = '100%';
|
|
2623
2689
|
this.element.style.width = '100%';
|
|
2624
2690
|
options.parentElement.appendChild(this.element);
|
|
2625
|
-
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
2691
|
+
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2626
2692
|
this.gridview.locked = !!options.locked;
|
|
2627
2693
|
this.element.appendChild(this.gridview.element);
|
|
2628
2694
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2629
|
-
this.addDisposables(
|
|
2695
|
+
this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2696
|
+
this.layout(this.width, this.height, true);
|
|
2697
|
+
}), Disposable.from(() => {
|
|
2630
2698
|
var _a;
|
|
2631
2699
|
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
2632
2700
|
}), this.gridview.onDidChange(() => {
|
|
@@ -3204,6 +3272,9 @@ class DockviewApi {
|
|
|
3204
3272
|
get totalPanels() {
|
|
3205
3273
|
return this.component.totalPanels;
|
|
3206
3274
|
}
|
|
3275
|
+
get gap() {
|
|
3276
|
+
return this.component.gap;
|
|
3277
|
+
}
|
|
3207
3278
|
/**
|
|
3208
3279
|
* Invoked when the active group changes. May be undefined if no group is active.
|
|
3209
3280
|
*/
|
|
@@ -3240,6 +3311,9 @@ class DockviewApi {
|
|
|
3240
3311
|
get onDidRemovePanel() {
|
|
3241
3312
|
return this.component.onDidRemovePanel;
|
|
3242
3313
|
}
|
|
3314
|
+
get onDidMovePanel() {
|
|
3315
|
+
return this.component.onDidMovePanel;
|
|
3316
|
+
}
|
|
3243
3317
|
/**
|
|
3244
3318
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3245
3319
|
*/
|
|
@@ -3380,8 +3454,8 @@ class DockviewApi {
|
|
|
3380
3454
|
/**
|
|
3381
3455
|
* Add a floating group
|
|
3382
3456
|
*/
|
|
3383
|
-
addFloatingGroup(item,
|
|
3384
|
-
return this.component.addFloatingGroup(item,
|
|
3457
|
+
addFloatingGroup(item, options) {
|
|
3458
|
+
return this.component.addFloatingGroup(item, options);
|
|
3385
3459
|
}
|
|
3386
3460
|
/**
|
|
3387
3461
|
* Create a component from a serialized object.
|
|
@@ -3431,6 +3505,9 @@ class DockviewApi {
|
|
|
3431
3505
|
addPopoutGroup(item, options) {
|
|
3432
3506
|
return this.component.addPopoutGroup(item, options);
|
|
3433
3507
|
}
|
|
3508
|
+
setGap(gap) {
|
|
3509
|
+
this.component.updateOptions({ gap });
|
|
3510
|
+
}
|
|
3434
3511
|
}
|
|
3435
3512
|
|
|
3436
3513
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4800,7 +4877,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4800
4877
|
this.accessor.addFloatingGroup(this.group, {
|
|
4801
4878
|
x: left - rootLeft + 20,
|
|
4802
4879
|
y: top - rootTop + 20,
|
|
4803
|
-
|
|
4880
|
+
inDragMode: true,
|
|
4881
|
+
});
|
|
4804
4882
|
}
|
|
4805
4883
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4806
4884
|
if (event.defaultPrevented) {
|
|
@@ -4869,7 +4947,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4869
4947
|
this.accessor.addFloatingGroup(panel, {
|
|
4870
4948
|
x: left - rootLeft,
|
|
4871
4949
|
y: top - rootTop,
|
|
4872
|
-
|
|
4950
|
+
inDragMode: true,
|
|
4951
|
+
});
|
|
4873
4952
|
return;
|
|
4874
4953
|
}
|
|
4875
4954
|
const isLeftClick = event.button === 0;
|
|
@@ -4942,6 +5021,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4942
5021
|
rootOverlayModel: undefined,
|
|
4943
5022
|
locked: undefined,
|
|
4944
5023
|
disableDnd: undefined,
|
|
5024
|
+
gap: undefined,
|
|
4945
5025
|
};
|
|
4946
5026
|
return Object.keys(properties);
|
|
4947
5027
|
})();
|
|
@@ -5672,6 +5752,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5672
5752
|
get isActive() {
|
|
5673
5753
|
return this.api.isActive;
|
|
5674
5754
|
}
|
|
5755
|
+
get isVisible() {
|
|
5756
|
+
return this.api.isVisible;
|
|
5757
|
+
}
|
|
5675
5758
|
constructor(id, component, options, api) {
|
|
5676
5759
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5677
5760
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6434,12 +6517,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6434
6517
|
this._element.appendChild(this.options.content);
|
|
6435
6518
|
this.options.container.appendChild(this._element);
|
|
6436
6519
|
// if input bad resize within acceptable boundaries
|
|
6437
|
-
this.setBounds({
|
|
6438
|
-
height: this.options.height,
|
|
6439
|
-
width: this.options.width,
|
|
6440
|
-
top: this.options.top,
|
|
6441
|
-
left: this.options.left,
|
|
6442
|
-
});
|
|
6520
|
+
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 })));
|
|
6443
6521
|
}
|
|
6444
6522
|
setBounds(bounds = {}) {
|
|
6445
6523
|
if (typeof bounds.height === 'number') {
|
|
@@ -6448,11 +6526,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6448
6526
|
if (typeof bounds.width === 'number') {
|
|
6449
6527
|
this._element.style.width = `${bounds.width}px`;
|
|
6450
6528
|
}
|
|
6451
|
-
if (typeof bounds.top === 'number') {
|
|
6529
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6452
6530
|
this._element.style.top = `${bounds.top}px`;
|
|
6531
|
+
this._element.style.bottom = 'auto';
|
|
6532
|
+
this.verticalAlignment = 'top';
|
|
6533
|
+
}
|
|
6534
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6535
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6536
|
+
this._element.style.top = 'auto';
|
|
6537
|
+
this.verticalAlignment = 'bottom';
|
|
6453
6538
|
}
|
|
6454
|
-
if (typeof bounds.left === 'number') {
|
|
6539
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6455
6540
|
this._element.style.left = `${bounds.left}px`;
|
|
6541
|
+
this._element.style.right = 'auto';
|
|
6542
|
+
this.horiziontalAlignment = 'left';
|
|
6543
|
+
}
|
|
6544
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6545
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6546
|
+
this._element.style.left = 'auto';
|
|
6547
|
+
this.horiziontalAlignment = 'right';
|
|
6456
6548
|
}
|
|
6457
6549
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6458
6550
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6460,24 +6552,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6460
6552
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6461
6553
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6462
6554
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6463
|
-
const yOffset =
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
|
|
6469
|
-
this.
|
|
6555
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6556
|
+
if (this.verticalAlignment === 'top') {
|
|
6557
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6558
|
+
this._element.style.top = `${top}px`;
|
|
6559
|
+
this._element.style.bottom = 'auto';
|
|
6560
|
+
}
|
|
6561
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6562
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6563
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6564
|
+
this._element.style.top = 'auto';
|
|
6565
|
+
}
|
|
6566
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6567
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6568
|
+
this._element.style.left = `${left}px`;
|
|
6569
|
+
this._element.style.right = 'auto';
|
|
6570
|
+
}
|
|
6571
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6572
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6573
|
+
this._element.style.right = `${right}px`;
|
|
6574
|
+
this._element.style.left = 'auto';
|
|
6575
|
+
}
|
|
6470
6576
|
this._onDidChange.fire();
|
|
6471
6577
|
}
|
|
6472
6578
|
toJSON() {
|
|
6473
6579
|
const container = this.options.container.getBoundingClientRect();
|
|
6474
6580
|
const element = this._element.getBoundingClientRect();
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6581
|
+
const result = {};
|
|
6582
|
+
if (this.verticalAlignment === 'top') {
|
|
6583
|
+
result.top = parseFloat(this._element.style.top);
|
|
6584
|
+
}
|
|
6585
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6586
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6587
|
+
}
|
|
6588
|
+
else {
|
|
6589
|
+
result.top = element.top - container.top;
|
|
6590
|
+
}
|
|
6591
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6592
|
+
result.left = parseFloat(this._element.style.left);
|
|
6593
|
+
}
|
|
6594
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6595
|
+
result.right = parseFloat(this._element.style.right);
|
|
6596
|
+
}
|
|
6597
|
+
else {
|
|
6598
|
+
result.left = element.left - container.left;
|
|
6599
|
+
}
|
|
6600
|
+
result.width = element.width;
|
|
6601
|
+
result.height = element.height;
|
|
6602
|
+
return result;
|
|
6481
6603
|
}
|
|
6482
6604
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6483
6605
|
const move = new MutableDisposable();
|
|
@@ -6509,12 +6631,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6509
6631
|
};
|
|
6510
6632
|
}
|
|
6511
6633
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6512
|
-
const yOffset = Math.max(0, this.
|
|
6513
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6514
|
-
: 0);
|
|
6515
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6634
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6516
6635
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6517
|
-
|
|
6636
|
+
const bottom = clamp(offset.y -
|
|
6637
|
+
y +
|
|
6638
|
+
containerRect.height -
|
|
6639
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6640
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6641
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6642
|
+
const bounds = {};
|
|
6643
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6644
|
+
if (top <= bottom) {
|
|
6645
|
+
bounds.top = top;
|
|
6646
|
+
}
|
|
6647
|
+
else {
|
|
6648
|
+
bounds.bottom = bottom;
|
|
6649
|
+
}
|
|
6650
|
+
// Anchor to left or to right depending on which one is closer
|
|
6651
|
+
if (left <= right) {
|
|
6652
|
+
bounds.left = left;
|
|
6653
|
+
}
|
|
6654
|
+
else {
|
|
6655
|
+
bounds.right = right;
|
|
6656
|
+
}
|
|
6657
|
+
this.setBounds(bounds);
|
|
6518
6658
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6519
6659
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6520
6660
|
move.dispose();
|
|
@@ -6582,8 +6722,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6582
6722
|
};
|
|
6583
6723
|
}
|
|
6584
6724
|
let top = undefined;
|
|
6725
|
+
let bottom = undefined;
|
|
6585
6726
|
let height = undefined;
|
|
6586
6727
|
let left = undefined;
|
|
6728
|
+
let right = undefined;
|
|
6587
6729
|
let width = undefined;
|
|
6588
6730
|
const moveTop = () => {
|
|
6589
6731
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6597,6 +6739,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6597
6739
|
startPosition.originalY +
|
|
6598
6740
|
startPosition.originalHeight -
|
|
6599
6741
|
top;
|
|
6742
|
+
bottom = containerRect.height - top - height;
|
|
6600
6743
|
};
|
|
6601
6744
|
const moveBottom = () => {
|
|
6602
6745
|
top =
|
|
@@ -6608,6 +6751,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6608
6751
|
? -top +
|
|
6609
6752
|
this.options.minimumInViewportHeight
|
|
6610
6753
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6754
|
+
bottom = containerRect.height - top - height;
|
|
6611
6755
|
};
|
|
6612
6756
|
const moveLeft = () => {
|
|
6613
6757
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6621,6 +6765,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6621
6765
|
startPosition.originalX +
|
|
6622
6766
|
startPosition.originalWidth -
|
|
6623
6767
|
left;
|
|
6768
|
+
right = containerRect.width - left - width;
|
|
6624
6769
|
};
|
|
6625
6770
|
const moveRight = () => {
|
|
6626
6771
|
left =
|
|
@@ -6632,6 +6777,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6632
6777
|
? -left +
|
|
6633
6778
|
this.options.minimumInViewportWidth
|
|
6634
6779
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6780
|
+
right = containerRect.width - left - width;
|
|
6635
6781
|
};
|
|
6636
6782
|
switch (direction) {
|
|
6637
6783
|
case 'top':
|
|
@@ -6663,7 +6809,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6663
6809
|
moveRight();
|
|
6664
6810
|
break;
|
|
6665
6811
|
}
|
|
6666
|
-
|
|
6812
|
+
const bounds = {};
|
|
6813
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6814
|
+
if (top <= bottom) {
|
|
6815
|
+
bounds.top = top;
|
|
6816
|
+
}
|
|
6817
|
+
else {
|
|
6818
|
+
bounds.bottom = bottom;
|
|
6819
|
+
}
|
|
6820
|
+
// Anchor to left or to right depending on which one is closer
|
|
6821
|
+
if (left <= right) {
|
|
6822
|
+
bounds.left = left;
|
|
6823
|
+
}
|
|
6824
|
+
else {
|
|
6825
|
+
bounds.right = right;
|
|
6826
|
+
}
|
|
6827
|
+
bounds.height = height;
|
|
6828
|
+
bounds.width = width;
|
|
6829
|
+
this.setBounds(bounds);
|
|
6667
6830
|
}), {
|
|
6668
6831
|
dispose: () => {
|
|
6669
6832
|
for (const iframe of iframes) {
|
|
@@ -6686,7 +6849,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6686
6849
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6687
6850
|
return height - this.options.minimumInViewportHeight;
|
|
6688
6851
|
}
|
|
6689
|
-
return
|
|
6852
|
+
return 0;
|
|
6690
6853
|
}
|
|
6691
6854
|
dispose() {
|
|
6692
6855
|
this._element.remove();
|
|
@@ -6709,7 +6872,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6709
6872
|
}
|
|
6710
6873
|
|
|
6711
6874
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6712
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6875
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6713
6876
|
|
|
6714
6877
|
function createFocusableElement() {
|
|
6715
6878
|
const element = document.createElement('div');
|
|
@@ -7041,6 +7204,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7041
7204
|
get api() {
|
|
7042
7205
|
return this._api;
|
|
7043
7206
|
}
|
|
7207
|
+
get gap() {
|
|
7208
|
+
return this.gridview.margin;
|
|
7209
|
+
}
|
|
7044
7210
|
constructor(options) {
|
|
7045
7211
|
var _a;
|
|
7046
7212
|
super({
|
|
@@ -7052,6 +7218,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7052
7218
|
parentElement: options.parentElement,
|
|
7053
7219
|
disableAutoResizing: options.disableAutoResizing,
|
|
7054
7220
|
locked: options.locked,
|
|
7221
|
+
margin: options.gap,
|
|
7055
7222
|
});
|
|
7056
7223
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7057
7224
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7077,9 +7244,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7077
7244
|
this._onDidActivePanelChange = new Emitter();
|
|
7078
7245
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7079
7246
|
this._onDidMovePanel = new Emitter();
|
|
7247
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7080
7248
|
this._floatingGroups = [];
|
|
7081
7249
|
this._popoutGroups = [];
|
|
7082
|
-
this._ignoreEvents = 0;
|
|
7083
7250
|
this._onDidRemoveGroup = new Emitter();
|
|
7084
7251
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7085
7252
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7093,7 +7260,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7093
7260
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7094
7261
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7095
7262
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7096
|
-
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.
|
|
7263
|
+
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(() => {
|
|
7264
|
+
this.updateWatermark();
|
|
7265
|
+
}), this.onDidAdd((event) => {
|
|
7097
7266
|
if (!this._moving) {
|
|
7098
7267
|
this._onDidAddGroup.fire(event);
|
|
7099
7268
|
}
|
|
@@ -7107,7 +7276,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7107
7276
|
}
|
|
7108
7277
|
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7109
7278
|
this.updateWatermark();
|
|
7110
|
-
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7279
|
+
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7111
7280
|
this._bufferOnDidLayoutChange.fire();
|
|
7112
7281
|
}), Disposable.from(() => {
|
|
7113
7282
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7207,7 +7376,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7207
7376
|
var _a, _b, _c;
|
|
7208
7377
|
if (itemToPopout instanceof DockviewPanel &&
|
|
7209
7378
|
itemToPopout.group.size === 1) {
|
|
7210
|
-
return this.addPopoutGroup(itemToPopout.group);
|
|
7379
|
+
return this.addPopoutGroup(itemToPopout.group, options);
|
|
7211
7380
|
}
|
|
7212
7381
|
const theme = getDockviewTheme(this.gridview.element);
|
|
7213
7382
|
const element = this.element;
|
|
@@ -7358,8 +7527,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7358
7527
|
console.error('dockview: failed to create popout window', err);
|
|
7359
7528
|
});
|
|
7360
7529
|
}
|
|
7361
|
-
addFloatingGroup(item,
|
|
7362
|
-
var _a, _b, _c, _d, _e
|
|
7530
|
+
addFloatingGroup(item, options) {
|
|
7531
|
+
var _a, _b, _c, _d, _e;
|
|
7363
7532
|
let group;
|
|
7364
7533
|
if (item instanceof DockviewPanel) {
|
|
7365
7534
|
group = this.createGroup();
|
|
@@ -7404,26 +7573,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7404
7573
|
}
|
|
7405
7574
|
}
|
|
7406
7575
|
group.model.location = { type: 'floating' };
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7576
|
+
function getAnchoredBox() {
|
|
7577
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7578
|
+
const result = {};
|
|
7579
|
+
if ('left' in options.position) {
|
|
7580
|
+
result.left = Math.max(options.position.left, 0);
|
|
7581
|
+
}
|
|
7582
|
+
else if ('right' in options.position) {
|
|
7583
|
+
result.right = Math.max(options.position.right, 0);
|
|
7584
|
+
}
|
|
7585
|
+
else {
|
|
7586
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7587
|
+
}
|
|
7588
|
+
if ('top' in options.position) {
|
|
7589
|
+
result.top = Math.max(options.position.top, 0);
|
|
7590
|
+
}
|
|
7591
|
+
else if ('bottom' in options.position) {
|
|
7592
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7593
|
+
}
|
|
7594
|
+
else {
|
|
7595
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7596
|
+
}
|
|
7597
|
+
if (typeof options.width === 'number') {
|
|
7598
|
+
result.width = Math.max(options.width, 0);
|
|
7599
|
+
}
|
|
7600
|
+
else {
|
|
7601
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7602
|
+
}
|
|
7603
|
+
if (typeof options.height === 'number') {
|
|
7604
|
+
result.height = Math.max(options.height, 0);
|
|
7605
|
+
}
|
|
7606
|
+
else {
|
|
7607
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7608
|
+
}
|
|
7609
|
+
return result;
|
|
7610
|
+
}
|
|
7611
|
+
return {
|
|
7612
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7613
|
+
? Math.max(options.x, 0)
|
|
7614
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7615
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7616
|
+
? Math.max(options.y, 0)
|
|
7617
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7618
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7619
|
+
? Math.max(options.width, 0)
|
|
7620
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7621
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7622
|
+
? Math.max(options.height, 0)
|
|
7623
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7624
|
+
};
|
|
7625
|
+
}
|
|
7626
|
+
const anchoredBox = getAnchoredBox();
|
|
7627
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7421
7628
|
? undefined
|
|
7422
|
-
: (
|
|
7423
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7629
|
+
: (_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'
|
|
7424
7630
|
? undefined
|
|
7425
|
-
: (
|
|
7426
|
-
});
|
|
7631
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7427
7632
|
const el = group.element.querySelector('.void-container');
|
|
7428
7633
|
if (!el) {
|
|
7429
7634
|
throw new Error('failed to find drag handle');
|
|
@@ -7521,12 +7726,21 @@ class DockviewComponent extends BaseGrid {
|
|
|
7521
7726
|
group.overlay.minimumInViewportWidth =
|
|
7522
7727
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7523
7728
|
}
|
|
7524
|
-
group.overlay.setBounds(
|
|
7729
|
+
group.overlay.setBounds();
|
|
7525
7730
|
}
|
|
7526
7731
|
}
|
|
7527
7732
|
if (changed_rootOverlayOptions) {
|
|
7528
7733
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7529
7734
|
}
|
|
7735
|
+
if (
|
|
7736
|
+
// if explicitly set as `undefined`
|
|
7737
|
+
'gap' in options &&
|
|
7738
|
+
options.gap === undefined) {
|
|
7739
|
+
this.gridview.margin = 0;
|
|
7740
|
+
}
|
|
7741
|
+
if (typeof options.gap === 'number') {
|
|
7742
|
+
this.gridview.margin = options.gap;
|
|
7743
|
+
}
|
|
7530
7744
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7531
7745
|
}
|
|
7532
7746
|
layout(width, height, forceResize) {
|
|
@@ -7688,11 +7902,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7688
7902
|
const { data, position } = serializedFloatingGroup;
|
|
7689
7903
|
const group = createGroupFromSerializedState(data);
|
|
7690
7904
|
this.addFloatingGroup(group, {
|
|
7691
|
-
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7905
|
+
position: position,
|
|
7906
|
+
skipRemoveGroup: true,
|
|
7907
|
+
inDragMode: false,
|
|
7908
|
+
});
|
|
7696
7909
|
}
|
|
7697
7910
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7698
7911
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7823,15 +8036,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
7823
8036
|
if (options.floating) {
|
|
7824
8037
|
const group = this.createGroup();
|
|
7825
8038
|
this._onDidAddGroup.fire(group);
|
|
7826
|
-
const
|
|
8039
|
+
const floatingGroupOptions = typeof options.floating === 'object' &&
|
|
7827
8040
|
options.floating !== null
|
|
7828
8041
|
? options.floating
|
|
7829
8042
|
: {};
|
|
7830
|
-
this.addFloatingGroup(group,
|
|
7831
|
-
inDragMode: false,
|
|
7832
|
-
skipRemoveGroup: true,
|
|
7833
|
-
skipActiveGroup: true,
|
|
7834
|
-
});
|
|
8043
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, floatingGroupOptions), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7835
8044
|
panel = this.createPanel(options, group);
|
|
7836
8045
|
group.model.openPanel(panel, {
|
|
7837
8046
|
skipSetActive: options.inactive,
|
|
@@ -7870,11 +8079,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7870
8079
|
options.floating !== null
|
|
7871
8080
|
? options.floating
|
|
7872
8081
|
: {};
|
|
7873
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7874
|
-
inDragMode: false,
|
|
7875
|
-
skipRemoveGroup: true,
|
|
7876
|
-
skipActiveGroup: true,
|
|
7877
|
-
});
|
|
8082
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7878
8083
|
panel = this.createPanel(options, group);
|
|
7879
8084
|
group.model.openPanel(panel, {
|
|
7880
8085
|
skipSetActive: options.inactive,
|
|
@@ -7929,6 +8134,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7929
8134
|
});
|
|
7930
8135
|
const watermarkContainer = document.createElement('div');
|
|
7931
8136
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8137
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7932
8138
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7933
8139
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7934
8140
|
}
|
|
@@ -8117,6 +8323,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8117
8323
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8118
8324
|
this._onDidMovePanel.fire({
|
|
8119
8325
|
panel: removedPanel,
|
|
8326
|
+
from: sourceGroup,
|
|
8120
8327
|
});
|
|
8121
8328
|
}
|
|
8122
8329
|
else {
|
|
@@ -8140,6 +8347,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8140
8347
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8141
8348
|
// which is equivalent to swapping two views in this case
|
|
8142
8349
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8350
|
+
this._onDidMovePanel.fire({
|
|
8351
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8352
|
+
from: sourceGroup,
|
|
8353
|
+
});
|
|
8143
8354
|
return;
|
|
8144
8355
|
}
|
|
8145
8356
|
}
|
|
@@ -8153,6 +8364,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8153
8364
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8154
8365
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8155
8366
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8367
|
+
this._onDidMovePanel.fire({
|
|
8368
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8369
|
+
from: sourceGroup,
|
|
8370
|
+
});
|
|
8156
8371
|
}
|
|
8157
8372
|
else {
|
|
8158
8373
|
/**
|
|
@@ -8172,6 +8387,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8172
8387
|
skipSetGroupActive: true,
|
|
8173
8388
|
}));
|
|
8174
8389
|
this.doSetGroupAndPanelActive(group);
|
|
8390
|
+
this._onDidMovePanel.fire({
|
|
8391
|
+
panel: removedPanel,
|
|
8392
|
+
from: sourceGroup,
|
|
8393
|
+
});
|
|
8175
8394
|
}
|
|
8176
8395
|
}
|
|
8177
8396
|
}
|
|
@@ -8196,9 +8415,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8196
8415
|
}
|
|
8197
8416
|
});
|
|
8198
8417
|
this.doSetGroupAndPanelActive(to);
|
|
8199
|
-
panels.forEach((panel) => {
|
|
8200
|
-
this._onDidMovePanel.fire({ panel });
|
|
8201
|
-
});
|
|
8202
8418
|
}
|
|
8203
8419
|
else {
|
|
8204
8420
|
switch (from.api.location.type) {
|
|
@@ -8224,10 +8440,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8224
8440
|
const referenceLocation = getGridLocation(to.element);
|
|
8225
8441
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8226
8442
|
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
8227
|
-
from.panels.forEach((panel) => {
|
|
8228
|
-
this._onDidMovePanel.fire({ panel });
|
|
8229
|
-
});
|
|
8230
8443
|
}
|
|
8444
|
+
from.panels.forEach((panel) => {
|
|
8445
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8446
|
+
});
|
|
8231
8447
|
}
|
|
8232
8448
|
doSetGroupActive(group) {
|
|
8233
8449
|
super.doSetGroupActive(group);
|