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
|
*/
|
|
@@ -36,7 +36,7 @@ function styleInject(css, ref) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-gap-size: 3px;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:last-child) .groupview {\n border-right: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:first-child) .groupview {\n border-left: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:last-child) .groupview {\n border-bottom: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:first-child) .groupview {\n border-top: var(--dv-group-gap-size) solid transparent;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
39
|
+
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.tab.inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dv-default-tab .dv-default-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
40
40
|
styleInject(css_248z);
|
|
41
41
|
|
|
42
42
|
class TransferObject {
|
|
@@ -561,6 +561,9 @@ function isInDocument(element) {
|
|
|
561
561
|
}
|
|
562
562
|
return false;
|
|
563
563
|
}
|
|
564
|
+
function addTestId(element, id) {
|
|
565
|
+
element.setAttribute('data-testid', id);
|
|
566
|
+
}
|
|
564
567
|
|
|
565
568
|
function tail(arr) {
|
|
566
569
|
if (arr.length === 0) {
|
|
@@ -622,7 +625,11 @@ function remove(array, value) {
|
|
|
622
625
|
|
|
623
626
|
const clamp = (value, min, max) => {
|
|
624
627
|
if (min > max) {
|
|
625
|
-
|
|
628
|
+
/**
|
|
629
|
+
* caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle
|
|
630
|
+
* cases where `min` > `max` and in those cases return `min`.
|
|
631
|
+
*/
|
|
632
|
+
return min;
|
|
626
633
|
}
|
|
627
634
|
return Math.min(max, Math.max(value, min));
|
|
628
635
|
};
|
|
@@ -827,7 +834,14 @@ class Splitview {
|
|
|
827
834
|
this._disabled = value;
|
|
828
835
|
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
829
836
|
}
|
|
837
|
+
get margin() {
|
|
838
|
+
return this._margin;
|
|
839
|
+
}
|
|
840
|
+
set margin(value) {
|
|
841
|
+
this._margin = value;
|
|
842
|
+
}
|
|
830
843
|
constructor(container, options) {
|
|
844
|
+
var _a;
|
|
831
845
|
this.container = container;
|
|
832
846
|
this.viewItems = [];
|
|
833
847
|
this.sashes = [];
|
|
@@ -838,6 +852,7 @@ class Splitview {
|
|
|
838
852
|
this._startSnappingEnabled = true;
|
|
839
853
|
this._endSnappingEnabled = true;
|
|
840
854
|
this._disabled = false;
|
|
855
|
+
this._margin = 0;
|
|
841
856
|
this._onDidSashEnd = new Emitter();
|
|
842
857
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
843
858
|
this._onDidAddView = new Emitter();
|
|
@@ -926,6 +941,7 @@ class Splitview {
|
|
|
926
941
|
};
|
|
927
942
|
this._orientation = options.orientation;
|
|
928
943
|
this.element = this.createContainer();
|
|
944
|
+
this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
|
|
929
945
|
this.proportionalLayout =
|
|
930
946
|
options.proportionalLayout === undefined
|
|
931
947
|
? true
|
|
@@ -980,9 +996,7 @@ class Splitview {
|
|
|
980
996
|
if (index < 0 || index >= this.viewItems.length) {
|
|
981
997
|
throw new Error('Index out of bounds');
|
|
982
998
|
}
|
|
983
|
-
toggleClass(this.container, 'visible', visible);
|
|
984
999
|
const viewItem = this.viewItems[index];
|
|
985
|
-
toggleClass(this.container, 'visible', visible);
|
|
986
1000
|
viewItem.setVisible(visible, viewItem.size);
|
|
987
1001
|
this.distributeEmptySpace(index);
|
|
988
1002
|
this.layoutViews();
|
|
@@ -1294,15 +1308,29 @@ class Splitview {
|
|
|
1294
1308
|
this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);
|
|
1295
1309
|
}
|
|
1296
1310
|
}
|
|
1311
|
+
/**
|
|
1312
|
+
* Margin explain:
|
|
1313
|
+
*
|
|
1314
|
+
* For `n` views in a splitview there will be `n-1` margins `m`.
|
|
1315
|
+
*
|
|
1316
|
+
* To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.
|
|
1317
|
+
*
|
|
1318
|
+
* For each view `i` the offet must be adjusted by `m * i/(n - 1)`.
|
|
1319
|
+
*/
|
|
1297
1320
|
layoutViews() {
|
|
1298
1321
|
this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);
|
|
1299
|
-
let sum = 0;
|
|
1300
|
-
const x = [];
|
|
1301
1322
|
this.updateSashEnablement();
|
|
1323
|
+
if (this.viewItems.length === 0) {
|
|
1324
|
+
return;
|
|
1325
|
+
}
|
|
1326
|
+
const sashCount = this.viewItems.length - 1;
|
|
1327
|
+
const marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
|
|
1328
|
+
let totalLeftOffset = 0;
|
|
1329
|
+
const viewLeftOffsets = [];
|
|
1302
1330
|
for (let i = 0; i < this.viewItems.length - 1; i++) {
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
const offset = Math.min(Math.max(0,
|
|
1331
|
+
totalLeftOffset += this.viewItems[i].size;
|
|
1332
|
+
viewLeftOffsets.push(totalLeftOffset);
|
|
1333
|
+
const offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
|
|
1306
1334
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1307
1335
|
this.sashes[i].container.style.left = `${offset}px`;
|
|
1308
1336
|
this.sashes[i].container.style.top = `0px`;
|
|
@@ -1313,19 +1341,24 @@ class Splitview {
|
|
|
1313
1341
|
}
|
|
1314
1342
|
}
|
|
1315
1343
|
this.viewItems.forEach((view, i) => {
|
|
1344
|
+
const size = view.size - marginReducedSize;
|
|
1345
|
+
const offset = i === 0
|
|
1346
|
+
? 0
|
|
1347
|
+
: viewLeftOffsets[i - 1] +
|
|
1348
|
+
(i / sashCount) * marginReducedSize;
|
|
1316
1349
|
if (this._orientation === exports.Orientation.HORIZONTAL) {
|
|
1317
|
-
view.container.style.width = `${
|
|
1318
|
-
view.container.style.left =
|
|
1350
|
+
view.container.style.width = `${size}px`;
|
|
1351
|
+
view.container.style.left = `${offset}px`;
|
|
1319
1352
|
view.container.style.top = '';
|
|
1320
1353
|
view.container.style.height = '';
|
|
1321
1354
|
}
|
|
1322
1355
|
if (this._orientation === exports.Orientation.VERTICAL) {
|
|
1323
|
-
view.container.style.height = `${
|
|
1324
|
-
view.container.style.top =
|
|
1356
|
+
view.container.style.height = `${size}px`;
|
|
1357
|
+
view.container.style.top = `${offset}px`;
|
|
1325
1358
|
view.container.style.width = '';
|
|
1326
1359
|
view.container.style.left = '';
|
|
1327
1360
|
}
|
|
1328
|
-
view.view.layout(view.size, this._orthogonalSize);
|
|
1361
|
+
view.view.layout(view.size - marginReducedSize, this._orthogonalSize);
|
|
1329
1362
|
});
|
|
1330
1363
|
}
|
|
1331
1364
|
findFirstSnapIndex(indexes) {
|
|
@@ -1774,7 +1807,18 @@ class BranchNode extends CompositeDisposable {
|
|
|
1774
1807
|
set disabled(value) {
|
|
1775
1808
|
this.splitview.disabled = value;
|
|
1776
1809
|
}
|
|
1777
|
-
|
|
1810
|
+
get margin() {
|
|
1811
|
+
return this.splitview.margin;
|
|
1812
|
+
}
|
|
1813
|
+
set margin(value) {
|
|
1814
|
+
this.splitview.margin = value;
|
|
1815
|
+
this.children.forEach((child) => {
|
|
1816
|
+
if (child instanceof BranchNode) {
|
|
1817
|
+
child.margin = value;
|
|
1818
|
+
}
|
|
1819
|
+
});
|
|
1820
|
+
}
|
|
1821
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {
|
|
1778
1822
|
super();
|
|
1779
1823
|
this.orientation = orientation;
|
|
1780
1824
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1794,6 +1838,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1794
1838
|
orientation: this.orientation,
|
|
1795
1839
|
proportionalLayout,
|
|
1796
1840
|
styles,
|
|
1841
|
+
margin,
|
|
1797
1842
|
});
|
|
1798
1843
|
this.splitview.layout(this.size, this.orthogonalSize);
|
|
1799
1844
|
}
|
|
@@ -1817,6 +1862,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1817
1862
|
descriptor,
|
|
1818
1863
|
proportionalLayout,
|
|
1819
1864
|
styles,
|
|
1865
|
+
margin,
|
|
1820
1866
|
});
|
|
1821
1867
|
}
|
|
1822
1868
|
this.disabled = disabled;
|
|
@@ -1825,10 +1871,8 @@ class BranchNode extends CompositeDisposable {
|
|
|
1825
1871
|
}));
|
|
1826
1872
|
this.setupChildrenEvents();
|
|
1827
1873
|
}
|
|
1828
|
-
setVisible(
|
|
1829
|
-
|
|
1830
|
-
child.setVisible(visible);
|
|
1831
|
-
}
|
|
1874
|
+
setVisible(_visible) {
|
|
1875
|
+
// noop
|
|
1832
1876
|
}
|
|
1833
1877
|
isChildVisible(index) {
|
|
1834
1878
|
if (index < 0 || index >= this.children.length) {
|
|
@@ -1845,12 +1889,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1845
1889
|
}
|
|
1846
1890
|
const wereAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1847
1891
|
this.splitview.setViewVisible(index, visible);
|
|
1892
|
+
// }
|
|
1848
1893
|
const areAllChildrenHidden = this.splitview.contentSize === 0;
|
|
1849
1894
|
// If all children are hidden then the parent should hide the entire splitview
|
|
1850
1895
|
// If the entire splitview is hidden then the parent should show the splitview when a child is shown
|
|
1851
1896
|
if ((visible && wereAllChildrenHidden) ||
|
|
1852
1897
|
(!visible && areAllChildrenHidden)) {
|
|
1853
|
-
this._onDidVisibilityChange.fire(visible);
|
|
1898
|
+
this._onDidVisibilityChange.fire({ visible });
|
|
1854
1899
|
}
|
|
1855
1900
|
}
|
|
1856
1901
|
moveChild(from, to) {
|
|
@@ -1923,7 +1968,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1923
1968
|
this._onDidChange.fire({ size: e.orthogonalSize });
|
|
1924
1969
|
}), ...this.children.map((c, i) => {
|
|
1925
1970
|
if (c instanceof BranchNode) {
|
|
1926
|
-
return c.onDidVisibilityChange((visible) => {
|
|
1971
|
+
return c.onDidVisibilityChange(({ visible }) => {
|
|
1927
1972
|
this.setChildVisible(i, visible);
|
|
1928
1973
|
});
|
|
1929
1974
|
}
|
|
@@ -1953,7 +1998,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1953
1998
|
}
|
|
1954
1999
|
function flipNode(node, size, orthogonalSize) {
|
|
1955
2000
|
if (node instanceof BranchNode) {
|
|
1956
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
2001
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);
|
|
1957
2002
|
let totalSize = 0;
|
|
1958
2003
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1959
2004
|
const child = node.children[i];
|
|
@@ -2108,6 +2153,13 @@ class Gridview {
|
|
|
2108
2153
|
}
|
|
2109
2154
|
}
|
|
2110
2155
|
}
|
|
2156
|
+
get margin() {
|
|
2157
|
+
return this._margin;
|
|
2158
|
+
}
|
|
2159
|
+
set margin(value) {
|
|
2160
|
+
this._margin = value;
|
|
2161
|
+
this.root.margin = value;
|
|
2162
|
+
}
|
|
2111
2163
|
maximizedView() {
|
|
2112
2164
|
var _a;
|
|
2113
2165
|
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
@@ -2193,13 +2245,14 @@ class Gridview {
|
|
|
2193
2245
|
this.disposable.dispose();
|
|
2194
2246
|
this._onDidChange.dispose();
|
|
2195
2247
|
this._onDidMaximizedNodeChange.dispose();
|
|
2248
|
+
this._onDidViewVisibilityChange.dispose();
|
|
2196
2249
|
this.root.dispose();
|
|
2197
2250
|
this._maximizedNode = undefined;
|
|
2198
2251
|
this.element.remove();
|
|
2199
2252
|
}
|
|
2200
2253
|
clear() {
|
|
2201
2254
|
const orientation = this.root.orientation;
|
|
2202
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.
|
|
2255
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);
|
|
2203
2256
|
}
|
|
2204
2257
|
deserialize(json, deserializer) {
|
|
2205
2258
|
const orientation = json.orientation;
|
|
@@ -2210,6 +2263,7 @@ class Gridview {
|
|
|
2210
2263
|
this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
|
|
2211
2264
|
}
|
|
2212
2265
|
_deserializeNode(node, orientation, deserializer, orthogonalSize) {
|
|
2266
|
+
var _a;
|
|
2213
2267
|
let result;
|
|
2214
2268
|
if (node.type === 'branch') {
|
|
2215
2269
|
const serializedChildren = node.data;
|
|
@@ -2221,10 +2275,14 @@ class Gridview {
|
|
|
2221
2275
|
});
|
|
2222
2276
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2223
2277
|
orthogonalSize, // <- size - flips at each depth,
|
|
2224
|
-
this.
|
|
2278
|
+
this.locked, this.margin, children);
|
|
2225
2279
|
}
|
|
2226
2280
|
else {
|
|
2227
|
-
|
|
2281
|
+
const view = deserializer.fromJSON(node);
|
|
2282
|
+
if (typeof node.visible === 'boolean') {
|
|
2283
|
+
(_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);
|
|
2284
|
+
}
|
|
2285
|
+
result = new LeafNode(view, orientation, orthogonalSize, node.size);
|
|
2228
2286
|
}
|
|
2229
2287
|
return result;
|
|
2230
2288
|
}
|
|
@@ -2254,7 +2312,7 @@ class Gridview {
|
|
|
2254
2312
|
}
|
|
2255
2313
|
const oldRoot = this.root;
|
|
2256
2314
|
oldRoot.element.remove();
|
|
2257
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.
|
|
2315
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);
|
|
2258
2316
|
if (oldRoot.children.length === 0) ;
|
|
2259
2317
|
else if (oldRoot.children.length === 1) {
|
|
2260
2318
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2319,19 +2377,24 @@ class Gridview {
|
|
|
2319
2377
|
}
|
|
2320
2378
|
return findLeaf(this.root, reverse);
|
|
2321
2379
|
}
|
|
2322
|
-
constructor(proportionalLayout, styles, orientation) {
|
|
2380
|
+
constructor(proportionalLayout, styles, orientation, locked, margin) {
|
|
2323
2381
|
this.proportionalLayout = proportionalLayout;
|
|
2324
2382
|
this.styles = styles;
|
|
2325
2383
|
this._locked = false;
|
|
2384
|
+
this._margin = 0;
|
|
2326
2385
|
this._maximizedNode = undefined;
|
|
2327
2386
|
this.disposable = new MutableDisposable();
|
|
2328
2387
|
this._onDidChange = new Emitter();
|
|
2329
2388
|
this.onDidChange = this._onDidChange.event;
|
|
2389
|
+
this._onDidViewVisibilityChange = new Emitter();
|
|
2390
|
+
this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;
|
|
2330
2391
|
this._onDidMaximizedNodeChange = new Emitter();
|
|
2331
2392
|
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2332
2393
|
this.element = document.createElement('div');
|
|
2333
2394
|
this.element.className = 'grid-view';
|
|
2334
|
-
this.
|
|
2395
|
+
this._locked = locked !== null && locked !== void 0 ? locked : false;
|
|
2396
|
+
this._margin = margin !== null && margin !== void 0 ? margin : 0;
|
|
2397
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
|
|
2335
2398
|
}
|
|
2336
2399
|
isViewVisible(location) {
|
|
2337
2400
|
const [rest, index] = tail(location);
|
|
@@ -2350,6 +2413,7 @@ class Gridview {
|
|
|
2350
2413
|
if (!(parent instanceof BranchNode)) {
|
|
2351
2414
|
throw new Error('Invalid from location');
|
|
2352
2415
|
}
|
|
2416
|
+
this._onDidViewVisibilityChange.fire();
|
|
2353
2417
|
parent.setChildVisible(index, visible);
|
|
2354
2418
|
}
|
|
2355
2419
|
moveView(parentLocation, from, to) {
|
|
@@ -2382,7 +2446,7 @@ class Gridview {
|
|
|
2382
2446
|
}
|
|
2383
2447
|
const child = grandParent.removeChild(parentIndex);
|
|
2384
2448
|
child.dispose();
|
|
2385
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.
|
|
2449
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);
|
|
2386
2450
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2387
2451
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2388
2452
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2621,14 +2685,18 @@ class BaseGrid extends Resizable {
|
|
|
2621
2685
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2622
2686
|
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2623
2687
|
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2688
|
+
this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();
|
|
2689
|
+
this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
|
|
2624
2690
|
this.element.style.height = '100%';
|
|
2625
2691
|
this.element.style.width = '100%';
|
|
2626
2692
|
options.parentElement.appendChild(this.element);
|
|
2627
|
-
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
2693
|
+
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
|
|
2628
2694
|
this.gridview.locked = !!options.locked;
|
|
2629
2695
|
this.element.appendChild(this.gridview.element);
|
|
2630
2696
|
this.layout(0, 0, true); // set some elements height/widths
|
|
2631
|
-
this.addDisposables(
|
|
2697
|
+
this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
2698
|
+
this.layout(this.width, this.height, true);
|
|
2699
|
+
}), exports.DockviewDisposable.from(() => {
|
|
2632
2700
|
var _a;
|
|
2633
2701
|
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
2634
2702
|
}), this.gridview.onDidChange(() => {
|
|
@@ -3242,6 +3310,9 @@ class DockviewApi {
|
|
|
3242
3310
|
get onDidRemovePanel() {
|
|
3243
3311
|
return this.component.onDidRemovePanel;
|
|
3244
3312
|
}
|
|
3313
|
+
get onDidMovePanel() {
|
|
3314
|
+
return this.component.onDidMovePanel;
|
|
3315
|
+
}
|
|
3245
3316
|
/**
|
|
3246
3317
|
* Invoked after a layout is deserialzied using the `fromJSON` method.
|
|
3247
3318
|
*/
|
|
@@ -3382,8 +3453,8 @@ class DockviewApi {
|
|
|
3382
3453
|
/**
|
|
3383
3454
|
* Add a floating group
|
|
3384
3455
|
*/
|
|
3385
|
-
addFloatingGroup(item,
|
|
3386
|
-
return this.component.addFloatingGroup(item,
|
|
3456
|
+
addFloatingGroup(item, options) {
|
|
3457
|
+
return this.component.addFloatingGroup(item, options);
|
|
3387
3458
|
}
|
|
3388
3459
|
/**
|
|
3389
3460
|
* Create a component from a serialized object.
|
|
@@ -3433,6 +3504,9 @@ class DockviewApi {
|
|
|
3433
3504
|
addPopoutGroup(item, options) {
|
|
3434
3505
|
return this.component.addPopoutGroup(item, options);
|
|
3435
3506
|
}
|
|
3507
|
+
setGap(gap) {
|
|
3508
|
+
this.component.updateOptions({ gap });
|
|
3509
|
+
}
|
|
3436
3510
|
}
|
|
3437
3511
|
|
|
3438
3512
|
class DragHandler extends CompositeDisposable {
|
|
@@ -4802,7 +4876,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4802
4876
|
this.accessor.addFloatingGroup(this.group, {
|
|
4803
4877
|
x: left - rootLeft + 20,
|
|
4804
4878
|
y: top - rootTop + 20,
|
|
4805
|
-
|
|
4879
|
+
inDragMode: true,
|
|
4880
|
+
});
|
|
4806
4881
|
}
|
|
4807
4882
|
}), addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
4808
4883
|
if (event.defaultPrevented) {
|
|
@@ -4871,7 +4946,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4871
4946
|
this.accessor.addFloatingGroup(panel, {
|
|
4872
4947
|
x: left - rootLeft,
|
|
4873
4948
|
y: top - rootTop,
|
|
4874
|
-
|
|
4949
|
+
inDragMode: true,
|
|
4950
|
+
});
|
|
4875
4951
|
return;
|
|
4876
4952
|
}
|
|
4877
4953
|
const isLeftClick = event.button === 0;
|
|
@@ -4944,6 +5020,7 @@ const PROPERTY_KEYS = (() => {
|
|
|
4944
5020
|
rootOverlayModel: undefined,
|
|
4945
5021
|
locked: undefined,
|
|
4946
5022
|
disableDnd: undefined,
|
|
5023
|
+
gap: undefined,
|
|
4947
5024
|
};
|
|
4948
5025
|
return Object.keys(properties);
|
|
4949
5026
|
})();
|
|
@@ -5674,6 +5751,9 @@ class GridviewPanel extends BasePanelView {
|
|
|
5674
5751
|
get isActive() {
|
|
5675
5752
|
return this.api.isActive;
|
|
5676
5753
|
}
|
|
5754
|
+
get isVisible() {
|
|
5755
|
+
return this.api.isVisible;
|
|
5756
|
+
}
|
|
5677
5757
|
constructor(id, component, options, api) {
|
|
5678
5758
|
super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
|
|
5679
5759
|
this._evaluatedMinimumWidth = 0;
|
|
@@ -6210,52 +6290,40 @@ class DefaultTab extends CompositeDisposable {
|
|
|
6210
6290
|
}
|
|
6211
6291
|
constructor() {
|
|
6212
6292
|
super();
|
|
6213
|
-
//
|
|
6214
|
-
this.params = {};
|
|
6215
6293
|
this._element = document.createElement('div');
|
|
6216
6294
|
this._element.className = 'dv-default-tab';
|
|
6217
|
-
//
|
|
6218
6295
|
this._content = document.createElement('div');
|
|
6219
6296
|
this._content.className = 'dv-default-tab-content';
|
|
6220
6297
|
this.action = document.createElement('div');
|
|
6221
6298
|
this.action.className = 'dv-default-tab-action';
|
|
6222
6299
|
this.action.appendChild(createCloseButton());
|
|
6223
|
-
//
|
|
6224
6300
|
this._element.appendChild(this._content);
|
|
6225
6301
|
this._element.appendChild(this.action);
|
|
6226
|
-
//
|
|
6227
6302
|
this.addDisposables(addDisposableListener(this.action, 'mousedown', (ev) => {
|
|
6228
6303
|
ev.preventDefault();
|
|
6229
6304
|
}));
|
|
6230
6305
|
this.render();
|
|
6231
6306
|
}
|
|
6232
|
-
update(event) {
|
|
6233
|
-
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
6234
|
-
this.render();
|
|
6235
|
-
}
|
|
6236
|
-
focus() {
|
|
6237
|
-
//noop
|
|
6238
|
-
}
|
|
6239
6307
|
init(params) {
|
|
6240
|
-
this.
|
|
6241
|
-
this.
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6308
|
+
this._title = params.title;
|
|
6309
|
+
this.addDisposables(params.api.onDidTitleChange((event) => {
|
|
6310
|
+
this._title = event.title;
|
|
6311
|
+
this.render();
|
|
6312
|
+
}), addDisposableListener(this.action, 'mousedown', (ev) => {
|
|
6313
|
+
ev.preventDefault();
|
|
6314
|
+
}), addDisposableListener(this.action, 'click', (ev) => {
|
|
6315
|
+
if (ev.defaultPrevented) {
|
|
6316
|
+
return;
|
|
6317
|
+
}
|
|
6318
|
+
ev.preventDefault();
|
|
6319
|
+
params.api.close();
|
|
6320
|
+
}));
|
|
6251
6321
|
this.render();
|
|
6252
6322
|
}
|
|
6253
|
-
layout(_width, _height) {
|
|
6254
|
-
// noop
|
|
6255
|
-
}
|
|
6256
6323
|
render() {
|
|
6257
|
-
|
|
6258
|
-
|
|
6324
|
+
var _a;
|
|
6325
|
+
if (this._content.textContent !== this._title) {
|
|
6326
|
+
this._content.textContent = (_a = this._title) !== null && _a !== void 0 ? _a : '';
|
|
6259
6327
|
}
|
|
6260
6328
|
}
|
|
6261
6329
|
}
|
|
@@ -6448,12 +6516,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6448
6516
|
this._element.appendChild(this.options.content);
|
|
6449
6517
|
this.options.container.appendChild(this._element);
|
|
6450
6518
|
// if input bad resize within acceptable boundaries
|
|
6451
|
-
this.setBounds({
|
|
6452
|
-
height: this.options.height,
|
|
6453
|
-
width: this.options.width,
|
|
6454
|
-
top: this.options.top,
|
|
6455
|
-
left: this.options.left,
|
|
6456
|
-
});
|
|
6519
|
+
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 })));
|
|
6457
6520
|
}
|
|
6458
6521
|
setBounds(bounds = {}) {
|
|
6459
6522
|
if (typeof bounds.height === 'number') {
|
|
@@ -6462,11 +6525,25 @@ class Overlay extends CompositeDisposable {
|
|
|
6462
6525
|
if (typeof bounds.width === 'number') {
|
|
6463
6526
|
this._element.style.width = `${bounds.width}px`;
|
|
6464
6527
|
}
|
|
6465
|
-
if (typeof bounds.top === 'number') {
|
|
6528
|
+
if ('top' in bounds && typeof bounds.top === 'number') {
|
|
6466
6529
|
this._element.style.top = `${bounds.top}px`;
|
|
6530
|
+
this._element.style.bottom = 'auto';
|
|
6531
|
+
this.verticalAlignment = 'top';
|
|
6532
|
+
}
|
|
6533
|
+
if ('bottom' in bounds && typeof bounds.bottom === 'number') {
|
|
6534
|
+
this._element.style.bottom = `${bounds.bottom}px`;
|
|
6535
|
+
this._element.style.top = 'auto';
|
|
6536
|
+
this.verticalAlignment = 'bottom';
|
|
6467
6537
|
}
|
|
6468
|
-
if (typeof bounds.left === 'number') {
|
|
6538
|
+
if ('left' in bounds && typeof bounds.left === 'number') {
|
|
6469
6539
|
this._element.style.left = `${bounds.left}px`;
|
|
6540
|
+
this._element.style.right = 'auto';
|
|
6541
|
+
this.horiziontalAlignment = 'left';
|
|
6542
|
+
}
|
|
6543
|
+
if ('right' in bounds && typeof bounds.right === 'number') {
|
|
6544
|
+
this._element.style.right = `${bounds.right}px`;
|
|
6545
|
+
this._element.style.left = 'auto';
|
|
6546
|
+
this.horiziontalAlignment = 'right';
|
|
6470
6547
|
}
|
|
6471
6548
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
6472
6549
|
const overlayRect = this._element.getBoundingClientRect();
|
|
@@ -6474,24 +6551,54 @@ class Overlay extends CompositeDisposable {
|
|
|
6474
6551
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
6475
6552
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6476
6553
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
6477
|
-
const yOffset =
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
this.
|
|
6554
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6555
|
+
if (this.verticalAlignment === 'top') {
|
|
6556
|
+
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6557
|
+
this._element.style.top = `${top}px`;
|
|
6558
|
+
this._element.style.bottom = 'auto';
|
|
6559
|
+
}
|
|
6560
|
+
if (this.verticalAlignment === 'bottom') {
|
|
6561
|
+
const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6562
|
+
this._element.style.bottom = `${bottom}px`;
|
|
6563
|
+
this._element.style.top = 'auto';
|
|
6564
|
+
}
|
|
6565
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6566
|
+
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6567
|
+
this._element.style.left = `${left}px`;
|
|
6568
|
+
this._element.style.right = 'auto';
|
|
6569
|
+
}
|
|
6570
|
+
if (this.horiziontalAlignment === 'right') {
|
|
6571
|
+
const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6572
|
+
this._element.style.right = `${right}px`;
|
|
6573
|
+
this._element.style.left = 'auto';
|
|
6574
|
+
}
|
|
6484
6575
|
this._onDidChange.fire();
|
|
6485
6576
|
}
|
|
6486
6577
|
toJSON() {
|
|
6487
6578
|
const container = this.options.container.getBoundingClientRect();
|
|
6488
6579
|
const element = this._element.getBoundingClientRect();
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6580
|
+
const result = {};
|
|
6581
|
+
if (this.verticalAlignment === 'top') {
|
|
6582
|
+
result.top = parseFloat(this._element.style.top);
|
|
6583
|
+
}
|
|
6584
|
+
else if (this.verticalAlignment === 'bottom') {
|
|
6585
|
+
result.bottom = parseFloat(this._element.style.bottom);
|
|
6586
|
+
}
|
|
6587
|
+
else {
|
|
6588
|
+
result.top = element.top - container.top;
|
|
6589
|
+
}
|
|
6590
|
+
if (this.horiziontalAlignment === 'left') {
|
|
6591
|
+
result.left = parseFloat(this._element.style.left);
|
|
6592
|
+
}
|
|
6593
|
+
else if (this.horiziontalAlignment === 'right') {
|
|
6594
|
+
result.right = parseFloat(this._element.style.right);
|
|
6595
|
+
}
|
|
6596
|
+
else {
|
|
6597
|
+
result.left = element.left - container.left;
|
|
6598
|
+
}
|
|
6599
|
+
result.width = element.width;
|
|
6600
|
+
result.height = element.height;
|
|
6601
|
+
return result;
|
|
6495
6602
|
}
|
|
6496
6603
|
setupDrag(dragTarget, options = { inDragMode: false }) {
|
|
6497
6604
|
const move = new MutableDisposable();
|
|
@@ -6523,12 +6630,30 @@ class Overlay extends CompositeDisposable {
|
|
|
6523
6630
|
};
|
|
6524
6631
|
}
|
|
6525
6632
|
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
6526
|
-
const yOffset = Math.max(0, this.
|
|
6527
|
-
? this.getMinimumHeight(overlayRect.height)
|
|
6528
|
-
: 0);
|
|
6529
|
-
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6633
|
+
const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
|
|
6530
6634
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6531
|
-
|
|
6635
|
+
const bottom = clamp(offset.y -
|
|
6636
|
+
y +
|
|
6637
|
+
containerRect.height -
|
|
6638
|
+
overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
6639
|
+
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6640
|
+
const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
6641
|
+
const bounds = {};
|
|
6642
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6643
|
+
if (top <= bottom) {
|
|
6644
|
+
bounds.top = top;
|
|
6645
|
+
}
|
|
6646
|
+
else {
|
|
6647
|
+
bounds.bottom = bottom;
|
|
6648
|
+
}
|
|
6649
|
+
// Anchor to left or to right depending on which one is closer
|
|
6650
|
+
if (left <= right) {
|
|
6651
|
+
bounds.left = left;
|
|
6652
|
+
}
|
|
6653
|
+
else {
|
|
6654
|
+
bounds.right = right;
|
|
6655
|
+
}
|
|
6656
|
+
this.setBounds(bounds);
|
|
6532
6657
|
}), addDisposableWindowListener(window, 'mouseup', () => {
|
|
6533
6658
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
6534
6659
|
move.dispose();
|
|
@@ -6596,8 +6721,10 @@ class Overlay extends CompositeDisposable {
|
|
|
6596
6721
|
};
|
|
6597
6722
|
}
|
|
6598
6723
|
let top = undefined;
|
|
6724
|
+
let bottom = undefined;
|
|
6599
6725
|
let height = undefined;
|
|
6600
6726
|
let left = undefined;
|
|
6727
|
+
let right = undefined;
|
|
6601
6728
|
let width = undefined;
|
|
6602
6729
|
const moveTop = () => {
|
|
6603
6730
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
@@ -6611,6 +6738,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6611
6738
|
startPosition.originalY +
|
|
6612
6739
|
startPosition.originalHeight -
|
|
6613
6740
|
top;
|
|
6741
|
+
bottom = containerRect.height - top - height;
|
|
6614
6742
|
};
|
|
6615
6743
|
const moveBottom = () => {
|
|
6616
6744
|
top =
|
|
@@ -6622,6 +6750,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6622
6750
|
? -top +
|
|
6623
6751
|
this.options.minimumInViewportHeight
|
|
6624
6752
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
6753
|
+
bottom = containerRect.height - top - height;
|
|
6625
6754
|
};
|
|
6626
6755
|
const moveLeft = () => {
|
|
6627
6756
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
@@ -6635,6 +6764,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6635
6764
|
startPosition.originalX +
|
|
6636
6765
|
startPosition.originalWidth -
|
|
6637
6766
|
left;
|
|
6767
|
+
right = containerRect.width - left - width;
|
|
6638
6768
|
};
|
|
6639
6769
|
const moveRight = () => {
|
|
6640
6770
|
left =
|
|
@@ -6646,6 +6776,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6646
6776
|
? -left +
|
|
6647
6777
|
this.options.minimumInViewportWidth
|
|
6648
6778
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
6779
|
+
right = containerRect.width - left - width;
|
|
6649
6780
|
};
|
|
6650
6781
|
switch (direction) {
|
|
6651
6782
|
case 'top':
|
|
@@ -6677,7 +6808,24 @@ class Overlay extends CompositeDisposable {
|
|
|
6677
6808
|
moveRight();
|
|
6678
6809
|
break;
|
|
6679
6810
|
}
|
|
6680
|
-
|
|
6811
|
+
const bounds = {};
|
|
6812
|
+
// Anchor to top or to bottom depending on which one is closer
|
|
6813
|
+
if (top <= bottom) {
|
|
6814
|
+
bounds.top = top;
|
|
6815
|
+
}
|
|
6816
|
+
else {
|
|
6817
|
+
bounds.bottom = bottom;
|
|
6818
|
+
}
|
|
6819
|
+
// Anchor to left or to right depending on which one is closer
|
|
6820
|
+
if (left <= right) {
|
|
6821
|
+
bounds.left = left;
|
|
6822
|
+
}
|
|
6823
|
+
else {
|
|
6824
|
+
bounds.right = right;
|
|
6825
|
+
}
|
|
6826
|
+
bounds.height = height;
|
|
6827
|
+
bounds.width = width;
|
|
6828
|
+
this.setBounds(bounds);
|
|
6681
6829
|
}), {
|
|
6682
6830
|
dispose: () => {
|
|
6683
6831
|
for (const iframe of iframes) {
|
|
@@ -6700,7 +6848,7 @@ class Overlay extends CompositeDisposable {
|
|
|
6700
6848
|
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
6701
6849
|
return height - this.options.minimumInViewportHeight;
|
|
6702
6850
|
}
|
|
6703
|
-
return
|
|
6851
|
+
return 0;
|
|
6704
6852
|
}
|
|
6705
6853
|
dispose() {
|
|
6706
6854
|
this._element.remove();
|
|
@@ -6723,7 +6871,7 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6723
6871
|
}
|
|
6724
6872
|
|
|
6725
6873
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6726
|
-
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6874
|
+
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };
|
|
6727
6875
|
|
|
6728
6876
|
function createFocusableElement() {
|
|
6729
6877
|
const element = document.createElement('div');
|
|
@@ -7066,6 +7214,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7066
7214
|
parentElement: options.parentElement,
|
|
7067
7215
|
disableAutoResizing: options.disableAutoResizing,
|
|
7068
7216
|
locked: options.locked,
|
|
7217
|
+
margin: options.gap,
|
|
7069
7218
|
});
|
|
7070
7219
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7071
7220
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -7091,9 +7240,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7091
7240
|
this._onDidActivePanelChange = new Emitter();
|
|
7092
7241
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7093
7242
|
this._onDidMovePanel = new Emitter();
|
|
7243
|
+
this.onDidMovePanel = this._onDidMovePanel.event;
|
|
7094
7244
|
this._floatingGroups = [];
|
|
7095
7245
|
this._popoutGroups = [];
|
|
7096
|
-
this._ignoreEvents = 0;
|
|
7097
7246
|
this._onDidRemoveGroup = new Emitter();
|
|
7098
7247
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7099
7248
|
this._onDidAddGroup = new Emitter();
|
|
@@ -7107,7 +7256,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7107
7256
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7108
7257
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7109
7258
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7110
|
-
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.
|
|
7259
|
+
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(() => {
|
|
7260
|
+
this.updateWatermark();
|
|
7261
|
+
}), this.onDidAdd((event) => {
|
|
7111
7262
|
if (!this._moving) {
|
|
7112
7263
|
this._onDidAddGroup.fire(event);
|
|
7113
7264
|
}
|
|
@@ -7121,7 +7272,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7121
7272
|
}
|
|
7122
7273
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
7123
7274
|
this.updateWatermark();
|
|
7124
|
-
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
7275
|
+
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
7125
7276
|
this._bufferOnDidLayoutChange.fire();
|
|
7126
7277
|
}), exports.DockviewDisposable.from(() => {
|
|
7127
7278
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -7372,8 +7523,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7372
7523
|
console.error('dockview: failed to create popout window', err);
|
|
7373
7524
|
});
|
|
7374
7525
|
}
|
|
7375
|
-
addFloatingGroup(item,
|
|
7376
|
-
var _a, _b, _c, _d, _e
|
|
7526
|
+
addFloatingGroup(item, options) {
|
|
7527
|
+
var _a, _b, _c, _d, _e;
|
|
7377
7528
|
let group;
|
|
7378
7529
|
if (item instanceof DockviewPanel) {
|
|
7379
7530
|
group = this.createGroup();
|
|
@@ -7418,26 +7569,62 @@ class DockviewComponent extends BaseGrid {
|
|
|
7418
7569
|
}
|
|
7419
7570
|
}
|
|
7420
7571
|
group.model.location = { type: 'floating' };
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
7434
|
-
|
|
7572
|
+
function getAnchoredBox() {
|
|
7573
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7574
|
+
const result = {};
|
|
7575
|
+
if ('left' in options.position) {
|
|
7576
|
+
result.left = Math.max(options.position.left, 0);
|
|
7577
|
+
}
|
|
7578
|
+
else if ('right' in options.position) {
|
|
7579
|
+
result.right = Math.max(options.position.right, 0);
|
|
7580
|
+
}
|
|
7581
|
+
else {
|
|
7582
|
+
result.left = DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
7583
|
+
}
|
|
7584
|
+
if ('top' in options.position) {
|
|
7585
|
+
result.top = Math.max(options.position.top, 0);
|
|
7586
|
+
}
|
|
7587
|
+
else if ('bottom' in options.position) {
|
|
7588
|
+
result.bottom = Math.max(options.position.bottom, 0);
|
|
7589
|
+
}
|
|
7590
|
+
else {
|
|
7591
|
+
result.top = DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
7592
|
+
}
|
|
7593
|
+
if ('width' in options.position) {
|
|
7594
|
+
result.width = Math.max(options.position.width, 0);
|
|
7595
|
+
}
|
|
7596
|
+
else {
|
|
7597
|
+
result.width = DEFAULT_FLOATING_GROUP_POSITION.width;
|
|
7598
|
+
}
|
|
7599
|
+
if ('height' in options.position) {
|
|
7600
|
+
result.height = Math.max(options.position.height, 0);
|
|
7601
|
+
}
|
|
7602
|
+
else {
|
|
7603
|
+
result.height = DEFAULT_FLOATING_GROUP_POSITION.height;
|
|
7604
|
+
}
|
|
7605
|
+
return result;
|
|
7606
|
+
}
|
|
7607
|
+
return {
|
|
7608
|
+
left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'
|
|
7609
|
+
? Math.max(options.x, 0)
|
|
7610
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left,
|
|
7611
|
+
top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'
|
|
7612
|
+
? Math.max(options.y, 0)
|
|
7613
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top,
|
|
7614
|
+
width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'
|
|
7615
|
+
? Math.max(options.width, 0)
|
|
7616
|
+
: DEFAULT_FLOATING_GROUP_POSITION.width,
|
|
7617
|
+
height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'
|
|
7618
|
+
? Math.max(options.height, 0)
|
|
7619
|
+
: DEFAULT_FLOATING_GROUP_POSITION.height,
|
|
7620
|
+
};
|
|
7621
|
+
}
|
|
7622
|
+
const anchoredBox = getAnchoredBox();
|
|
7623
|
+
const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7435
7624
|
? undefined
|
|
7436
|
-
: (
|
|
7437
|
-
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
7625
|
+
: (_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'
|
|
7438
7626
|
? undefined
|
|
7439
|
-
: (
|
|
7440
|
-
});
|
|
7627
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
7441
7628
|
const el = group.element.querySelector('.void-container');
|
|
7442
7629
|
if (!el) {
|
|
7443
7630
|
throw new Error('failed to find drag handle');
|
|
@@ -7535,12 +7722,18 @@ class DockviewComponent extends BaseGrid {
|
|
|
7535
7722
|
group.overlay.minimumInViewportWidth =
|
|
7536
7723
|
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
7537
7724
|
}
|
|
7538
|
-
group.overlay.setBounds(
|
|
7725
|
+
group.overlay.setBounds();
|
|
7539
7726
|
}
|
|
7540
7727
|
}
|
|
7541
7728
|
if (changed_rootOverlayOptions) {
|
|
7542
7729
|
this._rootDropTarget.setOverlayModel(options.rootOverlayModel);
|
|
7543
7730
|
}
|
|
7731
|
+
if (this.gridview.margin !== 0 && options.gap === undefined) {
|
|
7732
|
+
this.gridview.margin = 0;
|
|
7733
|
+
}
|
|
7734
|
+
if (typeof options.gap === 'number') {
|
|
7735
|
+
this.gridview.margin = options.gap;
|
|
7736
|
+
}
|
|
7544
7737
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
7545
7738
|
}
|
|
7546
7739
|
layout(width, height, forceResize) {
|
|
@@ -7702,11 +7895,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7702
7895
|
const { data, position } = serializedFloatingGroup;
|
|
7703
7896
|
const group = createGroupFromSerializedState(data);
|
|
7704
7897
|
this.addFloatingGroup(group, {
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
7898
|
+
position: position,
|
|
7899
|
+
skipRemoveGroup: true,
|
|
7900
|
+
inDragMode: false,
|
|
7901
|
+
});
|
|
7710
7902
|
}
|
|
7711
7903
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7712
7904
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
@@ -7841,11 +8033,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7841
8033
|
options.floating !== null
|
|
7842
8034
|
? options.floating
|
|
7843
8035
|
: {};
|
|
7844
|
-
this.addFloatingGroup(group, o, {
|
|
7845
|
-
inDragMode: false,
|
|
7846
|
-
skipRemoveGroup: true,
|
|
7847
|
-
skipActiveGroup: true,
|
|
7848
|
-
});
|
|
8036
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, o), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7849
8037
|
panel = this.createPanel(options, group);
|
|
7850
8038
|
group.model.openPanel(panel, {
|
|
7851
8039
|
skipSetActive: options.inactive,
|
|
@@ -7884,11 +8072,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7884
8072
|
options.floating !== null
|
|
7885
8073
|
? options.floating
|
|
7886
8074
|
: {};
|
|
7887
|
-
this.addFloatingGroup(group, coordinates, {
|
|
7888
|
-
inDragMode: false,
|
|
7889
|
-
skipRemoveGroup: true,
|
|
7890
|
-
skipActiveGroup: true,
|
|
7891
|
-
});
|
|
8075
|
+
this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));
|
|
7892
8076
|
panel = this.createPanel(options, group);
|
|
7893
8077
|
group.model.openPanel(panel, {
|
|
7894
8078
|
skipSetActive: options.inactive,
|
|
@@ -7943,6 +8127,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7943
8127
|
});
|
|
7944
8128
|
const watermarkContainer = document.createElement('div');
|
|
7945
8129
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8130
|
+
addTestId(watermarkContainer, 'watermark-component');
|
|
7946
8131
|
watermarkContainer.appendChild(this.watermark.element);
|
|
7947
8132
|
this.gridview.element.appendChild(watermarkContainer);
|
|
7948
8133
|
}
|
|
@@ -8131,6 +8316,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8131
8316
|
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8132
8317
|
this._onDidMovePanel.fire({
|
|
8133
8318
|
panel: removedPanel,
|
|
8319
|
+
from: sourceGroup,
|
|
8134
8320
|
});
|
|
8135
8321
|
}
|
|
8136
8322
|
else {
|
|
@@ -8154,6 +8340,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8154
8340
|
// if a group has one tab - we are essentially moving the 'group'
|
|
8155
8341
|
// which is equivalent to swapping two views in this case
|
|
8156
8342
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8343
|
+
this._onDidMovePanel.fire({
|
|
8344
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8345
|
+
from: sourceGroup,
|
|
8346
|
+
});
|
|
8157
8347
|
return;
|
|
8158
8348
|
}
|
|
8159
8349
|
}
|
|
@@ -8167,6 +8357,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8167
8357
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
8168
8358
|
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8169
8359
|
this.doSetGroupAndPanelActive(targetGroup);
|
|
8360
|
+
this._onDidMovePanel.fire({
|
|
8361
|
+
panel: this.getGroupPanel(sourceItemId),
|
|
8362
|
+
from: sourceGroup,
|
|
8363
|
+
});
|
|
8170
8364
|
}
|
|
8171
8365
|
else {
|
|
8172
8366
|
/**
|
|
@@ -8186,6 +8380,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8186
8380
|
skipSetGroupActive: true,
|
|
8187
8381
|
}));
|
|
8188
8382
|
this.doSetGroupAndPanelActive(group);
|
|
8383
|
+
this._onDidMovePanel.fire({
|
|
8384
|
+
panel: removedPanel,
|
|
8385
|
+
from: sourceGroup,
|
|
8386
|
+
});
|
|
8189
8387
|
}
|
|
8190
8388
|
}
|
|
8191
8389
|
}
|
|
@@ -8210,9 +8408,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8210
8408
|
}
|
|
8211
8409
|
});
|
|
8212
8410
|
this.doSetGroupAndPanelActive(to);
|
|
8213
|
-
panels.forEach((panel) => {
|
|
8214
|
-
this._onDidMovePanel.fire({ panel });
|
|
8215
|
-
});
|
|
8216
8411
|
}
|
|
8217
8412
|
else {
|
|
8218
8413
|
switch (from.api.location.type) {
|
|
@@ -8238,10 +8433,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8238
8433
|
const referenceLocation = getGridLocation(to.element);
|
|
8239
8434
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8240
8435
|
this.gridview.addView(from, exports.Sizing.Distribute, dropLocation);
|
|
8241
|
-
from.panels.forEach((panel) => {
|
|
8242
|
-
this._onDidMovePanel.fire({ panel });
|
|
8243
|
-
});
|
|
8244
8436
|
}
|
|
8437
|
+
from.panels.forEach((panel) => {
|
|
8438
|
+
this._onDidMovePanel.fire({ panel, from });
|
|
8439
|
+
});
|
|
8245
8440
|
}
|
|
8246
8441
|
doSetGroupActive(group) {
|
|
8247
8442
|
super.doSetGroupActive(group);
|
|
@@ -9865,8 +10060,21 @@ var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
|
9865
10060
|
}
|
|
9866
10061
|
return t;
|
|
9867
10062
|
};
|
|
10063
|
+
function useTitle(api) {
|
|
10064
|
+
const [title, setTitle] = React.useState(api.title);
|
|
10065
|
+
React.useEffect(() => {
|
|
10066
|
+
const disposable = api.onDidTitleChange((event) => {
|
|
10067
|
+
setTitle(event.title);
|
|
10068
|
+
});
|
|
10069
|
+
return () => {
|
|
10070
|
+
disposable.dispose();
|
|
10071
|
+
};
|
|
10072
|
+
}, [api]);
|
|
10073
|
+
return title;
|
|
10074
|
+
}
|
|
9868
10075
|
const DockviewDefaultTab = (_a) => {
|
|
9869
10076
|
var { api, containerApi: _containerApi, params: _params, hideClose, closeActionOverride } = _a, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride"]);
|
|
10077
|
+
const title = useTitle(api);
|
|
9870
10078
|
const onClose = React.useCallback((event) => {
|
|
9871
10079
|
event.preventDefault();
|
|
9872
10080
|
if (closeActionOverride) {
|
|
@@ -9889,7 +10097,7 @@ const DockviewDefaultTab = (_a) => {
|
|
|
9889
10097
|
}
|
|
9890
10098
|
}, [api, rest.onClick]);
|
|
9891
10099
|
return (React.createElement("div", Object.assign({ "data-testid": "dockview-dv-default-tab" }, rest, { onClick: onClick, className: "dv-default-tab" }),
|
|
9892
|
-
React.createElement("span", { className: "dv-default-tab-content" },
|
|
10100
|
+
React.createElement("span", { className: "dv-default-tab-content" }, title),
|
|
9893
10101
|
!hideClose && (React.createElement("div", { className: "dv-default-tab-action", onMouseDown: onMouseDown, onClick: onClose },
|
|
9894
10102
|
React.createElement(CloseButton, null)))));
|
|
9895
10103
|
};
|