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.amd.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
|
*/
|
|
@@ -54,7 +54,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
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}";
|
|
57
|
+
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}";
|
|
58
58
|
styleInject(css_248z);
|
|
59
59
|
|
|
60
60
|
class TransferObject {
|
|
@@ -2324,6 +2324,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2324
2324
|
toJSON() {
|
|
2325
2325
|
return this.component.toJSON();
|
|
2326
2326
|
}
|
|
2327
|
+
clear() {
|
|
2328
|
+
this.component.clear();
|
|
2329
|
+
}
|
|
2327
2330
|
}
|
|
2328
2331
|
class PaneviewApi {
|
|
2329
2332
|
constructor(component) {
|
|
@@ -2391,6 +2394,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2391
2394
|
toJSON() {
|
|
2392
2395
|
return this.component.toJSON();
|
|
2393
2396
|
}
|
|
2397
|
+
clear() {
|
|
2398
|
+
this.component.clear();
|
|
2399
|
+
}
|
|
2394
2400
|
}
|
|
2395
2401
|
class GridviewApi {
|
|
2396
2402
|
constructor(component) {
|
|
@@ -2417,13 +2423,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2417
2423
|
get onDidLayoutChange() {
|
|
2418
2424
|
return this.component.onDidLayoutChange;
|
|
2419
2425
|
}
|
|
2420
|
-
get
|
|
2426
|
+
get onDidAddPanel() {
|
|
2421
2427
|
return this.component.onDidAddGroup;
|
|
2422
2428
|
}
|
|
2423
|
-
get
|
|
2429
|
+
get onDidRemovePanel() {
|
|
2424
2430
|
return this.component.onDidRemoveGroup;
|
|
2425
2431
|
}
|
|
2426
|
-
get
|
|
2432
|
+
get onDidActivePanelChange() {
|
|
2427
2433
|
return this.component.onDidActiveGroupChange;
|
|
2428
2434
|
}
|
|
2429
2435
|
get onDidLayoutFromJSON() {
|
|
@@ -2462,6 +2468,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2462
2468
|
toJSON() {
|
|
2463
2469
|
return this.component.toJSON();
|
|
2464
2470
|
}
|
|
2471
|
+
clear() {
|
|
2472
|
+
this.component.clear();
|
|
2473
|
+
}
|
|
2465
2474
|
}
|
|
2466
2475
|
class DockviewApi {
|
|
2467
2476
|
constructor(component) {
|
|
@@ -2510,7 +2519,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2510
2519
|
return this.component.onDidRemovePanel;
|
|
2511
2520
|
}
|
|
2512
2521
|
get onDidLayoutFromJSON() {
|
|
2513
|
-
return this.component.
|
|
2522
|
+
return this.component.onDidLayoutFromJSON;
|
|
2514
2523
|
}
|
|
2515
2524
|
get onDidLayoutChange() {
|
|
2516
2525
|
return this.component.onDidLayoutChange;
|
|
@@ -2572,6 +2581,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2572
2581
|
toJSON() {
|
|
2573
2582
|
return this.component.toJSON();
|
|
2574
2583
|
}
|
|
2584
|
+
clear() {
|
|
2585
|
+
this.component.clear();
|
|
2586
|
+
}
|
|
2575
2587
|
}
|
|
2576
2588
|
|
|
2577
2589
|
class ContentContainer extends CompositeDisposable {
|
|
@@ -2645,12 +2657,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2645
2657
|
}
|
|
2646
2658
|
}
|
|
2647
2659
|
|
|
2648
|
-
|
|
2660
|
+
exports.DockviewDropTargets = void 0;
|
|
2649
2661
|
(function (DockviewDropTargets) {
|
|
2650
2662
|
DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
|
|
2651
2663
|
DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
|
|
2652
2664
|
DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
|
|
2653
|
-
})(DockviewDropTargets || (DockviewDropTargets = {}));
|
|
2665
|
+
})(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
|
|
2654
2666
|
|
|
2655
2667
|
class DragHandler extends CompositeDisposable {
|
|
2656
2668
|
constructor(el) {
|
|
@@ -2696,6 +2708,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2696
2708
|
constructor(panelId, accessor, group) {
|
|
2697
2709
|
super();
|
|
2698
2710
|
this.panelId = panelId;
|
|
2711
|
+
this.accessor = accessor;
|
|
2699
2712
|
this.group = group;
|
|
2700
2713
|
this._onChanged = new Emitter();
|
|
2701
2714
|
this.onChanged = this._onChanged.event;
|
|
@@ -2706,6 +2719,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2706
2719
|
this._element.className = 'tab';
|
|
2707
2720
|
this._element.tabIndex = 0;
|
|
2708
2721
|
this._element.draggable = true;
|
|
2722
|
+
toggleClass(this.element, 'inactive-tab', true);
|
|
2709
2723
|
this.addDisposables(new (class Handler extends DragHandler {
|
|
2710
2724
|
constructor() {
|
|
2711
2725
|
super(...arguments);
|
|
@@ -2745,10 +2759,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2745
2759
|
validOverlays: 'none',
|
|
2746
2760
|
canDisplayOverlay: (event) => {
|
|
2747
2761
|
const data = getPanelData();
|
|
2748
|
-
if (data) {
|
|
2762
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2749
2763
|
return this.panelId !== data.panelId;
|
|
2750
2764
|
}
|
|
2751
|
-
return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
|
|
2765
|
+
return this.group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Tab);
|
|
2752
2766
|
},
|
|
2753
2767
|
});
|
|
2754
2768
|
this.addDisposables(this.droptarget.onDrop((event) => {
|
|
@@ -2782,7 +2796,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2782
2796
|
this.group = group;
|
|
2783
2797
|
this.tabs = [];
|
|
2784
2798
|
this.selectedIndex = -1;
|
|
2785
|
-
this.active = false;
|
|
2786
2799
|
this._hidden = false;
|
|
2787
2800
|
this._onDrop = new Emitter();
|
|
2788
2801
|
this.onDrop = this._onDrop.event;
|
|
@@ -2804,11 +2817,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2804
2817
|
canDisplayOverlay: (event) => {
|
|
2805
2818
|
var _a;
|
|
2806
2819
|
const data = getPanelData();
|
|
2807
|
-
if (data) {
|
|
2820
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2808
2821
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
2809
2822
|
return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
|
|
2810
2823
|
}
|
|
2811
|
-
return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
|
|
2824
|
+
return group.model.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
|
|
2812
2825
|
},
|
|
2813
2826
|
});
|
|
2814
2827
|
this.addDisposables(this.voidDropTarget.onDrop((event) => {
|
|
@@ -2886,8 +2899,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2886
2899
|
indexOf(id) {
|
|
2887
2900
|
return this.tabs.findIndex((tab) => tab.value.panelId === id);
|
|
2888
2901
|
}
|
|
2889
|
-
setActive(
|
|
2890
|
-
|
|
2902
|
+
setActive(_isGroupActive) {
|
|
2903
|
+
// noop
|
|
2891
2904
|
}
|
|
2892
2905
|
addTab(tab, index = this.tabs.length) {
|
|
2893
2906
|
if (index < 0 || index > this.tabs.length) {
|
|
@@ -2948,7 +2961,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2948
2961
|
}));
|
|
2949
2962
|
const value = { value: tabToAdd, disposable };
|
|
2950
2963
|
this.addTab(value, index);
|
|
2951
|
-
this.activePanel = panel;
|
|
2952
2964
|
}
|
|
2953
2965
|
closePanel(panel) {
|
|
2954
2966
|
this.delete(panel.id);
|
|
@@ -2962,12 +2974,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2962
2974
|
}
|
|
2963
2975
|
}
|
|
2964
2976
|
|
|
2965
|
-
exports.GroupChangeKind2 = void 0;
|
|
2966
|
-
(function (GroupChangeKind2) {
|
|
2967
|
-
GroupChangeKind2["ADD_PANEL"] = "ADD_PANEL";
|
|
2968
|
-
GroupChangeKind2["REMOVE_PANEL"] = "REMOVE_PANEL";
|
|
2969
|
-
GroupChangeKind2["PANEL_ACTIVE"] = "PANEL_ACTIVE";
|
|
2970
|
-
})(exports.GroupChangeKind2 || (exports.GroupChangeKind2 = {}));
|
|
2971
2977
|
class Groupview extends CompositeDisposable {
|
|
2972
2978
|
constructor(container, accessor, id, options, parent) {
|
|
2973
2979
|
super();
|
|
@@ -2986,12 +2992,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2986
2992
|
this._panels = [];
|
|
2987
2993
|
this._onMove = new Emitter();
|
|
2988
2994
|
this.onMove = this._onMove.event;
|
|
2989
|
-
this._onDidGroupChange = new Emitter();
|
|
2990
|
-
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
2991
2995
|
this._onDidDrop = new Emitter();
|
|
2992
2996
|
this.onDidDrop = this._onDidDrop.event;
|
|
2997
|
+
this._onDidAddPanel = new Emitter();
|
|
2998
|
+
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
2999
|
+
this._onDidRemovePanel = new Emitter();
|
|
3000
|
+
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
3001
|
+
this._onDidActivePanelChange = new Emitter();
|
|
3002
|
+
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
2993
3003
|
this.container.classList.add('groupview');
|
|
2994
|
-
this.addDisposables(this._onMove, this._onDidGroupChange, this._onDidChange, this._onDidDrop);
|
|
2995
3004
|
this.tabsContainer = new TabsContainer(this.accessor, this.parent, {
|
|
2996
3005
|
tabHeight: options.tabHeight,
|
|
2997
3006
|
});
|
|
@@ -3003,17 +3012,17 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3003
3012
|
return false;
|
|
3004
3013
|
}
|
|
3005
3014
|
const data = getPanelData();
|
|
3006
|
-
if (data) {
|
|
3015
|
+
if (data && data.viewId === this.accessor.id) {
|
|
3007
3016
|
const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
|
|
3008
3017
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3009
3018
|
}
|
|
3010
|
-
return this.canDisplayOverlay(event, DockviewDropTargets.Panel);
|
|
3019
|
+
return this.canDisplayOverlay(event, exports.DockviewDropTargets.Panel);
|
|
3011
3020
|
},
|
|
3012
3021
|
});
|
|
3013
3022
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
3014
3023
|
this.header.hidden = !!options.hideHeader;
|
|
3015
3024
|
this.locked = !!options.locked;
|
|
3016
|
-
this.addDisposables(this._onMove, this.
|
|
3025
|
+
this.addDisposables(this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange, this.tabsContainer.onDrop((event) => {
|
|
3017
3026
|
this.handleDropEvent(event.event, exports.Position.Center, event.index);
|
|
3018
3027
|
}), this.contentContainer.onDidFocus(() => {
|
|
3019
3028
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
@@ -3085,6 +3094,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3085
3094
|
// correctly initialized
|
|
3086
3095
|
this.setActive(this.isActive, true, true);
|
|
3087
3096
|
this.updateContainer();
|
|
3097
|
+
if (this.accessor.options.createGroupControlElement) {
|
|
3098
|
+
this._control = this.accessor.options.createGroupControlElement(this.parent);
|
|
3099
|
+
this.addDisposables(this._control);
|
|
3100
|
+
this._control.init({
|
|
3101
|
+
containerApi: new DockviewApi(this.accessor),
|
|
3102
|
+
api: this.parent.api,
|
|
3103
|
+
});
|
|
3104
|
+
this.tabsContainer.setActionElement(this._control.element);
|
|
3105
|
+
}
|
|
3088
3106
|
}
|
|
3089
3107
|
indexOf(panel) {
|
|
3090
3108
|
return this.tabsContainer.indexOf(panel.id);
|
|
@@ -3165,16 +3183,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3165
3183
|
options.index > this.panels.length) {
|
|
3166
3184
|
options.index = this.panels.length;
|
|
3167
3185
|
}
|
|
3168
|
-
const
|
|
3186
|
+
const skipSetPanelActive = !!options.skipSetPanelActive;
|
|
3187
|
+
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
3169
3188
|
// ensure the group is updated before we fire any events
|
|
3170
3189
|
panel.updateParentGroup(this.parent, true);
|
|
3171
|
-
if (
|
|
3172
|
-
|
|
3190
|
+
if (this._activePanel === panel) {
|
|
3191
|
+
if (!skipSetGroupActive) {
|
|
3192
|
+
this.accessor.doSetGroupActive(this.parent);
|
|
3193
|
+
}
|
|
3173
3194
|
return;
|
|
3174
3195
|
}
|
|
3175
|
-
this.doAddPanel(panel, options.index);
|
|
3176
|
-
if (!
|
|
3196
|
+
this.doAddPanel(panel, options.index, skipSetPanelActive);
|
|
3197
|
+
if (!skipSetPanelActive) {
|
|
3177
3198
|
this.doSetActivePanel(panel);
|
|
3199
|
+
}
|
|
3200
|
+
if (!skipSetGroupActive) {
|
|
3178
3201
|
this.accessor.doSetGroupActive(this.parent, !!options.skipFocus);
|
|
3179
3202
|
}
|
|
3180
3203
|
this.updateContainer();
|
|
@@ -3210,14 +3233,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3210
3233
|
isPanelActive(panel) {
|
|
3211
3234
|
return this._activePanel === panel;
|
|
3212
3235
|
}
|
|
3213
|
-
updateActions() {
|
|
3214
|
-
|
|
3215
|
-
if (this.isActive && ((_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.actions)) {
|
|
3216
|
-
this.tabsContainer.setActionElement(this._activePanel.view.actions.element);
|
|
3217
|
-
}
|
|
3218
|
-
else {
|
|
3219
|
-
this.tabsContainer.setActionElement(undefined);
|
|
3220
|
-
}
|
|
3236
|
+
updateActions(element) {
|
|
3237
|
+
this.tabsContainer.setActionElement(element);
|
|
3221
3238
|
}
|
|
3222
3239
|
setActive(isGroupActive, skipFocus = false, force = false) {
|
|
3223
3240
|
var _a, _b;
|
|
@@ -3273,16 +3290,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3273
3290
|
if (this.mostRecentlyUsed.includes(panel)) {
|
|
3274
3291
|
this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
|
|
3275
3292
|
}
|
|
3276
|
-
this.
|
|
3277
|
-
kind: exports.GroupChangeKind2.REMOVE_PANEL,
|
|
3278
|
-
panel,
|
|
3279
|
-
});
|
|
3293
|
+
this._onDidRemovePanel.fire({ panel });
|
|
3280
3294
|
}
|
|
3281
|
-
doAddPanel(panel, index = this.panels.length) {
|
|
3295
|
+
doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
|
|
3282
3296
|
const existingPanel = this._panels.indexOf(panel);
|
|
3283
3297
|
const hasExistingPanel = existingPanel > -1;
|
|
3284
3298
|
this.tabsContainer.openPanel(panel, index);
|
|
3285
|
-
|
|
3299
|
+
if (!skipSetActive) {
|
|
3300
|
+
this.contentContainer.openPanel(panel);
|
|
3301
|
+
}
|
|
3286
3302
|
this.tabsContainer.show();
|
|
3287
3303
|
this.contentContainer.show();
|
|
3288
3304
|
if (hasExistingPanel) {
|
|
@@ -3291,10 +3307,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3291
3307
|
}
|
|
3292
3308
|
this.updateMru(panel);
|
|
3293
3309
|
this.panels.splice(index, 0, panel);
|
|
3294
|
-
this.
|
|
3295
|
-
kind: exports.GroupChangeKind2.ADD_PANEL,
|
|
3296
|
-
panel,
|
|
3297
|
-
});
|
|
3310
|
+
this._onDidAddPanel.fire({ panel });
|
|
3298
3311
|
}
|
|
3299
3312
|
doSetActivePanel(panel) {
|
|
3300
3313
|
this._activePanel = panel;
|
|
@@ -3302,10 +3315,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3302
3315
|
this.tabsContainer.setActivePanel(panel);
|
|
3303
3316
|
panel.layout(this._width, this._height);
|
|
3304
3317
|
this.updateMru(panel);
|
|
3305
|
-
this.
|
|
3306
|
-
kind: exports.GroupChangeKind2.PANEL_ACTIVE,
|
|
3307
|
-
panel,
|
|
3308
|
-
});
|
|
3318
|
+
this._onDidActivePanelChange.fire({ panel });
|
|
3309
3319
|
}
|
|
3310
3320
|
}
|
|
3311
3321
|
updateMru(panel) {
|
|
@@ -3315,7 +3325,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3315
3325
|
this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];
|
|
3316
3326
|
}
|
|
3317
3327
|
updateContainer() {
|
|
3318
|
-
this.updateActions();
|
|
3319
3328
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
3320
3329
|
this.panels.forEach((panel) => panel.updateParentGroup(this.parent, this.isActive));
|
|
3321
3330
|
if (this.isEmpty && !this.watermark) {
|
|
@@ -3348,7 +3357,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3348
3357
|
canDisplayOverlay(event, target) {
|
|
3349
3358
|
// custom overlay handler
|
|
3350
3359
|
if (this.accessor.options.showDndOverlay) {
|
|
3351
|
-
return this.accessor.options.showDndOverlay(
|
|
3360
|
+
return this.accessor.options.showDndOverlay({
|
|
3361
|
+
nativeEvent: event,
|
|
3362
|
+
target,
|
|
3363
|
+
group: this.accessor.getPanel(this.id),
|
|
3364
|
+
getData: getPanelData,
|
|
3365
|
+
});
|
|
3352
3366
|
}
|
|
3353
3367
|
return false;
|
|
3354
3368
|
}
|
|
@@ -3396,7 +3410,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3396
3410
|
}
|
|
3397
3411
|
}
|
|
3398
3412
|
|
|
3399
|
-
const nextLayoutId = sequentialNumberGenerator();
|
|
3413
|
+
const nextLayoutId$1 = sequentialNumberGenerator();
|
|
3400
3414
|
function toTarget(direction) {
|
|
3401
3415
|
switch (direction) {
|
|
3402
3416
|
case 'left':
|
|
@@ -3416,7 +3430,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3416
3430
|
constructor(_element, options) {
|
|
3417
3431
|
super();
|
|
3418
3432
|
this._element = _element;
|
|
3419
|
-
this._id = nextLayoutId.next();
|
|
3433
|
+
this._id = nextLayoutId$1.next();
|
|
3420
3434
|
this._groups = new Map();
|
|
3421
3435
|
this._onDidLayoutChange = new Emitter();
|
|
3422
3436
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
@@ -3431,7 +3445,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3431
3445
|
this.element.appendChild(this.gridview.element);
|
|
3432
3446
|
this.layout(0, 0, true); // set some elements height/widths
|
|
3433
3447
|
this.addDisposables(this.gridview.onDidChange(() => {
|
|
3434
|
-
this.
|
|
3448
|
+
this._bufferOnDidLayoutChange.fire();
|
|
3435
3449
|
}));
|
|
3436
3450
|
this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
|
|
3437
3451
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -3876,6 +3890,38 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3876
3890
|
}
|
|
3877
3891
|
}
|
|
3878
3892
|
|
|
3893
|
+
const createSvgElementFromPath = (params) => {
|
|
3894
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
3895
|
+
svg.setAttributeNS(null, 'height', params.height);
|
|
3896
|
+
svg.setAttributeNS(null, 'width', params.width);
|
|
3897
|
+
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
3898
|
+
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
3899
|
+
svg.setAttributeNS(null, 'focusable', 'false');
|
|
3900
|
+
svg.classList.add('dockview-svg');
|
|
3901
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
3902
|
+
path.setAttributeNS(null, 'd', params.path);
|
|
3903
|
+
svg.appendChild(path);
|
|
3904
|
+
return svg;
|
|
3905
|
+
};
|
|
3906
|
+
const createCloseButton = () => createSvgElementFromPath({
|
|
3907
|
+
width: '11',
|
|
3908
|
+
height: '11',
|
|
3909
|
+
viewbox: '0 0 28 28',
|
|
3910
|
+
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',
|
|
3911
|
+
});
|
|
3912
|
+
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
3913
|
+
width: '11',
|
|
3914
|
+
height: '11',
|
|
3915
|
+
viewbox: '0 0 24 15',
|
|
3916
|
+
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
3917
|
+
});
|
|
3918
|
+
const createChevronRightButton = () => createSvgElementFromPath({
|
|
3919
|
+
width: '11',
|
|
3920
|
+
height: '11',
|
|
3921
|
+
viewbox: '0 0 15 25',
|
|
3922
|
+
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
3923
|
+
});
|
|
3924
|
+
|
|
3879
3925
|
class Watermark extends CompositeDisposable {
|
|
3880
3926
|
constructor() {
|
|
3881
3927
|
super();
|
|
@@ -3892,8 +3938,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3892
3938
|
const actions = new ActionContainer();
|
|
3893
3939
|
title.appendChild(emptySpace);
|
|
3894
3940
|
title.appendChild(actions.element);
|
|
3895
|
-
const closeAnchor = document.createElement('
|
|
3941
|
+
const closeAnchor = document.createElement('div');
|
|
3896
3942
|
closeAnchor.className = 'close-action';
|
|
3943
|
+
closeAnchor.appendChild(createCloseButton());
|
|
3897
3944
|
actions.add(closeAnchor);
|
|
3898
3945
|
this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {
|
|
3899
3946
|
var _a;
|
|
@@ -3941,34 +3988,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3941
3988
|
}
|
|
3942
3989
|
}
|
|
3943
3990
|
|
|
3944
|
-
class DefaultDeserializer {
|
|
3945
|
-
constructor(layout, panelDeserializer) {
|
|
3946
|
-
this.layout = layout;
|
|
3947
|
-
this.panelDeserializer = panelDeserializer;
|
|
3948
|
-
}
|
|
3949
|
-
fromJSON(node) {
|
|
3950
|
-
const data = node.data;
|
|
3951
|
-
const children = data.views;
|
|
3952
|
-
const active = data.activeView;
|
|
3953
|
-
const group = this.layout.createGroup({
|
|
3954
|
-
id: data.id,
|
|
3955
|
-
locked: !!data.locked,
|
|
3956
|
-
hideHeader: !!data.hideHeader,
|
|
3957
|
-
});
|
|
3958
|
-
for (const child of children) {
|
|
3959
|
-
const panel = this.panelDeserializer.createPanel(child, group);
|
|
3960
|
-
const isActive = typeof active === 'string' && active === panel.id;
|
|
3961
|
-
group.model.openPanel(panel, {
|
|
3962
|
-
skipSetActive: !isActive,
|
|
3963
|
-
});
|
|
3964
|
-
}
|
|
3965
|
-
if (!group.activePanel && group.panels.length > 0) {
|
|
3966
|
-
group.model.openPanel(group.panels[group.panels.length - 1]);
|
|
3967
|
-
}
|
|
3968
|
-
return group;
|
|
3969
|
-
}
|
|
3970
|
-
}
|
|
3971
|
-
|
|
3972
3991
|
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
3973
3992
|
const Component = typeof componentName === 'string'
|
|
3974
3993
|
? components[componentName]
|
|
@@ -3994,6 +4013,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
3994
4013
|
return new Component(id, componentName);
|
|
3995
4014
|
}
|
|
3996
4015
|
|
|
4016
|
+
const DEFAULT_TAB_IDENTIFIER = '__default__tab__';
|
|
3997
4017
|
class DefaultTab extends CompositeDisposable {
|
|
3998
4018
|
constructor() {
|
|
3999
4019
|
super();
|
|
@@ -4013,8 +4033,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4013
4033
|
this._list = document.createElement('ul');
|
|
4014
4034
|
this._list.className = 'tab-list';
|
|
4015
4035
|
//
|
|
4016
|
-
this.action = document.createElement('
|
|
4036
|
+
this.action = document.createElement('div');
|
|
4017
4037
|
this.action.className = 'tab-action';
|
|
4038
|
+
this.action.appendChild(createCloseButton());
|
|
4018
4039
|
//
|
|
4019
4040
|
this._element.appendChild(this._content);
|
|
4020
4041
|
this._element.appendChild(this._actionContainer);
|
|
@@ -4030,7 +4051,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4030
4051
|
return this._element;
|
|
4031
4052
|
}
|
|
4032
4053
|
get id() {
|
|
4033
|
-
return
|
|
4054
|
+
return DEFAULT_TAB_IDENTIFIER;
|
|
4034
4055
|
}
|
|
4035
4056
|
update(event) {
|
|
4036
4057
|
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
@@ -4347,16 +4368,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4347
4368
|
var _a;
|
|
4348
4369
|
this._content = renderers.content;
|
|
4349
4370
|
this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
|
|
4350
|
-
this._actions =
|
|
4351
|
-
renderers.actions ||
|
|
4352
|
-
(this.content.actions
|
|
4353
|
-
? {
|
|
4354
|
-
element: this.content.actions,
|
|
4355
|
-
dispose: () => {
|
|
4356
|
-
//
|
|
4357
|
-
},
|
|
4358
|
-
}
|
|
4359
|
-
: undefined);
|
|
4360
4371
|
}
|
|
4361
4372
|
get content() {
|
|
4362
4373
|
return this._content;
|
|
@@ -4364,9 +4375,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4364
4375
|
get tab() {
|
|
4365
4376
|
return this._tab;
|
|
4366
4377
|
}
|
|
4367
|
-
get actions() {
|
|
4368
|
-
return this._actions;
|
|
4369
|
-
}
|
|
4370
4378
|
init(params) {
|
|
4371
4379
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
4372
4380
|
this.tab.init(params);
|
|
@@ -4384,16 +4392,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4384
4392
|
this.tab.update(event);
|
|
4385
4393
|
}
|
|
4386
4394
|
toJSON() {
|
|
4395
|
+
let tab = this.tab instanceof DefaultTab ? undefined : this.tab.toJSON();
|
|
4396
|
+
if (tab && Object.keys(tab).length === 0) {
|
|
4397
|
+
tab = undefined;
|
|
4398
|
+
}
|
|
4387
4399
|
return {
|
|
4388
4400
|
content: this.content.toJSON(),
|
|
4389
|
-
tab
|
|
4401
|
+
tab,
|
|
4390
4402
|
};
|
|
4391
4403
|
}
|
|
4392
4404
|
dispose() {
|
|
4393
|
-
var _a;
|
|
4394
4405
|
this.content.dispose();
|
|
4395
4406
|
this.tab.dispose();
|
|
4396
|
-
(_a = this.actions) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4397
4407
|
}
|
|
4398
4408
|
}
|
|
4399
4409
|
|
|
@@ -4405,9 +4415,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4405
4415
|
orientation: options.orientation || exports.Orientation.HORIZONTAL,
|
|
4406
4416
|
styles: options.styles,
|
|
4407
4417
|
});
|
|
4408
|
-
// events
|
|
4409
|
-
this._onTabInteractionEvent = new Emitter();
|
|
4410
|
-
this.onTabInteractionEvent = this._onTabInteractionEvent.event;
|
|
4411
4418
|
this._onTabContextMenu = new Emitter();
|
|
4412
4419
|
this.onTabContextMenu = this._onTabContextMenu.event;
|
|
4413
4420
|
this._onDidDrop = new Emitter();
|
|
@@ -4416,11 +4423,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4416
4423
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4417
4424
|
this._onDidAddPanel = new Emitter();
|
|
4418
4425
|
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
4419
|
-
this.
|
|
4420
|
-
this.
|
|
4426
|
+
this._onDidLayoutFromJSON = new Emitter();
|
|
4427
|
+
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
4421
4428
|
this._onDidActivePanelChange = new Emitter();
|
|
4422
4429
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4423
|
-
this.addDisposables(this.
|
|
4430
|
+
this.addDisposables(this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
4424
4431
|
this._bufferOnDidLayoutChange.fire();
|
|
4425
4432
|
}));
|
|
4426
4433
|
this._options = options;
|
|
@@ -4475,7 +4482,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4475
4482
|
}
|
|
4476
4483
|
updateOptions(options) {
|
|
4477
4484
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4478
|
-
this.
|
|
4485
|
+
this.gridview.orientation !== options.orientation;
|
|
4479
4486
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4480
4487
|
if (hasOrientationChanged) {
|
|
4481
4488
|
this.gridview.orientation = options.orientation;
|
|
@@ -4553,12 +4560,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4553
4560
|
};
|
|
4554
4561
|
}
|
|
4555
4562
|
fromJSON(data) {
|
|
4556
|
-
|
|
4557
|
-
for (const group of groups) {
|
|
4558
|
-
// remove the group will automatically remove the panels
|
|
4559
|
-
this.removeGroup(group, true);
|
|
4560
|
-
}
|
|
4561
|
-
this.gridview.clear();
|
|
4563
|
+
this.clear();
|
|
4562
4564
|
if (!this.deserializer) {
|
|
4563
4565
|
throw new Error('invalid deserializer');
|
|
4564
4566
|
}
|
|
@@ -4569,12 +4571,31 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4569
4571
|
if (!this.deserializer) {
|
|
4570
4572
|
throw new Error('no deserializer provided');
|
|
4571
4573
|
}
|
|
4572
|
-
this.gridview.deserialize(grid,
|
|
4573
|
-
|
|
4574
|
-
const
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4574
|
+
this.gridview.deserialize(grid, {
|
|
4575
|
+
fromJSON: (node) => {
|
|
4576
|
+
const { id, locked, hideHeader, views, activeView } = node.data;
|
|
4577
|
+
const group = this.createGroup({
|
|
4578
|
+
id,
|
|
4579
|
+
locked: !!locked,
|
|
4580
|
+
hideHeader: !!hideHeader,
|
|
4581
|
+
});
|
|
4582
|
+
this._onDidAddGroup.fire(group);
|
|
4583
|
+
for (const child of views) {
|
|
4584
|
+
const panel = this.deserializer.fromJSON(panels[child], group);
|
|
4585
|
+
const isActive = typeof activeView === 'string' && activeView === panel.id;
|
|
4586
|
+
group.model.openPanel(panel, {
|
|
4587
|
+
skipSetPanelActive: !isActive,
|
|
4588
|
+
skipSetGroupActive: true
|
|
4589
|
+
});
|
|
4590
|
+
}
|
|
4591
|
+
if (!group.activePanel && group.panels.length > 0) {
|
|
4592
|
+
group.model.openPanel(group.panels[group.panels.length - 1], {
|
|
4593
|
+
skipSetGroupActive: true
|
|
4594
|
+
});
|
|
4595
|
+
}
|
|
4596
|
+
return group;
|
|
4597
|
+
}
|
|
4598
|
+
});
|
|
4578
4599
|
if (typeof activeGroup === 'string') {
|
|
4579
4600
|
const panel = this.getPanel(activeGroup);
|
|
4580
4601
|
if (panel) {
|
|
@@ -4582,7 +4603,23 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4582
4603
|
}
|
|
4583
4604
|
}
|
|
4584
4605
|
this.gridview.layout(this.width, this.height);
|
|
4585
|
-
this.
|
|
4606
|
+
this._onDidLayoutFromJSON.fire();
|
|
4607
|
+
}
|
|
4608
|
+
clear() {
|
|
4609
|
+
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
4610
|
+
const hasActiveGroup = !!this.activeGroup;
|
|
4611
|
+
const hasActivePanel = !!this.activePanel;
|
|
4612
|
+
for (const group of groups) {
|
|
4613
|
+
// remove the group will automatically remove the panels
|
|
4614
|
+
this.removeGroup(group, true);
|
|
4615
|
+
}
|
|
4616
|
+
if (hasActiveGroup) {
|
|
4617
|
+
this.doSetGroupActive(undefined);
|
|
4618
|
+
}
|
|
4619
|
+
if (hasActivePanel) {
|
|
4620
|
+
this._onDidActivePanelChange.fire(undefined);
|
|
4621
|
+
}
|
|
4622
|
+
this.gridview.clear();
|
|
4586
4623
|
}
|
|
4587
4624
|
closeAllGroups() {
|
|
4588
4625
|
for (const entry of this._groups.entries()) {
|
|
@@ -4780,23 +4817,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4780
4817
|
const { groupId, itemId, target, index } = event;
|
|
4781
4818
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
4782
4819
|
}), view.model.onDidDrop((event) => {
|
|
4783
|
-
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
|
|
4784
|
-
}), view.model.
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
break;
|
|
4791
|
-
case exports.GroupChangeKind2.REMOVE_PANEL:
|
|
4792
|
-
if (event.panel) {
|
|
4793
|
-
this._onDidRemovePanel.fire(event.panel);
|
|
4794
|
-
}
|
|
4795
|
-
break;
|
|
4796
|
-
case exports.GroupChangeKind2.PANEL_ACTIVE:
|
|
4797
|
-
this._onDidActivePanelChange.fire(event.panel);
|
|
4798
|
-
break;
|
|
4799
|
-
}
|
|
4820
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
|
|
4821
|
+
}), view.model.onDidAddPanel((event) => {
|
|
4822
|
+
this._onDidAddPanel.fire(event.panel);
|
|
4823
|
+
}), view.model.onDidRemovePanel((event) => {
|
|
4824
|
+
this._onDidRemovePanel.fire(event.panel);
|
|
4825
|
+
}), view.model.onDidActivePanelChange((event) => {
|
|
4826
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
4800
4827
|
}));
|
|
4801
4828
|
this._groups.set(view.id, { value: view, disposable });
|
|
4802
4829
|
}
|
|
@@ -4811,7 +4838,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4811
4838
|
createPanel(options, group) {
|
|
4812
4839
|
const view = new DefaultGroupPanelView({
|
|
4813
4840
|
content: this.createContentComponent(options.id, options.component),
|
|
4814
|
-
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
4841
|
+
tab: this.createTabComponent(options.id, options.tabComponent || this.options.defaultTabComponent),
|
|
4815
4842
|
});
|
|
4816
4843
|
const panel = new DockviewGroupPanel(options.id, this, this._api, group);
|
|
4817
4844
|
panel.init({
|
|
@@ -4844,7 +4871,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4844
4871
|
this._onDidActivePanelChange.dispose();
|
|
4845
4872
|
this._onDidAddPanel.dispose();
|
|
4846
4873
|
this._onDidRemovePanel.dispose();
|
|
4847
|
-
this.
|
|
4874
|
+
this._onDidLayoutFromJSON.dispose();
|
|
4848
4875
|
}
|
|
4849
4876
|
}
|
|
4850
4877
|
|
|
@@ -4882,7 +4909,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4882
4909
|
}
|
|
4883
4910
|
updateOptions(options) {
|
|
4884
4911
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
4885
|
-
this.
|
|
4912
|
+
this.gridview.orientation !== options.orientation;
|
|
4886
4913
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
4887
4914
|
if (hasOrientationChanged) {
|
|
4888
4915
|
this.gridview.orientation = options.orientation;
|
|
@@ -4918,13 +4945,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4918
4945
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4919
4946
|
}
|
|
4920
4947
|
fromJSON(serializedGridview) {
|
|
4948
|
+
this.clear();
|
|
4921
4949
|
const { grid, activePanel } = serializedGridview;
|
|
4922
|
-
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4923
|
-
for (const group of groups) {
|
|
4924
|
-
group.disposable.dispose();
|
|
4925
|
-
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4926
|
-
}
|
|
4927
|
-
this.gridview.clear();
|
|
4928
4950
|
const queue = [];
|
|
4929
4951
|
this.gridview.deserialize(grid, {
|
|
4930
4952
|
fromJSON: (node) => {
|
|
@@ -4946,6 +4968,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4946
4968
|
accessor: this,
|
|
4947
4969
|
isVisible: node.visible,
|
|
4948
4970
|
}));
|
|
4971
|
+
this._onDidAddGroup.fire(view);
|
|
4949
4972
|
this.registerPanel(view);
|
|
4950
4973
|
return view;
|
|
4951
4974
|
},
|
|
@@ -4960,6 +4983,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
4960
4983
|
}
|
|
4961
4984
|
this._onDidLayoutfromJSON.fire();
|
|
4962
4985
|
}
|
|
4986
|
+
clear() {
|
|
4987
|
+
const hasActiveGroup = this.activeGroup;
|
|
4988
|
+
const groups = Array.from(this._groups.values()); // reassign since group panels will mutate
|
|
4989
|
+
for (const group of groups) {
|
|
4990
|
+
group.disposable.dispose();
|
|
4991
|
+
this.doRemoveGroup(group.value, { skipActive: true });
|
|
4992
|
+
}
|
|
4993
|
+
if (hasActiveGroup) {
|
|
4994
|
+
this.doSetGroupActive(undefined);
|
|
4995
|
+
}
|
|
4996
|
+
this.gridview.clear();
|
|
4997
|
+
}
|
|
4963
4998
|
movePanel(panel, options) {
|
|
4964
4999
|
var _a;
|
|
4965
5000
|
let relativeLocation;
|
|
@@ -5250,13 +5285,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5250
5285
|
};
|
|
5251
5286
|
}
|
|
5252
5287
|
fromJSON(serializedSplitview) {
|
|
5288
|
+
this.clear();
|
|
5253
5289
|
const { views, orientation, size, activeView } = serializedSplitview;
|
|
5254
|
-
for (const [_, value] of this._panels.entries()) {
|
|
5255
|
-
value.disposable.dispose();
|
|
5256
|
-
value.value.dispose();
|
|
5257
|
-
}
|
|
5258
|
-
this._panels.clear();
|
|
5259
|
-
this.splitview.dispose();
|
|
5260
5290
|
const queue = [];
|
|
5261
5291
|
this.splitview = new Splitview(this.element, {
|
|
5262
5292
|
orientation,
|
|
@@ -5304,6 +5334,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5304
5334
|
}
|
|
5305
5335
|
this._onDidLayoutfromJSON.fire();
|
|
5306
5336
|
}
|
|
5337
|
+
clear() {
|
|
5338
|
+
for (const [_, value] of this._panels.entries()) {
|
|
5339
|
+
value.disposable.dispose();
|
|
5340
|
+
value.value.dispose();
|
|
5341
|
+
}
|
|
5342
|
+
this._panels.clear();
|
|
5343
|
+
this.splitview.dispose();
|
|
5344
|
+
}
|
|
5307
5345
|
dispose() {
|
|
5308
5346
|
for (const [_, value] of this._panels.entries()) {
|
|
5309
5347
|
value.disposable.dispose();
|
|
@@ -5553,8 +5591,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5553
5591
|
}
|
|
5554
5592
|
|
|
5555
5593
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
5556
|
-
constructor(id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5594
|
+
constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5557
5595
|
super(id, component, headerComponent, orientation, isExpanded, true);
|
|
5596
|
+
this.accessor = accessor;
|
|
5558
5597
|
this._onDidDrop = new Emitter();
|
|
5559
5598
|
this.onDidDrop = this._onDidDrop.event;
|
|
5560
5599
|
if (!disableDnd) {
|
|
@@ -5566,10 +5605,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5566
5605
|
return;
|
|
5567
5606
|
}
|
|
5568
5607
|
const id = this.id;
|
|
5608
|
+
const accessorId = this.accessor.id;
|
|
5569
5609
|
this.header.draggable = true;
|
|
5570
5610
|
this.handler = new (class PaneDragHandler extends DragHandler {
|
|
5571
5611
|
getData() {
|
|
5572
|
-
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(
|
|
5612
|
+
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);
|
|
5573
5613
|
return {
|
|
5574
5614
|
dispose: () => {
|
|
5575
5615
|
LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);
|
|
@@ -5579,12 +5619,22 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5579
5619
|
})(this.header);
|
|
5580
5620
|
this.target = new Droptarget(this.element, {
|
|
5581
5621
|
validOverlays: 'vertical',
|
|
5582
|
-
canDisplayOverlay: () => {
|
|
5622
|
+
canDisplayOverlay: (event) => {
|
|
5583
5623
|
const data = getPaneData();
|
|
5584
|
-
if (
|
|
5585
|
-
|
|
5624
|
+
if (data) {
|
|
5625
|
+
if (data.paneId !== this.id &&
|
|
5626
|
+
data.viewId === this.accessor.id) {
|
|
5627
|
+
return true;
|
|
5628
|
+
}
|
|
5586
5629
|
}
|
|
5587
|
-
|
|
5630
|
+
if (this.accessor.options.showDndOverlay) {
|
|
5631
|
+
return this.accessor.options.showDndOverlay({
|
|
5632
|
+
nativeEvent: event,
|
|
5633
|
+
getData: getPaneData,
|
|
5634
|
+
panel: this,
|
|
5635
|
+
});
|
|
5636
|
+
}
|
|
5637
|
+
return false;
|
|
5588
5638
|
},
|
|
5589
5639
|
});
|
|
5590
5640
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
@@ -5593,8 +5643,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5593
5643
|
}
|
|
5594
5644
|
onDrop(event) {
|
|
5595
5645
|
const data = getPaneData();
|
|
5596
|
-
if (!data) {
|
|
5597
|
-
|
|
5646
|
+
if (!data || data.viewId !== this.accessor.id) {
|
|
5647
|
+
// if there is no local drag event for this panel
|
|
5648
|
+
// or if the drag event was creating by another Paneview instance
|
|
5649
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5598
5650
|
return;
|
|
5599
5651
|
}
|
|
5600
5652
|
const containerApi = this._params
|
|
@@ -5602,7 +5654,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5602
5654
|
const panelId = data.paneId;
|
|
5603
5655
|
const existingPanel = containerApi.getPanel(panelId);
|
|
5604
5656
|
if (!existingPanel) {
|
|
5605
|
-
|
|
5657
|
+
// if the panel doesn't exist
|
|
5658
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5606
5659
|
return;
|
|
5607
5660
|
}
|
|
5608
5661
|
const allPanels = containerApi.panels;
|
|
@@ -5626,15 +5679,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5626
5679
|
class DefaultHeader extends CompositeDisposable {
|
|
5627
5680
|
constructor() {
|
|
5628
5681
|
super();
|
|
5682
|
+
this._expandedIcon = createExpandMoreButton();
|
|
5683
|
+
this._collapsedIcon = createChevronRightButton();
|
|
5629
5684
|
this.disposable = new MutableDisposable();
|
|
5630
5685
|
this.apiRef = { api: null };
|
|
5631
5686
|
this._element = document.createElement('div');
|
|
5632
5687
|
this.element.className = 'default-header';
|
|
5633
5688
|
this._content = document.createElement('span');
|
|
5634
|
-
this._expander = document.createElement('
|
|
5635
|
-
this.
|
|
5689
|
+
this._expander = document.createElement('div');
|
|
5690
|
+
this._expander.className = 'dockview-pane-header-icon';
|
|
5636
5691
|
this.element.appendChild(this._expander);
|
|
5637
|
-
this.
|
|
5692
|
+
this.element.appendChild(this._content);
|
|
5693
|
+
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
5638
5694
|
var _a;
|
|
5639
5695
|
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
|
|
5640
5696
|
}));
|
|
@@ -5645,11 +5701,32 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5645
5701
|
init(params) {
|
|
5646
5702
|
this.apiRef.api = params.api;
|
|
5647
5703
|
this._content.textContent = params.title;
|
|
5648
|
-
this.
|
|
5649
|
-
this.disposable.value = params.api.onDidExpansionChange((
|
|
5650
|
-
this.
|
|
5704
|
+
this.updateIcon();
|
|
5705
|
+
this.disposable.value = params.api.onDidExpansionChange(() => {
|
|
5706
|
+
this.updateIcon();
|
|
5651
5707
|
});
|
|
5652
5708
|
}
|
|
5709
|
+
updateIcon() {
|
|
5710
|
+
var _a;
|
|
5711
|
+
const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);
|
|
5712
|
+
toggleClass(this._expander, 'collapsed', !isExpanded);
|
|
5713
|
+
if (isExpanded) {
|
|
5714
|
+
if (this._expander.contains(this._collapsedIcon)) {
|
|
5715
|
+
this._collapsedIcon.remove();
|
|
5716
|
+
}
|
|
5717
|
+
if (!this._expander.contains(this._expandedIcon)) {
|
|
5718
|
+
this._expander.appendChild(this._expandedIcon);
|
|
5719
|
+
}
|
|
5720
|
+
}
|
|
5721
|
+
else {
|
|
5722
|
+
if (this._expander.contains(this._expandedIcon)) {
|
|
5723
|
+
this._expandedIcon.remove();
|
|
5724
|
+
}
|
|
5725
|
+
if (!this._expander.contains(this._collapsedIcon)) {
|
|
5726
|
+
this._expander.appendChild(this._collapsedIcon);
|
|
5727
|
+
}
|
|
5728
|
+
}
|
|
5729
|
+
}
|
|
5653
5730
|
update(_params) {
|
|
5654
5731
|
//
|
|
5655
5732
|
}
|
|
@@ -5659,9 +5736,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5659
5736
|
}
|
|
5660
5737
|
}
|
|
5661
5738
|
|
|
5739
|
+
const nextLayoutId = sequentialNumberGenerator();
|
|
5662
5740
|
class PaneFramework extends DraggablePaneviewPanel {
|
|
5663
5741
|
constructor(options) {
|
|
5664
|
-
super(options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5742
|
+
super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5665
5743
|
this.options = options;
|
|
5666
5744
|
}
|
|
5667
5745
|
getBodyComponent() {
|
|
@@ -5675,6 +5753,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5675
5753
|
constructor(element, options) {
|
|
5676
5754
|
super();
|
|
5677
5755
|
this.element = element;
|
|
5756
|
+
this._id = nextLayoutId.next();
|
|
5678
5757
|
this._disposable = new MutableDisposable();
|
|
5679
5758
|
this._viewDisposables = new Map();
|
|
5680
5759
|
this._onDidLayoutfromJSON = new Emitter();
|
|
@@ -5701,6 +5780,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5701
5780
|
});
|
|
5702
5781
|
this.addDisposables(this._disposable);
|
|
5703
5782
|
}
|
|
5783
|
+
get id() {
|
|
5784
|
+
return this._id;
|
|
5785
|
+
}
|
|
5704
5786
|
get panels() {
|
|
5705
5787
|
return this.paneview.getPanes();
|
|
5706
5788
|
}
|
|
@@ -5765,6 +5847,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5765
5847
|
orientation: exports.Orientation.VERTICAL,
|
|
5766
5848
|
isExpanded: !!options.isExpanded,
|
|
5767
5849
|
disableDnd: !!this.options.disableDnd,
|
|
5850
|
+
accessor: this,
|
|
5768
5851
|
});
|
|
5769
5852
|
this.doAddPanel(view);
|
|
5770
5853
|
const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
|
|
@@ -5823,13 +5906,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5823
5906
|
};
|
|
5824
5907
|
}
|
|
5825
5908
|
fromJSON(serializedPaneview) {
|
|
5909
|
+
this.clear();
|
|
5826
5910
|
const { views, size } = serializedPaneview;
|
|
5827
5911
|
const queue = [];
|
|
5828
|
-
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5829
|
-
value.dispose();
|
|
5830
|
-
}
|
|
5831
|
-
this._viewDisposables.clear();
|
|
5832
|
-
this.paneview.dispose();
|
|
5833
5912
|
this.paneview = new Paneview(this.element, {
|
|
5834
5913
|
orientation: exports.Orientation.VERTICAL,
|
|
5835
5914
|
descriptor: {
|
|
@@ -5863,6 +5942,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5863
5942
|
orientation: exports.Orientation.VERTICAL,
|
|
5864
5943
|
isExpanded: !!view.expanded,
|
|
5865
5944
|
disableDnd: !!this.options.disableDnd,
|
|
5945
|
+
accessor: this,
|
|
5866
5946
|
});
|
|
5867
5947
|
this.doAddPanel(panel);
|
|
5868
5948
|
queue.push(() => {
|
|
@@ -5888,6 +5968,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
5888
5968
|
queue.forEach((f) => f());
|
|
5889
5969
|
this._onDidLayoutfromJSON.fire();
|
|
5890
5970
|
}
|
|
5971
|
+
clear() {
|
|
5972
|
+
for (const [_, value] of this._viewDisposables.entries()) {
|
|
5973
|
+
value.dispose();
|
|
5974
|
+
}
|
|
5975
|
+
this._viewDisposables.clear();
|
|
5976
|
+
this.paneview.dispose();
|
|
5977
|
+
}
|
|
5891
5978
|
doAddPanel(panel) {
|
|
5892
5979
|
const disposable = panel.onDidDrop((event) => {
|
|
5893
5980
|
this._onDidDrop.fire(event);
|
|
@@ -6055,15 +6142,21 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6055
6142
|
this.component = component;
|
|
6056
6143
|
this.parameters = parameters;
|
|
6057
6144
|
this.context = context;
|
|
6145
|
+
this._initialProps = {};
|
|
6058
6146
|
this.disposed = false;
|
|
6059
6147
|
this.createPortal();
|
|
6060
6148
|
}
|
|
6061
6149
|
update(props) {
|
|
6062
|
-
var _a;
|
|
6063
6150
|
if (this.disposed) {
|
|
6064
6151
|
throw new Error('invalid operation: resource is already disposed');
|
|
6065
6152
|
}
|
|
6066
|
-
(
|
|
6153
|
+
if (!this.componentInstance) {
|
|
6154
|
+
// if the component is yet to be mounted store the props
|
|
6155
|
+
this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
|
|
6156
|
+
}
|
|
6157
|
+
else {
|
|
6158
|
+
this.componentInstance.update(props);
|
|
6159
|
+
}
|
|
6067
6160
|
}
|
|
6068
6161
|
createPortal() {
|
|
6069
6162
|
if (this.disposed) {
|
|
@@ -6083,6 +6176,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6083
6176
|
componentProps: this.parameters,
|
|
6084
6177
|
ref: (element) => {
|
|
6085
6178
|
this.componentInstance = element;
|
|
6179
|
+
if (Object.keys(this._initialProps).length > 0) {
|
|
6180
|
+
this.componentInstance.update(this._initialProps);
|
|
6181
|
+
this._initialProps = {}; // don't keep a reference to the users object once no longer required
|
|
6182
|
+
}
|
|
6086
6183
|
},
|
|
6087
6184
|
});
|
|
6088
6185
|
const node = this.context
|
|
@@ -6139,30 +6236,19 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6139
6236
|
this.onDidBlur = this._onDidBlur.event;
|
|
6140
6237
|
this._element = document.createElement('div');
|
|
6141
6238
|
this._element.className = 'dockview-react-part';
|
|
6142
|
-
this._actionsElement = document.createElement('div');
|
|
6143
|
-
this._actionsElement.className = 'dockview-react-part';
|
|
6144
6239
|
}
|
|
6145
6240
|
get element() {
|
|
6146
6241
|
return this._element;
|
|
6147
6242
|
}
|
|
6148
|
-
get actions() {
|
|
6149
|
-
return this._actionsElement;
|
|
6150
|
-
}
|
|
6151
6243
|
focus() {
|
|
6152
6244
|
// TODO
|
|
6153
6245
|
}
|
|
6154
6246
|
init(parameters) {
|
|
6155
|
-
const context = {
|
|
6156
|
-
api: parameters.api,
|
|
6157
|
-
containerApi: parameters.containerApi,
|
|
6158
|
-
actionsPortalElement: this._actionsElement,
|
|
6159
|
-
tabPortalElement: parameters.tab,
|
|
6160
|
-
};
|
|
6161
6247
|
this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6162
6248
|
params: parameters.params,
|
|
6163
6249
|
api: parameters.api,
|
|
6164
6250
|
containerApi: parameters.containerApi,
|
|
6165
|
-
}
|
|
6251
|
+
});
|
|
6166
6252
|
}
|
|
6167
6253
|
toJSON() {
|
|
6168
6254
|
return {
|
|
@@ -6180,11 +6266,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6180
6266
|
// noop
|
|
6181
6267
|
}
|
|
6182
6268
|
dispose() {
|
|
6183
|
-
var _a
|
|
6269
|
+
var _a;
|
|
6184
6270
|
this._onDidFocus.dispose();
|
|
6185
6271
|
this._onDidBlur.dispose();
|
|
6186
6272
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6187
|
-
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6188
6273
|
}
|
|
6189
6274
|
}
|
|
6190
6275
|
|
|
@@ -6214,6 +6299,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6214
6299
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6215
6300
|
}
|
|
6216
6301
|
toJSON() {
|
|
6302
|
+
if (this.id === DEFAULT_TAB_IDENTIFIER) {
|
|
6303
|
+
return {};
|
|
6304
|
+
}
|
|
6217
6305
|
return {
|
|
6218
6306
|
id: this.id,
|
|
6219
6307
|
};
|
|
@@ -6235,17 +6323,25 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6235
6323
|
this.layout = layout;
|
|
6236
6324
|
}
|
|
6237
6325
|
fromJSON(panelData, group) {
|
|
6238
|
-
var _a, _b, _c;
|
|
6326
|
+
var _a, _b, _c, _d;
|
|
6239
6327
|
const panelId = panelData.id;
|
|
6240
6328
|
const params = panelData.params;
|
|
6241
6329
|
const title = panelData.title;
|
|
6242
6330
|
const suppressClosable = panelData.suppressClosable;
|
|
6243
6331
|
const viewData = panelData.view;
|
|
6332
|
+
let tab;
|
|
6333
|
+
if ((_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id) {
|
|
6334
|
+
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());
|
|
6335
|
+
}
|
|
6336
|
+
else if (this.layout.options.defaultTabComponent) {
|
|
6337
|
+
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());
|
|
6338
|
+
}
|
|
6339
|
+
else {
|
|
6340
|
+
tab = new DefaultTab();
|
|
6341
|
+
}
|
|
6244
6342
|
const view = new DefaultGroupPanelView({
|
|
6245
|
-
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (
|
|
6246
|
-
tab
|
|
6247
|
-
? 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)
|
|
6248
|
-
: new DefaultTab(),
|
|
6343
|
+
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),
|
|
6344
|
+
tab,
|
|
6249
6345
|
});
|
|
6250
6346
|
const panel = new DockviewGroupPanel(panelId, this.layout, new DockviewApi(this.layout), group);
|
|
6251
6347
|
panel.init({
|
|
@@ -6313,6 +6409,80 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6313
6409
|
}
|
|
6314
6410
|
}
|
|
6315
6411
|
|
|
6412
|
+
class ReactGroupControlsRendererPart {
|
|
6413
|
+
constructor(component, reactPortalStore, _group) {
|
|
6414
|
+
this.component = component;
|
|
6415
|
+
this.reactPortalStore = reactPortalStore;
|
|
6416
|
+
this._group = _group;
|
|
6417
|
+
this.mutableDisposable = new MutableDisposable();
|
|
6418
|
+
this._element = document.createElement('div');
|
|
6419
|
+
this._element.className = 'dockview-react-part';
|
|
6420
|
+
}
|
|
6421
|
+
get element() {
|
|
6422
|
+
return this._element;
|
|
6423
|
+
}
|
|
6424
|
+
get part() {
|
|
6425
|
+
return this._part;
|
|
6426
|
+
}
|
|
6427
|
+
get group() {
|
|
6428
|
+
return this._group;
|
|
6429
|
+
}
|
|
6430
|
+
focus() {
|
|
6431
|
+
// TODO
|
|
6432
|
+
}
|
|
6433
|
+
init(parameters) {
|
|
6434
|
+
this.mutableDisposable.value = new CompositeDisposable(this._group.model.onDidAddPanel(() => {
|
|
6435
|
+
this.updatePanels();
|
|
6436
|
+
}), this._group.model.onDidRemovePanel(() => {
|
|
6437
|
+
this.updatePanels();
|
|
6438
|
+
}), this._group.model.onDidActivePanelChange(() => {
|
|
6439
|
+
this.updateActivePanel();
|
|
6440
|
+
}), parameters.api.onDidActiveChange(() => {
|
|
6441
|
+
this.updateGroupActive();
|
|
6442
|
+
}));
|
|
6443
|
+
this._part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6444
|
+
api: parameters.api,
|
|
6445
|
+
containerApi: parameters.containerApi,
|
|
6446
|
+
panels: this._group.model.panels,
|
|
6447
|
+
activePanel: this._group.model.activePanel,
|
|
6448
|
+
isGroupActive: this._group.api.isActive,
|
|
6449
|
+
});
|
|
6450
|
+
}
|
|
6451
|
+
update(event) {
|
|
6452
|
+
var _a;
|
|
6453
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6454
|
+
}
|
|
6455
|
+
dispose() {
|
|
6456
|
+
var _a;
|
|
6457
|
+
this.mutableDisposable.dispose();
|
|
6458
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6459
|
+
}
|
|
6460
|
+
updatePanels() {
|
|
6461
|
+
this.update({ params: { panels: this._group.model.panels } });
|
|
6462
|
+
}
|
|
6463
|
+
updateActivePanel() {
|
|
6464
|
+
this.update({
|
|
6465
|
+
params: {
|
|
6466
|
+
activePanel: this._group.model.activePanel,
|
|
6467
|
+
},
|
|
6468
|
+
});
|
|
6469
|
+
}
|
|
6470
|
+
updateGroupActive() {
|
|
6471
|
+
this.update({
|
|
6472
|
+
params: {
|
|
6473
|
+
isGroupActive: this._group.api.isActive,
|
|
6474
|
+
},
|
|
6475
|
+
});
|
|
6476
|
+
}
|
|
6477
|
+
}
|
|
6478
|
+
|
|
6479
|
+
function createGroupControlElement(component, store) {
|
|
6480
|
+
return component
|
|
6481
|
+
? (groupPanel) => {
|
|
6482
|
+
return new ReactGroupControlsRendererPart(component, store, groupPanel);
|
|
6483
|
+
}
|
|
6484
|
+
: undefined;
|
|
6485
|
+
}
|
|
6316
6486
|
const DockviewReact = React__namespace.forwardRef((props, ref) => {
|
|
6317
6487
|
const domRef = React__namespace.useRef(null);
|
|
6318
6488
|
const dockviewRef = React__namespace.useRef();
|
|
@@ -6362,12 +6532,15 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6362
6532
|
const dockview = new DockviewComponent(element, {
|
|
6363
6533
|
frameworkComponentFactory: factory,
|
|
6364
6534
|
frameworkComponents: props.components,
|
|
6365
|
-
frameworkTabComponents: props.tabComponents,
|
|
6535
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6366
6536
|
tabHeight: props.tabHeight,
|
|
6367
6537
|
watermarkFrameworkComponent: props.watermarkComponent,
|
|
6538
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6368
6539
|
styles: props.hideBorders
|
|
6369
6540
|
? { separatorBorder: 'transparent' }
|
|
6370
6541
|
: undefined,
|
|
6542
|
+
showDndOverlay: props.showDndOverlay,
|
|
6543
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6371
6544
|
});
|
|
6372
6545
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6373
6546
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
@@ -6444,10 +6617,79 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6444
6617
|
disposable.dispose();
|
|
6445
6618
|
};
|
|
6446
6619
|
}, [props.onTabContextMenu]);
|
|
6620
|
+
React__namespace.useEffect(() => {
|
|
6621
|
+
if (!dockviewRef.current) {
|
|
6622
|
+
return;
|
|
6623
|
+
}
|
|
6624
|
+
dockviewRef.current.updateOptions({
|
|
6625
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6626
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6627
|
+
});
|
|
6628
|
+
}, [props.defaultTabComponent]);
|
|
6629
|
+
React__namespace.useEffect(() => {
|
|
6630
|
+
if (!dockviewRef.current) {
|
|
6631
|
+
return;
|
|
6632
|
+
}
|
|
6633
|
+
dockviewRef.current.updateOptions({
|
|
6634
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6635
|
+
});
|
|
6636
|
+
}, [props.groupControlComponent]);
|
|
6447
6637
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6448
6638
|
});
|
|
6449
6639
|
DockviewReact.displayName = 'DockviewComponent';
|
|
6450
6640
|
|
|
6641
|
+
/******************************************************************************
|
|
6642
|
+
Copyright (c) Microsoft Corporation.
|
|
6643
|
+
|
|
6644
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6645
|
+
purpose with or without fee is hereby granted.
|
|
6646
|
+
|
|
6647
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6648
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6649
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6650
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6651
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6652
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6653
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6654
|
+
***************************************************************************** */
|
|
6655
|
+
|
|
6656
|
+
function __rest(s, e) {
|
|
6657
|
+
var t = {};
|
|
6658
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6659
|
+
t[p] = s[p];
|
|
6660
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6661
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
6662
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
6663
|
+
t[p[i]] = s[p[i]];
|
|
6664
|
+
}
|
|
6665
|
+
return t;
|
|
6666
|
+
}
|
|
6667
|
+
|
|
6668
|
+
const CloseButton = () => (React__namespace.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
|
|
6669
|
+
React__namespace.createElement("path", { d: "M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z" })));
|
|
6670
|
+
|
|
6671
|
+
const DockviewDefaultTab = (_a) => {
|
|
6672
|
+
var { api, containerApi: _containerApi, params: _params } = _a, rest = __rest(_a, ["api", "containerApi", "params"]);
|
|
6673
|
+
const onClose = React__namespace.useCallback((event) => {
|
|
6674
|
+
event.stopPropagation();
|
|
6675
|
+
api.close();
|
|
6676
|
+
}, [api]);
|
|
6677
|
+
const onClick = React__namespace.useCallback((event) => {
|
|
6678
|
+
api.setActive();
|
|
6679
|
+
if (rest.onClick) {
|
|
6680
|
+
rest.onClick(event);
|
|
6681
|
+
}
|
|
6682
|
+
}, [api, rest.onClick]);
|
|
6683
|
+
const iconClassname = React__namespace.useMemo(() => {
|
|
6684
|
+
const cn = ['dockview-react-tab-action'];
|
|
6685
|
+
return cn.join(',');
|
|
6686
|
+
}, [api.suppressClosable]);
|
|
6687
|
+
return (React__namespace.createElement("div", Object.assign({}, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
6688
|
+
React__namespace.createElement("span", { className: "dockview-react-tab-title" }, api.title),
|
|
6689
|
+
React__namespace.createElement("div", { className: iconClassname, onClick: onClose },
|
|
6690
|
+
React__namespace.createElement(CloseButton, null))));
|
|
6691
|
+
};
|
|
6692
|
+
|
|
6451
6693
|
class ReactPanelView extends SplitviewPanel {
|
|
6452
6694
|
constructor(id, component, reactComponent, reactPortalStore) {
|
|
6453
6695
|
super(id, component);
|
|
@@ -6677,6 +6919,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6677
6919
|
createComponent,
|
|
6678
6920
|
},
|
|
6679
6921
|
},
|
|
6922
|
+
showDndOverlay: props.showDndOverlay,
|
|
6680
6923
|
});
|
|
6681
6924
|
const api = new PaneviewApi(paneview);
|
|
6682
6925
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6721,6 +6964,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6721
6964
|
disposable.dispose();
|
|
6722
6965
|
};
|
|
6723
6966
|
}, [props.onDidDrop]);
|
|
6967
|
+
React__namespace.useEffect(() => {
|
|
6968
|
+
if (!paneviewRef.current) {
|
|
6969
|
+
return;
|
|
6970
|
+
}
|
|
6971
|
+
paneviewRef.current.updateOptions({
|
|
6972
|
+
showDndOverlay: props.showDndOverlay,
|
|
6973
|
+
});
|
|
6974
|
+
}, [props.showDndOverlay]);
|
|
6724
6975
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6725
6976
|
});
|
|
6726
6977
|
PaneviewReact.displayName = 'PaneviewComponent';
|
|
@@ -6729,6 +6980,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6729
6980
|
exports.ContentContainer = ContentContainer;
|
|
6730
6981
|
exports.DockviewApi = DockviewApi;
|
|
6731
6982
|
exports.DockviewComponent = DockviewComponent;
|
|
6983
|
+
exports.DockviewDefaultTab = DockviewDefaultTab;
|
|
6732
6984
|
exports.DockviewReact = DockviewReact;
|
|
6733
6985
|
exports.Gridview = Gridview;
|
|
6734
6986
|
exports.GridviewApi = GridviewApi;
|
|
@@ -6745,8 +6997,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
6745
6997
|
exports.PaneviewComponent = PaneviewComponent;
|
|
6746
6998
|
exports.PaneviewPanel = PaneviewPanel;
|
|
6747
6999
|
exports.PaneviewReact = PaneviewReact;
|
|
6748
|
-
exports.ReactPanelContentPart = ReactPanelContentPart;
|
|
6749
|
-
exports.ReactPanelHeaderPart = ReactPanelHeaderPart;
|
|
6750
7000
|
exports.ReactPart = ReactPart;
|
|
6751
7001
|
exports.ReactPartContext = ReactPartContext;
|
|
6752
7002
|
exports.Splitview = Splitview;
|