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.esm.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
|
*/
|
|
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
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}";
|
|
37
|
+
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}";
|
|
38
38
|
styleInject(css_248z);
|
|
39
39
|
|
|
40
40
|
class TransferObject {
|
|
@@ -2304,6 +2304,9 @@ class SplitviewApi {
|
|
|
2304
2304
|
toJSON() {
|
|
2305
2305
|
return this.component.toJSON();
|
|
2306
2306
|
}
|
|
2307
|
+
clear() {
|
|
2308
|
+
this.component.clear();
|
|
2309
|
+
}
|
|
2307
2310
|
}
|
|
2308
2311
|
class PaneviewApi {
|
|
2309
2312
|
constructor(component) {
|
|
@@ -2371,6 +2374,9 @@ class PaneviewApi {
|
|
|
2371
2374
|
toJSON() {
|
|
2372
2375
|
return this.component.toJSON();
|
|
2373
2376
|
}
|
|
2377
|
+
clear() {
|
|
2378
|
+
this.component.clear();
|
|
2379
|
+
}
|
|
2374
2380
|
}
|
|
2375
2381
|
class GridviewApi {
|
|
2376
2382
|
constructor(component) {
|
|
@@ -2397,13 +2403,13 @@ class GridviewApi {
|
|
|
2397
2403
|
get onDidLayoutChange() {
|
|
2398
2404
|
return this.component.onDidLayoutChange;
|
|
2399
2405
|
}
|
|
2400
|
-
get
|
|
2406
|
+
get onDidAddPanel() {
|
|
2401
2407
|
return this.component.onDidAddGroup;
|
|
2402
2408
|
}
|
|
2403
|
-
get
|
|
2409
|
+
get onDidRemovePanel() {
|
|
2404
2410
|
return this.component.onDidRemoveGroup;
|
|
2405
2411
|
}
|
|
2406
|
-
get
|
|
2412
|
+
get onDidActivePanelChange() {
|
|
2407
2413
|
return this.component.onDidActiveGroupChange;
|
|
2408
2414
|
}
|
|
2409
2415
|
get onDidLayoutFromJSON() {
|
|
@@ -2442,6 +2448,9 @@ class GridviewApi {
|
|
|
2442
2448
|
toJSON() {
|
|
2443
2449
|
return this.component.toJSON();
|
|
2444
2450
|
}
|
|
2451
|
+
clear() {
|
|
2452
|
+
this.component.clear();
|
|
2453
|
+
}
|
|
2445
2454
|
}
|
|
2446
2455
|
class DockviewApi {
|
|
2447
2456
|
constructor(component) {
|
|
@@ -2490,7 +2499,7 @@ class DockviewApi {
|
|
|
2490
2499
|
return this.component.onDidRemovePanel;
|
|
2491
2500
|
}
|
|
2492
2501
|
get onDidLayoutFromJSON() {
|
|
2493
|
-
return this.component.
|
|
2502
|
+
return this.component.onDidLayoutFromJSON;
|
|
2494
2503
|
}
|
|
2495
2504
|
get onDidLayoutChange() {
|
|
2496
2505
|
return this.component.onDidLayoutChange;
|
|
@@ -2552,6 +2561,9 @@ class DockviewApi {
|
|
|
2552
2561
|
toJSON() {
|
|
2553
2562
|
return this.component.toJSON();
|
|
2554
2563
|
}
|
|
2564
|
+
clear() {
|
|
2565
|
+
this.component.clear();
|
|
2566
|
+
}
|
|
2555
2567
|
}
|
|
2556
2568
|
|
|
2557
2569
|
class ContentContainer extends CompositeDisposable {
|
|
@@ -2676,6 +2688,7 @@ class Tab extends CompositeDisposable {
|
|
|
2676
2688
|
constructor(panelId, accessor, group) {
|
|
2677
2689
|
super();
|
|
2678
2690
|
this.panelId = panelId;
|
|
2691
|
+
this.accessor = accessor;
|
|
2679
2692
|
this.group = group;
|
|
2680
2693
|
this._onChanged = new Emitter();
|
|
2681
2694
|
this.onChanged = this._onChanged.event;
|
|
@@ -2686,6 +2699,7 @@ class Tab extends CompositeDisposable {
|
|
|
2686
2699
|
this._element.className = 'tab';
|
|
2687
2700
|
this._element.tabIndex = 0;
|
|
2688
2701
|
this._element.draggable = true;
|
|
2702
|
+
toggleClass(this.element, 'inactive-tab', true);
|
|
2689
2703
|
this.addDisposables(new (class Handler extends DragHandler {
|
|
2690
2704
|
constructor() {
|
|
2691
2705
|
super(...arguments);
|
|
@@ -2725,7 +2739,7 @@ class Tab extends CompositeDisposable {
|
|
|
2725
2739
|
validOverlays: 'none',
|
|
2726
2740
|
canDisplayOverlay: (event) => {
|
|
2727
2741
|
const data = getPanelData();
|
|
2728
|
-
if (data) {
|
|
2742
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2729
2743
|
return this.panelId !== data.panelId;
|
|
2730
2744
|
}
|
|
2731
2745
|
return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
|
|
@@ -2762,7 +2776,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2762
2776
|
this.group = group;
|
|
2763
2777
|
this.tabs = [];
|
|
2764
2778
|
this.selectedIndex = -1;
|
|
2765
|
-
this.active = false;
|
|
2766
2779
|
this._hidden = false;
|
|
2767
2780
|
this._onDrop = new Emitter();
|
|
2768
2781
|
this.onDrop = this._onDrop.event;
|
|
@@ -2784,7 +2797,7 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2784
2797
|
canDisplayOverlay: (event) => {
|
|
2785
2798
|
var _a;
|
|
2786
2799
|
const data = getPanelData();
|
|
2787
|
-
if (data) {
|
|
2800
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2788
2801
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
2789
2802
|
return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
|
|
2790
2803
|
}
|
|
@@ -2866,8 +2879,8 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2866
2879
|
indexOf(id) {
|
|
2867
2880
|
return this.tabs.findIndex((tab) => tab.value.panelId === id);
|
|
2868
2881
|
}
|
|
2869
|
-
setActive(
|
|
2870
|
-
|
|
2882
|
+
setActive(_isGroupActive) {
|
|
2883
|
+
// noop
|
|
2871
2884
|
}
|
|
2872
2885
|
addTab(tab, index = this.tabs.length) {
|
|
2873
2886
|
if (index < 0 || index > this.tabs.length) {
|
|
@@ -2928,7 +2941,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2928
2941
|
}));
|
|
2929
2942
|
const value = { value: tabToAdd, disposable };
|
|
2930
2943
|
this.addTab(value, index);
|
|
2931
|
-
this.activePanel = panel;
|
|
2932
2944
|
}
|
|
2933
2945
|
closePanel(panel) {
|
|
2934
2946
|
this.delete(panel.id);
|
|
@@ -2942,12 +2954,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2942
2954
|
}
|
|
2943
2955
|
}
|
|
2944
2956
|
|
|
2945
|
-
var GroupChangeKind2;
|
|
2946
|
-
(function (GroupChangeKind2) {
|
|
2947
|
-
GroupChangeKind2["ADD_PANEL"] = "ADD_PANEL";
|
|
2948
|
-
GroupChangeKind2["REMOVE_PANEL"] = "REMOVE_PANEL";
|
|
2949
|
-
GroupChangeKind2["PANEL_ACTIVE"] = "PANEL_ACTIVE";
|
|
2950
|
-
})(GroupChangeKind2 || (GroupChangeKind2 = {}));
|
|
2951
2957
|
class Groupview extends CompositeDisposable {
|
|
2952
2958
|
constructor(container, accessor, id, options, parent) {
|
|
2953
2959
|
super();
|
|
@@ -2966,12 +2972,15 @@ class Groupview extends CompositeDisposable {
|
|
|
2966
2972
|
this._panels = [];
|
|
2967
2973
|
this._onMove = new Emitter();
|
|
2968
2974
|
this.onMove = this._onMove.event;
|
|
2969
|
-
this._onDidGroupChange = new Emitter();
|
|
2970
|
-
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
2971
2975
|
this._onDidDrop = new Emitter();
|
|
2972
2976
|
this.onDidDrop = this._onDidDrop.event;
|
|
2977
|
+
this._onDidAddPanel = new Emitter();
|
|
2978
|
+
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
2979
|
+
this._onDidRemovePanel = new Emitter();
|
|
2980
|
+
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
2981
|
+
this._onDidActivePanelChange = new Emitter();
|
|
2982
|
+
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
2973
2983
|
this.container.classList.add('groupview');
|
|
2974
|
-
this.addDisposables(this._onMove, this._onDidGroupChange, this._onDidChange, this._onDidDrop);
|
|
2975
2984
|
this.tabsContainer = new TabsContainer(this.accessor, this.parent, {
|
|
2976
2985
|
tabHeight: options.tabHeight,
|
|
2977
2986
|
});
|
|
@@ -2983,7 +2992,7 @@ class Groupview extends CompositeDisposable {
|
|
|
2983
2992
|
return false;
|
|
2984
2993
|
}
|
|
2985
2994
|
const data = getPanelData();
|
|
2986
|
-
if (data) {
|
|
2995
|
+
if (data && data.viewId === this.accessor.id) {
|
|
2987
2996
|
const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
|
|
2988
2997
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
2989
2998
|
}
|
|
@@ -2993,7 +3002,7 @@ class Groupview extends CompositeDisposable {
|
|
|
2993
3002
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
2994
3003
|
this.header.hidden = !!options.hideHeader;
|
|
2995
3004
|
this.locked = !!options.locked;
|
|
2996
|
-
this.addDisposables(this._onMove, this.
|
|
3005
|
+
this.addDisposables(this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange, this.tabsContainer.onDrop((event) => {
|
|
2997
3006
|
this.handleDropEvent(event.event, Position.Center, event.index);
|
|
2998
3007
|
}), this.contentContainer.onDidFocus(() => {
|
|
2999
3008
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
@@ -3065,6 +3074,15 @@ class Groupview extends CompositeDisposable {
|
|
|
3065
3074
|
// correctly initialized
|
|
3066
3075
|
this.setActive(this.isActive, true, true);
|
|
3067
3076
|
this.updateContainer();
|
|
3077
|
+
if (this.accessor.options.createGroupControlElement) {
|
|
3078
|
+
this._control = this.accessor.options.createGroupControlElement(this.parent);
|
|
3079
|
+
this.addDisposables(this._control);
|
|
3080
|
+
this._control.init({
|
|
3081
|
+
containerApi: new DockviewApi(this.accessor),
|
|
3082
|
+
api: this.parent.api,
|
|
3083
|
+
});
|
|
3084
|
+
this.tabsContainer.setActionElement(this._control.element);
|
|
3085
|
+
}
|
|
3068
3086
|
}
|
|
3069
3087
|
indexOf(panel) {
|
|
3070
3088
|
return this.tabsContainer.indexOf(panel.id);
|
|
@@ -3145,16 +3163,21 @@ class Groupview extends CompositeDisposable {
|
|
|
3145
3163
|
options.index > this.panels.length) {
|
|
3146
3164
|
options.index = this.panels.length;
|
|
3147
3165
|
}
|
|
3148
|
-
const
|
|
3166
|
+
const skipSetPanelActive = !!options.skipSetPanelActive;
|
|
3167
|
+
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
3149
3168
|
// ensure the group is updated before we fire any events
|
|
3150
3169
|
panel.updateParentGroup(this.parent, true);
|
|
3151
|
-
if (
|
|
3152
|
-
|
|
3170
|
+
if (this._activePanel === panel) {
|
|
3171
|
+
if (!skipSetGroupActive) {
|
|
3172
|
+
this.accessor.doSetGroupActive(this.parent);
|
|
3173
|
+
}
|
|
3153
3174
|
return;
|
|
3154
3175
|
}
|
|
3155
|
-
this.doAddPanel(panel, options.index);
|
|
3156
|
-
if (!
|
|
3176
|
+
this.doAddPanel(panel, options.index, skipSetPanelActive);
|
|
3177
|
+
if (!skipSetPanelActive) {
|
|
3157
3178
|
this.doSetActivePanel(panel);
|
|
3179
|
+
}
|
|
3180
|
+
if (!skipSetGroupActive) {
|
|
3158
3181
|
this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
|
|
3159
3182
|
}
|
|
3160
3183
|
this.updateContainer();
|
|
@@ -3190,14 +3213,8 @@ class Groupview extends CompositeDisposable {
|
|
|
3190
3213
|
isPanelActive(panel) {
|
|
3191
3214
|
return this._activePanel === panel;
|
|
3192
3215
|
}
|
|
3193
|
-
updateActions() {
|
|
3194
|
-
|
|
3195
|
-
if (this.isActive && ((_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.actions)) {
|
|
3196
|
-
this.tabsContainer.setActionElement(this._activePanel.view.actions.element);
|
|
3197
|
-
}
|
|
3198
|
-
else {
|
|
3199
|
-
this.tabsContainer.setActionElement(undefined);
|
|
3200
|
-
}
|
|
3216
|
+
updateActions(element) {
|
|
3217
|
+
this.tabsContainer.setActionElement(element);
|
|
3201
3218
|
}
|
|
3202
3219
|
setActive(isGroupActive, skipFocus = false, force = false) {
|
|
3203
3220
|
var _a, _b;
|
|
@@ -3253,16 +3270,15 @@ class Groupview extends CompositeDisposable {
|
|
|
3253
3270
|
if (this.mostRecentlyUsed.includes(panel)) {
|
|
3254
3271
|
this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
|
|
3255
3272
|
}
|
|
3256
|
-
this.
|
|
3257
|
-
kind: GroupChangeKind2.REMOVE_PANEL,
|
|
3258
|
-
panel,
|
|
3259
|
-
});
|
|
3273
|
+
this._onDidRemovePanel.fire({ panel });
|
|
3260
3274
|
}
|
|
3261
|
-
doAddPanel(panel, index = this.panels.length) {
|
|
3275
|
+
doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
|
|
3262
3276
|
const existingPanel = this._panels.indexOf(panel);
|
|
3263
3277
|
const hasExistingPanel = existingPanel > -1;
|
|
3264
3278
|
this.tabsContainer.openPanel(panel, index);
|
|
3265
|
-
|
|
3279
|
+
if (!skipSetActive) {
|
|
3280
|
+
this.contentContainer.openPanel(panel);
|
|
3281
|
+
}
|
|
3266
3282
|
this.tabsContainer.show();
|
|
3267
3283
|
this.contentContainer.show();
|
|
3268
3284
|
if (hasExistingPanel) {
|
|
@@ -3271,10 +3287,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3271
3287
|
}
|
|
3272
3288
|
this.updateMru(panel);
|
|
3273
3289
|
this.panels.splice(index, 0, panel);
|
|
3274
|
-
this.
|
|
3275
|
-
kind: GroupChangeKind2.ADD_PANEL,
|
|
3276
|
-
panel,
|
|
3277
|
-
});
|
|
3290
|
+
this._onDidAddPanel.fire({ panel });
|
|
3278
3291
|
}
|
|
3279
3292
|
doSetActivePanel(panel) {
|
|
3280
3293
|
this._activePanel = panel;
|
|
@@ -3282,10 +3295,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3282
3295
|
this.tabsContainer.setActivePanel(panel);
|
|
3283
3296
|
panel.layout(this._width, this._height);
|
|
3284
3297
|
this.updateMru(panel);
|
|
3285
|
-
this.
|
|
3286
|
-
kind: GroupChangeKind2.PANEL_ACTIVE,
|
|
3287
|
-
panel,
|
|
3288
|
-
});
|
|
3298
|
+
this._onDidActivePanelChange.fire({ panel });
|
|
3289
3299
|
}
|
|
3290
3300
|
}
|
|
3291
3301
|
updateMru(panel) {
|
|
@@ -3295,7 +3305,6 @@ class Groupview extends CompositeDisposable {
|
|
|
3295
3305
|
this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];
|
|
3296
3306
|
}
|
|
3297
3307
|
updateContainer() {
|
|
3298
|
-
this.updateActions();
|
|
3299
3308
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
3300
3309
|
this.panels.forEach((panel) => panel.updateParentGroup(this.parent, this.isActive));
|
|
3301
3310
|
if (this.isEmpty && !this.watermark) {
|
|
@@ -3328,7 +3337,12 @@ class Groupview extends CompositeDisposable {
|
|
|
3328
3337
|
canDisplayOverlay(event, target) {
|
|
3329
3338
|
// custom overlay handler
|
|
3330
3339
|
if (this.accessor.options.showDndOverlay) {
|
|
3331
|
-
return this.accessor.options.showDndOverlay(
|
|
3340
|
+
return this.accessor.options.showDndOverlay({
|
|
3341
|
+
nativeEvent: event,
|
|
3342
|
+
target,
|
|
3343
|
+
group: this.accessor.getPanel(this.id),
|
|
3344
|
+
getData: getPanelData,
|
|
3345
|
+
});
|
|
3332
3346
|
}
|
|
3333
3347
|
return false;
|
|
3334
3348
|
}
|
|
@@ -3376,7 +3390,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3376
3390
|
}
|
|
3377
3391
|
}
|
|
3378
3392
|
|
|
3379
|
-
const nextLayoutId = sequentialNumberGenerator();
|
|
3393
|
+
const nextLayoutId$1 = sequentialNumberGenerator();
|
|
3380
3394
|
function toTarget(direction) {
|
|
3381
3395
|
switch (direction) {
|
|
3382
3396
|
case 'left':
|
|
@@ -3396,7 +3410,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3396
3410
|
constructor(_element, options) {
|
|
3397
3411
|
super();
|
|
3398
3412
|
this._element = _element;
|
|
3399
|
-
this._id = nextLayoutId.next();
|
|
3413
|
+
this._id = nextLayoutId$1.next();
|
|
3400
3414
|
this._groups = new Map();
|
|
3401
3415
|
this._onDidLayoutChange = new Emitter();
|
|
3402
3416
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
@@ -3411,7 +3425,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3411
3425
|
this.element.appendChild(this.gridview.element);
|
|
3412
3426
|
this.layout(0, 0, true); // set some elements height/widths
|
|
3413
3427
|
this.addDisposables(this.gridview.onDidChange(() => {
|
|
3414
|
-
this.
|
|
3428
|
+
this._bufferOnDidLayoutChange.fire();
|
|
3415
3429
|
}));
|
|
3416
3430
|
this.addDisposables(Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
|
|
3417
3431
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -3856,6 +3870,38 @@ class ActionContainer {
|
|
|
3856
3870
|
}
|
|
3857
3871
|
}
|
|
3858
3872
|
|
|
3873
|
+
const createSvgElementFromPath = (params) => {
|
|
3874
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
3875
|
+
svg.setAttributeNS(null, 'height', params.height);
|
|
3876
|
+
svg.setAttributeNS(null, 'width', params.width);
|
|
3877
|
+
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
3878
|
+
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
3879
|
+
svg.setAttributeNS(null, 'focusable', 'false');
|
|
3880
|
+
svg.classList.add('dockview-svg');
|
|
3881
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
3882
|
+
path.setAttributeNS(null, 'd', params.path);
|
|
3883
|
+
svg.appendChild(path);
|
|
3884
|
+
return svg;
|
|
3885
|
+
};
|
|
3886
|
+
const createCloseButton = () => createSvgElementFromPath({
|
|
3887
|
+
width: '11',
|
|
3888
|
+
height: '11',
|
|
3889
|
+
viewbox: '0 0 28 28',
|
|
3890
|
+
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',
|
|
3891
|
+
});
|
|
3892
|
+
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
3893
|
+
width: '11',
|
|
3894
|
+
height: '11',
|
|
3895
|
+
viewbox: '0 0 24 15',
|
|
3896
|
+
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
3897
|
+
});
|
|
3898
|
+
const createChevronRightButton = () => createSvgElementFromPath({
|
|
3899
|
+
width: '11',
|
|
3900
|
+
height: '11',
|
|
3901
|
+
viewbox: '0 0 15 25',
|
|
3902
|
+
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
3903
|
+
});
|
|
3904
|
+
|
|
3859
3905
|
class Watermark extends CompositeDisposable {
|
|
3860
3906
|
constructor() {
|
|
3861
3907
|
super();
|
|
@@ -3872,8 +3918,9 @@ class Watermark extends CompositeDisposable {
|
|
|
3872
3918
|
const actions = new ActionContainer();
|
|
3873
3919
|
title.appendChild(emptySpace);
|
|
3874
3920
|
title.appendChild(actions.element);
|
|
3875
|
-
const closeAnchor = document.createElement('
|
|
3921
|
+
const closeAnchor = document.createElement('div');
|
|
3876
3922
|
closeAnchor.className = 'close-action';
|
|
3923
|
+
closeAnchor.appendChild(createCloseButton());
|
|
3877
3924
|
actions.add(closeAnchor);
|
|
3878
3925
|
this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {
|
|
3879
3926
|
var _a;
|
|
@@ -3921,34 +3968,6 @@ class Watermark extends CompositeDisposable {
|
|
|
3921
3968
|
}
|
|
3922
3969
|
}
|
|
3923
3970
|
|
|
3924
|
-
class DefaultDeserializer {
|
|
3925
|
-
constructor(layout, panelDeserializer) {
|
|
3926
|
-
this.layout = layout;
|
|
3927
|
-
this.panelDeserializer = panelDeserializer;
|
|
3928
|
-
}
|
|
3929
|
-
fromJSON(node) {
|
|
3930
|
-
const data = node.data;
|
|
3931
|
-
const children = data.views;
|
|
3932
|
-
const active = data.activeView;
|
|
3933
|
-
const group = this.layout.createGroup({
|
|
3934
|
-
id: data.id,
|
|
3935
|
-
locked: !!data.locked,
|
|
3936
|
-
hideHeader: !!data.hideHeader,
|
|
3937
|
-
});
|
|
3938
|
-
for (const child of children) {
|
|
3939
|
-
const panel = this.panelDeserializer.createPanel(child, group);
|
|
3940
|
-
const isActive = typeof active === 'string' && active === panel.id;
|
|
3941
|
-
group.model.openPanel(panel, {
|
|
3942
|
-
skipSetActive: !isActive,
|
|
3943
|
-
});
|
|
3944
|
-
}
|
|
3945
|
-
if (!group.activePanel && group.panels.length > 0) {
|
|
3946
|
-
group.model.openPanel(group.panels[group.panels.length - 1]);
|
|
3947
|
-
}
|
|
3948
|
-
return group;
|
|
3949
|
-
}
|
|
3950
|
-
}
|
|
3951
|
-
|
|
3952
3971
|
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
3953
3972
|
const Component = typeof componentName === 'string'
|
|
3954
3973
|
? components[componentName]
|
|
@@ -3974,6 +3993,7 @@ function createComponent(id, componentName, components = {}, frameworkComponents
|
|
|
3974
3993
|
return new Component(id, componentName);
|
|
3975
3994
|
}
|
|
3976
3995
|
|
|
3996
|
+
const DEFAULT_TAB_IDENTIFIER = '__default__tab__';
|
|
3977
3997
|
class DefaultTab extends CompositeDisposable {
|
|
3978
3998
|
constructor() {
|
|
3979
3999
|
super();
|
|
@@ -3993,8 +4013,9 @@ class DefaultTab extends CompositeDisposable {
|
|
|
3993
4013
|
this._list = document.createElement('ul');
|
|
3994
4014
|
this._list.className = 'tab-list';
|
|
3995
4015
|
//
|
|
3996
|
-
this.action = document.createElement('
|
|
4016
|
+
this.action = document.createElement('div');
|
|
3997
4017
|
this.action.className = 'tab-action';
|
|
4018
|
+
this.action.appendChild(createCloseButton());
|
|
3998
4019
|
//
|
|
3999
4020
|
this._element.appendChild(this._content);
|
|
4000
4021
|
this._element.appendChild(this._actionContainer);
|
|
@@ -4010,7 +4031,7 @@ class DefaultTab extends CompositeDisposable {
|
|
|
4010
4031
|
return this._element;
|
|
4011
4032
|
}
|
|
4012
4033
|
get id() {
|
|
4013
|
-
return
|
|
4034
|
+
return DEFAULT_TAB_IDENTIFIER;
|
|
4014
4035
|
}
|
|
4015
4036
|
update(event) {
|
|
4016
4037
|
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
@@ -4327,16 +4348,6 @@ class DefaultGroupPanelView {
|
|
|
4327
4348
|
var _a;
|
|
4328
4349
|
this._content = renderers.content;
|
|
4329
4350
|
this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
|
|
4330
|
-
this._actions =
|
|
4331
|
-
renderers.actions ||
|
|
4332
|
-
(this.content.actions
|
|
4333
|
-
? {
|
|
4334
|
-
element: this.content.actions,
|
|
4335
|
-
dispose: () => {
|
|
4336
|
-
//
|
|
4337
|
-
},
|
|
4338
|
-
}
|
|
4339
|
-
: undefined);
|
|
4340
4351
|
}
|
|
4341
4352
|
get content() {
|
|
4342
4353
|
return this._content;
|
|
@@ -4344,9 +4355,6 @@ class DefaultGroupPanelView {
|
|
|
4344
4355
|
get tab() {
|
|
4345
4356
|
return this._tab;
|
|
4346
4357
|
}
|
|
4347
|
-
get actions() {
|
|
4348
|
-
return this._actions;
|
|
4349
|
-
}
|
|
4350
4358
|
init(params) {
|
|
4351
4359
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
4352
4360
|
this.tab.init(params);
|
|
@@ -4364,16 +4372,18 @@ class DefaultGroupPanelView {
|
|
|
4364
4372
|
this.tab.update(event);
|
|
4365
4373
|
}
|
|
4366
4374
|
toJSON() {
|
|
4375
|
+
let tab = this.tab instanceof DefaultTab ? undefined : this.tab.toJSON();
|
|
4376
|
+
if (tab && Object.keys(tab).length === 0) {
|
|
4377
|
+
tab = undefined;
|
|
4378
|
+
}
|
|
4367
4379
|
return {
|
|
4368
4380
|
content: this.content.toJSON(),
|
|
4369
|
-
tab
|
|
4381
|
+
tab,
|
|
4370
4382
|
};
|
|
4371
4383
|
}
|
|
4372
4384
|
dispose() {
|
|
4373
|
-
var _a;
|
|
4374
4385
|
this.content.dispose();
|
|
4375
4386
|
this.tab.dispose();
|
|
4376
|
-
(_a = this.actions) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4377
4387
|
}
|
|
4378
4388
|
}
|
|
4379
4389
|
|
|
@@ -4385,9 +4395,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
4385
4395
|
orientation: options.orientation || Orientation.HORIZONTAL,
|
|
4386
4396
|
styles: options.styles,
|
|
4387
4397
|
});
|
|
4388
|
-
// events
|
|
4389
|
-
this._onTabInteractionEvent = new Emitter();
|
|
4390
|
-
this.onTabInteractionEvent = this._onTabInteractionEvent.event;
|
|
4391
4398
|
this._onTabContextMenu = new Emitter();
|
|
4392
4399
|
this.onTabContextMenu = this._onTabContextMenu.event;
|
|
4393
4400
|
this._onDidDrop = new Emitter();
|
|
@@ -4396,11 +4403,11 @@ class DockviewComponent extends BaseGrid {
|
|
|
4396
4403
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4397
4404
|
this._onDidAddPanel = new Emitter();
|
|
4398
4405
|
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
4399
|
-
this.
|
|
4400
|
-
this.
|
|
4406
|
+
this._onDidLayoutFromJSON = new Emitter();
|
|
4407
|
+
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
4401
4408
|
this._onDidActivePanelChange = new Emitter();
|
|
4402
4409
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4403
|
-
this.addDisposables(this.
|
|
4410
|
+
this.addDisposables(this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
4404
4411
|
this._bufferOnDidLayoutChange.fire();
|
|
4405
4412
|
}));
|
|
4406
4413
|
this._options = options;
|
|
@@ -4455,7 +4462,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4455
4462
|
}
|
|
4456
4463
|
updateOptions(options) {
|
|
4457
4464
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4458
|
-
this.
|
|
4465
|
+
this.gridview.orientation !== options.orientation;
|
|
4459
4466
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4460
4467
|
if (hasOrientationChanged) {
|
|
4461
4468
|
this.gridview.orientation = options.orientation;
|
|
@@ -4533,12 +4540,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4533
4540
|
};
|
|
4534
4541
|
}
|
|
4535
4542
|
fromJSON(data) {
|
|
4536
|
-
|
|
4537
|
-
for (const group of groups) {
|
|
4538
|
-
// remove the group will automatically remove the panels
|
|
4539
|
-
this.removeGroup(group, true);
|
|
4540
|
-
}
|
|
4541
|
-
this.gridview.clear();
|
|
4543
|
+
this.clear();
|
|
4542
4544
|
if (!this.deserializer) {
|
|
4543
4545
|
throw new Error('invalid deserializer');
|
|
4544
4546
|
}
|
|
@@ -4549,12 +4551,31 @@ class DockviewComponent extends BaseGrid {
|
|
|
4549
4551
|
if (!this.deserializer) {
|
|
4550
4552
|
throw new Error('no deserializer provided');
|
|
4551
4553
|
}
|
|
4552
|
-
this.gridview.deserialize(grid,
|
|
4553
|
-
|
|
4554
|
-
const
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4554
|
+
this.gridview.deserialize(grid, {
|
|
4555
|
+
fromJSON: (node) => {
|
|
4556
|
+
const { id, locked, hideHeader, views, activeView } = node.data;
|
|
4557
|
+
const group = this.createGroup({
|
|
4558
|
+
id,
|
|
4559
|
+
locked: !!locked,
|
|
4560
|
+
hideHeader: !!hideHeader,
|
|
4561
|
+
});
|
|
4562
|
+
this._onDidAddGroup.fire(group);
|
|
4563
|
+
for (const child of views) {
|
|
4564
|
+
const panel = this.deserializer.fromJSON(panels[child], group);
|
|
4565
|
+
const isActive = typeof activeView === 'string' && activeView === panel.id;
|
|
4566
|
+
group.model.openPanel(panel, {
|
|
4567
|
+
skipSetPanelActive: !isActive,
|
|
4568
|
+
skipSetGroupActive: true
|
|
4569
|
+
});
|
|
4570
|
+
}
|
|
4571
|
+
if (!group.activePanel && group.panels.length > 0) {
|
|
4572
|
+
group.model.openPanel(group.panels[group.panels.length - 1], {
|
|
4573
|
+
skipSetGroupActive: true
|
|
4574
|
+
});
|
|
4575
|
+
}
|
|
4576
|
+
return group;
|
|
4577
|
+
}
|
|
4578
|
+
});
|
|
4558
4579
|
if (typeof activeGroup === 'string') {
|
|
4559
4580
|
const panel = this.getPanel(activeGroup);
|
|
4560
4581
|
if (panel) {
|
|
@@ -4562,7 +4583,23 @@ class DockviewComponent extends BaseGrid {
|
|
|
4562
4583
|
}
|
|
4563
4584
|
}
|
|
4564
4585
|
this.gridview.layout(this.width, this.height);
|
|
4565
|
-
this.
|
|
4586
|
+
this._onDidLayoutFromJSON.fire();
|
|
4587
|
+
}
|
|
4588
|
+
clear() {
|
|
4589
|
+
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
4590
|
+
const hasActiveGroup = !!this.activeGroup;
|
|
4591
|
+
const hasActivePanel = !!this.activePanel;
|
|
4592
|
+
for (const group of groups) {
|
|
4593
|
+
// remove the group will automatically remove the panels
|
|
4594
|
+
this.removeGroup(group, true);
|
|
4595
|
+
}
|
|
4596
|
+
if (hasActiveGroup) {
|
|
4597
|
+
this.doSetGroupActive(undefined);
|
|
4598
|
+
}
|
|
4599
|
+
if (hasActivePanel) {
|
|
4600
|
+
this._onDidActivePanelChange.fire(undefined);
|
|
4601
|
+
}
|
|
4602
|
+
this.gridview.clear();
|
|
4566
4603
|
}
|
|
4567
4604
|
closeAllGroups() {
|
|
4568
4605
|
for (const entry of this._groups.entries()) {
|
|
@@ -4760,23 +4797,13 @@ class DockviewComponent extends BaseGrid {
|
|
|
4760
4797
|
const { groupId, itemId, target, index } = event;
|
|
4761
4798
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
4762
4799
|
}), view.model.onDidDrop((event) => {
|
|
4763
|
-
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
|
|
4764
|
-
}), view.model.
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
break;
|
|
4771
|
-
case GroupChangeKind2.REMOVE_PANEL:
|
|
4772
|
-
if (event.panel) {
|
|
4773
|
-
this._onDidRemovePanel.fire(event.panel);
|
|
4774
|
-
}
|
|
4775
|
-
break;
|
|
4776
|
-
case GroupChangeKind2.PANEL_ACTIVE:
|
|
4777
|
-
this._onDidActivePanelChange.fire(event.panel);
|
|
4778
|
-
break;
|
|
4779
|
-
}
|
|
4800
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
|
|
4801
|
+
}), view.model.onDidAddPanel((event) => {
|
|
4802
|
+
this._onDidAddPanel.fire(event.panel);
|
|
4803
|
+
}), view.model.onDidRemovePanel((event) => {
|
|
4804
|
+
this._onDidRemovePanel.fire(event.panel);
|
|
4805
|
+
}), view.model.onDidActivePanelChange((event) => {
|
|
4806
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
4780
4807
|
}));
|
|
4781
4808
|
this._groups.set(view.id, { value: view, disposable });
|
|
4782
4809
|
}
|
|
@@ -4791,7 +4818,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4791
4818
|
createPanel(options, group) {
|
|
4792
4819
|
const view = new DefaultGroupPanelView({
|
|
4793
4820
|
content: this.createContentComponent(options.id, options.component),
|
|
4794
|
-
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
4821
|
+
tab: this.createTabComponent(options.id, options.tabComponent || this.options.defaultTabComponent),
|
|
4795
4822
|
});
|
|
4796
4823
|
const panel = new DockviewGroupPanel(options.id, this, this._api, group);
|
|
4797
4824
|
panel.init({
|
|
@@ -4824,7 +4851,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4824
4851
|
this._onDidActivePanelChange.dispose();
|
|
4825
4852
|
this._onDidAddPanel.dispose();
|
|
4826
4853
|
this._onDidRemovePanel.dispose();
|
|
4827
|
-
this.
|
|
4854
|
+
this._onDidLayoutFromJSON.dispose();
|
|
4828
4855
|
}
|
|
4829
4856
|
}
|
|
4830
4857
|
|
|
@@ -4862,7 +4889,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
4862
4889
|
}
|
|
4863
4890
|
updateOptions(options) {
|
|
4864
4891
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4865
|
-
this.
|
|
4892
|
+
this.gridview.orientation !== options.orientation;
|
|
4866
4893
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4867
4894
|
if (hasOrientationChanged) {
|
|
4868
4895
|
this.gridview.orientation = options.orientation;
|
|
@@ -4898,13 +4925,8 @@ class GridviewComponent extends BaseGrid {
|
|
|
4898
4925
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4899
4926
|
}
|
|
4900
4927
|
fromJSON(serializedGridview) {
|
|
4928
|
+
this.clear();
|
|
4901
4929
|
const { grid, activePanel } = serializedGridview;
|
|
4902
|
-
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4903
|
-
for (const group of groups) {
|
|
4904
|
-
group.disposable.dispose();
|
|
4905
|
-
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4906
|
-
}
|
|
4907
|
-
this.gridview.clear();
|
|
4908
4930
|
const queue = [];
|
|
4909
4931
|
this.gridview.deserialize(grid, {
|
|
4910
4932
|
fromJSON: (node) => {
|
|
@@ -4926,6 +4948,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
4926
4948
|
accessor: this,
|
|
4927
4949
|
isVisible: node.visible,
|
|
4928
4950
|
}));
|
|
4951
|
+
this._onDidAddGroup.fire(view);
|
|
4929
4952
|
this.registerPanel(view);
|
|
4930
4953
|
return view;
|
|
4931
4954
|
},
|
|
@@ -4940,6 +4963,18 @@ class GridviewComponent extends BaseGrid {
|
|
|
4940
4963
|
}
|
|
4941
4964
|
this._onDidLayoutfromJSON.fire();
|
|
4942
4965
|
}
|
|
4966
|
+
clear() {
|
|
4967
|
+
const hasActiveGroup = this.activeGroup;
|
|
4968
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4969
|
+
for (const group of groups) {
|
|
4970
|
+
group.disposable.dispose();
|
|
4971
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4972
|
+
}
|
|
4973
|
+
if (hasActiveGroup) {
|
|
4974
|
+
this.doSetGroupActive(undefined);
|
|
4975
|
+
}
|
|
4976
|
+
this.gridview.clear();
|
|
4977
|
+
}
|
|
4943
4978
|
movePanel(panel, options) {
|
|
4944
4979
|
var _a;
|
|
4945
4980
|
let relativeLocation;
|
|
@@ -5230,13 +5265,8 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5230
5265
|
};
|
|
5231
5266
|
}
|
|
5232
5267
|
fromJSON(serializedSplitview) {
|
|
5268
|
+
this.clear();
|
|
5233
5269
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5234
|
-
for (const [_, value] of this._panels.entries()) {
|
|
5235
|
-
value.disposable.dispose();
|
|
5236
|
-
value.value.dispose();
|
|
5237
|
-
}
|
|
5238
|
-
this._panels.clear();
|
|
5239
|
-
this.splitview.dispose();
|
|
5240
5270
|
const queue = [];
|
|
5241
5271
|
this.splitview = new Splitview(this.element, {
|
|
5242
5272
|
orientation,
|
|
@@ -5284,6 +5314,14 @@ class SplitviewComponent extends CompositeDisposable {
|
|
|
5284
5314
|
}
|
|
5285
5315
|
this._onDidLayoutfromJSON.fire();
|
|
5286
5316
|
}
|
|
5317
|
+
clear() {
|
|
5318
|
+
for (const [_, value] of this._panels.entries()) {
|
|
5319
|
+
value.disposable.dispose();
|
|
5320
|
+
value.value.dispose();
|
|
5321
|
+
}
|
|
5322
|
+
this._panels.clear();
|
|
5323
|
+
this.splitview.dispose();
|
|
5324
|
+
}
|
|
5287
5325
|
dispose() {
|
|
5288
5326
|
for (const [_, value] of this._panels.entries()) {
|
|
5289
5327
|
value.disposable.dispose();
|
|
@@ -5533,8 +5571,9 @@ class PaneviewPanel extends BasePanelView {
|
|
|
5533
5571
|
}
|
|
5534
5572
|
|
|
5535
5573
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
5536
|
-
constructor(id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5574
|
+
constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5537
5575
|
super(id, component, headerComponent, orientation, isExpanded, true);
|
|
5576
|
+
this.accessor = accessor;
|
|
5538
5577
|
this._onDidDrop = new Emitter();
|
|
5539
5578
|
this.onDidDrop = this._onDidDrop.event;
|
|
5540
5579
|
if (!disableDnd) {
|
|
@@ -5546,10 +5585,11 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5546
5585
|
return;
|
|
5547
5586
|
}
|
|
5548
5587
|
const id = this.id;
|
|
5588
|
+
const accessorId = this.accessor.id;
|
|
5549
5589
|
this.header.draggable = true;
|
|
5550
5590
|
this.handler = new (class PaneDragHandler extends DragHandler {
|
|
5551
5591
|
getData() {
|
|
5552
|
-
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(
|
|
5592
|
+
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);
|
|
5553
5593
|
return {
|
|
5554
5594
|
dispose: () => {
|
|
5555
5595
|
LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);
|
|
@@ -5559,12 +5599,22 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5559
5599
|
})(this.header);
|
|
5560
5600
|
this.target = new Droptarget(this.element, {
|
|
5561
5601
|
validOverlays: 'vertical',
|
|
5562
|
-
canDisplayOverlay: () => {
|
|
5602
|
+
canDisplayOverlay: (event) => {
|
|
5563
5603
|
const data = getPaneData();
|
|
5564
|
-
if (
|
|
5565
|
-
|
|
5604
|
+
if (data) {
|
|
5605
|
+
if (data.paneId !== this.id &&
|
|
5606
|
+
data.viewId === this.accessor.id) {
|
|
5607
|
+
return true;
|
|
5608
|
+
}
|
|
5566
5609
|
}
|
|
5567
|
-
|
|
5610
|
+
if (this.accessor.options.showDndOverlay) {
|
|
5611
|
+
return this.accessor.options.showDndOverlay({
|
|
5612
|
+
nativeEvent: event,
|
|
5613
|
+
getData: getPaneData,
|
|
5614
|
+
panel: this,
|
|
5615
|
+
});
|
|
5616
|
+
}
|
|
5617
|
+
return false;
|
|
5568
5618
|
},
|
|
5569
5619
|
});
|
|
5570
5620
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
@@ -5573,8 +5623,10 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5573
5623
|
}
|
|
5574
5624
|
onDrop(event) {
|
|
5575
5625
|
const data = getPaneData();
|
|
5576
|
-
if (!data) {
|
|
5577
|
-
|
|
5626
|
+
if (!data || data.viewId !== this.accessor.id) {
|
|
5627
|
+
// if there is no local drag event for this panel
|
|
5628
|
+
// or if the drag event was creating by another Paneview instance
|
|
5629
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5578
5630
|
return;
|
|
5579
5631
|
}
|
|
5580
5632
|
const containerApi = this._params
|
|
@@ -5582,7 +5634,8 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5582
5634
|
const panelId = data.paneId;
|
|
5583
5635
|
const existingPanel = containerApi.getPanel(panelId);
|
|
5584
5636
|
if (!existingPanel) {
|
|
5585
|
-
|
|
5637
|
+
// if the panel doesn't exist
|
|
5638
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5586
5639
|
return;
|
|
5587
5640
|
}
|
|
5588
5641
|
const allPanels = containerApi.panels;
|
|
@@ -5606,15 +5659,18 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5606
5659
|
class DefaultHeader extends CompositeDisposable {
|
|
5607
5660
|
constructor() {
|
|
5608
5661
|
super();
|
|
5662
|
+
this._expandedIcon = createExpandMoreButton();
|
|
5663
|
+
this._collapsedIcon = createChevronRightButton();
|
|
5609
5664
|
this.disposable = new MutableDisposable();
|
|
5610
5665
|
this.apiRef = { api: null };
|
|
5611
5666
|
this._element = document.createElement('div');
|
|
5612
5667
|
this.element.className = 'default-header';
|
|
5613
5668
|
this._content = document.createElement('span');
|
|
5614
|
-
this._expander = document.createElement('
|
|
5615
|
-
this.
|
|
5669
|
+
this._expander = document.createElement('div');
|
|
5670
|
+
this._expander.className = 'dockview-pane-header-icon';
|
|
5616
5671
|
this.element.appendChild(this._expander);
|
|
5617
|
-
this.
|
|
5672
|
+
this.element.appendChild(this._content);
|
|
5673
|
+
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
5618
5674
|
var _a;
|
|
5619
5675
|
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
|
|
5620
5676
|
}));
|
|
@@ -5625,11 +5681,32 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5625
5681
|
init(params) {
|
|
5626
5682
|
this.apiRef.api = params.api;
|
|
5627
5683
|
this._content.textContent = params.title;
|
|
5628
|
-
this.
|
|
5629
|
-
this.disposable.value = params.api.onDidExpansionChange((
|
|
5630
|
-
this.
|
|
5684
|
+
this.updateIcon();
|
|
5685
|
+
this.disposable.value = params.api.onDidExpansionChange(() => {
|
|
5686
|
+
this.updateIcon();
|
|
5631
5687
|
});
|
|
5632
5688
|
}
|
|
5689
|
+
updateIcon() {
|
|
5690
|
+
var _a;
|
|
5691
|
+
const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);
|
|
5692
|
+
toggleClass(this._expander, 'collapsed', !isExpanded);
|
|
5693
|
+
if (isExpanded) {
|
|
5694
|
+
if (this._expander.contains(this._collapsedIcon)) {
|
|
5695
|
+
this._collapsedIcon.remove();
|
|
5696
|
+
}
|
|
5697
|
+
if (!this._expander.contains(this._expandedIcon)) {
|
|
5698
|
+
this._expander.appendChild(this._expandedIcon);
|
|
5699
|
+
}
|
|
5700
|
+
}
|
|
5701
|
+
else {
|
|
5702
|
+
if (this._expander.contains(this._expandedIcon)) {
|
|
5703
|
+
this._expandedIcon.remove();
|
|
5704
|
+
}
|
|
5705
|
+
if (!this._expander.contains(this._collapsedIcon)) {
|
|
5706
|
+
this._expander.appendChild(this._collapsedIcon);
|
|
5707
|
+
}
|
|
5708
|
+
}
|
|
5709
|
+
}
|
|
5633
5710
|
update(_params) {
|
|
5634
5711
|
//
|
|
5635
5712
|
}
|
|
@@ -5639,9 +5716,10 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5639
5716
|
}
|
|
5640
5717
|
}
|
|
5641
5718
|
|
|
5719
|
+
const nextLayoutId = sequentialNumberGenerator();
|
|
5642
5720
|
class PaneFramework extends DraggablePaneviewPanel {
|
|
5643
5721
|
constructor(options) {
|
|
5644
|
-
super(options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5722
|
+
super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5645
5723
|
this.options = options;
|
|
5646
5724
|
}
|
|
5647
5725
|
getBodyComponent() {
|
|
@@ -5655,6 +5733,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5655
5733
|
constructor(element, options) {
|
|
5656
5734
|
super();
|
|
5657
5735
|
this.element = element;
|
|
5736
|
+
this._id = nextLayoutId.next();
|
|
5658
5737
|
this._disposable = new MutableDisposable();
|
|
5659
5738
|
this._viewDisposables = new Map();
|
|
5660
5739
|
this._onDidLayoutfromJSON = new Emitter();
|
|
@@ -5681,6 +5760,9 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5681
5760
|
});
|
|
5682
5761
|
this.addDisposables(this._disposable);
|
|
5683
5762
|
}
|
|
5763
|
+
get id() {
|
|
5764
|
+
return this._id;
|
|
5765
|
+
}
|
|
5684
5766
|
get panels() {
|
|
5685
5767
|
return this.paneview.getPanes();
|
|
5686
5768
|
}
|
|
@@ -5745,6 +5827,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5745
5827
|
orientation: Orientation.VERTICAL,
|
|
5746
5828
|
isExpanded: !!options.isExpanded,
|
|
5747
5829
|
disableDnd: !!this.options.disableDnd,
|
|
5830
|
+
accessor: this,
|
|
5748
5831
|
});
|
|
5749
5832
|
this.doAddPanel(view);
|
|
5750
5833
|
const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
|
|
@@ -5803,13 +5886,9 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5803
5886
|
};
|
|
5804
5887
|
}
|
|
5805
5888
|
fromJSON(serializedPaneview) {
|
|
5889
|
+
this.clear();
|
|
5806
5890
|
const { views, size } = serializedPaneview;
|
|
5807
5891
|
const queue = [];
|
|
5808
|
-
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5809
|
-
value.dispose();
|
|
5810
|
-
}
|
|
5811
|
-
this._viewDisposables.clear();
|
|
5812
|
-
this.paneview.dispose();
|
|
5813
5892
|
this.paneview = new Paneview(this.element, {
|
|
5814
5893
|
orientation: Orientation.VERTICAL,
|
|
5815
5894
|
descriptor: {
|
|
@@ -5843,6 +5922,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5843
5922
|
orientation: Orientation.VERTICAL,
|
|
5844
5923
|
isExpanded: !!view.expanded,
|
|
5845
5924
|
disableDnd: !!this.options.disableDnd,
|
|
5925
|
+
accessor: this,
|
|
5846
5926
|
});
|
|
5847
5927
|
this.doAddPanel(panel);
|
|
5848
5928
|
queue.push(() => {
|
|
@@ -5868,6 +5948,13 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5868
5948
|
queue.forEach((f) => f());
|
|
5869
5949
|
this._onDidLayoutfromJSON.fire();
|
|
5870
5950
|
}
|
|
5951
|
+
clear() {
|
|
5952
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5953
|
+
value.dispose();
|
|
5954
|
+
}
|
|
5955
|
+
this._viewDisposables.clear();
|
|
5956
|
+
this.paneview.dispose();
|
|
5957
|
+
}
|
|
5871
5958
|
doAddPanel(panel) {
|
|
5872
5959
|
const disposable = panel.onDidDrop((event) => {
|
|
5873
5960
|
this._onDidDrop.fire(event);
|
|
@@ -6035,15 +6122,21 @@ class ReactPart {
|
|
|
6035
6122
|
this.component = component;
|
|
6036
6123
|
this.parameters = parameters;
|
|
6037
6124
|
this.context = context;
|
|
6125
|
+
this._initialProps = {};
|
|
6038
6126
|
this.disposed = false;
|
|
6039
6127
|
this.createPortal();
|
|
6040
6128
|
}
|
|
6041
6129
|
update(props) {
|
|
6042
|
-
var _a;
|
|
6043
6130
|
if (this.disposed) {
|
|
6044
6131
|
throw new Error('invalid operation: resource is already disposed');
|
|
6045
6132
|
}
|
|
6046
|
-
(
|
|
6133
|
+
if (!this.componentInstance) {
|
|
6134
|
+
// if the component is yet to be mounted store the props
|
|
6135
|
+
this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
|
|
6136
|
+
}
|
|
6137
|
+
else {
|
|
6138
|
+
this.componentInstance.update(props);
|
|
6139
|
+
}
|
|
6047
6140
|
}
|
|
6048
6141
|
createPortal() {
|
|
6049
6142
|
if (this.disposed) {
|
|
@@ -6063,6 +6156,10 @@ class ReactPart {
|
|
|
6063
6156
|
componentProps: this.parameters,
|
|
6064
6157
|
ref: (element) => {
|
|
6065
6158
|
this.componentInstance = element;
|
|
6159
|
+
if (Object.keys(this._initialProps).length > 0) {
|
|
6160
|
+
this.componentInstance.update(this._initialProps);
|
|
6161
|
+
this._initialProps = {}; // don't keep a reference to the users object once no longer required
|
|
6162
|
+
}
|
|
6066
6163
|
},
|
|
6067
6164
|
});
|
|
6068
6165
|
const node = this.context
|
|
@@ -6119,30 +6216,19 @@ class ReactPanelContentPart {
|
|
|
6119
6216
|
this.onDidBlur = this._onDidBlur.event;
|
|
6120
6217
|
this._element = document.createElement('div');
|
|
6121
6218
|
this._element.className = 'dockview-react-part';
|
|
6122
|
-
this._actionsElement = document.createElement('div');
|
|
6123
|
-
this._actionsElement.className = 'dockview-react-part';
|
|
6124
6219
|
}
|
|
6125
6220
|
get element() {
|
|
6126
6221
|
return this._element;
|
|
6127
6222
|
}
|
|
6128
|
-
get actions() {
|
|
6129
|
-
return this._actionsElement;
|
|
6130
|
-
}
|
|
6131
6223
|
focus() {
|
|
6132
6224
|
// TODO
|
|
6133
6225
|
}
|
|
6134
6226
|
init(parameters) {
|
|
6135
|
-
const context = {
|
|
6136
|
-
api: parameters.api,
|
|
6137
|
-
containerApi: parameters.containerApi,
|
|
6138
|
-
actionsPortalElement: this._actionsElement,
|
|
6139
|
-
tabPortalElement: parameters.tab,
|
|
6140
|
-
};
|
|
6141
6227
|
this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6142
6228
|
params: parameters.params,
|
|
6143
6229
|
api: parameters.api,
|
|
6144
6230
|
containerApi: parameters.containerApi,
|
|
6145
|
-
}
|
|
6231
|
+
});
|
|
6146
6232
|
}
|
|
6147
6233
|
toJSON() {
|
|
6148
6234
|
return {
|
|
@@ -6160,11 +6246,10 @@ class ReactPanelContentPart {
|
|
|
6160
6246
|
// noop
|
|
6161
6247
|
}
|
|
6162
6248
|
dispose() {
|
|
6163
|
-
var _a
|
|
6249
|
+
var _a;
|
|
6164
6250
|
this._onDidFocus.dispose();
|
|
6165
6251
|
this._onDidBlur.dispose();
|
|
6166
6252
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6167
|
-
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6168
6253
|
}
|
|
6169
6254
|
}
|
|
6170
6255
|
|
|
@@ -6194,6 +6279,9 @@ class ReactPanelHeaderPart {
|
|
|
6194
6279
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6195
6280
|
}
|
|
6196
6281
|
toJSON() {
|
|
6282
|
+
if (this.id === DEFAULT_TAB_IDENTIFIER) {
|
|
6283
|
+
return {};
|
|
6284
|
+
}
|
|
6197
6285
|
return {
|
|
6198
6286
|
id: this.id,
|
|
6199
6287
|
};
|
|
@@ -6215,17 +6303,25 @@ class ReactPanelDeserialzier {
|
|
|
6215
6303
|
this.layout = layout;
|
|
6216
6304
|
}
|
|
6217
6305
|
fromJSON(panelData, group) {
|
|
6218
|
-
var _a, _b, _c;
|
|
6306
|
+
var _a, _b, _c, _d;
|
|
6219
6307
|
const panelId = panelData.id;
|
|
6220
6308
|
const params = panelData.params;
|
|
6221
6309
|
const title = panelData.title;
|
|
6222
6310
|
const suppressClosable = panelData.suppressClosable;
|
|
6223
6311
|
const viewData = panelData.view;
|
|
6312
|
+
let tab;
|
|
6313
|
+
if ((_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id) {
|
|
6314
|
+
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());
|
|
6315
|
+
}
|
|
6316
|
+
else if (this.layout.options.defaultTabComponent) {
|
|
6317
|
+
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());
|
|
6318
|
+
}
|
|
6319
|
+
else {
|
|
6320
|
+
tab = new DefaultTab();
|
|
6321
|
+
}
|
|
6224
6322
|
const view = new DefaultGroupPanelView({
|
|
6225
|
-
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (
|
|
6226
|
-
tab
|
|
6227
|
-
? 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)
|
|
6228
|
-
: new DefaultTab(),
|
|
6323
|
+
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),
|
|
6324
|
+
tab,
|
|
6229
6325
|
});
|
|
6230
6326
|
const panel = new DockviewGroupPanel(panelId, this.layout, new DockviewApi(this.layout), group);
|
|
6231
6327
|
panel.init({
|
|
@@ -6293,6 +6389,80 @@ class ReactWatermarkPart {
|
|
|
6293
6389
|
}
|
|
6294
6390
|
}
|
|
6295
6391
|
|
|
6392
|
+
class ReactGroupControlsRendererPart {
|
|
6393
|
+
constructor(component, reactPortalStore, _group) {
|
|
6394
|
+
this.component = component;
|
|
6395
|
+
this.reactPortalStore = reactPortalStore;
|
|
6396
|
+
this._group = _group;
|
|
6397
|
+
this.mutableDisposable = new MutableDisposable();
|
|
6398
|
+
this._element = document.createElement('div');
|
|
6399
|
+
this._element.className = 'dockview-react-part';
|
|
6400
|
+
}
|
|
6401
|
+
get element() {
|
|
6402
|
+
return this._element;
|
|
6403
|
+
}
|
|
6404
|
+
get part() {
|
|
6405
|
+
return this._part;
|
|
6406
|
+
}
|
|
6407
|
+
get group() {
|
|
6408
|
+
return this._group;
|
|
6409
|
+
}
|
|
6410
|
+
focus() {
|
|
6411
|
+
// TODO
|
|
6412
|
+
}
|
|
6413
|
+
init(parameters) {
|
|
6414
|
+
this.mutableDisposable.value = new CompositeDisposable(this._group.model.onDidAddPanel(() => {
|
|
6415
|
+
this.updatePanels();
|
|
6416
|
+
}), this._group.model.onDidRemovePanel(() => {
|
|
6417
|
+
this.updatePanels();
|
|
6418
|
+
}), this._group.model.onDidActivePanelChange(() => {
|
|
6419
|
+
this.updateActivePanel();
|
|
6420
|
+
}), parameters.api.onDidActiveChange(() => {
|
|
6421
|
+
this.updateGroupActive();
|
|
6422
|
+
}));
|
|
6423
|
+
this._part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6424
|
+
api: parameters.api,
|
|
6425
|
+
containerApi: parameters.containerApi,
|
|
6426
|
+
panels: this._group.model.panels,
|
|
6427
|
+
activePanel: this._group.model.activePanel,
|
|
6428
|
+
isGroupActive: this._group.api.isActive,
|
|
6429
|
+
});
|
|
6430
|
+
}
|
|
6431
|
+
update(event) {
|
|
6432
|
+
var _a;
|
|
6433
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6434
|
+
}
|
|
6435
|
+
dispose() {
|
|
6436
|
+
var _a;
|
|
6437
|
+
this.mutableDisposable.dispose();
|
|
6438
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6439
|
+
}
|
|
6440
|
+
updatePanels() {
|
|
6441
|
+
this.update({ params: { panels: this._group.model.panels } });
|
|
6442
|
+
}
|
|
6443
|
+
updateActivePanel() {
|
|
6444
|
+
this.update({
|
|
6445
|
+
params: {
|
|
6446
|
+
activePanel: this._group.model.activePanel,
|
|
6447
|
+
},
|
|
6448
|
+
});
|
|
6449
|
+
}
|
|
6450
|
+
updateGroupActive() {
|
|
6451
|
+
this.update({
|
|
6452
|
+
params: {
|
|
6453
|
+
isGroupActive: this._group.api.isActive,
|
|
6454
|
+
},
|
|
6455
|
+
});
|
|
6456
|
+
}
|
|
6457
|
+
}
|
|
6458
|
+
|
|
6459
|
+
function createGroupControlElement(component, store) {
|
|
6460
|
+
return component
|
|
6461
|
+
? (groupPanel) => {
|
|
6462
|
+
return new ReactGroupControlsRendererPart(component, store, groupPanel);
|
|
6463
|
+
}
|
|
6464
|
+
: undefined;
|
|
6465
|
+
}
|
|
6296
6466
|
const DockviewReact = React.forwardRef((props, ref) => {
|
|
6297
6467
|
const domRef = React.useRef(null);
|
|
6298
6468
|
const dockviewRef = React.useRef();
|
|
@@ -6342,12 +6512,15 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
6342
6512
|
const dockview = new DockviewComponent(element, {
|
|
6343
6513
|
frameworkComponentFactory: factory,
|
|
6344
6514
|
frameworkComponents: props.components,
|
|
6345
|
-
frameworkTabComponents: props.tabComponents,
|
|
6515
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6346
6516
|
tabHeight: props.tabHeight,
|
|
6347
6517
|
watermarkFrameworkComponent: props.watermarkComponent,
|
|
6518
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6348
6519
|
styles: props.hideBorders
|
|
6349
6520
|
? { separatorBorder: 'transparent' }
|
|
6350
6521
|
: undefined,
|
|
6522
|
+
showDndOverlay: props.showDndOverlay,
|
|
6523
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6351
6524
|
});
|
|
6352
6525
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6353
6526
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
@@ -6424,10 +6597,79 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
6424
6597
|
disposable.dispose();
|
|
6425
6598
|
};
|
|
6426
6599
|
}, [props.onTabContextMenu]);
|
|
6600
|
+
React.useEffect(() => {
|
|
6601
|
+
if (!dockviewRef.current) {
|
|
6602
|
+
return;
|
|
6603
|
+
}
|
|
6604
|
+
dockviewRef.current.updateOptions({
|
|
6605
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6606
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6607
|
+
});
|
|
6608
|
+
}, [props.defaultTabComponent]);
|
|
6609
|
+
React.useEffect(() => {
|
|
6610
|
+
if (!dockviewRef.current) {
|
|
6611
|
+
return;
|
|
6612
|
+
}
|
|
6613
|
+
dockviewRef.current.updateOptions({
|
|
6614
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6615
|
+
});
|
|
6616
|
+
}, [props.groupControlComponent]);
|
|
6427
6617
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6428
6618
|
});
|
|
6429
6619
|
DockviewReact.displayName = 'DockviewComponent';
|
|
6430
6620
|
|
|
6621
|
+
/******************************************************************************
|
|
6622
|
+
Copyright (c) Microsoft Corporation.
|
|
6623
|
+
|
|
6624
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6625
|
+
purpose with or without fee is hereby granted.
|
|
6626
|
+
|
|
6627
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6628
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6629
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6630
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6631
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6632
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6633
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6634
|
+
***************************************************************************** */
|
|
6635
|
+
|
|
6636
|
+
function __rest(s, e) {
|
|
6637
|
+
var t = {};
|
|
6638
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6639
|
+
t[p] = s[p];
|
|
6640
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6641
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
6642
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
6643
|
+
t[p[i]] = s[p[i]];
|
|
6644
|
+
}
|
|
6645
|
+
return t;
|
|
6646
|
+
}
|
|
6647
|
+
|
|
6648
|
+
const CloseButton = () => (React.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
|
|
6649
|
+
React.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" })));
|
|
6650
|
+
|
|
6651
|
+
const DockviewDefaultTab = (_a) => {
|
|
6652
|
+
var { api, containerApi: _containerApi, params: _params } = _a, rest = __rest(_a, ["api", "containerApi", "params"]);
|
|
6653
|
+
const onClose = React.useCallback((event) => {
|
|
6654
|
+
event.stopPropagation();
|
|
6655
|
+
api.close();
|
|
6656
|
+
}, [api]);
|
|
6657
|
+
const onClick = React.useCallback((event) => {
|
|
6658
|
+
api.setActive();
|
|
6659
|
+
if (rest.onClick) {
|
|
6660
|
+
rest.onClick(event);
|
|
6661
|
+
}
|
|
6662
|
+
}, [api, rest.onClick]);
|
|
6663
|
+
const iconClassname = React.useMemo(() => {
|
|
6664
|
+
const cn = ['dockview-react-tab-action'];
|
|
6665
|
+
return cn.join(',');
|
|
6666
|
+
}, [api.suppressClosable]);
|
|
6667
|
+
return (React.createElement("div", Object.assign({}, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
6668
|
+
React.createElement("span", { className: "dockview-react-tab-title" }, api.title),
|
|
6669
|
+
React.createElement("div", { className: iconClassname, onClick: onClose },
|
|
6670
|
+
React.createElement(CloseButton, null))));
|
|
6671
|
+
};
|
|
6672
|
+
|
|
6431
6673
|
class ReactPanelView extends SplitviewPanel {
|
|
6432
6674
|
constructor(id, component, reactComponent, reactPortalStore) {
|
|
6433
6675
|
super(id, component);
|
|
@@ -6657,6 +6899,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
|
|
|
6657
6899
|
createComponent,
|
|
6658
6900
|
},
|
|
6659
6901
|
},
|
|
6902
|
+
showDndOverlay: props.showDndOverlay,
|
|
6660
6903
|
});
|
|
6661
6904
|
const api = new PaneviewApi(paneview);
|
|
6662
6905
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6701,8 +6944,16 @@ const PaneviewReact = React.forwardRef((props, ref) => {
|
|
|
6701
6944
|
disposable.dispose();
|
|
6702
6945
|
};
|
|
6703
6946
|
}, [props.onDidDrop]);
|
|
6947
|
+
React.useEffect(() => {
|
|
6948
|
+
if (!paneviewRef.current) {
|
|
6949
|
+
return;
|
|
6950
|
+
}
|
|
6951
|
+
paneviewRef.current.updateOptions({
|
|
6952
|
+
showDndOverlay: props.showDndOverlay,
|
|
6953
|
+
});
|
|
6954
|
+
}, [props.showDndOverlay]);
|
|
6704
6955
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6705
6956
|
});
|
|
6706
6957
|
PaneviewReact.displayName = 'PaneviewComponent';
|
|
6707
6958
|
|
|
6708
|
-
export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact,
|
|
6959
|
+
export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewDefaultTab, DockviewDropTargets, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };
|