dockview 1.4.1 → 1.5.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/README.md +4 -195
- package/dist/cjs/api/component.api.d.ts +8 -3
- package/dist/cjs/api/component.api.js +16 -4
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +1 -2
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +1 -0
- package/dist/cjs/dockview/components/tab/defaultTab.js +6 -3
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.js +3 -1
- package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
- package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -5
- package/dist/cjs/dockview/defaultGroupPanelView.js +5 -20
- package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +0 -12
- package/dist/cjs/dockview/deserializer.js +0 -52
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +6 -8
- package/dist/cjs/dockview/dockviewComponent.js +84 -58
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +11 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +4 -2
- package/dist/cjs/gridview/baseComponentGridview.js +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +1 -0
- package/dist/cjs/gridview/gridviewComponent.js +26 -18
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/groupview/groupview.d.ts +20 -18
- package/dist/cjs/groupview/groupview.js +44 -41
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +2 -2
- package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
- package/dist/cjs/groupview/tab.d.ts +1 -0
- package/dist/cjs/groupview/tab.js +3 -1
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +3 -5
- package/dist/cjs/groupview/titlebar/tabsContainer.js +3 -5
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/groupview/types.d.ts +0 -4
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +3 -0
- package/dist/cjs/paneview/defaultPaneviewHeader.js +32 -6
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +3 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +24 -9
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/options.d.ts +2 -0
- package/dist/cjs/paneview/paneviewComponent.d.ts +14 -1
- package/dist/cjs/paneview/paneviewComponent.js +32 -17
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/react/deserializer.js +13 -5
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/defaultTab.d.ts +4 -0
- package/dist/cjs/react/dockview/defaultTab.js +73 -0
- package/dist/cjs/react/dockview/defaultTab.js.map +1 -0
- package/dist/cjs/react/dockview/dockview.d.ts +5 -3
- package/dist/cjs/react/dockview/dockview.js +45 -3
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +43 -0
- package/dist/cjs/react/dockview/groupControlsRenderer.js +87 -0
- package/dist/cjs/react/dockview/groupControlsRenderer.js.map +1 -0
- package/dist/cjs/react/dockview/reactContentPart.d.ts +1 -16
- package/dist/cjs/react/dockview/reactContentPart.js +2 -18
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -0
- package/dist/cjs/react/dockview/reactHeaderPart.js +4 -0
- package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
- package/dist/cjs/react/index.d.ts +2 -2
- package/dist/cjs/react/index.js +1 -2
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/paneview/paneview.d.ts +2 -0
- package/dist/cjs/react/paneview/paneview.js +9 -0
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/react/react.d.ts +1 -0
- package/dist/cjs/react/react.js +12 -2
- package/dist/cjs/react/react.js.map +1 -1
- package/dist/cjs/react/svg.d.ts +3 -0
- package/dist/cjs/react/svg.js +36 -0
- package/dist/cjs/react/svg.js.map +1 -0
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -0
- package/dist/cjs/splitview/splitviewComponent.js +20 -17
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/svg.d.ts +3 -0
- package/dist/cjs/svg.js +44 -0
- package/dist/cjs/svg.js.map +1 -0
- package/dist/dockview.amd.js +454 -204
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +453 -203
- package/dist/dockview.cjs.js +454 -204
- package/dist/dockview.esm.js +449 -198
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +454 -204
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +453 -203
- package/dist/esm/api/component.api.d.ts +8 -3
- package/dist/esm/api/component.api.js +16 -4
- package/dist/esm/dnd/droptarget.d.ts +1 -2
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +1 -0
- package/dist/esm/dockview/components/tab/defaultTab.js +5 -2
- package/dist/esm/dockview/components/watermark/watermark.js +3 -1
- package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -5
- package/dist/esm/dockview/defaultGroupPanelView.js +5 -16
- package/dist/esm/dockview/deserializer.d.ts +0 -12
- package/dist/esm/dockview/deserializer.js +1 -27
- package/dist/esm/dockview/dockviewComponent.d.ts +6 -8
- package/dist/esm/dockview/dockviewComponent.js +56 -41
- package/dist/esm/dockview/options.d.ts +11 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +4 -2
- package/dist/esm/gridview/baseComponentGridview.js +1 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +1 -0
- package/dist/esm/gridview/gridviewComponent.js +15 -7
- package/dist/esm/groupview/groupview.d.ts +20 -18
- package/dist/esm/groupview/groupview.js +42 -40
- package/dist/esm/groupview/groupviewPanel.d.ts +2 -2
- package/dist/esm/groupview/tab.d.ts +1 -0
- package/dist/esm/groupview/tab.js +3 -1
- package/dist/esm/groupview/titlebar/tabsContainer.d.ts +3 -5
- package/dist/esm/groupview/titlebar/tabsContainer.js +3 -5
- package/dist/esm/groupview/types.d.ts +0 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +3 -0
- package/dist/esm/paneview/defaultPaneviewHeader.js +32 -6
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +3 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +24 -9
- package/dist/esm/paneview/options.d.ts +2 -0
- package/dist/esm/paneview/paneviewComponent.d.ts +14 -1
- package/dist/esm/paneview/paneviewComponent.js +17 -6
- package/dist/esm/react/deserializer.js +13 -5
- package/dist/esm/react/dockview/defaultTab.d.ts +4 -0
- package/dist/esm/react/dockview/defaultTab.js +34 -0
- package/dist/esm/react/dockview/dockview.d.ts +5 -3
- package/dist/esm/react/dockview/dockview.js +30 -1
- package/dist/esm/react/dockview/groupControlsRenderer.d.ts +43 -0
- package/dist/esm/react/dockview/groupControlsRenderer.js +68 -0
- package/dist/esm/react/dockview/reactContentPart.d.ts +1 -16
- package/dist/esm/react/dockview/reactContentPart.js +2 -14
- package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -0
- package/dist/esm/react/dockview/reactHeaderPart.js +4 -0
- package/dist/esm/react/index.d.ts +2 -2
- package/dist/esm/react/index.js +1 -2
- package/dist/esm/react/paneview/paneview.d.ts +2 -0
- package/dist/esm/react/paneview/paneview.js +9 -0
- package/dist/esm/react/react.d.ts +1 -0
- package/dist/esm/react/react.js +12 -2
- package/dist/esm/react/svg.d.ts +3 -0
- package/dist/esm/react/svg.js +7 -0
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -0
- package/dist/esm/splitview/splitviewComponent.js +9 -6
- package/dist/esm/svg.d.ts +3 -0
- package/dist/esm/svg.js +31 -0
- package/dist/styles/dockview.css +158 -40
- package/package.json +2 -2
package/dist/dockview.cjs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.5.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -59,7 +59,7 @@ function styleInject(css, ref) {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
var css_248z = ".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-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\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-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-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\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-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-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\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-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-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n}\n.pane-container .view .default-header > span {\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
|
|
62
|
+
var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-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-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-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-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-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-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-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.actions-bar .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.tab .dockview-react-tab {\n display: flex;\n padding: 0px 8px;\n align-items: center;\n height: 100%;\n}\n.tab .dockview-react-tab .dockview-react-tab-title {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dockview-react-tab .dockview-react-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dockview-react-tab .dockview-react-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tab.inactive-tab:not(:hover) .dockview-react-tab-action {\n visibility: hidden;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
|
|
63
63
|
styleInject(css_248z);
|
|
64
64
|
|
|
65
65
|
class TransferObject {
|
|
@@ -2329,6 +2329,9 @@ class SplitviewApi {
|
|
|
2329
2329
|
toJSON() {
|
|
2330
2330
|
return this.component.toJSON();
|
|
2331
2331
|
}
|
|
2332
|
+
clear() {
|
|
2333
|
+
this.component.clear();
|
|
2334
|
+
}
|
|
2332
2335
|
}
|
|
2333
2336
|
class PaneviewApi {
|
|
2334
2337
|
constructor(component) {
|
|
@@ -2396,6 +2399,9 @@ class PaneviewApi {
|
|
|
2396
2399
|
toJSON() {
|
|
2397
2400
|
return this.component.toJSON();
|
|
2398
2401
|
}
|
|
2402
|
+
clear() {
|
|
2403
|
+
this.component.clear();
|
|
2404
|
+
}
|
|
2399
2405
|
}
|
|
2400
2406
|
class GridviewApi {
|
|
2401
2407
|
constructor(component) {
|
|
@@ -2422,13 +2428,13 @@ class GridviewApi {
|
|
|
2422
2428
|
get onDidLayoutChange() {
|
|
2423
2429
|
return this.component.onDidLayoutChange;
|
|
2424
2430
|
}
|
|
2425
|
-
get
|
|
2431
|
+
get onDidAddPanel() {
|
|
2426
2432
|
return this.component.onDidAddGroup;
|
|
2427
2433
|
}
|
|
2428
|
-
get
|
|
2434
|
+
get onDidRemovePanel() {
|
|
2429
2435
|
return this.component.onDidRemoveGroup;
|
|
2430
2436
|
}
|
|
2431
|
-
get
|
|
2437
|
+
get onDidActivePanelChange() {
|
|
2432
2438
|
return this.component.onDidActiveGroupChange;
|
|
2433
2439
|
}
|
|
2434
2440
|
get onDidLayoutFromJSON() {
|
|
@@ -2467,6 +2473,9 @@ class GridviewApi {
|
|
|
2467
2473
|
toJSON() {
|
|
2468
2474
|
return this.component.toJSON();
|
|
2469
2475
|
}
|
|
2476
|
+
clear() {
|
|
2477
|
+
this.component.clear();
|
|
2478
|
+
}
|
|
2470
2479
|
}
|
|
2471
2480
|
class DockviewApi {
|
|
2472
2481
|
constructor(component) {
|
|
@@ -2515,7 +2524,7 @@ class DockviewApi {
|
|
|
2515
2524
|
return this.component.onDidRemovePanel;
|
|
2516
2525
|
}
|
|
2517
2526
|
get onDidLayoutFromJSON() {
|
|
2518
|
-
return this.component.
|
|
2527
|
+
return this.component.onDidLayoutFromJSON;
|
|
2519
2528
|
}
|
|
2520
2529
|
get onDidLayoutChange() {
|
|
2521
2530
|
return this.component.onDidLayoutChange;
|
|
@@ -2577,6 +2586,9 @@ class DockviewApi {
|
|
|
2577
2586
|
toJSON() {
|
|
2578
2587
|
return this.component.toJSON();
|
|
2579
2588
|
}
|
|
2589
|
+
clear() {
|
|
2590
|
+
this.component.clear();
|
|
2591
|
+
}
|
|
2580
2592
|
}
|
|
2581
2593
|
|
|
2582
2594
|
class ContentContainer extends CompositeDisposable {
|
|
@@ -2650,12 +2662,12 @@ class ContentContainer extends CompositeDisposable {
|
|
|
2650
2662
|
}
|
|
2651
2663
|
}
|
|
2652
2664
|
|
|
2653
|
-
|
|
2665
|
+
exports.DockviewDropTargets = void 0;
|
|
2654
2666
|
(function (DockviewDropTargets) {
|
|
2655
2667
|
DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
|
|
2656
2668
|
DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
|
|
2657
2669
|
DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
|
|
2658
|
-
})(DockviewDropTargets || (DockviewDropTargets = {}));
|
|
2670
|
+
})(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
|
|
2659
2671
|
|
|
2660
2672
|
class DragHandler extends CompositeDisposable {
|
|
2661
2673
|
constructor(el) {
|
|
@@ -2701,6 +2713,7 @@ class Tab extends CompositeDisposable {
|
|
|
2701
2713
|
constructor(panelId, accessor, group) {
|
|
2702
2714
|
super();
|
|
2703
2715
|
this.panelId = panelId;
|
|
2716
|
+
this.accessor = accessor;
|
|
2704
2717
|
this.group = group;
|
|
2705
2718
|
this._onChanged = new Emitter();
|
|
2706
2719
|
this.onChanged = this._onChanged.event;
|
|
@@ -2711,6 +2724,7 @@ class Tab extends CompositeDisposable {
|
|
|
2711
2724
|
this._element.className = 'tab';
|
|
2712
2725
|
this._element.tabIndex = 0;
|
|
2713
2726
|
this._element.draggable = true;
|
|
2727
|
+
toggleClass(this.element, 'inactive-tab', true);
|
|
2714
2728
|
this.addDisposables(new (class Handler extends DragHandler {
|
|
2715
2729
|
constructor() {
|
|
2716
2730
|
super(...arguments);
|
|
@@ -2750,10 +2764,10 @@ class Tab extends CompositeDisposable {
|
|
|
2750
2764
|
validOverlays: 'none',
|
|
2751
2765
|
canDisplayOverlay: (event) => {
|
|
2752
2766
|
const data = getPanelData();
|
|
2753
|
-
if (data) {
|
|
2767
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2754
2768
|
return this.panelId !== data.panelId;
|
|
2755
2769
|
}
|
|
2756
|
-
return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
|
|
2770
|
+
return this.group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Tab);
|
|
2757
2771
|
},
|
|
2758
2772
|
});
|
|
2759
2773
|
this.addDisposables(this.droptarget.onDrop((event) => {
|
|
@@ -2787,7 +2801,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2787
2801
|
this.group = group;
|
|
2788
2802
|
this.tabs = [];
|
|
2789
2803
|
this.selectedIndex = -1;
|
|
2790
|
-
this.active = false;
|
|
2791
2804
|
this._hidden = false;
|
|
2792
2805
|
this._onDrop = new Emitter();
|
|
2793
2806
|
this.onDrop = this._onDrop.event;
|
|
@@ -2809,11 +2822,11 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2809
2822
|
canDisplayOverlay: (event) => {
|
|
2810
2823
|
var _a;
|
|
2811
2824
|
const data = getPanelData();
|
|
2812
|
-
if (data) {
|
|
2825
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2813
2826
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
2814
2827
|
return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
|
|
2815
2828
|
}
|
|
2816
|
-
return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
|
|
2829
|
+
return group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
|
|
2817
2830
|
},
|
|
2818
2831
|
});
|
|
2819
2832
|
this.addDisposables(this.voidDropTarget.onDrop((event) => {
|
|
@@ -2891,8 +2904,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2891
2904
|
indexOf(id) {
|
|
2892
2905
|
return this.tabs.findIndex((tab) => tab.value.panelId === id);
|
|
2893
2906
|
}
|
|
2894
|
-
setActive(
|
|
2895
|
-
|
|
2907
|
+
setActive(_isGroupActive) {
|
|
2908
|
+
// noop
|
|
2896
2909
|
}
|
|
2897
2910
|
addTab(tab, index = this.tabs.length) {
|
|
2898
2911
|
if (index < 0 || index > this.tabs.length) {
|
|
@@ -2953,7 +2966,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2953
2966
|
}));
|
|
2954
2967
|
const value = { value: tabToAdd, disposable };
|
|
2955
2968
|
this.addTab(value, index);
|
|
2956
|
-
this.activePanel = panel;
|
|
2957
2969
|
}
|
|
2958
2970
|
closePanel(panel) {
|
|
2959
2971
|
this.delete(panel.id);
|
|
@@ -2967,12 +2979,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2967
2979
|
}
|
|
2968
2980
|
}
|
|
2969
2981
|
|
|
2970
|
-
exports.GroupChangeKind2 = void 0;
|
|
2971
|
-
(function (GroupChangeKind2) {
|
|
2972
|
-
GroupChangeKind2["ADD_PANEL"] = "ADD_PANEL";
|
|
2973
|
-
GroupChangeKind2["REMOVE_PANEL"] = "REMOVE_PANEL";
|
|
2974
|
-
GroupChangeKind2["PANEL_ACTIVE"] = "PANEL_ACTIVE";
|
|
2975
|
-
})(exports.GroupChangeKind2 || (exports.GroupChangeKind2 = {}));
|
|
2976
2982
|
class Groupview extends CompositeDisposable {
|
|
2977
2983
|
constructor(container, accessor, id, options, parent) {
|
|
2978
2984
|
super();
|
|
@@ -2991,12 +2997,15 @@ class Groupview extends CompositeDisposable {
|
|
|
2991
2997
|
this._panels = [];
|
|
2992
2998
|
this._onMove = new Emitter();
|
|
2993
2999
|
this.onMove = this._onMove.event;
|
|
2994
|
-
this._onDidGroupChange = new Emitter();
|
|
2995
|
-
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
2996
3000
|
this._onDidDrop = new Emitter();
|
|
2997
3001
|
this.onDidDrop = this._onDidDrop.event;
|
|
3002
|
+
this._onDidAddPanel = new Emitter();
|
|
3003
|
+
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
3004
|
+
this._onDidRemovePanel = new Emitter();
|
|
3005
|
+
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
3006
|
+
this._onDidActivePanelChange = new Emitter();
|
|
3007
|
+
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
2998
3008
|
this.container.classList.add('groupview');
|
|
2999
|
-
this.addDisposables(this._onMove, this._onDidGroupChange, this._onDidChange, this._onDidDrop);
|
|
3000
3009
|
this.tabsContainer = new TabsContainer(this.accessor, this.parent, {
|
|
3001
3010
|
tabHeight: options.tabHeight,
|
|
3002
3011
|
});
|
|
@@ -3008,17 +3017,17 @@ class Groupview extends CompositeDisposable {
|
|
|
3008
3017
|
return false;
|
|
3009
3018
|
}
|
|
3010
3019
|
const data = getPanelData();
|
|
3011
|
-
if (data) {
|
|
3020
|
+
if (data && data.viewId === this.accessor.id) {
|
|
3012
3021
|
const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
|
|
3013
3022
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3014
3023
|
}
|
|
3015
|
-
return this.canDisplayOverlay(event, DockviewDropTargets.Panel);
|
|
3024
|
+
return this.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
|
|
3016
3025
|
},
|
|
3017
3026
|
});
|
|
3018
3027
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
3019
3028
|
this.header.hidden = !!options.hideHeader;
|
|
3020
3029
|
this.locked = !!options.locked;
|
|
3021
|
-
this.addDisposables(this._onMove, this.
|
|
3030
|
+
this.addDisposables(this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange, this.tabsContainer.onDrop((event) => {
|
|
3022
3031
|
this.handleDropEvent(event.event, exports.Position.Center, event.index);
|
|
3023
3032
|
}), this.contentContainer.onDidFocus(() => {
|
|
3024
3033
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
@@ -3090,6 +3099,15 @@ class Groupview extends CompositeDisposable {
|
|
|
3090
3099
|
// correctly initialized
|
|
3091
3100
|
this.setActive(this.isActive, true, true);
|
|
3092
3101
|
this.updateContainer();
|
|
3102
|
+
if (this.accessor.options.createGroupControlElement) {
|
|
3103
|
+
this._control = this.accessor.options.createGroupControlElement(this.parent);
|
|
3104
|
+
this.addDisposables(this._control);
|
|
3105
|
+
this._control.init({
|
|
3106
|
+
containerApi: new DockviewApi(this.accessor),
|
|
3107
|
+
api: this.parent.api,
|
|
3108
|
+
});
|
|
3109
|
+
this.tabsContainer.setActionElement(this._control.element);
|
|
3110
|
+
}
|
|
3093
3111
|
}
|
|
3094
3112
|
indexOf(panel) {
|
|
3095
3113
|
return this.tabsContainer.indexOf(panel.id);
|
|
@@ -3170,16 +3188,21 @@ class Groupview extends CompositeDisposable {
|
|
|
3170
3188
|
options.index > this.panels.length) {
|
|
3171
3189
|
options.index = this.panels.length;
|
|
3172
3190
|
}
|
|
3173
|
-
const
|
|
3191
|
+
const skipSetPanelActive = !!options.skipSetPanelActive;
|
|
3192
|
+
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
3174
3193
|
// ensure the group is updated before we fire any events
|
|
3175
3194
|
panel.updateParentGroup(this.parent, true);
|
|
3176
|
-
if (
|
|
3177
|
-
|
|
3195
|
+
if (this._activePanel === panel) {
|
|
3196
|
+
if (!skipSetGroupActive) {
|
|
3197
|
+
this.accessor.doSetGroupActive(this.parent);
|
|
3198
|
+
}
|
|
3178
3199
|
return;
|
|
3179
3200
|
}
|
|
3180
|
-
this.doAddPanel(panel, options.index);
|
|
3181
|
-
if (!
|
|
3201
|
+
this.doAddPanel(panel, options.index, skipSetPanelActive);
|
|
3202
|
+
if (!skipSetPanelActive) {
|
|
3182
3203
|
this.doSetActivePanel(panel);
|
|
3204
|
+
}
|
|
3205
|
+
if (!skipSetGroupActive) {
|
|
3183
3206
|
this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
|
|
3184
3207
|
}
|
|
3185
3208
|
this.updateContainer();
|
|
@@ -3215,14 +3238,8 @@ class Groupview extends CompositeDisposable {
|
|
|
3215
3238
|
isPanelActive(panel) {
|
|
3216
3239
|
return this._activePanel === panel;
|
|
3217
3240
|
}
|
|
3218
|
-
updateActions() {
|
|
3219
|
-
|
|
3220
|
-
if (this.isActive && ((_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.actions)) {
|
|
3221
|
-
this.tabsContainer.setActionElement(this._activePanel.view.actions.element);
|
|
3222
|
-
}
|
|
3223
|
-
else {
|
|
3224
|
-
this.tabsContainer.setActionElement(undefined);
|
|
3225
|
-
}
|
|
3241
|
+
updateActions(element) {
|
|
3242
|
+
this.tabsContainer.setActionElement(element);
|
|
3226
3243
|
}
|
|
3227
3244
|
setActive(isGroupActive, skipFocus = false, force = false) {
|
|
3228
3245
|
var _a, _b;
|
|
@@ -3278,16 +3295,15 @@ class Groupview extends CompositeDisposable {
|
|
|
3278
3295
|
if (this.mostRecentlyUsed.includes(panel)) {
|
|
3279
3296
|
this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
|
|
3280
3297
|
}
|
|
3281
|
-
this.
|
|
3282
|
-
kind: exports.GroupChangeKind2.REMOVE_PANEL,
|
|
3283
|
-
panel,
|
|
3284
|
-
});
|
|
3298
|
+
this._onDidRemovePanel.fire({ panel });
|
|
3285
3299
|
}
|
|
3286
|
-
doAddPanel(panel, index = this.panels.length) {
|
|
3300
|
+
doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
|
|
3287
3301
|
const existingPanel = this._panels.indexOf(panel);
|
|
3288
3302
|
const hasExistingPanel = existingPanel > -1;
|
|
3289
3303
|
this.tabsContainer.openPanel(panel, index);
|
|
3290
|
-
|
|
3304
|
+
if (!skipSetActive) {
|
|
3305
|
+
this.contentContainer.openPanel(panel);
|
|
3306
|
+
}
|
|
3291
3307
|
this.tabsContainer.show();
|
|
3292
3308
|
this.contentContainer.show();
|
|
3293
3309
|
if (hasExistingPanel) {
|
|
@@ -3296,10 +3312,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3296
3312
|
}
|
|
3297
3313
|
this.updateMru(panel);
|
|
3298
3314
|
this.panels.splice(index, 0, panel);
|
|
3299
|
-
this.
|
|
3300
|
-
kind: exports.GroupChangeKind2.ADD_PANEL,
|
|
3301
|
-
panel,
|
|
3302
|
-
});
|
|
3315
|
+
this._onDidAddPanel.fire({ panel });
|
|
3303
3316
|
}
|
|
3304
3317
|
doSetActivePanel(panel) {
|
|
3305
3318
|
this._activePanel = panel;
|
|
@@ -3307,10 +3320,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3307
3320
|
this.tabsContainer.setActivePanel(panel);
|
|
3308
3321
|
panel.layout(this._width, this._height);
|
|
3309
3322
|
this.updateMru(panel);
|
|
3310
|
-
this.
|
|
3311
|
-
kind: exports.GroupChangeKind2.PANEL_ACTIVE,
|
|
3312
|
-
panel,
|
|
3313
|
-
});
|
|
3323
|
+
this._onDidActivePanelChange.fire({ panel });
|
|
3314
3324
|
}
|
|
3315
3325
|
}
|
|
3316
3326
|
updateMru(panel) {
|
|
@@ -3320,7 +3330,6 @@ class Groupview extends CompositeDisposable {
|
|
|
3320
3330
|
this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];
|
|
3321
3331
|
}
|
|
3322
3332
|
updateContainer() {
|
|
3323
|
-
this.updateActions();
|
|
3324
3333
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
3325
3334
|
this.panels.forEach((panel) => panel.updateParentGroup(this.parent, this.isActive));
|
|
3326
3335
|
if (this.isEmpty && !this.watermark) {
|
|
@@ -3353,7 +3362,12 @@ class Groupview extends CompositeDisposable {
|
|
|
3353
3362
|
canDisplayOverlay(event, target) {
|
|
3354
3363
|
// custom overlay handler
|
|
3355
3364
|
if (this.accessor.options.showDndOverlay) {
|
|
3356
|
-
return this.accessor.options.showDndOverlay(
|
|
3365
|
+
return this.accessor.options.showDndOverlay({
|
|
3366
|
+
nativeEvent: event,
|
|
3367
|
+
target,
|
|
3368
|
+
group: this.accessor.getPanel(this.id),
|
|
3369
|
+
getData: getPanelData,
|
|
3370
|
+
});
|
|
3357
3371
|
}
|
|
3358
3372
|
return false;
|
|
3359
3373
|
}
|
|
@@ -3401,7 +3415,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3401
3415
|
}
|
|
3402
3416
|
}
|
|
3403
3417
|
|
|
3404
|
-
const nextLayoutId = sequentialNumberGenerator();
|
|
3418
|
+
const nextLayoutId$1 = sequentialNumberGenerator();
|
|
3405
3419
|
function toTarget(direction) {
|
|
3406
3420
|
switch (direction) {
|
|
3407
3421
|
case 'left':
|
|
@@ -3421,7 +3435,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3421
3435
|
constructor(_element, options) {
|
|
3422
3436
|
super();
|
|
3423
3437
|
this._element = _element;
|
|
3424
|
-
this._id = nextLayoutId.next();
|
|
3438
|
+
this._id = nextLayoutId$1.next();
|
|
3425
3439
|
this._groups = new Map();
|
|
3426
3440
|
this._onDidLayoutChange = new Emitter();
|
|
3427
3441
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
@@ -3436,7 +3450,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3436
3450
|
this.element.appendChild(this.gridview.element);
|
|
3437
3451
|
this.layout(0, 0, true); // set some elements height/widths
|
|
3438
3452
|
this.addDisposables(this.gridview.onDidChange(() => {
|
|
3439
|
-
this.
|
|
3453
|
+
this._bufferOnDidLayoutChange.fire();
|
|
3440
3454
|
}));
|
|
3441
3455
|
this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
|
|
3442
3456
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -3881,6 +3895,38 @@ class ActionContainer {
|
|
|
3881
3895
|
}
|
|
3882
3896
|
}
|
|
3883
3897
|
|
|
3898
|
+
const createSvgElementFromPath = (params) => {
|
|
3899
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
3900
|
+
svg.setAttributeNS(null, 'height', params.height);
|
|
3901
|
+
svg.setAttributeNS(null, 'width', params.width);
|
|
3902
|
+
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
3903
|
+
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
3904
|
+
svg.setAttributeNS(null, 'focusable', 'false');
|
|
3905
|
+
svg.classList.add('dockview-svg');
|
|
3906
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
3907
|
+
path.setAttributeNS(null, 'd', params.path);
|
|
3908
|
+
svg.appendChild(path);
|
|
3909
|
+
return svg;
|
|
3910
|
+
};
|
|
3911
|
+
const createCloseButton = () => createSvgElementFromPath({
|
|
3912
|
+
width: '11',
|
|
3913
|
+
height: '11',
|
|
3914
|
+
viewbox: '0 0 28 28',
|
|
3915
|
+
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',
|
|
3916
|
+
});
|
|
3917
|
+
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
3918
|
+
width: '11',
|
|
3919
|
+
height: '11',
|
|
3920
|
+
viewbox: '0 0 24 15',
|
|
3921
|
+
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
3922
|
+
});
|
|
3923
|
+
const createChevronRightButton = () => createSvgElementFromPath({
|
|
3924
|
+
width: '11',
|
|
3925
|
+
height: '11',
|
|
3926
|
+
viewbox: '0 0 15 25',
|
|
3927
|
+
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
3928
|
+
});
|
|
3929
|
+
|
|
3884
3930
|
class Watermark extends CompositeDisposable {
|
|
3885
3931
|
constructor() {
|
|
3886
3932
|
super();
|
|
@@ -3897,8 +3943,9 @@ class Watermark extends CompositeDisposable {
|
|
|
3897
3943
|
const actions = new ActionContainer();
|
|
3898
3944
|
title.appendChild(emptySpace);
|
|
3899
3945
|
title.appendChild(actions.element);
|
|
3900
|
-
const closeAnchor = document.createElement('
|
|
3946
|
+
const closeAnchor = document.createElement('div');
|
|
3901
3947
|
closeAnchor.className = 'close-action';
|
|
3948
|
+
closeAnchor.appendChild(createCloseButton());
|
|
3902
3949
|
actions.add(closeAnchor);
|
|
3903
3950
|
this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {
|
|
3904
3951
|
var _a;
|
|
@@ -3946,34 +3993,6 @@ class Watermark extends CompositeDisposable {
|
|
|
3946
3993
|
}
|
|
3947
3994
|
}
|
|
3948
3995
|
|
|
3949
|
-
class DefaultDeserializer {
|
|
3950
|
-
constructor(layout, panelDeserializer) {
|
|
3951
|
-
this.layout = layout;
|
|
3952
|
-
this.panelDeserializer = panelDeserializer;
|
|
3953
|
-
}
|
|
3954
|
-
fromJSON(node) {
|
|
3955
|
-
const data = node.data;
|
|
3956
|
-
const children = data.views;
|
|
3957
|
-
const active = data.activeView;
|
|
3958
|
-
const group = this.layout.createGroup({
|
|
3959
|
-
id: data.id,
|
|
3960
|
-
locked: !!data.locked,
|
|
3961
|
-
hideHeader: !!data.hideHeader,
|
|
3962
|
-
});
|
|
3963
|
-
for (const child of children) {
|
|
3964
|
-
const panel = this.panelDeserializer.createPanel(child, group);
|
|
3965
|
-
const isActive = typeof active === 'string' && active === panel.id;
|
|
3966
|
-
group.model.openPanel(panel, {
|
|
3967
|
-
skipSetActive: !isActive,
|
|
3968
|
-
});
|
|
3969
|
-
}
|
|
3970
|
-
if (!group.activePanel && group.panels.length > 0) {
|
|
3971
|
-
group.model.openPanel(group.panels[group.panels.length - 1]);
|
|
3972
|
-
}
|
|
3973
|
-
return group;
|
|
3974
|
-
}
|
|
3975
|
-
}
|
|
3976
|
-
|
|
3977
3996
|
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
3978
3997
|
const Component = typeof componentName === 'string'
|
|
3979
3998
|
? components[componentName]
|
|
@@ -3999,6 +4018,7 @@ function createComponent(id, componentName, components = {}, frameworkComponents
|
|
|
3999
4018
|
return new Component(id, componentName);
|
|
4000
4019
|
}
|
|
4001
4020
|
|
|
4021
|
+
const DEFAULT_TAB_IDENTIFIER = '__default__tab__';
|
|
4002
4022
|
class DefaultTab extends CompositeDisposable {
|
|
4003
4023
|
constructor() {
|
|
4004
4024
|
super();
|
|
@@ -4018,8 +4038,9 @@ class DefaultTab extends CompositeDisposable {
|
|
|
4018
4038
|
this._list = document.createElement('ul');
|
|
4019
4039
|
this._list.className = 'tab-list';
|
|
4020
4040
|
//
|
|
4021
|
-
this.action = document.createElement('
|
|
4041
|
+
this.action = document.createElement('div');
|
|
4022
4042
|
this.action.className = 'tab-action';
|
|
4043
|
+
this.action.appendChild(createCloseButton());
|
|
4023
4044
|
//
|
|
4024
4045
|
this._element.appendChild(this._content);
|
|
4025
4046
|
this._element.appendChild(this._actionContainer);
|
|
@@ -4035,7 +4056,7 @@ class DefaultTab extends CompositeDisposable {
|
|
|
4035
4056
|
return this._element;
|
|
4036
4057
|
}
|
|
4037
4058
|
get id() {
|
|
4038
|
-
return
|
|
4059
|
+
return DEFAULT_TAB_IDENTIFIER;
|
|
4039
4060
|
}
|
|
4040
4061
|
update(event) {
|
|
4041
4062
|
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
@@ -4352,16 +4373,6 @@ class DefaultGroupPanelView {
|
|
|
4352
4373
|
var _a;
|
|
4353
4374
|
this._content = renderers.content;
|
|
4354
4375
|
this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
|
|
4355
|
-
this._actions =
|
|
4356
|
-
renderers.actions ||
|
|
4357
|
-
(this.content.actions
|
|
4358
|
-
? {
|
|
4359
|
-
element: this.content.actions,
|
|
4360
|
-
dispose: () => {
|
|
4361
|
-
//
|
|
4362
|
-
},
|
|
4363
|
-
}
|
|
4364
|
-
: undefined);
|
|
4365
4376
|
}
|
|
4366
4377
|
get content() {
|
|
4367
4378
|
return this._content;
|
|
@@ -4369,9 +4380,6 @@ class DefaultGroupPanelView {
|
|
|
4369
4380
|
get tab() {
|
|
4370
4381
|
return this._tab;
|
|
4371
4382
|
}
|
|
4372
|
-
get actions() {
|
|
4373
|
-
return this._actions;
|
|
4374
|
-
}
|
|
4375
4383
|
init(params) {
|
|
4376
4384
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
4377
4385
|
this.tab.init(params);
|
|
@@ -4389,16 +4397,18 @@ class DefaultGroupPanelView {
|
|
|
4389
4397
|
this.tab.update(event);
|
|
4390
4398
|
}
|
|
4391
4399
|
toJSON() {
|
|
4400
|
+
let tab = this.tab instanceof DefaultTab ? undefined : this.tab.toJSON();
|
|
4401
|
+
if (tab && Object.keys(tab).length === 0) {
|
|
4402
|
+
tab = undefined;
|
|
4403
|
+
}
|
|
4392
4404
|
return {
|
|
4393
4405
|
content: this.content.toJSON(),
|
|
4394
|
-
tab
|
|
4406
|
+
tab,
|
|
4395
4407
|
};
|
|
4396
4408
|
}
|
|
4397
4409
|
dispose() {
|
|
4398
|
-
var _a;
|
|
4399
4410
|
this.content.dispose();
|
|
4400
4411
|
this.tab.dispose();
|
|
4401
|
-
(_a = this.actions) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4402
4412
|
}
|
|
4403
4413
|
}
|
|
4404
4414
|
|
|
@@ -4410,9 +4420,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
4410
4420
|
orientation: options.orientation || exports.Orientation.HORIZONTAL,
|
|
4411
4421
|
styles: options.styles,
|
|
4412
4422
|
});
|
|
4413
|
-
// events
|
|
4414
|
-
this._onTabInteractionEvent = new Emitter();
|
|
4415
|
-
this.onTabInteractionEvent = this._onTabInteractionEvent.event;
|
|
4416
4423
|
this._onTabContextMenu = new Emitter();
|
|
4417
4424
|
this.onTabContextMenu = this._onTabContextMenu.event;
|
|
4418
4425
|
this._onDidDrop = new Emitter();
|
|
@@ -4421,11 +4428,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
4421
4428
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4422
4429
|
this._onDidAddPanel = new Emitter();
|
|
4423
4430
|
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
4424
|
-
this.
|
|
4425
|
-
this.
|
|
4431
|
+
this._onDidLayoutFromJSON = new Emitter();
|
|
4432
|
+
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
4426
4433
|
this._onDidActivePanelChange = new Emitter();
|
|
4427
4434
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4428
|
-
this.addDisposables(this.
|
|
4435
|
+
this.addDisposables(this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
4429
4436
|
this._bufferOnDidLayoutChange.fire();
|
|
4430
4437
|
}));
|
|
4431
4438
|
this._options = options;
|
|
@@ -4480,7 +4487,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4480
4487
|
}
|
|
4481
4488
|
updateOptions(options) {
|
|
4482
4489
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4483
|
-
this.
|
|
4490
|
+
this.gridview.orientation !== options.orientation;
|
|
4484
4491
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4485
4492
|
if (hasOrientationChanged) {
|
|
4486
4493
|
this.gridview.orientation = options.orientation;
|
|
@@ -4558,12 +4565,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4558
4565
|
};
|
|
4559
4566
|
}
|
|
4560
4567
|
fromJSON(data) {
|
|
4561
|
-
|
|
4562
|
-
for (const group of groups) {
|
|
4563
|
-
// remove the group will automatically remove the panels
|
|
4564
|
-
this.removeGroup(group, true);
|
|
4565
|
-
}
|
|
4566
|
-
this.gridview.clear();
|
|
4568
|
+
this.clear();
|
|
4567
4569
|
if (!this.deserializer) {
|
|
4568
4570
|
throw new Error('invalid deserializer');
|
|
4569
4571
|
}
|
|
@@ -4574,12 +4576,31 @@ class DockviewComponent extends BaseGrid {
|
|
|
4574
4576
|
if (!this.deserializer) {
|
|
4575
4577
|
throw new Error('no deserializer provided');
|
|
4576
4578
|
}
|
|
4577
|
-
this.gridview.deserialize(grid,
|
|
4578
|
-
|
|
4579
|
-
const
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4579
|
+
this.gridview.deserialize(grid, {
|
|
4580
|
+
fromJSON: (node) => {
|
|
4581
|
+
const { id, locked, hideHeader, views, activeView } = node.data;
|
|
4582
|
+
const group = this.createGroup({
|
|
4583
|
+
id,
|
|
4584
|
+
locked: !!locked,
|
|
4585
|
+
hideHeader: !!hideHeader,
|
|
4586
|
+
});
|
|
4587
|
+
this._onDidAddGroup.fire(group);
|
|
4588
|
+
for (const child of views) {
|
|
4589
|
+
const panel = this.deserializer.fromJSON(panels[child], group);
|
|
4590
|
+
const isActive = typeof activeView === 'string' && activeView === panel.id;
|
|
4591
|
+
group.model.openPanel(panel, {
|
|
4592
|
+
skipSetPanelActive: !isActive,
|
|
4593
|
+
skipSetGroupActive: true
|
|
4594
|
+
});
|
|
4595
|
+
}
|
|
4596
|
+
if (!group.activePanel && group.panels.length > 0) {
|
|
4597
|
+
group.model.openPanel(group.panels[group.panels.length - 1], {
|
|
4598
|
+
skipSetGroupActive: true
|
|
4599
|
+
});
|
|
4600
|
+
}
|
|
4601
|
+
return group;
|
|
4602
|
+
}
|
|
4603
|
+
});
|
|
4583
4604
|
if (typeof activeGroup === 'string') {
|
|
4584
4605
|
const panel = this.getPanel(activeGroup);
|
|
4585
4606
|
if (panel) {
|
|
@@ -4587,7 +4608,23 @@ class DockviewComponent extends BaseGrid {
|
|
|
4587
4608
|
}
|
|
4588
4609
|
}
|
|
4589
4610
|
this.gridview.layout(this.width, this.height);
|
|
4590
|
-
this.
|
|
4611
|
+
this._onDidLayoutFromJSON.fire();
|
|
4612
|
+
}
|
|
4613
|
+
clear() {
|
|
4614
|
+
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
4615
|
+
const hasActiveGroup = !!this.activeGroup;
|
|
4616
|
+
const hasActivePanel = !!this.activePanel;
|
|
4617
|
+
for (const group of groups) {
|
|
4618
|
+
// remove the group will automatically remove the panels
|
|
4619
|
+
this.removeGroup(group, true);
|
|
4620
|
+
}
|
|
4621
|
+
if (hasActiveGroup) {
|
|
4622
|
+
this.doSetGroupActive(undefined);
|
|
4623
|
+
}
|
|
4624
|
+
if (hasActivePanel) {
|
|
4625
|
+
this._onDidActivePanelChange.fire(undefined);
|
|
4626
|
+
}
|
|
4627
|
+
this.gridview.clear();
|
|
4591
4628
|
}
|
|
4592
4629
|
closeAllGroups() {
|
|
4593
4630
|
for (const entry of this._groups.entries()) {
|
|
@@ -4785,23 +4822,13 @@ class DockviewComponent extends BaseGrid {
|
|
|
4785
4822
|
const { groupId, itemId, target, index } = event;
|
|
4786
4823
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
4787
4824
|
}), view.model.onDidDrop((event) => {
|
|
4788
|
-
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
|
|
4789
|
-
}), view.model.
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
break;
|
|
4796
|
-
case exports.GroupChangeKind2.REMOVE_PANEL:
|
|
4797
|
-
if (event.panel) {
|
|
4798
|
-
this._onDidRemovePanel.fire(event.panel);
|
|
4799
|
-
}
|
|
4800
|
-
break;
|
|
4801
|
-
case exports.GroupChangeKind2.PANEL_ACTIVE:
|
|
4802
|
-
this._onDidActivePanelChange.fire(event.panel);
|
|
4803
|
-
break;
|
|
4804
|
-
}
|
|
4825
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
|
|
4826
|
+
}), view.model.onDidAddPanel((event) => {
|
|
4827
|
+
this._onDidAddPanel.fire(event.panel);
|
|
4828
|
+
}), view.model.onDidRemovePanel((event) => {
|
|
4829
|
+
this._onDidRemovePanel.fire(event.panel);
|
|
4830
|
+
}), view.model.onDidActivePanelChange((event) => {
|
|
4831
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
4805
4832
|
}));
|
|
4806
4833
|
this._groups.set(view.id, { value: view, disposable });
|
|
4807
4834
|
}
|
|
@@ -4816,7 +4843,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4816
4843
|
createPanel(options, group) {
|
|
4817
4844
|
const view = new DefaultGroupPanelView({
|
|
4818
4845
|
content: this.createContentComponent(options.id, options.component),
|
|
4819
|
-
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
4846
|
+
tab: this.createTabComponent(options.id, options.tabComponent || this.options.defaultTabComponent),
|
|
4820
4847
|
});
|
|
4821
4848
|
const panel = new DockviewGroupPanel(options.id, this, this._api, group);
|
|
4822
4849
|
panel.init({
|
|
@@ -4849,7 +4876,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4849
4876
|
this._onDidActivePanelChange.dispose();
|
|
4850
4877
|
this._onDidAddPanel.dispose();
|
|
4851
4878
|
this._onDidRemovePanel.dispose();
|
|
4852
|
-
this.
|
|
4879
|
+
this._onDidLayoutFromJSON.dispose();
|
|
4853
4880
|
}
|
|
4854
4881
|
}
|
|
4855
4882
|
|
|
@@ -4887,7 +4914,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
4887
4914
|
}
|
|
4888
4915
|
updateOptions(options) {
|
|
4889
4916
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4890
|
-
this.
|
|
4917
|
+
this.gridview.orientation !== options.orientation;
|
|
4891
4918
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4892
4919
|
if (hasOrientationChanged) {
|
|
4893
4920
|
this.gridview.orientation = options.orientation;
|
|
@@ -4923,13 +4950,8 @@ class GridviewComponent extends BaseGrid {
|
|
|
4923
4950
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4924
4951
|
}
|
|
4925
4952
|
fromJSON(serializedGridview) {
|
|
4953
|
+
this.clear();
|
|
4926
4954
|
const { grid, activePanel } = serializedGridview;
|
|
4927
|
-
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4928
|
-
for (const group of groups) {
|
|
4929
|
-
group.disposable.dispose();
|
|
4930
|
-
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4931
|
-
}
|
|
4932
|
-
this.gridview.clear();
|
|
4933
4955
|
const queue = [];
|
|
4934
4956
|
this.gridview.deserialize(grid, {
|
|
4935
4957
|
fromJSON: (node) => {
|
|
@@ -4951,6 +4973,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
4951
4973
|
accessor: this,
|
|
4952
4974
|
isVisible: node.visible,
|
|
4953
4975
|
}));
|
|
4976
|
+
this._onDidAddGroup.fire(view);
|
|
4954
4977
|
this.registerPanel(view);
|
|
4955
4978
|
return view;
|
|
4956
4979
|
},
|
|
@@ -4965,6 +4988,18 @@ class GridviewComponent extends BaseGrid {
|
|
|
4965
4988
|
}
|
|
4966
4989
|
this._onDidLayoutfromJSON.fire();
|
|
4967
4990
|
}
|
|
4991
|
+
clear() {
|
|
4992
|
+
const hasActiveGroup = this.activeGroup;
|
|
4993
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4994
|
+
for (const group of groups) {
|
|
4995
|
+
group.disposable.dispose();
|
|
4996
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4997
|
+
}
|
|
4998
|
+
if (hasActiveGroup) {
|
|
4999
|
+
this.doSetGroupActive(undefined);
|
|
5000
|
+
}
|
|
5001
|
+
this.gridview.clear();
|
|
5002
|
+
}
|
|
4968
5003
|
movePanel(panel, options) {
|
|
4969
5004
|
var _a;
|
|
4970
5005
|
let relativeLocation;
|
|
@@ -5255,13 +5290,8 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5255
5290
|
};
|
|
5256
5291
|
}
|
|
5257
5292
|
fromJSON(serializedSplitview) {
|
|
5293
|
+
this.clear();
|
|
5258
5294
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5259
|
-
for (const [_, value] of this._panels.entries()) {
|
|
5260
|
-
value.disposable.dispose();
|
|
5261
|
-
value.value.dispose();
|
|
5262
|
-
}
|
|
5263
|
-
this._panels.clear();
|
|
5264
|
-
this.splitview.dispose();
|
|
5265
5295
|
const queue = [];
|
|
5266
5296
|
this.splitview = new Splitview(this.element, {
|
|
5267
5297
|
orientation,
|
|
@@ -5309,6 +5339,14 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5309
5339
|
}
|
|
5310
5340
|
this._onDidLayoutfromJSON.fire();
|
|
5311
5341
|
}
|
|
5342
|
+
clear() {
|
|
5343
|
+
for (const [_, value] of this._panels.entries()) {
|
|
5344
|
+
value.disposable.dispose();
|
|
5345
|
+
value.value.dispose();
|
|
5346
|
+
}
|
|
5347
|
+
this._panels.clear();
|
|
5348
|
+
this.splitview.dispose();
|
|
5349
|
+
}
|
|
5312
5350
|
dispose() {
|
|
5313
5351
|
for (const [_, value] of this._panels.entries()) {
|
|
5314
5352
|
value.disposable.dispose();
|
|
@@ -5558,8 +5596,9 @@ class PaneviewPanel extends BasePanelView {
|
|
|
5558
5596
|
}
|
|
5559
5597
|
|
|
5560
5598
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
5561
|
-
constructor(id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5599
|
+
constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5562
5600
|
super(id, component, headerComponent, orientation, isExpanded, true);
|
|
5601
|
+
this.accessor = accessor;
|
|
5563
5602
|
this._onDidDrop = new Emitter();
|
|
5564
5603
|
this.onDidDrop = this._onDidDrop.event;
|
|
5565
5604
|
if (!disableDnd) {
|
|
@@ -5571,10 +5610,11 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5571
5610
|
return;
|
|
5572
5611
|
}
|
|
5573
5612
|
const id = this.id;
|
|
5613
|
+
const accessorId = this.accessor.id;
|
|
5574
5614
|
this.header.draggable = true;
|
|
5575
5615
|
this.handler = new (class PaneDragHandler extends DragHandler {
|
|
5576
5616
|
getData() {
|
|
5577
|
-
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(
|
|
5617
|
+
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);
|
|
5578
5618
|
return {
|
|
5579
5619
|
dispose: () => {
|
|
5580
5620
|
LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);
|
|
@@ -5584,12 +5624,22 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5584
5624
|
})(this.header);
|
|
5585
5625
|
this.target = new Droptarget(this.element, {
|
|
5586
5626
|
validOverlays: 'vertical',
|
|
5587
|
-
canDisplayOverlay: () => {
|
|
5627
|
+
canDisplayOverlay: (event) => {
|
|
5588
5628
|
const data = getPaneData();
|
|
5589
|
-
if (
|
|
5590
|
-
|
|
5629
|
+
if (data) {
|
|
5630
|
+
if (data.paneId !== this.id &&
|
|
5631
|
+
data.viewId === this.accessor.id) {
|
|
5632
|
+
return true;
|
|
5633
|
+
}
|
|
5591
5634
|
}
|
|
5592
|
-
|
|
5635
|
+
if (this.accessor.options.showDndOverlay) {
|
|
5636
|
+
return this.accessor.options.showDndOverlay({
|
|
5637
|
+
nativeEvent: event,
|
|
5638
|
+
getData: getPaneData,
|
|
5639
|
+
panel: this,
|
|
5640
|
+
});
|
|
5641
|
+
}
|
|
5642
|
+
return false;
|
|
5593
5643
|
},
|
|
5594
5644
|
});
|
|
5595
5645
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
@@ -5598,8 +5648,10 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5598
5648
|
}
|
|
5599
5649
|
onDrop(event) {
|
|
5600
5650
|
const data = getPaneData();
|
|
5601
|
-
if (!data) {
|
|
5602
|
-
|
|
5651
|
+
if (!data || data.viewId !== this.accessor.id) {
|
|
5652
|
+
// if there is no local drag event for this panel
|
|
5653
|
+
// or if the drag event was creating by another Paneview instance
|
|
5654
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5603
5655
|
return;
|
|
5604
5656
|
}
|
|
5605
5657
|
const containerApi = this._params
|
|
@@ -5607,7 +5659,8 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5607
5659
|
const panelId = data.paneId;
|
|
5608
5660
|
const existingPanel = containerApi.getPanel(panelId);
|
|
5609
5661
|
if (!existingPanel) {
|
|
5610
|
-
|
|
5662
|
+
// if the panel doesn't exist
|
|
5663
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5611
5664
|
return;
|
|
5612
5665
|
}
|
|
5613
5666
|
const allPanels = containerApi.panels;
|
|
@@ -5631,15 +5684,18 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5631
5684
|
class DefaultHeader extends CompositeDisposable {
|
|
5632
5685
|
constructor() {
|
|
5633
5686
|
super();
|
|
5687
|
+
this._expandedIcon = createExpandMoreButton();
|
|
5688
|
+
this._collapsedIcon = createChevronRightButton();
|
|
5634
5689
|
this.disposable = new MutableDisposable();
|
|
5635
5690
|
this.apiRef = { api: null };
|
|
5636
5691
|
this._element = document.createElement('div');
|
|
5637
5692
|
this.element.className = 'default-header';
|
|
5638
5693
|
this._content = document.createElement('span');
|
|
5639
|
-
this._expander = document.createElement('
|
|
5640
|
-
this.
|
|
5694
|
+
this._expander = document.createElement('div');
|
|
5695
|
+
this._expander.className = 'dockview-pane-header-icon';
|
|
5641
5696
|
this.element.appendChild(this._expander);
|
|
5642
|
-
this.
|
|
5697
|
+
this.element.appendChild(this._content);
|
|
5698
|
+
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
5643
5699
|
var _a;
|
|
5644
5700
|
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
|
|
5645
5701
|
}));
|
|
@@ -5650,11 +5706,32 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5650
5706
|
init(params) {
|
|
5651
5707
|
this.apiRef.api = params.api;
|
|
5652
5708
|
this._content.textContent = params.title;
|
|
5653
|
-
this.
|
|
5654
|
-
this.disposable.value = params.api.onDidExpansionChange((
|
|
5655
|
-
this.
|
|
5709
|
+
this.updateIcon();
|
|
5710
|
+
this.disposable.value = params.api.onDidExpansionChange(() => {
|
|
5711
|
+
this.updateIcon();
|
|
5656
5712
|
});
|
|
5657
5713
|
}
|
|
5714
|
+
updateIcon() {
|
|
5715
|
+
var _a;
|
|
5716
|
+
const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);
|
|
5717
|
+
toggleClass(this._expander, 'collapsed', !isExpanded);
|
|
5718
|
+
if (isExpanded) {
|
|
5719
|
+
if (this._expander.contains(this._collapsedIcon)) {
|
|
5720
|
+
this._collapsedIcon.remove();
|
|
5721
|
+
}
|
|
5722
|
+
if (!this._expander.contains(this._expandedIcon)) {
|
|
5723
|
+
this._expander.appendChild(this._expandedIcon);
|
|
5724
|
+
}
|
|
5725
|
+
}
|
|
5726
|
+
else {
|
|
5727
|
+
if (this._expander.contains(this._expandedIcon)) {
|
|
5728
|
+
this._expandedIcon.remove();
|
|
5729
|
+
}
|
|
5730
|
+
if (!this._expander.contains(this._collapsedIcon)) {
|
|
5731
|
+
this._expander.appendChild(this._collapsedIcon);
|
|
5732
|
+
}
|
|
5733
|
+
}
|
|
5734
|
+
}
|
|
5658
5735
|
update(_params) {
|
|
5659
5736
|
//
|
|
5660
5737
|
}
|
|
@@ -5664,9 +5741,10 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5664
5741
|
}
|
|
5665
5742
|
}
|
|
5666
5743
|
|
|
5744
|
+
const nextLayoutId = sequentialNumberGenerator();
|
|
5667
5745
|
class PaneFramework extends DraggablePaneviewPanel {
|
|
5668
5746
|
constructor(options) {
|
|
5669
|
-
super(options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5747
|
+
super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5670
5748
|
this.options = options;
|
|
5671
5749
|
}
|
|
5672
5750
|
getBodyComponent() {
|
|
@@ -5680,6 +5758,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5680
5758
|
constructor(element, options) {
|
|
5681
5759
|
super();
|
|
5682
5760
|
this.element = element;
|
|
5761
|
+
this._id = nextLayoutId.next();
|
|
5683
5762
|
this._disposable = new MutableDisposable();
|
|
5684
5763
|
this._viewDisposables = new Map();
|
|
5685
5764
|
this._onDidLayoutfromJSON = new Emitter();
|
|
@@ -5706,6 +5785,9 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5706
5785
|
});
|
|
5707
5786
|
this.addDisposables(this._disposable);
|
|
5708
5787
|
}
|
|
5788
|
+
get id() {
|
|
5789
|
+
return this._id;
|
|
5790
|
+
}
|
|
5709
5791
|
get panels() {
|
|
5710
5792
|
return this.paneview.getPanes();
|
|
5711
5793
|
}
|
|
@@ -5770,6 +5852,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5770
5852
|
orientation: exports.Orientation.VERTICAL,
|
|
5771
5853
|
isExpanded: !!options.isExpanded,
|
|
5772
5854
|
disableDnd: !!this.options.disableDnd,
|
|
5855
|
+
accessor: this,
|
|
5773
5856
|
});
|
|
5774
5857
|
this.doAddPanel(view);
|
|
5775
5858
|
const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
|
|
@@ -5828,13 +5911,9 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5828
5911
|
};
|
|
5829
5912
|
}
|
|
5830
5913
|
fromJSON(serializedPaneview) {
|
|
5914
|
+
this.clear();
|
|
5831
5915
|
const { views, size } = serializedPaneview;
|
|
5832
5916
|
const queue = [];
|
|
5833
|
-
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5834
|
-
value.dispose();
|
|
5835
|
-
}
|
|
5836
|
-
this._viewDisposables.clear();
|
|
5837
|
-
this.paneview.dispose();
|
|
5838
5917
|
this.paneview = new Paneview(this.element, {
|
|
5839
5918
|
orientation: exports.Orientation.VERTICAL,
|
|
5840
5919
|
descriptor: {
|
|
@@ -5868,6 +5947,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5868
5947
|
orientation: exports.Orientation.VERTICAL,
|
|
5869
5948
|
isExpanded: !!view.expanded,
|
|
5870
5949
|
disableDnd: !!this.options.disableDnd,
|
|
5950
|
+
accessor: this,
|
|
5871
5951
|
});
|
|
5872
5952
|
this.doAddPanel(panel);
|
|
5873
5953
|
queue.push(() => {
|
|
@@ -5893,6 +5973,13 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5893
5973
|
queue.forEach((f) => f());
|
|
5894
5974
|
this._onDidLayoutfromJSON.fire();
|
|
5895
5975
|
}
|
|
5976
|
+
clear() {
|
|
5977
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5978
|
+
value.dispose();
|
|
5979
|
+
}
|
|
5980
|
+
this._viewDisposables.clear();
|
|
5981
|
+
this.paneview.dispose();
|
|
5982
|
+
}
|
|
5896
5983
|
doAddPanel(panel) {
|
|
5897
5984
|
const disposable = panel.onDidDrop((event) => {
|
|
5898
5985
|
this._onDidDrop.fire(event);
|
|
@@ -6060,15 +6147,21 @@ class ReactPart {
|
|
|
6060
6147
|
this.component = component;
|
|
6061
6148
|
this.parameters = parameters;
|
|
6062
6149
|
this.context = context;
|
|
6150
|
+
this._initialProps = {};
|
|
6063
6151
|
this.disposed = false;
|
|
6064
6152
|
this.createPortal();
|
|
6065
6153
|
}
|
|
6066
6154
|
update(props) {
|
|
6067
|
-
var _a;
|
|
6068
6155
|
if (this.disposed) {
|
|
6069
6156
|
throw new Error('invalid operation: resource is already disposed');
|
|
6070
6157
|
}
|
|
6071
|
-
(
|
|
6158
|
+
if (!this.componentInstance) {
|
|
6159
|
+
// if the component is yet to be mounted store the props
|
|
6160
|
+
this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
|
|
6161
|
+
}
|
|
6162
|
+
else {
|
|
6163
|
+
this.componentInstance.update(props);
|
|
6164
|
+
}
|
|
6072
6165
|
}
|
|
6073
6166
|
createPortal() {
|
|
6074
6167
|
if (this.disposed) {
|
|
@@ -6088,6 +6181,10 @@ class ReactPart {
|
|
|
6088
6181
|
componentProps: this.parameters,
|
|
6089
6182
|
ref: (element) => {
|
|
6090
6183
|
this.componentInstance = element;
|
|
6184
|
+
if (Object.keys(this._initialProps).length > 0) {
|
|
6185
|
+
this.componentInstance.update(this._initialProps);
|
|
6186
|
+
this._initialProps = {}; // don't keep a reference to the users object once no longer required
|
|
6187
|
+
}
|
|
6091
6188
|
},
|
|
6092
6189
|
});
|
|
6093
6190
|
const node = this.context
|
|
@@ -6144,30 +6241,19 @@ class ReactPanelContentPart {
|
|
|
6144
6241
|
this.onDidBlur = this._onDidBlur.event;
|
|
6145
6242
|
this._element = document.createElement('div');
|
|
6146
6243
|
this._element.className = 'dockview-react-part';
|
|
6147
|
-
this._actionsElement = document.createElement('div');
|
|
6148
|
-
this._actionsElement.className = 'dockview-react-part';
|
|
6149
6244
|
}
|
|
6150
6245
|
get element() {
|
|
6151
6246
|
return this._element;
|
|
6152
6247
|
}
|
|
6153
|
-
get actions() {
|
|
6154
|
-
return this._actionsElement;
|
|
6155
|
-
}
|
|
6156
6248
|
focus() {
|
|
6157
6249
|
// TODO
|
|
6158
6250
|
}
|
|
6159
6251
|
init(parameters) {
|
|
6160
|
-
const context = {
|
|
6161
|
-
api: parameters.api,
|
|
6162
|
-
containerApi: parameters.containerApi,
|
|
6163
|
-
actionsPortalElement: this._actionsElement,
|
|
6164
|
-
tabPortalElement: parameters.tab,
|
|
6165
|
-
};
|
|
6166
6252
|
this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6167
6253
|
params: parameters.params,
|
|
6168
6254
|
api: parameters.api,
|
|
6169
6255
|
containerApi: parameters.containerApi,
|
|
6170
|
-
}
|
|
6256
|
+
});
|
|
6171
6257
|
}
|
|
6172
6258
|
toJSON() {
|
|
6173
6259
|
return {
|
|
@@ -6185,11 +6271,10 @@ class ReactPanelContentPart {
|
|
|
6185
6271
|
// noop
|
|
6186
6272
|
}
|
|
6187
6273
|
dispose() {
|
|
6188
|
-
var _a
|
|
6274
|
+
var _a;
|
|
6189
6275
|
this._onDidFocus.dispose();
|
|
6190
6276
|
this._onDidBlur.dispose();
|
|
6191
6277
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6192
|
-
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6193
6278
|
}
|
|
6194
6279
|
}
|
|
6195
6280
|
|
|
@@ -6219,6 +6304,9 @@ class ReactPanelHeaderPart {
|
|
|
6219
6304
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6220
6305
|
}
|
|
6221
6306
|
toJSON() {
|
|
6307
|
+
if (this.id === DEFAULT_TAB_IDENTIFIER) {
|
|
6308
|
+
return {};
|
|
6309
|
+
}
|
|
6222
6310
|
return {
|
|
6223
6311
|
id: this.id,
|
|
6224
6312
|
};
|
|
@@ -6240,17 +6328,25 @@ class ReactPanelDeserialzier {
|
|
|
6240
6328
|
this.layout = layout;
|
|
6241
6329
|
}
|
|
6242
6330
|
fromJSON(panelData, group) {
|
|
6243
|
-
var _a, _b, _c;
|
|
6331
|
+
var _a, _b, _c, _d;
|
|
6244
6332
|
const panelId = panelData.id;
|
|
6245
6333
|
const params = panelData.params;
|
|
6246
6334
|
const title = panelData.title;
|
|
6247
6335
|
const suppressClosable = panelData.suppressClosable;
|
|
6248
6336
|
const viewData = panelData.view;
|
|
6337
|
+
let tab;
|
|
6338
|
+
if ((_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id) {
|
|
6339
|
+
tab = createComponent(viewData.tab.id, viewData.tab.id, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_b = this.layout.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.tab, () => new DefaultTab());
|
|
6340
|
+
}
|
|
6341
|
+
else if (this.layout.options.defaultTabComponent) {
|
|
6342
|
+
tab = createComponent(this.layout.options.defaultTabComponent, this.layout.options.defaultTabComponent, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_c = this.layout.options.frameworkComponentFactory) === null || _c === void 0 ? void 0 : _c.tab, () => new DefaultTab());
|
|
6343
|
+
}
|
|
6344
|
+
else {
|
|
6345
|
+
tab = new DefaultTab();
|
|
6346
|
+
}
|
|
6249
6347
|
const view = new DefaultGroupPanelView({
|
|
6250
|
-
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (
|
|
6251
|
-
tab
|
|
6252
|
-
? createComponent(viewData.tab.id, viewData.tab.id, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_c = this.layout.options.frameworkComponentFactory) === null || _c === void 0 ? void 0 : _c.tab)
|
|
6253
|
-
: new DefaultTab(),
|
|
6348
|
+
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (_d = this.layout.options.frameworkComponentFactory) === null || _d === void 0 ? void 0 : _d.content),
|
|
6349
|
+
tab,
|
|
6254
6350
|
});
|
|
6255
6351
|
const panel = new DockviewGroupPanel(panelId, this.layout, new DockviewApi(this.layout), group);
|
|
6256
6352
|
panel.init({
|
|
@@ -6318,6 +6414,80 @@ class ReactWatermarkPart {
|
|
|
6318
6414
|
}
|
|
6319
6415
|
}
|
|
6320
6416
|
|
|
6417
|
+
class ReactGroupControlsRendererPart {
|
|
6418
|
+
constructor(component, reactPortalStore, _group) {
|
|
6419
|
+
this.component = component;
|
|
6420
|
+
this.reactPortalStore = reactPortalStore;
|
|
6421
|
+
this._group = _group;
|
|
6422
|
+
this.mutableDisposable = new MutableDisposable();
|
|
6423
|
+
this._element = document.createElement('div');
|
|
6424
|
+
this._element.className = 'dockview-react-part';
|
|
6425
|
+
}
|
|
6426
|
+
get element() {
|
|
6427
|
+
return this._element;
|
|
6428
|
+
}
|
|
6429
|
+
get part() {
|
|
6430
|
+
return this._part;
|
|
6431
|
+
}
|
|
6432
|
+
get group() {
|
|
6433
|
+
return this._group;
|
|
6434
|
+
}
|
|
6435
|
+
focus() {
|
|
6436
|
+
// TODO
|
|
6437
|
+
}
|
|
6438
|
+
init(parameters) {
|
|
6439
|
+
this.mutableDisposable.value = new CompositeDisposable(this._group.model.onDidAddPanel(() => {
|
|
6440
|
+
this.updatePanels();
|
|
6441
|
+
}), this._group.model.onDidRemovePanel(() => {
|
|
6442
|
+
this.updatePanels();
|
|
6443
|
+
}), this._group.model.onDidActivePanelChange(() => {
|
|
6444
|
+
this.updateActivePanel();
|
|
6445
|
+
}), parameters.api.onDidActiveChange(() => {
|
|
6446
|
+
this.updateGroupActive();
|
|
6447
|
+
}));
|
|
6448
|
+
this._part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6449
|
+
api: parameters.api,
|
|
6450
|
+
containerApi: parameters.containerApi,
|
|
6451
|
+
panels: this._group.model.panels,
|
|
6452
|
+
activePanel: this._group.model.activePanel,
|
|
6453
|
+
isGroupActive: this._group.api.isActive,
|
|
6454
|
+
});
|
|
6455
|
+
}
|
|
6456
|
+
update(event) {
|
|
6457
|
+
var _a;
|
|
6458
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6459
|
+
}
|
|
6460
|
+
dispose() {
|
|
6461
|
+
var _a;
|
|
6462
|
+
this.mutableDisposable.dispose();
|
|
6463
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6464
|
+
}
|
|
6465
|
+
updatePanels() {
|
|
6466
|
+
this.update({ params: { panels: this._group.model.panels } });
|
|
6467
|
+
}
|
|
6468
|
+
updateActivePanel() {
|
|
6469
|
+
this.update({
|
|
6470
|
+
params: {
|
|
6471
|
+
activePanel: this._group.model.activePanel,
|
|
6472
|
+
},
|
|
6473
|
+
});
|
|
6474
|
+
}
|
|
6475
|
+
updateGroupActive() {
|
|
6476
|
+
this.update({
|
|
6477
|
+
params: {
|
|
6478
|
+
isGroupActive: this._group.api.isActive,
|
|
6479
|
+
},
|
|
6480
|
+
});
|
|
6481
|
+
}
|
|
6482
|
+
}
|
|
6483
|
+
|
|
6484
|
+
function createGroupControlElement(component, store) {
|
|
6485
|
+
return component
|
|
6486
|
+
? (groupPanel) => {
|
|
6487
|
+
return new ReactGroupControlsRendererPart(component, store, groupPanel);
|
|
6488
|
+
}
|
|
6489
|
+
: undefined;
|
|
6490
|
+
}
|
|
6321
6491
|
const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
6322
6492
|
const domRef = React__namespace.useRef(null);
|
|
6323
6493
|
const dockviewRef = React__namespace.useRef();
|
|
@@ -6367,12 +6537,15 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6367
6537
|
const dockview = new DockviewComponent(element, {
|
|
6368
6538
|
frameworkComponentFactory: factory,
|
|
6369
6539
|
frameworkComponents: props.components,
|
|
6370
|
-
frameworkTabComponents: props.tabComponents,
|
|
6540
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6371
6541
|
tabHeight: props.tabHeight,
|
|
6372
6542
|
watermarkFrameworkComponent: props.watermarkComponent,
|
|
6543
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6373
6544
|
styles: props.hideBorders
|
|
6374
6545
|
? { separatorBorder: 'transparent' }
|
|
6375
6546
|
: undefined,
|
|
6547
|
+
showDndOverlay: props.showDndOverlay,
|
|
6548
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6376
6549
|
});
|
|
6377
6550
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6378
6551
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
@@ -6449,10 +6622,79 @@ const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6449
6622
|
disposable.dispose();
|
|
6450
6623
|
};
|
|
6451
6624
|
}, [props.onTabContextMenu]);
|
|
6625
|
+
React__namespace.useEffect(() => {
|
|
6626
|
+
if (!dockviewRef.current) {
|
|
6627
|
+
return;
|
|
6628
|
+
}
|
|
6629
|
+
dockviewRef.current.updateOptions({
|
|
6630
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6631
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6632
|
+
});
|
|
6633
|
+
}, [props.defaultTabComponent]);
|
|
6634
|
+
React__namespace.useEffect(() => {
|
|
6635
|
+
if (!dockviewRef.current) {
|
|
6636
|
+
return;
|
|
6637
|
+
}
|
|
6638
|
+
dockviewRef.current.updateOptions({
|
|
6639
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6640
|
+
});
|
|
6641
|
+
}, [props.groupControlComponent]);
|
|
6452
6642
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6453
6643
|
});
|
|
6454
6644
|
DockviewReact.displayName = 'DockviewComponent';
|
|
6455
6645
|
|
|
6646
|
+
/******************************************************************************
|
|
6647
|
+
Copyright (c) Microsoft Corporation.
|
|
6648
|
+
|
|
6649
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6650
|
+
purpose with or without fee is hereby granted.
|
|
6651
|
+
|
|
6652
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6653
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6654
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6655
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6656
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6657
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6658
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6659
|
+
***************************************************************************** */
|
|
6660
|
+
|
|
6661
|
+
function __rest(s, e) {
|
|
6662
|
+
var t = {};
|
|
6663
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6664
|
+
t[p] = s[p];
|
|
6665
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6666
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
6667
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
6668
|
+
t[p[i]] = s[p[i]];
|
|
6669
|
+
}
|
|
6670
|
+
return t;
|
|
6671
|
+
}
|
|
6672
|
+
|
|
6673
|
+
const CloseButton = () => (React__namespace.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
|
|
6674
|
+
React__namespace.createElement("path", { d: "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" })));
|
|
6675
|
+
|
|
6676
|
+
const DockviewDefaultTab = (_a) => {
|
|
6677
|
+
var { api, containerApi: _containerApi, params: _params } = _a, rest = __rest(_a, ["api", "containerApi", "params"]);
|
|
6678
|
+
const onClose = React__namespace.useCallback((event) => {
|
|
6679
|
+
event.stopPropagation();
|
|
6680
|
+
api.close();
|
|
6681
|
+
}, [api]);
|
|
6682
|
+
const onClick = React__namespace.useCallback((event) => {
|
|
6683
|
+
api.setActive();
|
|
6684
|
+
if (rest.onClick) {
|
|
6685
|
+
rest.onClick(event);
|
|
6686
|
+
}
|
|
6687
|
+
}, [api, rest.onClick]);
|
|
6688
|
+
const iconClassname = React__namespace.useMemo(() => {
|
|
6689
|
+
const cn = ['dockview-react-tab-action'];
|
|
6690
|
+
return cn.join(',');
|
|
6691
|
+
}, [api.suppressClosable]);
|
|
6692
|
+
return (React__namespace.createElement("div", Object.assign({}, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
6693
|
+
React__namespace.createElement("span", { className: "dockview-react-tab-title" }, api.title),
|
|
6694
|
+
React__namespace.createElement("div", { className: iconClassname, onClick: onClose },
|
|
6695
|
+
React__namespace.createElement(CloseButton, null))));
|
|
6696
|
+
};
|
|
6697
|
+
|
|
6456
6698
|
class ReactPanelView extends SplitviewPanel {
|
|
6457
6699
|
constructor(id, component, reactComponent, reactPortalStore) {
|
|
6458
6700
|
super(id, component);
|
|
@@ -6682,6 +6924,7 @@ const PaneviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6682
6924
|
createComponent,
|
|
6683
6925
|
},
|
|
6684
6926
|
},
|
|
6927
|
+
showDndOverlay: props.showDndOverlay,
|
|
6685
6928
|
});
|
|
6686
6929
|
const api = new PaneviewApi(paneview);
|
|
6687
6930
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6726,6 +6969,14 @@ const PaneviewReact = React__namespace.forwardRef((props, ref) => {
|
|
|
6726
6969
|
disposable.dispose();
|
|
6727
6970
|
};
|
|
6728
6971
|
}, [props.onDidDrop]);
|
|
6972
|
+
React__namespace.useEffect(() => {
|
|
6973
|
+
if (!paneviewRef.current) {
|
|
6974
|
+
return;
|
|
6975
|
+
}
|
|
6976
|
+
paneviewRef.current.updateOptions({
|
|
6977
|
+
showDndOverlay: props.showDndOverlay,
|
|
6978
|
+
});
|
|
6979
|
+
}, [props.showDndOverlay]);
|
|
6729
6980
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6730
6981
|
});
|
|
6731
6982
|
PaneviewReact.displayName = 'PaneviewComponent';
|
|
@@ -6734,6 +6985,7 @@ exports.BaseGrid = BaseGrid;
|
|
|
6734
6985
|
exports.ContentContainer = ContentContainer;
|
|
6735
6986
|
exports.DockviewApi = DockviewApi;
|
|
6736
6987
|
exports.DockviewComponent = DockviewComponent;
|
|
6988
|
+
exports.DockviewDefaultTab = DockviewDefaultTab;
|
|
6737
6989
|
exports.DockviewReact = DockviewReact;
|
|
6738
6990
|
exports.Gridview = Gridview;
|
|
6739
6991
|
exports.GridviewApi = GridviewApi;
|
|
@@ -6750,8 +7002,6 @@ exports.PaneviewApi = PaneviewApi;
|
|
|
6750
7002
|
exports.PaneviewComponent = PaneviewComponent;
|
|
6751
7003
|
exports.PaneviewPanel = PaneviewPanel;
|
|
6752
7004
|
exports.PaneviewReact = PaneviewReact;
|
|
6753
|
-
exports.ReactPanelContentPart = ReactPanelContentPart;
|
|
6754
|
-
exports.ReactPanelHeaderPart = ReactPanelHeaderPart;
|
|
6755
7005
|
exports.ReactPart = ReactPart;
|
|
6756
7006
|
exports.ReactPartContext = ReactPartContext;
|
|
6757
7007
|
exports.Splitview = Splitview;
|