dockview-react 1.14.1 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dockview-react.amd.js +347 -139
- 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 +346 -138
- package/dist/dockview-react.amd.noStyle.js.map +1 -1
- package/dist/dockview-react.cjs.js +347 -139
- package/dist/dockview-react.cjs.js.map +1 -1
- package/dist/dockview-react.esm.js +347 -139
- 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 +347 -139
- 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 +346 -138
- 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.0
|
|
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(() => {
|
|
@@ -3240,6 +3308,9 @@ class DockviewApi {
|
|
|
3240
3308
|
get onDidRemovePanel() {
|
|
3241
3309
|
return this.component.onDidRemovePanel;
|
|
3242
3310
|
}
|
|
3311
|
+
get onDidMovePanel() {
|
|
3312
|
+
return this.component.onDidMovePanel;
|
|
3313
|
+
}
|
|
3243
3314
|
/**
|
|
3244
3315
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3245
3316
|
*/
|
|
@@ -3380,8 +3451,8 @@ class DockviewApi {
|
|
|
3380
3451
|
/**
|
|
3381
3452
|
* Add a floating group
|
|
3382
3453
|
*/
|
|
3383
|
-
addFloatingGroup(item,
|
|
3384
|
-
return this.component.addFloatingGroup(item,
|
|
3454
|
+
addFloatingGroup(item, options) {
|
|
3455
|
+
return this.component.addFloatingGroup(item, options);
|
|
3385
3456
|
}
|
|
3386
3457
|
/**
|
|
3387
3458
|
* Create a component from a serialized object.
|
|
@@ -3431,6 +3502,9 @@ class DockviewApi {
|
|
|
3431
3502
|
addPopoutGroup(item, options) {
|
|
3432
3503
|
return this.component.addPopoutGroup(item, options);
|
|
3433
3504
|
}
|
|
3505
|
+
setGap(gap) {
|
|
3506
|
+
this.component.updateOptions({ gap });
|
|
3507
|
+
}
|
|
3434
3508
|
}
|
|
3435
3509
|
|
|
3436
3510
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4800,7 +4874,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4800
4874
|
this.accessor.addFloatingGroup(this.group, {
|
|
4801
4875
|
x: left - rootLeft + 20,
|
|
4802
4876
|
y: top - rootTop + 20,
|
|
4803
|
-
|
|
4877
|
+
inDragMode: true,
|
|
4878
|
+
});
|
|
4804
4879
|
}
|
|
4805
4880
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4806
4881
|
if (event.defaultPrevented) {
|
|
@@ -4869,7 +4944,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4869
4944
|
this.accessor.addFloatingGroup(panel, {
|
|
4870
4945
|
x: left - rootLeft,
|
|
4871
4946
|
y: top - rootTop,
|
|
4872
|
-
|
|
4947
|
+
inDragMode: true,
|
|
4948
|
+
});
|
|
4873
4949
|
return;
|
|
4874
4950
|
}
|
|
4875
4951
|
const isLeftClick = event.button === 0;
|
|
@@ -4942,6 +5018,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4942
5018
|
rootOverlayModel: undefined,
|
|
4943
5019
|
locked: undefined,
|
|
4944
5020
|
disableDnd: undefined,
|
|
5021
|
+
gap: undefined,
|
|
4945
5022
|
};
|
|
4946
5023
|
return Object.keys(properties);
|
|
4947
5024
|
})();
|
|
@@ -5672,6 +5749,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5672
5749
|
get isActive() {
|
|
5673
5750
|
return this.api.isActive;
|
|
5674
5751
|
}
|
|
5752
|
+
get isVisible() {
|
|
5753
|
+
return this.api.isVisible;
|
|
5754
|
+
}
|
|
5675
5755
|
constructor(id, component, options, api) {
|
|
5676
5756
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5677
5757
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6208,52 +6288,40 @@ class DefaultTab extends CompositeDisposable {
|
|
|
6208
6288
|
}
|
|
6209
6289
|
constructor() {
|
|
6210
6290
|
super();
|
|
6211
|
-
//
|
|
6212
|
-
this.params = {};
|
|
6213
6291
|
this._element = document.createElement('div');
|
|
6214
6292
|
this._element.className = 'dv-default-tab';
|
|
6215
|
-
//
|
|
6216
6293
|
this._content = document.createElement('div');
|
|
6217
6294
|
this._content.className = 'dv-default-tab-content';
|
|
6218
6295
|
this.action = document.createElement('div');
|
|
6219
6296
|
this.action.className = 'dv-default-tab-action';
|
|
6220
6297
|
this.action.appendChild(createCloseButton());
|
|
6221
|
-
//
|
|
6222
6298
|
this._element.appendChild(this._content);
|
|
6223
6299
|
this._element.appendChild(this.action);
|
|
6224
|
-
//
|
|
6225
6300
|
this.addDisposables(addDisposableListener(this.action, 'mousedown', (ev) => {
|
|
6226
6301
|
ev.preventDefault();
|
|
6227
6302
|
}));
|
|
6228
6303
|
this.render();
|
|
6229
6304
|
}
|
|
6230
|
-
update(event) {
|
|
6231
|
-
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
6232
|
-
this.render();
|
|
6233
|
-
}
|
|
6234
|
-
focus() {
|
|
6235
|
-
//noop
|
|
6236
|
-
}
|
|
6237
6305
|
init(params) {
|
|
6238
|
-
this.
|
|
6239
|
-
this.
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6306
|
+
this._title = params.title;
|
|
6307
|
+
this.addDisposables(params.api.onDidTitleChange((event) => {
|
|
6308
|
+
this._title = event.title;
|
|
6309
|
+
this.render();
|
|
6310
|
+
}), addDisposableListener(this.action, 'mousedown', (ev) => {
|
|
6311
|
+
ev.preventDefault();
|
|
6312
|
+
}), addDisposableListener(this.action, 'click', (ev) => {
|
|
6313
|
+
if (ev.defaultPrevented) {
|
|
6314
|
+
return;
|
|
6315
|
+
}
|
|
6316
|
+
ev.preventDefault();
|
|
6317
|
+
params.api.close();
|
|
6318
|
+
}));
|
|
6249
6319
|
this.render();
|
|
6250
6320
|
}
|
|
6251
|
-
layout(_width, _height) {
|
|
6252
|
-
// noop
|
|
6253
|
-
}
|
|
6254
6321
|
render() {
|
|
6255
|
-
|
|
6256
|
-
|
|
6322
|
+
var _a;
|
|
6323
|
+
if (this._content.textContent !== this._title) {
|
|
6324
|
+
this._content.textContent = (_a = this._title) !== null && _a !== void 0 ? _a : '';
|
|
6257
6325
|
}
|
|
6258
6326
|
}
|
|
6259
6327
|
}
|
|
@@ -6446,12 +6514,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6446
6514
|
this._element.appendChild(this.options.content);
|
|
6447
6515
|
this.options.container.appendChild(this._element);
|
|
6448
6516
|
// if input bad resize within acceptable boundaries
|
|
6449
|
-
this.setBounds({
|
|
6450
|
-
height: this.options.height,
|
|
6451
|
-
width: this.options.width,
|
|
6452
|
-
top: this.options.top,
|
|
6453
|
-
left: this.options.left,
|
|
6454
|
-
});
|
|
6517
|
+
this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
|
|
6455
6518
|
}
|
|
6456
6519
|
setBounds(bounds = {}) {
|
|
6457
6520
|
if (typeof bounds.height === 'number') {
|
|
@@ -6460,11 +6523,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6460
6523
|
if (typeof bounds.width === 'number') {
|
|
6461
6524
|
this._element.style.width = `${bounds.width}px`;
|
|
6462
6525
|
}
|
|
6463
|
-
if (typeof bounds.top === 'number') {
|
|
6526
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6464
6527
|
this._element.style.top = `${bounds.top}px`;
|
|
6528
|
+
this._element.style.bottom = 'auto';
|
|
6529
|
+
this.verticalAlignment = 'top';
|
|
6530
|
+
}
|
|
6531
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6532
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6533
|
+
this._element.style.top = 'auto';
|
|
6534
|
+
this.verticalAlignment = 'bottom';
|
|
6465
6535
|
}
|
|
6466
|
-
if (typeof bounds.left === 'number') {
|
|
6536
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6467
6537
|
this._element.style.left = `${bounds.left}px`;
|
|
6538
|
+
this._element.style.right = 'auto';
|
|
6539
|
+
this.horiziontalAlignment = 'left';
|
|
6540
|
+
}
|
|
6541
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6542
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6543
|
+
this._element.style.left = 'auto';
|
|
6544
|
+
this.horiziontalAlignment = 'right';
|
|
6468
6545
|
}
|
|
6469
6546
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6470
6547
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6472,24 +6549,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6472
6549
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6473
6550
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6474
6551
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6475
|
-
const yOffset =
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
this.
|
|
6552
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6553
|
+
if (this.verticalAlignment === 'top') {
|
|
6554
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6555
|
+
this._element.style.top = `${top}px`;
|
|
6556
|
+
this._element.style.bottom = 'auto';
|
|
6557
|
+
}
|
|
6558
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6559
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6560
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6561
|
+
this._element.style.top = 'auto';
|
|
6562
|
+
}
|
|
6563
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6564
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6565
|
+
this._element.style.left = `${left}px`;
|
|
6566
|
+
this._element.style.right = 'auto';
|
|
6567
|
+
}
|
|
6568
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6569
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6570
|
+
this._element.style.right = `${right}px`;
|
|
6571
|
+
this._element.style.left = 'auto';
|
|
6572
|
+
}
|
|
6482
6573
|
this._onDidChange.fire();
|
|
6483
6574
|
}
|
|
6484
6575
|
toJSON() {
|
|
6485
6576
|
const container = this.options.container.getBoundingClientRect();
|
|
6486
6577
|
const element = this._element.getBoundingClientRect();
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6578
|
+
const result = {};
|
|
6579
|
+
if (this.verticalAlignment === 'top') {
|
|
6580
|
+
result.top = parseFloat(this._element.style.top);
|
|
6581
|
+
}
|
|
6582
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6583
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6584
|
+
}
|
|
6585
|
+
else {
|
|
6586
|
+
result.top = element.top - container.top;
|
|
6587
|
+
}
|
|
6588
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6589
|
+
result.left = parseFloat(this._element.style.left);
|
|
6590
|
+
}
|
|
6591
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6592
|
+
result.right = parseFloat(this._element.style.right);
|
|
6593
|
+
}
|
|
6594
|
+
else {
|
|
6595
|
+
result.left = element.left - container.left;
|
|
6596
|
+
}
|
|
6597
|
+
result.width = element.width;
|
|
6598
|
+
result.height = element.height;
|
|
6599
|
+
return result;
|
|
6493
6600
|
}
|
|
6494
6601
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6495
6602
|
const move = new MutableDisposable();
|
|
@@ -6521,12 +6628,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6521
6628
|
};
|
|
6522
6629
|
}
|
|
6523
6630
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6524
|
-
const yOffset = Math.max(0, this.
|
|
6525
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6526
|
-
: 0);
|
|
6527
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6631
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6528
6632
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6529
|
-
|
|
6633
|
+
const bottom = clamp(offset.y -
|
|
6634
|
+
y +
|
|
6635
|
+
containerRect.height -
|
|
6636
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6637
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6638
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6639
|
+
const bounds = {};
|
|
6640
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6641
|
+
if (top <= bottom) {
|
|
6642
|
+
bounds.top = top;
|
|
6643
|
+
}
|
|
6644
|
+
else {
|
|
6645
|
+
bounds.bottom = bottom;
|
|
6646
|
+
}
|
|
6647
|
+
// Anchor to left or to right depending on which one is closer
|
|
6648
|
+
if (left <= right) {
|
|
6649
|
+
bounds.left = left;
|
|
6650
|
+
}
|
|
6651
|
+
else {
|
|
6652
|
+
bounds.right = right;
|
|
6653
|
+
}
|
|
6654
|
+
this.setBounds(bounds);
|
|
6530
6655
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6531
6656
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6532
6657
|
move.dispose();
|
|
@@ -6594,8 +6719,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6594
6719
|
};
|
|
6595
6720
|
}
|
|
6596
6721
|
let top = undefined;
|
|
6722
|
+
let bottom = undefined;
|
|
6597
6723
|
let height = undefined;
|
|
6598
6724
|
let left = undefined;
|
|
6725
|
+
let right = undefined;
|
|
6599
6726
|
let width = undefined;
|
|
6600
6727
|
const moveTop = () => {
|
|
6601
6728
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6609,6 +6736,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6609
6736
|
startPosition.originalY +
|
|
6610
6737
|
startPosition.originalHeight -
|
|
6611
6738
|
top;
|
|
6739
|
+
bottom = containerRect.height - top - height;
|
|
6612
6740
|
};
|
|
6613
6741
|
const moveBottom = () => {
|
|
6614
6742
|
top =
|
|
@@ -6620,6 +6748,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6620
6748
|
? -top +
|
|
6621
6749
|
this.options.minimumInViewportHeight
|
|
6622
6750
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6751
|
+
bottom = containerRect.height - top - height;
|
|
6623
6752
|
};
|
|
6624
6753
|
const moveLeft = () => {
|
|
6625
6754
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6633,6 +6762,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6633
6762
|
startPosition.originalX +
|
|
6634
6763
|
startPosition.originalWidth -
|
|
6635
6764
|
left;
|
|
6765
|
+
right = containerRect.width - left - width;
|
|
6636
6766
|
};
|
|
6637
6767
|
const moveRight = () => {
|
|
6638
6768
|
left =
|
|
@@ -6644,6 +6774,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6644
6774
|
? -left +
|
|
6645
6775
|
this.options.minimumInViewportWidth
|
|
6646
6776
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6777
|
+
right = containerRect.width - left - width;
|
|
6647
6778
|
};
|
|
6648
6779
|
switch (direction) {
|
|
6649
6780
|
case 'top':
|
|
@@ -6675,7 +6806,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6675
6806
|
moveRight();
|
|
6676
6807
|
break;
|
|
6677
6808
|
}
|
|
6678
|
-
|
|
6809
|
+
const bounds = {};
|
|
6810
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6811
|
+
if (top <= bottom) {
|
|
6812
|
+
bounds.top = top;
|
|
6813
|
+
}
|
|
6814
|
+
else {
|
|
6815
|
+
bounds.bottom = bottom;
|
|
6816
|
+
}
|
|
6817
|
+
// Anchor to left or to right depending on which one is closer
|
|
6818
|
+
if (left <= right) {
|
|
6819
|
+
bounds.left = left;
|
|
6820
|
+
}
|
|
6821
|
+
else {
|
|
6822
|
+
bounds.right = right;
|
|
6823
|
+
}
|
|
6824
|
+
bounds.height = height;
|
|
6825
|
+
bounds.width = width;
|
|
6826
|
+
this.setBounds(bounds);
|
|
6679
6827
|
}), {
|
|
6680
6828
|
dispose: () => {
|
|
6681
6829
|
for (const iframe of iframes) {
|
|
@@ -6698,7 +6846,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6698
6846
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6699
6847
|
return height - this.options.minimumInViewportHeight;
|
|
6700
6848
|
}
|
|
6701
|
-
return
|
|
6849
|
+
return 0;
|
|
6702
6850
|
}
|
|
6703
6851
|
dispose() {
|
|
6704
6852
|
this._element.remove();
|
|
@@ -6721,7 +6869,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6721
6869
|
}
|
|
6722
6870
|
|
|
6723
6871
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6724
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6872
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6725
6873
|
|
|
6726
6874
|
function createFocusableElement() {
|
|
6727
6875
|
const element = document.createElement('div');
|
|
@@ -7064,6 +7212,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7064
7212
|
parentElement: options.parentElement,
|
|
7065
7213
|
disableAutoResizing: options.disableAutoResizing,
|
|
7066
7214
|
locked: options.locked,
|
|
7215
|
+
margin: options.gap,
|
|
7067
7216
|
});
|
|
7068
7217
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7069
7218
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7089,9 +7238,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7089
7238
|
this._onDidActivePanelChange = new Emitter();
|
|
7090
7239
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7091
7240
|
this._onDidMovePanel = new Emitter();
|
|
7241
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7092
7242
|
this._floatingGroups = [];
|
|
7093
7243
|
this._popoutGroups = [];
|
|
7094
|
-
this._ignoreEvents = 0;
|
|
7095
7244
|
this._onDidRemoveGroup = new Emitter();
|
|
7096
7245
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7097
7246
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7105,7 +7254,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7105
7254
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7106
7255
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7107
7256
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7108
|
-
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.
|
|
7257
|
+
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(() => {
|
|
7258
|
+
this.updateWatermark();
|
|
7259
|
+
}), this.onDidAdd((event) => {
|
|
7109
7260
|
if (!this._moving) {
|
|
7110
7261
|
this._onDidAddGroup.fire(event);
|
|
7111
7262
|
}
|
|
@@ -7119,7 +7270,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7119
7270
|
}
|
|
7120
7271
|
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7121
7272
|
this.updateWatermark();
|
|
7122
|
-
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7273
|
+
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7123
7274
|
this._bufferOnDidLayoutChange.fire();
|
|
7124
7275
|
}), Disposable.from(() => {
|
|
7125
7276
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7370,8 +7521,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7370
7521
|
console.error('dockview: failed to create popout window', err);
|
|
7371
7522
|
});
|
|
7372
7523
|
}
|
|
7373
|
-
addFloatingGroup(item,
|
|
7374
|
-
var _a, _b, _c, _d, _e
|
|
7524
|
+
addFloatingGroup(item, options) {
|
|
7525
|
+
var _a, _b, _c, _d, _e;
|
|
7375
7526
|
let group;
|
|
7376
7527
|
if (item instanceof DockviewPanel) {
|
|
7377
7528
|
group = this.createGroup();
|
|
@@ -7416,26 +7567,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7416
7567
|
}
|
|
7417
7568
|
}
|
|
7418
7569
|
group.model.location = { type: 'floating' };
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7570
|
+
function getAnchoredBox() {
|
|
7571
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7572
|
+
const result = {};
|
|
7573
|
+
if ('left' in options.position) {
|
|
7574
|
+
result.left = Math.max(options.position.left, 0);
|
|
7575
|
+
}
|
|
7576
|
+
else if ('right' in options.position) {
|
|
7577
|
+
result.right = Math.max(options.position.right, 0);
|
|
7578
|
+
}
|
|
7579
|
+
else {
|
|
7580
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7581
|
+
}
|
|
7582
|
+
if ('top' in options.position) {
|
|
7583
|
+
result.top = Math.max(options.position.top, 0);
|
|
7584
|
+
}
|
|
7585
|
+
else if ('bottom' in options.position) {
|
|
7586
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7587
|
+
}
|
|
7588
|
+
else {
|
|
7589
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7590
|
+
}
|
|
7591
|
+
if ('width' in options.position) {
|
|
7592
|
+
result.width = Math.max(options.position.width, 0);
|
|
7593
|
+
}
|
|
7594
|
+
else {
|
|
7595
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7596
|
+
}
|
|
7597
|
+
if ('height' in options.position) {
|
|
7598
|
+
result.height = Math.max(options.position.height, 0);
|
|
7599
|
+
}
|
|
7600
|
+
else {
|
|
7601
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7602
|
+
}
|
|
7603
|
+
return result;
|
|
7604
|
+
}
|
|
7605
|
+
return {
|
|
7606
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7607
|
+
? Math.max(options.x, 0)
|
|
7608
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7609
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7610
|
+
? Math.max(options.y, 0)
|
|
7611
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7612
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7613
|
+
? Math.max(options.width, 0)
|
|
7614
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7615
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7616
|
+
? Math.max(options.height, 0)
|
|
7617
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7618
|
+
};
|
|
7619
|
+
}
|
|
7620
|
+
const anchoredBox = getAnchoredBox();
|
|
7621
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7433
7622
|
? undefined
|
|
7434
|
-
: (
|
|
7435
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7623
|
+
: (_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'
|
|
7436
7624
|
? undefined
|
|
7437
|
-
: (
|
|
7438
|
-
});
|
|
7625
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7439
7626
|
const el = group.element.querySelector('.void-container');
|
|
7440
7627
|
if (!el) {
|
|
7441
7628
|
throw new Error('failed to find drag handle');
|
|
@@ -7533,12 +7720,18 @@ class DockviewComponent extends BaseGrid {
|
|
|
7533
7720
|
group.overlay.minimumInViewportWidth =
|
|
7534
7721
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7535
7722
|
}
|
|
7536
|
-
group.overlay.setBounds(
|
|
7723
|
+
group.overlay.setBounds();
|
|
7537
7724
|
}
|
|
7538
7725
|
}
|
|
7539
7726
|
if (changed_rootOverlayOptions) {
|
|
7540
7727
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7541
7728
|
}
|
|
7729
|
+
if (this.gridview.margin !== 0 && options.gap === undefined) {
|
|
7730
|
+
this.gridview.margin = 0;
|
|
7731
|
+
}
|
|
7732
|
+
if (typeof options.gap === 'number') {
|
|
7733
|
+
this.gridview.margin = options.gap;
|
|
7734
|
+
}
|
|
7542
7735
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7543
7736
|
}
|
|
7544
7737
|
layout(width, height, forceResize) {
|
|
@@ -7700,11 +7893,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7700
7893
|
const { data, position } = serializedFloatingGroup;
|
|
7701
7894
|
const group = createGroupFromSerializedState(data);
|
|
7702
7895
|
this.addFloatingGroup(group, {
|
|
7703
|
-
|
|
7704
|
-
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7896
|
+
position: position,
|
|
7897
|
+
skipRemoveGroup: true,
|
|
7898
|
+
inDragMode: false,
|
|
7899
|
+
});
|
|
7708
7900
|
}
|
|
7709
7901
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7710
7902
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7839,11 +8031,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7839
8031
|
options.floating !== null
|
|
7840
8032
|
? options.floating
|
|
7841
8033
|
: {};
|
|
7842
|
-
this.addFloatingGroup(group, o, {
|
|
7843
|
-
inDragMode: false,
|
|
7844
|
-
skipRemoveGroup: true,
|
|
7845
|
-
skipActiveGroup: true,
|
|
7846
|
-
});
|
|
8034
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, o), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7847
8035
|
panel = this.createPanel(options, group);
|
|
7848
8036
|
group.model.openPanel(panel, {
|
|
7849
8037
|
skipSetActive: options.inactive,
|
|
@@ -7882,11 +8070,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7882
8070
|
options.floating !== null
|
|
7883
8071
|
? options.floating
|
|
7884
8072
|
: {};
|
|
7885
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7886
|
-
inDragMode: false,
|
|
7887
|
-
skipRemoveGroup: true,
|
|
7888
|
-
skipActiveGroup: true,
|
|
7889
|
-
});
|
|
8073
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7890
8074
|
panel = this.createPanel(options, group);
|
|
7891
8075
|
group.model.openPanel(panel, {
|
|
7892
8076
|
skipSetActive: options.inactive,
|
|
@@ -7941,6 +8125,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7941
8125
|
});
|
|
7942
8126
|
const watermarkContainer = document.createElement('div');
|
|
7943
8127
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8128
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7944
8129
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7945
8130
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7946
8131
|
}
|
|
@@ -8129,6 +8314,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8129
8314
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8130
8315
|
this._onDidMovePanel.fire({
|
|
8131
8316
|
panel: removedPanel,
|
|
8317
|
+
from: sourceGroup,
|
|
8132
8318
|
});
|
|
8133
8319
|
}
|
|
8134
8320
|
else {
|
|
@@ -8152,6 +8338,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8152
8338
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8153
8339
|
// which is equivalent to swapping two views in this case
|
|
8154
8340
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8341
|
+
this._onDidMovePanel.fire({
|
|
8342
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8343
|
+
from: sourceGroup,
|
|
8344
|
+
});
|
|
8155
8345
|
return;
|
|
8156
8346
|
}
|
|
8157
8347
|
}
|
|
@@ -8165,6 +8355,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8165
8355
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8166
8356
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8167
8357
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8358
|
+
this._onDidMovePanel.fire({
|
|
8359
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8360
|
+
from: sourceGroup,
|
|
8361
|
+
});
|
|
8168
8362
|
}
|
|
8169
8363
|
else {
|
|
8170
8364
|
/**
|
|
@@ -8184,6 +8378,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8184
8378
|
skipSetGroupActive: true,
|
|
8185
8379
|
}));
|
|
8186
8380
|
this.doSetGroupAndPanelActive(group);
|
|
8381
|
+
this._onDidMovePanel.fire({
|
|
8382
|
+
panel: removedPanel,
|
|
8383
|
+
from: sourceGroup,
|
|
8384
|
+
});
|
|
8187
8385
|
}
|
|
8188
8386
|
}
|
|
8189
8387
|
}
|
|
@@ -8208,9 +8406,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8208
8406
|
}
|
|
8209
8407
|
});
|
|
8210
8408
|
this.doSetGroupAndPanelActive(to);
|
|
8211
|
-
panels.forEach((panel) => {
|
|
8212
|
-
this._onDidMovePanel.fire({ panel });
|
|
8213
|
-
});
|
|
8214
8409
|
}
|
|
8215
8410
|
else {
|
|
8216
8411
|
switch (from.api.location.type) {
|
|
@@ -8236,10 +8431,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8236
8431
|
const referenceLocation = getGridLocation(to.element);
|
|
8237
8432
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8238
8433
|
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
8239
|
-
from.panels.forEach((panel) => {
|
|
8240
|
-
this._onDidMovePanel.fire({ panel });
|
|
8241
|
-
});
|
|
8242
8434
|
}
|
|
8435
|
+
from.panels.forEach((panel) => {
|
|
8436
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8437
|
+
});
|
|
8243
8438
|
}
|
|
8244
8439
|
doSetGroupActive(group) {
|
|
8245
8440
|
super.doSetGroupActive(group);
|
|
@@ -9863,8 +10058,21 @@ var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
|
9863
10058
|
}
|
|
9864
10059
|
return t;
|
|
9865
10060
|
};
|
|
10061
|
+
function useTitle(api) {
|
|
10062
|
+
const [title, setTitle] = React.useState(api.title);
|
|
10063
|
+
React.useEffect(() => {
|
|
10064
|
+
const disposable = api.onDidTitleChange((event) => {
|
|
10065
|
+
setTitle(event.title);
|
|
10066
|
+
});
|
|
10067
|
+
return () => {
|
|
10068
|
+
disposable.dispose();
|
|
10069
|
+
};
|
|
10070
|
+
}, [api]);
|
|
10071
|
+
return title;
|
|
10072
|
+
}
|
|
9866
10073
|
const DockviewDefaultTab = (_a) => {
|
|
9867
10074
|
var { api, containerApi: _containerApi, params: _params, hideClose, closeActionOverride } = _a, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride"]);
|
|
10075
|
+
const title = useTitle(api);
|
|
9868
10076
|
const onClose = React.useCallback((event) => {
|
|
9869
10077
|
event.preventDefault();
|
|
9870
10078
|
if (closeActionOverride) {
|
|
@@ -9887,7 +10095,7 @@ const DockviewDefaultTab = (_a) => {
|
|
|
9887
10095
|
}
|
|
9888
10096
|
}, [api, rest.onClick]);
|
|
9889
10097
|
return (React.createElement("div", Object.assign({ "data-testid": "dockview-dv-default-tab" }, rest, { onClick: onClick, className: "dv-default-tab" }),
|
|
9890
|
-
React.createElement("span", { className: "dv-default-tab-content" },
|
|
10098
|
+
React.createElement("span", { className: "dv-default-tab-content" }, title),
|
|
9891
10099
|
!hideClose && (React.createElement("div", { className: "dv-default-tab-action", onMouseDown: onMouseDown, onClick: onClose },
|
|
9892
10100
|
React.createElement(CloseButton, null)))));
|
|
9893
10101
|
};
|