dockview-core 1.9.2 → 1.10.1
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/dist/cjs/api/component.api.d.ts +35 -8
- package/dist/cjs/api/component.api.js +37 -7
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
- package/dist/cjs/api/dockviewPanelApi.d.ts +24 -7
- package/dist/cjs/api/dockviewPanelApi.js +60 -14
- package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -4
- package/dist/cjs/api/panelApi.d.ts +10 -8
- package/dist/cjs/api/panelApi.js +19 -29
- package/dist/cjs/api/paneviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/paneviewPanelApi.js +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/splitviewPanelApi.js +0 -1
- package/dist/cjs/array.d.ts +0 -1
- package/dist/cjs/array.js +0 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +0 -1
- package/dist/cjs/dnd/dataTransfer.js +0 -1
- package/dist/cjs/dnd/dnd.d.ts +0 -1
- package/dist/cjs/dnd/dnd.js +0 -1
- package/dist/cjs/dnd/droptarget.d.ts +20 -9
- package/dist/cjs/dnd/droptarget.js +71 -14
- package/dist/cjs/dnd/ghost.d.ts +0 -1
- package/dist/cjs/dnd/ghost.js +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/groupDragHandler.js +1 -2
- package/dist/cjs/dnd/overlay.d.ts +0 -1
- package/dist/cjs/dnd/overlay.js +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts +0 -1
- package/dist/cjs/dockview/components/panel/content.js +6 -7
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts +5 -13
- package/dist/cjs/dockview/components/tab/tab.js +5 -6
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +26 -22
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +5 -6
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js +0 -1
- package/dist/cjs/dockview/deserializer.d.ts +0 -1
- package/dist/cjs/dockview/deserializer.js +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +86 -25
- package/dist/cjs/dockview/dockviewComponent.js +586 -198
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +6 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +81 -37
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +226 -57
- package/dist/cjs/dockview/dockviewPanel.d.ts +8 -3
- package/dist/cjs/dockview/dockviewPanel.js +39 -12
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/cjs/dockview/dockviewPanelModel.js +2 -22
- package/dist/cjs/dockview/options.d.ts +10 -6
- package/dist/cjs/dockview/options.js +0 -1
- package/dist/cjs/dockview/types.d.ts +0 -11
- package/dist/cjs/dockview/types.js +0 -9
- package/dist/cjs/dom.d.ts +0 -1
- package/dist/cjs/dom.js +0 -1
- package/dist/cjs/events.d.ts +10 -1
- package/dist/cjs/events.js +25 -2
- package/dist/cjs/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/cjs/gridview/baseComponentGridview.js +37 -27
- package/dist/cjs/gridview/basePanelView.d.ts +0 -1
- package/dist/cjs/gridview/basePanelView.js +7 -2
- package/dist/cjs/gridview/branchNode.d.ts +3 -2
- package/dist/cjs/gridview/branchNode.js +12 -2
- package/dist/cjs/gridview/gridview.d.ts +5 -3
- package/dist/cjs/gridview/gridview.js +54 -21
- package/dist/cjs/gridview/gridviewComponent.d.ts +10 -2
- package/dist/cjs/gridview/gridviewComponent.js +14 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
- package/dist/cjs/gridview/gridviewPanel.js +2 -3
- package/dist/cjs/gridview/leafNode.d.ts +0 -1
- package/dist/cjs/gridview/leafNode.js +0 -1
- package/dist/cjs/gridview/options.d.ts +1 -2
- package/dist/cjs/gridview/options.js +0 -1
- package/dist/cjs/gridview/types.d.ts +0 -1
- package/dist/cjs/gridview/types.js +0 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/lifecycle.d.ts +3 -4
- package/dist/cjs/lifecycle.js +5 -2
- package/dist/cjs/math.d.ts +0 -1
- package/dist/cjs/math.js +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts +1 -1
- package/dist/cjs/overlayRenderContainer.js +8 -4
- package/dist/cjs/panel/componentFactory.d.ts +0 -1
- package/dist/cjs/panel/componentFactory.js +0 -1
- package/dist/cjs/panel/types.d.ts +1 -2
- package/dist/cjs/panel/types.js +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/cjs/paneview/options.d.ts +1 -2
- package/dist/cjs/paneview/options.js +0 -1
- package/dist/cjs/paneview/paneview.d.ts +1 -1
- package/dist/cjs/paneview/paneview.js +3 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -1
- package/dist/cjs/paneview/paneviewComponent.js +6 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -1
- package/dist/cjs/paneview/paneviewPanel.js +5 -2
- package/dist/cjs/popoutWindow.d.ts +15 -4
- package/dist/cjs/popoutWindow.js +140 -56
- package/dist/cjs/resizable.d.ts +1 -2
- package/dist/cjs/resizable.js +1 -10
- package/dist/cjs/splitview/options.d.ts +3 -7
- package/dist/cjs/splitview/options.js +0 -1
- package/dist/cjs/splitview/splitview.d.ts +3 -1
- package/dist/cjs/splitview/splitview.js +12 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +1 -2
- package/dist/cjs/splitview/splitviewComponent.js +5 -6
- package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
- package/dist/cjs/splitview/splitviewPanel.js +1 -2
- package/dist/cjs/splitview/viewItem.d.ts +0 -1
- package/dist/cjs/splitview/viewItem.js +0 -1
- package/dist/cjs/svg.d.ts +0 -1
- package/dist/cjs/svg.js +0 -1
- package/dist/cjs/types.d.ts +0 -1
- package/dist/cjs/types.js +0 -1
- package/dist/dockview-core.amd.js +1298 -531
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +1297 -530
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +1298 -531
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +1296 -532
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +1298 -531
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +1297 -530
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +35 -8
- package/dist/esm/api/component.api.js +29 -7
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
- package/dist/esm/api/dockviewPanelApi.d.ts +24 -7
- package/dist/esm/api/dockviewPanelApi.js +56 -14
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
- package/dist/esm/api/gridviewPanelApi.js +1 -4
- package/dist/esm/api/panelApi.d.ts +10 -8
- package/dist/esm/api/panelApi.js +16 -29
- package/dist/esm/api/paneviewPanelApi.d.ts +0 -1
- package/dist/esm/api/paneviewPanelApi.js +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
- package/dist/esm/api/splitviewPanelApi.js +0 -1
- package/dist/esm/array.d.ts +0 -1
- package/dist/esm/array.js +0 -1
- package/dist/esm/constants.d.ts +0 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/esm/dnd/abstractDragHandler.js +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts +0 -1
- package/dist/esm/dnd/dataTransfer.js +0 -1
- package/dist/esm/dnd/dnd.d.ts +0 -1
- package/dist/esm/dnd/dnd.js +0 -1
- package/dist/esm/dnd/droptarget.d.ts +20 -9
- package/dist/esm/dnd/droptarget.js +59 -14
- package/dist/esm/dnd/ghost.d.ts +0 -1
- package/dist/esm/dnd/ghost.js +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts +0 -1
- package/dist/esm/dnd/groupDragHandler.js +1 -2
- package/dist/esm/dnd/overlay.d.ts +0 -1
- package/dist/esm/dnd/overlay.js +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts +0 -1
- package/dist/esm/dockview/components/panel/content.js +6 -7
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts +5 -13
- package/dist/esm/dockview/components/tab/tab.js +6 -7
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +24 -20
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/esm/dockview/components/titlebar/voidContainer.js +6 -7
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js +0 -1
- package/dist/esm/dockview/deserializer.d.ts +0 -1
- package/dist/esm/dockview/deserializer.js +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +86 -25
- package/dist/esm/dockview/dockviewComponent.js +529 -163
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js +6 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +81 -37
- package/dist/esm/dockview/dockviewGroupPanelModel.js +169 -53
- package/dist/esm/dockview/dockviewPanel.d.ts +8 -3
- package/dist/esm/dockview/dockviewPanel.js +39 -12
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/esm/dockview/dockviewPanelModel.js +2 -22
- package/dist/esm/dockview/options.d.ts +10 -6
- package/dist/esm/dockview/options.js +0 -1
- package/dist/esm/dockview/types.d.ts +0 -11
- package/dist/esm/dockview/types.js +1 -8
- package/dist/esm/dom.d.ts +0 -1
- package/dist/esm/dom.js +0 -1
- package/dist/esm/events.d.ts +10 -1
- package/dist/esm/events.js +14 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/esm/gridview/baseComponentGridview.js +33 -27
- package/dist/esm/gridview/basePanelView.d.ts +0 -1
- package/dist/esm/gridview/basePanelView.js +7 -2
- package/dist/esm/gridview/branchNode.d.ts +3 -2
- package/dist/esm/gridview/branchNode.js +8 -2
- package/dist/esm/gridview/gridview.d.ts +5 -3
- package/dist/esm/gridview/gridview.js +49 -20
- package/dist/esm/gridview/gridviewComponent.d.ts +10 -2
- package/dist/esm/gridview/gridviewComponent.js +14 -1
- package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
- package/dist/esm/gridview/gridviewPanel.js +2 -3
- package/dist/esm/gridview/leafNode.d.ts +0 -1
- package/dist/esm/gridview/leafNode.js +0 -1
- package/dist/esm/gridview/options.d.ts +1 -2
- package/dist/esm/gridview/options.js +0 -1
- package/dist/esm/gridview/types.d.ts +0 -1
- package/dist/esm/gridview/types.js +0 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/lifecycle.d.ts +3 -4
- package/dist/esm/lifecycle.js +5 -2
- package/dist/esm/math.d.ts +0 -1
- package/dist/esm/math.js +0 -1
- package/dist/esm/overlayRenderContainer.d.ts +1 -1
- package/dist/esm/overlayRenderContainer.js +8 -4
- package/dist/esm/panel/componentFactory.d.ts +0 -1
- package/dist/esm/panel/componentFactory.js +0 -1
- package/dist/esm/panel/types.d.ts +1 -2
- package/dist/esm/panel/types.js +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/esm/paneview/options.d.ts +1 -2
- package/dist/esm/paneview/options.js +0 -1
- package/dist/esm/paneview/paneview.d.ts +1 -1
- package/dist/esm/paneview/paneview.js +3 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -1
- package/dist/esm/paneview/paneviewComponent.js +6 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -1
- package/dist/esm/paneview/paneviewPanel.js +5 -2
- package/dist/esm/popoutWindow.d.ts +15 -4
- package/dist/esm/popoutWindow.js +105 -52
- package/dist/esm/resizable.d.ts +1 -2
- package/dist/esm/resizable.js +1 -10
- package/dist/esm/splitview/options.d.ts +3 -7
- package/dist/esm/splitview/options.js +0 -1
- package/dist/esm/splitview/splitview.d.ts +3 -1
- package/dist/esm/splitview/splitview.js +8 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +1 -2
- package/dist/esm/splitview/splitviewComponent.js +5 -6
- package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
- package/dist/esm/splitview/splitviewPanel.js +1 -2
- package/dist/esm/splitview/viewItem.d.ts +0 -1
- package/dist/esm/splitview/viewItem.js +0 -1
- package/dist/esm/svg.d.ts +0 -1
- package/dist/esm/svg.js +0 -1
- package/dist/esm/types.d.ts +0 -1
- package/dist/esm/types.js +0 -1
- package/dist/styles/dockview.css +20 -6
- package/package.json +3 -3
- package/dist/cjs/api/component.api.d.ts.map +0 -1
- package/dist/cjs/api/component.api.js.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.js.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.js.map +0 -1
- package/dist/cjs/api/panelApi.d.ts.map +0 -1
- package/dist/cjs/api/panelApi.js.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.js.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.js.map +0 -1
- package/dist/cjs/array.d.ts.map +0 -1
- package/dist/cjs/array.js.map +0 -1
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js.map +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/cjs/dnd/dataTransfer.js.map +0 -1
- package/dist/cjs/dnd/dnd.d.ts.map +0 -1
- package/dist/cjs/dnd/dnd.js.map +0 -1
- package/dist/cjs/dnd/droptarget.d.ts.map +0 -1
- package/dist/cjs/dnd/droptarget.js.map +0 -1
- package/dist/cjs/dnd/ghost.d.ts.map +0 -1
- package/dist/cjs/dnd/ghost.js.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.js.map +0 -1
- package/dist/cjs/dnd/overlay.d.ts.map +0 -1
- package/dist/cjs/dnd/overlay.js.map +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/cjs/dockview/components/panel/content.js.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/cjs/dockview/deserializer.d.ts.map +0 -1
- package/dist/cjs/dockview/deserializer.js.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.js.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +0 -50
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/options.d.ts.map +0 -1
- package/dist/cjs/dockview/options.js.map +0 -1
- package/dist/cjs/dockview/types.d.ts.map +0 -1
- package/dist/cjs/dockview/types.js.map +0 -1
- package/dist/cjs/dom.d.ts.map +0 -1
- package/dist/cjs/dom.js.map +0 -1
- package/dist/cjs/events.d.ts.map +0 -1
- package/dist/cjs/events.js.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +0 -1
- package/dist/cjs/gridview/basePanelView.d.ts.map +0 -1
- package/dist/cjs/gridview/basePanelView.js.map +0 -1
- package/dist/cjs/gridview/branchNode.d.ts.map +0 -1
- package/dist/cjs/gridview/branchNode.js.map +0 -1
- package/dist/cjs/gridview/gridview.d.ts.map +0 -1
- package/dist/cjs/gridview/gridview.js.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.js.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.js.map +0 -1
- package/dist/cjs/gridview/leafNode.d.ts.map +0 -1
- package/dist/cjs/gridview/leafNode.js.map +0 -1
- package/dist/cjs/gridview/options.d.ts.map +0 -1
- package/dist/cjs/gridview/options.js.map +0 -1
- package/dist/cjs/gridview/types.d.ts.map +0 -1
- package/dist/cjs/gridview/types.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lifecycle.d.ts.map +0 -1
- package/dist/cjs/lifecycle.js.map +0 -1
- package/dist/cjs/math.d.ts.map +0 -1
- package/dist/cjs/math.js.map +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts.map +0 -1
- package/dist/cjs/overlayRenderContainer.js.map +0 -1
- package/dist/cjs/panel/componentFactory.d.ts.map +0 -1
- package/dist/cjs/panel/componentFactory.js.map +0 -1
- package/dist/cjs/panel/types.d.ts.map +0 -1
- package/dist/cjs/panel/types.js.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/cjs/paneview/options.d.ts.map +0 -1
- package/dist/cjs/paneview/options.js.map +0 -1
- package/dist/cjs/paneview/paneview.d.ts.map +0 -1
- package/dist/cjs/paneview/paneview.js.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.js.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.js.map +0 -1
- package/dist/cjs/popoutWindow.d.ts.map +0 -1
- package/dist/cjs/popoutWindow.js.map +0 -1
- package/dist/cjs/resizable.d.ts.map +0 -1
- package/dist/cjs/resizable.js.map +0 -1
- package/dist/cjs/splitview/options.d.ts.map +0 -1
- package/dist/cjs/splitview/options.js.map +0 -1
- package/dist/cjs/splitview/splitview.d.ts.map +0 -1
- package/dist/cjs/splitview/splitview.js.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.js.map +0 -1
- package/dist/cjs/splitview/viewItem.d.ts.map +0 -1
- package/dist/cjs/splitview/viewItem.js.map +0 -1
- package/dist/cjs/svg.d.ts.map +0 -1
- package/dist/cjs/svg.js.map +0 -1
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js.map +0 -1
- package/dist/esm/api/component.api.d.ts.map +0 -1
- package/dist/esm/api/component.api.js.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/esm/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewPanelApi.js.map +0 -1
- package/dist/esm/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/gridviewPanelApi.js.map +0 -1
- package/dist/esm/api/panelApi.d.ts.map +0 -1
- package/dist/esm/api/panelApi.js.map +0 -1
- package/dist/esm/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/paneviewPanelApi.js.map +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/splitviewPanelApi.js.map +0 -1
- package/dist/esm/array.d.ts.map +0 -1
- package/dist/esm/array.js.map +0 -1
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.js.map +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/esm/dnd/dataTransfer.js.map +0 -1
- package/dist/esm/dnd/dnd.d.ts.map +0 -1
- package/dist/esm/dnd/dnd.js.map +0 -1
- package/dist/esm/dnd/droptarget.d.ts.map +0 -1
- package/dist/esm/dnd/droptarget.js.map +0 -1
- package/dist/esm/dnd/ghost.d.ts.map +0 -1
- package/dist/esm/dnd/ghost.js.map +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/groupDragHandler.js.map +0 -1
- package/dist/esm/dnd/overlay.d.ts.map +0 -1
- package/dist/esm/dnd/overlay.js.map +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/esm/dockview/components/panel/content.js.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/tab.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/esm/dockview/deserializer.d.ts.map +0 -1
- package/dist/esm/dockview/deserializer.js.map +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewComponent.js.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js +0 -28
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/esm/dockview/options.d.ts.map +0 -1
- package/dist/esm/dockview/options.js.map +0 -1
- package/dist/esm/dockview/types.d.ts.map +0 -1
- package/dist/esm/dockview/types.js.map +0 -1
- package/dist/esm/dom.d.ts.map +0 -1
- package/dist/esm/dom.js.map +0 -1
- package/dist/esm/events.d.ts.map +0 -1
- package/dist/esm/events.js.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.js.map +0 -1
- package/dist/esm/gridview/basePanelView.d.ts.map +0 -1
- package/dist/esm/gridview/basePanelView.js.map +0 -1
- package/dist/esm/gridview/branchNode.d.ts.map +0 -1
- package/dist/esm/gridview/branchNode.js.map +0 -1
- package/dist/esm/gridview/gridview.d.ts.map +0 -1
- package/dist/esm/gridview/gridview.js.map +0 -1
- package/dist/esm/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewComponent.js.map +0 -1
- package/dist/esm/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewPanel.js.map +0 -1
- package/dist/esm/gridview/leafNode.d.ts.map +0 -1
- package/dist/esm/gridview/leafNode.js.map +0 -1
- package/dist/esm/gridview/options.d.ts.map +0 -1
- package/dist/esm/gridview/options.js.map +0 -1
- package/dist/esm/gridview/types.d.ts.map +0 -1
- package/dist/esm/gridview/types.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lifecycle.d.ts.map +0 -1
- package/dist/esm/lifecycle.js.map +0 -1
- package/dist/esm/math.d.ts.map +0 -1
- package/dist/esm/math.js.map +0 -1
- package/dist/esm/overlayRenderContainer.d.ts.map +0 -1
- package/dist/esm/overlayRenderContainer.js.map +0 -1
- package/dist/esm/panel/componentFactory.d.ts.map +0 -1
- package/dist/esm/panel/componentFactory.js.map +0 -1
- package/dist/esm/panel/types.d.ts.map +0 -1
- package/dist/esm/panel/types.js.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/esm/paneview/options.d.ts.map +0 -1
- package/dist/esm/paneview/options.js.map +0 -1
- package/dist/esm/paneview/paneview.d.ts.map +0 -1
- package/dist/esm/paneview/paneview.js.map +0 -1
- package/dist/esm/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewComponent.js.map +0 -1
- package/dist/esm/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewPanel.js.map +0 -1
- package/dist/esm/popoutWindow.d.ts.map +0 -1
- package/dist/esm/popoutWindow.js.map +0 -1
- package/dist/esm/resizable.d.ts.map +0 -1
- package/dist/esm/resizable.js.map +0 -1
- package/dist/esm/splitview/options.d.ts.map +0 -1
- package/dist/esm/splitview/options.js.map +0 -1
- package/dist/esm/splitview/splitview.d.ts.map +0 -1
- package/dist/esm/splitview/splitview.js.map +0 -1
- package/dist/esm/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewComponent.js.map +0 -1
- package/dist/esm/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewPanel.js.map +0 -1
- package/dist/esm/splitview/viewItem.d.ts.map +0 -1
- package/dist/esm/splitview/viewItem.js.map +0 -1
- package/dist/esm/svg.d.ts.map +0 -1
- package/dist/esm/svg.js.map +0 -1
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.10.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -31,7 +31,7 @@ function styleInject(css, ref) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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\n.dockview-theme-replit {\n --dv-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit.dv-dockview {\n padding: 3px;\n}\n.dockview-theme-replit .view:has(> .groupview) {\n padding: 3px;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-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: 1000;\n pointer-events: none;\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.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\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.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\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 min-height: 0;\n outline: none;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\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.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\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 user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):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:not(.disabled):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 background-color: var(--dv-background-color);\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.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* 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:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-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.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.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\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.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\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}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .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.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
34
|
+
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\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\n.dockview-theme-replit {\n --dv-background-color: black;\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-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-gap-size: 3px;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-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: 1000;\n pointer-events: none;\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.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:last-child) {\n border-right: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:first-child) {\n border-left: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:last-child) {\n border-bottom: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:first-child) {\n border-top: var(--dv-group-gap-size) solid transparent;\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.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\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 min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\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.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\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 user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):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:not(.disabled):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 background-color: var(--dv-background-color);\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.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* 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:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-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.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.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\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.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\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}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .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.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
35
35
|
styleInject(css_248z);
|
|
36
36
|
|
|
37
37
|
class TransferObject {
|
|
@@ -116,6 +116,17 @@ var Event;
|
|
|
116
116
|
};
|
|
117
117
|
};
|
|
118
118
|
})(Event || (Event = {}));
|
|
119
|
+
class DockviewEvent {
|
|
120
|
+
constructor() {
|
|
121
|
+
this._defaultPrevented = false;
|
|
122
|
+
}
|
|
123
|
+
get defaultPrevented() {
|
|
124
|
+
return this._defaultPrevented;
|
|
125
|
+
}
|
|
126
|
+
preventDefault() {
|
|
127
|
+
this._defaultPrevented = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
119
130
|
class LeakageMonitor {
|
|
120
131
|
constructor() {
|
|
121
132
|
this.events = new Map();
|
|
@@ -159,6 +170,9 @@ class Emitter {
|
|
|
159
170
|
}
|
|
160
171
|
Emitter.ENABLE_TRACKING = isEnabled;
|
|
161
172
|
}
|
|
173
|
+
get value() {
|
|
174
|
+
return this._last;
|
|
175
|
+
}
|
|
162
176
|
constructor(options) {
|
|
163
177
|
this.options = options;
|
|
164
178
|
this._listeners = [];
|
|
@@ -281,8 +295,12 @@ class CompositeDisposable {
|
|
|
281
295
|
args.forEach((arg) => this._disposables.push(arg));
|
|
282
296
|
}
|
|
283
297
|
dispose() {
|
|
284
|
-
this.
|
|
298
|
+
if (this._isDisposed) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
285
301
|
this._isDisposed = true;
|
|
302
|
+
this._disposables.forEach((arg) => arg.dispose());
|
|
303
|
+
this._disposables = [];
|
|
286
304
|
}
|
|
287
305
|
}
|
|
288
306
|
class MutableDisposable {
|
|
@@ -766,6 +784,13 @@ class Splitview {
|
|
|
766
784
|
this._endSnappingEnabled = endSnappingEnabled;
|
|
767
785
|
this.updateSashEnablement();
|
|
768
786
|
}
|
|
787
|
+
get disabled() {
|
|
788
|
+
return this._disabled;
|
|
789
|
+
}
|
|
790
|
+
set disabled(value) {
|
|
791
|
+
this._disabled = value;
|
|
792
|
+
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
793
|
+
}
|
|
769
794
|
constructor(container, options) {
|
|
770
795
|
this.container = container;
|
|
771
796
|
this.viewItems = [];
|
|
@@ -776,6 +801,7 @@ class Splitview {
|
|
|
776
801
|
this._proportions = undefined;
|
|
777
802
|
this._startSnappingEnabled = true;
|
|
778
803
|
this._endSnappingEnabled = true;
|
|
804
|
+
this._disabled = false;
|
|
779
805
|
this._onDidSashEnd = new Emitter();
|
|
780
806
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
781
807
|
this._onDidAddView = new Emitter();
|
|
@@ -1450,6 +1476,9 @@ class Paneview extends CompositeDisposable {
|
|
|
1450
1476
|
this._onDidChange.fire();
|
|
1451
1477
|
}));
|
|
1452
1478
|
}
|
|
1479
|
+
setViewVisible(index, visible) {
|
|
1480
|
+
this.splitview.setViewVisible(index, visible);
|
|
1481
|
+
}
|
|
1453
1482
|
addPane(pane, size, index = this.splitview.length, skipLayout = false) {
|
|
1454
1483
|
const disposable = pane.onDidChangeExpansionState(() => {
|
|
1455
1484
|
this.setupAnimation();
|
|
@@ -1703,7 +1732,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1703
1732
|
}
|
|
1704
1733
|
return LayoutPriority.Normal;
|
|
1705
1734
|
}
|
|
1706
|
-
|
|
1735
|
+
get disabled() {
|
|
1736
|
+
return this.splitview.disabled;
|
|
1737
|
+
}
|
|
1738
|
+
set disabled(value) {
|
|
1739
|
+
this.splitview.disabled = value;
|
|
1740
|
+
}
|
|
1741
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {
|
|
1707
1742
|
super();
|
|
1708
1743
|
this.orientation = orientation;
|
|
1709
1744
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1748,6 +1783,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1748
1783
|
styles,
|
|
1749
1784
|
});
|
|
1750
1785
|
}
|
|
1786
|
+
this.disabled = disabled;
|
|
1751
1787
|
this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {
|
|
1752
1788
|
this._onDidChange.fire({});
|
|
1753
1789
|
}));
|
|
@@ -1881,7 +1917,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1881
1917
|
}
|
|
1882
1918
|
function flipNode(node, size, orthogonalSize) {
|
|
1883
1919
|
if (node instanceof BranchNode) {
|
|
1884
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);
|
|
1920
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1885
1921
|
let totalSize = 0;
|
|
1886
1922
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1887
1923
|
const child = node.children[i];
|
|
@@ -2017,31 +2053,57 @@ class Gridview {
|
|
|
2017
2053
|
get maximumHeight() {
|
|
2018
2054
|
return this.root.maximumHeight;
|
|
2019
2055
|
}
|
|
2056
|
+
get locked() {
|
|
2057
|
+
return this._locked;
|
|
2058
|
+
}
|
|
2059
|
+
set locked(value) {
|
|
2060
|
+
this._locked = value;
|
|
2061
|
+
const branch = [this.root];
|
|
2062
|
+
/**
|
|
2063
|
+
* simple depth-first-search to cover all nodes
|
|
2064
|
+
*
|
|
2065
|
+
* @see https://en.wikipedia.org/wiki/Depth-first_search
|
|
2066
|
+
*/
|
|
2067
|
+
while (branch.length > 0) {
|
|
2068
|
+
const node = branch.pop();
|
|
2069
|
+
if (node instanceof BranchNode) {
|
|
2070
|
+
node.disabled = value;
|
|
2071
|
+
branch.push(...node.children);
|
|
2072
|
+
}
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2020
2075
|
maximizedView() {
|
|
2021
2076
|
var _a;
|
|
2022
|
-
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.view;
|
|
2077
|
+
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
2023
2078
|
}
|
|
2024
2079
|
hasMaximizedView() {
|
|
2025
2080
|
return this._maximizedNode !== undefined;
|
|
2026
2081
|
}
|
|
2027
2082
|
maximizeView(view) {
|
|
2083
|
+
var _a;
|
|
2028
2084
|
const location = getGridLocation(view.element);
|
|
2029
2085
|
const [_, node] = this.getNode(location);
|
|
2030
2086
|
if (!(node instanceof LeafNode)) {
|
|
2031
2087
|
return;
|
|
2032
2088
|
}
|
|
2033
|
-
if (this._maximizedNode === node) {
|
|
2089
|
+
if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {
|
|
2034
2090
|
return;
|
|
2035
2091
|
}
|
|
2036
2092
|
if (this.hasMaximizedView()) {
|
|
2037
2093
|
this.exitMaximizedView();
|
|
2038
2094
|
}
|
|
2095
|
+
const hiddenOnMaximize = [];
|
|
2039
2096
|
function hideAllViewsBut(parent, exclude) {
|
|
2040
2097
|
for (let i = 0; i < parent.children.length; i++) {
|
|
2041
2098
|
const child = parent.children[i];
|
|
2042
2099
|
if (child instanceof LeafNode) {
|
|
2043
2100
|
if (child !== exclude) {
|
|
2044
|
-
parent.
|
|
2101
|
+
if (parent.isChildVisible(i)) {
|
|
2102
|
+
parent.setChildVisible(i, false);
|
|
2103
|
+
}
|
|
2104
|
+
else {
|
|
2105
|
+
hiddenOnMaximize.push(child);
|
|
2106
|
+
}
|
|
2045
2107
|
}
|
|
2046
2108
|
}
|
|
2047
2109
|
else {
|
|
@@ -2050,18 +2112,21 @@ class Gridview {
|
|
|
2050
2112
|
}
|
|
2051
2113
|
}
|
|
2052
2114
|
hideAllViewsBut(this.root, node);
|
|
2053
|
-
this._maximizedNode = node;
|
|
2054
|
-
this.
|
|
2115
|
+
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2116
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2055
2117
|
}
|
|
2056
2118
|
exitMaximizedView() {
|
|
2057
2119
|
if (!this._maximizedNode) {
|
|
2058
2120
|
return;
|
|
2059
2121
|
}
|
|
2122
|
+
const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;
|
|
2060
2123
|
function showViewsInReverseOrder(parent) {
|
|
2061
2124
|
for (let index = parent.children.length - 1; index >= 0; index--) {
|
|
2062
2125
|
const child = parent.children[index];
|
|
2063
2126
|
if (child instanceof LeafNode) {
|
|
2064
|
-
|
|
2127
|
+
if (!hiddenOnMaximize.includes(child)) {
|
|
2128
|
+
parent.setChildVisible(index, true);
|
|
2129
|
+
}
|
|
2065
2130
|
}
|
|
2066
2131
|
else {
|
|
2067
2132
|
showViewsInReverseOrder(child);
|
|
@@ -2070,13 +2135,13 @@ class Gridview {
|
|
|
2070
2135
|
}
|
|
2071
2136
|
showViewsInReverseOrder(this.root);
|
|
2072
2137
|
this._maximizedNode = undefined;
|
|
2073
|
-
this.
|
|
2138
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2074
2139
|
}
|
|
2075
2140
|
serialize() {
|
|
2076
2141
|
if (this.hasMaximizedView()) {
|
|
2077
2142
|
/**
|
|
2078
|
-
* do not persist maximized view state
|
|
2079
|
-
*
|
|
2143
|
+
* do not persist maximized view state
|
|
2144
|
+
* firstly exit any maximized views to ensure the correct dimensions are persisted
|
|
2080
2145
|
*/
|
|
2081
2146
|
this.exitMaximizedView();
|
|
2082
2147
|
}
|
|
@@ -2091,14 +2156,14 @@ class Gridview {
|
|
|
2091
2156
|
dispose() {
|
|
2092
2157
|
this.disposable.dispose();
|
|
2093
2158
|
this._onDidChange.dispose();
|
|
2094
|
-
this.
|
|
2159
|
+
this._onDidMaximizedNodeChange.dispose();
|
|
2095
2160
|
this.root.dispose();
|
|
2096
2161
|
this._maximizedNode = undefined;
|
|
2097
2162
|
this.element.remove();
|
|
2098
2163
|
}
|
|
2099
2164
|
clear() {
|
|
2100
2165
|
const orientation = this.root.orientation;
|
|
2101
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);
|
|
2166
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);
|
|
2102
2167
|
}
|
|
2103
2168
|
deserialize(json, deserializer) {
|
|
2104
2169
|
const orientation = json.orientation;
|
|
@@ -2119,8 +2184,8 @@ class Gridview {
|
|
|
2119
2184
|
};
|
|
2120
2185
|
});
|
|
2121
2186
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2122
|
-
orthogonalSize, // <- size - flips at each depth
|
|
2123
|
-
children);
|
|
2187
|
+
orthogonalSize, // <- size - flips at each depth,
|
|
2188
|
+
this._locked, children);
|
|
2124
2189
|
}
|
|
2125
2190
|
else {
|
|
2126
2191
|
result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);
|
|
@@ -2153,7 +2218,7 @@ class Gridview {
|
|
|
2153
2218
|
}
|
|
2154
2219
|
const oldRoot = this.root;
|
|
2155
2220
|
oldRoot.element.remove();
|
|
2156
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);
|
|
2221
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);
|
|
2157
2222
|
if (oldRoot.children.length === 0) ;
|
|
2158
2223
|
else if (oldRoot.children.length === 1) {
|
|
2159
2224
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2221,15 +2286,16 @@ class Gridview {
|
|
|
2221
2286
|
constructor(proportionalLayout, styles, orientation) {
|
|
2222
2287
|
this.proportionalLayout = proportionalLayout;
|
|
2223
2288
|
this.styles = styles;
|
|
2289
|
+
this._locked = false;
|
|
2224
2290
|
this._maximizedNode = undefined;
|
|
2225
2291
|
this.disposable = new MutableDisposable();
|
|
2226
2292
|
this._onDidChange = new Emitter();
|
|
2227
2293
|
this.onDidChange = this._onDidChange.event;
|
|
2228
|
-
this.
|
|
2229
|
-
this.
|
|
2294
|
+
this._onDidMaximizedNodeChange = new Emitter();
|
|
2295
|
+
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2230
2296
|
this.element = document.createElement('div');
|
|
2231
2297
|
this.element.className = 'grid-view';
|
|
2232
|
-
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);
|
|
2298
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);
|
|
2233
2299
|
}
|
|
2234
2300
|
isViewVisible(location) {
|
|
2235
2301
|
const [rest, index] = tail(location);
|
|
@@ -2280,7 +2346,7 @@ class Gridview {
|
|
|
2280
2346
|
}
|
|
2281
2347
|
const child = grandParent.removeChild(parentIndex);
|
|
2282
2348
|
child.dispose();
|
|
2283
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);
|
|
2349
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);
|
|
2284
2350
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2285
2351
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2286
2352
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2908,13 +2974,36 @@ class DockviewApi {
|
|
|
2908
2974
|
return this.component.onDidDrop;
|
|
2909
2975
|
}
|
|
2910
2976
|
/**
|
|
2911
|
-
* Invoked
|
|
2977
|
+
* Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and
|
|
2978
|
+
* prevent the event from occuring using the standard `preventDefault()` syntax.
|
|
2979
|
+
*
|
|
2980
|
+
* Preventing certain events may causes unexpected behaviours, use carefully.
|
|
2981
|
+
*/
|
|
2982
|
+
get onWillDrop() {
|
|
2983
|
+
return this.component.onWillDrop;
|
|
2984
|
+
}
|
|
2985
|
+
/**
|
|
2986
|
+
* Invoked before an overlay is shown indicating a drop target.
|
|
2987
|
+
*
|
|
2988
|
+
* Calling `event.preventDefault()` will prevent the overlay being shown and prevent
|
|
2989
|
+
* the any subsequent drop event.
|
|
2990
|
+
*/
|
|
2991
|
+
get onWillShowOverlay() {
|
|
2992
|
+
return this.component.onWillShowOverlay;
|
|
2993
|
+
}
|
|
2994
|
+
/**
|
|
2995
|
+
* Invoked before a group is dragged.
|
|
2996
|
+
*
|
|
2997
|
+
* Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.
|
|
2998
|
+
*
|
|
2912
2999
|
*/
|
|
2913
3000
|
get onWillDragGroup() {
|
|
2914
3001
|
return this.component.onWillDragGroup;
|
|
2915
3002
|
}
|
|
2916
3003
|
/**
|
|
2917
|
-
* Invoked before a panel is dragged.
|
|
3004
|
+
* Invoked before a panel is dragged.
|
|
3005
|
+
*
|
|
3006
|
+
* Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.
|
|
2918
3007
|
*/
|
|
2919
3008
|
get onWillDragPanel() {
|
|
2920
3009
|
return this.component.onWillDragPanel;
|
|
@@ -3042,17 +3131,17 @@ class DockviewApi {
|
|
|
3042
3131
|
hasMaximizedGroup() {
|
|
3043
3132
|
return this.component.hasMaximizedGroup();
|
|
3044
3133
|
}
|
|
3045
|
-
|
|
3134
|
+
exitMaximizedGroup() {
|
|
3046
3135
|
this.component.exitMaximizedGroup();
|
|
3047
3136
|
}
|
|
3048
|
-
get
|
|
3049
|
-
return this.component.
|
|
3137
|
+
get onDidMaximizedGroupChange() {
|
|
3138
|
+
return this.component.onDidMaximizedGroupChange;
|
|
3050
3139
|
}
|
|
3051
3140
|
/**
|
|
3052
3141
|
* Add a popout group in a new Window
|
|
3053
3142
|
*/
|
|
3054
3143
|
addPopoutGroup(item, options) {
|
|
3055
|
-
this.component.addPopoutGroup(item, options);
|
|
3144
|
+
return this.component.addPopoutGroup(item, options);
|
|
3056
3145
|
}
|
|
3057
3146
|
}
|
|
3058
3147
|
|
|
@@ -3106,6 +3195,18 @@ class DragAndDropObserver extends CompositeDisposable {
|
|
|
3106
3195
|
}
|
|
3107
3196
|
}
|
|
3108
3197
|
|
|
3198
|
+
class WillShowOverlayEvent extends DockviewEvent {
|
|
3199
|
+
get nativeEvent() {
|
|
3200
|
+
return this.options.nativeEvent;
|
|
3201
|
+
}
|
|
3202
|
+
get position() {
|
|
3203
|
+
return this.options.position;
|
|
3204
|
+
}
|
|
3205
|
+
constructor(options) {
|
|
3206
|
+
super();
|
|
3207
|
+
this.options = options;
|
|
3208
|
+
}
|
|
3209
|
+
}
|
|
3109
3210
|
function directionToPosition(direction) {
|
|
3110
3211
|
switch (direction) {
|
|
3111
3212
|
case 'above':
|
|
@@ -3158,6 +3259,8 @@ class Droptarget extends CompositeDisposable {
|
|
|
3158
3259
|
this.options = options;
|
|
3159
3260
|
this._onDrop = new Emitter();
|
|
3160
3261
|
this.onDrop = this._onDrop.event;
|
|
3262
|
+
this._onWillShowOverlay = new Emitter();
|
|
3263
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3161
3264
|
// use a set to take advantage of #<set>.has
|
|
3162
3265
|
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
3163
3266
|
this.dnd = new DragAndDropObserver(this.element, {
|
|
@@ -3186,6 +3289,19 @@ class Droptarget extends CompositeDisposable {
|
|
|
3186
3289
|
this.removeDropTarget();
|
|
3187
3290
|
return;
|
|
3188
3291
|
}
|
|
3292
|
+
const willShowOverlayEvent = new WillShowOverlayEvent({
|
|
3293
|
+
nativeEvent: e,
|
|
3294
|
+
position: quadrant,
|
|
3295
|
+
});
|
|
3296
|
+
/**
|
|
3297
|
+
* Provide an opportunity to prevent the overlay appearing and in turn
|
|
3298
|
+
* any dnd behaviours
|
|
3299
|
+
*/
|
|
3300
|
+
this._onWillShowOverlay.fire(willShowOverlayEvent);
|
|
3301
|
+
if (willShowOverlayEvent.defaultPrevented) {
|
|
3302
|
+
this.removeDropTarget();
|
|
3303
|
+
return;
|
|
3304
|
+
}
|
|
3189
3305
|
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
3190
3306
|
if (!this.options.canDisplayOverlay) {
|
|
3191
3307
|
this.removeDropTarget();
|
|
@@ -3228,7 +3344,7 @@ class Droptarget extends CompositeDisposable {
|
|
|
3228
3344
|
}
|
|
3229
3345
|
},
|
|
3230
3346
|
});
|
|
3231
|
-
this.addDisposables(this._onDrop, this.dnd);
|
|
3347
|
+
this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);
|
|
3232
3348
|
}
|
|
3233
3349
|
setTargetZones(acceptedTargetZones) {
|
|
3234
3350
|
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
@@ -3281,25 +3397,44 @@ class Droptarget extends CompositeDisposable {
|
|
|
3281
3397
|
size = clamp(0, sizeOptions.value, height) / height;
|
|
3282
3398
|
}
|
|
3283
3399
|
}
|
|
3284
|
-
const
|
|
3285
|
-
|
|
3286
|
-
|
|
3400
|
+
const box = { top: '0px', left: '0px', width: '100%', height: '100%' };
|
|
3401
|
+
/**
|
|
3402
|
+
* You can also achieve the overlay placement using the transform CSS property
|
|
3403
|
+
* to translate and scale the element however this has the undesired effect of
|
|
3404
|
+
* 'skewing' the element. Comment left here for anybody that ever revisits this.
|
|
3405
|
+
*
|
|
3406
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform
|
|
3407
|
+
*
|
|
3408
|
+
* right
|
|
3409
|
+
* translateX(${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3410
|
+
*
|
|
3411
|
+
* left
|
|
3412
|
+
* translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3413
|
+
*
|
|
3414
|
+
* top
|
|
3415
|
+
* translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3416
|
+
*
|
|
3417
|
+
* bottom
|
|
3418
|
+
* translateY(${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3419
|
+
*/
|
|
3287
3420
|
if (rightClass) {
|
|
3288
|
-
|
|
3421
|
+
box.left = `${100 * (1 - size)}%`;
|
|
3422
|
+
box.width = `${100 * size}%`;
|
|
3289
3423
|
}
|
|
3290
3424
|
else if (leftClass) {
|
|
3291
|
-
|
|
3425
|
+
box.width = `${100 * size}%`;
|
|
3292
3426
|
}
|
|
3293
3427
|
else if (topClass) {
|
|
3294
|
-
|
|
3428
|
+
box.height = `${100 * size}%`;
|
|
3295
3429
|
}
|
|
3296
3430
|
else if (bottomClass) {
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
else {
|
|
3300
|
-
transform = '';
|
|
3431
|
+
box.top = `${100 * (1 - size)}%`;
|
|
3432
|
+
box.height = `${100 * size}%`;
|
|
3301
3433
|
}
|
|
3302
|
-
this.overlayElement.style.
|
|
3434
|
+
this.overlayElement.style.top = box.top;
|
|
3435
|
+
this.overlayElement.style.left = box.left;
|
|
3436
|
+
this.overlayElement.style.width = box.width;
|
|
3437
|
+
this.overlayElement.style.height = box.height;
|
|
3303
3438
|
toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);
|
|
3304
3439
|
toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);
|
|
3305
3440
|
toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);
|
|
@@ -3367,14 +3502,6 @@ function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold)
|
|
|
3367
3502
|
return 'center';
|
|
3368
3503
|
}
|
|
3369
3504
|
|
|
3370
|
-
var DockviewDropTargets;
|
|
3371
|
-
(function (DockviewDropTargets) {
|
|
3372
|
-
DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
|
|
3373
|
-
DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
|
|
3374
|
-
DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
|
|
3375
|
-
DockviewDropTargets[DockviewDropTargets["Edge"] = 3] = "Edge";
|
|
3376
|
-
})(DockviewDropTargets || (DockviewDropTargets = {}));
|
|
3377
|
-
|
|
3378
3505
|
class ContentContainer extends CompositeDisposable {
|
|
3379
3506
|
get element() {
|
|
3380
3507
|
return this._element;
|
|
@@ -3402,7 +3529,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3402
3529
|
const data = getPanelData();
|
|
3403
3530
|
if (!data &&
|
|
3404
3531
|
event.shiftKey &&
|
|
3405
|
-
this.group.location !== 'floating') {
|
|
3532
|
+
this.group.location.type !== 'floating') {
|
|
3406
3533
|
return false;
|
|
3407
3534
|
}
|
|
3408
3535
|
if (data && data.viewId === this.accessor.id) {
|
|
@@ -3420,7 +3547,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3420
3547
|
data.groupId === this.group.id;
|
|
3421
3548
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3422
3549
|
}
|
|
3423
|
-
return this.group.canDisplayOverlay(event, position,
|
|
3550
|
+
return this.group.canDisplayOverlay(event, position, 'content');
|
|
3424
3551
|
},
|
|
3425
3552
|
});
|
|
3426
3553
|
this.addDisposables(this.dropTarget);
|
|
@@ -3445,7 +3572,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3445
3572
|
let container;
|
|
3446
3573
|
switch (panel.api.renderer) {
|
|
3447
3574
|
case 'onlyWhenVisibile':
|
|
3448
|
-
this.
|
|
3575
|
+
this.group.renderContainer.detatch(panel);
|
|
3449
3576
|
if (this.panel) {
|
|
3450
3577
|
if (doRender) {
|
|
3451
3578
|
this._element.appendChild(this.panel.view.content.element);
|
|
@@ -3457,7 +3584,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3457
3584
|
if (panel.view.content.element.parentElement === this._element) {
|
|
3458
3585
|
this._element.removeChild(panel.view.content.element);
|
|
3459
3586
|
}
|
|
3460
|
-
container = this.
|
|
3587
|
+
container = this.group.renderContainer.attach({
|
|
3461
3588
|
panel,
|
|
3462
3589
|
referenceContainer: this,
|
|
3463
3590
|
});
|
|
@@ -3488,9 +3615,10 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3488
3615
|
// noop
|
|
3489
3616
|
}
|
|
3490
3617
|
closePanel() {
|
|
3618
|
+
var _a;
|
|
3491
3619
|
if (this.panel) {
|
|
3492
3620
|
if (this.panel.api.renderer === 'onlyWhenVisibile') {
|
|
3493
|
-
this.
|
|
3621
|
+
(_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
|
|
3494
3622
|
}
|
|
3495
3623
|
}
|
|
3496
3624
|
this.panel = undefined;
|
|
@@ -3601,7 +3729,7 @@ class Tab extends CompositeDisposable {
|
|
|
3601
3729
|
this._element.draggable = true;
|
|
3602
3730
|
toggleClass(this.element, 'inactive-tab', true);
|
|
3603
3731
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
3604
|
-
this.
|
|
3732
|
+
this.dropTarget = new Droptarget(this._element, {
|
|
3605
3733
|
acceptedTargetZones: ['center'],
|
|
3606
3734
|
canDisplayOverlay: (event, position) => {
|
|
3607
3735
|
if (this.group.locked) {
|
|
@@ -3616,9 +3744,10 @@ class Tab extends CompositeDisposable {
|
|
|
3616
3744
|
}
|
|
3617
3745
|
return this.panel.id !== data.panelId;
|
|
3618
3746
|
}
|
|
3619
|
-
return this.group.model.canDisplayOverlay(event, position,
|
|
3747
|
+
return this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
3620
3748
|
},
|
|
3621
3749
|
});
|
|
3750
|
+
this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
|
|
3622
3751
|
this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
3623
3752
|
this._onDragStart.fire(event);
|
|
3624
3753
|
}), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {
|
|
@@ -3626,9 +3755,9 @@ class Tab extends CompositeDisposable {
|
|
|
3626
3755
|
return;
|
|
3627
3756
|
}
|
|
3628
3757
|
this._onChanged.fire(event);
|
|
3629
|
-
}), this.
|
|
3758
|
+
}), this.dropTarget.onDrop((event) => {
|
|
3630
3759
|
this._onDropped.fire(event);
|
|
3631
|
-
}), this.
|
|
3760
|
+
}), this.dropTarget);
|
|
3632
3761
|
}
|
|
3633
3762
|
setActive(isActive) {
|
|
3634
3763
|
toggleClass(this.element, 'active-tab', isActive);
|
|
@@ -3675,7 +3804,7 @@ class GroupDragHandler extends DragHandler {
|
|
|
3675
3804
|
}, true));
|
|
3676
3805
|
}
|
|
3677
3806
|
isCancelled(_event) {
|
|
3678
|
-
if (this.group.api.location === 'floating' && !_event.shiftKey) {
|
|
3807
|
+
if (this.group.api.location.type === 'floating' && !_event.shiftKey) {
|
|
3679
3808
|
return true;
|
|
3680
3809
|
}
|
|
3681
3810
|
return false;
|
|
@@ -3727,7 +3856,7 @@ class VoidContainer extends CompositeDisposable {
|
|
|
3727
3856
|
this.accessor.doSetGroupActive(this.group);
|
|
3728
3857
|
}));
|
|
3729
3858
|
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
3730
|
-
this.
|
|
3859
|
+
this.dropTraget = new Droptarget(this._element, {
|
|
3731
3860
|
acceptedTargetZones: ['center'],
|
|
3732
3861
|
canDisplayOverlay: (event, position) => {
|
|
3733
3862
|
var _a;
|
|
@@ -3741,14 +3870,15 @@ class VoidContainer extends CompositeDisposable {
|
|
|
3741
3870
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
3742
3871
|
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
3743
3872
|
}
|
|
3744
|
-
return group.model.canDisplayOverlay(event, position,
|
|
3873
|
+
return group.model.canDisplayOverlay(event, position, 'header_space');
|
|
3745
3874
|
},
|
|
3746
3875
|
});
|
|
3876
|
+
this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
|
|
3747
3877
|
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
3748
3878
|
this._onDragStart.fire(event);
|
|
3749
|
-
}), this.
|
|
3879
|
+
}), this.dropTraget.onDrop((event) => {
|
|
3750
3880
|
this._onDrop.fire(event);
|
|
3751
|
-
}), this.
|
|
3881
|
+
}), this.dropTraget);
|
|
3752
3882
|
}
|
|
3753
3883
|
}
|
|
3754
3884
|
|
|
@@ -3836,19 +3966,11 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3836
3966
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
3837
3967
|
this._onGroupDragStart = new Emitter();
|
|
3838
3968
|
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3839
|
-
this.
|
|
3969
|
+
this._onWillShowOverlay = new Emitter();
|
|
3970
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3840
3971
|
this._element = document.createElement('div');
|
|
3841
3972
|
this._element.className = 'tabs-and-actions-container';
|
|
3842
3973
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
3843
|
-
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3844
|
-
if (e.api.group === this.group) {
|
|
3845
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3846
|
-
}
|
|
3847
|
-
}), this.accessor.onDidRemovePanel((e) => {
|
|
3848
|
-
if (e.api.group === this.group) {
|
|
3849
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3850
|
-
}
|
|
3851
|
-
}));
|
|
3852
3974
|
this.rightActionsContainer = document.createElement('div');
|
|
3853
3975
|
this.rightActionsContainer.className = 'right-actions-container';
|
|
3854
3976
|
this.leftActionsContainer = document.createElement('div');
|
|
@@ -3863,7 +3985,15 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3863
3985
|
this._element.appendChild(this.leftActionsContainer);
|
|
3864
3986
|
this._element.appendChild(this.voidContainer.element);
|
|
3865
3987
|
this._element.appendChild(this.rightActionsContainer);
|
|
3866
|
-
this.addDisposables(this.
|
|
3988
|
+
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3989
|
+
if (e.api.group === this.group) {
|
|
3990
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3991
|
+
}
|
|
3992
|
+
}), this.accessor.onDidRemovePanel((e) => {
|
|
3993
|
+
if (e.api.group === this.group) {
|
|
3994
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3995
|
+
}
|
|
3996
|
+
}), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
3867
3997
|
this._onGroupDragStart.fire({
|
|
3868
3998
|
nativeEvent: event,
|
|
3869
3999
|
group: this.group,
|
|
@@ -3873,11 +4003,15 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3873
4003
|
event: event.nativeEvent,
|
|
3874
4004
|
index: this.tabs.length,
|
|
3875
4005
|
});
|
|
4006
|
+
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
4007
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4008
|
+
kind: 'header_space',
|
|
4009
|
+
}));
|
|
3876
4010
|
}), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
|
|
3877
4011
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3878
4012
|
if (isFloatingGroupsEnabled &&
|
|
3879
4013
|
event.shiftKey &&
|
|
3880
|
-
this.group.api.location !== 'floating') {
|
|
4014
|
+
this.group.api.location.type !== 'floating') {
|
|
3881
4015
|
event.preventDefault();
|
|
3882
4016
|
const { top, left } = this.element.getBoundingClientRect();
|
|
3883
4017
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
@@ -3940,9 +4074,9 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3940
4074
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
3941
4075
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
3942
4076
|
}), tab.onChanged((event) => {
|
|
3943
|
-
var _a;
|
|
3944
4077
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3945
|
-
const isFloatingWithOnePanel = this.group.api.location === 'floating' &&
|
|
4078
|
+
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
4079
|
+
this.size === 1;
|
|
3946
4080
|
if (isFloatingGroupsEnabled &&
|
|
3947
4081
|
!isFloatingWithOnePanel &&
|
|
3948
4082
|
event.shiftKey) {
|
|
@@ -3956,20 +4090,20 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3956
4090
|
}, { inDragMode: true });
|
|
3957
4091
|
return;
|
|
3958
4092
|
}
|
|
3959
|
-
const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
3960
|
-
this.group.model.isContentFocused;
|
|
3961
4093
|
const isLeftClick = event.button === 0;
|
|
3962
4094
|
if (!isLeftClick || event.defaultPrevented) {
|
|
3963
4095
|
return;
|
|
3964
4096
|
}
|
|
3965
|
-
this.group.
|
|
3966
|
-
|
|
3967
|
-
}
|
|
4097
|
+
if (this.group.activePanel !== panel) {
|
|
4098
|
+
this.group.model.openPanel(panel);
|
|
4099
|
+
}
|
|
3968
4100
|
}), tab.onDrop((event) => {
|
|
3969
4101
|
this._onDrop.fire({
|
|
3970
4102
|
event: event.nativeEvent,
|
|
3971
4103
|
index: this.tabs.findIndex((x) => x.value === tab),
|
|
3972
4104
|
});
|
|
4105
|
+
}), tab.onWillShowOverlay((event) => {
|
|
4106
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
|
|
3973
4107
|
}));
|
|
3974
4108
|
const value = { value: tab, disposable };
|
|
3975
4109
|
this.addTab(value, index);
|
|
@@ -3987,6 +4121,60 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3987
4121
|
}
|
|
3988
4122
|
}
|
|
3989
4123
|
|
|
4124
|
+
class DockviewDidDropEvent extends DockviewEvent {
|
|
4125
|
+
get nativeEvent() {
|
|
4126
|
+
return this.options.nativeEvent;
|
|
4127
|
+
}
|
|
4128
|
+
get position() {
|
|
4129
|
+
return this.options.position;
|
|
4130
|
+
}
|
|
4131
|
+
get panel() {
|
|
4132
|
+
return this.options.panel;
|
|
4133
|
+
}
|
|
4134
|
+
get group() {
|
|
4135
|
+
return this.options.group;
|
|
4136
|
+
}
|
|
4137
|
+
get api() {
|
|
4138
|
+
return this.options.api;
|
|
4139
|
+
}
|
|
4140
|
+
constructor(options) {
|
|
4141
|
+
super();
|
|
4142
|
+
this.options = options;
|
|
4143
|
+
}
|
|
4144
|
+
getData() {
|
|
4145
|
+
return this.options.getData();
|
|
4146
|
+
}
|
|
4147
|
+
}
|
|
4148
|
+
class DockviewWillDropEvent extends DockviewDidDropEvent {
|
|
4149
|
+
get kind() {
|
|
4150
|
+
return this._kind;
|
|
4151
|
+
}
|
|
4152
|
+
constructor(options) {
|
|
4153
|
+
super(options);
|
|
4154
|
+
this._kind = options.kind;
|
|
4155
|
+
}
|
|
4156
|
+
}
|
|
4157
|
+
class WillShowOverlayLocationEvent {
|
|
4158
|
+
get kind() {
|
|
4159
|
+
return this._kind;
|
|
4160
|
+
}
|
|
4161
|
+
get nativeEvent() {
|
|
4162
|
+
return this.event.nativeEvent;
|
|
4163
|
+
}
|
|
4164
|
+
get position() {
|
|
4165
|
+
return this.event.position;
|
|
4166
|
+
}
|
|
4167
|
+
get defaultPrevented() {
|
|
4168
|
+
return this.event.defaultPrevented;
|
|
4169
|
+
}
|
|
4170
|
+
preventDefault() {
|
|
4171
|
+
this.event.preventDefault();
|
|
4172
|
+
}
|
|
4173
|
+
constructor(event, options) {
|
|
4174
|
+
this.event = event;
|
|
4175
|
+
this._kind = options.kind;
|
|
4176
|
+
}
|
|
4177
|
+
}
|
|
3990
4178
|
class DockviewGroupPanelModel extends CompositeDisposable {
|
|
3991
4179
|
get element() {
|
|
3992
4180
|
throw new Error('not supported');
|
|
@@ -4032,7 +4220,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4032
4220
|
this._location = value;
|
|
4033
4221
|
toggleClass(this.container, 'dv-groupview-floating', false);
|
|
4034
4222
|
toggleClass(this.container, 'dv-groupview-popout', false);
|
|
4035
|
-
switch (value) {
|
|
4223
|
+
switch (value.type) {
|
|
4036
4224
|
case 'grid':
|
|
4037
4225
|
this.contentContainer.dropTarget.setTargetZones([
|
|
4038
4226
|
'top',
|
|
@@ -4068,7 +4256,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4068
4256
|
this.groupPanel = groupPanel;
|
|
4069
4257
|
this._isGroupActive = false;
|
|
4070
4258
|
this._locked = false;
|
|
4071
|
-
this._location = 'grid';
|
|
4259
|
+
this._location = { type: 'grid' };
|
|
4072
4260
|
this.mostRecentlyUsed = [];
|
|
4073
4261
|
this._onDidChange = new Emitter();
|
|
4074
4262
|
this.onDidChange = this._onDidChange.event;
|
|
@@ -4079,6 +4267,10 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4079
4267
|
this.onMove = this._onMove.event;
|
|
4080
4268
|
this._onDidDrop = new Emitter();
|
|
4081
4269
|
this.onDidDrop = this._onDidDrop.event;
|
|
4270
|
+
this._onWillDrop = new Emitter();
|
|
4271
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
4272
|
+
this._onWillShowOverlay = new Emitter();
|
|
4273
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
4082
4274
|
this._onTabDragStart = new Emitter();
|
|
4083
4275
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
4084
4276
|
this._onGroupDragStart = new Emitter();
|
|
@@ -4089,46 +4281,69 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4089
4281
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4090
4282
|
this._onDidActivePanelChange = new Emitter();
|
|
4091
4283
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4284
|
+
this._overwriteRenderContainer = null;
|
|
4092
4285
|
toggleClass(this.container, 'groupview', true);
|
|
4286
|
+
this._api = new DockviewApi(this.accessor);
|
|
4093
4287
|
this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
|
|
4094
4288
|
this.contentContainer = new ContentContainer(this.accessor, this);
|
|
4095
4289
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
4096
4290
|
this.header.hidden = !!options.hideHeader;
|
|
4097
4291
|
this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;
|
|
4098
|
-
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {
|
|
4292
|
+
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {
|
|
4099
4293
|
this._onTabDragStart.fire(event);
|
|
4100
4294
|
}), this.tabsContainer.onGroupDragStart((event) => {
|
|
4101
4295
|
this._onGroupDragStart.fire(event);
|
|
4102
4296
|
}), this.tabsContainer.onDrop((event) => {
|
|
4103
|
-
this.handleDropEvent(event.event, 'center', event.index);
|
|
4297
|
+
this.handleDropEvent('header', event.event, 'center', event.index);
|
|
4104
4298
|
}), this.contentContainer.onDidFocus(() => {
|
|
4105
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4299
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4106
4300
|
}), this.contentContainer.onDidBlur(() => {
|
|
4107
4301
|
// noop
|
|
4108
4302
|
}), this.contentContainer.dropTarget.onDrop((event) => {
|
|
4109
|
-
this.handleDropEvent(event.nativeEvent, event.position);
|
|
4110
|
-
}), this.
|
|
4303
|
+
this.handleDropEvent('content', event.nativeEvent, event.position);
|
|
4304
|
+
}), this.tabsContainer.onWillShowOverlay((event) => {
|
|
4305
|
+
this._onWillShowOverlay.fire(event);
|
|
4306
|
+
}), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
|
|
4307
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4308
|
+
kind: 'content',
|
|
4309
|
+
}));
|
|
4310
|
+
}), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
|
|
4311
|
+
}
|
|
4312
|
+
focusContent() {
|
|
4313
|
+
this.contentContainer.element.focus();
|
|
4314
|
+
}
|
|
4315
|
+
set renderContainer(value) {
|
|
4316
|
+
this.panels.forEach((panel) => {
|
|
4317
|
+
this.renderContainer.detatch(panel);
|
|
4318
|
+
});
|
|
4319
|
+
this._overwriteRenderContainer = value;
|
|
4320
|
+
this.panels.forEach((panel) => {
|
|
4321
|
+
this.rerender(panel);
|
|
4322
|
+
});
|
|
4323
|
+
}
|
|
4324
|
+
get renderContainer() {
|
|
4325
|
+
var _a;
|
|
4326
|
+
return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);
|
|
4111
4327
|
}
|
|
4112
4328
|
initialize() {
|
|
4113
|
-
|
|
4114
|
-
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
4329
|
+
if (this.options.panels) {
|
|
4115
4330
|
this.options.panels.forEach((panel) => {
|
|
4116
4331
|
this.doAddPanel(panel);
|
|
4117
4332
|
});
|
|
4118
4333
|
}
|
|
4119
|
-
if (
|
|
4334
|
+
if (this.options.activePanel) {
|
|
4120
4335
|
this.openPanel(this.options.activePanel);
|
|
4121
4336
|
}
|
|
4122
4337
|
// must be run after the constructor otherwise this.parent may not be
|
|
4123
4338
|
// correctly initialized
|
|
4124
|
-
this.setActive(this.isActive, true
|
|
4339
|
+
this.setActive(this.isActive, true);
|
|
4125
4340
|
this.updateContainer();
|
|
4126
4341
|
if (this.accessor.options.createRightHeaderActionsElement) {
|
|
4127
4342
|
this._rightHeaderActions =
|
|
4128
4343
|
this.accessor.options.createRightHeaderActionsElement(this.groupPanel);
|
|
4129
4344
|
this.addDisposables(this._rightHeaderActions);
|
|
4130
4345
|
this._rightHeaderActions.init({
|
|
4131
|
-
containerApi:
|
|
4346
|
+
containerApi: this._api,
|
|
4132
4347
|
api: this.groupPanel.api,
|
|
4133
4348
|
});
|
|
4134
4349
|
this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);
|
|
@@ -4138,7 +4353,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4138
4353
|
this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);
|
|
4139
4354
|
this.addDisposables(this._leftHeaderActions);
|
|
4140
4355
|
this._leftHeaderActions.init({
|
|
4141
|
-
containerApi:
|
|
4356
|
+
containerApi: this._api,
|
|
4142
4357
|
api: this.groupPanel.api,
|
|
4143
4358
|
});
|
|
4144
4359
|
this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);
|
|
@@ -4148,7 +4363,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4148
4363
|
this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);
|
|
4149
4364
|
this.addDisposables(this._prefixHeaderActions);
|
|
4150
4365
|
this._prefixHeaderActions.init({
|
|
4151
|
-
containerApi:
|
|
4366
|
+
containerApi: this._api,
|
|
4152
4367
|
api: this.groupPanel.api,
|
|
4153
4368
|
});
|
|
4154
4369
|
this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);
|
|
@@ -4228,35 +4443,45 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4228
4443
|
//noop
|
|
4229
4444
|
}
|
|
4230
4445
|
focus() {
|
|
4231
|
-
var _a
|
|
4232
|
-
(
|
|
4446
|
+
var _a;
|
|
4447
|
+
(_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4233
4448
|
}
|
|
4234
4449
|
openPanel(panel, options = {}) {
|
|
4450
|
+
/**
|
|
4451
|
+
* set the panel group
|
|
4452
|
+
* add the panel
|
|
4453
|
+
* check if group active
|
|
4454
|
+
* check if panel active
|
|
4455
|
+
*/
|
|
4235
4456
|
if (typeof options.index !== 'number' ||
|
|
4236
4457
|
options.index > this.panels.length) {
|
|
4237
4458
|
options.index = this.panels.length;
|
|
4238
4459
|
}
|
|
4239
|
-
const
|
|
4240
|
-
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
4460
|
+
const skipSetActive = !!options.skipSetActive;
|
|
4241
4461
|
// ensure the group is updated before we fire any events
|
|
4242
|
-
panel.updateParentGroup(this.groupPanel,
|
|
4462
|
+
panel.updateParentGroup(this.groupPanel, {
|
|
4463
|
+
skipSetActive: options.skipSetActive,
|
|
4464
|
+
});
|
|
4465
|
+
this.doAddPanel(panel, options.index, {
|
|
4466
|
+
skipSetActive: skipSetActive,
|
|
4467
|
+
});
|
|
4243
4468
|
if (this._activePanel === panel) {
|
|
4244
|
-
if (!skipSetGroupActive) {
|
|
4245
|
-
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4246
|
-
}
|
|
4247
4469
|
this.contentContainer.renderPanel(panel, { asActive: true });
|
|
4248
4470
|
return;
|
|
4249
4471
|
}
|
|
4250
|
-
|
|
4251
|
-
if (!skipSetPanelActive) {
|
|
4472
|
+
if (!skipSetActive) {
|
|
4252
4473
|
this.doSetActivePanel(panel);
|
|
4253
4474
|
}
|
|
4254
|
-
if (!skipSetGroupActive) {
|
|
4255
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4475
|
+
if (!options.skipSetGroupActive) {
|
|
4476
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4477
|
+
}
|
|
4478
|
+
if (!options.skipSetActive) {
|
|
4479
|
+
this.updateContainer();
|
|
4256
4480
|
}
|
|
4257
|
-
this.updateContainer();
|
|
4258
4481
|
}
|
|
4259
|
-
removePanel(groupItemOrId
|
|
4482
|
+
removePanel(groupItemOrId, options = {
|
|
4483
|
+
skipSetActive: false,
|
|
4484
|
+
}) {
|
|
4260
4485
|
const id = typeof groupItemOrId === 'string'
|
|
4261
4486
|
? groupItemOrId
|
|
4262
4487
|
: groupItemOrId.id;
|
|
@@ -4264,7 +4489,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4264
4489
|
if (!panelToRemove) {
|
|
4265
4490
|
throw new Error('invalid operation');
|
|
4266
4491
|
}
|
|
4267
|
-
return this._removePanel(panelToRemove);
|
|
4492
|
+
return this._removePanel(panelToRemove, options);
|
|
4268
4493
|
}
|
|
4269
4494
|
closeAllPanels() {
|
|
4270
4495
|
if (this.panels.length > 0) {
|
|
@@ -4290,12 +4515,8 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4290
4515
|
updateActions(element) {
|
|
4291
4516
|
this.tabsContainer.setRightActionsElement(element);
|
|
4292
4517
|
}
|
|
4293
|
-
setActive(isGroupActive,
|
|
4294
|
-
var _a, _b, _c, _d;
|
|
4518
|
+
setActive(isGroupActive, force = false) {
|
|
4295
4519
|
if (!force && this.isActive === isGroupActive) {
|
|
4296
|
-
if (!skipFocus) {
|
|
4297
|
-
(_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4298
|
-
}
|
|
4299
4520
|
return;
|
|
4300
4521
|
}
|
|
4301
4522
|
this._isGroupActive = isGroupActive;
|
|
@@ -4306,11 +4527,6 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4306
4527
|
this.doSetActivePanel(this.panels[0]);
|
|
4307
4528
|
}
|
|
4308
4529
|
this.updateContainer();
|
|
4309
|
-
if (isGroupActive) {
|
|
4310
|
-
if (!skipFocus) {
|
|
4311
|
-
(_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
4312
|
-
}
|
|
4313
|
-
}
|
|
4314
4530
|
}
|
|
4315
4531
|
layout(width, height) {
|
|
4316
4532
|
var _a;
|
|
@@ -4321,17 +4537,22 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4321
4537
|
this._activePanel.layout(this._width, this._height);
|
|
4322
4538
|
}
|
|
4323
4539
|
}
|
|
4324
|
-
_removePanel(panel) {
|
|
4540
|
+
_removePanel(panel, options) {
|
|
4325
4541
|
const isActivePanel = this._activePanel === panel;
|
|
4326
4542
|
this.doRemovePanel(panel);
|
|
4327
4543
|
if (isActivePanel && this.panels.length > 0) {
|
|
4328
4544
|
const nextPanel = this.mostRecentlyUsed[0];
|
|
4329
|
-
this.openPanel(nextPanel
|
|
4545
|
+
this.openPanel(nextPanel, {
|
|
4546
|
+
skipSetActive: options.skipSetActive,
|
|
4547
|
+
skipSetGroupActive: options.skipSetActiveGroup,
|
|
4548
|
+
});
|
|
4330
4549
|
}
|
|
4331
4550
|
if (this._activePanel && this.panels.length === 0) {
|
|
4332
4551
|
this.doSetActivePanel(undefined);
|
|
4333
4552
|
}
|
|
4334
|
-
|
|
4553
|
+
if (!options.skipSetActive) {
|
|
4554
|
+
this.updateContainer();
|
|
4555
|
+
}
|
|
4335
4556
|
return panel;
|
|
4336
4557
|
}
|
|
4337
4558
|
doRemovePanel(panel) {
|
|
@@ -4346,13 +4567,13 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4346
4567
|
}
|
|
4347
4568
|
this._onDidRemovePanel.fire({ panel });
|
|
4348
4569
|
}
|
|
4349
|
-
doAddPanel(panel, index = this.panels.length,
|
|
4570
|
+
doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {
|
|
4350
4571
|
const existingPanel = this._panels.indexOf(panel);
|
|
4351
4572
|
const hasExistingPanel = existingPanel > -1;
|
|
4352
4573
|
this.tabsContainer.show();
|
|
4353
4574
|
this.contentContainer.show();
|
|
4354
4575
|
this.tabsContainer.openPanel(panel, index);
|
|
4355
|
-
if (!skipSetActive) {
|
|
4576
|
+
if (!options.skipSetActive) {
|
|
4356
4577
|
this.contentContainer.openPanel(panel);
|
|
4357
4578
|
}
|
|
4358
4579
|
if (hasExistingPanel) {
|
|
@@ -4364,12 +4585,17 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4364
4585
|
this._onDidAddPanel.fire({ panel });
|
|
4365
4586
|
}
|
|
4366
4587
|
doSetActivePanel(panel) {
|
|
4588
|
+
if (this._activePanel === panel) {
|
|
4589
|
+
return;
|
|
4590
|
+
}
|
|
4367
4591
|
this._activePanel = panel;
|
|
4368
4592
|
if (panel) {
|
|
4369
4593
|
this.tabsContainer.setActivePanel(panel);
|
|
4370
4594
|
panel.layout(this._width, this._height);
|
|
4371
4595
|
this.updateMru(panel);
|
|
4372
|
-
this._onDidActivePanelChange.fire({
|
|
4596
|
+
this._onDidActivePanelChange.fire({
|
|
4597
|
+
panel,
|
|
4598
|
+
});
|
|
4373
4599
|
}
|
|
4374
4600
|
}
|
|
4375
4601
|
updateMru(panel) {
|
|
@@ -4381,11 +4607,11 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4381
4607
|
updateContainer() {
|
|
4382
4608
|
var _a, _b;
|
|
4383
4609
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
4384
|
-
this.panels.forEach((panel) => panel.
|
|
4610
|
+
this.panels.forEach((panel) => panel.runEvents());
|
|
4385
4611
|
if (this.isEmpty && !this.watermark) {
|
|
4386
4612
|
const watermark = this.accessor.createWatermarkComponent();
|
|
4387
4613
|
watermark.init({
|
|
4388
|
-
containerApi:
|
|
4614
|
+
containerApi: this._api,
|
|
4389
4615
|
group: this.groupPanel,
|
|
4390
4616
|
});
|
|
4391
4617
|
this.watermark = watermark;
|
|
@@ -4418,10 +4644,32 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4418
4644
|
}
|
|
4419
4645
|
return false;
|
|
4420
4646
|
}
|
|
4421
|
-
handleDropEvent(event, position, index) {
|
|
4647
|
+
handleDropEvent(type, event, position, index) {
|
|
4422
4648
|
if (this.locked === 'no-drop-target') {
|
|
4423
4649
|
return;
|
|
4424
4650
|
}
|
|
4651
|
+
function getKind() {
|
|
4652
|
+
switch (type) {
|
|
4653
|
+
case 'header':
|
|
4654
|
+
return typeof index === 'number' ? 'tab' : 'header_space';
|
|
4655
|
+
case 'content':
|
|
4656
|
+
return 'content';
|
|
4657
|
+
}
|
|
4658
|
+
}
|
|
4659
|
+
const panel = typeof index === 'number' ? this.panels[index] : undefined;
|
|
4660
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
4661
|
+
nativeEvent: event,
|
|
4662
|
+
position,
|
|
4663
|
+
panel,
|
|
4664
|
+
getData: () => getPanelData(),
|
|
4665
|
+
kind: getKind(),
|
|
4666
|
+
group: this.groupPanel,
|
|
4667
|
+
api: this._api,
|
|
4668
|
+
});
|
|
4669
|
+
this._onWillDrop.fire(willDropEvent);
|
|
4670
|
+
if (willDropEvent.defaultPrevented) {
|
|
4671
|
+
return;
|
|
4672
|
+
}
|
|
4425
4673
|
const data = getPanelData();
|
|
4426
4674
|
if (data && data.viewId === this.accessor.id) {
|
|
4427
4675
|
if (data.panelId === null) {
|
|
@@ -4454,12 +4702,14 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4454
4702
|
});
|
|
4455
4703
|
}
|
|
4456
4704
|
else {
|
|
4457
|
-
this._onDidDrop.fire({
|
|
4705
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
4458
4706
|
nativeEvent: event,
|
|
4459
4707
|
position,
|
|
4460
|
-
|
|
4708
|
+
panel,
|
|
4461
4709
|
getData: () => getPanelData(),
|
|
4462
|
-
|
|
4710
|
+
group: this.groupPanel,
|
|
4711
|
+
api: this._api,
|
|
4712
|
+
}));
|
|
4463
4713
|
}
|
|
4464
4714
|
}
|
|
4465
4715
|
dispose() {
|
|
@@ -4467,6 +4717,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4467
4717
|
super.dispose();
|
|
4468
4718
|
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();
|
|
4469
4719
|
(_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
4720
|
+
this.watermark = undefined;
|
|
4470
4721
|
for (const panel of this.panels) {
|
|
4471
4722
|
panel.dispose();
|
|
4472
4723
|
}
|
|
@@ -4488,15 +4739,7 @@ class Resizable extends CompositeDisposable {
|
|
|
4488
4739
|
constructor(parentElement, disableResizing = false) {
|
|
4489
4740
|
super();
|
|
4490
4741
|
this._disableResizing = disableResizing;
|
|
4491
|
-
|
|
4492
|
-
this._element = parentElement;
|
|
4493
|
-
}
|
|
4494
|
-
else {
|
|
4495
|
-
this._element = document.createElement('div');
|
|
4496
|
-
this._element.style.height = '100%';
|
|
4497
|
-
this._element.style.width = '100%';
|
|
4498
|
-
this._element.className = 'dv-resizable-container';
|
|
4499
|
-
}
|
|
4742
|
+
this._element = parentElement;
|
|
4500
4743
|
this.addDisposables(watchElementResize(this._element, (entry) => {
|
|
4501
4744
|
if (this.isDisposed) {
|
|
4502
4745
|
/**
|
|
@@ -4584,25 +4827,38 @@ class BaseGrid extends Resizable {
|
|
|
4584
4827
|
get activeGroup() {
|
|
4585
4828
|
return this._activeGroup;
|
|
4586
4829
|
}
|
|
4830
|
+
get locked() {
|
|
4831
|
+
return this.gridview.locked;
|
|
4832
|
+
}
|
|
4833
|
+
set locked(value) {
|
|
4834
|
+
this.gridview.locked = value;
|
|
4835
|
+
}
|
|
4587
4836
|
constructor(options) {
|
|
4588
|
-
super(
|
|
4837
|
+
super(document.createElement('div'), options.disableAutoResizing);
|
|
4589
4838
|
this._id = nextLayoutId$1.next();
|
|
4590
4839
|
this._groups = new Map();
|
|
4591
4840
|
this._onDidLayoutChange = new Emitter();
|
|
4592
4841
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
4593
|
-
this.
|
|
4594
|
-
this.
|
|
4595
|
-
this.
|
|
4596
|
-
this.
|
|
4597
|
-
this.
|
|
4598
|
-
this.
|
|
4842
|
+
this._onDidRemove = new Emitter();
|
|
4843
|
+
this.onDidRemove = this._onDidRemove.event;
|
|
4844
|
+
this._onDidAdd = new Emitter();
|
|
4845
|
+
this.onDidAdd = this._onDidAdd.event;
|
|
4846
|
+
this._onDidActiveChange = new Emitter();
|
|
4847
|
+
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4599
4848
|
this._bufferOnDidLayoutChange = new TickDelayedEvent();
|
|
4849
|
+
this.element.style.height = '100%';
|
|
4850
|
+
this.element.style.width = '100%';
|
|
4851
|
+
options.parentElement.appendChild(this.element);
|
|
4600
4852
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
4853
|
+
this.gridview.locked = !!options.locked;
|
|
4601
4854
|
this.element.appendChild(this.gridview.element);
|
|
4602
4855
|
this.layout(0, 0, true); // set some elements height/widths
|
|
4603
|
-
this.addDisposables(
|
|
4856
|
+
this.addDisposables(Disposable.from(() => {
|
|
4857
|
+
var _a;
|
|
4858
|
+
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
4859
|
+
}), this.gridview.onDidChange(() => {
|
|
4604
4860
|
this._bufferOnDidLayoutChange.fire();
|
|
4605
|
-
}), Event.any(this.
|
|
4861
|
+
}), Event.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {
|
|
4606
4862
|
this._bufferOnDidLayoutChange.fire();
|
|
4607
4863
|
}), this._bufferOnDidLayoutChange.onEvent(() => {
|
|
4608
4864
|
this._onDidLayoutChange.fire();
|
|
@@ -4617,6 +4873,7 @@ class BaseGrid extends Resizable {
|
|
|
4617
4873
|
}
|
|
4618
4874
|
maximizeGroup(panel) {
|
|
4619
4875
|
this.gridview.maximizeView(panel);
|
|
4876
|
+
this.doSetGroupActive(panel);
|
|
4620
4877
|
}
|
|
4621
4878
|
isMaximizedGroup(panel) {
|
|
4622
4879
|
return this.gridview.maximizedView() === panel;
|
|
@@ -4627,13 +4884,12 @@ class BaseGrid extends Resizable {
|
|
|
4627
4884
|
hasMaximizedGroup() {
|
|
4628
4885
|
return this.gridview.hasMaximizedView();
|
|
4629
4886
|
}
|
|
4630
|
-
get
|
|
4631
|
-
return this.gridview.
|
|
4887
|
+
get onDidMaximizedGroupChange() {
|
|
4888
|
+
return this.gridview.onDidMaximizedNodeChange;
|
|
4632
4889
|
}
|
|
4633
4890
|
doAddGroup(group, location = [0], size) {
|
|
4634
4891
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
|
|
4635
|
-
this.
|
|
4636
|
-
this.doSetGroupActive(group);
|
|
4892
|
+
this._onDidAdd.fire(group);
|
|
4637
4893
|
}
|
|
4638
4894
|
doRemoveGroup(group, options) {
|
|
4639
4895
|
if (!this._groups.has(group.id)) {
|
|
@@ -4645,8 +4901,8 @@ class BaseGrid extends Resizable {
|
|
|
4645
4901
|
item.disposable.dispose();
|
|
4646
4902
|
item.value.dispose();
|
|
4647
4903
|
this._groups.delete(group.id);
|
|
4904
|
+
this._onDidRemove.fire(group);
|
|
4648
4905
|
}
|
|
4649
|
-
this._onDidRemoveGroup.fire(group);
|
|
4650
4906
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
4651
4907
|
const groups = Array.from(this._groups.values());
|
|
4652
4908
|
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
@@ -4657,25 +4913,18 @@ class BaseGrid extends Resizable {
|
|
|
4657
4913
|
var _a;
|
|
4658
4914
|
return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;
|
|
4659
4915
|
}
|
|
4660
|
-
doSetGroupActive(group
|
|
4661
|
-
var _a, _b, _c;
|
|
4916
|
+
doSetGroupActive(group) {
|
|
4662
4917
|
if (this._activeGroup === group) {
|
|
4663
4918
|
return;
|
|
4664
4919
|
}
|
|
4665
4920
|
if (this._activeGroup) {
|
|
4666
4921
|
this._activeGroup.setActive(false);
|
|
4667
|
-
if (!skipFocus) {
|
|
4668
|
-
(_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4669
|
-
}
|
|
4670
4922
|
}
|
|
4671
4923
|
if (group) {
|
|
4672
4924
|
group.setActive(true);
|
|
4673
|
-
if (!skipFocus) {
|
|
4674
|
-
(_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);
|
|
4675
|
-
}
|
|
4676
4925
|
}
|
|
4677
4926
|
this._activeGroup = group;
|
|
4678
|
-
this.
|
|
4927
|
+
this._onDidActiveChange.fire(group);
|
|
4679
4928
|
}
|
|
4680
4929
|
removeGroup(group) {
|
|
4681
4930
|
this.doRemoveGroup(group);
|
|
@@ -4720,9 +4969,9 @@ class BaseGrid extends Resizable {
|
|
|
4720
4969
|
this.gridview.layout(width, height);
|
|
4721
4970
|
}
|
|
4722
4971
|
dispose() {
|
|
4723
|
-
this.
|
|
4724
|
-
this.
|
|
4725
|
-
this.
|
|
4972
|
+
this._onDidActiveChange.dispose();
|
|
4973
|
+
this._onDidAdd.dispose();
|
|
4974
|
+
this._onDidRemove.dispose();
|
|
4726
4975
|
this._onDidLayoutChange.dispose();
|
|
4727
4976
|
for (const group of this.groups) {
|
|
4728
4977
|
group.dispose();
|
|
@@ -4732,11 +4981,15 @@ class BaseGrid extends Resizable {
|
|
|
4732
4981
|
}
|
|
4733
4982
|
}
|
|
4734
4983
|
|
|
4984
|
+
class WillFocusEvent extends DockviewEvent {
|
|
4985
|
+
constructor() {
|
|
4986
|
+
super();
|
|
4987
|
+
}
|
|
4988
|
+
}
|
|
4735
4989
|
/**
|
|
4736
4990
|
* A core api implementation that should be used across all panel-like objects
|
|
4737
4991
|
*/
|
|
4738
4992
|
class PanelApiImpl extends CompositeDisposable {
|
|
4739
|
-
//
|
|
4740
4993
|
get isFocused() {
|
|
4741
4994
|
return this._isFocused;
|
|
4742
4995
|
}
|
|
@@ -4761,35 +5014,22 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4761
5014
|
this._width = 0;
|
|
4762
5015
|
this._height = 0;
|
|
4763
5016
|
this.panelUpdatesDisposable = new MutableDisposable();
|
|
4764
|
-
this._onDidDimensionChange = new Emitter(
|
|
4765
|
-
replay: true,
|
|
4766
|
-
});
|
|
5017
|
+
this._onDidDimensionChange = new Emitter();
|
|
4767
5018
|
this.onDidDimensionsChange = this._onDidDimensionChange.event;
|
|
4768
|
-
|
|
4769
|
-
this._onDidChangeFocus = new Emitter({
|
|
4770
|
-
replay: true,
|
|
4771
|
-
});
|
|
5019
|
+
this._onDidChangeFocus = new Emitter();
|
|
4772
5020
|
this.onDidFocusChange = this._onDidChangeFocus.event;
|
|
4773
5021
|
//
|
|
4774
|
-
this.
|
|
4775
|
-
this.
|
|
5022
|
+
this._onWillFocus = new Emitter();
|
|
5023
|
+
this.onWillFocus = this._onWillFocus.event;
|
|
4776
5024
|
//
|
|
4777
|
-
this._onDidVisibilityChange = new Emitter(
|
|
4778
|
-
replay: true,
|
|
4779
|
-
});
|
|
5025
|
+
this._onDidVisibilityChange = new Emitter();
|
|
4780
5026
|
this.onDidVisibilityChange = this._onDidVisibilityChange.event;
|
|
4781
|
-
|
|
4782
|
-
this.
|
|
4783
|
-
this.
|
|
4784
|
-
//
|
|
4785
|
-
this._onDidActiveChange = new Emitter({
|
|
4786
|
-
replay: true,
|
|
4787
|
-
});
|
|
5027
|
+
this._onWillVisibilityChange = new Emitter();
|
|
5028
|
+
this.onWillVisibilityChange = this._onWillVisibilityChange.event;
|
|
5029
|
+
this._onDidActiveChange = new Emitter();
|
|
4788
5030
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4789
|
-
//
|
|
4790
5031
|
this._onActiveChange = new Emitter();
|
|
4791
5032
|
this.onActiveChange = this._onActiveChange.event;
|
|
4792
|
-
//
|
|
4793
5033
|
this._onUpdateParameters = new Emitter();
|
|
4794
5034
|
this.onUpdateParameters = this._onUpdateParameters.event;
|
|
4795
5035
|
this.addDisposables(this.onDidFocusChange((event) => {
|
|
@@ -4801,7 +5041,7 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4801
5041
|
}), this.onDidDimensionsChange((event) => {
|
|
4802
5042
|
this._width = event.width;
|
|
4803
5043
|
this._height = event.height;
|
|
4804
|
-
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this.
|
|
5044
|
+
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onWillVisibilityChange, this._onUpdateParameters);
|
|
4805
5045
|
}
|
|
4806
5046
|
initialize(panel) {
|
|
4807
5047
|
this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
|
|
@@ -4811,7 +5051,7 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4811
5051
|
});
|
|
4812
5052
|
}
|
|
4813
5053
|
setVisible(isVisible) {
|
|
4814
|
-
this.
|
|
5054
|
+
this._onWillVisibilityChange.fire({ isVisible });
|
|
4815
5055
|
}
|
|
4816
5056
|
setActive() {
|
|
4817
5057
|
this._onActiveChange.fire();
|
|
@@ -4819,9 +5059,6 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4819
5059
|
updateParameters(parameters) {
|
|
4820
5060
|
this._onUpdateParameters.fire(parameters);
|
|
4821
5061
|
}
|
|
4822
|
-
dispose() {
|
|
4823
|
-
super.dispose();
|
|
4824
|
-
}
|
|
4825
5062
|
}
|
|
4826
5063
|
|
|
4827
5064
|
class SplitviewPanelApiImpl extends PanelApiImpl {
|
|
@@ -4909,7 +5146,12 @@ class BasePanelView extends CompositeDisposable {
|
|
|
4909
5146
|
}), focusTracker);
|
|
4910
5147
|
}
|
|
4911
5148
|
focus() {
|
|
4912
|
-
|
|
5149
|
+
const event = new WillFocusEvent();
|
|
5150
|
+
this.api._onWillFocus.fire(event);
|
|
5151
|
+
if (event.defaultPrevented) {
|
|
5152
|
+
return;
|
|
5153
|
+
}
|
|
5154
|
+
this._element.focus();
|
|
4913
5155
|
}
|
|
4914
5156
|
layout(width, height) {
|
|
4915
5157
|
this._width = width;
|
|
@@ -5027,7 +5269,11 @@ class PaneviewPanel extends BasePanelView {
|
|
|
5027
5269
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
5028
5270
|
this._orientation = orientation;
|
|
5029
5271
|
this.element.classList.add('pane');
|
|
5030
|
-
this.addDisposables(this.api.
|
|
5272
|
+
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
5273
|
+
const { isVisible } = event;
|
|
5274
|
+
const { accessor } = this._params;
|
|
5275
|
+
accessor.setVisible(this, isVisible);
|
|
5276
|
+
}), this.api.onDidSizeChange((event) => {
|
|
5031
5277
|
this._onDidChange.fire({ size: event.size });
|
|
5032
5278
|
}), addDisposableListener(this.element, 'mouseenter', (ev) => {
|
|
5033
5279
|
this.api._onMouseEnter.fire(ev);
|
|
@@ -5238,9 +5484,7 @@ class GridviewPanelApiImpl extends PanelApiImpl {
|
|
|
5238
5484
|
super(id);
|
|
5239
5485
|
this._onDidConstraintsChangeInternal = new Emitter();
|
|
5240
5486
|
this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
|
|
5241
|
-
this._onDidConstraintsChange = new Emitter(
|
|
5242
|
-
replay: true,
|
|
5243
|
-
});
|
|
5487
|
+
this._onDidConstraintsChange = new Emitter();
|
|
5244
5488
|
this.onDidConstraintsChange = this._onDidConstraintsChange.event;
|
|
5245
5489
|
this._onDidSizeChange = new Emitter();
|
|
5246
5490
|
this.onDidSizeChange = this._onDidSizeChange.event;
|
|
@@ -5333,13 +5577,13 @@ class GridviewPanel extends BasePanelView {
|
|
|
5333
5577
|
this._maximumHeight = options.maximumHeight;
|
|
5334
5578
|
}
|
|
5335
5579
|
this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
|
|
5336
|
-
this.addDisposables(this.api.
|
|
5580
|
+
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
5337
5581
|
const { isVisible } = event;
|
|
5338
5582
|
const { accessor } = this._params;
|
|
5339
5583
|
accessor.setVisible(this, isVisible);
|
|
5340
5584
|
}), this.api.onActiveChange(() => {
|
|
5341
5585
|
const { accessor } = this._params;
|
|
5342
|
-
accessor.
|
|
5586
|
+
accessor.doSetGroupActive(this);
|
|
5343
5587
|
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
5344
5588
|
if (typeof event.minimumWidth === 'number' ||
|
|
5345
5589
|
typeof event.minimumWidth === 'function') {
|
|
@@ -5422,6 +5666,17 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5422
5666
|
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5423
5667
|
this.addDisposables(this._onDidLocationChange);
|
|
5424
5668
|
}
|
|
5669
|
+
close() {
|
|
5670
|
+
if (!this._group) {
|
|
5671
|
+
return;
|
|
5672
|
+
}
|
|
5673
|
+
return this.accessor.removeGroup(this._group);
|
|
5674
|
+
}
|
|
5675
|
+
getWindow() {
|
|
5676
|
+
return this.location.type === 'popout'
|
|
5677
|
+
? this.location.getWindow()
|
|
5678
|
+
: window;
|
|
5679
|
+
}
|
|
5425
5680
|
moveTo(options) {
|
|
5426
5681
|
var _a, _b, _c;
|
|
5427
5682
|
if (!this._group) {
|
|
@@ -5429,14 +5684,23 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5429
5684
|
}
|
|
5430
5685
|
const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({
|
|
5431
5686
|
direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),
|
|
5687
|
+
skipSetActive: true,
|
|
5688
|
+
});
|
|
5689
|
+
this.accessor.moveGroupOrPanel({
|
|
5690
|
+
from: { groupId: this._group.id },
|
|
5691
|
+
to: {
|
|
5692
|
+
group,
|
|
5693
|
+
position: options.group
|
|
5694
|
+
? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
|
|
5695
|
+
: 'center',
|
|
5696
|
+
},
|
|
5432
5697
|
});
|
|
5433
|
-
this.accessor.moveGroupOrPanel(group, this._group.id, undefined, options.group ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center' : 'center');
|
|
5434
5698
|
}
|
|
5435
5699
|
maximize() {
|
|
5436
5700
|
if (!this._group) {
|
|
5437
5701
|
throw new Error(NOT_INITIALIZED_MESSAGE);
|
|
5438
5702
|
}
|
|
5439
|
-
if (this.location !== 'grid') {
|
|
5703
|
+
if (this.location.type !== 'grid') {
|
|
5440
5704
|
// only grid groups can be maximized
|
|
5441
5705
|
return;
|
|
5442
5706
|
}
|
|
@@ -5493,6 +5757,12 @@ class DockviewGroupPanel extends GridviewPanel {
|
|
|
5493
5757
|
this.api.initialize(this); // cannot use 'this' after after 'super' call
|
|
5494
5758
|
this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);
|
|
5495
5759
|
}
|
|
5760
|
+
focus() {
|
|
5761
|
+
if (!this.api.isActive) {
|
|
5762
|
+
this.api.setActive();
|
|
5763
|
+
}
|
|
5764
|
+
super.focus();
|
|
5765
|
+
}
|
|
5496
5766
|
initialize() {
|
|
5497
5767
|
this._model.initialize();
|
|
5498
5768
|
}
|
|
@@ -5538,6 +5808,9 @@ function isGroupOptionsWithGroup(data) {
|
|
|
5538
5808
|
}
|
|
5539
5809
|
|
|
5540
5810
|
class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
5811
|
+
get location() {
|
|
5812
|
+
return this.group.api.location;
|
|
5813
|
+
}
|
|
5541
5814
|
get title() {
|
|
5542
5815
|
return this.panel.title;
|
|
5543
5816
|
}
|
|
@@ -5548,16 +5821,14 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5548
5821
|
return this.panel.renderer;
|
|
5549
5822
|
}
|
|
5550
5823
|
set group(value) {
|
|
5551
|
-
const
|
|
5552
|
-
this._group
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
this.
|
|
5556
|
-
|
|
5824
|
+
const oldGroup = this._group;
|
|
5825
|
+
if (this._group !== value) {
|
|
5826
|
+
this._group = value;
|
|
5827
|
+
this._onDidGroupChange.fire({});
|
|
5828
|
+
this.setupGroupEventListeners(oldGroup);
|
|
5829
|
+
this._onDidLocationChange.fire({
|
|
5830
|
+
location: this.group.api.location,
|
|
5557
5831
|
});
|
|
5558
|
-
if (this.isGroupActive !== isOldGroupActive) {
|
|
5559
|
-
this._onDidActiveGroupChange.fire();
|
|
5560
|
-
}
|
|
5561
5832
|
}
|
|
5562
5833
|
}
|
|
5563
5834
|
get group() {
|
|
@@ -5575,14 +5846,27 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5575
5846
|
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
5576
5847
|
this._onDidRendererChange = new Emitter();
|
|
5577
5848
|
this.onDidRendererChange = this._onDidRendererChange.event;
|
|
5578
|
-
this.
|
|
5849
|
+
this._onDidLocationChange = new Emitter();
|
|
5850
|
+
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5851
|
+
this.groupEventsDisposable = new MutableDisposable();
|
|
5579
5852
|
this.initialize(panel);
|
|
5580
5853
|
this._group = group;
|
|
5581
|
-
this.
|
|
5854
|
+
this.setupGroupEventListeners();
|
|
5855
|
+
this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);
|
|
5856
|
+
}
|
|
5857
|
+
getWindow() {
|
|
5858
|
+
return this.group.api.getWindow();
|
|
5582
5859
|
}
|
|
5583
5860
|
moveTo(options) {
|
|
5584
5861
|
var _a;
|
|
5585
|
-
this.accessor.moveGroupOrPanel(
|
|
5862
|
+
this.accessor.moveGroupOrPanel({
|
|
5863
|
+
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
5864
|
+
to: {
|
|
5865
|
+
group: options.group,
|
|
5866
|
+
position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
|
|
5867
|
+
index: options.index,
|
|
5868
|
+
},
|
|
5869
|
+
});
|
|
5586
5870
|
}
|
|
5587
5871
|
setTitle(title) {
|
|
5588
5872
|
this.panel.setTitle(title);
|
|
@@ -5602,6 +5886,35 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5602
5886
|
exitMaximized() {
|
|
5603
5887
|
this.group.api.exitMaximized();
|
|
5604
5888
|
}
|
|
5889
|
+
setupGroupEventListeners(previousGroup) {
|
|
5890
|
+
var _a;
|
|
5891
|
+
let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state
|
|
5892
|
+
this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {
|
|
5893
|
+
if (!event.isVisible && this.isVisible) {
|
|
5894
|
+
this._onDidVisibilityChange.fire(event);
|
|
5895
|
+
}
|
|
5896
|
+
else if (event.isVisible &&
|
|
5897
|
+
!this.isVisible &&
|
|
5898
|
+
this.group.model.isPanelActive(this.panel)) {
|
|
5899
|
+
this._onDidVisibilityChange.fire(event);
|
|
5900
|
+
}
|
|
5901
|
+
}), this.group.api.onDidLocationChange((event) => {
|
|
5902
|
+
if (this.group !== this.panel.group) {
|
|
5903
|
+
return;
|
|
5904
|
+
}
|
|
5905
|
+
this._onDidLocationChange.fire(event);
|
|
5906
|
+
}), this.group.api.onDidActiveChange(() => {
|
|
5907
|
+
if (this.group !== this.panel.group) {
|
|
5908
|
+
return;
|
|
5909
|
+
}
|
|
5910
|
+
if (_trackGroupActive !== this.isGroupActive) {
|
|
5911
|
+
_trackGroupActive = this.isGroupActive;
|
|
5912
|
+
this._onDidActiveGroupChange.fire({
|
|
5913
|
+
isActive: this.isGroupActive,
|
|
5914
|
+
});
|
|
5915
|
+
}
|
|
5916
|
+
}));
|
|
5917
|
+
}
|
|
5605
5918
|
}
|
|
5606
5919
|
|
|
5607
5920
|
class DockviewPanel extends CompositeDisposable {
|
|
@@ -5643,7 +5956,14 @@ class DockviewPanel extends CompositeDisposable {
|
|
|
5643
5956
|
this.setTitle(params.title);
|
|
5644
5957
|
}
|
|
5645
5958
|
focus() {
|
|
5646
|
-
|
|
5959
|
+
const event = new WillFocusEvent();
|
|
5960
|
+
this.api._onWillFocus.fire(event);
|
|
5961
|
+
if (event.defaultPrevented) {
|
|
5962
|
+
return;
|
|
5963
|
+
}
|
|
5964
|
+
if (!this.api.isActive) {
|
|
5965
|
+
this.api.setActive();
|
|
5966
|
+
}
|
|
5647
5967
|
}
|
|
5648
5968
|
toJSON() {
|
|
5649
5969
|
return {
|
|
@@ -5700,20 +6020,40 @@ class DockviewPanel extends CompositeDisposable {
|
|
|
5700
6020
|
},
|
|
5701
6021
|
});
|
|
5702
6022
|
}
|
|
5703
|
-
updateParentGroup(group,
|
|
6023
|
+
updateParentGroup(group, options) {
|
|
5704
6024
|
this._group = group;
|
|
5705
|
-
this.api.group =
|
|
6025
|
+
this.api.group = this._group;
|
|
5706
6026
|
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
5707
|
-
this.api.
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
|
|
5712
|
-
|
|
5713
|
-
|
|
6027
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6028
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {
|
|
6029
|
+
if (this.api.isActive !== isActive) {
|
|
6030
|
+
this.api._onDidActiveChange.fire({
|
|
6031
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6032
|
+
});
|
|
6033
|
+
}
|
|
6034
|
+
}
|
|
6035
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6036
|
+
this.api._onDidVisibilityChange.fire({
|
|
6037
|
+
isVisible: isPanelVisible,
|
|
6038
|
+
});
|
|
6039
|
+
}
|
|
6040
|
+
}
|
|
6041
|
+
runEvents() {
|
|
6042
|
+
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
6043
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6044
|
+
if (this.api.isActive !== isActive) {
|
|
6045
|
+
this.api._onDidActiveChange.fire({
|
|
6046
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6047
|
+
});
|
|
6048
|
+
}
|
|
6049
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6050
|
+
this.api._onDidVisibilityChange.fire({
|
|
6051
|
+
isVisible: isPanelVisible,
|
|
6052
|
+
});
|
|
6053
|
+
}
|
|
5714
6054
|
}
|
|
5715
6055
|
layout(width, height) {
|
|
5716
|
-
//
|
|
6056
|
+
// TODO: Can we somehow do height without header height or indicate what the header height is?
|
|
5717
6057
|
this.api._onDidDimensionChange.fire({
|
|
5718
6058
|
width,
|
|
5719
6059
|
height: height,
|
|
@@ -5835,8 +6175,6 @@ class DockviewPanelModel {
|
|
|
5835
6175
|
this.id = id;
|
|
5836
6176
|
this.contentComponent = contentComponent;
|
|
5837
6177
|
this.tabComponent = tabComponent;
|
|
5838
|
-
this._group = null;
|
|
5839
|
-
this._isPanelVisible = null;
|
|
5840
6178
|
this._content = this.createContentComponent(this.id, contentComponent);
|
|
5841
6179
|
this._tab = this.createTabComponent(this.id, tabComponent);
|
|
5842
6180
|
}
|
|
@@ -5844,25 +6182,8 @@ class DockviewPanelModel {
|
|
|
5844
6182
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
5845
6183
|
this.tab.init(params);
|
|
5846
6184
|
}
|
|
5847
|
-
updateParentGroup(
|
|
5848
|
-
|
|
5849
|
-
this._group = group;
|
|
5850
|
-
if (this._content.onGroupChange) {
|
|
5851
|
-
this._content.onGroupChange(group);
|
|
5852
|
-
}
|
|
5853
|
-
if (this._tab.onGroupChange) {
|
|
5854
|
-
this._tab.onGroupChange(group);
|
|
5855
|
-
}
|
|
5856
|
-
}
|
|
5857
|
-
if (isPanelVisible !== this._isPanelVisible) {
|
|
5858
|
-
this._isPanelVisible = isPanelVisible;
|
|
5859
|
-
if (this._content.onPanelVisibleChange) {
|
|
5860
|
-
this._content.onPanelVisibleChange(isPanelVisible);
|
|
5861
|
-
}
|
|
5862
|
-
if (this._tab.onPanelVisibleChange) {
|
|
5863
|
-
this._tab.onPanelVisibleChange(isPanelVisible);
|
|
5864
|
-
}
|
|
5865
|
-
}
|
|
6185
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6186
|
+
// noop
|
|
5866
6187
|
}
|
|
5867
6188
|
layout(width, height) {
|
|
5868
6189
|
var _a, _b;
|
|
@@ -6295,117 +6616,6 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6295
6616
|
}
|
|
6296
6617
|
}
|
|
6297
6618
|
|
|
6298
|
-
class PopoutWindow extends CompositeDisposable {
|
|
6299
|
-
constructor(id, className, options) {
|
|
6300
|
-
super();
|
|
6301
|
-
this.id = id;
|
|
6302
|
-
this.className = className;
|
|
6303
|
-
this.options = options;
|
|
6304
|
-
this._onDidClose = new Emitter();
|
|
6305
|
-
this.onDidClose = this._onDidClose.event;
|
|
6306
|
-
this._window = null;
|
|
6307
|
-
this.addDisposables(this._onDidClose, {
|
|
6308
|
-
dispose: () => {
|
|
6309
|
-
this.close();
|
|
6310
|
-
},
|
|
6311
|
-
});
|
|
6312
|
-
}
|
|
6313
|
-
dimensions() {
|
|
6314
|
-
if (!this._window) {
|
|
6315
|
-
return null;
|
|
6316
|
-
}
|
|
6317
|
-
const left = this._window.value.screenX;
|
|
6318
|
-
const top = this._window.value.screenY;
|
|
6319
|
-
const width = this._window.value.innerWidth;
|
|
6320
|
-
const height = this._window.value.innerHeight;
|
|
6321
|
-
return { top, left, width, height };
|
|
6322
|
-
}
|
|
6323
|
-
close() {
|
|
6324
|
-
if (this._window) {
|
|
6325
|
-
this._window.disposable.dispose();
|
|
6326
|
-
this._window.value.close();
|
|
6327
|
-
this._window = null;
|
|
6328
|
-
}
|
|
6329
|
-
}
|
|
6330
|
-
open(content) {
|
|
6331
|
-
if (this._window) {
|
|
6332
|
-
throw new Error('instance of popout window is already open');
|
|
6333
|
-
}
|
|
6334
|
-
const url = `${this.options.url}`;
|
|
6335
|
-
const features = Object.entries({
|
|
6336
|
-
top: this.options.top,
|
|
6337
|
-
left: this.options.left,
|
|
6338
|
-
width: this.options.width,
|
|
6339
|
-
height: this.options.height,
|
|
6340
|
-
})
|
|
6341
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
6342
|
-
.join(',');
|
|
6343
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6344
|
-
const externalWindow = window.open(url, this.id, features);
|
|
6345
|
-
if (!externalWindow) {
|
|
6346
|
-
return;
|
|
6347
|
-
}
|
|
6348
|
-
const disposable = new CompositeDisposable();
|
|
6349
|
-
this._window = { value: externalWindow, disposable };
|
|
6350
|
-
const cleanUp = () => {
|
|
6351
|
-
this._onDidClose.fire();
|
|
6352
|
-
this._window = null;
|
|
6353
|
-
};
|
|
6354
|
-
// prevent any default content from loading
|
|
6355
|
-
// externalWindow.document.body.replaceWith(document.createElement('div'));
|
|
6356
|
-
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6357
|
-
cleanUp();
|
|
6358
|
-
this.close();
|
|
6359
|
-
}));
|
|
6360
|
-
externalWindow.addEventListener('load', () => {
|
|
6361
|
-
const externalDocument = externalWindow.document;
|
|
6362
|
-
externalDocument.title = document.title;
|
|
6363
|
-
const div = document.createElement('div');
|
|
6364
|
-
div.classList.add('dv-popout-window');
|
|
6365
|
-
div.style.position = 'absolute';
|
|
6366
|
-
div.style.width = '100%';
|
|
6367
|
-
div.style.height = '100%';
|
|
6368
|
-
div.style.top = '0px';
|
|
6369
|
-
div.style.left = '0px';
|
|
6370
|
-
div.classList.add(this.className);
|
|
6371
|
-
div.appendChild(content);
|
|
6372
|
-
externalDocument.body.replaceChildren(div);
|
|
6373
|
-
externalDocument.body.classList.add(this.className);
|
|
6374
|
-
addStyles(externalDocument, window.document.styleSheets);
|
|
6375
|
-
externalWindow.addEventListener('beforeunload', () => {
|
|
6376
|
-
// TODO: indicate external window is closing
|
|
6377
|
-
cleanUp();
|
|
6378
|
-
});
|
|
6379
|
-
});
|
|
6380
|
-
}
|
|
6381
|
-
}
|
|
6382
|
-
|
|
6383
|
-
class DockviewPopoutGroupPanel extends CompositeDisposable {
|
|
6384
|
-
constructor(id, group, options) {
|
|
6385
|
-
var _a;
|
|
6386
|
-
super();
|
|
6387
|
-
this.id = id;
|
|
6388
|
-
this.group = group;
|
|
6389
|
-
this.options = options;
|
|
6390
|
-
this.window = new PopoutWindow(id, (_a = options.className) !== null && _a !== void 0 ? _a : '', {
|
|
6391
|
-
url: this.options.popoutUrl,
|
|
6392
|
-
left: this.options.box.left,
|
|
6393
|
-
top: this.options.box.top,
|
|
6394
|
-
width: this.options.box.width,
|
|
6395
|
-
height: this.options.box.height,
|
|
6396
|
-
});
|
|
6397
|
-
group.model.location = 'popout';
|
|
6398
|
-
this.addDisposables(this.window, {
|
|
6399
|
-
dispose: () => {
|
|
6400
|
-
group.model.location = 'grid';
|
|
6401
|
-
},
|
|
6402
|
-
}, this.window.onDidClose(() => {
|
|
6403
|
-
this.dispose();
|
|
6404
|
-
}));
|
|
6405
|
-
this.window.open(group.element);
|
|
6406
|
-
}
|
|
6407
|
-
}
|
|
6408
|
-
|
|
6409
6619
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6410
6620
|
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6411
6621
|
|
|
@@ -6419,11 +6629,13 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6419
6629
|
super();
|
|
6420
6630
|
this.element = element;
|
|
6421
6631
|
this.map = {};
|
|
6632
|
+
this._disposed = false;
|
|
6422
6633
|
this.addDisposables(Disposable.from(() => {
|
|
6423
6634
|
for (const value of Object.values(this.map)) {
|
|
6424
6635
|
value.disposable.dispose();
|
|
6425
6636
|
value.destroy.dispose();
|
|
6426
6637
|
}
|
|
6638
|
+
this._disposed = true;
|
|
6427
6639
|
}));
|
|
6428
6640
|
}
|
|
6429
6641
|
detatch(panel) {
|
|
@@ -6463,7 +6675,7 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6463
6675
|
focusContainer.style.top = `${box.top - box2.top}px`;
|
|
6464
6676
|
focusContainer.style.width = `${box.width}px`;
|
|
6465
6677
|
focusContainer.style.height = `${box.height}px`;
|
|
6466
|
-
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location === 'floating');
|
|
6678
|
+
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');
|
|
6467
6679
|
};
|
|
6468
6680
|
const visibilityChanged = () => {
|
|
6469
6681
|
if (panel.api.isVisible) {
|
|
@@ -6509,8 +6721,11 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6509
6721
|
resize();
|
|
6510
6722
|
}));
|
|
6511
6723
|
this.map[panel.api.id].destroy = Disposable.from(() => {
|
|
6512
|
-
|
|
6513
|
-
|
|
6724
|
+
var _a;
|
|
6725
|
+
if (panel.view.content.element.parentElement === focusContainer) {
|
|
6726
|
+
focusContainer.removeChild(panel.view.content.element);
|
|
6727
|
+
}
|
|
6728
|
+
(_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
|
|
6514
6729
|
});
|
|
6515
6730
|
queueMicrotask(() => {
|
|
6516
6731
|
if (this.isDisposed) {
|
|
@@ -6531,11 +6746,187 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6531
6746
|
}
|
|
6532
6747
|
}
|
|
6533
6748
|
|
|
6749
|
+
/******************************************************************************
|
|
6750
|
+
Copyright (c) Microsoft Corporation.
|
|
6751
|
+
|
|
6752
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6753
|
+
purpose with or without fee is hereby granted.
|
|
6754
|
+
|
|
6755
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6756
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6757
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6758
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6759
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6760
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6761
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6762
|
+
***************************************************************************** */
|
|
6763
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
6764
|
+
|
|
6765
|
+
|
|
6766
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
6767
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6768
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6769
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6770
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6771
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
6772
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
6773
|
+
});
|
|
6774
|
+
}
|
|
6775
|
+
|
|
6776
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
6777
|
+
var e = new Error(message);
|
|
6778
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
6779
|
+
};
|
|
6780
|
+
|
|
6781
|
+
class PopoutWindow extends CompositeDisposable {
|
|
6782
|
+
get window() {
|
|
6783
|
+
var _a, _b;
|
|
6784
|
+
return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
6785
|
+
}
|
|
6786
|
+
constructor(target, className, options) {
|
|
6787
|
+
super();
|
|
6788
|
+
this.target = target;
|
|
6789
|
+
this.className = className;
|
|
6790
|
+
this.options = options;
|
|
6791
|
+
this._onWillClose = new Emitter();
|
|
6792
|
+
this.onWillClose = this._onWillClose.event;
|
|
6793
|
+
this._onDidClose = new Emitter();
|
|
6794
|
+
this.onDidClose = this._onDidClose.event;
|
|
6795
|
+
this._window = null;
|
|
6796
|
+
this.addDisposables(this._onWillClose, this._onDidClose, {
|
|
6797
|
+
dispose: () => {
|
|
6798
|
+
this.close();
|
|
6799
|
+
},
|
|
6800
|
+
});
|
|
6801
|
+
}
|
|
6802
|
+
dimensions() {
|
|
6803
|
+
if (!this._window) {
|
|
6804
|
+
return null;
|
|
6805
|
+
}
|
|
6806
|
+
const left = this._window.value.screenX;
|
|
6807
|
+
const top = this._window.value.screenY;
|
|
6808
|
+
const width = this._window.value.innerWidth;
|
|
6809
|
+
const height = this._window.value.innerHeight;
|
|
6810
|
+
return { top, left, width, height };
|
|
6811
|
+
}
|
|
6812
|
+
close() {
|
|
6813
|
+
var _a, _b;
|
|
6814
|
+
if (this._window) {
|
|
6815
|
+
this._onWillClose.fire();
|
|
6816
|
+
(_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6817
|
+
id: this.target,
|
|
6818
|
+
window: this._window.value,
|
|
6819
|
+
});
|
|
6820
|
+
this._window.disposable.dispose();
|
|
6821
|
+
this._window.value.close();
|
|
6822
|
+
this._window = null;
|
|
6823
|
+
this._onDidClose.fire();
|
|
6824
|
+
}
|
|
6825
|
+
}
|
|
6826
|
+
open() {
|
|
6827
|
+
var _a, _b;
|
|
6828
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6829
|
+
if (this._window) {
|
|
6830
|
+
throw new Error('instance of popout window is already open');
|
|
6831
|
+
}
|
|
6832
|
+
const url = `${this.options.url}`;
|
|
6833
|
+
const features = Object.entries({
|
|
6834
|
+
top: this.options.top,
|
|
6835
|
+
left: this.options.left,
|
|
6836
|
+
width: this.options.width,
|
|
6837
|
+
height: this.options.height,
|
|
6838
|
+
})
|
|
6839
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
6840
|
+
.join(',');
|
|
6841
|
+
/**
|
|
6842
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6843
|
+
*/
|
|
6844
|
+
const externalWindow = window.open(url, this.target, features);
|
|
6845
|
+
if (!externalWindow) {
|
|
6846
|
+
/**
|
|
6847
|
+
* Popup blocked
|
|
6848
|
+
*/
|
|
6849
|
+
return null;
|
|
6850
|
+
}
|
|
6851
|
+
const disposable = new CompositeDisposable();
|
|
6852
|
+
this._window = { value: externalWindow, disposable };
|
|
6853
|
+
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6854
|
+
/**
|
|
6855
|
+
* before the main window closes we should close this popup too
|
|
6856
|
+
* to be good citizens
|
|
6857
|
+
*
|
|
6858
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6859
|
+
*/
|
|
6860
|
+
this.close();
|
|
6861
|
+
}));
|
|
6862
|
+
const container = this.createPopoutWindowContainer();
|
|
6863
|
+
if (this.className) {
|
|
6864
|
+
container.classList.add(this.className);
|
|
6865
|
+
}
|
|
6866
|
+
(_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6867
|
+
id: this.target,
|
|
6868
|
+
window: externalWindow,
|
|
6869
|
+
});
|
|
6870
|
+
return new Promise((resolve) => {
|
|
6871
|
+
externalWindow.addEventListener('unload', (e) => {
|
|
6872
|
+
// if page fails to load before unloading
|
|
6873
|
+
// this.close();
|
|
6874
|
+
});
|
|
6875
|
+
externalWindow.addEventListener('load', () => {
|
|
6876
|
+
/**
|
|
6877
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
|
|
6878
|
+
*/
|
|
6879
|
+
const externalDocument = externalWindow.document;
|
|
6880
|
+
externalDocument.title = document.title;
|
|
6881
|
+
externalDocument.body.appendChild(container);
|
|
6882
|
+
addStyles(externalDocument, window.document.styleSheets);
|
|
6883
|
+
/**
|
|
6884
|
+
* beforeunload must be registered after load for reasons I could not determine
|
|
6885
|
+
* otherwise the beforeunload event will not fire when the window is closed
|
|
6886
|
+
*/
|
|
6887
|
+
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
6888
|
+
/**
|
|
6889
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6890
|
+
*/
|
|
6891
|
+
this.close();
|
|
6892
|
+
});
|
|
6893
|
+
resolve(container);
|
|
6894
|
+
});
|
|
6895
|
+
});
|
|
6896
|
+
});
|
|
6897
|
+
}
|
|
6898
|
+
createPopoutWindowContainer() {
|
|
6899
|
+
const el = document.createElement('div');
|
|
6900
|
+
el.classList.add('dv-popout-window');
|
|
6901
|
+
el.id = 'dv-popout-window';
|
|
6902
|
+
el.style.position = 'absolute';
|
|
6903
|
+
el.style.width = '100%';
|
|
6904
|
+
el.style.height = '100%';
|
|
6905
|
+
el.style.top = '0px';
|
|
6906
|
+
el.style.left = '0px';
|
|
6907
|
+
return el;
|
|
6908
|
+
}
|
|
6909
|
+
}
|
|
6910
|
+
|
|
6534
6911
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
6535
6912
|
activationSize: { type: 'pixels', value: 10 },
|
|
6536
6913
|
size: { type: 'pixels', value: 20 },
|
|
6537
6914
|
};
|
|
6538
|
-
function
|
|
6915
|
+
function moveGroupWithoutDestroying(options) {
|
|
6916
|
+
const activePanel = options.from.activePanel;
|
|
6917
|
+
const panels = [...options.from.panels].map((panel) => {
|
|
6918
|
+
const removedPanel = options.from.model.removePanel(panel);
|
|
6919
|
+
options.from.model.renderContainer.detatch(panel);
|
|
6920
|
+
return removedPanel;
|
|
6921
|
+
});
|
|
6922
|
+
panels.forEach((panel) => {
|
|
6923
|
+
options.to.model.openPanel(panel, {
|
|
6924
|
+
skipSetActive: activePanel !== panel,
|
|
6925
|
+
skipSetGroupActive: true,
|
|
6926
|
+
});
|
|
6927
|
+
});
|
|
6928
|
+
}
|
|
6929
|
+
function getDockviewTheme(element) {
|
|
6539
6930
|
function toClassList(element) {
|
|
6540
6931
|
const list = [];
|
|
6541
6932
|
for (let i = 0; i < element.classList.length; i++) {
|
|
@@ -6586,6 +6977,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6586
6977
|
styles: options.styles,
|
|
6587
6978
|
parentElement: options.parentElement,
|
|
6588
6979
|
disableAutoResizing: options.disableAutoResizing,
|
|
6980
|
+
locked: options.locked,
|
|
6589
6981
|
});
|
|
6590
6982
|
this.nextGroupId = sequentialNumberGenerator();
|
|
6591
6983
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -6596,6 +6988,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
6596
6988
|
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
6597
6989
|
this._onDidDrop = new Emitter();
|
|
6598
6990
|
this.onDidDrop = this._onDidDrop.event;
|
|
6991
|
+
this._onWillDrop = new Emitter();
|
|
6992
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
6993
|
+
this._onWillShowOverlay = new Emitter();
|
|
6994
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
6599
6995
|
this._onDidRemovePanel = new Emitter();
|
|
6600
6996
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
6601
6997
|
this._onDidAddPanel = new Emitter();
|
|
@@ -6604,15 +7000,36 @@ class DockviewComponent extends BaseGrid {
|
|
|
6604
7000
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
6605
7001
|
this._onDidActivePanelChange = new Emitter();
|
|
6606
7002
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7003
|
+
this._onDidMovePanel = new Emitter();
|
|
6607
7004
|
this._floatingGroups = [];
|
|
6608
7005
|
this._popoutGroups = [];
|
|
7006
|
+
this._ignoreEvents = 0;
|
|
7007
|
+
this._onDidRemoveGroup = new Emitter();
|
|
7008
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7009
|
+
this._onDidAddGroup = new Emitter();
|
|
7010
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
7011
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
7012
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7013
|
+
this._moving = false;
|
|
6609
7014
|
const gready = document.createElement('div');
|
|
6610
7015
|
gready.className = 'dv-overlay-render-container';
|
|
6611
7016
|
this.gridview.element.appendChild(gready);
|
|
6612
7017
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
6613
7018
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
6614
7019
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
6615
|
-
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop,
|
|
7020
|
+
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {
|
|
7021
|
+
if (!this._moving) {
|
|
7022
|
+
this._onDidAddGroup.fire(event);
|
|
7023
|
+
}
|
|
7024
|
+
}), this.onDidRemove((event) => {
|
|
7025
|
+
if (!this._moving) {
|
|
7026
|
+
this._onDidRemoveGroup.fire(event);
|
|
7027
|
+
}
|
|
7028
|
+
}), this.onDidActiveChange((event) => {
|
|
7029
|
+
if (!this._moving) {
|
|
7030
|
+
this._onDidActiveGroupChange.fire(event);
|
|
7031
|
+
}
|
|
7032
|
+
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
6616
7033
|
this.updateWatermark();
|
|
6617
7034
|
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
6618
7035
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -6623,7 +7040,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6623
7040
|
}
|
|
6624
7041
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
6625
7042
|
for (const group of [...this._popoutGroups]) {
|
|
6626
|
-
group.dispose();
|
|
7043
|
+
group.disposable.dispose();
|
|
6627
7044
|
}
|
|
6628
7045
|
}));
|
|
6629
7046
|
this._options = options;
|
|
@@ -6669,7 +7086,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6669
7086
|
return this.options.showDndOverlay({
|
|
6670
7087
|
nativeEvent: event,
|
|
6671
7088
|
position: position,
|
|
6672
|
-
target:
|
|
7089
|
+
target: 'edge',
|
|
6673
7090
|
getData: getPanelData,
|
|
6674
7091
|
});
|
|
6675
7092
|
}
|
|
@@ -6678,88 +7095,259 @@ class DockviewComponent extends BaseGrid {
|
|
|
6678
7095
|
acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
|
|
6679
7096
|
overlayModel: (_b = this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,
|
|
6680
7097
|
});
|
|
6681
|
-
this.addDisposables(this._rootDropTarget.
|
|
7098
|
+
this.addDisposables(this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {
|
|
7099
|
+
if (this.gridview.length > 0 && event.position === 'center') {
|
|
7100
|
+
// option only available when no panels in primary grid
|
|
7101
|
+
return;
|
|
7102
|
+
}
|
|
7103
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
7104
|
+
kind: 'edge',
|
|
7105
|
+
}));
|
|
7106
|
+
}), this._rootDropTarget.onDrop((event) => {
|
|
6682
7107
|
var _a;
|
|
7108
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
7109
|
+
nativeEvent: event.nativeEvent,
|
|
7110
|
+
position: event.position,
|
|
7111
|
+
panel: undefined,
|
|
7112
|
+
api: this._api,
|
|
7113
|
+
group: undefined,
|
|
7114
|
+
getData: getPanelData,
|
|
7115
|
+
kind: 'edge',
|
|
7116
|
+
});
|
|
7117
|
+
this._onWillDrop.fire(willDropEvent);
|
|
7118
|
+
if (willDropEvent.defaultPrevented) {
|
|
7119
|
+
return;
|
|
7120
|
+
}
|
|
6683
7121
|
const data = getPanelData();
|
|
6684
7122
|
if (data) {
|
|
6685
|
-
this.moveGroupOrPanel(
|
|
7123
|
+
this.moveGroupOrPanel({
|
|
7124
|
+
from: {
|
|
7125
|
+
groupId: data.groupId,
|
|
7126
|
+
panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
|
|
7127
|
+
},
|
|
7128
|
+
to: {
|
|
7129
|
+
group: this.orthogonalize(event.position),
|
|
7130
|
+
position: 'center',
|
|
7131
|
+
},
|
|
7132
|
+
});
|
|
6686
7133
|
}
|
|
6687
7134
|
else {
|
|
6688
|
-
this._onDidDrop.fire(
|
|
7135
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
7136
|
+
nativeEvent: event.nativeEvent,
|
|
7137
|
+
position: event.position,
|
|
7138
|
+
panel: undefined,
|
|
7139
|
+
api: this._api,
|
|
7140
|
+
group: undefined,
|
|
7141
|
+
getData: getPanelData,
|
|
7142
|
+
}));
|
|
6689
7143
|
}
|
|
6690
7144
|
}), this._rootDropTarget);
|
|
6691
7145
|
this._api = new DockviewApi(this);
|
|
6692
7146
|
this.updateWatermark();
|
|
6693
7147
|
}
|
|
6694
|
-
addPopoutGroup(
|
|
6695
|
-
var _a;
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
7148
|
+
addPopoutGroup(itemToPopout, options) {
|
|
7149
|
+
var _a, _b, _c;
|
|
7150
|
+
if (itemToPopout instanceof DockviewPanel &&
|
|
7151
|
+
itemToPopout.group.size === 1) {
|
|
7152
|
+
return this.addPopoutGroup(itemToPopout.group);
|
|
7153
|
+
}
|
|
7154
|
+
const theme = getDockviewTheme(this.gridview.element);
|
|
7155
|
+
const element = this.element;
|
|
7156
|
+
function getBox() {
|
|
7157
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7158
|
+
return options.position;
|
|
7159
|
+
}
|
|
7160
|
+
if (itemToPopout instanceof DockviewGroupPanel) {
|
|
7161
|
+
return itemToPopout.element.getBoundingClientRect();
|
|
7162
|
+
}
|
|
7163
|
+
if (itemToPopout.group) {
|
|
7164
|
+
return itemToPopout.group.element.getBoundingClientRect();
|
|
7165
|
+
}
|
|
7166
|
+
return element.getBoundingClientRect();
|
|
7167
|
+
}
|
|
7168
|
+
const box = getBox();
|
|
7169
|
+
const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId(); //item.id;
|
|
7170
|
+
if (itemToPopout.api.location.type === 'grid') {
|
|
7171
|
+
itemToPopout.api.setVisible(false);
|
|
7172
|
+
}
|
|
7173
|
+
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7174
|
+
theme !== null && theme !== void 0 ? theme : '', {
|
|
7175
|
+
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7176
|
+
left: window.screenX + box.left,
|
|
7177
|
+
top: window.screenY + box.top,
|
|
7178
|
+
width: box.width,
|
|
7179
|
+
height: box.height,
|
|
7180
|
+
onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
|
|
7181
|
+
onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
|
|
7182
|
+
});
|
|
7183
|
+
const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {
|
|
7184
|
+
popoutWindowDisposable.dispose();
|
|
7185
|
+
}));
|
|
7186
|
+
return _window
|
|
7187
|
+
.open()
|
|
7188
|
+
.then((popoutContainer) => {
|
|
7189
|
+
var _a;
|
|
7190
|
+
if (_window.isDisposed) {
|
|
7191
|
+
return;
|
|
6707
7192
|
}
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
if (!box) {
|
|
6712
|
-
box = group.element.getBoundingClientRect();
|
|
7193
|
+
if (popoutContainer === null) {
|
|
7194
|
+
popoutWindowDisposable.dispose();
|
|
7195
|
+
return;
|
|
6713
7196
|
}
|
|
6714
|
-
const
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6730
|
-
|
|
7197
|
+
const gready = document.createElement('div');
|
|
7198
|
+
gready.className = 'dv-overlay-render-container';
|
|
7199
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7200
|
+
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
7201
|
+
? itemToPopout.group
|
|
7202
|
+
: itemToPopout;
|
|
7203
|
+
const referenceLocation = itemToPopout.api.location.type;
|
|
7204
|
+
const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
7205
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7206
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
|
|
7207
|
+
this._onDidAddGroup.fire(group);
|
|
7208
|
+
}
|
|
7209
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
7210
|
+
this.movingLock(() => {
|
|
7211
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7212
|
+
group.model.openPanel(panel);
|
|
7213
|
+
});
|
|
7214
|
+
}
|
|
7215
|
+
else {
|
|
7216
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7217
|
+
from: referenceGroup,
|
|
7218
|
+
to: group,
|
|
7219
|
+
}));
|
|
7220
|
+
switch (referenceLocation) {
|
|
7221
|
+
case 'grid':
|
|
7222
|
+
referenceGroup.api.setVisible(false);
|
|
7223
|
+
break;
|
|
7224
|
+
case 'floating':
|
|
7225
|
+
case 'popout':
|
|
7226
|
+
this.removeGroup(referenceGroup);
|
|
7227
|
+
break;
|
|
7228
|
+
}
|
|
7229
|
+
}
|
|
7230
|
+
popoutContainer.classList.add('dv-dockview');
|
|
7231
|
+
popoutContainer.style.overflow = 'hidden';
|
|
7232
|
+
popoutContainer.appendChild(gready);
|
|
7233
|
+
popoutContainer.appendChild(group.element);
|
|
7234
|
+
group.model.location = {
|
|
7235
|
+
type: 'popout',
|
|
7236
|
+
getWindow: () => _window.window,
|
|
7237
|
+
};
|
|
7238
|
+
this.doSetGroupAndPanelActive(group);
|
|
7239
|
+
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
7240
|
+
var _a;
|
|
7241
|
+
if (event.isActive) {
|
|
7242
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7243
|
+
}
|
|
7244
|
+
}), group.api.onWillFocus(() => {
|
|
7245
|
+
var _a;
|
|
7246
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7247
|
+
}));
|
|
7248
|
+
let returnedGroup;
|
|
7249
|
+
const value = {
|
|
7250
|
+
window: _window,
|
|
7251
|
+
popoutGroup: group,
|
|
7252
|
+
referenceGroup: this.getPanel(referenceGroup.id)
|
|
7253
|
+
? referenceGroup.id
|
|
7254
|
+
: undefined,
|
|
7255
|
+
disposable: {
|
|
7256
|
+
dispose: () => {
|
|
7257
|
+
popoutWindowDisposable.dispose();
|
|
7258
|
+
return returnedGroup;
|
|
7259
|
+
},
|
|
7260
|
+
},
|
|
7261
|
+
};
|
|
7262
|
+
popoutWindowDisposable.addDisposables(
|
|
7263
|
+
/**
|
|
7264
|
+
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
7265
|
+
* since we can reply on the window resize event as we will occupy the full
|
|
7266
|
+
* window dimensions
|
|
7267
|
+
*/
|
|
7268
|
+
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
7269
|
+
group.layout(window.innerWidth, window.innerHeight);
|
|
7270
|
+
}), overlayRenderContainer, Disposable.from(() => {
|
|
7271
|
+
if (this.getPanel(referenceGroup.id)) {
|
|
7272
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7273
|
+
from: group,
|
|
7274
|
+
to: referenceGroup,
|
|
7275
|
+
}));
|
|
7276
|
+
if (!referenceGroup.api.isVisible) {
|
|
7277
|
+
referenceGroup.api.setVisible(true);
|
|
7278
|
+
}
|
|
7279
|
+
if (this.getPanel(group.id)) {
|
|
7280
|
+
this.doRemoveGroup(group, {
|
|
7281
|
+
skipPopoutAssociated: true,
|
|
7282
|
+
});
|
|
7283
|
+
}
|
|
7284
|
+
}
|
|
7285
|
+
else {
|
|
7286
|
+
if (this.getPanel(group.id)) {
|
|
7287
|
+
const removedGroup = this.doRemoveGroup(group, {
|
|
7288
|
+
skipDispose: true,
|
|
7289
|
+
skipActive: true,
|
|
7290
|
+
});
|
|
7291
|
+
removedGroup.model.renderContainer =
|
|
7292
|
+
this.overlayRenderContainer;
|
|
7293
|
+
removedGroup.model.location = { type: 'grid' };
|
|
7294
|
+
returnedGroup = removedGroup;
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7297
|
+
}));
|
|
7298
|
+
this._popoutGroups.push(value);
|
|
7299
|
+
this.updateWatermark();
|
|
7300
|
+
})
|
|
7301
|
+
.catch((err) => {
|
|
7302
|
+
console.error(err);
|
|
6731
7303
|
});
|
|
6732
|
-
popoutWindow.addDisposables({
|
|
6733
|
-
dispose: () => {
|
|
6734
|
-
remove(this._popoutGroups, popoutWindow);
|
|
6735
|
-
this.updateWatermark();
|
|
6736
|
-
},
|
|
6737
|
-
}, popoutWindow.window.onDidClose(() => {
|
|
6738
|
-
this.doAddGroup(group, [0]);
|
|
6739
|
-
}));
|
|
6740
|
-
this._popoutGroups.push(popoutWindow);
|
|
6741
|
-
this.updateWatermark();
|
|
6742
7304
|
}
|
|
6743
7305
|
addFloatingGroup(item, coord, options) {
|
|
6744
|
-
var _a, _b, _c, _d, _e, _f;
|
|
7306
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
6745
7307
|
let group;
|
|
6746
7308
|
if (item instanceof DockviewPanel) {
|
|
6747
7309
|
group = this.createGroup();
|
|
6748
|
-
this.
|
|
7310
|
+
this._onDidAddGroup.fire(group);
|
|
7311
|
+
this.movingLock(() => this.removePanel(item, {
|
|
6749
7312
|
removeEmptyGroup: true,
|
|
6750
7313
|
skipDispose: true,
|
|
6751
|
-
|
|
6752
|
-
|
|
7314
|
+
skipSetActiveGroup: true,
|
|
7315
|
+
}));
|
|
7316
|
+
group.model.openPanel(item, { skipSetGroupActive: true });
|
|
6753
7317
|
}
|
|
6754
7318
|
else {
|
|
6755
7319
|
group = item;
|
|
7320
|
+
const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;
|
|
7321
|
+
const popoutReferenceGroup = popoutReferenceGroupId
|
|
7322
|
+
? this.getPanel(popoutReferenceGroupId)
|
|
7323
|
+
: undefined;
|
|
6756
7324
|
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
6757
7325
|
options.skipRemoveGroup;
|
|
6758
7326
|
if (!skip) {
|
|
6759
|
-
|
|
7327
|
+
if (popoutReferenceGroup) {
|
|
7328
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7329
|
+
from: item,
|
|
7330
|
+
to: popoutReferenceGroup,
|
|
7331
|
+
}));
|
|
7332
|
+
this.doRemoveGroup(item, {
|
|
7333
|
+
skipPopoutReturn: true,
|
|
7334
|
+
skipPopoutAssociated: true,
|
|
7335
|
+
});
|
|
7336
|
+
this.doRemoveGroup(popoutReferenceGroup, {
|
|
7337
|
+
skipDispose: true,
|
|
7338
|
+
});
|
|
7339
|
+
group = popoutReferenceGroup;
|
|
7340
|
+
}
|
|
7341
|
+
else {
|
|
7342
|
+
this.doRemoveGroup(item, {
|
|
7343
|
+
skipDispose: true,
|
|
7344
|
+
skipPopoutReturn: true,
|
|
7345
|
+
skipPopoutAssociated: !!popoutReferenceGroup,
|
|
7346
|
+
});
|
|
7347
|
+
}
|
|
6760
7348
|
}
|
|
6761
7349
|
}
|
|
6762
|
-
group.model.location = 'floating';
|
|
7350
|
+
group.model.location = { type: 'floating' };
|
|
6763
7351
|
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
6764
7352
|
? Math.max(coord.x, 0)
|
|
6765
7353
|
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
@@ -6769,16 +7357,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
6769
7357
|
const overlay = new Overlay({
|
|
6770
7358
|
container: this.gridview.element,
|
|
6771
7359
|
content: group.element,
|
|
6772
|
-
height: (
|
|
6773
|
-
width: (
|
|
7360
|
+
height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
|
|
7361
|
+
width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
|
|
6774
7362
|
left: overlayLeft,
|
|
6775
7363
|
top: overlayTop,
|
|
6776
7364
|
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6777
7365
|
? undefined
|
|
6778
|
-
: (
|
|
7366
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6779
7367
|
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6780
7368
|
? undefined
|
|
6781
|
-
: (
|
|
7369
|
+
: (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6782
7370
|
});
|
|
6783
7371
|
const el = group.element.querySelector('.void-container');
|
|
6784
7372
|
if (!el) {
|
|
@@ -6809,12 +7397,15 @@ class DockviewComponent extends BaseGrid {
|
|
|
6809
7397
|
}), {
|
|
6810
7398
|
dispose: () => {
|
|
6811
7399
|
disposable.dispose();
|
|
6812
|
-
group.model.location = 'grid';
|
|
7400
|
+
group.model.location = { type: 'grid' };
|
|
6813
7401
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
6814
7402
|
this.updateWatermark();
|
|
6815
7403
|
},
|
|
6816
7404
|
});
|
|
6817
7405
|
this._floatingGroups.push(floatingGroupPanel);
|
|
7406
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
7407
|
+
this.doSetGroupAndPanelActive(group);
|
|
7408
|
+
}
|
|
6818
7409
|
this.updateWatermark();
|
|
6819
7410
|
}
|
|
6820
7411
|
orthogonalize(position) {
|
|
@@ -6904,8 +7495,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
6904
7495
|
return this.panels.find((panel) => panel.id === id);
|
|
6905
7496
|
}
|
|
6906
7497
|
setActivePanel(panel) {
|
|
6907
|
-
this.doSetGroupActive(panel.group);
|
|
6908
7498
|
panel.group.model.openPanel(panel);
|
|
7499
|
+
this.doSetGroupAndPanelActive(panel.group);
|
|
6909
7500
|
}
|
|
6910
7501
|
moveToNext(options = {}) {
|
|
6911
7502
|
var _a;
|
|
@@ -6966,7 +7557,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
6966
7557
|
});
|
|
6967
7558
|
const popoutGroups = this._popoutGroups.map((group) => {
|
|
6968
7559
|
return {
|
|
6969
|
-
data: group.
|
|
7560
|
+
data: group.popoutGroup.toJSON(),
|
|
7561
|
+
gridReferenceGroup: group.referenceGroup,
|
|
6970
7562
|
position: group.window.dimensions(),
|
|
6971
7563
|
};
|
|
6972
7564
|
});
|
|
@@ -6984,7 +7576,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6984
7576
|
return result;
|
|
6985
7577
|
}
|
|
6986
7578
|
fromJSON(data) {
|
|
6987
|
-
var _a, _b;
|
|
7579
|
+
var _a, _b, _c;
|
|
6988
7580
|
this.clear();
|
|
6989
7581
|
if (typeof data !== 'object' || data === null) {
|
|
6990
7582
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -7023,7 +7615,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7023
7615
|
const isActive = typeof activeView === 'string' &&
|
|
7024
7616
|
activeView === panel.id;
|
|
7025
7617
|
group.model.openPanel(panel, {
|
|
7026
|
-
|
|
7618
|
+
skipSetActive: !isActive,
|
|
7027
7619
|
skipSetGroupActive: true,
|
|
7028
7620
|
});
|
|
7029
7621
|
}
|
|
@@ -7053,11 +7645,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7053
7645
|
}
|
|
7054
7646
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7055
7647
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
7056
|
-
const { data, position } = serializedPopoutGroup;
|
|
7648
|
+
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
7057
7649
|
const group = createGroupFromSerializedState(data);
|
|
7058
|
-
this.addPopoutGroup(
|
|
7650
|
+
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
7651
|
+
? this.getPanel(gridReferenceGroup)
|
|
7652
|
+
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
7059
7653
|
skipRemoveGroup: true,
|
|
7060
7654
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
7655
|
+
overridePopoutGroup: gridReferenceGroup
|
|
7656
|
+
? group
|
|
7657
|
+
: undefined,
|
|
7061
7658
|
});
|
|
7062
7659
|
}
|
|
7063
7660
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -7104,12 +7701,13 @@ class DockviewComponent extends BaseGrid {
|
|
|
7104
7701
|
*/
|
|
7105
7702
|
throw err;
|
|
7106
7703
|
}
|
|
7704
|
+
this.updateWatermark();
|
|
7107
7705
|
this._onDidLayoutFromJSON.fire();
|
|
7108
7706
|
}
|
|
7109
7707
|
clear() {
|
|
7110
7708
|
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
7111
7709
|
const hasActiveGroup = !!this.activeGroup;
|
|
7112
|
-
|
|
7710
|
+
!!this.activePanel;
|
|
7113
7711
|
for (const group of groups) {
|
|
7114
7712
|
// remove the group will automatically remove the panels
|
|
7115
7713
|
this.removeGroup(group, { skipActive: true });
|
|
@@ -7117,9 +7715,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
7117
7715
|
if (hasActiveGroup) {
|
|
7118
7716
|
this.doSetGroupAndPanelActive(undefined);
|
|
7119
7717
|
}
|
|
7120
|
-
if (hasActivePanel) {
|
|
7121
|
-
this._onDidActivePanelChange.fire(undefined);
|
|
7122
|
-
}
|
|
7123
7718
|
this.gridview.clear();
|
|
7124
7719
|
}
|
|
7125
7720
|
closeAllGroups() {
|
|
@@ -7160,6 +7755,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7160
7755
|
const group = this.orthogonalize(directionToPosition(options.position.direction));
|
|
7161
7756
|
const panel = this.createPanel(options, group);
|
|
7162
7757
|
group.model.openPanel(panel);
|
|
7758
|
+
this.doSetGroupAndPanelActive(group);
|
|
7163
7759
|
return panel;
|
|
7164
7760
|
}
|
|
7165
7761
|
}
|
|
@@ -7171,6 +7767,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7171
7767
|
const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
|
|
7172
7768
|
if (options.floating) {
|
|
7173
7769
|
const group = this.createGroup();
|
|
7770
|
+
this._onDidAddGroup.fire(group);
|
|
7174
7771
|
const o = typeof options.floating === 'object' &&
|
|
7175
7772
|
options.floating !== null
|
|
7176
7773
|
? options.floating
|
|
@@ -7178,16 +7775,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7178
7775
|
this.addFloatingGroup(group, o, {
|
|
7179
7776
|
inDragMode: false,
|
|
7180
7777
|
skipRemoveGroup: true,
|
|
7778
|
+
skipActiveGroup: true,
|
|
7181
7779
|
});
|
|
7182
|
-
this._onDidAddGroup.fire(group);
|
|
7183
7780
|
panel = this.createPanel(options, group);
|
|
7184
7781
|
group.model.openPanel(panel);
|
|
7185
|
-
this.doSetGroupAndPanelActive(group);
|
|
7186
7782
|
}
|
|
7187
|
-
else if (referenceGroup.api.location === 'floating' ||
|
|
7783
|
+
else if (referenceGroup.api.location.type === 'floating' ||
|
|
7188
7784
|
target === 'center') {
|
|
7189
7785
|
panel = this.createPanel(options, referenceGroup);
|
|
7190
7786
|
referenceGroup.model.openPanel(panel);
|
|
7787
|
+
this.doSetGroupAndPanelActive(referenceGroup);
|
|
7191
7788
|
}
|
|
7192
7789
|
else {
|
|
7193
7790
|
const location = getGridLocation(referenceGroup.element);
|
|
@@ -7195,10 +7792,12 @@ class DockviewComponent extends BaseGrid {
|
|
|
7195
7792
|
const group = this.createGroupAtLocation(relativeLocation);
|
|
7196
7793
|
panel = this.createPanel(options, group);
|
|
7197
7794
|
group.model.openPanel(panel);
|
|
7795
|
+
this.doSetGroupAndPanelActive(group);
|
|
7198
7796
|
}
|
|
7199
7797
|
}
|
|
7200
7798
|
else if (options.floating) {
|
|
7201
7799
|
const group = this.createGroup();
|
|
7800
|
+
this._onDidAddGroup.fire(group);
|
|
7202
7801
|
const o = typeof options.floating === 'object' &&
|
|
7203
7802
|
options.floating !== null
|
|
7204
7803
|
? options.floating
|
|
@@ -7206,16 +7805,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7206
7805
|
this.addFloatingGroup(group, o, {
|
|
7207
7806
|
inDragMode: false,
|
|
7208
7807
|
skipRemoveGroup: true,
|
|
7808
|
+
skipActiveGroup: true,
|
|
7209
7809
|
});
|
|
7210
|
-
this._onDidAddGroup.fire(group);
|
|
7211
7810
|
panel = this.createPanel(options, group);
|
|
7212
7811
|
group.model.openPanel(panel);
|
|
7213
|
-
this.doSetGroupAndPanelActive(group);
|
|
7214
7812
|
}
|
|
7215
7813
|
else {
|
|
7216
7814
|
const group = this.createGroupAtLocation();
|
|
7217
7815
|
panel = this.createPanel(options, group);
|
|
7218
7816
|
group.model.openPanel(panel);
|
|
7817
|
+
this.doSetGroupAndPanelActive(group);
|
|
7219
7818
|
}
|
|
7220
7819
|
return panel;
|
|
7221
7820
|
}
|
|
@@ -7227,13 +7826,15 @@ class DockviewComponent extends BaseGrid {
|
|
|
7227
7826
|
if (!group) {
|
|
7228
7827
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
7229
7828
|
}
|
|
7230
|
-
group.model.removePanel(panel
|
|
7829
|
+
group.model.removePanel(panel, {
|
|
7830
|
+
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
7831
|
+
});
|
|
7231
7832
|
if (!options.skipDispose) {
|
|
7232
|
-
|
|
7833
|
+
panel.group.model.renderContainer.detatch(panel);
|
|
7233
7834
|
panel.dispose();
|
|
7234
7835
|
}
|
|
7235
7836
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
7236
|
-
this.removeGroup(group);
|
|
7837
|
+
this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
|
|
7237
7838
|
}
|
|
7238
7839
|
}
|
|
7239
7840
|
createWatermarkComponent() {
|
|
@@ -7246,7 +7847,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7246
7847
|
}
|
|
7247
7848
|
updateWatermark() {
|
|
7248
7849
|
var _a, _b;
|
|
7249
|
-
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
7850
|
+
if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {
|
|
7250
7851
|
if (!this.watermark) {
|
|
7251
7852
|
this.watermark = this.createWatermarkComponent();
|
|
7252
7853
|
this.watermark.init({
|
|
@@ -7292,36 +7893,42 @@ class DockviewComponent extends BaseGrid {
|
|
|
7292
7893
|
}
|
|
7293
7894
|
else {
|
|
7294
7895
|
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
7896
|
+
if (!options.skipSetActive) {
|
|
7897
|
+
this.doSetGroupAndPanelActive(group);
|
|
7898
|
+
}
|
|
7295
7899
|
return group;
|
|
7296
7900
|
}
|
|
7297
7901
|
const target = toTarget(options.direction || 'within');
|
|
7298
7902
|
const location = getGridLocation(referenceGroup.element);
|
|
7299
7903
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
7300
7904
|
this.doAddGroup(group, relativeLocation);
|
|
7905
|
+
if (!options.skipSetActive) {
|
|
7906
|
+
this.doSetGroupAndPanelActive(group);
|
|
7907
|
+
}
|
|
7301
7908
|
return group;
|
|
7302
7909
|
}
|
|
7303
7910
|
else {
|
|
7304
7911
|
this.doAddGroup(group);
|
|
7912
|
+
this.doSetGroupAndPanelActive(group);
|
|
7305
7913
|
return group;
|
|
7306
7914
|
}
|
|
7307
7915
|
}
|
|
7308
7916
|
removeGroup(group, options) {
|
|
7917
|
+
this.doRemoveGroup(group, options);
|
|
7918
|
+
}
|
|
7919
|
+
doRemoveGroup(group, options) {
|
|
7309
7920
|
var _a;
|
|
7310
7921
|
const panels = [...group.panels]; // reassign since group panels will mutate
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
|
|
7314
|
-
|
|
7315
|
-
|
|
7922
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7923
|
+
for (const panel of panels) {
|
|
7924
|
+
this.removePanel(panel, {
|
|
7925
|
+
removeEmptyGroup: false,
|
|
7926
|
+
skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
|
|
7927
|
+
});
|
|
7928
|
+
}
|
|
7316
7929
|
}
|
|
7317
7930
|
const activePanel = this.activePanel;
|
|
7318
|
-
|
|
7319
|
-
if (this.activePanel !== activePanel) {
|
|
7320
|
-
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7321
|
-
}
|
|
7322
|
-
}
|
|
7323
|
-
doRemoveGroup(group, options) {
|
|
7324
|
-
if (group.api.location === 'floating') {
|
|
7931
|
+
if (group.api.location.type === 'floating') {
|
|
7325
7932
|
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
7326
7933
|
if (floatingGroup) {
|
|
7327
7934
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -7333,60 +7940,124 @@ class DockviewComponent extends BaseGrid {
|
|
|
7333
7940
|
floatingGroup.dispose();
|
|
7334
7941
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7335
7942
|
const groups = Array.from(this._groups.values());
|
|
7336
|
-
this.
|
|
7943
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7337
7944
|
}
|
|
7338
7945
|
return floatingGroup.group;
|
|
7339
7946
|
}
|
|
7340
7947
|
throw new Error('failed to find floating group');
|
|
7341
7948
|
}
|
|
7342
|
-
if (group.api.location === 'popout') {
|
|
7343
|
-
const selectedGroup = this._popoutGroups.find((_) => _.
|
|
7949
|
+
if (group.api.location.type === 'popout') {
|
|
7950
|
+
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
7344
7951
|
if (selectedGroup) {
|
|
7345
7952
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7346
|
-
|
|
7953
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
|
|
7954
|
+
const refGroup = selectedGroup.referenceGroup
|
|
7955
|
+
? this.getPanel(selectedGroup.referenceGroup)
|
|
7956
|
+
: undefined;
|
|
7957
|
+
if (refGroup) {
|
|
7958
|
+
this.removeGroup(refGroup);
|
|
7959
|
+
}
|
|
7960
|
+
}
|
|
7961
|
+
selectedGroup.popoutGroup.dispose();
|
|
7347
7962
|
this._groups.delete(group.id);
|
|
7348
7963
|
this._onDidRemoveGroup.fire(group);
|
|
7349
7964
|
}
|
|
7350
|
-
selectedGroup.dispose();
|
|
7965
|
+
const removedGroup = selectedGroup.disposable.dispose();
|
|
7966
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
7967
|
+
this.doAddGroup(removedGroup, [0]);
|
|
7968
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
7969
|
+
}
|
|
7351
7970
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7352
7971
|
const groups = Array.from(this._groups.values());
|
|
7353
|
-
this.
|
|
7972
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7354
7973
|
}
|
|
7355
|
-
|
|
7974
|
+
this.updateWatermark();
|
|
7975
|
+
return selectedGroup.popoutGroup;
|
|
7356
7976
|
}
|
|
7357
7977
|
throw new Error('failed to find popout group');
|
|
7358
7978
|
}
|
|
7359
|
-
|
|
7979
|
+
const re = super.doRemoveGroup(group, options);
|
|
7980
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
7981
|
+
if (this.activePanel !== activePanel) {
|
|
7982
|
+
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7983
|
+
}
|
|
7984
|
+
}
|
|
7985
|
+
return re;
|
|
7360
7986
|
}
|
|
7361
|
-
|
|
7362
|
-
|
|
7987
|
+
movingLock(func) {
|
|
7988
|
+
const isMoving = this._moving;
|
|
7989
|
+
try {
|
|
7990
|
+
this._moving = true;
|
|
7991
|
+
return func();
|
|
7992
|
+
}
|
|
7993
|
+
finally {
|
|
7994
|
+
this._moving = isMoving;
|
|
7995
|
+
}
|
|
7996
|
+
}
|
|
7997
|
+
moveGroupOrPanel(options) {
|
|
7998
|
+
var _a;
|
|
7999
|
+
const destinationGroup = options.to.group;
|
|
8000
|
+
const sourceGroupId = options.from.groupId;
|
|
8001
|
+
const sourceItemId = options.from.panelId;
|
|
8002
|
+
const destinationTarget = options.to.position;
|
|
8003
|
+
const destinationIndex = options.to.index;
|
|
7363
8004
|
const sourceGroup = sourceGroupId
|
|
7364
8005
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
7365
8006
|
: undefined;
|
|
8007
|
+
if (!sourceGroup) {
|
|
8008
|
+
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
8009
|
+
}
|
|
7366
8010
|
if (sourceItemId === undefined) {
|
|
7367
|
-
|
|
7368
|
-
|
|
7369
|
-
|
|
8011
|
+
/**
|
|
8012
|
+
* Moving an entire group into another group
|
|
8013
|
+
*/
|
|
8014
|
+
this.moveGroup({
|
|
8015
|
+
from: { group: sourceGroup },
|
|
8016
|
+
to: {
|
|
8017
|
+
group: destinationGroup,
|
|
8018
|
+
position: destinationTarget,
|
|
8019
|
+
},
|
|
8020
|
+
});
|
|
7370
8021
|
return;
|
|
7371
8022
|
}
|
|
7372
8023
|
if (!destinationTarget || destinationTarget === 'center') {
|
|
7373
|
-
|
|
7374
|
-
|
|
8024
|
+
/**
|
|
8025
|
+
* Dropping a panel within another group
|
|
8026
|
+
*/
|
|
8027
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8028
|
+
skipSetActive: false,
|
|
8029
|
+
skipSetActiveGroup: true,
|
|
8030
|
+
}));
|
|
8031
|
+
if (!removedPanel) {
|
|
7375
8032
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7376
8033
|
}
|
|
7377
|
-
if (
|
|
7378
|
-
|
|
8034
|
+
if (sourceGroup.model.size === 0) {
|
|
8035
|
+
// remove the group and do not set a new group as active
|
|
8036
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
7379
8037
|
}
|
|
7380
|
-
destinationGroup.model.openPanel(
|
|
8038
|
+
this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {
|
|
7381
8039
|
index: destinationIndex,
|
|
8040
|
+
skipSetGroupActive: true,
|
|
8041
|
+
}));
|
|
8042
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8043
|
+
this._onDidMovePanel.fire({
|
|
8044
|
+
panel: removedPanel,
|
|
7382
8045
|
});
|
|
7383
8046
|
}
|
|
7384
8047
|
else {
|
|
8048
|
+
/**
|
|
8049
|
+
* Dropping a panel to the extremities of a group which will place that panel
|
|
8050
|
+
* into an adjacent group
|
|
8051
|
+
*/
|
|
7385
8052
|
const referenceLocation = getGridLocation(destinationGroup.element);
|
|
7386
8053
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7387
|
-
if (sourceGroup
|
|
8054
|
+
if (sourceGroup.size < 2) {
|
|
8055
|
+
/**
|
|
8056
|
+
* If we are moving from a group which only has one panel left we will consider
|
|
8057
|
+
* moving the group itself rather than moving the panel into a newly created group
|
|
8058
|
+
*/
|
|
7388
8059
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
7389
|
-
if (sourceGroup.api.location === 'grid') {
|
|
8060
|
+
if (sourceGroup.api.location.type === 'grid') {
|
|
7390
8061
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
7391
8062
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
7392
8063
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -7394,77 +8065,122 @@ class DockviewComponent extends BaseGrid {
|
|
|
7394
8065
|
// if a group has one tab - we are essentially moving the 'group'
|
|
7395
8066
|
// which is equivalent to swapping two views in this case
|
|
7396
8067
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8068
|
+
return;
|
|
7397
8069
|
}
|
|
7398
8070
|
}
|
|
7399
8071
|
// source group will become empty so delete the group
|
|
7400
|
-
const targetGroup = this.doRemoveGroup(sourceGroup, {
|
|
8072
|
+
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
7401
8073
|
skipActive: true,
|
|
7402
8074
|
skipDispose: true,
|
|
7403
|
-
});
|
|
8075
|
+
}));
|
|
7404
8076
|
// after deleting the group we need to re-evaulate the ref location
|
|
7405
8077
|
const updatedReferenceLocation = getGridLocation(destinationGroup.element);
|
|
7406
8078
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
7407
|
-
this.doAddGroup(targetGroup, location);
|
|
8079
|
+
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8080
|
+
this.doSetGroupAndPanelActive(targetGroup);
|
|
7408
8081
|
}
|
|
7409
8082
|
else {
|
|
7410
|
-
|
|
7411
|
-
|
|
8083
|
+
/**
|
|
8084
|
+
* The group we are removing from has many panels, we need to remove the panels we are moving,
|
|
8085
|
+
* create a new group, add the panels to that new group and add the new group in an appropiate position
|
|
8086
|
+
*/
|
|
8087
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8088
|
+
skipSetActive: false,
|
|
8089
|
+
skipSetActiveGroup: true,
|
|
8090
|
+
}));
|
|
8091
|
+
if (!removedPanel) {
|
|
7412
8092
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7413
8093
|
}
|
|
7414
8094
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7415
8095
|
const group = this.createGroupAtLocation(dropLocation);
|
|
7416
|
-
group.model.openPanel(
|
|
8096
|
+
this.movingLock(() => group.model.openPanel(removedPanel, {
|
|
8097
|
+
skipSetGroupActive: true,
|
|
8098
|
+
}));
|
|
8099
|
+
this.doSetGroupAndPanelActive(group);
|
|
7417
8100
|
}
|
|
7418
8101
|
}
|
|
7419
8102
|
}
|
|
7420
|
-
moveGroup(
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
8103
|
+
moveGroup(options) {
|
|
8104
|
+
const from = options.from.group;
|
|
8105
|
+
const to = options.to.group;
|
|
8106
|
+
const target = options.to.position;
|
|
8107
|
+
if (target === 'center') {
|
|
8108
|
+
const activePanel = from.activePanel;
|
|
8109
|
+
const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {
|
|
8110
|
+
skipSetActive: true,
|
|
8111
|
+
})));
|
|
8112
|
+
if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
|
|
8113
|
+
this.doRemoveGroup(from, { skipActive: true });
|
|
8114
|
+
}
|
|
8115
|
+
this.movingLock(() => {
|
|
7428
8116
|
for (const panel of panels) {
|
|
7429
|
-
|
|
7430
|
-
|
|
8117
|
+
to.model.openPanel(panel, {
|
|
8118
|
+
skipSetActive: panel !== activePanel,
|
|
8119
|
+
skipSetGroupActive: true,
|
|
7431
8120
|
});
|
|
7432
8121
|
}
|
|
7433
|
-
}
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
8122
|
+
});
|
|
8123
|
+
this.doSetGroupAndPanelActive(to);
|
|
8124
|
+
panels.forEach((panel) => {
|
|
8125
|
+
this._onDidMovePanel.fire({ panel });
|
|
8126
|
+
});
|
|
8127
|
+
}
|
|
8128
|
+
else {
|
|
8129
|
+
switch (from.api.location.type) {
|
|
8130
|
+
case 'grid':
|
|
8131
|
+
this.gridview.removeView(getGridLocation(from.element));
|
|
8132
|
+
break;
|
|
8133
|
+
case 'floating': {
|
|
8134
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
8135
|
+
if (!selectedFloatingGroup) {
|
|
8136
|
+
throw new Error('failed to find floating group');
|
|
7446
8137
|
}
|
|
7447
|
-
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
|
|
7451
|
-
|
|
7452
|
-
|
|
8138
|
+
selectedFloatingGroup.dispose();
|
|
8139
|
+
break;
|
|
8140
|
+
}
|
|
8141
|
+
case 'popout': {
|
|
8142
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
8143
|
+
if (!selectedPopoutGroup) {
|
|
8144
|
+
throw new Error('failed to find popout group');
|
|
7453
8145
|
}
|
|
8146
|
+
selectedPopoutGroup.disposable.dispose();
|
|
7454
8147
|
}
|
|
7455
|
-
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
7456
|
-
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
7457
|
-
this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);
|
|
7458
8148
|
}
|
|
8149
|
+
const referenceLocation = getGridLocation(to.element);
|
|
8150
|
+
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8151
|
+
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
8152
|
+
from.panels.forEach((panel) => {
|
|
8153
|
+
this._onDidMovePanel.fire({ panel });
|
|
8154
|
+
});
|
|
7459
8155
|
}
|
|
7460
8156
|
}
|
|
7461
|
-
|
|
7462
|
-
|
|
8157
|
+
doSetGroupActive(group) {
|
|
8158
|
+
super.doSetGroupActive(group);
|
|
8159
|
+
const activePanel = this.activePanel;
|
|
8160
|
+
if (!this._moving &&
|
|
8161
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8162
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8163
|
+
}
|
|
8164
|
+
}
|
|
8165
|
+
doSetGroupAndPanelActive(group) {
|
|
8166
|
+
super.doSetGroupActive(group);
|
|
7463
8167
|
const activePanel = this.activePanel;
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
this.
|
|
8168
|
+
if (group &&
|
|
8169
|
+
this.hasMaximizedGroup() &&
|
|
8170
|
+
!this.isMaximizedGroup(group)) {
|
|
8171
|
+
this.exitMaximizedGroup();
|
|
8172
|
+
}
|
|
8173
|
+
if (!this._moving &&
|
|
8174
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8175
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8176
|
+
}
|
|
8177
|
+
}
|
|
8178
|
+
getNextGroupId() {
|
|
8179
|
+
let id = this.nextGroupId.next();
|
|
8180
|
+
while (this._groups.has(id)) {
|
|
8181
|
+
id = this.nextGroupId.next();
|
|
7467
8182
|
}
|
|
8183
|
+
return id;
|
|
7468
8184
|
}
|
|
7469
8185
|
createGroup(options) {
|
|
7470
8186
|
if (!options) {
|
|
@@ -7482,7 +8198,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7482
8198
|
}
|
|
7483
8199
|
}
|
|
7484
8200
|
const view = new DockviewGroupPanel(this, id, options);
|
|
7485
|
-
view.init({ params: {}, accessor:
|
|
8201
|
+
view.init({ params: {}, accessor: this });
|
|
7486
8202
|
if (!this._groups.has(view.id)) {
|
|
7487
8203
|
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
7488
8204
|
this._onWillDragPanel.fire(event);
|
|
@@ -7490,20 +8206,48 @@ class DockviewComponent extends BaseGrid {
|
|
|
7490
8206
|
this._onWillDragGroup.fire(event);
|
|
7491
8207
|
}), view.model.onMove((event) => {
|
|
7492
8208
|
const { groupId, itemId, target, index } = event;
|
|
7493
|
-
this.moveGroupOrPanel(
|
|
8209
|
+
this.moveGroupOrPanel({
|
|
8210
|
+
from: { groupId: groupId, panelId: itemId },
|
|
8211
|
+
to: {
|
|
8212
|
+
group: view,
|
|
8213
|
+
position: target,
|
|
8214
|
+
index,
|
|
8215
|
+
},
|
|
8216
|
+
});
|
|
7494
8217
|
}), view.model.onDidDrop((event) => {
|
|
7495
|
-
this._onDidDrop.fire(
|
|
8218
|
+
this._onDidDrop.fire(event);
|
|
8219
|
+
}), view.model.onWillDrop((event) => {
|
|
8220
|
+
this._onWillDrop.fire(event);
|
|
8221
|
+
}), view.model.onWillShowOverlay((event) => {
|
|
8222
|
+
if (this.options.disableDnd) {
|
|
8223
|
+
event.preventDefault();
|
|
8224
|
+
return;
|
|
8225
|
+
}
|
|
8226
|
+
this._onWillShowOverlay.fire(event);
|
|
7496
8227
|
}), view.model.onDidAddPanel((event) => {
|
|
8228
|
+
if (this._moving) {
|
|
8229
|
+
return;
|
|
8230
|
+
}
|
|
7497
8231
|
this._onDidAddPanel.fire(event.panel);
|
|
7498
8232
|
}), view.model.onDidRemovePanel((event) => {
|
|
8233
|
+
if (this._moving) {
|
|
8234
|
+
return;
|
|
8235
|
+
}
|
|
7499
8236
|
this._onDidRemovePanel.fire(event.panel);
|
|
7500
8237
|
}), view.model.onDidActivePanelChange((event) => {
|
|
7501
|
-
this.
|
|
8238
|
+
if (this._moving) {
|
|
8239
|
+
return;
|
|
8240
|
+
}
|
|
8241
|
+
if (event.panel !== this.activePanel) {
|
|
8242
|
+
return;
|
|
8243
|
+
}
|
|
8244
|
+
if (this._onDidActivePanelChange.value !== event.panel) {
|
|
8245
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
8246
|
+
}
|
|
7502
8247
|
}));
|
|
7503
8248
|
this._groups.set(view.id, { value: view, disposable });
|
|
7504
8249
|
}
|
|
7505
|
-
// TODO: must be called after the above listeners have been setup,
|
|
7506
|
-
// not an ideal pattern
|
|
8250
|
+
// TODO: must be called after the above listeners have been setup, not an ideal pattern
|
|
7507
8251
|
view.initialize();
|
|
7508
8252
|
return view;
|
|
7509
8253
|
}
|
|
@@ -7556,7 +8300,20 @@ class GridviewComponent extends BaseGrid {
|
|
|
7556
8300
|
});
|
|
7557
8301
|
this._onDidLayoutfromJSON = new Emitter();
|
|
7558
8302
|
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
8303
|
+
this._onDidRemoveGroup = new Emitter();
|
|
8304
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
8305
|
+
this._onDidAddGroup = new Emitter();
|
|
8306
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
8307
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
8308
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7559
8309
|
this._options = options;
|
|
8310
|
+
this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {
|
|
8311
|
+
this._onDidAddGroup.fire(event);
|
|
8312
|
+
}), this.onDidRemove((event) => {
|
|
8313
|
+
this._onDidRemoveGroup.fire(event);
|
|
8314
|
+
}), this.onDidActiveChange((event) => {
|
|
8315
|
+
this._onDidActiveGroupChange.fire(event);
|
|
8316
|
+
}));
|
|
7560
8317
|
if (!this.options.components) {
|
|
7561
8318
|
this.options.components = {};
|
|
7562
8319
|
}
|
|
@@ -7731,6 +8488,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
7731
8488
|
});
|
|
7732
8489
|
this.registerPanel(view);
|
|
7733
8490
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
8491
|
+
this.doSetGroupActive(view);
|
|
7734
8492
|
return view;
|
|
7735
8493
|
}
|
|
7736
8494
|
registerPanel(panel) {
|
|
@@ -7872,19 +8630,19 @@ class SplitviewComponent extends Resizable {
|
|
|
7872
8630
|
const index = this.panels.indexOf(panel);
|
|
7873
8631
|
this.splitview.setViewVisible(index, visible);
|
|
7874
8632
|
}
|
|
7875
|
-
setActive(
|
|
7876
|
-
this._activePanel =
|
|
8633
|
+
setActive(panel, skipFocus) {
|
|
8634
|
+
this._activePanel = panel;
|
|
7877
8635
|
this.panels
|
|
7878
|
-
.filter((v) => v !==
|
|
8636
|
+
.filter((v) => v !== panel)
|
|
7879
8637
|
.forEach((v) => {
|
|
7880
8638
|
v.api._onDidActiveChange.fire({ isActive: false });
|
|
7881
8639
|
if (!skipFocus) {
|
|
7882
8640
|
v.focus();
|
|
7883
8641
|
}
|
|
7884
8642
|
});
|
|
7885
|
-
|
|
8643
|
+
panel.api._onDidActiveChange.fire({ isActive: true });
|
|
7886
8644
|
if (!skipFocus) {
|
|
7887
|
-
|
|
8645
|
+
panel.focus();
|
|
7888
8646
|
}
|
|
7889
8647
|
}
|
|
7890
8648
|
removePanel(panel, sizing) {
|
|
@@ -8183,6 +8941,10 @@ class PaneviewComponent extends Resizable {
|
|
|
8183
8941
|
});
|
|
8184
8942
|
this.addDisposables(this._disposable);
|
|
8185
8943
|
}
|
|
8944
|
+
setVisible(panel, visible) {
|
|
8945
|
+
const index = this.panels.indexOf(panel);
|
|
8946
|
+
this.paneview.setViewVisible(index, visible);
|
|
8947
|
+
}
|
|
8186
8948
|
focus() {
|
|
8187
8949
|
//noop
|
|
8188
8950
|
}
|
|
@@ -8229,6 +8991,7 @@ class PaneviewComponent extends Resizable {
|
|
|
8229
8991
|
isExpanded: options.isExpanded,
|
|
8230
8992
|
title: options.title,
|
|
8231
8993
|
containerApi: new PaneviewApi(this),
|
|
8994
|
+
accessor: this,
|
|
8232
8995
|
});
|
|
8233
8996
|
this.paneview.addPane(view, size, index);
|
|
8234
8997
|
view.orientation = this.paneview.orientation;
|
|
@@ -8328,6 +9091,7 @@ class PaneviewComponent extends Resizable {
|
|
|
8328
9091
|
title: data.title,
|
|
8329
9092
|
isExpanded: !!view.expanded,
|
|
8330
9093
|
containerApi: new PaneviewApi(this),
|
|
9094
|
+
accessor: this,
|
|
8331
9095
|
});
|
|
8332
9096
|
panel.orientation = this.paneview.orientation;
|
|
8333
9097
|
});
|
|
@@ -8416,7 +9180,7 @@ class SplitviewPanel extends BasePanelView {
|
|
|
8416
9180
|
this._onDidChange = new Emitter();
|
|
8417
9181
|
this.onDidChange = this._onDidChange.event;
|
|
8418
9182
|
this.api.initialize(this);
|
|
8419
|
-
this.addDisposables(this._onDidChange, this.api.
|
|
9183
|
+
this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {
|
|
8420
9184
|
const { isVisible } = event;
|
|
8421
9185
|
const { accessor } = this._params;
|
|
8422
9186
|
accessor.setVisible(this, isVisible);
|
|
@@ -8478,5 +9242,5 @@ class SplitviewPanel extends BasePanelView {
|
|
|
8478
9242
|
}
|
|
8479
9243
|
}
|
|
8480
9244
|
|
|
8481
|
-
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable,
|
|
9245
|
+
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDidDropEvent, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, LayoutPriority, LocalSelectionTransfer, Orientation, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, Tab, WillShowOverlayLocationEvent, createComponent, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, orthogonal, positionToDirection, toTarget };
|
|
8482
9246
|
//# sourceMappingURL=dockview-core.esm.js.map
|