dockview-core 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +0 -2
- package/dist/cjs/api/component.api.js +0 -10
- package/dist/cjs/dnd/abstractDragHandler.js +4 -2
- package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +16 -0
- package/dist/cjs/dnd/dropTargetAnchorContainer.js +105 -0
- package/dist/cjs/dnd/droptarget.d.ts +16 -0
- package/dist/cjs/dnd/droptarget.js +138 -14
- package/dist/cjs/dnd/ghost.d.ts +4 -1
- package/dist/cjs/dnd/ghost.js +3 -2
- package/dist/cjs/dnd/groupDragHandler.js +3 -1
- package/dist/cjs/dockview/components/panel/content.js +10 -13
- package/dist/cjs/dockview/components/popupService.d.ts +13 -0
- package/dist/cjs/dockview/components/popupService.js +76 -0
- package/dist/cjs/dockview/components/tab/tab.js +17 -7
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +20 -0
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +45 -0
- package/dist/cjs/dockview/components/titlebar/tabs.js +288 -0
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +8 -9
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +108 -152
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +2 -9
- package/dist/cjs/dockview/dockviewComponent.d.ts +10 -3
- package/dist/cjs/dockview/dockviewComponent.js +71 -30
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +31 -0
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +5 -3
- package/dist/cjs/dockview/dockviewPanelModel.js +25 -4
- package/dist/cjs/dockview/framework.d.ts +4 -1
- package/dist/cjs/dockview/options.d.ts +8 -5
- package/dist/cjs/dockview/options.js +3 -1
- package/dist/cjs/dockview/theme.d.ts +31 -0
- package/dist/cjs/dockview/theme.js +42 -0
- package/dist/cjs/dockview/types.d.ts +5 -1
- package/dist/cjs/dom.d.ts +1 -0
- package/dist/cjs/dom.js +15 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/paneview/paneviewComponent.js +1 -0
- package/dist/cjs/scrollbar.d.ts +12 -0
- package/dist/cjs/scrollbar.js +106 -0
- package/dist/cjs/splitview/splitview.js +1 -0
- package/dist/cjs/splitview/splitviewComponent.js +1 -0
- package/dist/dockview-core.amd.js +930 -293
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +929 -292
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +930 -293
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +923 -294
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +930 -293
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +929 -292
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +0 -2
- package/dist/esm/api/component.api.js +0 -6
- package/dist/esm/dnd/abstractDragHandler.js +4 -2
- package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +16 -0
- package/dist/esm/dnd/dropTargetAnchorContainer.js +74 -0
- package/dist/esm/dnd/droptarget.d.ts +16 -0
- package/dist/esm/dnd/droptarget.js +134 -14
- package/dist/esm/dnd/ghost.d.ts +4 -1
- package/dist/esm/dnd/ghost.js +3 -2
- package/dist/esm/dnd/groupDragHandler.js +3 -1
- package/dist/esm/dockview/components/panel/content.js +10 -13
- package/dist/esm/dockview/components/popupService.d.ts +13 -0
- package/dist/esm/dockview/components/popupService.js +53 -0
- package/dist/esm/dockview/components/tab/tab.js +15 -7
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +16 -0
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +45 -0
- package/dist/esm/dockview/components/titlebar/tabs.js +183 -0
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +8 -9
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +133 -162
- package/dist/esm/dockview/components/titlebar/voidContainer.js +2 -9
- package/dist/esm/dockview/dockviewComponent.d.ts +10 -3
- package/dist/esm/dockview/dockviewComponent.js +69 -24
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/esm/dockview/dockviewGroupPanelModel.js +27 -0
- package/dist/esm/dockview/dockviewPanelModel.d.ts +5 -3
- package/dist/esm/dockview/dockviewPanelModel.js +14 -4
- package/dist/esm/dockview/framework.d.ts +4 -1
- package/dist/esm/dockview/options.d.ts +8 -5
- package/dist/esm/dockview/options.js +3 -1
- package/dist/esm/dockview/theme.d.ts +31 -0
- package/dist/esm/dockview/theme.js +39 -0
- package/dist/esm/dockview/types.d.ts +5 -1
- package/dist/esm/dom.d.ts +1 -0
- package/dist/esm/dom.js +13 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/paneview/paneviewComponent.js +1 -0
- package/dist/esm/scrollbar.d.ts +12 -0
- package/dist/esm/scrollbar.js +80 -0
- package/dist/esm/splitview/splitview.js +1 -0
- package/dist/esm/splitview/splitviewComponent.js +1 -0
- package/dist/styles/dockview.css +427 -69
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version
|
|
3
|
+
* @version 4.0.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -31,7 +31,7 @@ function styleInject(css, ref) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
var css_248z = ".dv-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-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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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-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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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-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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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 .dv-groupview.dv-active-group > .dv-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 .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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-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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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 .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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-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-overlay-z-index: 999;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .dv-groupview .dv-content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .dv-groupview.dv-active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview.dv-inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled)::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 .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled)::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 .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dv-drop-target {\n position: relative;\n}\n.dv-drop-target > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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-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.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-tabs-container > .dv-tab.dv-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.dv-tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-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.dv-groupview:focus {\n outline: none;\n}\n.dv-groupview > .dv-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.dv-grid-view,\n.dv-branch-node {\n height: 100%;\n width: 100%;\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 --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-hidden {\n display: none;\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dv-pane-container {\n height: 100%;\n width: 100%;\n}\n.dv-pane-container.dv-animated .dv-view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-pane-container .dv-view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.dv-pane-container .dv-view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.dv-pane-container .dv-view:not(:first-child) .dv-pane > .dv-pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.dv-pane-container .dv-view .dv-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.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dv-pane-container .dv-view .dv-default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.dv-pane-container:first-of-type > .dv-pane > .dv-pane-header {\n border-top: none !important;\n}\n.dv-pane-container .dv-pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.dv-pane-container .dv-pane .dv-pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable {\n cursor: pointer;\n}\n.dv-pane-container .dv-pane .dv-pane-header:focus:before, .dv-pane-container .dv-pane .dv-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.dv-pane-container .dv-pane .dv-pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-body:focus:before, .dv-pane-container .dv-pane .dv-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 .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled {\n background-color: black;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled {\n background-color: orange;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum {\n background-color: green;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum {\n background-color: red;\n}\n\n.dv-split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container.dv-splitview-disabled > .dv-sash-container > .dv-sash {\n pointer-events: none;\n}\n.dv-split-view-container.dv-animation .dv-view,\n.dv-split-view-container.dv-animation .dv-sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-split-view-container.dv-horizontal {\n height: 100%;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash {\n height: 100%;\n width: 4px;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ew-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: w-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: e-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.dv-split-view-container.dv-vertical {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash {\n width: 100%;\n height: 4px;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ns-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: n-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: s-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.dv-split-view-container .dv-sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.dv-split-view-container .dv-sash-container .dv-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.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active, .dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: var(--dv-active-sash-transition-duration, 0.1s);\n transition-delay: var(--dv-active-sash-transition-delay, 0.5s);\n}\n.dv-split-view-container .dv-view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container .dv-view-container .dv-view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.dv-split-view-container.dv-separator-border .dv-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.dv-tab {\n flex-shrink: 0;\n}\n.dv-tab:focus-within, .dv-tab:focus {\n position: relative;\n}\n.dv-tab:focus-within::after, .dv-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.dv-tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.dv-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: ellipsis;\n}\n.dv-tab .dv-default-tab .dv-default-tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.dv-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.dv-tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.dv-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.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container {\n flex-grow: 0;\n}\n.dv-tabs-and-actions-container .dv-void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.dv-tabs-and-actions-container .dv-tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.dv-tabs-and-actions-container .dv-tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-tabs-and-actions-container .dv-tabs-container .dv-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.dv-watermark {\n display: flex;\n height: 100%;\n}";
|
|
34
|
+
var css_248z = ".dv-scrollable {\n position: relative;\n overflow: hidden;\n}\n.dv-scrollable .dv-scrollbar-horizontal {\n position: absolute;\n bottom: 0px;\n left: 0px;\n height: 4px;\n border-radius: 2px;\n background-color: transparent;\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: 1s;\n transition-delay: 0s;\n}\n.dv-scrollable:hover .dv-scrollbar-horizontal, .dv-scrollable.dv-scrollable-resizing .dv-scrollbar-horizontal, .dv-scrollable.dv-scrollable-scrolling .dv-scrollbar-horizontal {\n background-color: var(--dv-scrollbar-background-color, rgba(255, 255, 255, 0.25));\n}\n.dv-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-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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n\n.dockview-theme-light {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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 --dv-scrollbar-background-color: rgba(0, 0, 0, 0.25);\n}\n.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n\n.dockview-theme-vs {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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 .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-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 .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container .dv-tab.dv-inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\n --dv-color-abyss-dark: #000c18;\n --dv-color-abyss: #10192c;\n --dv-color-abyss-light: #1c1c2a;\n --dv-color-abyss-lighter: #2b2b4a;\n --dv-color-abyss-accent: rgb(91, 30, 207);\n --dv-color-abyss-primary-text: white;\n --dv-color-abyss-secondary-text: rgb(148, 151, 169);\n --dv-group-view-background-color: var(--dv-color-abyss-dark);\n --dv-tabs-and-actions-container-background-color: var(\n --dv-color-abyss-light\n );\n --dv-activegroup-visiblepanel-tab-background-color: var(\n --dv-color-abyss-dark\n );\n --dv-activegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(\n --dv-color-abyss-dark\n );\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--dv-color-abyss);\n --dv-tab-divider-color: var(--dv-color-abyss-lighter);\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: var(--dv-color-abyss-lighter);\n --dv-paneview-header-border-color: var(--dv-color-abyss-lighter);\n --dv-paneview-active-outline-color: #596f99;\n}\n.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n\n.dockview-theme-dracula {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\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 .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-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 .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-active-tab {\n position: relative;\n}\n.dockview-theme-dracula .dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-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-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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\n padding: 10px;\n background-color: #ebeced;\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-sash-color: #cfd1d3;\n --dv-active-sash-color: #babbbb;\n}\n.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed {\n opacity: 0;\n transition: none;\n}\n.dockview-theme-replit .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-resize-container {\n border-radius: 10px !important;\n border: none;\n}\n.dockview-theme-replit .dv-groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .dv-groupview .dv-content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .dv-groupview.dv-active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .dv-groupview.dv-inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash {\n background-color: transparent;\n}\n.dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled)::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-sash-color);\n position: absolute;\n}\n.dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):hover, .dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):active {\n background-color: transparent;\n}\n.dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):hover::after, .dockview-theme-replit .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):active::after {\n background-color: var(--dv-active-sash-color);\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash {\n background-color: transparent;\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled)::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-sash-color);\n position: absolute;\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover, .dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):active {\n background-color: transparent;\n}\n.dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after, .dockview-theme-replit .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):active::after {\n background-color: var(--dv-active-sash-color);\n}\n\n.dockview-theme-abyss-spaced {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\n --dv-tab-font-size: 12px;\n --dv-border-radius: 20px;\n --dv-tab-margin: 0.5rem 0.25rem;\n --dv-tabs-and-actions-container-height: 44px;\n --dv-border-radius: 20px;\n --dv-color-abyss-dark: rgb(11, 6, 17);\n --dv-color-abyss: #16121f;\n --dv-color-abyss-light: #201d2b;\n --dv-color-abyss-lighter: #2a2837;\n --dv-color-abyss-accent: rgb(91, 30, 207);\n --dv-color-abyss-primary-text: white;\n --dv-color-abyss-secondary-text: rgb(148, 151, 169);\n --dv-drag-over-border: 2px solid var(--dv-color-abyss-accent);\n --dv-drag-over-background-color: \"\";\n --dv-group-view-background-color: var(--dv-color-abyss-dark);\n --dv-tabs-and-actions-container-background-color: var(--dv-color-abyss);\n --dv-activegroup-visiblepanel-tab-background-color: var(\n --dv-color-abyss-lighter\n );\n --dv-activegroup-hiddenpanel-tab-background-color: var(\n --dv-color-abyss-light\n );\n --dv-inactivegroup-visiblepanel-tab-background-color: var(\n --dv-color-abyss-lighter\n );\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(\n --dv-color-abyss-light\n );\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: var(--dv-color-abyss-primary-text);\n --dv-activegroup-hiddenpanel-tab-color: var(\n --dv-color-abyss-secondary-text\n );\n --dv-inactivegroup-visiblepanel-tab-color: var(\n --dv-color-abyss-primary-text\n );\n --dv-inactivegroup-hiddenpanel-tab-color: var(\n --dv-color-abyss-secondary-text\n );\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-active-sash-color: var(--dv-color-abyss-accent);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, 0.5);\n padding: 10px;\n background-color: var(--dv-color-abyss-dark);\n}\n.dockview-theme-abyss-spaced .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-abyss-spaced .dv-sash {\n border-radius: 4px;\n}\n.dockview-theme-abyss-spaced .dv-drop-target-anchor {\n border-radius: calc(var(--dv-border-radius) / 4);\n}\n.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content {\n border-radius: var(--dv-border-radius);\n}\n.dockview-theme-abyss-spaced .dv-resize-container {\n border-radius: var(--dv-border-radius) !important;\n border: none;\n}\n.dockview-theme-abyss-spaced .dv-tabs-overflow-container,\n.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default {\n border-radius: 8px;\n height: unset !important;\n}\n.dockview-theme-abyss-spaced .dv-tab {\n border-radius: 8px;\n}\n.dockview-theme-abyss-spaced .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-abyss-spaced .dv-groupview {\n border-radius: var(--dv-border-radius);\n}\n.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container {\n padding: 0px calc(var(--dv-border-radius) / 2);\n}\n.dockview-theme-abyss-spaced .dv-groupview .dv-content-container {\n background-color: var(--dv-tabs-and-actions-container-background-color);\n}\n.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview {\n border: 2px solid var(--dv-color-abyss-dark);\n}\n\n.dockview-theme-light-spaced {\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: transparent;\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-overlay-z-index: 999;\n --dv-tab-font-size: inherit;\n --dv-border-radius: 0px;\n --dv-tab-margin: 0;\n --dv-sash-color: transparent;\n --dv-active-sash-color: transparent;\n --dv-active-sash-transition-duration: 0.1s;\n --dv-active-sash-transition-delay: 0.5s;\n --dv-tab-font-size: 12px;\n --dv-border-radius: 20px;\n --dv-tab-margin: 0.5rem 0.25rem;\n --dv-tabs-and-actions-container-height: 44px;\n --dv-border-radius: 20px;\n --dv-drag-over-border: 2px solid rgb(91, 30, 207);\n --dv-drag-over-background-color: \"\";\n --dv-group-view-background-color: #f6f5f9;\n --dv-tabs-and-actions-container-background-color: white;\n --dv-activegroup-visiblepanel-tab-background-color: #ededf0;\n --dv-activegroup-hiddenpanel-tab-background-color: #f9f9fa;\n --dv-inactivegroup-visiblepanel-tab-background-color: #ededf0;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #f9f9fa;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(104, 107, 130);\n --dv-activegroup-hiddenpanel-tab-color: rgb(148, 151, 169);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(104, 107, 130);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(148, 151, 169);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-active-sash-color: rgb(91, 30, 207);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(0, 0, 0, 0.1);\n padding: 10px;\n background-color: #f6f5f9;\n --dv-scrollbar-background-color: rgba(0, 0, 0, 0.25);\n}\n.dockview-theme-light-spaced .dv-resize-container:has(> .dv-groupview) {\n border-radius: 8px;\n}\n.dockview-theme-light-spaced .dv-sash {\n border-radius: 4px;\n}\n.dockview-theme-light-spaced .dv-drop-target-anchor {\n border-radius: calc(var(--dv-border-radius) / 4);\n}\n.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content {\n border-radius: var(--dv-border-radius);\n}\n.dockview-theme-light-spaced .dv-resize-container {\n border-radius: var(--dv-border-radius) !important;\n border: none;\n}\n.dockview-theme-light-spaced .dv-tabs-overflow-container,\n.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default {\n border-radius: 8px;\n height: unset !important;\n}\n.dockview-theme-light-spaced .dv-tab {\n border-radius: 8px;\n}\n.dockview-theme-light-spaced .dv-tab .dv-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-light-spaced .dv-groupview {\n border-radius: var(--dv-border-radius);\n}\n.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container {\n padding: 0px calc(var(--dv-border-radius) / 2);\n}\n.dockview-theme-light-spaced .dv-groupview .dv-content-container {\n background-color: var(--dv-tabs-and-actions-container-background-color);\n}\n.dockview-theme-light-spaced .dv-resize-container .dv-groupview {\n border: 2px solid rgba(255, 255, 255, 0.1);\n}\n.dv-drop-target-container {\n position: absolute;\n z-index: 9999;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n pointer-events: none;\n overflow: hidden;\n --dv-transition-duration: 300ms;\n}\n.dv-drop-target-container .dv-drop-target-anchor {\n position: relative;\n border: var(--dv-drag-over-border);\n transition: opacity var(--dv-transition-duration) ease-in, top var(--dv-transition-duration) ease-out, left var(--dv-transition-duration) ease-out, width var(--dv-transition-duration) ease-out, height var(--dv-transition-duration) ease-out;\n background-color: var(--dv-drag-over-background-color);\n opacity: 1;\n}\n.dv-drop-target {\n position: relative;\n --dv-transition-duration: 70ms;\n}\n.dv-drop-target > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n border: var(--dv-drag-over-border);\n background-color: var(--dv-drag-over-background-color);\n transition: top var(--dv-transition-duration) ease-out, left var(--dv-transition-duration) ease-out, width var(--dv-transition-duration) ease-out, height var(--dv-transition-duration) ease-out, opacity var(--dv-transition-duration) ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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.dv-drop-target > .dv-drop-target-dropzone > .dv-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-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.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-active-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.dv-groupview.dv-inactive-group > .dv-tabs-and-actions-container > .dv-scrollable > .dv-tabs-container > .dv-tab.dv-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.dv-tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-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.dv-groupview:focus {\n outline: none;\n}\n.dv-groupview > .dv-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.dv-grid-view,\n.dv-branch-node {\n height: 100%;\n width: 100%;\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 --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: calc(var(--dv-overlay-z-index) - 2);\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-hidden {\n display: none;\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\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: var(--dv-overlay-z-index);\n position: absolute;\n cursor: se-resize;\n}\n.dv-render-overlay {\n --dv-overlay-z-index: var(--dv-overlay-z-index, 999);\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: calc(var(--dv-overlay-z-index) - 1);\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dv-pane-container {\n height: 100%;\n width: 100%;\n}\n.dv-pane-container.dv-animated .dv-view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-pane-container .dv-view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.dv-pane-container .dv-view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.dv-pane-container .dv-view:not(:first-child) .dv-pane > .dv-pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.dv-pane-container .dv-view .dv-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.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dv-pane-container .dv-view .dv-default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.dv-pane-container:first-of-type > .dv-pane > .dv-pane-header {\n border-top: none !important;\n}\n.dv-pane-container .dv-pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.dv-pane-container .dv-pane .dv-pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable {\n cursor: pointer;\n}\n.dv-pane-container .dv-pane .dv-pane-header:focus:before, .dv-pane-container .dv-pane .dv-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.dv-pane-container .dv-pane .dv-pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.dv-pane-container .dv-pane .dv-pane-body:focus:before, .dv-pane-container .dv-pane .dv-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 .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled {\n background-color: black;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled {\n background-color: orange;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum {\n background-color: green;\n}\n.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum {\n background-color: red;\n}\n\n.dv-split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container.dv-splitview-disabled > .dv-sash-container > .dv-sash {\n pointer-events: none;\n}\n.dv-split-view-container.dv-animation .dv-view,\n.dv-split-view-container.dv-animation .dv-sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.dv-split-view-container.dv-horizontal {\n height: 100%;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash {\n height: 100%;\n width: 4px;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ew-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: w-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: e-resize;\n}\n.dv-split-view-container.dv-horizontal > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.dv-split-view-container.dv-vertical {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash {\n width: 100%;\n height: 4px;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled {\n cursor: ns-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-disabled {\n cursor: default;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-maximum {\n cursor: n-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-minimum {\n cursor: s-resize;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view {\n width: 100%;\n}\n.dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.dv-split-view-container .dv-sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.dv-split-view-container .dv-sash-container .dv-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 background-color: var(--dv-sash-color, transparent);\n}\n.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active, .dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: var(--dv-active-sash-transition-duration, 0.1s);\n transition-delay: var(--dv-active-sash-transition-delay, 0.5s);\n}\n.dv-split-view-container .dv-view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.dv-split-view-container .dv-view-container .dv-view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.dv-split-view-container.dv-separator-border .dv-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.dv-tab {\n flex-shrink: 0;\n}\n.dv-tab:focus-within, .dv-tab:focus {\n position: relative;\n}\n.dv-tab:focus-within::after, .dv-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.dv-tab.dv-tab-dragging .dv-default-tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {\n visibility: hidden;\n}\n.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {\n visibility: visible;\n}\n.dv-tab .dv-default-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.dv-tab .dv-default-tab .dv-default-tab-content {\n flex-grow: 1;\n margin-right: 4px;\n}\n.dv-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.dv-tab .dv-default-tab .dv-default-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.dv-tabs-overflow-dropdown-default {\n height: 100%;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n margin: var(--dv-tab-margin);\n display: flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0.25rem 0.5rem;\n cursor: pointer;\n}\n.dv-tabs-overflow-dropdown-default > span {\n padding-left: 0.25rem;\n}\n.dv-tabs-overflow-dropdown-default > svg {\n transform: rotate(90deg);\n}\n.dv-tabs-container {\n display: flex;\n height: 100%;\n overflow: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.dv-tabs-container.dv-horizontal .dv-tabs-container .dv-tab:last-child {\n margin-right: 0;\n}\n.dv-tabs-container.dv-horizontal .dv-tabs-container .dv-tab:not(:nth-last-child(1)) {\n margin-left: 0;\n}\n.dv-tabs-container.dv-horizontal .dv-tabs-container .dv-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.dv-tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.dv-tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.dv-tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n\n.dv-tab {\n -webkit-user-drag: element;\n outline: none;\n padding: 0.25rem 0.5rem;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n font-size: var(--dv-tab-font-size);\n margin: var(--dv-tab-margin);\n}\n\n.dv-tabs-overflow-container {\n flex-direction: column;\n height: unset;\n border: 1px solid var(--dv-tab-divider-color);\n background-color: var(--dv-group-view-background-color);\n}\n.dv-tabs-overflow-container .dv-tab:not(:last-child) {\n border-bottom: 1px solid var(--dv-tab-divider-color);\n}\n.dv-tabs-overflow-container .dv-active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.dv-tabs-overflow-container .dv-inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.dv-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.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab {\n flex-grow: 1;\n}\n.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container {\n flex-grow: 0;\n}\n.dv-tabs-and-actions-container .dv-void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.dv-tabs-and-actions-container .dv-right-actions-container {\n display: flex;\n}\n.dv-watermark {\n display: flex;\n height: 100%;\n}";
|
|
35
35
|
styleInject(css_248z);
|
|
36
36
|
|
|
37
37
|
class TransferObject {
|
|
@@ -363,6 +363,20 @@ class MutableDisposable {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
+
class OverflowObserver extends CompositeDisposable {
|
|
367
|
+
constructor(el) {
|
|
368
|
+
super();
|
|
369
|
+
this._onDidChange = new Emitter();
|
|
370
|
+
this.onDidChange = this._onDidChange.event;
|
|
371
|
+
this._value = null;
|
|
372
|
+
this.addDisposables(this._onDidChange, watchElementResize(el, (entry) => {
|
|
373
|
+
const hasScrollX = entry.target.scrollWidth > entry.target.clientWidth;
|
|
374
|
+
const hasScrollY = entry.target.scrollHeight > entry.target.clientHeight;
|
|
375
|
+
this._value = { hasScrollX, hasScrollY };
|
|
376
|
+
this._onDidChange.fire(this._value);
|
|
377
|
+
}));
|
|
378
|
+
}
|
|
379
|
+
}
|
|
366
380
|
function watchElementResize(element, cb) {
|
|
367
381
|
const observer = new ResizeObserver((entires) => {
|
|
368
382
|
/**
|
|
@@ -601,6 +615,19 @@ class Classnames {
|
|
|
601
615
|
}
|
|
602
616
|
}
|
|
603
617
|
}
|
|
618
|
+
function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
619
|
+
//
|
|
620
|
+
const childPosition = getDomNodePagePosition(child);
|
|
621
|
+
const parentPosition = getDomNodePagePosition(parent);
|
|
622
|
+
if (childPosition.left < parentPosition.left) {
|
|
623
|
+
return false;
|
|
624
|
+
}
|
|
625
|
+
if (childPosition.left + childPosition.width >
|
|
626
|
+
parentPosition.left + parentPosition.width) {
|
|
627
|
+
return false;
|
|
628
|
+
}
|
|
629
|
+
return true;
|
|
630
|
+
}
|
|
604
631
|
|
|
605
632
|
function tail(arr) {
|
|
606
633
|
if (arr.length === 0) {
|
|
@@ -608,9 +635,6 @@ function tail(arr) {
|
|
|
608
635
|
}
|
|
609
636
|
return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];
|
|
610
637
|
}
|
|
611
|
-
function last(arr) {
|
|
612
|
-
return arr.length > 0 ? arr[arr.length - 1] : undefined;
|
|
613
|
-
}
|
|
614
638
|
function sequenceEquals(arr1, arr2) {
|
|
615
639
|
if (arr1.length !== arr2.length) {
|
|
616
640
|
return false;
|
|
@@ -876,6 +900,7 @@ class Splitview {
|
|
|
876
900
|
}
|
|
877
901
|
set margin(value) {
|
|
878
902
|
this._margin = value;
|
|
903
|
+
toggleClass(this.element, 'dv-splitview-has-margin', value !== 0);
|
|
879
904
|
}
|
|
880
905
|
constructor(container, options) {
|
|
881
906
|
var _a, _b;
|
|
@@ -3447,9 +3472,6 @@ class DockviewApi {
|
|
|
3447
3472
|
get totalPanels() {
|
|
3448
3473
|
return this.component.totalPanels;
|
|
3449
3474
|
}
|
|
3450
|
-
get gap() {
|
|
3451
|
-
return this.component.gap;
|
|
3452
|
-
}
|
|
3453
3475
|
/**
|
|
3454
3476
|
* Invoked when the active group changes. May be undefined if no group is active.
|
|
3455
3477
|
*/
|
|
@@ -3680,9 +3702,6 @@ class DockviewApi {
|
|
|
3680
3702
|
addPopoutGroup(item, options) {
|
|
3681
3703
|
return this.component.addPopoutGroup(item, options);
|
|
3682
3704
|
}
|
|
3683
|
-
setGap(gap) {
|
|
3684
|
-
this.component.updateOptions({ gap });
|
|
3685
|
-
}
|
|
3686
3705
|
updateOptions(options) {
|
|
3687
3706
|
this.component.updateOptions(options);
|
|
3688
3707
|
}
|
|
@@ -3735,14 +3754,16 @@ class DragHandler extends CompositeDisposable {
|
|
|
3735
3754
|
* For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled
|
|
3736
3755
|
* through .preventDefault(). Since this is applied globally to all drag events this would break dockviews
|
|
3737
3756
|
* dnd logic. You can see the code at
|
|
3738
|
-
|
|
3757
|
+
P * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
|
|
3739
3758
|
*/
|
|
3740
3759
|
event.dataTransfer.setData('text/plain', '');
|
|
3741
3760
|
}
|
|
3742
3761
|
}
|
|
3743
3762
|
}), addDisposableListener(this.el, 'dragend', () => {
|
|
3744
3763
|
this.pointerEventsDisposable.dispose();
|
|
3745
|
-
|
|
3764
|
+
setTimeout(() => {
|
|
3765
|
+
this.dataDisposable.dispose(); // allow the data to be read by other handlers before disposing
|
|
3766
|
+
}, 0);
|
|
3746
3767
|
}));
|
|
3747
3768
|
}
|
|
3748
3769
|
}
|
|
@@ -3852,6 +3873,12 @@ const DEFAULT_SIZE = {
|
|
|
3852
3873
|
const SMALL_WIDTH_BOUNDARY = 100;
|
|
3853
3874
|
const SMALL_HEIGHT_BOUNDARY = 100;
|
|
3854
3875
|
class Droptarget extends CompositeDisposable {
|
|
3876
|
+
get disabled() {
|
|
3877
|
+
return this._disabled;
|
|
3878
|
+
}
|
|
3879
|
+
set disabled(value) {
|
|
3880
|
+
this._disabled = value;
|
|
3881
|
+
}
|
|
3855
3882
|
get state() {
|
|
3856
3883
|
return this._state;
|
|
3857
3884
|
}
|
|
@@ -3863,23 +3890,34 @@ class Droptarget extends CompositeDisposable {
|
|
|
3863
3890
|
this.onDrop = this._onDrop.event;
|
|
3864
3891
|
this._onWillShowOverlay = new Emitter();
|
|
3865
3892
|
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3893
|
+
this._disabled = false;
|
|
3866
3894
|
// use a set to take advantage of #<set>.has
|
|
3867
3895
|
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
3868
3896
|
this.dnd = new DragAndDropObserver(this.element, {
|
|
3869
|
-
onDragEnter: () =>
|
|
3897
|
+
onDragEnter: () => {
|
|
3898
|
+
var _a, _b, _c;
|
|
3899
|
+
(_c = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.getElements();
|
|
3900
|
+
},
|
|
3870
3901
|
onDragOver: (e) => {
|
|
3902
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
3903
|
+
Droptarget.ACTUAL_TARGET = this;
|
|
3904
|
+
const overrideTraget = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
3871
3905
|
if (this._acceptedTargetZonesSet.size === 0) {
|
|
3906
|
+
if (overrideTraget) {
|
|
3907
|
+
return;
|
|
3908
|
+
}
|
|
3872
3909
|
this.removeDropTarget();
|
|
3873
3910
|
return;
|
|
3874
3911
|
}
|
|
3875
|
-
const
|
|
3876
|
-
const
|
|
3912
|
+
const target = (_e = (_d = (_c = this.options).getOverlayOutline) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : this.element;
|
|
3913
|
+
const width = target.offsetWidth;
|
|
3914
|
+
const height = target.offsetHeight;
|
|
3877
3915
|
if (width === 0 || height === 0) {
|
|
3878
3916
|
return; // avoid div!0
|
|
3879
3917
|
}
|
|
3880
3918
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
3881
|
-
const x = e.clientX - rect.left;
|
|
3882
|
-
const y = e.clientY - rect.top;
|
|
3919
|
+
const x = ((_f = e.clientX) !== null && _f !== void 0 ? _f : 0) - rect.left;
|
|
3920
|
+
const y = ((_g = e.clientY) !== null && _g !== void 0 ? _g : 0) - rect.top;
|
|
3883
3921
|
const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);
|
|
3884
3922
|
/**
|
|
3885
3923
|
* If the event has already been used by another DropTarget instance
|
|
@@ -3892,6 +3930,9 @@ class Droptarget extends CompositeDisposable {
|
|
|
3892
3930
|
return;
|
|
3893
3931
|
}
|
|
3894
3932
|
if (!this.options.canDisplayOverlay(e, quadrant)) {
|
|
3933
|
+
if (overrideTraget) {
|
|
3934
|
+
return;
|
|
3935
|
+
}
|
|
3895
3936
|
this.removeDropTarget();
|
|
3896
3937
|
return;
|
|
3897
3938
|
}
|
|
@@ -3909,29 +3950,57 @@ class Droptarget extends CompositeDisposable {
|
|
|
3909
3950
|
return;
|
|
3910
3951
|
}
|
|
3911
3952
|
this.markAsUsed(e);
|
|
3912
|
-
if (
|
|
3953
|
+
if (overrideTraget) ;
|
|
3954
|
+
else if (!this.targetElement) {
|
|
3913
3955
|
this.targetElement = document.createElement('div');
|
|
3914
3956
|
this.targetElement.className = 'dv-drop-target-dropzone';
|
|
3915
3957
|
this.overlayElement = document.createElement('div');
|
|
3916
3958
|
this.overlayElement.className = 'dv-drop-target-selection';
|
|
3917
3959
|
this._state = 'center';
|
|
3918
3960
|
this.targetElement.appendChild(this.overlayElement);
|
|
3919
|
-
|
|
3920
|
-
|
|
3961
|
+
target.classList.add('dv-drop-target');
|
|
3962
|
+
target.append(this.targetElement);
|
|
3963
|
+
// this.overlayElement.style.opacity = '0';
|
|
3964
|
+
// requestAnimationFrame(() => {
|
|
3965
|
+
// if (this.overlayElement) {
|
|
3966
|
+
// this.overlayElement.style.opacity = '';
|
|
3967
|
+
// }
|
|
3968
|
+
// });
|
|
3921
3969
|
}
|
|
3922
3970
|
this.toggleClasses(quadrant, width, height);
|
|
3923
3971
|
this._state = quadrant;
|
|
3924
3972
|
},
|
|
3925
3973
|
onDragLeave: () => {
|
|
3974
|
+
var _a, _b;
|
|
3975
|
+
const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
3976
|
+
if (target) {
|
|
3977
|
+
return;
|
|
3978
|
+
}
|
|
3926
3979
|
this.removeDropTarget();
|
|
3927
3980
|
},
|
|
3928
|
-
onDragEnd: () => {
|
|
3981
|
+
onDragEnd: (e) => {
|
|
3982
|
+
var _a, _b;
|
|
3983
|
+
const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
3984
|
+
if (target && Droptarget.ACTUAL_TARGET === this) {
|
|
3985
|
+
if (this._state) {
|
|
3986
|
+
// only stop the propagation of the event if we are dealing with it
|
|
3987
|
+
// which is only when the target has state
|
|
3988
|
+
e.stopPropagation();
|
|
3989
|
+
this._onDrop.fire({
|
|
3990
|
+
position: this._state,
|
|
3991
|
+
nativeEvent: e,
|
|
3992
|
+
});
|
|
3993
|
+
}
|
|
3994
|
+
}
|
|
3929
3995
|
this.removeDropTarget();
|
|
3996
|
+
target === null || target === void 0 ? void 0 : target.clear();
|
|
3930
3997
|
},
|
|
3931
3998
|
onDrop: (e) => {
|
|
3999
|
+
var _a, _b, _c;
|
|
3932
4000
|
e.preventDefault();
|
|
3933
4001
|
const state = this._state;
|
|
3934
4002
|
this.removeDropTarget();
|
|
4003
|
+
(_c = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.clear();
|
|
3935
4004
|
if (state) {
|
|
3936
4005
|
// only stop the propagation of the event if we are dealing with it
|
|
3937
4006
|
// which is only when the target has state
|
|
@@ -3966,8 +4035,9 @@ class Droptarget extends CompositeDisposable {
|
|
|
3966
4035
|
return typeof value === 'boolean' && value;
|
|
3967
4036
|
}
|
|
3968
4037
|
toggleClasses(quadrant, width, height) {
|
|
3969
|
-
var _a, _b;
|
|
3970
|
-
|
|
4038
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
4039
|
+
const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4040
|
+
if (!target && !this.overlayElement) {
|
|
3971
4041
|
return;
|
|
3972
4042
|
}
|
|
3973
4043
|
const isSmallX = width < SMALL_WIDTH_BOUNDARY;
|
|
@@ -3981,7 +4051,7 @@ class Droptarget extends CompositeDisposable {
|
|
|
3981
4051
|
const topClass = !isSmallY && isTop;
|
|
3982
4052
|
const bottomClass = !isSmallY && isBottom;
|
|
3983
4053
|
let size = 1;
|
|
3984
|
-
const sizeOptions = (
|
|
4054
|
+
const sizeOptions = (_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : DEFAULT_SIZE;
|
|
3985
4055
|
if (sizeOptions.type === 'percentage') {
|
|
3986
4056
|
size = clamp(sizeOptions.value, 0, 100) / 100;
|
|
3987
4057
|
}
|
|
@@ -3993,6 +4063,74 @@ class Droptarget extends CompositeDisposable {
|
|
|
3993
4063
|
size = clamp(0, sizeOptions.value, height) / height;
|
|
3994
4064
|
}
|
|
3995
4065
|
}
|
|
4066
|
+
if (target) {
|
|
4067
|
+
const outlineEl = (_g = (_f = (_e = this.options).getOverlayOutline) === null || _f === void 0 ? void 0 : _f.call(_e)) !== null && _g !== void 0 ? _g : this.element;
|
|
4068
|
+
const elBox = outlineEl.getBoundingClientRect();
|
|
4069
|
+
const ta = target.getElements(undefined, outlineEl);
|
|
4070
|
+
const el = ta.root;
|
|
4071
|
+
const overlay = ta.overlay;
|
|
4072
|
+
const bigbox = el.getBoundingClientRect();
|
|
4073
|
+
const rootTop = elBox.top - bigbox.top;
|
|
4074
|
+
const rootLeft = elBox.left - bigbox.left;
|
|
4075
|
+
const box = {
|
|
4076
|
+
top: rootTop,
|
|
4077
|
+
left: rootLeft,
|
|
4078
|
+
width: width,
|
|
4079
|
+
height: height,
|
|
4080
|
+
};
|
|
4081
|
+
if (rightClass) {
|
|
4082
|
+
box.left = rootLeft + width * (1 - size);
|
|
4083
|
+
box.width = width * size;
|
|
4084
|
+
}
|
|
4085
|
+
else if (leftClass) {
|
|
4086
|
+
box.width = width * size;
|
|
4087
|
+
}
|
|
4088
|
+
else if (topClass) {
|
|
4089
|
+
box.height = height * size;
|
|
4090
|
+
}
|
|
4091
|
+
else if (bottomClass) {
|
|
4092
|
+
box.top = rootTop + height * (1 - size);
|
|
4093
|
+
box.height = height * size;
|
|
4094
|
+
}
|
|
4095
|
+
if (isSmallX && isLeft) {
|
|
4096
|
+
box.width = 4;
|
|
4097
|
+
}
|
|
4098
|
+
if (isSmallX && isRight) {
|
|
4099
|
+
box.left = rootLeft + width - 4;
|
|
4100
|
+
box.width = 4;
|
|
4101
|
+
}
|
|
4102
|
+
const topPx = `${Math.round(box.top)}px`;
|
|
4103
|
+
const leftPx = `${Math.round(box.left)}px`;
|
|
4104
|
+
const widthPx = `${Math.round(box.width)}px`;
|
|
4105
|
+
const heightPx = `${Math.round(box.height)}px`;
|
|
4106
|
+
if (overlay.style.top === topPx &&
|
|
4107
|
+
overlay.style.left === leftPx &&
|
|
4108
|
+
overlay.style.width === widthPx &&
|
|
4109
|
+
overlay.style.height === heightPx) {
|
|
4110
|
+
return;
|
|
4111
|
+
}
|
|
4112
|
+
overlay.style.top = topPx;
|
|
4113
|
+
overlay.style.left = leftPx;
|
|
4114
|
+
overlay.style.width = widthPx;
|
|
4115
|
+
overlay.style.height = heightPx;
|
|
4116
|
+
overlay.style.visibility = 'visible';
|
|
4117
|
+
overlay.className = `dv-drop-target-anchor${this.options.className ? ` ${this.options.className}` : ''}`;
|
|
4118
|
+
toggleClass(overlay, 'dv-drop-target-left', isLeft);
|
|
4119
|
+
toggleClass(overlay, 'dv-drop-target-right', isRight);
|
|
4120
|
+
toggleClass(overlay, 'dv-drop-target-top', isTop);
|
|
4121
|
+
toggleClass(overlay, 'dv-drop-target-bottom', isBottom);
|
|
4122
|
+
toggleClass(overlay, 'dv-drop-target-center', quadrant === 'center');
|
|
4123
|
+
if (ta.changed) {
|
|
4124
|
+
toggleClass(overlay, 'dv-drop-target-anchor-container-changed', true);
|
|
4125
|
+
setTimeout(() => {
|
|
4126
|
+
toggleClass(overlay, 'dv-drop-target-anchor-container-changed', false);
|
|
4127
|
+
}, 10);
|
|
4128
|
+
}
|
|
4129
|
+
return;
|
|
4130
|
+
}
|
|
4131
|
+
if (!this.overlayElement) {
|
|
4132
|
+
return;
|
|
4133
|
+
}
|
|
3996
4134
|
const box = { top: '0px', left: '0px', width: '100%', height: '100%' };
|
|
3997
4135
|
/**
|
|
3998
4136
|
* You can also achieve the overlay placement using the transform CSS property
|
|
@@ -4049,12 +4187,13 @@ class Droptarget extends CompositeDisposable {
|
|
|
4049
4187
|
return calculateQuadrantAsPixels(overlayType, x, y, width, height, activationSizeOptions.value);
|
|
4050
4188
|
}
|
|
4051
4189
|
removeDropTarget() {
|
|
4190
|
+
var _a;
|
|
4052
4191
|
if (this.targetElement) {
|
|
4053
4192
|
this._state = undefined;
|
|
4054
|
-
|
|
4193
|
+
(_a = this.targetElement.parentElement) === null || _a === void 0 ? void 0 : _a.classList.remove('dv-drop-target');
|
|
4194
|
+
this.targetElement.remove();
|
|
4055
4195
|
this.targetElement = undefined;
|
|
4056
4196
|
this.overlayElement = undefined;
|
|
4057
|
-
this.element.classList.remove('dv-drop-target');
|
|
4058
4197
|
}
|
|
4059
4198
|
}
|
|
4060
4199
|
}
|
|
@@ -4639,7 +4778,15 @@ class ContentContainer extends CompositeDisposable {
|
|
|
4639
4778
|
this._element.className = 'dv-content-container';
|
|
4640
4779
|
this._element.tabIndex = -1;
|
|
4641
4780
|
this.addDisposables(this._onDidFocus, this._onDidBlur);
|
|
4781
|
+
const target = group.dropTargetContainer;
|
|
4642
4782
|
this.dropTarget = new Droptarget(this.element, {
|
|
4783
|
+
getOverlayOutline: () => {
|
|
4784
|
+
var _a;
|
|
4785
|
+
return ((_a = accessor.options.theme) === null || _a === void 0 ? void 0 : _a.dndPanelOverlay) === 'group'
|
|
4786
|
+
? this.element.parentElement
|
|
4787
|
+
: null;
|
|
4788
|
+
},
|
|
4789
|
+
className: 'dv-drop-target-content',
|
|
4643
4790
|
acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
|
|
4644
4791
|
canDisplayOverlay: (event, position) => {
|
|
4645
4792
|
if (this.group.locked === 'no-drop-target' ||
|
|
@@ -4653,22 +4800,11 @@ class ContentContainer extends CompositeDisposable {
|
|
|
4653
4800
|
return false;
|
|
4654
4801
|
}
|
|
4655
4802
|
if (data && data.viewId === this.accessor.id) {
|
|
4656
|
-
|
|
4657
|
-
if (position === 'center') {
|
|
4658
|
-
// don't allow to drop on self for center position
|
|
4659
|
-
return false;
|
|
4660
|
-
}
|
|
4661
|
-
if (data.panelId === null) {
|
|
4662
|
-
// don't allow group move to drop anywhere on self
|
|
4663
|
-
return false;
|
|
4664
|
-
}
|
|
4665
|
-
}
|
|
4666
|
-
const groupHasOnePanelAndIsActiveDragElement = this.group.panels.length === 1 &&
|
|
4667
|
-
data.groupId === this.group.id;
|
|
4668
|
-
return !groupHasOnePanelAndIsActiveDragElement;
|
|
4803
|
+
return true;
|
|
4669
4804
|
}
|
|
4670
4805
|
return this.group.canDisplayOverlay(event, position, 'content');
|
|
4671
4806
|
},
|
|
4807
|
+
getOverrideTarget: target ? () => target.model : undefined,
|
|
4672
4808
|
});
|
|
4673
4809
|
this.addDisposables(this.dropTarget);
|
|
4674
4810
|
}
|
|
@@ -4743,6 +4879,18 @@ class ContentContainer extends CompositeDisposable {
|
|
|
4743
4879
|
}
|
|
4744
4880
|
}
|
|
4745
4881
|
|
|
4882
|
+
function addGhostImage(dataTransfer, ghostElement, options) {
|
|
4883
|
+
var _a, _b;
|
|
4884
|
+
// class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues
|
|
4885
|
+
addClasses(ghostElement, 'dv-dragged');
|
|
4886
|
+
document.body.appendChild(ghostElement);
|
|
4887
|
+
dataTransfer.setDragImage(ghostElement, (_a = options === null || options === void 0 ? void 0 : options.x) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.y) !== null && _b !== void 0 ? _b : 0);
|
|
4888
|
+
setTimeout(() => {
|
|
4889
|
+
removeClasses(ghostElement, 'dv-dragged');
|
|
4890
|
+
ghostElement.remove();
|
|
4891
|
+
}, 0);
|
|
4892
|
+
}
|
|
4893
|
+
|
|
4746
4894
|
class TabDragHandler extends DragHandler {
|
|
4747
4895
|
constructor(element, accessor, group, panel) {
|
|
4748
4896
|
super(element);
|
|
@@ -4783,25 +4931,32 @@ class Tab extends CompositeDisposable {
|
|
|
4783
4931
|
toggleClass(this.element, 'dv-inactive-tab', true);
|
|
4784
4932
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
4785
4933
|
this.dropTarget = new Droptarget(this._element, {
|
|
4786
|
-
acceptedTargetZones: ['
|
|
4934
|
+
acceptedTargetZones: ['left', 'right'],
|
|
4935
|
+
overlayModel: { activationSize: { value: 50, type: 'percentage' } },
|
|
4787
4936
|
canDisplayOverlay: (event, position) => {
|
|
4788
4937
|
if (this.group.locked) {
|
|
4789
4938
|
return false;
|
|
4790
4939
|
}
|
|
4791
4940
|
const data = getPanelData();
|
|
4792
4941
|
if (data && this.accessor.id === data.viewId) {
|
|
4793
|
-
|
|
4794
|
-
data.groupId === this.group.id) {
|
|
4795
|
-
// don't allow group move to drop on self
|
|
4796
|
-
return false;
|
|
4797
|
-
}
|
|
4798
|
-
return this.panel.id !== data.panelId;
|
|
4942
|
+
return true;
|
|
4799
4943
|
}
|
|
4800
4944
|
return this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
4801
4945
|
},
|
|
4946
|
+
getOverrideTarget: () => { var _a; return (_a = group.model.dropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },
|
|
4802
4947
|
});
|
|
4803
4948
|
this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
|
|
4804
4949
|
this.addDisposables(this._onPointDown, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
4950
|
+
if (event.dataTransfer) {
|
|
4951
|
+
const style = getComputedStyle(this.element);
|
|
4952
|
+
const newNode = this.element.cloneNode(true);
|
|
4953
|
+
Array.from(style).forEach((key) => newNode.style.setProperty(key, style.getPropertyValue(key), style.getPropertyPriority(key)));
|
|
4954
|
+
newNode.style.position = 'absolute';
|
|
4955
|
+
addGhostImage(event.dataTransfer, newNode, {
|
|
4956
|
+
y: -10,
|
|
4957
|
+
x: 30,
|
|
4958
|
+
});
|
|
4959
|
+
}
|
|
4805
4960
|
this._onDragStart.fire(event);
|
|
4806
4961
|
}), dragHandler, addDisposableListener(this._element, 'pointerdown', (event) => {
|
|
4807
4962
|
this._onPointDown.fire(event);
|
|
@@ -4825,17 +4980,6 @@ class Tab extends CompositeDisposable {
|
|
|
4825
4980
|
}
|
|
4826
4981
|
}
|
|
4827
4982
|
|
|
4828
|
-
function addGhostImage(dataTransfer, ghostElement) {
|
|
4829
|
-
// class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues
|
|
4830
|
-
addClasses(ghostElement, 'dv-dragged');
|
|
4831
|
-
document.body.appendChild(ghostElement);
|
|
4832
|
-
dataTransfer.setDragImage(ghostElement, 0, 0);
|
|
4833
|
-
setTimeout(() => {
|
|
4834
|
-
removeClasses(ghostElement, 'dv-dragged');
|
|
4835
|
-
ghostElement.remove();
|
|
4836
|
-
}, 0);
|
|
4837
|
-
}
|
|
4838
|
-
|
|
4839
4983
|
class GroupDragHandler extends DragHandler {
|
|
4840
4984
|
constructor(element, accessor, group) {
|
|
4841
4985
|
super(element);
|
|
@@ -4875,8 +5019,10 @@ class GroupDragHandler extends DragHandler {
|
|
|
4875
5019
|
ghostElement.style.lineHeight = '20px';
|
|
4876
5020
|
ghostElement.style.borderRadius = '12px';
|
|
4877
5021
|
ghostElement.style.position = 'absolute';
|
|
5022
|
+
ghostElement.style.pointerEvents = 'none';
|
|
5023
|
+
ghostElement.style.top = '-9999px';
|
|
4878
5024
|
ghostElement.textContent = `Multiple Panels (${this.group.size})`;
|
|
4879
|
-
addGhostImage(dataTransfer, ghostElement);
|
|
5025
|
+
addGhostImage(dataTransfer, ghostElement, { y: -10, x: 30 });
|
|
4880
5026
|
}
|
|
4881
5027
|
return {
|
|
4882
5028
|
dispose: () => {
|
|
@@ -4908,19 +5054,13 @@ class VoidContainer extends CompositeDisposable {
|
|
|
4908
5054
|
this.dropTraget = new Droptarget(this._element, {
|
|
4909
5055
|
acceptedTargetZones: ['center'],
|
|
4910
5056
|
canDisplayOverlay: (event, position) => {
|
|
4911
|
-
var _a;
|
|
4912
5057
|
const data = getPanelData();
|
|
4913
5058
|
if (data && this.accessor.id === data.viewId) {
|
|
4914
|
-
|
|
4915
|
-
data.groupId === this.group.id) {
|
|
4916
|
-
// don't allow group move to drop on self
|
|
4917
|
-
return false;
|
|
4918
|
-
}
|
|
4919
|
-
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
4920
|
-
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
5059
|
+
return true;
|
|
4921
5060
|
}
|
|
4922
5061
|
return group.model.canDisplayOverlay(event, position, 'header_space');
|
|
4923
5062
|
},
|
|
5063
|
+
getOverrideTarget: () => { var _a; return (_a = group.model.dropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },
|
|
4924
5064
|
});
|
|
4925
5065
|
this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
|
|
4926
5066
|
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
@@ -4931,88 +5071,338 @@ class VoidContainer extends CompositeDisposable {
|
|
|
4931
5071
|
}
|
|
4932
5072
|
}
|
|
4933
5073
|
|
|
4934
|
-
class
|
|
4935
|
-
get
|
|
4936
|
-
return this.
|
|
4937
|
-
}
|
|
4938
|
-
get size() {
|
|
4939
|
-
return this.tabs.length;
|
|
4940
|
-
}
|
|
4941
|
-
get hidden() {
|
|
4942
|
-
return this._hidden;
|
|
5074
|
+
class Scrollbar extends CompositeDisposable {
|
|
5075
|
+
get element() {
|
|
5076
|
+
return this._element;
|
|
4943
5077
|
}
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
this.
|
|
5078
|
+
constructor(scrollableElement) {
|
|
5079
|
+
super();
|
|
5080
|
+
this.scrollableElement = scrollableElement;
|
|
5081
|
+
this._scrollLeft = 0;
|
|
5082
|
+
this._element = document.createElement('div');
|
|
5083
|
+
this._element.className = 'dv-scrollable';
|
|
5084
|
+
this._horizontalScrollbar = document.createElement('div');
|
|
5085
|
+
this._horizontalScrollbar.className = 'dv-scrollbar-horizontal';
|
|
5086
|
+
this.element.appendChild(scrollableElement);
|
|
5087
|
+
this.element.appendChild(this._horizontalScrollbar);
|
|
5088
|
+
this.addDisposables(addDisposableListener(this.element, 'wheel', (event) => {
|
|
5089
|
+
this._scrollLeft += event.deltaY * Scrollbar.MouseWheelSpeed;
|
|
5090
|
+
this.calculateScrollbarStyles();
|
|
5091
|
+
}), addDisposableListener(this._horizontalScrollbar, 'pointerdown', (event) => {
|
|
5092
|
+
event.preventDefault();
|
|
5093
|
+
toggleClass(this.element, 'dv-scrollable-scrolling', true);
|
|
5094
|
+
const originalClientX = event.clientX;
|
|
5095
|
+
const originalScrollLeft = this._scrollLeft;
|
|
5096
|
+
const onPointerMove = (event) => {
|
|
5097
|
+
const deltaX = event.clientX - originalClientX;
|
|
5098
|
+
const { clientWidth } = this.element;
|
|
5099
|
+
const { scrollWidth } = this.scrollableElement;
|
|
5100
|
+
const p = clientWidth / scrollWidth;
|
|
5101
|
+
this._scrollLeft = originalScrollLeft + deltaX / p;
|
|
5102
|
+
this.calculateScrollbarStyles();
|
|
5103
|
+
};
|
|
5104
|
+
const onEnd = () => {
|
|
5105
|
+
toggleClass(this.element, 'dv-scrollable-scrolling', false);
|
|
5106
|
+
document.removeEventListener('pointermove', onPointerMove);
|
|
5107
|
+
document.removeEventListener('pointerup', onEnd);
|
|
5108
|
+
document.removeEventListener('pointercancel', onEnd);
|
|
5109
|
+
};
|
|
5110
|
+
document.addEventListener('pointermove', onPointerMove);
|
|
5111
|
+
document.addEventListener('pointerup', onEnd);
|
|
5112
|
+
document.addEventListener('pointercancel', onEnd);
|
|
5113
|
+
}), addDisposableListener(this.element, 'scroll', () => {
|
|
5114
|
+
this.calculateScrollbarStyles();
|
|
5115
|
+
}), addDisposableListener(this.scrollableElement, 'scroll', () => {
|
|
5116
|
+
this._scrollLeft = this.scrollableElement.scrollLeft;
|
|
5117
|
+
this.calculateScrollbarStyles();
|
|
5118
|
+
}), watchElementResize(this.element, () => {
|
|
5119
|
+
toggleClass(this.element, 'dv-scrollable-resizing', true);
|
|
5120
|
+
if (this._animationTimer) {
|
|
5121
|
+
clearTimeout(this._animationTimer);
|
|
5122
|
+
}
|
|
5123
|
+
this._animationTimer = setTimeout(() => {
|
|
5124
|
+
clearTimeout(this._animationTimer);
|
|
5125
|
+
toggleClass(this.element, 'dv-scrollable-resizing', false);
|
|
5126
|
+
}, 500);
|
|
5127
|
+
this.calculateScrollbarStyles();
|
|
5128
|
+
}));
|
|
4947
5129
|
}
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
5130
|
+
calculateScrollbarStyles() {
|
|
5131
|
+
const { clientWidth } = this.element;
|
|
5132
|
+
const { scrollWidth } = this.scrollableElement;
|
|
5133
|
+
const hasScrollbar = scrollWidth > clientWidth;
|
|
5134
|
+
if (hasScrollbar) {
|
|
5135
|
+
const px = clientWidth * (clientWidth / scrollWidth);
|
|
5136
|
+
this._horizontalScrollbar.style.width = `${px}px`;
|
|
5137
|
+
this._scrollLeft = clamp(this._scrollLeft, 0, this.scrollableElement.scrollWidth - clientWidth);
|
|
5138
|
+
this.scrollableElement.scrollLeft = this._scrollLeft;
|
|
5139
|
+
const percentageComplete = this._scrollLeft / (scrollWidth - clientWidth);
|
|
5140
|
+
this._horizontalScrollbar.style.left = `${(clientWidth - px) * percentageComplete}px`;
|
|
5141
|
+
}
|
|
5142
|
+
else {
|
|
5143
|
+
this._horizontalScrollbar.style.width = `0px`;
|
|
5144
|
+
this._horizontalScrollbar.style.left = `0px`;
|
|
5145
|
+
this._scrollLeft = 0;
|
|
4951
5146
|
}
|
|
4952
5147
|
}
|
|
4953
|
-
|
|
4954
|
-
|
|
5148
|
+
}
|
|
5149
|
+
Scrollbar.MouseWheelSpeed = 1;
|
|
5150
|
+
|
|
5151
|
+
class Tabs extends CompositeDisposable {
|
|
5152
|
+
get showTabsOverflowControl() {
|
|
5153
|
+
return this._showTabsOverflowControl;
|
|
4955
5154
|
}
|
|
4956
|
-
|
|
4957
|
-
if (this.
|
|
5155
|
+
set showTabsOverflowControl(value) {
|
|
5156
|
+
if (this._showTabsOverflowControl == value) {
|
|
4958
5157
|
return;
|
|
4959
5158
|
}
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
this.
|
|
5159
|
+
this._showTabsOverflowControl = value;
|
|
5160
|
+
if (value) {
|
|
5161
|
+
const observer = new OverflowObserver(this._tabsList);
|
|
5162
|
+
this._observerDisposable.value = new CompositeDisposable(observer, observer.onDidChange((event) => {
|
|
5163
|
+
const hasOverflow = event.hasScrollX || event.hasScrollY;
|
|
5164
|
+
this.toggleDropdown({ reset: !hasOverflow });
|
|
5165
|
+
}), addDisposableListener(this._tabsList, 'scroll', () => {
|
|
5166
|
+
this.toggleDropdown({ reset: false });
|
|
5167
|
+
}));
|
|
4967
5168
|
}
|
|
4968
5169
|
}
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
5170
|
+
get element() {
|
|
5171
|
+
return this._element;
|
|
5172
|
+
}
|
|
5173
|
+
get panels() {
|
|
5174
|
+
return this._tabs.map((_) => _.value.panel.id);
|
|
5175
|
+
}
|
|
5176
|
+
get size() {
|
|
5177
|
+
return this._tabs.length;
|
|
5178
|
+
}
|
|
5179
|
+
get tabs() {
|
|
5180
|
+
return this._tabs.map((_) => _.value);
|
|
5181
|
+
}
|
|
5182
|
+
constructor(group, accessor, options) {
|
|
5183
|
+
super();
|
|
5184
|
+
this.group = group;
|
|
5185
|
+
this.accessor = accessor;
|
|
5186
|
+
this._observerDisposable = new MutableDisposable();
|
|
5187
|
+
this._tabs = [];
|
|
5188
|
+
this.selectedIndex = -1;
|
|
5189
|
+
this._showTabsOverflowControl = false;
|
|
5190
|
+
this._onTabDragStart = new Emitter();
|
|
5191
|
+
this.onTabDragStart = this._onTabDragStart.event;
|
|
5192
|
+
this._onDrop = new Emitter();
|
|
5193
|
+
this.onDrop = this._onDrop.event;
|
|
5194
|
+
this._onWillShowOverlay = new Emitter();
|
|
5195
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
5196
|
+
this._onOverflowTabsChange = new Emitter();
|
|
5197
|
+
this.onOverflowTabsChange = this._onOverflowTabsChange.event;
|
|
5198
|
+
this._tabsList = document.createElement('div');
|
|
5199
|
+
this._tabsList.className = 'dv-tabs-container dv-horizontal';
|
|
5200
|
+
this.showTabsOverflowControl = options.showTabsOverflowControl;
|
|
5201
|
+
const scrollbar = new Scrollbar(this._tabsList);
|
|
5202
|
+
this._element = scrollbar.element;
|
|
5203
|
+
this.addDisposables(this._onOverflowTabsChange, this._observerDisposable, scrollbar, this._onWillShowOverlay, this._onDrop, this._onTabDragStart, addDisposableListener(this.element, 'pointerdown', (event) => {
|
|
5204
|
+
if (event.defaultPrevented) {
|
|
5205
|
+
return;
|
|
5206
|
+
}
|
|
5207
|
+
const isLeftClick = event.button === 0;
|
|
5208
|
+
if (isLeftClick) {
|
|
5209
|
+
this.accessor.doSetGroupActive(this.group);
|
|
5210
|
+
}
|
|
5211
|
+
}), Disposable.from(() => {
|
|
5212
|
+
for (const { value, disposable } of this._tabs) {
|
|
5213
|
+
disposable.dispose();
|
|
5214
|
+
value.dispose();
|
|
5215
|
+
}
|
|
5216
|
+
this._tabs = [];
|
|
5217
|
+
}));
|
|
5218
|
+
}
|
|
5219
|
+
indexOf(id) {
|
|
5220
|
+
return this._tabs.findIndex((tab) => tab.value.panel.id === id);
|
|
5221
|
+
}
|
|
5222
|
+
isActive(tab) {
|
|
5223
|
+
return (this.selectedIndex > -1 &&
|
|
5224
|
+
this._tabs[this.selectedIndex].value === tab);
|
|
5225
|
+
}
|
|
5226
|
+
setActivePanel(panel) {
|
|
5227
|
+
let runningWidth = 0;
|
|
5228
|
+
for (const tab of this._tabs) {
|
|
5229
|
+
const isActivePanel = panel.id === tab.value.panel.id;
|
|
5230
|
+
tab.value.setActive(isActivePanel);
|
|
5231
|
+
if (isActivePanel) {
|
|
5232
|
+
const element = tab.value.element;
|
|
5233
|
+
const parentElement = element.parentElement;
|
|
5234
|
+
if (runningWidth < parentElement.scrollLeft ||
|
|
5235
|
+
runningWidth + element.clientWidth >
|
|
5236
|
+
parentElement.scrollLeft + parentElement.clientWidth) {
|
|
5237
|
+
parentElement.scrollLeft = runningWidth;
|
|
5238
|
+
}
|
|
5239
|
+
}
|
|
5240
|
+
runningWidth += tab.value.element.clientWidth;
|
|
4980
5241
|
}
|
|
4981
5242
|
}
|
|
4982
|
-
|
|
4983
|
-
if (this.
|
|
5243
|
+
openPanel(panel, index = this._tabs.length) {
|
|
5244
|
+
if (this._tabs.find((tab) => tab.value.panel.id === panel.id)) {
|
|
4984
5245
|
return;
|
|
4985
5246
|
}
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
5247
|
+
const tab = new Tab(panel, this.accessor, this.group);
|
|
5248
|
+
tab.setContent(panel.view.tab);
|
|
5249
|
+
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
5250
|
+
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
5251
|
+
}), tab.onPointerDown((event) => {
|
|
5252
|
+
if (event.defaultPrevented) {
|
|
5253
|
+
return;
|
|
5254
|
+
}
|
|
5255
|
+
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
5256
|
+
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
5257
|
+
this.size === 1;
|
|
5258
|
+
if (isFloatingGroupsEnabled &&
|
|
5259
|
+
!isFloatingWithOnePanel &&
|
|
5260
|
+
event.shiftKey) {
|
|
5261
|
+
event.preventDefault();
|
|
5262
|
+
const panel = this.accessor.getGroupPanel(tab.panel.id);
|
|
5263
|
+
const { top, left } = tab.element.getBoundingClientRect();
|
|
5264
|
+
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
5265
|
+
this.accessor.addFloatingGroup(panel, {
|
|
5266
|
+
x: left - rootLeft,
|
|
5267
|
+
y: top - rootTop,
|
|
5268
|
+
inDragMode: true,
|
|
5269
|
+
});
|
|
5270
|
+
return;
|
|
5271
|
+
}
|
|
5272
|
+
switch (event.button) {
|
|
5273
|
+
case 0: // left click or touch
|
|
5274
|
+
if (this.group.activePanel !== panel) {
|
|
5275
|
+
this.group.model.openPanel(panel);
|
|
5276
|
+
}
|
|
5277
|
+
break;
|
|
5278
|
+
}
|
|
5279
|
+
}), tab.onDrop((event) => {
|
|
5280
|
+
this._onDrop.fire({
|
|
5281
|
+
event: event.nativeEvent,
|
|
5282
|
+
index: this._tabs.findIndex((x) => x.value === tab),
|
|
5283
|
+
});
|
|
5284
|
+
}), tab.onWillShowOverlay((event) => {
|
|
5285
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
5286
|
+
kind: 'tab',
|
|
5287
|
+
panel: this.group.activePanel,
|
|
5288
|
+
api: this.accessor.api,
|
|
5289
|
+
group: this.group,
|
|
5290
|
+
getData: getPanelData,
|
|
5291
|
+
}));
|
|
5292
|
+
}));
|
|
5293
|
+
const value = { value: tab, disposable };
|
|
5294
|
+
this.addTab(value, index);
|
|
5295
|
+
}
|
|
5296
|
+
delete(id) {
|
|
5297
|
+
const index = this.indexOf(id);
|
|
5298
|
+
const tabToRemove = this._tabs.splice(index, 1)[0];
|
|
5299
|
+
const { value, disposable } = tabToRemove;
|
|
5300
|
+
disposable.dispose();
|
|
5301
|
+
value.dispose();
|
|
5302
|
+
value.element.remove();
|
|
5303
|
+
}
|
|
5304
|
+
addTab(tab, index = this._tabs.length) {
|
|
5305
|
+
if (index < 0 || index > this._tabs.length) {
|
|
5306
|
+
throw new Error('invalid location');
|
|
4989
5307
|
}
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
this.
|
|
5308
|
+
this._tabsList.insertBefore(tab.value.element, this._tabsList.children[index]);
|
|
5309
|
+
this._tabs = [
|
|
5310
|
+
...this._tabs.slice(0, index),
|
|
5311
|
+
tab,
|
|
5312
|
+
...this._tabs.slice(index),
|
|
5313
|
+
];
|
|
5314
|
+
if (this.selectedIndex < 0) {
|
|
5315
|
+
this.selectedIndex = index;
|
|
4993
5316
|
}
|
|
4994
5317
|
}
|
|
4995
|
-
|
|
4996
|
-
|
|
5318
|
+
toggleDropdown(options) {
|
|
5319
|
+
const tabs = options.reset
|
|
5320
|
+
? []
|
|
5321
|
+
: this._tabs
|
|
5322
|
+
.filter((tab) => !isChildEntirelyVisibleWithinParent(tab.value.element, this._tabsList))
|
|
5323
|
+
.map((x) => x.value.panel.id);
|
|
5324
|
+
this._onOverflowTabsChange.fire({ tabs, reset: options.reset });
|
|
4997
5325
|
}
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5326
|
+
}
|
|
5327
|
+
|
|
5328
|
+
const createSvgElementFromPath = (params) => {
|
|
5329
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
5330
|
+
svg.setAttributeNS(null, 'height', params.height);
|
|
5331
|
+
svg.setAttributeNS(null, 'width', params.width);
|
|
5332
|
+
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
5333
|
+
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
5334
|
+
svg.setAttributeNS(null, 'focusable', 'false');
|
|
5335
|
+
svg.classList.add('dv-svg');
|
|
5336
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
5337
|
+
path.setAttributeNS(null, 'd', params.path);
|
|
5338
|
+
svg.appendChild(path);
|
|
5339
|
+
return svg;
|
|
5340
|
+
};
|
|
5341
|
+
const createCloseButton = () => createSvgElementFromPath({
|
|
5342
|
+
width: '11',
|
|
5343
|
+
height: '11',
|
|
5344
|
+
viewbox: '0 0 28 28',
|
|
5345
|
+
path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',
|
|
5346
|
+
});
|
|
5347
|
+
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
5348
|
+
width: '11',
|
|
5349
|
+
height: '11',
|
|
5350
|
+
viewbox: '0 0 24 15',
|
|
5351
|
+
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
5352
|
+
});
|
|
5353
|
+
const createChevronRightButton = () => createSvgElementFromPath({
|
|
5354
|
+
width: '11',
|
|
5355
|
+
height: '11',
|
|
5356
|
+
viewbox: '0 0 15 25',
|
|
5357
|
+
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
5358
|
+
});
|
|
5359
|
+
|
|
5360
|
+
function createDropdownElementHandle() {
|
|
5361
|
+
const el = document.createElement('div');
|
|
5362
|
+
el.className = 'dv-tabs-overflow-dropdown-default';
|
|
5363
|
+
const text = document.createElement('span');
|
|
5364
|
+
text.textContent = ``;
|
|
5365
|
+
const icon = createChevronRightButton();
|
|
5366
|
+
el.appendChild(icon);
|
|
5367
|
+
el.appendChild(text);
|
|
5368
|
+
return {
|
|
5369
|
+
element: el,
|
|
5370
|
+
update: (params) => {
|
|
5371
|
+
text.textContent = `${params.tabs}`;
|
|
5372
|
+
},
|
|
5373
|
+
};
|
|
5374
|
+
}
|
|
5375
|
+
|
|
5376
|
+
class TabsContainer extends CompositeDisposable {
|
|
5377
|
+
get onTabDragStart() {
|
|
5378
|
+
return this.tabs.onTabDragStart;
|
|
5001
5379
|
}
|
|
5002
|
-
|
|
5003
|
-
return this.tabs.
|
|
5380
|
+
get panels() {
|
|
5381
|
+
return this.tabs.panels;
|
|
5382
|
+
}
|
|
5383
|
+
get size() {
|
|
5384
|
+
return this.tabs.size;
|
|
5385
|
+
}
|
|
5386
|
+
get hidden() {
|
|
5387
|
+
return this._hidden;
|
|
5388
|
+
}
|
|
5389
|
+
set hidden(value) {
|
|
5390
|
+
this._hidden = value;
|
|
5391
|
+
this.element.style.display = value ? 'none' : '';
|
|
5392
|
+
}
|
|
5393
|
+
get element() {
|
|
5394
|
+
return this._element;
|
|
5004
5395
|
}
|
|
5005
5396
|
constructor(accessor, group) {
|
|
5006
5397
|
super();
|
|
5007
5398
|
this.accessor = accessor;
|
|
5008
5399
|
this.group = group;
|
|
5009
|
-
this.tabs = [];
|
|
5010
|
-
this.selectedIndex = -1;
|
|
5011
5400
|
this._hidden = false;
|
|
5401
|
+
this.dropdownPart = null;
|
|
5402
|
+
this._overflowTabs = [];
|
|
5403
|
+
this._dropdownDisposable = new MutableDisposable();
|
|
5012
5404
|
this._onDrop = new Emitter();
|
|
5013
5405
|
this.onDrop = this._onDrop.event;
|
|
5014
|
-
this._onTabDragStart = new Emitter();
|
|
5015
|
-
this.onTabDragStart = this._onTabDragStart.event;
|
|
5016
5406
|
this._onGroupDragStart = new Emitter();
|
|
5017
5407
|
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
5018
5408
|
this._onWillShowOverlay = new Emitter();
|
|
@@ -5026,15 +5416,21 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5026
5416
|
this.leftActionsContainer.className = 'dv-left-actions-container';
|
|
5027
5417
|
this.preActionsContainer = document.createElement('div');
|
|
5028
5418
|
this.preActionsContainer.className = 'dv-pre-actions-container';
|
|
5029
|
-
this.
|
|
5030
|
-
|
|
5419
|
+
this.tabs = new Tabs(group, accessor, {
|
|
5420
|
+
showTabsOverflowControl: !accessor.options.disableTabsOverflowList,
|
|
5421
|
+
});
|
|
5031
5422
|
this.voidContainer = new VoidContainer(this.accessor, this.group);
|
|
5032
5423
|
this._element.appendChild(this.preActionsContainer);
|
|
5033
|
-
this._element.appendChild(this.
|
|
5424
|
+
this._element.appendChild(this.tabs.element);
|
|
5034
5425
|
this._element.appendChild(this.leftActionsContainer);
|
|
5035
5426
|
this._element.appendChild(this.voidContainer.element);
|
|
5036
5427
|
this._element.appendChild(this.rightActionsContainer);
|
|
5037
|
-
this.addDisposables(
|
|
5428
|
+
this.addDisposables(accessor.onDidOptionsChange(() => {
|
|
5429
|
+
this.tabs.showTabsOverflowControl =
|
|
5430
|
+
!accessor.options.disableTabsOverflowList;
|
|
5431
|
+
}), this.tabs.onOverflowTabsChange((event) => {
|
|
5432
|
+
this.toggleDropdown(event);
|
|
5433
|
+
}), this.tabs, this._onWillShowOverlay, this._onDrop, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
5038
5434
|
this._onGroupDragStart.fire({
|
|
5039
5435
|
nativeEvent: event,
|
|
5040
5436
|
group: this.group,
|
|
@@ -5042,7 +5438,7 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5042
5438
|
}), this.voidContainer.onDrop((event) => {
|
|
5043
5439
|
this._onDrop.fire({
|
|
5044
5440
|
event: event.nativeEvent,
|
|
5045
|
-
index: this.tabs.
|
|
5441
|
+
index: this.tabs.size,
|
|
5046
5442
|
});
|
|
5047
5443
|
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
5048
5444
|
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
@@ -5052,133 +5448,149 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5052
5448
|
group: this.group,
|
|
5053
5449
|
getData: getPanelData,
|
|
5054
5450
|
}));
|
|
5055
|
-
}), addDisposableListener(this.voidContainer.element, 'pointerdown', (event) => {
|
|
5056
|
-
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
5057
|
-
if (isFloatingGroupsEnabled &&
|
|
5058
|
-
event.shiftKey &&
|
|
5059
|
-
this.group.api.location.type !== 'floating') {
|
|
5060
|
-
event.preventDefault();
|
|
5061
|
-
const { top, left } = this.element.getBoundingClientRect();
|
|
5062
|
-
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
5063
|
-
this.accessor.addFloatingGroup(this.group, {
|
|
5064
|
-
x: left - rootLeft + 20,
|
|
5065
|
-
y: top - rootTop + 20,
|
|
5066
|
-
inDragMode: true,
|
|
5067
|
-
});
|
|
5068
|
-
}
|
|
5069
|
-
}), addDisposableListener(this.tabContainer, 'pointerdown', (event) => {
|
|
5070
|
-
if (event.defaultPrevented) {
|
|
5071
|
-
return;
|
|
5072
|
-
}
|
|
5073
|
-
const isLeftClick = event.button === 0;
|
|
5074
|
-
if (isLeftClick) {
|
|
5075
|
-
this.accessor.doSetGroupActive(this.group);
|
|
5076
|
-
}
|
|
5077
|
-
}));
|
|
5078
|
-
}
|
|
5079
|
-
setActive(_isGroupActive) {
|
|
5080
|
-
// noop
|
|
5081
|
-
}
|
|
5082
|
-
delete(id) {
|
|
5083
|
-
const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);
|
|
5084
|
-
const tabToRemove = this.tabs.splice(index, 1)[0];
|
|
5085
|
-
if (!tabToRemove) {
|
|
5086
|
-
throw new Error(`dockview: Tab not found`);
|
|
5087
|
-
}
|
|
5088
|
-
const { value, disposable } = tabToRemove;
|
|
5089
|
-
disposable.dispose();
|
|
5090
|
-
value.dispose();
|
|
5091
|
-
value.element.remove();
|
|
5092
|
-
this.updateClassnames();
|
|
5093
|
-
}
|
|
5094
|
-
setActivePanel(panel) {
|
|
5095
|
-
this.tabs.forEach((tab) => {
|
|
5096
|
-
const isActivePanel = panel.id === tab.value.panel.id;
|
|
5097
|
-
tab.value.setActive(isActivePanel);
|
|
5098
|
-
});
|
|
5099
|
-
}
|
|
5100
|
-
openPanel(panel, index = this.tabs.length) {
|
|
5101
|
-
if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
|
|
5102
|
-
return;
|
|
5103
|
-
}
|
|
5104
|
-
const tab = new Tab(panel, this.accessor, this.group);
|
|
5105
|
-
tab.setContent(panel.view.tab);
|
|
5106
|
-
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
5107
|
-
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
5108
|
-
}), tab.onPointerDown((event) => {
|
|
5451
|
+
}), addDisposableListener(this.voidContainer.element, 'pointerdown', (event) => {
|
|
5109
5452
|
if (event.defaultPrevented) {
|
|
5110
5453
|
return;
|
|
5111
5454
|
}
|
|
5112
5455
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
5113
|
-
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
5114
|
-
this.size === 1;
|
|
5115
5456
|
if (isFloatingGroupsEnabled &&
|
|
5116
|
-
|
|
5117
|
-
|
|
5457
|
+
event.shiftKey &&
|
|
5458
|
+
this.group.api.location.type !== 'floating') {
|
|
5118
5459
|
event.preventDefault();
|
|
5119
|
-
const
|
|
5120
|
-
const { top, left } = tab.element.getBoundingClientRect();
|
|
5460
|
+
const { top, left } = this.element.getBoundingClientRect();
|
|
5121
5461
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
5122
|
-
this.accessor.addFloatingGroup(
|
|
5123
|
-
x: left - rootLeft,
|
|
5124
|
-
y: top - rootTop,
|
|
5462
|
+
this.accessor.addFloatingGroup(this.group, {
|
|
5463
|
+
x: left - rootLeft + 20,
|
|
5464
|
+
y: top - rootTop + 20,
|
|
5125
5465
|
inDragMode: true,
|
|
5126
5466
|
});
|
|
5127
|
-
return;
|
|
5128
|
-
}
|
|
5129
|
-
switch (event.button) {
|
|
5130
|
-
case 0: // left click or touch
|
|
5131
|
-
if (this.group.activePanel !== panel) {
|
|
5132
|
-
this.group.model.openPanel(panel);
|
|
5133
|
-
}
|
|
5134
|
-
break;
|
|
5135
5467
|
}
|
|
5136
|
-
}), tab.onDrop((event) => {
|
|
5137
|
-
this._onDrop.fire({
|
|
5138
|
-
event: event.nativeEvent,
|
|
5139
|
-
index: this.tabs.findIndex((x) => x.value === tab),
|
|
5140
|
-
});
|
|
5141
|
-
}), tab.onWillShowOverlay((event) => {
|
|
5142
|
-
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
5143
|
-
kind: 'tab',
|
|
5144
|
-
panel: this.group.activePanel,
|
|
5145
|
-
api: this.accessor.api,
|
|
5146
|
-
group: this.group,
|
|
5147
|
-
getData: getPanelData,
|
|
5148
|
-
}));
|
|
5149
5468
|
}));
|
|
5150
|
-
const value = { value: tab, disposable };
|
|
5151
|
-
this.addTab(value, index);
|
|
5152
5469
|
}
|
|
5153
|
-
|
|
5154
|
-
this.
|
|
5470
|
+
show() {
|
|
5471
|
+
if (!this.hidden) {
|
|
5472
|
+
this.element.style.display = '';
|
|
5473
|
+
}
|
|
5155
5474
|
}
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5475
|
+
hide() {
|
|
5476
|
+
this._element.style.display = 'none';
|
|
5477
|
+
}
|
|
5478
|
+
setRightActionsElement(element) {
|
|
5479
|
+
if (this.rightActions === element) {
|
|
5480
|
+
return;
|
|
5481
|
+
}
|
|
5482
|
+
if (this.rightActions) {
|
|
5483
|
+
this.rightActions.remove();
|
|
5484
|
+
this.rightActions = undefined;
|
|
5485
|
+
}
|
|
5486
|
+
if (element) {
|
|
5487
|
+
this.rightActionsContainer.appendChild(element);
|
|
5488
|
+
this.rightActions = element;
|
|
5161
5489
|
}
|
|
5162
|
-
this.tabs = [];
|
|
5163
5490
|
}
|
|
5164
|
-
|
|
5165
|
-
if (
|
|
5166
|
-
|
|
5491
|
+
setLeftActionsElement(element) {
|
|
5492
|
+
if (this.leftActions === element) {
|
|
5493
|
+
return;
|
|
5167
5494
|
}
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5495
|
+
if (this.leftActions) {
|
|
5496
|
+
this.leftActions.remove();
|
|
5497
|
+
this.leftActions = undefined;
|
|
5498
|
+
}
|
|
5499
|
+
if (element) {
|
|
5500
|
+
this.leftActionsContainer.appendChild(element);
|
|
5501
|
+
this.leftActions = element;
|
|
5502
|
+
}
|
|
5503
|
+
}
|
|
5504
|
+
setPrefixActionsElement(element) {
|
|
5505
|
+
if (this.preActions === element) {
|
|
5506
|
+
return;
|
|
5507
|
+
}
|
|
5508
|
+
if (this.preActions) {
|
|
5509
|
+
this.preActions.remove();
|
|
5510
|
+
this.preActions = undefined;
|
|
5511
|
+
}
|
|
5512
|
+
if (element) {
|
|
5513
|
+
this.preActionsContainer.appendChild(element);
|
|
5514
|
+
this.preActions = element;
|
|
5176
5515
|
}
|
|
5516
|
+
}
|
|
5517
|
+
isActive(tab) {
|
|
5518
|
+
return this.tabs.isActive(tab);
|
|
5519
|
+
}
|
|
5520
|
+
indexOf(id) {
|
|
5521
|
+
return this.tabs.indexOf(id);
|
|
5522
|
+
}
|
|
5523
|
+
setActive(_isGroupActive) {
|
|
5524
|
+
// noop
|
|
5525
|
+
}
|
|
5526
|
+
delete(id) {
|
|
5527
|
+
this.tabs.delete(id);
|
|
5528
|
+
this.updateClassnames();
|
|
5529
|
+
}
|
|
5530
|
+
setActivePanel(panel) {
|
|
5531
|
+
this.tabs.setActivePanel(panel);
|
|
5532
|
+
}
|
|
5533
|
+
openPanel(panel, index = this.tabs.size) {
|
|
5534
|
+
this.tabs.openPanel(panel, index);
|
|
5177
5535
|
this.updateClassnames();
|
|
5178
5536
|
}
|
|
5537
|
+
closePanel(panel) {
|
|
5538
|
+
this.delete(panel.id);
|
|
5539
|
+
}
|
|
5179
5540
|
updateClassnames() {
|
|
5180
5541
|
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
5181
5542
|
}
|
|
5543
|
+
toggleDropdown(options) {
|
|
5544
|
+
const tabs = options.reset ? [] : options.tabs;
|
|
5545
|
+
this._overflowTabs = tabs;
|
|
5546
|
+
if (this._overflowTabs.length > 0 && this.dropdownPart) {
|
|
5547
|
+
this.dropdownPart.update({ tabs: tabs.length });
|
|
5548
|
+
return;
|
|
5549
|
+
}
|
|
5550
|
+
if (this._overflowTabs.length === 0) {
|
|
5551
|
+
this._dropdownDisposable.dispose();
|
|
5552
|
+
return;
|
|
5553
|
+
}
|
|
5554
|
+
const root = document.createElement('div');
|
|
5555
|
+
root.className = 'dv-tabs-overflow-dropdown-root';
|
|
5556
|
+
const part = createDropdownElementHandle();
|
|
5557
|
+
part.update({ tabs: tabs.length });
|
|
5558
|
+
this.dropdownPart = part;
|
|
5559
|
+
root.appendChild(part.element);
|
|
5560
|
+
this.rightActionsContainer.prepend(root);
|
|
5561
|
+
this._dropdownDisposable.value = new CompositeDisposable(Disposable.from(() => {
|
|
5562
|
+
var _a, _b;
|
|
5563
|
+
root.remove();
|
|
5564
|
+
(_b = (_a = this.dropdownPart) === null || _a === void 0 ? void 0 : _a.dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
5565
|
+
this.dropdownPart = null;
|
|
5566
|
+
}), addDisposableListener(root, 'pointerdown', (event) => {
|
|
5567
|
+
event.preventDefault();
|
|
5568
|
+
}, { capture: true }), addDisposableListener(root, 'click', (event) => {
|
|
5569
|
+
const el = document.createElement('div');
|
|
5570
|
+
el.style.overflow = 'auto';
|
|
5571
|
+
el.className = 'dv-tabs-overflow-container';
|
|
5572
|
+
for (const tab of this.tabs.tabs.filter((tab) => this._overflowTabs.includes(tab.panel.id))) {
|
|
5573
|
+
const panelObject = this.group.panels.find((panel) => panel === tab.panel);
|
|
5574
|
+
const tabComponent = panelObject.view.createTabRenderer('headerOverflow');
|
|
5575
|
+
const child = tabComponent.element;
|
|
5576
|
+
const wrapper = document.createElement('div');
|
|
5577
|
+
toggleClass(wrapper, 'dv-tab', true);
|
|
5578
|
+
toggleClass(wrapper, 'dv-active-tab', panelObject.api.isActive);
|
|
5579
|
+
toggleClass(wrapper, 'dv-inactive-tab', !panelObject.api.isActive);
|
|
5580
|
+
wrapper.addEventListener('mousedown', () => {
|
|
5581
|
+
this.accessor.popupService.close();
|
|
5582
|
+
tab.element.scrollIntoView();
|
|
5583
|
+
tab.panel.api.setActive();
|
|
5584
|
+
});
|
|
5585
|
+
wrapper.appendChild(child);
|
|
5586
|
+
el.appendChild(wrapper);
|
|
5587
|
+
}
|
|
5588
|
+
this.accessor.popupService.openPopover(el, {
|
|
5589
|
+
x: event.clientX,
|
|
5590
|
+
y: event.clientY,
|
|
5591
|
+
});
|
|
5592
|
+
}));
|
|
5593
|
+
}
|
|
5182
5594
|
}
|
|
5183
5595
|
|
|
5184
5596
|
class DockviewUnhandledDragOverEvent extends AcceptableEvent {
|
|
@@ -5208,9 +5620,11 @@ const PROPERTY_KEYS_DOCKVIEW = (() => {
|
|
|
5208
5620
|
rootOverlayModel: undefined,
|
|
5209
5621
|
locked: undefined,
|
|
5210
5622
|
disableDnd: undefined,
|
|
5211
|
-
gap: undefined,
|
|
5212
5623
|
className: undefined,
|
|
5213
5624
|
noPanelsOverlay: undefined,
|
|
5625
|
+
dndEdges: undefined,
|
|
5626
|
+
theme: undefined,
|
|
5627
|
+
disableTabsOverflowList: undefined,
|
|
5214
5628
|
};
|
|
5215
5629
|
return Object.keys(properties);
|
|
5216
5630
|
})();
|
|
@@ -5389,6 +5803,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
5389
5803
|
this._location = { type: 'grid' };
|
|
5390
5804
|
this.mostRecentlyUsed = [];
|
|
5391
5805
|
this._overwriteRenderContainer = null;
|
|
5806
|
+
this._overwriteDropTargetContainer = null;
|
|
5392
5807
|
this._onDidChange = new Emitter();
|
|
5393
5808
|
this.onDidChange = this._onDidChange.event;
|
|
5394
5809
|
this._width = 0;
|
|
@@ -5466,6 +5881,13 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
5466
5881
|
var _a;
|
|
5467
5882
|
return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);
|
|
5468
5883
|
}
|
|
5884
|
+
set dropTargetContainer(value) {
|
|
5885
|
+
this._overwriteDropTargetContainer = value;
|
|
5886
|
+
}
|
|
5887
|
+
get dropTargetContainer() {
|
|
5888
|
+
var _a;
|
|
5889
|
+
return ((_a = this._overwriteDropTargetContainer) !== null && _a !== void 0 ? _a : this.accessor.rootDropTargetContainer);
|
|
5890
|
+
}
|
|
5469
5891
|
initialize() {
|
|
5470
5892
|
if (this.options.panels) {
|
|
5471
5893
|
this.options.panels.forEach((panel) => {
|
|
@@ -5814,6 +6236,25 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
5814
6236
|
}
|
|
5815
6237
|
const data = getPanelData();
|
|
5816
6238
|
if (data && data.viewId === this.accessor.id) {
|
|
6239
|
+
if (type === 'content') {
|
|
6240
|
+
if (data.groupId === this.id) {
|
|
6241
|
+
// don't allow to drop on self for center position
|
|
6242
|
+
if (position === 'center') {
|
|
6243
|
+
return;
|
|
6244
|
+
}
|
|
6245
|
+
if (data.panelId === null) {
|
|
6246
|
+
// don't allow group move to drop anywhere on self
|
|
6247
|
+
return;
|
|
6248
|
+
}
|
|
6249
|
+
}
|
|
6250
|
+
}
|
|
6251
|
+
if (type === 'header') {
|
|
6252
|
+
if (data.groupId === this.id) {
|
|
6253
|
+
if (data.panelId === null) {
|
|
6254
|
+
return;
|
|
6255
|
+
}
|
|
6256
|
+
}
|
|
6257
|
+
}
|
|
5817
6258
|
if (data.panelId === null) {
|
|
5818
6259
|
// this is a group move dnd event
|
|
5819
6260
|
const { groupId } = data;
|
|
@@ -6242,6 +6683,46 @@ class DockviewGroupPanel extends GridviewPanel {
|
|
|
6242
6683
|
}
|
|
6243
6684
|
}
|
|
6244
6685
|
|
|
6686
|
+
const themeDark = {
|
|
6687
|
+
name: 'dark',
|
|
6688
|
+
className: 'dockview-theme-dark',
|
|
6689
|
+
};
|
|
6690
|
+
const themeLight = {
|
|
6691
|
+
name: 'light',
|
|
6692
|
+
className: 'dockview-theme-light',
|
|
6693
|
+
};
|
|
6694
|
+
const themeVisualStudio = {
|
|
6695
|
+
name: 'visualStudio',
|
|
6696
|
+
className: 'dockview-theme-vs',
|
|
6697
|
+
};
|
|
6698
|
+
const themeAbyss = {
|
|
6699
|
+
name: 'abyss',
|
|
6700
|
+
className: 'dockview-theme-abyss',
|
|
6701
|
+
};
|
|
6702
|
+
const themeDracula = {
|
|
6703
|
+
name: 'dracula',
|
|
6704
|
+
className: 'dockview-theme-dracula',
|
|
6705
|
+
};
|
|
6706
|
+
const themeReplit = {
|
|
6707
|
+
name: 'replit',
|
|
6708
|
+
className: 'dockview-theme-replit',
|
|
6709
|
+
gap: 10,
|
|
6710
|
+
};
|
|
6711
|
+
const themeAbyssSpaced = {
|
|
6712
|
+
name: 'abyssSpaced',
|
|
6713
|
+
className: 'dockview-theme-abyss-spaced',
|
|
6714
|
+
gap: 10,
|
|
6715
|
+
dndOverlayMounting: 'absolute',
|
|
6716
|
+
dndPanelOverlay: 'group',
|
|
6717
|
+
};
|
|
6718
|
+
const themeLightSpaced = {
|
|
6719
|
+
name: 'lightSpaced',
|
|
6720
|
+
className: 'dockview-theme-light-spaced',
|
|
6721
|
+
gap: 10,
|
|
6722
|
+
dndOverlayMounting: 'absolute',
|
|
6723
|
+
dndPanelOverlay: 'group',
|
|
6724
|
+
};
|
|
6725
|
+
|
|
6245
6726
|
class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
6246
6727
|
get location() {
|
|
6247
6728
|
return this.group.api.location;
|
|
@@ -6516,38 +6997,6 @@ class DockviewPanel extends CompositeDisposable {
|
|
|
6516
6997
|
}
|
|
6517
6998
|
}
|
|
6518
6999
|
|
|
6519
|
-
const createSvgElementFromPath = (params) => {
|
|
6520
|
-
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
6521
|
-
svg.setAttributeNS(null, 'height', params.height);
|
|
6522
|
-
svg.setAttributeNS(null, 'width', params.width);
|
|
6523
|
-
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
6524
|
-
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
6525
|
-
svg.setAttributeNS(null, 'focusable', 'false');
|
|
6526
|
-
svg.classList.add('dv-svg');
|
|
6527
|
-
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
6528
|
-
path.setAttributeNS(null, 'd', params.path);
|
|
6529
|
-
svg.appendChild(path);
|
|
6530
|
-
return svg;
|
|
6531
|
-
};
|
|
6532
|
-
const createCloseButton = () => createSvgElementFromPath({
|
|
6533
|
-
width: '11',
|
|
6534
|
-
height: '11',
|
|
6535
|
-
viewbox: '0 0 28 28',
|
|
6536
|
-
path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',
|
|
6537
|
-
});
|
|
6538
|
-
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
6539
|
-
width: '11',
|
|
6540
|
-
height: '11',
|
|
6541
|
-
viewbox: '0 0 24 15',
|
|
6542
|
-
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
6543
|
-
});
|
|
6544
|
-
const createChevronRightButton = () => createSvgElementFromPath({
|
|
6545
|
-
width: '11',
|
|
6546
|
-
height: '11',
|
|
6547
|
-
viewbox: '0 0 15 25',
|
|
6548
|
-
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
6549
|
-
});
|
|
6550
|
-
|
|
6551
7000
|
class DefaultTab extends CompositeDisposable {
|
|
6552
7001
|
get element() {
|
|
6553
7002
|
return this._element;
|
|
@@ -6604,12 +7053,21 @@ class DockviewPanelModel {
|
|
|
6604
7053
|
this._content = this.createContentComponent(this.id, contentComponent);
|
|
6605
7054
|
this._tab = this.createTabComponent(this.id, tabComponent);
|
|
6606
7055
|
}
|
|
7056
|
+
createTabRenderer(tabLocation) {
|
|
7057
|
+
var _a;
|
|
7058
|
+
const cmp = this.createTabComponent(this.id, this.tabComponent);
|
|
7059
|
+
if (this._params) {
|
|
7060
|
+
cmp.init(Object.assign(Object.assign({}, this._params), { tabLocation }));
|
|
7061
|
+
}
|
|
7062
|
+
if (this._updateEvent) {
|
|
7063
|
+
(_a = cmp.update) === null || _a === void 0 ? void 0 : _a.call(cmp, this._updateEvent);
|
|
7064
|
+
}
|
|
7065
|
+
return cmp;
|
|
7066
|
+
}
|
|
6607
7067
|
init(params) {
|
|
7068
|
+
this._params = params;
|
|
6608
7069
|
this.content.init(params);
|
|
6609
|
-
this.tab.init(params);
|
|
6610
|
-
}
|
|
6611
|
-
updateParentGroup(_group, _isPanelVisible) {
|
|
6612
|
-
// noop
|
|
7070
|
+
this.tab.init(Object.assign(Object.assign({}, params), { tabLocation: 'header' }));
|
|
6613
7071
|
}
|
|
6614
7072
|
layout(width, height) {
|
|
6615
7073
|
var _a, _b;
|
|
@@ -6617,6 +7075,7 @@ class DockviewPanelModel {
|
|
|
6617
7075
|
}
|
|
6618
7076
|
update(event) {
|
|
6619
7077
|
var _a, _b, _c, _d;
|
|
7078
|
+
this._updateEvent = event;
|
|
6620
7079
|
(_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);
|
|
6621
7080
|
(_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);
|
|
6622
7081
|
}
|
|
@@ -7477,6 +7936,132 @@ class StrictEventsSequencing extends CompositeDisposable {
|
|
|
7477
7936
|
}
|
|
7478
7937
|
}
|
|
7479
7938
|
|
|
7939
|
+
class PopupService extends CompositeDisposable {
|
|
7940
|
+
constructor(root) {
|
|
7941
|
+
super();
|
|
7942
|
+
this.root = root;
|
|
7943
|
+
this._active = null;
|
|
7944
|
+
this._activeDisposable = new MutableDisposable();
|
|
7945
|
+
this._element = document.createElement('div');
|
|
7946
|
+
this._element.className = 'dv-popover-anchor';
|
|
7947
|
+
this._element.style.position = 'relative';
|
|
7948
|
+
this.root.prepend(this._element);
|
|
7949
|
+
this.addDisposables(Disposable.from(() => {
|
|
7950
|
+
this.close();
|
|
7951
|
+
}), this._activeDisposable);
|
|
7952
|
+
}
|
|
7953
|
+
openPopover(element, position) {
|
|
7954
|
+
this.close();
|
|
7955
|
+
const wrapper = document.createElement('div');
|
|
7956
|
+
wrapper.style.position = 'absolute';
|
|
7957
|
+
wrapper.style.zIndex = '99';
|
|
7958
|
+
wrapper.appendChild(element);
|
|
7959
|
+
const anchorBox = this._element.getBoundingClientRect();
|
|
7960
|
+
const offsetX = anchorBox.left;
|
|
7961
|
+
const offsetY = anchorBox.top;
|
|
7962
|
+
wrapper.style.top = `${position.y - offsetY}px`;
|
|
7963
|
+
wrapper.style.left = `${position.x - offsetX}px`;
|
|
7964
|
+
this._element.appendChild(wrapper);
|
|
7965
|
+
this._active = wrapper;
|
|
7966
|
+
this._activeDisposable.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointerdown', (event) => {
|
|
7967
|
+
var _a;
|
|
7968
|
+
const target = event.target;
|
|
7969
|
+
if (!(target instanceof HTMLElement)) {
|
|
7970
|
+
return;
|
|
7971
|
+
}
|
|
7972
|
+
let el = target;
|
|
7973
|
+
while (el && el !== wrapper) {
|
|
7974
|
+
el = (_a = el === null || el === void 0 ? void 0 : el.parentElement) !== null && _a !== void 0 ? _a : null;
|
|
7975
|
+
}
|
|
7976
|
+
if (el) {
|
|
7977
|
+
return; // clicked within popover
|
|
7978
|
+
}
|
|
7979
|
+
this.close();
|
|
7980
|
+
}));
|
|
7981
|
+
}
|
|
7982
|
+
close() {
|
|
7983
|
+
if (this._active) {
|
|
7984
|
+
this._active.remove();
|
|
7985
|
+
this._activeDisposable.dispose();
|
|
7986
|
+
this._active = null;
|
|
7987
|
+
}
|
|
7988
|
+
}
|
|
7989
|
+
}
|
|
7990
|
+
|
|
7991
|
+
class DropTargetAnchorContainer extends CompositeDisposable {
|
|
7992
|
+
get disabled() {
|
|
7993
|
+
return this._disabled;
|
|
7994
|
+
}
|
|
7995
|
+
set disabled(value) {
|
|
7996
|
+
var _a;
|
|
7997
|
+
if (this.disabled === value) {
|
|
7998
|
+
return;
|
|
7999
|
+
}
|
|
8000
|
+
this._disabled = value;
|
|
8001
|
+
if (value) {
|
|
8002
|
+
(_a = this.model) === null || _a === void 0 ? void 0 : _a.clear();
|
|
8003
|
+
}
|
|
8004
|
+
}
|
|
8005
|
+
get model() {
|
|
8006
|
+
if (this.disabled) {
|
|
8007
|
+
return undefined;
|
|
8008
|
+
}
|
|
8009
|
+
return {
|
|
8010
|
+
clear: () => {
|
|
8011
|
+
var _a;
|
|
8012
|
+
if (this._model) {
|
|
8013
|
+
(_a = this._model.root.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this._model.root);
|
|
8014
|
+
}
|
|
8015
|
+
this._model = undefined;
|
|
8016
|
+
},
|
|
8017
|
+
exists: () => {
|
|
8018
|
+
return !!this._model;
|
|
8019
|
+
},
|
|
8020
|
+
getElements: (event, outline) => {
|
|
8021
|
+
const changed = this._outline !== outline;
|
|
8022
|
+
this._outline = outline;
|
|
8023
|
+
if (this._model) {
|
|
8024
|
+
this._model.changed = changed;
|
|
8025
|
+
return this._model;
|
|
8026
|
+
}
|
|
8027
|
+
const container = this.createContainer();
|
|
8028
|
+
const anchor = this.createAnchor();
|
|
8029
|
+
this._model = { root: container, overlay: anchor, changed };
|
|
8030
|
+
container.appendChild(anchor);
|
|
8031
|
+
this.element.appendChild(container);
|
|
8032
|
+
if ((event === null || event === void 0 ? void 0 : event.target) instanceof HTMLElement) {
|
|
8033
|
+
const targetBox = event.target.getBoundingClientRect();
|
|
8034
|
+
const box = this.element.getBoundingClientRect();
|
|
8035
|
+
anchor.style.left = `${targetBox.left - box.left}px`;
|
|
8036
|
+
anchor.style.top = `${targetBox.top - box.top}px`;
|
|
8037
|
+
}
|
|
8038
|
+
return this._model;
|
|
8039
|
+
},
|
|
8040
|
+
};
|
|
8041
|
+
}
|
|
8042
|
+
constructor(element, options) {
|
|
8043
|
+
super();
|
|
8044
|
+
this.element = element;
|
|
8045
|
+
this._disabled = false;
|
|
8046
|
+
this._disabled = options.disabled;
|
|
8047
|
+
this.addDisposables(Disposable.from(() => {
|
|
8048
|
+
var _a;
|
|
8049
|
+
(_a = this.model) === null || _a === void 0 ? void 0 : _a.clear();
|
|
8050
|
+
}));
|
|
8051
|
+
}
|
|
8052
|
+
createContainer() {
|
|
8053
|
+
const el = document.createElement('div');
|
|
8054
|
+
el.className = 'dv-drop-target-container';
|
|
8055
|
+
return el;
|
|
8056
|
+
}
|
|
8057
|
+
createAnchor() {
|
|
8058
|
+
const el = document.createElement('div');
|
|
8059
|
+
el.className = 'dv-drop-target-anchor';
|
|
8060
|
+
el.style.visibility = 'hidden';
|
|
8061
|
+
return el;
|
|
8062
|
+
}
|
|
8063
|
+
}
|
|
8064
|
+
|
|
7480
8065
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
7481
8066
|
activationSize: { type: 'pixels', value: 10 },
|
|
7482
8067
|
size: { type: 'pixels', value: 20 },
|
|
@@ -7522,14 +8107,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
7522
8107
|
get api() {
|
|
7523
8108
|
return this._api;
|
|
7524
8109
|
}
|
|
7525
|
-
get gap() {
|
|
7526
|
-
return this.gridview.margin;
|
|
7527
|
-
}
|
|
7528
8110
|
get floatingGroups() {
|
|
7529
8111
|
return this._floatingGroups;
|
|
7530
8112
|
}
|
|
7531
8113
|
constructor(container, options) {
|
|
7532
|
-
var _a;
|
|
8114
|
+
var _a, _b, _c;
|
|
7533
8115
|
super(container, {
|
|
7534
8116
|
proportionalLayout: true,
|
|
7535
8117
|
orientation: Orientation.HORIZONTAL,
|
|
@@ -7538,12 +8120,12 @@ class DockviewComponent extends BaseGrid {
|
|
|
7538
8120
|
: undefined,
|
|
7539
8121
|
disableAutoResizing: options.disableAutoResizing,
|
|
7540
8122
|
locked: options.locked,
|
|
7541
|
-
margin: options.gap,
|
|
8123
|
+
margin: (_b = (_a = options.theme) === null || _a === void 0 ? void 0 : _a.gap) !== null && _b !== void 0 ? _b : 0,
|
|
7542
8124
|
className: options.className,
|
|
7543
8125
|
});
|
|
7544
8126
|
this.nextGroupId = sequentialNumberGenerator();
|
|
7545
8127
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
7546
|
-
this.
|
|
8128
|
+
this._watermark = null;
|
|
7547
8129
|
this._onWillDragPanel = new Emitter();
|
|
7548
8130
|
this.onWillDragPanel = this._onWillDragPanel.event;
|
|
7549
8131
|
this._onWillDragGroup = new Emitter();
|
|
@@ -7574,16 +8156,22 @@ class DockviewComponent extends BaseGrid {
|
|
|
7574
8156
|
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7575
8157
|
this._onDidAddGroup = new Emitter();
|
|
7576
8158
|
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
8159
|
+
this._onDidOptionsChange = new Emitter();
|
|
8160
|
+
this.onDidOptionsChange = this._onDidOptionsChange.event;
|
|
7577
8161
|
this._onDidActiveGroupChange = new Emitter();
|
|
7578
8162
|
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7579
8163
|
this._moving = false;
|
|
8164
|
+
this.popupService = new PopupService(this.element);
|
|
8165
|
+
this.updateDropTargetModel(options);
|
|
8166
|
+
this._themeClassnames = new Classnames(this.element);
|
|
8167
|
+
this.rootDropTargetContainer = new DropTargetAnchorContainer(this.element, { disabled: true });
|
|
7580
8168
|
this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);
|
|
7581
8169
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
7582
8170
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
7583
8171
|
if (options.debug) {
|
|
7584
8172
|
this.addDisposables(new StrictEventsSequencing(this));
|
|
7585
8173
|
}
|
|
7586
|
-
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._onDidMaximizedGroupChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
8174
|
+
this.addDisposables(this.rootDropTargetContainer, 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._onDidMaximizedGroupChange, this._onDidOptionsChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
7587
8175
|
this.updateWatermark();
|
|
7588
8176
|
}), this.onDidAdd((event) => {
|
|
7589
8177
|
if (!this._moving) {
|
|
@@ -7617,7 +8205,9 @@ class DockviewComponent extends BaseGrid {
|
|
|
7617
8205
|
}
|
|
7618
8206
|
}));
|
|
7619
8207
|
this._options = options;
|
|
8208
|
+
this.updateTheme();
|
|
7620
8209
|
this._rootDropTarget = new Droptarget(this.element, {
|
|
8210
|
+
className: 'dv-drop-target-edge',
|
|
7621
8211
|
canDisplayOverlay: (event, position) => {
|
|
7622
8212
|
const data = getPanelData();
|
|
7623
8213
|
if (data) {
|
|
@@ -7644,7 +8234,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7644
8234
|
return firedEvent.isAccepted;
|
|
7645
8235
|
},
|
|
7646
8236
|
acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
|
|
7647
|
-
overlayModel: (
|
|
8237
|
+
overlayModel: (_c = this.options.rootOverlayModel) !== null && _c !== void 0 ? _c : DEFAULT_ROOT_OVERLAY_MODEL,
|
|
8238
|
+
getOverrideTarget: () => { var _a; return (_a = this.rootDropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },
|
|
7648
8239
|
});
|
|
7649
8240
|
this.addDisposables(this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {
|
|
7650
8241
|
if (this.gridview.length > 0 && event.position === 'center') {
|
|
@@ -7822,6 +8413,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
7822
8413
|
popoutContainer.style.overflow = 'hidden';
|
|
7823
8414
|
popoutContainer.appendChild(gready);
|
|
7824
8415
|
popoutContainer.appendChild(group.element);
|
|
8416
|
+
const anchor = document.createElement('div');
|
|
8417
|
+
const dropTargetContainer = new DropTargetAnchorContainer(anchor, { disabled: this.rootDropTargetContainer.disabled });
|
|
8418
|
+
popoutContainer.appendChild(anchor);
|
|
8419
|
+
group.model.dropTargetContainer = dropTargetContainer;
|
|
7825
8420
|
group.model.location = {
|
|
7826
8421
|
type: 'popout',
|
|
7827
8422
|
getWindow: () => _window.window,
|
|
@@ -7888,6 +8483,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
7888
8483
|
else if (this.getPanel(group.id)) {
|
|
7889
8484
|
group.model.renderContainer =
|
|
7890
8485
|
this.overlayRenderContainer;
|
|
8486
|
+
group.model.dropTargetContainer =
|
|
8487
|
+
this.rootDropTargetContainer;
|
|
7891
8488
|
returnedGroup = group;
|
|
7892
8489
|
const alreadyRemoved = !this._popoutGroups.find((p) => p.popoutGroup === group);
|
|
7893
8490
|
if (alreadyRemoved) {
|
|
@@ -8108,7 +8705,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8108
8705
|
}
|
|
8109
8706
|
}
|
|
8110
8707
|
updateOptions(options) {
|
|
8111
|
-
var _a, _b
|
|
8708
|
+
var _a, _b;
|
|
8112
8709
|
super.updateOptions(options);
|
|
8113
8710
|
if ('floatingGroupBounds' in options) {
|
|
8114
8711
|
for (const group of this._floatingGroups) {
|
|
@@ -8132,13 +8729,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
8132
8729
|
group.overlay.setBounds();
|
|
8133
8730
|
}
|
|
8134
8731
|
}
|
|
8135
|
-
|
|
8136
|
-
this._rootDropTarget.setOverlayModel((_c = options.rootOverlayModel) !== null && _c !== void 0 ? _c : DEFAULT_ROOT_OVERLAY_MODEL);
|
|
8137
|
-
}
|
|
8138
|
-
if ('gap' in options) {
|
|
8139
|
-
this.gridview.margin = (_d = options.gap) !== null && _d !== void 0 ? _d : 0;
|
|
8140
|
-
}
|
|
8732
|
+
this.updateDropTargetModel(options);
|
|
8141
8733
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
8734
|
+
if ('theme' in options) {
|
|
8735
|
+
this.updateTheme();
|
|
8736
|
+
}
|
|
8142
8737
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
8143
8738
|
}
|
|
8144
8739
|
layout(width, height, forceResize) {
|
|
@@ -8556,22 +9151,22 @@ class DockviewComponent extends BaseGrid {
|
|
|
8556
9151
|
updateWatermark() {
|
|
8557
9152
|
var _a, _b;
|
|
8558
9153
|
if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {
|
|
8559
|
-
if (!this.
|
|
8560
|
-
this.
|
|
8561
|
-
this.
|
|
9154
|
+
if (!this._watermark) {
|
|
9155
|
+
this._watermark = this.createWatermarkComponent();
|
|
9156
|
+
this._watermark.init({
|
|
8562
9157
|
containerApi: new DockviewApi(this),
|
|
8563
9158
|
});
|
|
8564
9159
|
const watermarkContainer = document.createElement('div');
|
|
8565
9160
|
watermarkContainer.className = 'dv-watermark-container';
|
|
8566
9161
|
addTestId(watermarkContainer, 'watermark-component');
|
|
8567
|
-
watermarkContainer.appendChild(this.
|
|
9162
|
+
watermarkContainer.appendChild(this._watermark.element);
|
|
8568
9163
|
this.gridview.element.appendChild(watermarkContainer);
|
|
8569
9164
|
}
|
|
8570
9165
|
}
|
|
8571
|
-
else if (this.
|
|
8572
|
-
this.
|
|
8573
|
-
(_b = (_a = this.
|
|
8574
|
-
this.
|
|
9166
|
+
else if (this._watermark) {
|
|
9167
|
+
this._watermark.element.parentElement.remove();
|
|
9168
|
+
(_b = (_a = this._watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
9169
|
+
this._watermark = null;
|
|
8575
9170
|
}
|
|
8576
9171
|
}
|
|
8577
9172
|
addGroup(options) {
|
|
@@ -9057,6 +9652,38 @@ class DockviewComponent extends BaseGrid {
|
|
|
9057
9652
|
? rootOrientation
|
|
9058
9653
|
: orthogonal(rootOrientation);
|
|
9059
9654
|
}
|
|
9655
|
+
updateDropTargetModel(options) {
|
|
9656
|
+
if ('dndEdges' in options) {
|
|
9657
|
+
this._rootDropTarget.disabled =
|
|
9658
|
+
typeof options.dndEdges === 'boolean' &&
|
|
9659
|
+
options.dndEdges === false;
|
|
9660
|
+
if (typeof options.dndEdges === 'object' &&
|
|
9661
|
+
options.dndEdges !== null) {
|
|
9662
|
+
this._rootDropTarget.setOverlayModel(options.dndEdges);
|
|
9663
|
+
}
|
|
9664
|
+
else {
|
|
9665
|
+
this._rootDropTarget.setOverlayModel(DEFAULT_ROOT_OVERLAY_MODEL);
|
|
9666
|
+
}
|
|
9667
|
+
}
|
|
9668
|
+
if ('rootOverlayModel' in options) {
|
|
9669
|
+
this.updateDropTargetModel({ dndEdges: options.dndEdges });
|
|
9670
|
+
}
|
|
9671
|
+
}
|
|
9672
|
+
updateTheme() {
|
|
9673
|
+
var _a, _b;
|
|
9674
|
+
const theme = (_a = this._options.theme) !== null && _a !== void 0 ? _a : themeAbyss;
|
|
9675
|
+
this._themeClassnames.setClassNames(theme.className);
|
|
9676
|
+
this.gridview.margin = (_b = theme.gap) !== null && _b !== void 0 ? _b : 0;
|
|
9677
|
+
switch (theme.dndOverlayMounting) {
|
|
9678
|
+
case 'absolute':
|
|
9679
|
+
this.rootDropTargetContainer.disabled = false;
|
|
9680
|
+
break;
|
|
9681
|
+
case 'relative':
|
|
9682
|
+
default:
|
|
9683
|
+
this.rootDropTargetContainer.disabled = true;
|
|
9684
|
+
break;
|
|
9685
|
+
}
|
|
9686
|
+
}
|
|
9060
9687
|
}
|
|
9061
9688
|
|
|
9062
9689
|
class GridviewComponent extends BaseGrid {
|
|
@@ -9580,6 +10207,7 @@ class SplitviewComponent extends Resizable {
|
|
|
9580
10207
|
for (const view of views) {
|
|
9581
10208
|
view.dispose();
|
|
9582
10209
|
}
|
|
10210
|
+
this.element.remove();
|
|
9583
10211
|
super.dispose();
|
|
9584
10212
|
}
|
|
9585
10213
|
}
|
|
@@ -9920,6 +10548,7 @@ class PaneviewComponent extends Resizable {
|
|
|
9920
10548
|
value.dispose();
|
|
9921
10549
|
}
|
|
9922
10550
|
this._viewDisposables.clear();
|
|
10551
|
+
this.element.remove();
|
|
9923
10552
|
this.paneview.dispose();
|
|
9924
10553
|
}
|
|
9925
10554
|
}
|
|
@@ -10046,5 +10675,5 @@ function createPaneview(element, options) {
|
|
|
10046
10675
|
return new PaneviewApi(component);
|
|
10047
10676
|
}
|
|
10048
10677
|
|
|
10049
|
-
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, LayoutPriority, Orientation, PROPERTY_KEYS_DOCKVIEW, PROPERTY_KEYS_GRIDVIEW, PROPERTY_KEYS_PANEVIEW, PROPERTY_KEYS_SPLITVIEW, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewUnhandledDragOverEvent, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, Tab, WillShowOverlayLocationEvent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, orthogonal, positionToDirection, toTarget };
|
|
10678
|
+
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, LayoutPriority, Orientation, PROPERTY_KEYS_DOCKVIEW, PROPERTY_KEYS_GRIDVIEW, PROPERTY_KEYS_PANEVIEW, PROPERTY_KEYS_SPLITVIEW, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewUnhandledDragOverEvent, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, Tab, WillShowOverlayLocationEvent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, orthogonal, positionToDirection, themeAbyss, themeAbyssSpaced, themeDark, themeDracula, themeLight, themeLightSpaced, themeReplit, themeVisualStudio, toTarget };
|
|
10050
10679
|
//# sourceMappingURL=dockview-core.esm.js.map
|