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