dockview 1.4.3 → 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 +1 -1
- 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/dockviewComponent.d.ts +1 -1
- package/dist/cjs/dockview/dockviewComponent.js +7 -18
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +5 -0
- package/dist/cjs/groupview/groupview.d.ts +16 -15
- package/dist/cjs/groupview/groupview.js +24 -33
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/tab.d.ts +1 -0
- package/dist/cjs/groupview/tab.js +2 -1
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.js +1 -1
- 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 +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 +29 -5
- 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 +12 -1
- package/dist/cjs/paneview/paneviewComponent.js +13 -1
- 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 +3 -0
- 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/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 +327 -113
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +326 -112
- package/dist/dockview.cjs.js +327 -113
- package/dist/dockview.esm.js +327 -112
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +327 -113
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +326 -112
- 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/dockviewComponent.d.ts +1 -1
- package/dist/esm/dockview/dockviewComponent.js +7 -18
- package/dist/esm/dockview/options.d.ts +5 -0
- package/dist/esm/groupview/groupview.d.ts +16 -15
- package/dist/esm/groupview/groupview.js +23 -32
- package/dist/esm/groupview/tab.d.ts +1 -0
- package/dist/esm/groupview/tab.js +2 -1
- package/dist/esm/groupview/titlebar/tabsContainer.js +1 -1
- package/dist/esm/groupview/types.d.ts +0 -4
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +3 -0
- package/dist/esm/paneview/defaultPaneviewHeader.js +29 -5
- 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 +12 -1
- package/dist/esm/paneview/paneviewComponent.js +9 -1
- 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 +3 -0
- 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/svg.d.ts +3 -0
- package/dist/esm/svg.js +31 -0
- package/dist/styles/dockview.css +155 -42
- package/package.json +2 -2
package/dist/dockview.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.5.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .collapsed {\n transform: rotate(-90deg);\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.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
|
|
37
|
+
var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.actions-bar .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(0.5);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.tab .dockview-react-tab {\n display: flex;\n padding: 0px 8px;\n align-items: center;\n height: 100%;\n}\n.tab .dockview-react-tab .dockview-react-tab-title {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dockview-react-tab .dockview-react-tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dockview-react-tab .dockview-react-tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tab.inactive-tab:not(:hover) .dockview-react-tab-action {\n visibility: hidden;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
|
|
38
38
|
styleInject(css_248z);
|
|
39
39
|
|
|
40
40
|
class TransferObject {
|
|
@@ -2688,6 +2688,7 @@ class Tab extends CompositeDisposable {
|
|
|
2688
2688
|
constructor(panelId, accessor, group) {
|
|
2689
2689
|
super();
|
|
2690
2690
|
this.panelId = panelId;
|
|
2691
|
+
this.accessor = accessor;
|
|
2691
2692
|
this.group = group;
|
|
2692
2693
|
this._onChanged = new Emitter();
|
|
2693
2694
|
this.onChanged = this._onChanged.event;
|
|
@@ -2738,7 +2739,7 @@ class Tab extends CompositeDisposable {
|
|
|
2738
2739
|
validOverlays: 'none',
|
|
2739
2740
|
canDisplayOverlay: (event) => {
|
|
2740
2741
|
const data = getPanelData();
|
|
2741
|
-
if (data) {
|
|
2742
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2742
2743
|
return this.panelId !== data.panelId;
|
|
2743
2744
|
}
|
|
2744
2745
|
return this.group.model.canDisplayOverlay(event, DockviewDropTargets.Tab);
|
|
@@ -2796,7 +2797,7 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2796
2797
|
canDisplayOverlay: (event) => {
|
|
2797
2798
|
var _a;
|
|
2798
2799
|
const data = getPanelData();
|
|
2799
|
-
if (data) {
|
|
2800
|
+
if (data && this.accessor.id === data.viewId) {
|
|
2800
2801
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
2801
2802
|
return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
|
|
2802
2803
|
}
|
|
@@ -2953,12 +2954,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
2953
2954
|
}
|
|
2954
2955
|
}
|
|
2955
2956
|
|
|
2956
|
-
var GroupChangeKind2;
|
|
2957
|
-
(function (GroupChangeKind2) {
|
|
2958
|
-
GroupChangeKind2["ADD_PANEL"] = "ADD_PANEL";
|
|
2959
|
-
GroupChangeKind2["REMOVE_PANEL"] = "REMOVE_PANEL";
|
|
2960
|
-
GroupChangeKind2["PANEL_ACTIVE"] = "PANEL_ACTIVE";
|
|
2961
|
-
})(GroupChangeKind2 || (GroupChangeKind2 = {}));
|
|
2962
2957
|
class Groupview extends CompositeDisposable {
|
|
2963
2958
|
constructor(container, accessor, id, options, parent) {
|
|
2964
2959
|
super();
|
|
@@ -2977,12 +2972,15 @@ class Groupview extends CompositeDisposable {
|
|
|
2977
2972
|
this._panels = [];
|
|
2978
2973
|
this._onMove = new Emitter();
|
|
2979
2974
|
this.onMove = this._onMove.event;
|
|
2980
|
-
this._onDidGroupChange = new Emitter();
|
|
2981
|
-
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
2982
2975
|
this._onDidDrop = new Emitter();
|
|
2983
2976
|
this.onDidDrop = this._onDidDrop.event;
|
|
2977
|
+
this._onDidAddPanel = new Emitter();
|
|
2978
|
+
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
2979
|
+
this._onDidRemovePanel = new Emitter();
|
|
2980
|
+
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
2981
|
+
this._onDidActivePanelChange = new Emitter();
|
|
2982
|
+
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
2984
2983
|
this.container.classList.add('groupview');
|
|
2985
|
-
this.addDisposables(this._onMove, this._onDidGroupChange, this._onDidChange, this._onDidDrop);
|
|
2986
2984
|
this.tabsContainer = new TabsContainer(this.accessor, this.parent, {
|
|
2987
2985
|
tabHeight: options.tabHeight,
|
|
2988
2986
|
});
|
|
@@ -2994,7 +2992,7 @@ class Groupview extends CompositeDisposable {
|
|
|
2994
2992
|
return false;
|
|
2995
2993
|
}
|
|
2996
2994
|
const data = getPanelData();
|
|
2997
|
-
if (data) {
|
|
2995
|
+
if (data && data.viewId === this.accessor.id) {
|
|
2998
2996
|
const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;
|
|
2999
2997
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3000
2998
|
}
|
|
@@ -3004,7 +3002,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3004
3002
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
3005
3003
|
this.header.hidden = !!options.hideHeader;
|
|
3006
3004
|
this.locked = !!options.locked;
|
|
3007
|
-
this.addDisposables(this._onMove, this.
|
|
3005
|
+
this.addDisposables(this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange, this.tabsContainer.onDrop((event) => {
|
|
3008
3006
|
this.handleDropEvent(event.event, Position.Center, event.index);
|
|
3009
3007
|
}), this.contentContainer.onDidFocus(() => {
|
|
3010
3008
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
@@ -3076,6 +3074,15 @@ class Groupview extends CompositeDisposable {
|
|
|
3076
3074
|
// correctly initialized
|
|
3077
3075
|
this.setActive(this.isActive, true, true);
|
|
3078
3076
|
this.updateContainer();
|
|
3077
|
+
if (this.accessor.options.createGroupControlElement) {
|
|
3078
|
+
this._control = this.accessor.options.createGroupControlElement(this.parent);
|
|
3079
|
+
this.addDisposables(this._control);
|
|
3080
|
+
this._control.init({
|
|
3081
|
+
containerApi: new DockviewApi(this.accessor),
|
|
3082
|
+
api: this.parent.api,
|
|
3083
|
+
});
|
|
3084
|
+
this.tabsContainer.setActionElement(this._control.element);
|
|
3085
|
+
}
|
|
3079
3086
|
}
|
|
3080
3087
|
indexOf(panel) {
|
|
3081
3088
|
return this.tabsContainer.indexOf(panel.id);
|
|
@@ -3206,14 +3213,8 @@ class Groupview extends CompositeDisposable {
|
|
|
3206
3213
|
isPanelActive(panel) {
|
|
3207
3214
|
return this._activePanel === panel;
|
|
3208
3215
|
}
|
|
3209
|
-
updateActions() {
|
|
3210
|
-
|
|
3211
|
-
if (this.isActive && ((_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.actions)) {
|
|
3212
|
-
this.tabsContainer.setActionElement(this._activePanel.view.actions.element);
|
|
3213
|
-
}
|
|
3214
|
-
else {
|
|
3215
|
-
this.tabsContainer.setActionElement(undefined);
|
|
3216
|
-
}
|
|
3216
|
+
updateActions(element) {
|
|
3217
|
+
this.tabsContainer.setActionElement(element);
|
|
3217
3218
|
}
|
|
3218
3219
|
setActive(isGroupActive, skipFocus = false, force = false) {
|
|
3219
3220
|
var _a, _b;
|
|
@@ -3269,10 +3270,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3269
3270
|
if (this.mostRecentlyUsed.includes(panel)) {
|
|
3270
3271
|
this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
|
|
3271
3272
|
}
|
|
3272
|
-
this.
|
|
3273
|
-
kind: GroupChangeKind2.REMOVE_PANEL,
|
|
3274
|
-
panel,
|
|
3275
|
-
});
|
|
3273
|
+
this._onDidRemovePanel.fire({ panel });
|
|
3276
3274
|
}
|
|
3277
3275
|
doAddPanel(panel, index = this.panels.length, skipSetActive = false) {
|
|
3278
3276
|
const existingPanel = this._panels.indexOf(panel);
|
|
@@ -3289,10 +3287,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3289
3287
|
}
|
|
3290
3288
|
this.updateMru(panel);
|
|
3291
3289
|
this.panels.splice(index, 0, panel);
|
|
3292
|
-
this.
|
|
3293
|
-
kind: GroupChangeKind2.ADD_PANEL,
|
|
3294
|
-
panel,
|
|
3295
|
-
});
|
|
3290
|
+
this._onDidAddPanel.fire({ panel });
|
|
3296
3291
|
}
|
|
3297
3292
|
doSetActivePanel(panel) {
|
|
3298
3293
|
this._activePanel = panel;
|
|
@@ -3300,10 +3295,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3300
3295
|
this.tabsContainer.setActivePanel(panel);
|
|
3301
3296
|
panel.layout(this._width, this._height);
|
|
3302
3297
|
this.updateMru(panel);
|
|
3303
|
-
this.
|
|
3304
|
-
kind: GroupChangeKind2.PANEL_ACTIVE,
|
|
3305
|
-
panel,
|
|
3306
|
-
});
|
|
3298
|
+
this._onDidActivePanelChange.fire({ panel });
|
|
3307
3299
|
}
|
|
3308
3300
|
}
|
|
3309
3301
|
updateMru(panel) {
|
|
@@ -3313,7 +3305,6 @@ class Groupview extends CompositeDisposable {
|
|
|
3313
3305
|
this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];
|
|
3314
3306
|
}
|
|
3315
3307
|
updateContainer() {
|
|
3316
|
-
this.updateActions();
|
|
3317
3308
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
3318
3309
|
this.panels.forEach((panel) => panel.updateParentGroup(this.parent, this.isActive));
|
|
3319
3310
|
if (this.isEmpty && !this.watermark) {
|
|
@@ -3350,6 +3341,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3350
3341
|
nativeEvent: event,
|
|
3351
3342
|
target,
|
|
3352
3343
|
group: this.accessor.getPanel(this.id),
|
|
3344
|
+
getData: getPanelData,
|
|
3353
3345
|
});
|
|
3354
3346
|
}
|
|
3355
3347
|
return false;
|
|
@@ -3398,7 +3390,7 @@ class Groupview extends CompositeDisposable {
|
|
|
3398
3390
|
}
|
|
3399
3391
|
}
|
|
3400
3392
|
|
|
3401
|
-
const nextLayoutId = sequentialNumberGenerator();
|
|
3393
|
+
const nextLayoutId$1 = sequentialNumberGenerator();
|
|
3402
3394
|
function toTarget(direction) {
|
|
3403
3395
|
switch (direction) {
|
|
3404
3396
|
case 'left':
|
|
@@ -3418,7 +3410,7 @@ class BaseGrid extends CompositeDisposable {
|
|
|
3418
3410
|
constructor(_element, options) {
|
|
3419
3411
|
super();
|
|
3420
3412
|
this._element = _element;
|
|
3421
|
-
this._id = nextLayoutId.next();
|
|
3413
|
+
this._id = nextLayoutId$1.next();
|
|
3422
3414
|
this._groups = new Map();
|
|
3423
3415
|
this._onDidLayoutChange = new Emitter();
|
|
3424
3416
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
@@ -3878,6 +3870,38 @@ class ActionContainer {
|
|
|
3878
3870
|
}
|
|
3879
3871
|
}
|
|
3880
3872
|
|
|
3873
|
+
const createSvgElementFromPath = (params) => {
|
|
3874
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
3875
|
+
svg.setAttributeNS(null, 'height', params.height);
|
|
3876
|
+
svg.setAttributeNS(null, 'width', params.width);
|
|
3877
|
+
svg.setAttributeNS(null, 'viewBox', params.viewbox);
|
|
3878
|
+
svg.setAttributeNS(null, 'aria-hidden', 'false');
|
|
3879
|
+
svg.setAttributeNS(null, 'focusable', 'false');
|
|
3880
|
+
svg.classList.add('dockview-svg');
|
|
3881
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
3882
|
+
path.setAttributeNS(null, 'd', params.path);
|
|
3883
|
+
svg.appendChild(path);
|
|
3884
|
+
return svg;
|
|
3885
|
+
};
|
|
3886
|
+
const createCloseButton = () => createSvgElementFromPath({
|
|
3887
|
+
width: '11',
|
|
3888
|
+
height: '11',
|
|
3889
|
+
viewbox: '0 0 28 28',
|
|
3890
|
+
path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',
|
|
3891
|
+
});
|
|
3892
|
+
const createExpandMoreButton = () => createSvgElementFromPath({
|
|
3893
|
+
width: '11',
|
|
3894
|
+
height: '11',
|
|
3895
|
+
viewbox: '0 0 24 15',
|
|
3896
|
+
path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',
|
|
3897
|
+
});
|
|
3898
|
+
const createChevronRightButton = () => createSvgElementFromPath({
|
|
3899
|
+
width: '11',
|
|
3900
|
+
height: '11',
|
|
3901
|
+
viewbox: '0 0 15 25',
|
|
3902
|
+
path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',
|
|
3903
|
+
});
|
|
3904
|
+
|
|
3881
3905
|
class Watermark extends CompositeDisposable {
|
|
3882
3906
|
constructor() {
|
|
3883
3907
|
super();
|
|
@@ -3894,8 +3918,9 @@ class Watermark extends CompositeDisposable {
|
|
|
3894
3918
|
const actions = new ActionContainer();
|
|
3895
3919
|
title.appendChild(emptySpace);
|
|
3896
3920
|
title.appendChild(actions.element);
|
|
3897
|
-
const closeAnchor = document.createElement('
|
|
3921
|
+
const closeAnchor = document.createElement('div');
|
|
3898
3922
|
closeAnchor.className = 'close-action';
|
|
3923
|
+
closeAnchor.appendChild(createCloseButton());
|
|
3899
3924
|
actions.add(closeAnchor);
|
|
3900
3925
|
this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {
|
|
3901
3926
|
var _a;
|
|
@@ -3968,6 +3993,7 @@ function createComponent(id, componentName, components = {}, frameworkComponents
|
|
|
3968
3993
|
return new Component(id, componentName);
|
|
3969
3994
|
}
|
|
3970
3995
|
|
|
3996
|
+
const DEFAULT_TAB_IDENTIFIER = '__default__tab__';
|
|
3971
3997
|
class DefaultTab extends CompositeDisposable {
|
|
3972
3998
|
constructor() {
|
|
3973
3999
|
super();
|
|
@@ -3987,8 +4013,9 @@ class DefaultTab extends CompositeDisposable {
|
|
|
3987
4013
|
this._list = document.createElement('ul');
|
|
3988
4014
|
this._list.className = 'tab-list';
|
|
3989
4015
|
//
|
|
3990
|
-
this.action = document.createElement('
|
|
4016
|
+
this.action = document.createElement('div');
|
|
3991
4017
|
this.action.className = 'tab-action';
|
|
4018
|
+
this.action.appendChild(createCloseButton());
|
|
3992
4019
|
//
|
|
3993
4020
|
this._element.appendChild(this._content);
|
|
3994
4021
|
this._element.appendChild(this._actionContainer);
|
|
@@ -4004,7 +4031,7 @@ class DefaultTab extends CompositeDisposable {
|
|
|
4004
4031
|
return this._element;
|
|
4005
4032
|
}
|
|
4006
4033
|
get id() {
|
|
4007
|
-
return
|
|
4034
|
+
return DEFAULT_TAB_IDENTIFIER;
|
|
4008
4035
|
}
|
|
4009
4036
|
update(event) {
|
|
4010
4037
|
this.params = Object.assign(Object.assign({}, this.params), event.params);
|
|
@@ -4321,16 +4348,6 @@ class DefaultGroupPanelView {
|
|
|
4321
4348
|
var _a;
|
|
4322
4349
|
this._content = renderers.content;
|
|
4323
4350
|
this._tab = (_a = renderers.tab) !== null && _a !== void 0 ? _a : new DefaultTab();
|
|
4324
|
-
this._actions =
|
|
4325
|
-
renderers.actions ||
|
|
4326
|
-
(this.content.actions
|
|
4327
|
-
? {
|
|
4328
|
-
element: this.content.actions,
|
|
4329
|
-
dispose: () => {
|
|
4330
|
-
//
|
|
4331
|
-
},
|
|
4332
|
-
}
|
|
4333
|
-
: undefined);
|
|
4334
4351
|
}
|
|
4335
4352
|
get content() {
|
|
4336
4353
|
return this._content;
|
|
@@ -4338,9 +4355,6 @@ class DefaultGroupPanelView {
|
|
|
4338
4355
|
get tab() {
|
|
4339
4356
|
return this._tab;
|
|
4340
4357
|
}
|
|
4341
|
-
get actions() {
|
|
4342
|
-
return this._actions;
|
|
4343
|
-
}
|
|
4344
4358
|
init(params) {
|
|
4345
4359
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
4346
4360
|
this.tab.init(params);
|
|
@@ -4358,16 +4372,18 @@ class DefaultGroupPanelView {
|
|
|
4358
4372
|
this.tab.update(event);
|
|
4359
4373
|
}
|
|
4360
4374
|
toJSON() {
|
|
4375
|
+
let tab = this.tab instanceof DefaultTab ? undefined : this.tab.toJSON();
|
|
4376
|
+
if (tab && Object.keys(tab).length === 0) {
|
|
4377
|
+
tab = undefined;
|
|
4378
|
+
}
|
|
4361
4379
|
return {
|
|
4362
4380
|
content: this.content.toJSON(),
|
|
4363
|
-
tab
|
|
4381
|
+
tab,
|
|
4364
4382
|
};
|
|
4365
4383
|
}
|
|
4366
4384
|
dispose() {
|
|
4367
|
-
var _a;
|
|
4368
4385
|
this.content.dispose();
|
|
4369
4386
|
this.tab.dispose();
|
|
4370
|
-
(_a = this.actions) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
4371
4387
|
}
|
|
4372
4388
|
}
|
|
4373
4389
|
|
|
@@ -4782,22 +4798,12 @@ class DockviewComponent extends BaseGrid {
|
|
|
4782
4798
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
4783
4799
|
}), view.model.onDidDrop((event) => {
|
|
4784
4800
|
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));
|
|
4785
|
-
}), view.model.
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
break;
|
|
4792
|
-
case GroupChangeKind2.REMOVE_PANEL:
|
|
4793
|
-
if (event.panel) {
|
|
4794
|
-
this._onDidRemovePanel.fire(event.panel);
|
|
4795
|
-
}
|
|
4796
|
-
break;
|
|
4797
|
-
case GroupChangeKind2.PANEL_ACTIVE:
|
|
4798
|
-
this._onDidActivePanelChange.fire(event.panel);
|
|
4799
|
-
break;
|
|
4800
|
-
}
|
|
4801
|
+
}), view.model.onDidAddPanel((event) => {
|
|
4802
|
+
this._onDidAddPanel.fire(event.panel);
|
|
4803
|
+
}), view.model.onDidRemovePanel((event) => {
|
|
4804
|
+
this._onDidRemovePanel.fire(event.panel);
|
|
4805
|
+
}), view.model.onDidActivePanelChange((event) => {
|
|
4806
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
4801
4807
|
}));
|
|
4802
4808
|
this._groups.set(view.id, { value: view, disposable });
|
|
4803
4809
|
}
|
|
@@ -4812,7 +4818,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
4812
4818
|
createPanel(options, group) {
|
|
4813
4819
|
const view = new DefaultGroupPanelView({
|
|
4814
4820
|
content: this.createContentComponent(options.id, options.component),
|
|
4815
|
-
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
4821
|
+
tab: this.createTabComponent(options.id, options.tabComponent || this.options.defaultTabComponent),
|
|
4816
4822
|
});
|
|
4817
4823
|
const panel = new DockviewGroupPanel(options.id, this, this._api, group);
|
|
4818
4824
|
panel.init({
|
|
@@ -5565,8 +5571,9 @@ class PaneviewPanel extends BasePanelView {
|
|
|
5565
5571
|
}
|
|
5566
5572
|
|
|
5567
5573
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
5568
|
-
constructor(id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5574
|
+
constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5569
5575
|
super(id, component, headerComponent, orientation, isExpanded, true);
|
|
5576
|
+
this.accessor = accessor;
|
|
5570
5577
|
this._onDidDrop = new Emitter();
|
|
5571
5578
|
this.onDidDrop = this._onDidDrop.event;
|
|
5572
5579
|
if (!disableDnd) {
|
|
@@ -5578,10 +5585,11 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5578
5585
|
return;
|
|
5579
5586
|
}
|
|
5580
5587
|
const id = this.id;
|
|
5588
|
+
const accessorId = this.accessor.id;
|
|
5581
5589
|
this.header.draggable = true;
|
|
5582
5590
|
this.handler = new (class PaneDragHandler extends DragHandler {
|
|
5583
5591
|
getData() {
|
|
5584
|
-
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(
|
|
5592
|
+
LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);
|
|
5585
5593
|
return {
|
|
5586
5594
|
dispose: () => {
|
|
5587
5595
|
LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);
|
|
@@ -5591,12 +5599,22 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5591
5599
|
})(this.header);
|
|
5592
5600
|
this.target = new Droptarget(this.element, {
|
|
5593
5601
|
validOverlays: 'vertical',
|
|
5594
|
-
canDisplayOverlay: () => {
|
|
5602
|
+
canDisplayOverlay: (event) => {
|
|
5595
5603
|
const data = getPaneData();
|
|
5596
|
-
if (
|
|
5597
|
-
|
|
5604
|
+
if (data) {
|
|
5605
|
+
if (data.paneId !== this.id &&
|
|
5606
|
+
data.viewId === this.accessor.id) {
|
|
5607
|
+
return true;
|
|
5608
|
+
}
|
|
5609
|
+
}
|
|
5610
|
+
if (this.accessor.options.showDndOverlay) {
|
|
5611
|
+
return this.accessor.options.showDndOverlay({
|
|
5612
|
+
nativeEvent: event,
|
|
5613
|
+
getData: getPaneData,
|
|
5614
|
+
panel: this,
|
|
5615
|
+
});
|
|
5598
5616
|
}
|
|
5599
|
-
return
|
|
5617
|
+
return false;
|
|
5600
5618
|
},
|
|
5601
5619
|
});
|
|
5602
5620
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
@@ -5605,8 +5623,10 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5605
5623
|
}
|
|
5606
5624
|
onDrop(event) {
|
|
5607
5625
|
const data = getPaneData();
|
|
5608
|
-
if (!data) {
|
|
5609
|
-
|
|
5626
|
+
if (!data || data.viewId !== this.accessor.id) {
|
|
5627
|
+
// if there is no local drag event for this panel
|
|
5628
|
+
// or if the drag event was creating by another Paneview instance
|
|
5629
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5610
5630
|
return;
|
|
5611
5631
|
}
|
|
5612
5632
|
const containerApi = this._params
|
|
@@ -5614,7 +5634,8 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5614
5634
|
const panelId = data.paneId;
|
|
5615
5635
|
const existingPanel = containerApi.getPanel(panelId);
|
|
5616
5636
|
if (!existingPanel) {
|
|
5617
|
-
|
|
5637
|
+
// if the panel doesn't exist
|
|
5638
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData }));
|
|
5618
5639
|
return;
|
|
5619
5640
|
}
|
|
5620
5641
|
const allPanels = containerApi.panels;
|
|
@@ -5638,12 +5659,15 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
5638
5659
|
class DefaultHeader extends CompositeDisposable {
|
|
5639
5660
|
constructor() {
|
|
5640
5661
|
super();
|
|
5662
|
+
this._expandedIcon = createExpandMoreButton();
|
|
5663
|
+
this._collapsedIcon = createChevronRightButton();
|
|
5641
5664
|
this.disposable = new MutableDisposable();
|
|
5642
5665
|
this.apiRef = { api: null };
|
|
5643
5666
|
this._element = document.createElement('div');
|
|
5644
5667
|
this.element.className = 'default-header';
|
|
5645
5668
|
this._content = document.createElement('span');
|
|
5646
|
-
this._expander = document.createElement('
|
|
5669
|
+
this._expander = document.createElement('div');
|
|
5670
|
+
this._expander.className = 'dockview-pane-header-icon';
|
|
5647
5671
|
this.element.appendChild(this._expander);
|
|
5648
5672
|
this.element.appendChild(this._content);
|
|
5649
5673
|
this.addDisposables(addDisposableListener(this._element, 'click', () => {
|
|
@@ -5657,12 +5681,32 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5657
5681
|
init(params) {
|
|
5658
5682
|
this.apiRef.api = params.api;
|
|
5659
5683
|
this._content.textContent = params.title;
|
|
5660
|
-
this.
|
|
5661
|
-
|
|
5662
|
-
|
|
5663
|
-
toggleClass(this._expander, 'collapsed', !e.isExpanded);
|
|
5684
|
+
this.updateIcon();
|
|
5685
|
+
this.disposable.value = params.api.onDidExpansionChange(() => {
|
|
5686
|
+
this.updateIcon();
|
|
5664
5687
|
});
|
|
5665
5688
|
}
|
|
5689
|
+
updateIcon() {
|
|
5690
|
+
var _a;
|
|
5691
|
+
const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);
|
|
5692
|
+
toggleClass(this._expander, 'collapsed', !isExpanded);
|
|
5693
|
+
if (isExpanded) {
|
|
5694
|
+
if (this._expander.contains(this._collapsedIcon)) {
|
|
5695
|
+
this._collapsedIcon.remove();
|
|
5696
|
+
}
|
|
5697
|
+
if (!this._expander.contains(this._expandedIcon)) {
|
|
5698
|
+
this._expander.appendChild(this._expandedIcon);
|
|
5699
|
+
}
|
|
5700
|
+
}
|
|
5701
|
+
else {
|
|
5702
|
+
if (this._expander.contains(this._expandedIcon)) {
|
|
5703
|
+
this._expandedIcon.remove();
|
|
5704
|
+
}
|
|
5705
|
+
if (!this._expander.contains(this._collapsedIcon)) {
|
|
5706
|
+
this._expander.appendChild(this._collapsedIcon);
|
|
5707
|
+
}
|
|
5708
|
+
}
|
|
5709
|
+
}
|
|
5666
5710
|
update(_params) {
|
|
5667
5711
|
//
|
|
5668
5712
|
}
|
|
@@ -5672,9 +5716,10 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
5672
5716
|
}
|
|
5673
5717
|
}
|
|
5674
5718
|
|
|
5719
|
+
const nextLayoutId = sequentialNumberGenerator();
|
|
5675
5720
|
class PaneFramework extends DraggablePaneviewPanel {
|
|
5676
5721
|
constructor(options) {
|
|
5677
|
-
super(options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5722
|
+
super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
|
|
5678
5723
|
this.options = options;
|
|
5679
5724
|
}
|
|
5680
5725
|
getBodyComponent() {
|
|
@@ -5688,6 +5733,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5688
5733
|
constructor(element, options) {
|
|
5689
5734
|
super();
|
|
5690
5735
|
this.element = element;
|
|
5736
|
+
this._id = nextLayoutId.next();
|
|
5691
5737
|
this._disposable = new MutableDisposable();
|
|
5692
5738
|
this._viewDisposables = new Map();
|
|
5693
5739
|
this._onDidLayoutfromJSON = new Emitter();
|
|
@@ -5714,6 +5760,9 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5714
5760
|
});
|
|
5715
5761
|
this.addDisposables(this._disposable);
|
|
5716
5762
|
}
|
|
5763
|
+
get id() {
|
|
5764
|
+
return this._id;
|
|
5765
|
+
}
|
|
5717
5766
|
get panels() {
|
|
5718
5767
|
return this.paneview.getPanes();
|
|
5719
5768
|
}
|
|
@@ -5778,6 +5827,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5778
5827
|
orientation: Orientation.VERTICAL,
|
|
5779
5828
|
isExpanded: !!options.isExpanded,
|
|
5780
5829
|
disableDnd: !!this.options.disableDnd,
|
|
5830
|
+
accessor: this,
|
|
5781
5831
|
});
|
|
5782
5832
|
this.doAddPanel(view);
|
|
5783
5833
|
const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
|
|
@@ -5872,6 +5922,7 @@ class PaneviewComponent extends CompositeDisposable {
|
|
|
5872
5922
|
orientation: Orientation.VERTICAL,
|
|
5873
5923
|
isExpanded: !!view.expanded,
|
|
5874
5924
|
disableDnd: !!this.options.disableDnd,
|
|
5925
|
+
accessor: this,
|
|
5875
5926
|
});
|
|
5876
5927
|
this.doAddPanel(panel);
|
|
5877
5928
|
queue.push(() => {
|
|
@@ -6071,15 +6122,21 @@ class ReactPart {
|
|
|
6071
6122
|
this.component = component;
|
|
6072
6123
|
this.parameters = parameters;
|
|
6073
6124
|
this.context = context;
|
|
6125
|
+
this._initialProps = {};
|
|
6074
6126
|
this.disposed = false;
|
|
6075
6127
|
this.createPortal();
|
|
6076
6128
|
}
|
|
6077
6129
|
update(props) {
|
|
6078
|
-
var _a;
|
|
6079
6130
|
if (this.disposed) {
|
|
6080
6131
|
throw new Error('invalid operation: resource is already disposed');
|
|
6081
6132
|
}
|
|
6082
|
-
(
|
|
6133
|
+
if (!this.componentInstance) {
|
|
6134
|
+
// if the component is yet to be mounted store the props
|
|
6135
|
+
this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
|
|
6136
|
+
}
|
|
6137
|
+
else {
|
|
6138
|
+
this.componentInstance.update(props);
|
|
6139
|
+
}
|
|
6083
6140
|
}
|
|
6084
6141
|
createPortal() {
|
|
6085
6142
|
if (this.disposed) {
|
|
@@ -6099,6 +6156,10 @@ class ReactPart {
|
|
|
6099
6156
|
componentProps: this.parameters,
|
|
6100
6157
|
ref: (element) => {
|
|
6101
6158
|
this.componentInstance = element;
|
|
6159
|
+
if (Object.keys(this._initialProps).length > 0) {
|
|
6160
|
+
this.componentInstance.update(this._initialProps);
|
|
6161
|
+
this._initialProps = {}; // don't keep a reference to the users object once no longer required
|
|
6162
|
+
}
|
|
6102
6163
|
},
|
|
6103
6164
|
});
|
|
6104
6165
|
const node = this.context
|
|
@@ -6155,30 +6216,19 @@ class ReactPanelContentPart {
|
|
|
6155
6216
|
this.onDidBlur = this._onDidBlur.event;
|
|
6156
6217
|
this._element = document.createElement('div');
|
|
6157
6218
|
this._element.className = 'dockview-react-part';
|
|
6158
|
-
this._actionsElement = document.createElement('div');
|
|
6159
|
-
this._actionsElement.className = 'dockview-react-part';
|
|
6160
6219
|
}
|
|
6161
6220
|
get element() {
|
|
6162
6221
|
return this._element;
|
|
6163
6222
|
}
|
|
6164
|
-
get actions() {
|
|
6165
|
-
return this._actionsElement;
|
|
6166
|
-
}
|
|
6167
6223
|
focus() {
|
|
6168
6224
|
// TODO
|
|
6169
6225
|
}
|
|
6170
6226
|
init(parameters) {
|
|
6171
|
-
const context = {
|
|
6172
|
-
api: parameters.api,
|
|
6173
|
-
containerApi: parameters.containerApi,
|
|
6174
|
-
actionsPortalElement: this._actionsElement,
|
|
6175
|
-
tabPortalElement: parameters.tab,
|
|
6176
|
-
};
|
|
6177
6227
|
this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6178
6228
|
params: parameters.params,
|
|
6179
6229
|
api: parameters.api,
|
|
6180
6230
|
containerApi: parameters.containerApi,
|
|
6181
|
-
}
|
|
6231
|
+
});
|
|
6182
6232
|
}
|
|
6183
6233
|
toJSON() {
|
|
6184
6234
|
return {
|
|
@@ -6196,11 +6246,10 @@ class ReactPanelContentPart {
|
|
|
6196
6246
|
// noop
|
|
6197
6247
|
}
|
|
6198
6248
|
dispose() {
|
|
6199
|
-
var _a
|
|
6249
|
+
var _a;
|
|
6200
6250
|
this._onDidFocus.dispose();
|
|
6201
6251
|
this._onDidBlur.dispose();
|
|
6202
6252
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6203
|
-
(_b = this.actionsPart) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
6204
6253
|
}
|
|
6205
6254
|
}
|
|
6206
6255
|
|
|
@@ -6230,6 +6279,9 @@ class ReactPanelHeaderPart {
|
|
|
6230
6279
|
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6231
6280
|
}
|
|
6232
6281
|
toJSON() {
|
|
6282
|
+
if (this.id === DEFAULT_TAB_IDENTIFIER) {
|
|
6283
|
+
return {};
|
|
6284
|
+
}
|
|
6233
6285
|
return {
|
|
6234
6286
|
id: this.id,
|
|
6235
6287
|
};
|
|
@@ -6251,17 +6303,25 @@ class ReactPanelDeserialzier {
|
|
|
6251
6303
|
this.layout = layout;
|
|
6252
6304
|
}
|
|
6253
6305
|
fromJSON(panelData, group) {
|
|
6254
|
-
var _a, _b, _c;
|
|
6306
|
+
var _a, _b, _c, _d;
|
|
6255
6307
|
const panelId = panelData.id;
|
|
6256
6308
|
const params = panelData.params;
|
|
6257
6309
|
const title = panelData.title;
|
|
6258
6310
|
const suppressClosable = panelData.suppressClosable;
|
|
6259
6311
|
const viewData = panelData.view;
|
|
6312
|
+
let tab;
|
|
6313
|
+
if ((_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id) {
|
|
6314
|
+
tab = createComponent(viewData.tab.id, viewData.tab.id, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_b = this.layout.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.tab, () => new DefaultTab());
|
|
6315
|
+
}
|
|
6316
|
+
else if (this.layout.options.defaultTabComponent) {
|
|
6317
|
+
tab = createComponent(this.layout.options.defaultTabComponent, this.layout.options.defaultTabComponent, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_c = this.layout.options.frameworkComponentFactory) === null || _c === void 0 ? void 0 : _c.tab, () => new DefaultTab());
|
|
6318
|
+
}
|
|
6319
|
+
else {
|
|
6320
|
+
tab = new DefaultTab();
|
|
6321
|
+
}
|
|
6260
6322
|
const view = new DefaultGroupPanelView({
|
|
6261
|
-
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (
|
|
6262
|
-
tab
|
|
6263
|
-
? 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)
|
|
6264
|
-
: new DefaultTab(),
|
|
6323
|
+
content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (_d = this.layout.options.frameworkComponentFactory) === null || _d === void 0 ? void 0 : _d.content),
|
|
6324
|
+
tab,
|
|
6265
6325
|
});
|
|
6266
6326
|
const panel = new DockviewGroupPanel(panelId, this.layout, new DockviewApi(this.layout), group);
|
|
6267
6327
|
panel.init({
|
|
@@ -6329,6 +6389,80 @@ class ReactWatermarkPart {
|
|
|
6329
6389
|
}
|
|
6330
6390
|
}
|
|
6331
6391
|
|
|
6392
|
+
class ReactGroupControlsRendererPart {
|
|
6393
|
+
constructor(component, reactPortalStore, _group) {
|
|
6394
|
+
this.component = component;
|
|
6395
|
+
this.reactPortalStore = reactPortalStore;
|
|
6396
|
+
this._group = _group;
|
|
6397
|
+
this.mutableDisposable = new MutableDisposable();
|
|
6398
|
+
this._element = document.createElement('div');
|
|
6399
|
+
this._element.className = 'dockview-react-part';
|
|
6400
|
+
}
|
|
6401
|
+
get element() {
|
|
6402
|
+
return this._element;
|
|
6403
|
+
}
|
|
6404
|
+
get part() {
|
|
6405
|
+
return this._part;
|
|
6406
|
+
}
|
|
6407
|
+
get group() {
|
|
6408
|
+
return this._group;
|
|
6409
|
+
}
|
|
6410
|
+
focus() {
|
|
6411
|
+
// TODO
|
|
6412
|
+
}
|
|
6413
|
+
init(parameters) {
|
|
6414
|
+
this.mutableDisposable.value = new CompositeDisposable(this._group.model.onDidAddPanel(() => {
|
|
6415
|
+
this.updatePanels();
|
|
6416
|
+
}), this._group.model.onDidRemovePanel(() => {
|
|
6417
|
+
this.updatePanels();
|
|
6418
|
+
}), this._group.model.onDidActivePanelChange(() => {
|
|
6419
|
+
this.updateActivePanel();
|
|
6420
|
+
}), parameters.api.onDidActiveChange(() => {
|
|
6421
|
+
this.updateGroupActive();
|
|
6422
|
+
}));
|
|
6423
|
+
this._part = new ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
6424
|
+
api: parameters.api,
|
|
6425
|
+
containerApi: parameters.containerApi,
|
|
6426
|
+
panels: this._group.model.panels,
|
|
6427
|
+
activePanel: this._group.model.activePanel,
|
|
6428
|
+
isGroupActive: this._group.api.isActive,
|
|
6429
|
+
});
|
|
6430
|
+
}
|
|
6431
|
+
update(event) {
|
|
6432
|
+
var _a;
|
|
6433
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
|
|
6434
|
+
}
|
|
6435
|
+
dispose() {
|
|
6436
|
+
var _a;
|
|
6437
|
+
this.mutableDisposable.dispose();
|
|
6438
|
+
(_a = this._part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
6439
|
+
}
|
|
6440
|
+
updatePanels() {
|
|
6441
|
+
this.update({ params: { panels: this._group.model.panels } });
|
|
6442
|
+
}
|
|
6443
|
+
updateActivePanel() {
|
|
6444
|
+
this.update({
|
|
6445
|
+
params: {
|
|
6446
|
+
activePanel: this._group.model.activePanel,
|
|
6447
|
+
},
|
|
6448
|
+
});
|
|
6449
|
+
}
|
|
6450
|
+
updateGroupActive() {
|
|
6451
|
+
this.update({
|
|
6452
|
+
params: {
|
|
6453
|
+
isGroupActive: this._group.api.isActive,
|
|
6454
|
+
},
|
|
6455
|
+
});
|
|
6456
|
+
}
|
|
6457
|
+
}
|
|
6458
|
+
|
|
6459
|
+
function createGroupControlElement(component, store) {
|
|
6460
|
+
return component
|
|
6461
|
+
? (groupPanel) => {
|
|
6462
|
+
return new ReactGroupControlsRendererPart(component, store, groupPanel);
|
|
6463
|
+
}
|
|
6464
|
+
: undefined;
|
|
6465
|
+
}
|
|
6332
6466
|
const DockviewReact = React.forwardRef((props, ref) => {
|
|
6333
6467
|
const domRef = React.useRef(null);
|
|
6334
6468
|
const dockviewRef = React.useRef();
|
|
@@ -6378,12 +6512,15 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
6378
6512
|
const dockview = new DockviewComponent(element, {
|
|
6379
6513
|
frameworkComponentFactory: factory,
|
|
6380
6514
|
frameworkComponents: props.components,
|
|
6381
|
-
frameworkTabComponents: props.tabComponents,
|
|
6515
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6382
6516
|
tabHeight: props.tabHeight,
|
|
6383
6517
|
watermarkFrameworkComponent: props.watermarkComponent,
|
|
6518
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6384
6519
|
styles: props.hideBorders
|
|
6385
6520
|
? { separatorBorder: 'transparent' }
|
|
6386
6521
|
: undefined,
|
|
6522
|
+
showDndOverlay: props.showDndOverlay,
|
|
6523
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6387
6524
|
});
|
|
6388
6525
|
(_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
|
|
6389
6526
|
dockview.deserializer = new ReactPanelDeserialzier(dockview);
|
|
@@ -6460,10 +6597,79 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
6460
6597
|
disposable.dispose();
|
|
6461
6598
|
};
|
|
6462
6599
|
}, [props.onTabContextMenu]);
|
|
6600
|
+
React.useEffect(() => {
|
|
6601
|
+
if (!dockviewRef.current) {
|
|
6602
|
+
return;
|
|
6603
|
+
}
|
|
6604
|
+
dockviewRef.current.updateOptions({
|
|
6605
|
+
defaultTabComponent: DEFAULT_TAB_IDENTIFIER,
|
|
6606
|
+
frameworkTabComponents: Object.assign(Object.assign({}, (props.tabComponents || {})), { [DEFAULT_TAB_IDENTIFIER]: props.defaultTabComponent }),
|
|
6607
|
+
});
|
|
6608
|
+
}, [props.defaultTabComponent]);
|
|
6609
|
+
React.useEffect(() => {
|
|
6610
|
+
if (!dockviewRef.current) {
|
|
6611
|
+
return;
|
|
6612
|
+
}
|
|
6613
|
+
dockviewRef.current.updateOptions({
|
|
6614
|
+
createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
|
|
6615
|
+
});
|
|
6616
|
+
}, [props.groupControlComponent]);
|
|
6463
6617
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6464
6618
|
});
|
|
6465
6619
|
DockviewReact.displayName = 'DockviewComponent';
|
|
6466
6620
|
|
|
6621
|
+
/******************************************************************************
|
|
6622
|
+
Copyright (c) Microsoft Corporation.
|
|
6623
|
+
|
|
6624
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6625
|
+
purpose with or without fee is hereby granted.
|
|
6626
|
+
|
|
6627
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6628
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6629
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6630
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6631
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6632
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6633
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6634
|
+
***************************************************************************** */
|
|
6635
|
+
|
|
6636
|
+
function __rest(s, e) {
|
|
6637
|
+
var t = {};
|
|
6638
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6639
|
+
t[p] = s[p];
|
|
6640
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6641
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
6642
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
6643
|
+
t[p[i]] = s[p[i]];
|
|
6644
|
+
}
|
|
6645
|
+
return t;
|
|
6646
|
+
}
|
|
6647
|
+
|
|
6648
|
+
const CloseButton = () => (React.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
|
|
6649
|
+
React.createElement("path", { d: "M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z" })));
|
|
6650
|
+
|
|
6651
|
+
const DockviewDefaultTab = (_a) => {
|
|
6652
|
+
var { api, containerApi: _containerApi, params: _params } = _a, rest = __rest(_a, ["api", "containerApi", "params"]);
|
|
6653
|
+
const onClose = React.useCallback((event) => {
|
|
6654
|
+
event.stopPropagation();
|
|
6655
|
+
api.close();
|
|
6656
|
+
}, [api]);
|
|
6657
|
+
const onClick = React.useCallback((event) => {
|
|
6658
|
+
api.setActive();
|
|
6659
|
+
if (rest.onClick) {
|
|
6660
|
+
rest.onClick(event);
|
|
6661
|
+
}
|
|
6662
|
+
}, [api, rest.onClick]);
|
|
6663
|
+
const iconClassname = React.useMemo(() => {
|
|
6664
|
+
const cn = ['dockview-react-tab-action'];
|
|
6665
|
+
return cn.join(',');
|
|
6666
|
+
}, [api.suppressClosable]);
|
|
6667
|
+
return (React.createElement("div", Object.assign({}, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
6668
|
+
React.createElement("span", { className: "dockview-react-tab-title" }, api.title),
|
|
6669
|
+
React.createElement("div", { className: iconClassname, onClick: onClose },
|
|
6670
|
+
React.createElement(CloseButton, null))));
|
|
6671
|
+
};
|
|
6672
|
+
|
|
6467
6673
|
class ReactPanelView extends SplitviewPanel {
|
|
6468
6674
|
constructor(id, component, reactComponent, reactPortalStore) {
|
|
6469
6675
|
super(id, component);
|
|
@@ -6693,6 +6899,7 @@ const PaneviewReact = React.forwardRef((props, ref) => {
|
|
|
6693
6899
|
createComponent,
|
|
6694
6900
|
},
|
|
6695
6901
|
},
|
|
6902
|
+
showDndOverlay: props.showDndOverlay,
|
|
6696
6903
|
});
|
|
6697
6904
|
const api = new PaneviewApi(paneview);
|
|
6698
6905
|
const { clientWidth, clientHeight } = domRef.current;
|
|
@@ -6737,8 +6944,16 @@ const PaneviewReact = React.forwardRef((props, ref) => {
|
|
|
6737
6944
|
disposable.dispose();
|
|
6738
6945
|
};
|
|
6739
6946
|
}, [props.onDidDrop]);
|
|
6947
|
+
React.useEffect(() => {
|
|
6948
|
+
if (!paneviewRef.current) {
|
|
6949
|
+
return;
|
|
6950
|
+
}
|
|
6951
|
+
paneviewRef.current.updateOptions({
|
|
6952
|
+
showDndOverlay: props.showDndOverlay,
|
|
6953
|
+
});
|
|
6954
|
+
}, [props.showDndOverlay]);
|
|
6740
6955
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6741
6956
|
});
|
|
6742
6957
|
PaneviewReact.displayName = 'PaneviewComponent';
|
|
6743
6958
|
|
|
6744
|
-
export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewDropTargets, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact,
|
|
6959
|
+
export { BaseGrid, ContentContainer, DockviewApi, DockviewComponent, DockviewDefaultTab, DockviewDropTargets, DockviewReact, Event, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, Groupview, LayoutPriority, LocalSelectionTransfer, MouseEventKind, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, Position, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isReactElement, orthogonal, toTarget, usePortalsLifecycle };
|