dockview-core 1.9.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +25 -6
- package/dist/cjs/api/component.api.js +27 -5
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
- package/dist/cjs/api/dockviewPanelApi.d.ts +23 -7
- package/dist/cjs/api/dockviewPanelApi.js +49 -12
- package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -4
- package/dist/cjs/api/panelApi.d.ts +20 -9
- package/dist/cjs/api/panelApi.js +30 -30
- 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 +8 -9
- 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 +578 -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 +79 -34
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +227 -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 +9 -4
- package/dist/cjs/dockview/options.js +0 -1
- package/dist/cjs/dockview/types.d.ts +1 -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 +4 -5
- 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 +2 -3
- 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 +0 -1
- package/dist/cjs/paneview/paneview.js +0 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +0 -1
- package/dist/cjs/paneview/paneviewComponent.js +0 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +0 -1
- package/dist/cjs/paneview/paneviewPanel.js +0 -1
- 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 +0 -1
- package/dist/cjs/splitview/splitviewComponent.js +0 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
- package/dist/cjs/splitview/splitviewPanel.js +3 -4
- 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 +1265 -529
- 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 +1264 -528
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +1265 -529
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +1263 -530
- 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 +1265 -529
- 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 +1264 -528
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +25 -6
- package/dist/esm/api/component.api.js +19 -5
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
- package/dist/esm/api/dockviewPanelApi.d.ts +23 -7
- package/dist/esm/api/dockviewPanelApi.js +46 -13
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
- package/dist/esm/api/gridviewPanelApi.js +1 -4
- package/dist/esm/api/panelApi.d.ts +20 -9
- package/dist/esm/api/panelApi.js +23 -30
- 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 +8 -9
- 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 +521 -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 +79 -34
- package/dist/esm/dockview/dockviewGroupPanelModel.js +170 -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 +9 -4
- package/dist/esm/dockview/options.js +0 -1
- package/dist/esm/dockview/types.d.ts +1 -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 +4 -5
- 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 +2 -3
- 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 +0 -1
- package/dist/esm/paneview/paneview.js +0 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +0 -1
- package/dist/esm/paneview/paneviewComponent.js +0 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +0 -1
- package/dist/esm/paneview/paneviewPanel.js +0 -1
- 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 +0 -1
- package/dist/esm/splitview/splitviewComponent.js +0 -1
- package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
- package/dist/esm/splitview/splitviewPanel.js +3 -4
- 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.0
|
|
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();
|
|
@@ -1703,7 +1729,13 @@ class BranchNode extends CompositeDisposable {
|
|
|
1703
1729
|
}
|
|
1704
1730
|
return LayoutPriority.Normal;
|
|
1705
1731
|
}
|
|
1706
|
-
|
|
1732
|
+
get disabled() {
|
|
1733
|
+
return this.splitview.disabled;
|
|
1734
|
+
}
|
|
1735
|
+
set disabled(value) {
|
|
1736
|
+
this.splitview.disabled = value;
|
|
1737
|
+
}
|
|
1738
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {
|
|
1707
1739
|
super();
|
|
1708
1740
|
this.orientation = orientation;
|
|
1709
1741
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1748,6 +1780,7 @@ class BranchNode extends CompositeDisposable {
|
|
|
1748
1780
|
styles,
|
|
1749
1781
|
});
|
|
1750
1782
|
}
|
|
1783
|
+
this.disabled = disabled;
|
|
1751
1784
|
this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {
|
|
1752
1785
|
this._onDidChange.fire({});
|
|
1753
1786
|
}));
|
|
@@ -1881,7 +1914,7 @@ function findLeaf(candiateNode, last) {
|
|
|
1881
1914
|
}
|
|
1882
1915
|
function flipNode(node, size, orthogonalSize) {
|
|
1883
1916
|
if (node instanceof BranchNode) {
|
|
1884
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);
|
|
1917
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1885
1918
|
let totalSize = 0;
|
|
1886
1919
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1887
1920
|
const child = node.children[i];
|
|
@@ -2017,31 +2050,57 @@ class Gridview {
|
|
|
2017
2050
|
get maximumHeight() {
|
|
2018
2051
|
return this.root.maximumHeight;
|
|
2019
2052
|
}
|
|
2053
|
+
get locked() {
|
|
2054
|
+
return this._locked;
|
|
2055
|
+
}
|
|
2056
|
+
set locked(value) {
|
|
2057
|
+
this._locked = value;
|
|
2058
|
+
const branch = [this.root];
|
|
2059
|
+
/**
|
|
2060
|
+
* simple depth-first-search to cover all nodes
|
|
2061
|
+
*
|
|
2062
|
+
* @see https://en.wikipedia.org/wiki/Depth-first_search
|
|
2063
|
+
*/
|
|
2064
|
+
while (branch.length > 0) {
|
|
2065
|
+
const node = branch.pop();
|
|
2066
|
+
if (node instanceof BranchNode) {
|
|
2067
|
+
node.disabled = value;
|
|
2068
|
+
branch.push(...node.children);
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2020
2072
|
maximizedView() {
|
|
2021
2073
|
var _a;
|
|
2022
|
-
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.view;
|
|
2074
|
+
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
2023
2075
|
}
|
|
2024
2076
|
hasMaximizedView() {
|
|
2025
2077
|
return this._maximizedNode !== undefined;
|
|
2026
2078
|
}
|
|
2027
2079
|
maximizeView(view) {
|
|
2080
|
+
var _a;
|
|
2028
2081
|
const location = getGridLocation(view.element);
|
|
2029
2082
|
const [_, node] = this.getNode(location);
|
|
2030
2083
|
if (!(node instanceof LeafNode)) {
|
|
2031
2084
|
return;
|
|
2032
2085
|
}
|
|
2033
|
-
if (this._maximizedNode === node) {
|
|
2086
|
+
if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {
|
|
2034
2087
|
return;
|
|
2035
2088
|
}
|
|
2036
2089
|
if (this.hasMaximizedView()) {
|
|
2037
2090
|
this.exitMaximizedView();
|
|
2038
2091
|
}
|
|
2092
|
+
const hiddenOnMaximize = [];
|
|
2039
2093
|
function hideAllViewsBut(parent, exclude) {
|
|
2040
2094
|
for (let i = 0; i < parent.children.length; i++) {
|
|
2041
2095
|
const child = parent.children[i];
|
|
2042
2096
|
if (child instanceof LeafNode) {
|
|
2043
2097
|
if (child !== exclude) {
|
|
2044
|
-
parent.
|
|
2098
|
+
if (parent.isChildVisible(i)) {
|
|
2099
|
+
parent.setChildVisible(i, false);
|
|
2100
|
+
}
|
|
2101
|
+
else {
|
|
2102
|
+
hiddenOnMaximize.push(child);
|
|
2103
|
+
}
|
|
2045
2104
|
}
|
|
2046
2105
|
}
|
|
2047
2106
|
else {
|
|
@@ -2050,18 +2109,21 @@ class Gridview {
|
|
|
2050
2109
|
}
|
|
2051
2110
|
}
|
|
2052
2111
|
hideAllViewsBut(this.root, node);
|
|
2053
|
-
this._maximizedNode = node;
|
|
2054
|
-
this.
|
|
2112
|
+
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2113
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2055
2114
|
}
|
|
2056
2115
|
exitMaximizedView() {
|
|
2057
2116
|
if (!this._maximizedNode) {
|
|
2058
2117
|
return;
|
|
2059
2118
|
}
|
|
2119
|
+
const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;
|
|
2060
2120
|
function showViewsInReverseOrder(parent) {
|
|
2061
2121
|
for (let index = parent.children.length - 1; index >= 0; index--) {
|
|
2062
2122
|
const child = parent.children[index];
|
|
2063
2123
|
if (child instanceof LeafNode) {
|
|
2064
|
-
|
|
2124
|
+
if (!hiddenOnMaximize.includes(child)) {
|
|
2125
|
+
parent.setChildVisible(index, true);
|
|
2126
|
+
}
|
|
2065
2127
|
}
|
|
2066
2128
|
else {
|
|
2067
2129
|
showViewsInReverseOrder(child);
|
|
@@ -2070,13 +2132,13 @@ class Gridview {
|
|
|
2070
2132
|
}
|
|
2071
2133
|
showViewsInReverseOrder(this.root);
|
|
2072
2134
|
this._maximizedNode = undefined;
|
|
2073
|
-
this.
|
|
2135
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2074
2136
|
}
|
|
2075
2137
|
serialize() {
|
|
2076
2138
|
if (this.hasMaximizedView()) {
|
|
2077
2139
|
/**
|
|
2078
|
-
* do not persist maximized view state
|
|
2079
|
-
*
|
|
2140
|
+
* do not persist maximized view state
|
|
2141
|
+
* firstly exit any maximized views to ensure the correct dimensions are persisted
|
|
2080
2142
|
*/
|
|
2081
2143
|
this.exitMaximizedView();
|
|
2082
2144
|
}
|
|
@@ -2091,14 +2153,14 @@ class Gridview {
|
|
|
2091
2153
|
dispose() {
|
|
2092
2154
|
this.disposable.dispose();
|
|
2093
2155
|
this._onDidChange.dispose();
|
|
2094
|
-
this.
|
|
2156
|
+
this._onDidMaximizedNodeChange.dispose();
|
|
2095
2157
|
this.root.dispose();
|
|
2096
2158
|
this._maximizedNode = undefined;
|
|
2097
2159
|
this.element.remove();
|
|
2098
2160
|
}
|
|
2099
2161
|
clear() {
|
|
2100
2162
|
const orientation = this.root.orientation;
|
|
2101
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);
|
|
2163
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);
|
|
2102
2164
|
}
|
|
2103
2165
|
deserialize(json, deserializer) {
|
|
2104
2166
|
const orientation = json.orientation;
|
|
@@ -2119,8 +2181,8 @@ class Gridview {
|
|
|
2119
2181
|
};
|
|
2120
2182
|
});
|
|
2121
2183
|
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);
|
|
2184
|
+
orthogonalSize, // <- size - flips at each depth,
|
|
2185
|
+
this._locked, children);
|
|
2124
2186
|
}
|
|
2125
2187
|
else {
|
|
2126
2188
|
result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);
|
|
@@ -2153,7 +2215,7 @@ class Gridview {
|
|
|
2153
2215
|
}
|
|
2154
2216
|
const oldRoot = this.root;
|
|
2155
2217
|
oldRoot.element.remove();
|
|
2156
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);
|
|
2218
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);
|
|
2157
2219
|
if (oldRoot.children.length === 0) ;
|
|
2158
2220
|
else if (oldRoot.children.length === 1) {
|
|
2159
2221
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2221,15 +2283,16 @@ class Gridview {
|
|
|
2221
2283
|
constructor(proportionalLayout, styles, orientation) {
|
|
2222
2284
|
this.proportionalLayout = proportionalLayout;
|
|
2223
2285
|
this.styles = styles;
|
|
2286
|
+
this._locked = false;
|
|
2224
2287
|
this._maximizedNode = undefined;
|
|
2225
2288
|
this.disposable = new MutableDisposable();
|
|
2226
2289
|
this._onDidChange = new Emitter();
|
|
2227
2290
|
this.onDidChange = this._onDidChange.event;
|
|
2228
|
-
this.
|
|
2229
|
-
this.
|
|
2291
|
+
this._onDidMaximizedNodeChange = new Emitter();
|
|
2292
|
+
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2230
2293
|
this.element = document.createElement('div');
|
|
2231
2294
|
this.element.className = 'grid-view';
|
|
2232
|
-
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);
|
|
2295
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);
|
|
2233
2296
|
}
|
|
2234
2297
|
isViewVisible(location) {
|
|
2235
2298
|
const [rest, index] = tail(location);
|
|
@@ -2280,7 +2343,7 @@ class Gridview {
|
|
|
2280
2343
|
}
|
|
2281
2344
|
const child = grandParent.removeChild(parentIndex);
|
|
2282
2345
|
child.dispose();
|
|
2283
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);
|
|
2346
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);
|
|
2284
2347
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2285
2348
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2286
2349
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2907,6 +2970,21 @@ class DockviewApi {
|
|
|
2907
2970
|
get onDidDrop() {
|
|
2908
2971
|
return this.component.onDidDrop;
|
|
2909
2972
|
}
|
|
2973
|
+
/**
|
|
2974
|
+
* Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and
|
|
2975
|
+
* prevent the event from occuring using the standard `preventDefault()` syntax.
|
|
2976
|
+
*
|
|
2977
|
+
* Preventing certain events may causes unexpected behaviours, use carefully.
|
|
2978
|
+
*/
|
|
2979
|
+
get onWillDrop() {
|
|
2980
|
+
return this.component.onWillDrop;
|
|
2981
|
+
}
|
|
2982
|
+
/**
|
|
2983
|
+
*
|
|
2984
|
+
*/
|
|
2985
|
+
get onWillShowOverlay() {
|
|
2986
|
+
return this.component.onWillShowOverlay;
|
|
2987
|
+
}
|
|
2910
2988
|
/**
|
|
2911
2989
|
* Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.
|
|
2912
2990
|
*/
|
|
@@ -3042,17 +3120,17 @@ class DockviewApi {
|
|
|
3042
3120
|
hasMaximizedGroup() {
|
|
3043
3121
|
return this.component.hasMaximizedGroup();
|
|
3044
3122
|
}
|
|
3045
|
-
|
|
3123
|
+
exitMaximizedGroup() {
|
|
3046
3124
|
this.component.exitMaximizedGroup();
|
|
3047
3125
|
}
|
|
3048
|
-
get
|
|
3049
|
-
return this.component.
|
|
3126
|
+
get onDidMaximizedGroupChange() {
|
|
3127
|
+
return this.component.onDidMaximizedGroupChange;
|
|
3050
3128
|
}
|
|
3051
3129
|
/**
|
|
3052
3130
|
* Add a popout group in a new Window
|
|
3053
3131
|
*/
|
|
3054
3132
|
addPopoutGroup(item, options) {
|
|
3055
|
-
this.component.addPopoutGroup(item, options);
|
|
3133
|
+
return this.component.addPopoutGroup(item, options);
|
|
3056
3134
|
}
|
|
3057
3135
|
}
|
|
3058
3136
|
|
|
@@ -3106,6 +3184,18 @@ class DragAndDropObserver extends CompositeDisposable {
|
|
|
3106
3184
|
}
|
|
3107
3185
|
}
|
|
3108
3186
|
|
|
3187
|
+
class WillShowOverlayEvent extends DockviewEvent {
|
|
3188
|
+
get nativeEvent() {
|
|
3189
|
+
return this.options.nativeEvent;
|
|
3190
|
+
}
|
|
3191
|
+
get position() {
|
|
3192
|
+
return this.options.position;
|
|
3193
|
+
}
|
|
3194
|
+
constructor(options) {
|
|
3195
|
+
super();
|
|
3196
|
+
this.options = options;
|
|
3197
|
+
}
|
|
3198
|
+
}
|
|
3109
3199
|
function directionToPosition(direction) {
|
|
3110
3200
|
switch (direction) {
|
|
3111
3201
|
case 'above':
|
|
@@ -3158,6 +3248,8 @@ class Droptarget extends CompositeDisposable {
|
|
|
3158
3248
|
this.options = options;
|
|
3159
3249
|
this._onDrop = new Emitter();
|
|
3160
3250
|
this.onDrop = this._onDrop.event;
|
|
3251
|
+
this._onWillShowOverlay = new Emitter();
|
|
3252
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3161
3253
|
// use a set to take advantage of #<set>.has
|
|
3162
3254
|
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
3163
3255
|
this.dnd = new DragAndDropObserver(this.element, {
|
|
@@ -3186,6 +3278,19 @@ class Droptarget extends CompositeDisposable {
|
|
|
3186
3278
|
this.removeDropTarget();
|
|
3187
3279
|
return;
|
|
3188
3280
|
}
|
|
3281
|
+
const willShowOverlayEvent = new WillShowOverlayEvent({
|
|
3282
|
+
nativeEvent: e,
|
|
3283
|
+
position: quadrant,
|
|
3284
|
+
});
|
|
3285
|
+
/**
|
|
3286
|
+
* Provide an opportunity to prevent the overlay appearing and in turn
|
|
3287
|
+
* any dnd behaviours
|
|
3288
|
+
*/
|
|
3289
|
+
this._onWillShowOverlay.fire(willShowOverlayEvent);
|
|
3290
|
+
if (willShowOverlayEvent.defaultPrevented) {
|
|
3291
|
+
this.removeDropTarget();
|
|
3292
|
+
return;
|
|
3293
|
+
}
|
|
3189
3294
|
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
3190
3295
|
if (!this.options.canDisplayOverlay) {
|
|
3191
3296
|
this.removeDropTarget();
|
|
@@ -3228,7 +3333,7 @@ class Droptarget extends CompositeDisposable {
|
|
|
3228
3333
|
}
|
|
3229
3334
|
},
|
|
3230
3335
|
});
|
|
3231
|
-
this.addDisposables(this._onDrop, this.dnd);
|
|
3336
|
+
this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);
|
|
3232
3337
|
}
|
|
3233
3338
|
setTargetZones(acceptedTargetZones) {
|
|
3234
3339
|
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
@@ -3281,25 +3386,44 @@ class Droptarget extends CompositeDisposable {
|
|
|
3281
3386
|
size = clamp(0, sizeOptions.value, height) / height;
|
|
3282
3387
|
}
|
|
3283
3388
|
}
|
|
3284
|
-
const
|
|
3285
|
-
|
|
3286
|
-
|
|
3389
|
+
const box = { top: '0px', left: '0px', width: '100%', height: '100%' };
|
|
3390
|
+
/**
|
|
3391
|
+
* You can also achieve the overlay placement using the transform CSS property
|
|
3392
|
+
* to translate and scale the element however this has the undesired effect of
|
|
3393
|
+
* 'skewing' the element. Comment left here for anybody that ever revisits this.
|
|
3394
|
+
*
|
|
3395
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform
|
|
3396
|
+
*
|
|
3397
|
+
* right
|
|
3398
|
+
* translateX(${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3399
|
+
*
|
|
3400
|
+
* left
|
|
3401
|
+
* translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3402
|
+
*
|
|
3403
|
+
* top
|
|
3404
|
+
* translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3405
|
+
*
|
|
3406
|
+
* bottom
|
|
3407
|
+
* translateY(${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3408
|
+
*/
|
|
3287
3409
|
if (rightClass) {
|
|
3288
|
-
|
|
3410
|
+
box.left = `${100 * (1 - size)}%`;
|
|
3411
|
+
box.width = `${100 * size}%`;
|
|
3289
3412
|
}
|
|
3290
3413
|
else if (leftClass) {
|
|
3291
|
-
|
|
3414
|
+
box.width = `${100 * size}%`;
|
|
3292
3415
|
}
|
|
3293
3416
|
else if (topClass) {
|
|
3294
|
-
|
|
3417
|
+
box.height = `${100 * size}%`;
|
|
3295
3418
|
}
|
|
3296
3419
|
else if (bottomClass) {
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
else {
|
|
3300
|
-
transform = '';
|
|
3420
|
+
box.top = `${100 * (1 - size)}%`;
|
|
3421
|
+
box.height = `${100 * size}%`;
|
|
3301
3422
|
}
|
|
3302
|
-
this.overlayElement.style.
|
|
3423
|
+
this.overlayElement.style.top = box.top;
|
|
3424
|
+
this.overlayElement.style.left = box.left;
|
|
3425
|
+
this.overlayElement.style.width = box.width;
|
|
3426
|
+
this.overlayElement.style.height = box.height;
|
|
3303
3427
|
toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);
|
|
3304
3428
|
toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);
|
|
3305
3429
|
toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);
|
|
@@ -3367,14 +3491,6 @@ function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold)
|
|
|
3367
3491
|
return 'center';
|
|
3368
3492
|
}
|
|
3369
3493
|
|
|
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
3494
|
class ContentContainer extends CompositeDisposable {
|
|
3379
3495
|
get element() {
|
|
3380
3496
|
return this._element;
|
|
@@ -3402,7 +3518,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3402
3518
|
const data = getPanelData();
|
|
3403
3519
|
if (!data &&
|
|
3404
3520
|
event.shiftKey &&
|
|
3405
|
-
this.group.location !== 'floating') {
|
|
3521
|
+
this.group.location.type !== 'floating') {
|
|
3406
3522
|
return false;
|
|
3407
3523
|
}
|
|
3408
3524
|
if (data && data.viewId === this.accessor.id) {
|
|
@@ -3420,7 +3536,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3420
3536
|
data.groupId === this.group.id;
|
|
3421
3537
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3422
3538
|
}
|
|
3423
|
-
return this.group.canDisplayOverlay(event, position,
|
|
3539
|
+
return this.group.canDisplayOverlay(event, position, 'panel');
|
|
3424
3540
|
},
|
|
3425
3541
|
});
|
|
3426
3542
|
this.addDisposables(this.dropTarget);
|
|
@@ -3445,7 +3561,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3445
3561
|
let container;
|
|
3446
3562
|
switch (panel.api.renderer) {
|
|
3447
3563
|
case 'onlyWhenVisibile':
|
|
3448
|
-
this.
|
|
3564
|
+
this.group.renderContainer.detatch(panel);
|
|
3449
3565
|
if (this.panel) {
|
|
3450
3566
|
if (doRender) {
|
|
3451
3567
|
this._element.appendChild(this.panel.view.content.element);
|
|
@@ -3457,7 +3573,7 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3457
3573
|
if (panel.view.content.element.parentElement === this._element) {
|
|
3458
3574
|
this._element.removeChild(panel.view.content.element);
|
|
3459
3575
|
}
|
|
3460
|
-
container = this.
|
|
3576
|
+
container = this.group.renderContainer.attach({
|
|
3461
3577
|
panel,
|
|
3462
3578
|
referenceContainer: this,
|
|
3463
3579
|
});
|
|
@@ -3488,12 +3604,13 @@ class ContentContainer extends CompositeDisposable {
|
|
|
3488
3604
|
// noop
|
|
3489
3605
|
}
|
|
3490
3606
|
closePanel() {
|
|
3607
|
+
var _a;
|
|
3491
3608
|
if (this.panel) {
|
|
3492
|
-
if (this.
|
|
3493
|
-
this.
|
|
3609
|
+
if (this.panel.api.renderer === 'onlyWhenVisibile') {
|
|
3610
|
+
(_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
|
|
3494
3611
|
}
|
|
3495
|
-
this.panel = undefined;
|
|
3496
3612
|
}
|
|
3613
|
+
this.panel = undefined;
|
|
3497
3614
|
}
|
|
3498
3615
|
dispose() {
|
|
3499
3616
|
this.disposable.dispose();
|
|
@@ -3601,7 +3718,7 @@ class Tab extends CompositeDisposable {
|
|
|
3601
3718
|
this._element.draggable = true;
|
|
3602
3719
|
toggleClass(this.element, 'inactive-tab', true);
|
|
3603
3720
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
3604
|
-
this.
|
|
3721
|
+
this.dropTarget = new Droptarget(this._element, {
|
|
3605
3722
|
acceptedTargetZones: ['center'],
|
|
3606
3723
|
canDisplayOverlay: (event, position) => {
|
|
3607
3724
|
if (this.group.locked) {
|
|
@@ -3616,9 +3733,10 @@ class Tab extends CompositeDisposable {
|
|
|
3616
3733
|
}
|
|
3617
3734
|
return this.panel.id !== data.panelId;
|
|
3618
3735
|
}
|
|
3619
|
-
return this.group.model.canDisplayOverlay(event, position,
|
|
3736
|
+
return this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
3620
3737
|
},
|
|
3621
3738
|
});
|
|
3739
|
+
this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
|
|
3622
3740
|
this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
3623
3741
|
this._onDragStart.fire(event);
|
|
3624
3742
|
}), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {
|
|
@@ -3626,9 +3744,9 @@ class Tab extends CompositeDisposable {
|
|
|
3626
3744
|
return;
|
|
3627
3745
|
}
|
|
3628
3746
|
this._onChanged.fire(event);
|
|
3629
|
-
}), this.
|
|
3747
|
+
}), this.dropTarget.onDrop((event) => {
|
|
3630
3748
|
this._onDropped.fire(event);
|
|
3631
|
-
}), this.
|
|
3749
|
+
}), this.dropTarget);
|
|
3632
3750
|
}
|
|
3633
3751
|
setActive(isActive) {
|
|
3634
3752
|
toggleClass(this.element, 'active-tab', isActive);
|
|
@@ -3675,7 +3793,7 @@ class GroupDragHandler extends DragHandler {
|
|
|
3675
3793
|
}, true));
|
|
3676
3794
|
}
|
|
3677
3795
|
isCancelled(_event) {
|
|
3678
|
-
if (this.group.api.location === 'floating' && !_event.shiftKey) {
|
|
3796
|
+
if (this.group.api.location.type === 'floating' && !_event.shiftKey) {
|
|
3679
3797
|
return true;
|
|
3680
3798
|
}
|
|
3681
3799
|
return false;
|
|
@@ -3727,7 +3845,7 @@ class VoidContainer extends CompositeDisposable {
|
|
|
3727
3845
|
this.accessor.doSetGroupActive(this.group);
|
|
3728
3846
|
}));
|
|
3729
3847
|
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
3730
|
-
this.
|
|
3848
|
+
this.dropTraget = new Droptarget(this._element, {
|
|
3731
3849
|
acceptedTargetZones: ['center'],
|
|
3732
3850
|
canDisplayOverlay: (event, position) => {
|
|
3733
3851
|
var _a;
|
|
@@ -3741,14 +3859,15 @@ class VoidContainer extends CompositeDisposable {
|
|
|
3741
3859
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
3742
3860
|
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
3743
3861
|
}
|
|
3744
|
-
return group.model.canDisplayOverlay(event, position,
|
|
3862
|
+
return group.model.canDisplayOverlay(event, position, 'panel');
|
|
3745
3863
|
},
|
|
3746
3864
|
});
|
|
3865
|
+
this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
|
|
3747
3866
|
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
3748
3867
|
this._onDragStart.fire(event);
|
|
3749
|
-
}), this.
|
|
3868
|
+
}), this.dropTraget.onDrop((event) => {
|
|
3750
3869
|
this._onDrop.fire(event);
|
|
3751
|
-
}), this.
|
|
3870
|
+
}), this.dropTraget);
|
|
3752
3871
|
}
|
|
3753
3872
|
}
|
|
3754
3873
|
|
|
@@ -3836,19 +3955,11 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3836
3955
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
3837
3956
|
this._onGroupDragStart = new Emitter();
|
|
3838
3957
|
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3839
|
-
this.
|
|
3958
|
+
this._onWillShowOverlay = new Emitter();
|
|
3959
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3840
3960
|
this._element = document.createElement('div');
|
|
3841
3961
|
this._element.className = 'tabs-and-actions-container';
|
|
3842
3962
|
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
3963
|
this.rightActionsContainer = document.createElement('div');
|
|
3853
3964
|
this.rightActionsContainer.className = 'right-actions-container';
|
|
3854
3965
|
this.leftActionsContainer = document.createElement('div');
|
|
@@ -3863,7 +3974,15 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3863
3974
|
this._element.appendChild(this.leftActionsContainer);
|
|
3864
3975
|
this._element.appendChild(this.voidContainer.element);
|
|
3865
3976
|
this._element.appendChild(this.rightActionsContainer);
|
|
3866
|
-
this.addDisposables(this.
|
|
3977
|
+
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3978
|
+
if (e.api.group === this.group) {
|
|
3979
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3980
|
+
}
|
|
3981
|
+
}), this.accessor.onDidRemovePanel((e) => {
|
|
3982
|
+
if (e.api.group === this.group) {
|
|
3983
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3984
|
+
}
|
|
3985
|
+
}), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
3867
3986
|
this._onGroupDragStart.fire({
|
|
3868
3987
|
nativeEvent: event,
|
|
3869
3988
|
group: this.group,
|
|
@@ -3873,11 +3992,15 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3873
3992
|
event: event.nativeEvent,
|
|
3874
3993
|
index: this.tabs.length,
|
|
3875
3994
|
});
|
|
3995
|
+
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
3996
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
3997
|
+
kind: 'header_space',
|
|
3998
|
+
}));
|
|
3876
3999
|
}), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
|
|
3877
4000
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3878
4001
|
if (isFloatingGroupsEnabled &&
|
|
3879
4002
|
event.shiftKey &&
|
|
3880
|
-
this.group.api.location !== 'floating') {
|
|
4003
|
+
this.group.api.location.type !== 'floating') {
|
|
3881
4004
|
event.preventDefault();
|
|
3882
4005
|
const { top, left } = this.element.getBoundingClientRect();
|
|
3883
4006
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
@@ -3940,9 +4063,9 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3940
4063
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
3941
4064
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
3942
4065
|
}), tab.onChanged((event) => {
|
|
3943
|
-
var _a;
|
|
3944
4066
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3945
|
-
const isFloatingWithOnePanel = this.group.api.location === 'floating' &&
|
|
4067
|
+
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
4068
|
+
this.size === 1;
|
|
3946
4069
|
if (isFloatingGroupsEnabled &&
|
|
3947
4070
|
!isFloatingWithOnePanel &&
|
|
3948
4071
|
event.shiftKey) {
|
|
@@ -3956,20 +4079,20 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3956
4079
|
}, { inDragMode: true });
|
|
3957
4080
|
return;
|
|
3958
4081
|
}
|
|
3959
|
-
const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
3960
|
-
this.group.model.isContentFocused;
|
|
3961
4082
|
const isLeftClick = event.button === 0;
|
|
3962
4083
|
if (!isLeftClick || event.defaultPrevented) {
|
|
3963
4084
|
return;
|
|
3964
4085
|
}
|
|
3965
|
-
this.group.
|
|
3966
|
-
|
|
3967
|
-
}
|
|
4086
|
+
if (this.group.activePanel !== panel) {
|
|
4087
|
+
this.group.model.openPanel(panel);
|
|
4088
|
+
}
|
|
3968
4089
|
}), tab.onDrop((event) => {
|
|
3969
4090
|
this._onDrop.fire({
|
|
3970
4091
|
event: event.nativeEvent,
|
|
3971
4092
|
index: this.tabs.findIndex((x) => x.value === tab),
|
|
3972
4093
|
});
|
|
4094
|
+
}), tab.onWillShowOverlay((event) => {
|
|
4095
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
|
|
3973
4096
|
}));
|
|
3974
4097
|
const value = { value: tab, disposable };
|
|
3975
4098
|
this.addTab(value, index);
|
|
@@ -3987,6 +4110,60 @@ class TabsContainer extends CompositeDisposable {
|
|
|
3987
4110
|
}
|
|
3988
4111
|
}
|
|
3989
4112
|
|
|
4113
|
+
class DockviewDidDropEvent extends DockviewEvent {
|
|
4114
|
+
get nativeEvent() {
|
|
4115
|
+
return this.options.nativeEvent;
|
|
4116
|
+
}
|
|
4117
|
+
get position() {
|
|
4118
|
+
return this.options.position;
|
|
4119
|
+
}
|
|
4120
|
+
get panel() {
|
|
4121
|
+
return this.options.panel;
|
|
4122
|
+
}
|
|
4123
|
+
get group() {
|
|
4124
|
+
return this.options.group;
|
|
4125
|
+
}
|
|
4126
|
+
get api() {
|
|
4127
|
+
return this.options.api;
|
|
4128
|
+
}
|
|
4129
|
+
constructor(options) {
|
|
4130
|
+
super();
|
|
4131
|
+
this.options = options;
|
|
4132
|
+
}
|
|
4133
|
+
getData() {
|
|
4134
|
+
return this.options.getData();
|
|
4135
|
+
}
|
|
4136
|
+
}
|
|
4137
|
+
class DockviewWillDropEvent extends DockviewDidDropEvent {
|
|
4138
|
+
get kind() {
|
|
4139
|
+
return this._kind;
|
|
4140
|
+
}
|
|
4141
|
+
constructor(options) {
|
|
4142
|
+
super(options);
|
|
4143
|
+
this._kind = options.kind;
|
|
4144
|
+
}
|
|
4145
|
+
}
|
|
4146
|
+
class WillShowOverlayLocationEvent {
|
|
4147
|
+
get kind() {
|
|
4148
|
+
return this._kind;
|
|
4149
|
+
}
|
|
4150
|
+
get nativeEvent() {
|
|
4151
|
+
return this.event.nativeEvent;
|
|
4152
|
+
}
|
|
4153
|
+
get position() {
|
|
4154
|
+
return this.event.position;
|
|
4155
|
+
}
|
|
4156
|
+
get defaultPrevented() {
|
|
4157
|
+
return this.event.defaultPrevented;
|
|
4158
|
+
}
|
|
4159
|
+
preventDefault() {
|
|
4160
|
+
this.event.preventDefault();
|
|
4161
|
+
}
|
|
4162
|
+
constructor(event, options) {
|
|
4163
|
+
this.event = event;
|
|
4164
|
+
this._kind = options.kind;
|
|
4165
|
+
}
|
|
4166
|
+
}
|
|
3990
4167
|
class DockviewGroupPanelModel extends CompositeDisposable {
|
|
3991
4168
|
get element() {
|
|
3992
4169
|
throw new Error('not supported');
|
|
@@ -4032,7 +4209,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4032
4209
|
this._location = value;
|
|
4033
4210
|
toggleClass(this.container, 'dv-groupview-floating', false);
|
|
4034
4211
|
toggleClass(this.container, 'dv-groupview-popout', false);
|
|
4035
|
-
switch (value) {
|
|
4212
|
+
switch (value.type) {
|
|
4036
4213
|
case 'grid':
|
|
4037
4214
|
this.contentContainer.dropTarget.setTargetZones([
|
|
4038
4215
|
'top',
|
|
@@ -4068,7 +4245,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4068
4245
|
this.groupPanel = groupPanel;
|
|
4069
4246
|
this._isGroupActive = false;
|
|
4070
4247
|
this._locked = false;
|
|
4071
|
-
this._location = 'grid';
|
|
4248
|
+
this._location = { type: 'grid' };
|
|
4072
4249
|
this.mostRecentlyUsed = [];
|
|
4073
4250
|
this._onDidChange = new Emitter();
|
|
4074
4251
|
this.onDidChange = this._onDidChange.event;
|
|
@@ -4079,6 +4256,10 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4079
4256
|
this.onMove = this._onMove.event;
|
|
4080
4257
|
this._onDidDrop = new Emitter();
|
|
4081
4258
|
this.onDidDrop = this._onDidDrop.event;
|
|
4259
|
+
this._onWillDrop = new Emitter();
|
|
4260
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
4261
|
+
this._onWillShowOverlay = new Emitter();
|
|
4262
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
4082
4263
|
this._onTabDragStart = new Emitter();
|
|
4083
4264
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
4084
4265
|
this._onGroupDragStart = new Emitter();
|
|
@@ -4089,46 +4270,69 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4089
4270
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4090
4271
|
this._onDidActivePanelChange = new Emitter();
|
|
4091
4272
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4273
|
+
this._overwriteRenderContainer = null;
|
|
4092
4274
|
toggleClass(this.container, 'groupview', true);
|
|
4275
|
+
this._api = new DockviewApi(this.accessor);
|
|
4093
4276
|
this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
|
|
4094
4277
|
this.contentContainer = new ContentContainer(this.accessor, this);
|
|
4095
4278
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
4096
4279
|
this.header.hidden = !!options.hideHeader;
|
|
4097
4280
|
this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;
|
|
4098
|
-
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {
|
|
4281
|
+
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {
|
|
4099
4282
|
this._onTabDragStart.fire(event);
|
|
4100
4283
|
}), this.tabsContainer.onGroupDragStart((event) => {
|
|
4101
4284
|
this._onGroupDragStart.fire(event);
|
|
4102
4285
|
}), this.tabsContainer.onDrop((event) => {
|
|
4103
|
-
this.handleDropEvent(event.event, 'center', event.index);
|
|
4286
|
+
this.handleDropEvent('header', event.event, 'center', event.index);
|
|
4104
4287
|
}), this.contentContainer.onDidFocus(() => {
|
|
4105
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4288
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4106
4289
|
}), this.contentContainer.onDidBlur(() => {
|
|
4107
4290
|
// noop
|
|
4108
4291
|
}), this.contentContainer.dropTarget.onDrop((event) => {
|
|
4109
|
-
this.handleDropEvent(event.nativeEvent, event.position);
|
|
4110
|
-
}), this.
|
|
4292
|
+
this.handleDropEvent('content', event.nativeEvent, event.position);
|
|
4293
|
+
}), this.tabsContainer.onWillShowOverlay((event) => {
|
|
4294
|
+
this._onWillShowOverlay.fire(event);
|
|
4295
|
+
}), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
|
|
4296
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4297
|
+
kind: 'content',
|
|
4298
|
+
}));
|
|
4299
|
+
}), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
|
|
4300
|
+
}
|
|
4301
|
+
focusContent() {
|
|
4302
|
+
this.contentContainer.element.focus();
|
|
4303
|
+
}
|
|
4304
|
+
set renderContainer(value) {
|
|
4305
|
+
this.panels.forEach((panel) => {
|
|
4306
|
+
this.renderContainer.detatch(panel);
|
|
4307
|
+
});
|
|
4308
|
+
this._overwriteRenderContainer = value;
|
|
4309
|
+
this.panels.forEach((panel) => {
|
|
4310
|
+
this.rerender(panel);
|
|
4311
|
+
});
|
|
4312
|
+
}
|
|
4313
|
+
get renderContainer() {
|
|
4314
|
+
var _a;
|
|
4315
|
+
return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);
|
|
4111
4316
|
}
|
|
4112
4317
|
initialize() {
|
|
4113
|
-
|
|
4114
|
-
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
4318
|
+
if (this.options.panels) {
|
|
4115
4319
|
this.options.panels.forEach((panel) => {
|
|
4116
4320
|
this.doAddPanel(panel);
|
|
4117
4321
|
});
|
|
4118
4322
|
}
|
|
4119
|
-
if (
|
|
4323
|
+
if (this.options.activePanel) {
|
|
4120
4324
|
this.openPanel(this.options.activePanel);
|
|
4121
4325
|
}
|
|
4122
4326
|
// must be run after the constructor otherwise this.parent may not be
|
|
4123
4327
|
// correctly initialized
|
|
4124
|
-
this.setActive(this.isActive, true
|
|
4328
|
+
this.setActive(this.isActive, true);
|
|
4125
4329
|
this.updateContainer();
|
|
4126
4330
|
if (this.accessor.options.createRightHeaderActionsElement) {
|
|
4127
4331
|
this._rightHeaderActions =
|
|
4128
4332
|
this.accessor.options.createRightHeaderActionsElement(this.groupPanel);
|
|
4129
4333
|
this.addDisposables(this._rightHeaderActions);
|
|
4130
4334
|
this._rightHeaderActions.init({
|
|
4131
|
-
containerApi:
|
|
4335
|
+
containerApi: this._api,
|
|
4132
4336
|
api: this.groupPanel.api,
|
|
4133
4337
|
});
|
|
4134
4338
|
this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);
|
|
@@ -4138,7 +4342,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4138
4342
|
this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);
|
|
4139
4343
|
this.addDisposables(this._leftHeaderActions);
|
|
4140
4344
|
this._leftHeaderActions.init({
|
|
4141
|
-
containerApi:
|
|
4345
|
+
containerApi: this._api,
|
|
4142
4346
|
api: this.groupPanel.api,
|
|
4143
4347
|
});
|
|
4144
4348
|
this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);
|
|
@@ -4148,7 +4352,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4148
4352
|
this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);
|
|
4149
4353
|
this.addDisposables(this._prefixHeaderActions);
|
|
4150
4354
|
this._prefixHeaderActions.init({
|
|
4151
|
-
containerApi:
|
|
4355
|
+
containerApi: this._api,
|
|
4152
4356
|
api: this.groupPanel.api,
|
|
4153
4357
|
});
|
|
4154
4358
|
this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);
|
|
@@ -4228,34 +4432,45 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4228
4432
|
//noop
|
|
4229
4433
|
}
|
|
4230
4434
|
focus() {
|
|
4231
|
-
var _a
|
|
4232
|
-
(
|
|
4435
|
+
var _a;
|
|
4436
|
+
(_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4233
4437
|
}
|
|
4234
4438
|
openPanel(panel, options = {}) {
|
|
4439
|
+
/**
|
|
4440
|
+
* set the panel group
|
|
4441
|
+
* add the panel
|
|
4442
|
+
* check if group active
|
|
4443
|
+
* check if panel active
|
|
4444
|
+
*/
|
|
4235
4445
|
if (typeof options.index !== 'number' ||
|
|
4236
4446
|
options.index > this.panels.length) {
|
|
4237
4447
|
options.index = this.panels.length;
|
|
4238
4448
|
}
|
|
4239
|
-
const
|
|
4240
|
-
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
4449
|
+
const skipSetActive = !!options.skipSetActive;
|
|
4241
4450
|
// ensure the group is updated before we fire any events
|
|
4242
|
-
panel.updateParentGroup(this.groupPanel,
|
|
4451
|
+
panel.updateParentGroup(this.groupPanel, {
|
|
4452
|
+
skipSetActive: options.skipSetActive,
|
|
4453
|
+
});
|
|
4454
|
+
this.doAddPanel(panel, options.index, {
|
|
4455
|
+
skipSetActive: skipSetActive,
|
|
4456
|
+
});
|
|
4243
4457
|
if (this._activePanel === panel) {
|
|
4244
|
-
|
|
4245
|
-
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4246
|
-
}
|
|
4458
|
+
this.contentContainer.renderPanel(panel, { asActive: true });
|
|
4247
4459
|
return;
|
|
4248
4460
|
}
|
|
4249
|
-
|
|
4250
|
-
if (!skipSetPanelActive) {
|
|
4461
|
+
if (!skipSetActive) {
|
|
4251
4462
|
this.doSetActivePanel(panel);
|
|
4252
4463
|
}
|
|
4253
|
-
if (!skipSetGroupActive) {
|
|
4254
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4464
|
+
if (!options.skipSetGroupActive) {
|
|
4465
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4466
|
+
}
|
|
4467
|
+
if (!options.skipSetActive) {
|
|
4468
|
+
this.updateContainer();
|
|
4255
4469
|
}
|
|
4256
|
-
this.updateContainer();
|
|
4257
4470
|
}
|
|
4258
|
-
removePanel(groupItemOrId
|
|
4471
|
+
removePanel(groupItemOrId, options = {
|
|
4472
|
+
skipSetActive: false,
|
|
4473
|
+
}) {
|
|
4259
4474
|
const id = typeof groupItemOrId === 'string'
|
|
4260
4475
|
? groupItemOrId
|
|
4261
4476
|
: groupItemOrId.id;
|
|
@@ -4263,7 +4478,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4263
4478
|
if (!panelToRemove) {
|
|
4264
4479
|
throw new Error('invalid operation');
|
|
4265
4480
|
}
|
|
4266
|
-
return this._removePanel(panelToRemove);
|
|
4481
|
+
return this._removePanel(panelToRemove, options);
|
|
4267
4482
|
}
|
|
4268
4483
|
closeAllPanels() {
|
|
4269
4484
|
if (this.panels.length > 0) {
|
|
@@ -4289,12 +4504,8 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4289
4504
|
updateActions(element) {
|
|
4290
4505
|
this.tabsContainer.setRightActionsElement(element);
|
|
4291
4506
|
}
|
|
4292
|
-
setActive(isGroupActive,
|
|
4293
|
-
var _a, _b, _c, _d;
|
|
4507
|
+
setActive(isGroupActive, force = false) {
|
|
4294
4508
|
if (!force && this.isActive === isGroupActive) {
|
|
4295
|
-
if (!skipFocus) {
|
|
4296
|
-
(_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4297
|
-
}
|
|
4298
4509
|
return;
|
|
4299
4510
|
}
|
|
4300
4511
|
this._isGroupActive = isGroupActive;
|
|
@@ -4305,11 +4516,6 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4305
4516
|
this.doSetActivePanel(this.panels[0]);
|
|
4306
4517
|
}
|
|
4307
4518
|
this.updateContainer();
|
|
4308
|
-
if (isGroupActive) {
|
|
4309
|
-
if (!skipFocus) {
|
|
4310
|
-
(_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
4311
|
-
}
|
|
4312
|
-
}
|
|
4313
4519
|
}
|
|
4314
4520
|
layout(width, height) {
|
|
4315
4521
|
var _a;
|
|
@@ -4320,17 +4526,22 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4320
4526
|
this._activePanel.layout(this._width, this._height);
|
|
4321
4527
|
}
|
|
4322
4528
|
}
|
|
4323
|
-
_removePanel(panel) {
|
|
4529
|
+
_removePanel(panel, options) {
|
|
4324
4530
|
const isActivePanel = this._activePanel === panel;
|
|
4325
4531
|
this.doRemovePanel(panel);
|
|
4326
4532
|
if (isActivePanel && this.panels.length > 0) {
|
|
4327
4533
|
const nextPanel = this.mostRecentlyUsed[0];
|
|
4328
|
-
this.openPanel(nextPanel
|
|
4534
|
+
this.openPanel(nextPanel, {
|
|
4535
|
+
skipSetActive: options.skipSetActive,
|
|
4536
|
+
skipSetGroupActive: options.skipSetActiveGroup,
|
|
4537
|
+
});
|
|
4329
4538
|
}
|
|
4330
4539
|
if (this._activePanel && this.panels.length === 0) {
|
|
4331
4540
|
this.doSetActivePanel(undefined);
|
|
4332
4541
|
}
|
|
4333
|
-
|
|
4542
|
+
if (!options.skipSetActive) {
|
|
4543
|
+
this.updateContainer();
|
|
4544
|
+
}
|
|
4334
4545
|
return panel;
|
|
4335
4546
|
}
|
|
4336
4547
|
doRemovePanel(panel) {
|
|
@@ -4345,13 +4556,13 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4345
4556
|
}
|
|
4346
4557
|
this._onDidRemovePanel.fire({ panel });
|
|
4347
4558
|
}
|
|
4348
|
-
doAddPanel(panel, index = this.panels.length,
|
|
4559
|
+
doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {
|
|
4349
4560
|
const existingPanel = this._panels.indexOf(panel);
|
|
4350
4561
|
const hasExistingPanel = existingPanel > -1;
|
|
4351
4562
|
this.tabsContainer.show();
|
|
4352
4563
|
this.contentContainer.show();
|
|
4353
4564
|
this.tabsContainer.openPanel(panel, index);
|
|
4354
|
-
if (!skipSetActive) {
|
|
4565
|
+
if (!options.skipSetActive) {
|
|
4355
4566
|
this.contentContainer.openPanel(panel);
|
|
4356
4567
|
}
|
|
4357
4568
|
if (hasExistingPanel) {
|
|
@@ -4363,12 +4574,17 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4363
4574
|
this._onDidAddPanel.fire({ panel });
|
|
4364
4575
|
}
|
|
4365
4576
|
doSetActivePanel(panel) {
|
|
4577
|
+
if (this._activePanel === panel) {
|
|
4578
|
+
return;
|
|
4579
|
+
}
|
|
4366
4580
|
this._activePanel = panel;
|
|
4367
4581
|
if (panel) {
|
|
4368
4582
|
this.tabsContainer.setActivePanel(panel);
|
|
4369
4583
|
panel.layout(this._width, this._height);
|
|
4370
4584
|
this.updateMru(panel);
|
|
4371
|
-
this._onDidActivePanelChange.fire({
|
|
4585
|
+
this._onDidActivePanelChange.fire({
|
|
4586
|
+
panel,
|
|
4587
|
+
});
|
|
4372
4588
|
}
|
|
4373
4589
|
}
|
|
4374
4590
|
updateMru(panel) {
|
|
@@ -4380,11 +4596,11 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4380
4596
|
updateContainer() {
|
|
4381
4597
|
var _a, _b;
|
|
4382
4598
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
4383
|
-
this.panels.forEach((panel) => panel.
|
|
4599
|
+
this.panels.forEach((panel) => panel.runEvents());
|
|
4384
4600
|
if (this.isEmpty && !this.watermark) {
|
|
4385
4601
|
const watermark = this.accessor.createWatermarkComponent();
|
|
4386
4602
|
watermark.init({
|
|
4387
|
-
containerApi:
|
|
4603
|
+
containerApi: this._api,
|
|
4388
4604
|
group: this.groupPanel,
|
|
4389
4605
|
});
|
|
4390
4606
|
this.watermark = watermark;
|
|
@@ -4417,10 +4633,32 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4417
4633
|
}
|
|
4418
4634
|
return false;
|
|
4419
4635
|
}
|
|
4420
|
-
handleDropEvent(event, position, index) {
|
|
4636
|
+
handleDropEvent(type, event, position, index) {
|
|
4421
4637
|
if (this.locked === 'no-drop-target') {
|
|
4422
4638
|
return;
|
|
4423
4639
|
}
|
|
4640
|
+
function getKind() {
|
|
4641
|
+
switch (type) {
|
|
4642
|
+
case 'header':
|
|
4643
|
+
return typeof index === 'number' ? 'tab' : 'header_space';
|
|
4644
|
+
case 'content':
|
|
4645
|
+
return 'content';
|
|
4646
|
+
}
|
|
4647
|
+
}
|
|
4648
|
+
const panel = typeof index === 'number' ? this.panels[index] : undefined;
|
|
4649
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
4650
|
+
nativeEvent: event,
|
|
4651
|
+
position,
|
|
4652
|
+
panel,
|
|
4653
|
+
getData: () => getPanelData(),
|
|
4654
|
+
kind: getKind(),
|
|
4655
|
+
group: this.groupPanel,
|
|
4656
|
+
api: this._api,
|
|
4657
|
+
});
|
|
4658
|
+
this._onWillDrop.fire(willDropEvent);
|
|
4659
|
+
if (willDropEvent.defaultPrevented) {
|
|
4660
|
+
return;
|
|
4661
|
+
}
|
|
4424
4662
|
const data = getPanelData();
|
|
4425
4663
|
if (data && data.viewId === this.accessor.id) {
|
|
4426
4664
|
if (data.panelId === null) {
|
|
@@ -4453,12 +4691,14 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4453
4691
|
});
|
|
4454
4692
|
}
|
|
4455
4693
|
else {
|
|
4456
|
-
this._onDidDrop.fire({
|
|
4694
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
4457
4695
|
nativeEvent: event,
|
|
4458
4696
|
position,
|
|
4459
|
-
|
|
4697
|
+
panel,
|
|
4460
4698
|
getData: () => getPanelData(),
|
|
4461
|
-
|
|
4699
|
+
group: this.groupPanel,
|
|
4700
|
+
api: this._api,
|
|
4701
|
+
}));
|
|
4462
4702
|
}
|
|
4463
4703
|
}
|
|
4464
4704
|
dispose() {
|
|
@@ -4466,6 +4706,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
4466
4706
|
super.dispose();
|
|
4467
4707
|
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();
|
|
4468
4708
|
(_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
4709
|
+
this.watermark = undefined;
|
|
4469
4710
|
for (const panel of this.panels) {
|
|
4470
4711
|
panel.dispose();
|
|
4471
4712
|
}
|
|
@@ -4487,15 +4728,7 @@ class Resizable extends CompositeDisposable {
|
|
|
4487
4728
|
constructor(parentElement, disableResizing = false) {
|
|
4488
4729
|
super();
|
|
4489
4730
|
this._disableResizing = disableResizing;
|
|
4490
|
-
|
|
4491
|
-
this._element = parentElement;
|
|
4492
|
-
}
|
|
4493
|
-
else {
|
|
4494
|
-
this._element = document.createElement('div');
|
|
4495
|
-
this._element.style.height = '100%';
|
|
4496
|
-
this._element.style.width = '100%';
|
|
4497
|
-
this._element.className = 'dv-resizable-container';
|
|
4498
|
-
}
|
|
4731
|
+
this._element = parentElement;
|
|
4499
4732
|
this.addDisposables(watchElementResize(this._element, (entry) => {
|
|
4500
4733
|
if (this.isDisposed) {
|
|
4501
4734
|
/**
|
|
@@ -4583,25 +4816,38 @@ class BaseGrid extends Resizable {
|
|
|
4583
4816
|
get activeGroup() {
|
|
4584
4817
|
return this._activeGroup;
|
|
4585
4818
|
}
|
|
4819
|
+
get locked() {
|
|
4820
|
+
return this.gridview.locked;
|
|
4821
|
+
}
|
|
4822
|
+
set locked(value) {
|
|
4823
|
+
this.gridview.locked = value;
|
|
4824
|
+
}
|
|
4586
4825
|
constructor(options) {
|
|
4587
|
-
super(
|
|
4826
|
+
super(document.createElement('div'), options.disableAutoResizing);
|
|
4588
4827
|
this._id = nextLayoutId$1.next();
|
|
4589
4828
|
this._groups = new Map();
|
|
4590
4829
|
this._onDidLayoutChange = new Emitter();
|
|
4591
4830
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
4592
|
-
this.
|
|
4593
|
-
this.
|
|
4594
|
-
this.
|
|
4595
|
-
this.
|
|
4596
|
-
this.
|
|
4597
|
-
this.
|
|
4831
|
+
this._onDidRemove = new Emitter();
|
|
4832
|
+
this.onDidRemove = this._onDidRemove.event;
|
|
4833
|
+
this._onDidAdd = new Emitter();
|
|
4834
|
+
this.onDidAdd = this._onDidAdd.event;
|
|
4835
|
+
this._onDidActiveChange = new Emitter();
|
|
4836
|
+
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4598
4837
|
this._bufferOnDidLayoutChange = new TickDelayedEvent();
|
|
4838
|
+
this.element.style.height = '100%';
|
|
4839
|
+
this.element.style.width = '100%';
|
|
4840
|
+
options.parentElement.appendChild(this.element);
|
|
4599
4841
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
4842
|
+
this.gridview.locked = !!options.locked;
|
|
4600
4843
|
this.element.appendChild(this.gridview.element);
|
|
4601
4844
|
this.layout(0, 0, true); // set some elements height/widths
|
|
4602
|
-
this.addDisposables(
|
|
4845
|
+
this.addDisposables(Disposable.from(() => {
|
|
4846
|
+
var _a;
|
|
4847
|
+
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
4848
|
+
}), this.gridview.onDidChange(() => {
|
|
4603
4849
|
this._bufferOnDidLayoutChange.fire();
|
|
4604
|
-
}), Event.any(this.
|
|
4850
|
+
}), Event.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {
|
|
4605
4851
|
this._bufferOnDidLayoutChange.fire();
|
|
4606
4852
|
}), this._bufferOnDidLayoutChange.onEvent(() => {
|
|
4607
4853
|
this._onDidLayoutChange.fire();
|
|
@@ -4616,6 +4862,7 @@ class BaseGrid extends Resizable {
|
|
|
4616
4862
|
}
|
|
4617
4863
|
maximizeGroup(panel) {
|
|
4618
4864
|
this.gridview.maximizeView(panel);
|
|
4865
|
+
this.doSetGroupActive(panel);
|
|
4619
4866
|
}
|
|
4620
4867
|
isMaximizedGroup(panel) {
|
|
4621
4868
|
return this.gridview.maximizedView() === panel;
|
|
@@ -4626,13 +4873,12 @@ class BaseGrid extends Resizable {
|
|
|
4626
4873
|
hasMaximizedGroup() {
|
|
4627
4874
|
return this.gridview.hasMaximizedView();
|
|
4628
4875
|
}
|
|
4629
|
-
get
|
|
4630
|
-
return this.gridview.
|
|
4876
|
+
get onDidMaximizedGroupChange() {
|
|
4877
|
+
return this.gridview.onDidMaximizedNodeChange;
|
|
4631
4878
|
}
|
|
4632
4879
|
doAddGroup(group, location = [0], size) {
|
|
4633
4880
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
|
|
4634
|
-
this.
|
|
4635
|
-
this.doSetGroupActive(group);
|
|
4881
|
+
this._onDidAdd.fire(group);
|
|
4636
4882
|
}
|
|
4637
4883
|
doRemoveGroup(group, options) {
|
|
4638
4884
|
if (!this._groups.has(group.id)) {
|
|
@@ -4644,8 +4890,8 @@ class BaseGrid extends Resizable {
|
|
|
4644
4890
|
item.disposable.dispose();
|
|
4645
4891
|
item.value.dispose();
|
|
4646
4892
|
this._groups.delete(group.id);
|
|
4893
|
+
this._onDidRemove.fire(group);
|
|
4647
4894
|
}
|
|
4648
|
-
this._onDidRemoveGroup.fire(group);
|
|
4649
4895
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
4650
4896
|
const groups = Array.from(this._groups.values());
|
|
4651
4897
|
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
@@ -4656,25 +4902,18 @@ class BaseGrid extends Resizable {
|
|
|
4656
4902
|
var _a;
|
|
4657
4903
|
return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;
|
|
4658
4904
|
}
|
|
4659
|
-
doSetGroupActive(group
|
|
4660
|
-
var _a, _b, _c;
|
|
4905
|
+
doSetGroupActive(group) {
|
|
4661
4906
|
if (this._activeGroup === group) {
|
|
4662
4907
|
return;
|
|
4663
4908
|
}
|
|
4664
4909
|
if (this._activeGroup) {
|
|
4665
4910
|
this._activeGroup.setActive(false);
|
|
4666
|
-
if (!skipFocus) {
|
|
4667
|
-
(_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4668
|
-
}
|
|
4669
4911
|
}
|
|
4670
4912
|
if (group) {
|
|
4671
4913
|
group.setActive(true);
|
|
4672
|
-
if (!skipFocus) {
|
|
4673
|
-
(_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);
|
|
4674
|
-
}
|
|
4675
4914
|
}
|
|
4676
4915
|
this._activeGroup = group;
|
|
4677
|
-
this.
|
|
4916
|
+
this._onDidActiveChange.fire(group);
|
|
4678
4917
|
}
|
|
4679
4918
|
removeGroup(group) {
|
|
4680
4919
|
this.doRemoveGroup(group);
|
|
@@ -4719,9 +4958,9 @@ class BaseGrid extends Resizable {
|
|
|
4719
4958
|
this.gridview.layout(width, height);
|
|
4720
4959
|
}
|
|
4721
4960
|
dispose() {
|
|
4722
|
-
this.
|
|
4723
|
-
this.
|
|
4724
|
-
this.
|
|
4961
|
+
this._onDidActiveChange.dispose();
|
|
4962
|
+
this._onDidAdd.dispose();
|
|
4963
|
+
this._onDidRemove.dispose();
|
|
4725
4964
|
this._onDidLayoutChange.dispose();
|
|
4726
4965
|
for (const group of this.groups) {
|
|
4727
4966
|
group.dispose();
|
|
@@ -4731,11 +4970,15 @@ class BaseGrid extends Resizable {
|
|
|
4731
4970
|
}
|
|
4732
4971
|
}
|
|
4733
4972
|
|
|
4973
|
+
class WillFocusEvent extends DockviewEvent {
|
|
4974
|
+
constructor() {
|
|
4975
|
+
super();
|
|
4976
|
+
}
|
|
4977
|
+
}
|
|
4734
4978
|
/**
|
|
4735
4979
|
* A core api implementation that should be used across all panel-like objects
|
|
4736
4980
|
*/
|
|
4737
4981
|
class PanelApiImpl extends CompositeDisposable {
|
|
4738
|
-
//
|
|
4739
4982
|
get isFocused() {
|
|
4740
4983
|
return this._isFocused;
|
|
4741
4984
|
}
|
|
@@ -4745,6 +4988,9 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4745
4988
|
get isVisible() {
|
|
4746
4989
|
return this._isVisible;
|
|
4747
4990
|
}
|
|
4991
|
+
get isHidden() {
|
|
4992
|
+
return this._isHidden;
|
|
4993
|
+
}
|
|
4748
4994
|
get width() {
|
|
4749
4995
|
return this._width;
|
|
4750
4996
|
}
|
|
@@ -4757,38 +5003,26 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4757
5003
|
this._isFocused = false;
|
|
4758
5004
|
this._isActive = false;
|
|
4759
5005
|
this._isVisible = true;
|
|
5006
|
+
this._isHidden = false;
|
|
4760
5007
|
this._width = 0;
|
|
4761
5008
|
this._height = 0;
|
|
4762
5009
|
this.panelUpdatesDisposable = new MutableDisposable();
|
|
4763
|
-
this._onDidDimensionChange = new Emitter(
|
|
4764
|
-
replay: true,
|
|
4765
|
-
});
|
|
5010
|
+
this._onDidDimensionChange = new Emitter();
|
|
4766
5011
|
this.onDidDimensionsChange = this._onDidDimensionChange.event;
|
|
4767
|
-
|
|
4768
|
-
this._onDidChangeFocus = new Emitter({
|
|
4769
|
-
replay: true,
|
|
4770
|
-
});
|
|
5012
|
+
this._onDidChangeFocus = new Emitter();
|
|
4771
5013
|
this.onDidFocusChange = this._onDidChangeFocus.event;
|
|
4772
5014
|
//
|
|
4773
|
-
this.
|
|
4774
|
-
this.
|
|
5015
|
+
this._onWillFocus = new Emitter();
|
|
5016
|
+
this.onWillFocus = this._onWillFocus.event;
|
|
4775
5017
|
//
|
|
4776
|
-
this._onDidVisibilityChange = new Emitter(
|
|
4777
|
-
replay: true,
|
|
4778
|
-
});
|
|
5018
|
+
this._onDidVisibilityChange = new Emitter();
|
|
4779
5019
|
this.onDidVisibilityChange = this._onDidVisibilityChange.event;
|
|
4780
|
-
|
|
4781
|
-
this.
|
|
4782
|
-
this.
|
|
4783
|
-
//
|
|
4784
|
-
this._onDidActiveChange = new Emitter({
|
|
4785
|
-
replay: true,
|
|
4786
|
-
});
|
|
5020
|
+
this._onDidHiddenChange = new Emitter();
|
|
5021
|
+
this.onDidHiddenChange = this._onDidHiddenChange.event;
|
|
5022
|
+
this._onDidActiveChange = new Emitter();
|
|
4787
5023
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4788
|
-
//
|
|
4789
5024
|
this._onActiveChange = new Emitter();
|
|
4790
5025
|
this.onActiveChange = this._onActiveChange.event;
|
|
4791
|
-
//
|
|
4792
5026
|
this._onUpdateParameters = new Emitter();
|
|
4793
5027
|
this.onUpdateParameters = this._onUpdateParameters.event;
|
|
4794
5028
|
this.addDisposables(this.onDidFocusChange((event) => {
|
|
@@ -4797,10 +5031,12 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4797
5031
|
this._isActive = event.isActive;
|
|
4798
5032
|
}), this.onDidVisibilityChange((event) => {
|
|
4799
5033
|
this._isVisible = event.isVisible;
|
|
5034
|
+
}), this.onDidHiddenChange((event) => {
|
|
5035
|
+
this._isHidden = event.isHidden;
|
|
4800
5036
|
}), this.onDidDimensionsChange((event) => {
|
|
4801
5037
|
this._width = event.width;
|
|
4802
5038
|
this._height = event.height;
|
|
4803
|
-
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this.
|
|
5039
|
+
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onDidHiddenChange, this._onUpdateParameters);
|
|
4804
5040
|
}
|
|
4805
5041
|
initialize(panel) {
|
|
4806
5042
|
this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
|
|
@@ -4809,8 +5045,8 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4809
5045
|
});
|
|
4810
5046
|
});
|
|
4811
5047
|
}
|
|
4812
|
-
|
|
4813
|
-
this.
|
|
5048
|
+
setHidden(isHidden) {
|
|
5049
|
+
this._onDidHiddenChange.fire({ isHidden });
|
|
4814
5050
|
}
|
|
4815
5051
|
setActive() {
|
|
4816
5052
|
this._onActiveChange.fire();
|
|
@@ -4818,9 +5054,6 @@ class PanelApiImpl extends CompositeDisposable {
|
|
|
4818
5054
|
updateParameters(parameters) {
|
|
4819
5055
|
this._onUpdateParameters.fire(parameters);
|
|
4820
5056
|
}
|
|
4821
|
-
dispose() {
|
|
4822
|
-
super.dispose();
|
|
4823
|
-
}
|
|
4824
5057
|
}
|
|
4825
5058
|
|
|
4826
5059
|
class SplitviewPanelApiImpl extends PanelApiImpl {
|
|
@@ -4908,7 +5141,12 @@ class BasePanelView extends CompositeDisposable {
|
|
|
4908
5141
|
}), focusTracker);
|
|
4909
5142
|
}
|
|
4910
5143
|
focus() {
|
|
4911
|
-
|
|
5144
|
+
const event = new WillFocusEvent();
|
|
5145
|
+
this.api._onWillFocus.fire(event);
|
|
5146
|
+
if (event.defaultPrevented) {
|
|
5147
|
+
return;
|
|
5148
|
+
}
|
|
5149
|
+
this._element.focus();
|
|
4912
5150
|
}
|
|
4913
5151
|
layout(width, height) {
|
|
4914
5152
|
this._width = width;
|
|
@@ -5237,9 +5475,7 @@ class GridviewPanelApiImpl extends PanelApiImpl {
|
|
|
5237
5475
|
super(id);
|
|
5238
5476
|
this._onDidConstraintsChangeInternal = new Emitter();
|
|
5239
5477
|
this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
|
|
5240
|
-
this._onDidConstraintsChange = new Emitter(
|
|
5241
|
-
replay: true,
|
|
5242
|
-
});
|
|
5478
|
+
this._onDidConstraintsChange = new Emitter();
|
|
5243
5479
|
this.onDidConstraintsChange = this._onDidConstraintsChange.event;
|
|
5244
5480
|
this._onDidSizeChange = new Emitter();
|
|
5245
5481
|
this.onDidSizeChange = this._onDidSizeChange.event;
|
|
@@ -5332,13 +5568,13 @@ class GridviewPanel extends BasePanelView {
|
|
|
5332
5568
|
this._maximumHeight = options.maximumHeight;
|
|
5333
5569
|
}
|
|
5334
5570
|
this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
|
|
5335
|
-
this.addDisposables(this.api.
|
|
5336
|
-
const {
|
|
5571
|
+
this.addDisposables(this.api.onDidHiddenChange((event) => {
|
|
5572
|
+
const { isHidden } = event;
|
|
5337
5573
|
const { accessor } = this._params;
|
|
5338
|
-
accessor.setVisible(this,
|
|
5574
|
+
accessor.setVisible(this, !isHidden);
|
|
5339
5575
|
}), this.api.onActiveChange(() => {
|
|
5340
5576
|
const { accessor } = this._params;
|
|
5341
|
-
accessor.
|
|
5577
|
+
accessor.doSetGroupActive(this);
|
|
5342
5578
|
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
5343
5579
|
if (typeof event.minimumWidth === 'number' ||
|
|
5344
5580
|
typeof event.minimumWidth === 'function') {
|
|
@@ -5421,6 +5657,17 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5421
5657
|
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5422
5658
|
this.addDisposables(this._onDidLocationChange);
|
|
5423
5659
|
}
|
|
5660
|
+
close() {
|
|
5661
|
+
if (!this._group) {
|
|
5662
|
+
return;
|
|
5663
|
+
}
|
|
5664
|
+
return this.accessor.removeGroup(this._group);
|
|
5665
|
+
}
|
|
5666
|
+
getWindow() {
|
|
5667
|
+
return this.location.type === 'popout'
|
|
5668
|
+
? this.location.getWindow()
|
|
5669
|
+
: window;
|
|
5670
|
+
}
|
|
5424
5671
|
moveTo(options) {
|
|
5425
5672
|
var _a, _b, _c;
|
|
5426
5673
|
if (!this._group) {
|
|
@@ -5428,14 +5675,23 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5428
5675
|
}
|
|
5429
5676
|
const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({
|
|
5430
5677
|
direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),
|
|
5678
|
+
skipSetActive: true,
|
|
5679
|
+
});
|
|
5680
|
+
this.accessor.moveGroupOrPanel({
|
|
5681
|
+
from: { groupId: this._group.id },
|
|
5682
|
+
to: {
|
|
5683
|
+
group,
|
|
5684
|
+
position: options.group
|
|
5685
|
+
? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
|
|
5686
|
+
: 'center',
|
|
5687
|
+
},
|
|
5431
5688
|
});
|
|
5432
|
-
this.accessor.moveGroupOrPanel(group, this._group.id, undefined, options.group ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center' : 'center');
|
|
5433
5689
|
}
|
|
5434
5690
|
maximize() {
|
|
5435
5691
|
if (!this._group) {
|
|
5436
5692
|
throw new Error(NOT_INITIALIZED_MESSAGE);
|
|
5437
5693
|
}
|
|
5438
|
-
if (this.location !== 'grid') {
|
|
5694
|
+
if (this.location.type !== 'grid') {
|
|
5439
5695
|
// only grid groups can be maximized
|
|
5440
5696
|
return;
|
|
5441
5697
|
}
|
|
@@ -5492,6 +5748,12 @@ class DockviewGroupPanel extends GridviewPanel {
|
|
|
5492
5748
|
this.api.initialize(this); // cannot use 'this' after after 'super' call
|
|
5493
5749
|
this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);
|
|
5494
5750
|
}
|
|
5751
|
+
focus() {
|
|
5752
|
+
if (!this.api.isActive) {
|
|
5753
|
+
this.api.setActive();
|
|
5754
|
+
}
|
|
5755
|
+
super.focus();
|
|
5756
|
+
}
|
|
5495
5757
|
initialize() {
|
|
5496
5758
|
this._model.initialize();
|
|
5497
5759
|
}
|
|
@@ -5537,6 +5799,9 @@ function isGroupOptionsWithGroup(data) {
|
|
|
5537
5799
|
}
|
|
5538
5800
|
|
|
5539
5801
|
class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
5802
|
+
get location() {
|
|
5803
|
+
return this.group.api.location;
|
|
5804
|
+
}
|
|
5540
5805
|
get title() {
|
|
5541
5806
|
return this.panel.title;
|
|
5542
5807
|
}
|
|
@@ -5548,15 +5813,34 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5548
5813
|
}
|
|
5549
5814
|
set group(value) {
|
|
5550
5815
|
const isOldGroupActive = this.isGroupActive;
|
|
5551
|
-
this._group
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5816
|
+
if (this._group !== value) {
|
|
5817
|
+
this._group = value;
|
|
5818
|
+
this._onDidGroupChange.fire({});
|
|
5819
|
+
let _trackGroupActive = isOldGroupActive; // prevent duplicate events with same state
|
|
5820
|
+
this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidLocationChange((event) => {
|
|
5821
|
+
if (this.group !== this.panel.group) {
|
|
5822
|
+
return;
|
|
5823
|
+
}
|
|
5824
|
+
this._onDidLocationChange.fire(event);
|
|
5825
|
+
}), this.group.api.onDidActiveChange(() => {
|
|
5826
|
+
if (this.group !== this.panel.group) {
|
|
5827
|
+
return;
|
|
5828
|
+
}
|
|
5829
|
+
if (_trackGroupActive !== this.isGroupActive) {
|
|
5830
|
+
_trackGroupActive = this.isGroupActive;
|
|
5831
|
+
this._onDidActiveGroupChange.fire({
|
|
5832
|
+
isActive: this.isGroupActive,
|
|
5833
|
+
});
|
|
5834
|
+
}
|
|
5835
|
+
}));
|
|
5836
|
+
// if (this.isGroupActive !== isOldGroupActive) {
|
|
5837
|
+
// this._onDidActiveGroupChange.fire({
|
|
5838
|
+
// isActive: this.isGroupActive,
|
|
5839
|
+
// });
|
|
5840
|
+
// }
|
|
5841
|
+
this._onDidLocationChange.fire({
|
|
5842
|
+
location: this.group.api.location,
|
|
5556
5843
|
});
|
|
5557
|
-
if (this.isGroupActive !== isOldGroupActive) {
|
|
5558
|
-
this._onDidActiveGroupChange.fire();
|
|
5559
|
-
}
|
|
5560
5844
|
}
|
|
5561
5845
|
}
|
|
5562
5846
|
get group() {
|
|
@@ -5574,14 +5858,26 @@ class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
5574
5858
|
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
5575
5859
|
this._onDidRendererChange = new Emitter();
|
|
5576
5860
|
this.onDidRendererChange = this._onDidRendererChange.event;
|
|
5577
|
-
this.
|
|
5861
|
+
this._onDidLocationChange = new Emitter();
|
|
5862
|
+
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5863
|
+
this.groupEventsDisposable = new MutableDisposable();
|
|
5578
5864
|
this.initialize(panel);
|
|
5579
5865
|
this._group = group;
|
|
5580
|
-
this.addDisposables(this.
|
|
5866
|
+
this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);
|
|
5867
|
+
}
|
|
5868
|
+
getWindow() {
|
|
5869
|
+
return this.group.api.getWindow();
|
|
5581
5870
|
}
|
|
5582
5871
|
moveTo(options) {
|
|
5583
5872
|
var _a;
|
|
5584
|
-
this.accessor.moveGroupOrPanel(
|
|
5873
|
+
this.accessor.moveGroupOrPanel({
|
|
5874
|
+
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
5875
|
+
to: {
|
|
5876
|
+
group: options.group,
|
|
5877
|
+
position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
|
|
5878
|
+
index: options.index,
|
|
5879
|
+
},
|
|
5880
|
+
});
|
|
5585
5881
|
}
|
|
5586
5882
|
setTitle(title) {
|
|
5587
5883
|
this.panel.setTitle(title);
|
|
@@ -5642,7 +5938,14 @@ class DockviewPanel extends CompositeDisposable {
|
|
|
5642
5938
|
this.setTitle(params.title);
|
|
5643
5939
|
}
|
|
5644
5940
|
focus() {
|
|
5645
|
-
|
|
5941
|
+
const event = new WillFocusEvent();
|
|
5942
|
+
this.api._onWillFocus.fire(event);
|
|
5943
|
+
if (event.defaultPrevented) {
|
|
5944
|
+
return;
|
|
5945
|
+
}
|
|
5946
|
+
if (!this.api.isActive) {
|
|
5947
|
+
this.api.setActive();
|
|
5948
|
+
}
|
|
5646
5949
|
}
|
|
5647
5950
|
toJSON() {
|
|
5648
5951
|
return {
|
|
@@ -5699,20 +6002,40 @@ class DockviewPanel extends CompositeDisposable {
|
|
|
5699
6002
|
},
|
|
5700
6003
|
});
|
|
5701
6004
|
}
|
|
5702
|
-
updateParentGroup(group,
|
|
6005
|
+
updateParentGroup(group, options) {
|
|
5703
6006
|
this._group = group;
|
|
5704
|
-
this.api.group =
|
|
6007
|
+
this.api.group = this._group;
|
|
5705
6008
|
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
5706
|
-
this.api.
|
|
5707
|
-
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
|
|
5712
|
-
|
|
6009
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6010
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {
|
|
6011
|
+
if (this.api.isActive !== isActive) {
|
|
6012
|
+
this.api._onDidActiveChange.fire({
|
|
6013
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6014
|
+
});
|
|
6015
|
+
}
|
|
6016
|
+
}
|
|
6017
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6018
|
+
this.api._onDidVisibilityChange.fire({
|
|
6019
|
+
isVisible: isPanelVisible,
|
|
6020
|
+
});
|
|
6021
|
+
}
|
|
6022
|
+
}
|
|
6023
|
+
runEvents() {
|
|
6024
|
+
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
6025
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6026
|
+
if (this.api.isActive !== isActive) {
|
|
6027
|
+
this.api._onDidActiveChange.fire({
|
|
6028
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6029
|
+
});
|
|
6030
|
+
}
|
|
6031
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6032
|
+
this.api._onDidVisibilityChange.fire({
|
|
6033
|
+
isVisible: isPanelVisible,
|
|
6034
|
+
});
|
|
6035
|
+
}
|
|
5713
6036
|
}
|
|
5714
6037
|
layout(width, height) {
|
|
5715
|
-
//
|
|
6038
|
+
// TODO: Can we somehow do height without header height or indicate what the header height is?
|
|
5716
6039
|
this.api._onDidDimensionChange.fire({
|
|
5717
6040
|
width,
|
|
5718
6041
|
height: height,
|
|
@@ -5834,8 +6157,6 @@ class DockviewPanelModel {
|
|
|
5834
6157
|
this.id = id;
|
|
5835
6158
|
this.contentComponent = contentComponent;
|
|
5836
6159
|
this.tabComponent = tabComponent;
|
|
5837
|
-
this._group = null;
|
|
5838
|
-
this._isPanelVisible = null;
|
|
5839
6160
|
this._content = this.createContentComponent(this.id, contentComponent);
|
|
5840
6161
|
this._tab = this.createTabComponent(this.id, tabComponent);
|
|
5841
6162
|
}
|
|
@@ -5843,25 +6164,8 @@ class DockviewPanelModel {
|
|
|
5843
6164
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
5844
6165
|
this.tab.init(params);
|
|
5845
6166
|
}
|
|
5846
|
-
updateParentGroup(
|
|
5847
|
-
|
|
5848
|
-
this._group = group;
|
|
5849
|
-
if (this._content.onGroupChange) {
|
|
5850
|
-
this._content.onGroupChange(group);
|
|
5851
|
-
}
|
|
5852
|
-
if (this._tab.onGroupChange) {
|
|
5853
|
-
this._tab.onGroupChange(group);
|
|
5854
|
-
}
|
|
5855
|
-
}
|
|
5856
|
-
if (isPanelVisible !== this._isPanelVisible) {
|
|
5857
|
-
this._isPanelVisible = isPanelVisible;
|
|
5858
|
-
if (this._content.onPanelVisibleChange) {
|
|
5859
|
-
this._content.onPanelVisibleChange(isPanelVisible);
|
|
5860
|
-
}
|
|
5861
|
-
if (this._tab.onPanelVisibleChange) {
|
|
5862
|
-
this._tab.onPanelVisibleChange(isPanelVisible);
|
|
5863
|
-
}
|
|
5864
|
-
}
|
|
6167
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6168
|
+
// noop
|
|
5865
6169
|
}
|
|
5866
6170
|
layout(width, height) {
|
|
5867
6171
|
var _a, _b;
|
|
@@ -6294,117 +6598,6 @@ class DockviewFloatingGroupPanel extends CompositeDisposable {
|
|
|
6294
6598
|
}
|
|
6295
6599
|
}
|
|
6296
6600
|
|
|
6297
|
-
class PopoutWindow extends CompositeDisposable {
|
|
6298
|
-
constructor(id, className, options) {
|
|
6299
|
-
super();
|
|
6300
|
-
this.id = id;
|
|
6301
|
-
this.className = className;
|
|
6302
|
-
this.options = options;
|
|
6303
|
-
this._onDidClose = new Emitter();
|
|
6304
|
-
this.onDidClose = this._onDidClose.event;
|
|
6305
|
-
this._window = null;
|
|
6306
|
-
this.addDisposables(this._onDidClose, {
|
|
6307
|
-
dispose: () => {
|
|
6308
|
-
this.close();
|
|
6309
|
-
},
|
|
6310
|
-
});
|
|
6311
|
-
}
|
|
6312
|
-
dimensions() {
|
|
6313
|
-
if (!this._window) {
|
|
6314
|
-
return null;
|
|
6315
|
-
}
|
|
6316
|
-
const left = this._window.value.screenX;
|
|
6317
|
-
const top = this._window.value.screenY;
|
|
6318
|
-
const width = this._window.value.innerWidth;
|
|
6319
|
-
const height = this._window.value.innerHeight;
|
|
6320
|
-
return { top, left, width, height };
|
|
6321
|
-
}
|
|
6322
|
-
close() {
|
|
6323
|
-
if (this._window) {
|
|
6324
|
-
this._window.disposable.dispose();
|
|
6325
|
-
this._window.value.close();
|
|
6326
|
-
this._window = null;
|
|
6327
|
-
}
|
|
6328
|
-
}
|
|
6329
|
-
open(content) {
|
|
6330
|
-
if (this._window) {
|
|
6331
|
-
throw new Error('instance of popout window is already open');
|
|
6332
|
-
}
|
|
6333
|
-
const url = `${this.options.url}`;
|
|
6334
|
-
const features = Object.entries({
|
|
6335
|
-
top: this.options.top,
|
|
6336
|
-
left: this.options.left,
|
|
6337
|
-
width: this.options.width,
|
|
6338
|
-
height: this.options.height,
|
|
6339
|
-
})
|
|
6340
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
6341
|
-
.join(',');
|
|
6342
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6343
|
-
const externalWindow = window.open(url, this.id, features);
|
|
6344
|
-
if (!externalWindow) {
|
|
6345
|
-
return;
|
|
6346
|
-
}
|
|
6347
|
-
const disposable = new CompositeDisposable();
|
|
6348
|
-
this._window = { value: externalWindow, disposable };
|
|
6349
|
-
const cleanUp = () => {
|
|
6350
|
-
this._onDidClose.fire();
|
|
6351
|
-
this._window = null;
|
|
6352
|
-
};
|
|
6353
|
-
// prevent any default content from loading
|
|
6354
|
-
// externalWindow.document.body.replaceWith(document.createElement('div'));
|
|
6355
|
-
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6356
|
-
cleanUp();
|
|
6357
|
-
this.close();
|
|
6358
|
-
}));
|
|
6359
|
-
externalWindow.addEventListener('load', () => {
|
|
6360
|
-
const externalDocument = externalWindow.document;
|
|
6361
|
-
externalDocument.title = document.title;
|
|
6362
|
-
const div = document.createElement('div');
|
|
6363
|
-
div.classList.add('dv-popout-window');
|
|
6364
|
-
div.style.position = 'absolute';
|
|
6365
|
-
div.style.width = '100%';
|
|
6366
|
-
div.style.height = '100%';
|
|
6367
|
-
div.style.top = '0px';
|
|
6368
|
-
div.style.left = '0px';
|
|
6369
|
-
div.classList.add(this.className);
|
|
6370
|
-
div.appendChild(content);
|
|
6371
|
-
externalDocument.body.replaceChildren(div);
|
|
6372
|
-
externalDocument.body.classList.add(this.className);
|
|
6373
|
-
addStyles(externalDocument, window.document.styleSheets);
|
|
6374
|
-
externalWindow.addEventListener('beforeunload', () => {
|
|
6375
|
-
// TODO: indicate external window is closing
|
|
6376
|
-
cleanUp();
|
|
6377
|
-
});
|
|
6378
|
-
});
|
|
6379
|
-
}
|
|
6380
|
-
}
|
|
6381
|
-
|
|
6382
|
-
class DockviewPopoutGroupPanel extends CompositeDisposable {
|
|
6383
|
-
constructor(id, group, options) {
|
|
6384
|
-
var _a;
|
|
6385
|
-
super();
|
|
6386
|
-
this.id = id;
|
|
6387
|
-
this.group = group;
|
|
6388
|
-
this.options = options;
|
|
6389
|
-
this.window = new PopoutWindow(id, (_a = options.className) !== null && _a !== void 0 ? _a : '', {
|
|
6390
|
-
url: this.options.popoutUrl,
|
|
6391
|
-
left: this.options.box.left,
|
|
6392
|
-
top: this.options.box.top,
|
|
6393
|
-
width: this.options.box.width,
|
|
6394
|
-
height: this.options.box.height,
|
|
6395
|
-
});
|
|
6396
|
-
group.model.location = 'popout';
|
|
6397
|
-
this.addDisposables(this.window, {
|
|
6398
|
-
dispose: () => {
|
|
6399
|
-
group.model.location = 'grid';
|
|
6400
|
-
},
|
|
6401
|
-
}, this.window.onDidClose(() => {
|
|
6402
|
-
this.dispose();
|
|
6403
|
-
}));
|
|
6404
|
-
this.window.open(group.element);
|
|
6405
|
-
}
|
|
6406
|
-
}
|
|
6407
|
-
|
|
6408
6601
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6409
6602
|
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6410
6603
|
|
|
@@ -6418,11 +6611,13 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6418
6611
|
super();
|
|
6419
6612
|
this.element = element;
|
|
6420
6613
|
this.map = {};
|
|
6614
|
+
this._disposed = false;
|
|
6421
6615
|
this.addDisposables(Disposable.from(() => {
|
|
6422
6616
|
for (const value of Object.values(this.map)) {
|
|
6423
6617
|
value.disposable.dispose();
|
|
6424
6618
|
value.destroy.dispose();
|
|
6425
6619
|
}
|
|
6620
|
+
this._disposed = true;
|
|
6426
6621
|
}));
|
|
6427
6622
|
}
|
|
6428
6623
|
detatch(panel) {
|
|
@@ -6462,7 +6657,7 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6462
6657
|
focusContainer.style.top = `${box.top - box2.top}px`;
|
|
6463
6658
|
focusContainer.style.width = `${box.width}px`;
|
|
6464
6659
|
focusContainer.style.height = `${box.height}px`;
|
|
6465
|
-
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location === 'floating');
|
|
6660
|
+
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');
|
|
6466
6661
|
};
|
|
6467
6662
|
const visibilityChanged = () => {
|
|
6468
6663
|
if (panel.api.isVisible) {
|
|
@@ -6508,8 +6703,11 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6508
6703
|
resize();
|
|
6509
6704
|
}));
|
|
6510
6705
|
this.map[panel.api.id].destroy = Disposable.from(() => {
|
|
6511
|
-
|
|
6512
|
-
|
|
6706
|
+
var _a;
|
|
6707
|
+
if (panel.view.content.element.parentElement === focusContainer) {
|
|
6708
|
+
focusContainer.removeChild(panel.view.content.element);
|
|
6709
|
+
}
|
|
6710
|
+
(_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
|
|
6513
6711
|
});
|
|
6514
6712
|
queueMicrotask(() => {
|
|
6515
6713
|
if (this.isDisposed) {
|
|
@@ -6530,11 +6728,187 @@ class OverlayRenderContainer extends CompositeDisposable {
|
|
|
6530
6728
|
}
|
|
6531
6729
|
}
|
|
6532
6730
|
|
|
6731
|
+
/******************************************************************************
|
|
6732
|
+
Copyright (c) Microsoft Corporation.
|
|
6733
|
+
|
|
6734
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6735
|
+
purpose with or without fee is hereby granted.
|
|
6736
|
+
|
|
6737
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6738
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6739
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6740
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6741
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6742
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6743
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6744
|
+
***************************************************************************** */
|
|
6745
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
6746
|
+
|
|
6747
|
+
|
|
6748
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
6749
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6750
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6751
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6752
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6753
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
6754
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
6755
|
+
});
|
|
6756
|
+
}
|
|
6757
|
+
|
|
6758
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
6759
|
+
var e = new Error(message);
|
|
6760
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
6761
|
+
};
|
|
6762
|
+
|
|
6763
|
+
class PopoutWindow extends CompositeDisposable {
|
|
6764
|
+
get window() {
|
|
6765
|
+
var _a, _b;
|
|
6766
|
+
return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
6767
|
+
}
|
|
6768
|
+
constructor(target, className, options) {
|
|
6769
|
+
super();
|
|
6770
|
+
this.target = target;
|
|
6771
|
+
this.className = className;
|
|
6772
|
+
this.options = options;
|
|
6773
|
+
this._onWillClose = new Emitter();
|
|
6774
|
+
this.onWillClose = this._onWillClose.event;
|
|
6775
|
+
this._onDidClose = new Emitter();
|
|
6776
|
+
this.onDidClose = this._onDidClose.event;
|
|
6777
|
+
this._window = null;
|
|
6778
|
+
this.addDisposables(this._onWillClose, this._onDidClose, {
|
|
6779
|
+
dispose: () => {
|
|
6780
|
+
this.close();
|
|
6781
|
+
},
|
|
6782
|
+
});
|
|
6783
|
+
}
|
|
6784
|
+
dimensions() {
|
|
6785
|
+
if (!this._window) {
|
|
6786
|
+
return null;
|
|
6787
|
+
}
|
|
6788
|
+
const left = this._window.value.screenX;
|
|
6789
|
+
const top = this._window.value.screenY;
|
|
6790
|
+
const width = this._window.value.innerWidth;
|
|
6791
|
+
const height = this._window.value.innerHeight;
|
|
6792
|
+
return { top, left, width, height };
|
|
6793
|
+
}
|
|
6794
|
+
close() {
|
|
6795
|
+
var _a, _b;
|
|
6796
|
+
if (this._window) {
|
|
6797
|
+
this._onWillClose.fire();
|
|
6798
|
+
(_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6799
|
+
id: this.target,
|
|
6800
|
+
window: this._window.value,
|
|
6801
|
+
});
|
|
6802
|
+
this._window.disposable.dispose();
|
|
6803
|
+
this._window.value.close();
|
|
6804
|
+
this._window = null;
|
|
6805
|
+
this._onDidClose.fire();
|
|
6806
|
+
}
|
|
6807
|
+
}
|
|
6808
|
+
open() {
|
|
6809
|
+
var _a, _b;
|
|
6810
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6811
|
+
if (this._window) {
|
|
6812
|
+
throw new Error('instance of popout window is already open');
|
|
6813
|
+
}
|
|
6814
|
+
const url = `${this.options.url}`;
|
|
6815
|
+
const features = Object.entries({
|
|
6816
|
+
top: this.options.top,
|
|
6817
|
+
left: this.options.left,
|
|
6818
|
+
width: this.options.width,
|
|
6819
|
+
height: this.options.height,
|
|
6820
|
+
})
|
|
6821
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
6822
|
+
.join(',');
|
|
6823
|
+
/**
|
|
6824
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6825
|
+
*/
|
|
6826
|
+
const externalWindow = window.open(url, this.target, features);
|
|
6827
|
+
if (!externalWindow) {
|
|
6828
|
+
/**
|
|
6829
|
+
* Popup blocked
|
|
6830
|
+
*/
|
|
6831
|
+
return null;
|
|
6832
|
+
}
|
|
6833
|
+
const disposable = new CompositeDisposable();
|
|
6834
|
+
this._window = { value: externalWindow, disposable };
|
|
6835
|
+
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6836
|
+
/**
|
|
6837
|
+
* before the main window closes we should close this popup too
|
|
6838
|
+
* to be good citizens
|
|
6839
|
+
*
|
|
6840
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6841
|
+
*/
|
|
6842
|
+
this.close();
|
|
6843
|
+
}));
|
|
6844
|
+
const container = this.createPopoutWindowContainer();
|
|
6845
|
+
if (this.className) {
|
|
6846
|
+
container.classList.add(this.className);
|
|
6847
|
+
}
|
|
6848
|
+
(_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6849
|
+
id: this.target,
|
|
6850
|
+
window: externalWindow,
|
|
6851
|
+
});
|
|
6852
|
+
return new Promise((resolve) => {
|
|
6853
|
+
externalWindow.addEventListener('unload', (e) => {
|
|
6854
|
+
// if page fails to load before unloading
|
|
6855
|
+
// this.close();
|
|
6856
|
+
});
|
|
6857
|
+
externalWindow.addEventListener('load', () => {
|
|
6858
|
+
/**
|
|
6859
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
|
|
6860
|
+
*/
|
|
6861
|
+
const externalDocument = externalWindow.document;
|
|
6862
|
+
externalDocument.title = document.title;
|
|
6863
|
+
externalDocument.body.appendChild(container);
|
|
6864
|
+
addStyles(externalDocument, window.document.styleSheets);
|
|
6865
|
+
/**
|
|
6866
|
+
* beforeunload must be registered after load for reasons I could not determine
|
|
6867
|
+
* otherwise the beforeunload event will not fire when the window is closed
|
|
6868
|
+
*/
|
|
6869
|
+
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
6870
|
+
/**
|
|
6871
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6872
|
+
*/
|
|
6873
|
+
this.close();
|
|
6874
|
+
});
|
|
6875
|
+
resolve(container);
|
|
6876
|
+
});
|
|
6877
|
+
});
|
|
6878
|
+
});
|
|
6879
|
+
}
|
|
6880
|
+
createPopoutWindowContainer() {
|
|
6881
|
+
const el = document.createElement('div');
|
|
6882
|
+
el.classList.add('dv-popout-window');
|
|
6883
|
+
el.id = 'dv-popout-window';
|
|
6884
|
+
el.style.position = 'absolute';
|
|
6885
|
+
el.style.width = '100%';
|
|
6886
|
+
el.style.height = '100%';
|
|
6887
|
+
el.style.top = '0px';
|
|
6888
|
+
el.style.left = '0px';
|
|
6889
|
+
return el;
|
|
6890
|
+
}
|
|
6891
|
+
}
|
|
6892
|
+
|
|
6533
6893
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
6534
6894
|
activationSize: { type: 'pixels', value: 10 },
|
|
6535
6895
|
size: { type: 'pixels', value: 20 },
|
|
6536
6896
|
};
|
|
6537
|
-
function
|
|
6897
|
+
function moveGroupWithoutDestroying(options) {
|
|
6898
|
+
const activePanel = options.from.activePanel;
|
|
6899
|
+
const panels = [...options.from.panels].map((panel) => {
|
|
6900
|
+
const removedPanel = options.from.model.removePanel(panel);
|
|
6901
|
+
options.from.model.renderContainer.detatch(panel);
|
|
6902
|
+
return removedPanel;
|
|
6903
|
+
});
|
|
6904
|
+
panels.forEach((panel) => {
|
|
6905
|
+
options.to.model.openPanel(panel, {
|
|
6906
|
+
skipSetActive: activePanel !== panel,
|
|
6907
|
+
skipSetGroupActive: true,
|
|
6908
|
+
});
|
|
6909
|
+
});
|
|
6910
|
+
}
|
|
6911
|
+
function getDockviewTheme(element) {
|
|
6538
6912
|
function toClassList(element) {
|
|
6539
6913
|
const list = [];
|
|
6540
6914
|
for (let i = 0; i < element.classList.length; i++) {
|
|
@@ -6585,6 +6959,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6585
6959
|
styles: options.styles,
|
|
6586
6960
|
parentElement: options.parentElement,
|
|
6587
6961
|
disableAutoResizing: options.disableAutoResizing,
|
|
6962
|
+
locked: options.locked,
|
|
6588
6963
|
});
|
|
6589
6964
|
this.nextGroupId = sequentialNumberGenerator();
|
|
6590
6965
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -6595,6 +6970,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
6595
6970
|
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
6596
6971
|
this._onDidDrop = new Emitter();
|
|
6597
6972
|
this.onDidDrop = this._onDidDrop.event;
|
|
6973
|
+
this._onWillDrop = new Emitter();
|
|
6974
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
6975
|
+
this._onWillShowOverlay = new Emitter();
|
|
6976
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
6598
6977
|
this._onDidRemovePanel = new Emitter();
|
|
6599
6978
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
6600
6979
|
this._onDidAddPanel = new Emitter();
|
|
@@ -6603,15 +6982,36 @@ class DockviewComponent extends BaseGrid {
|
|
|
6603
6982
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
6604
6983
|
this._onDidActivePanelChange = new Emitter();
|
|
6605
6984
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
6985
|
+
this._onDidMovePanel = new Emitter();
|
|
6606
6986
|
this._floatingGroups = [];
|
|
6607
6987
|
this._popoutGroups = [];
|
|
6988
|
+
this._ignoreEvents = 0;
|
|
6989
|
+
this._onDidRemoveGroup = new Emitter();
|
|
6990
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
6991
|
+
this._onDidAddGroup = new Emitter();
|
|
6992
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
6993
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
6994
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
6995
|
+
this._moving = false;
|
|
6608
6996
|
const gready = document.createElement('div');
|
|
6609
6997
|
gready.className = 'dv-overlay-render-container';
|
|
6610
6998
|
this.gridview.element.appendChild(gready);
|
|
6611
6999
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
6612
7000
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
6613
7001
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
6614
|
-
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop,
|
|
7002
|
+
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) => {
|
|
7003
|
+
if (!this._moving) {
|
|
7004
|
+
this._onDidAddGroup.fire(event);
|
|
7005
|
+
}
|
|
7006
|
+
}), this.onDidRemove((event) => {
|
|
7007
|
+
if (!this._moving) {
|
|
7008
|
+
this._onDidRemoveGroup.fire(event);
|
|
7009
|
+
}
|
|
7010
|
+
}), this.onDidActiveChange((event) => {
|
|
7011
|
+
if (!this._moving) {
|
|
7012
|
+
this._onDidActiveGroupChange.fire(event);
|
|
7013
|
+
}
|
|
7014
|
+
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
6615
7015
|
this.updateWatermark();
|
|
6616
7016
|
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
6617
7017
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -6622,7 +7022,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6622
7022
|
}
|
|
6623
7023
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
6624
7024
|
for (const group of [...this._popoutGroups]) {
|
|
6625
|
-
group.dispose();
|
|
7025
|
+
group.disposable.dispose();
|
|
6626
7026
|
}
|
|
6627
7027
|
}));
|
|
6628
7028
|
this._options = options;
|
|
@@ -6668,7 +7068,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6668
7068
|
return this.options.showDndOverlay({
|
|
6669
7069
|
nativeEvent: event,
|
|
6670
7070
|
position: position,
|
|
6671
|
-
target:
|
|
7071
|
+
target: 'edge',
|
|
6672
7072
|
getData: getPanelData,
|
|
6673
7073
|
});
|
|
6674
7074
|
}
|
|
@@ -6679,86 +7079,249 @@ class DockviewComponent extends BaseGrid {
|
|
|
6679
7079
|
});
|
|
6680
7080
|
this.addDisposables(this._rootDropTarget.onDrop((event) => {
|
|
6681
7081
|
var _a;
|
|
7082
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
7083
|
+
nativeEvent: event.nativeEvent,
|
|
7084
|
+
position: event.position,
|
|
7085
|
+
panel: undefined,
|
|
7086
|
+
api: this._api,
|
|
7087
|
+
group: undefined,
|
|
7088
|
+
getData: getPanelData,
|
|
7089
|
+
kind: 'content',
|
|
7090
|
+
});
|
|
7091
|
+
this._onWillDrop.fire(willDropEvent);
|
|
7092
|
+
if (willDropEvent.defaultPrevented) {
|
|
7093
|
+
return;
|
|
7094
|
+
}
|
|
6682
7095
|
const data = getPanelData();
|
|
6683
7096
|
if (data) {
|
|
6684
|
-
this.moveGroupOrPanel(
|
|
7097
|
+
this.moveGroupOrPanel({
|
|
7098
|
+
from: {
|
|
7099
|
+
groupId: data.groupId,
|
|
7100
|
+
panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
|
|
7101
|
+
},
|
|
7102
|
+
to: {
|
|
7103
|
+
group: this.orthogonalize(event.position),
|
|
7104
|
+
position: 'center',
|
|
7105
|
+
},
|
|
7106
|
+
});
|
|
6685
7107
|
}
|
|
6686
7108
|
else {
|
|
6687
|
-
this._onDidDrop.fire(
|
|
7109
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
7110
|
+
nativeEvent: event.nativeEvent,
|
|
7111
|
+
position: event.position,
|
|
7112
|
+
panel: undefined,
|
|
7113
|
+
api: this._api,
|
|
7114
|
+
group: undefined,
|
|
7115
|
+
getData: getPanelData,
|
|
7116
|
+
}));
|
|
6688
7117
|
}
|
|
6689
7118
|
}), this._rootDropTarget);
|
|
6690
7119
|
this._api = new DockviewApi(this);
|
|
6691
7120
|
this.updateWatermark();
|
|
6692
7121
|
}
|
|
6693
|
-
addPopoutGroup(
|
|
6694
|
-
var _a;
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
7122
|
+
addPopoutGroup(itemToPopout, options) {
|
|
7123
|
+
var _a, _b, _c;
|
|
7124
|
+
if (itemToPopout instanceof DockviewPanel &&
|
|
7125
|
+
itemToPopout.group.size === 1) {
|
|
7126
|
+
return this.addPopoutGroup(itemToPopout.group);
|
|
7127
|
+
}
|
|
7128
|
+
const theme = getDockviewTheme(this.gridview.element);
|
|
7129
|
+
const element = this.element;
|
|
7130
|
+
function getBox() {
|
|
7131
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7132
|
+
return options.position;
|
|
7133
|
+
}
|
|
7134
|
+
if (itemToPopout instanceof DockviewGroupPanel) {
|
|
7135
|
+
return itemToPopout.element.getBoundingClientRect();
|
|
7136
|
+
}
|
|
7137
|
+
if (itemToPopout.group) {
|
|
7138
|
+
return itemToPopout.group.element.getBoundingClientRect();
|
|
7139
|
+
}
|
|
7140
|
+
return element.getBoundingClientRect();
|
|
7141
|
+
}
|
|
7142
|
+
const box = getBox();
|
|
7143
|
+
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;
|
|
7144
|
+
if (itemToPopout.api.location.type === 'grid') {
|
|
7145
|
+
itemToPopout.api.setHidden(true);
|
|
7146
|
+
}
|
|
7147
|
+
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7148
|
+
theme !== null && theme !== void 0 ? theme : '', {
|
|
7149
|
+
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7150
|
+
left: window.screenX + box.left,
|
|
7151
|
+
top: window.screenY + box.top,
|
|
7152
|
+
width: box.width,
|
|
7153
|
+
height: box.height,
|
|
7154
|
+
onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
|
|
7155
|
+
onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
|
|
7156
|
+
});
|
|
7157
|
+
const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {
|
|
7158
|
+
popoutWindowDisposable.dispose();
|
|
7159
|
+
}));
|
|
7160
|
+
return _window
|
|
7161
|
+
.open()
|
|
7162
|
+
.then((popoutContainer) => {
|
|
7163
|
+
var _a;
|
|
7164
|
+
if (_window.isDisposed) {
|
|
7165
|
+
return;
|
|
6706
7166
|
}
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
if (!box) {
|
|
6711
|
-
box = group.element.getBoundingClientRect();
|
|
7167
|
+
if (popoutContainer === null) {
|
|
7168
|
+
popoutWindowDisposable.dispose();
|
|
7169
|
+
return;
|
|
6712
7170
|
}
|
|
6713
|
-
const
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
7171
|
+
const gready = document.createElement('div');
|
|
7172
|
+
gready.className = 'dv-overlay-render-container';
|
|
7173
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7174
|
+
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
7175
|
+
? itemToPopout.group
|
|
7176
|
+
: itemToPopout;
|
|
7177
|
+
const referenceLocation = itemToPopout.api.location.type;
|
|
7178
|
+
const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
7179
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7180
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
|
|
7181
|
+
this._onDidAddGroup.fire(group);
|
|
7182
|
+
}
|
|
7183
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
7184
|
+
this.movingLock(() => {
|
|
7185
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7186
|
+
group.model.openPanel(panel);
|
|
7187
|
+
});
|
|
7188
|
+
}
|
|
7189
|
+
else {
|
|
7190
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7191
|
+
from: referenceGroup,
|
|
7192
|
+
to: group,
|
|
7193
|
+
}));
|
|
7194
|
+
switch (referenceLocation) {
|
|
7195
|
+
case 'grid':
|
|
7196
|
+
referenceGroup.api.setHidden(true);
|
|
7197
|
+
break;
|
|
7198
|
+
case 'floating':
|
|
7199
|
+
case 'popout':
|
|
7200
|
+
this.removeGroup(referenceGroup);
|
|
7201
|
+
break;
|
|
7202
|
+
}
|
|
7203
|
+
}
|
|
7204
|
+
popoutContainer.classList.add('dv-dockview');
|
|
7205
|
+
popoutContainer.style.overflow = 'hidden';
|
|
7206
|
+
popoutContainer.appendChild(gready);
|
|
7207
|
+
popoutContainer.appendChild(group.element);
|
|
7208
|
+
group.model.location = {
|
|
7209
|
+
type: 'popout',
|
|
7210
|
+
getWindow: () => _window.window,
|
|
7211
|
+
};
|
|
7212
|
+
this.doSetGroupAndPanelActive(group);
|
|
7213
|
+
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
7214
|
+
var _a;
|
|
7215
|
+
if (event.isActive) {
|
|
7216
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7217
|
+
}
|
|
7218
|
+
}), group.api.onWillFocus(() => {
|
|
7219
|
+
var _a;
|
|
7220
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7221
|
+
}));
|
|
7222
|
+
let returnedGroup;
|
|
7223
|
+
const value = {
|
|
7224
|
+
window: _window,
|
|
7225
|
+
popoutGroup: group,
|
|
7226
|
+
referenceGroup: this.getPanel(referenceGroup.id)
|
|
7227
|
+
? referenceGroup.id
|
|
7228
|
+
: undefined,
|
|
7229
|
+
disposable: {
|
|
7230
|
+
dispose: () => {
|
|
7231
|
+
popoutWindowDisposable.dispose();
|
|
7232
|
+
return returnedGroup;
|
|
7233
|
+
},
|
|
7234
|
+
},
|
|
7235
|
+
};
|
|
7236
|
+
popoutWindowDisposable.addDisposables(
|
|
7237
|
+
/**
|
|
7238
|
+
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
7239
|
+
* since we can reply on the window resize event as we will occupy the full
|
|
7240
|
+
* window dimensions
|
|
7241
|
+
*/
|
|
7242
|
+
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
7243
|
+
group.layout(window.innerWidth, window.innerHeight);
|
|
7244
|
+
}), overlayRenderContainer, Disposable.from(() => {
|
|
7245
|
+
if (this.getPanel(referenceGroup.id)) {
|
|
7246
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7247
|
+
from: group,
|
|
7248
|
+
to: referenceGroup,
|
|
7249
|
+
}));
|
|
7250
|
+
if (referenceGroup.api.isHidden) {
|
|
7251
|
+
referenceGroup.api.setHidden(false);
|
|
7252
|
+
}
|
|
7253
|
+
if (this.getPanel(group.id)) {
|
|
7254
|
+
this.doRemoveGroup(group, {
|
|
7255
|
+
skipPopoutAssociated: true,
|
|
7256
|
+
});
|
|
7257
|
+
}
|
|
7258
|
+
}
|
|
7259
|
+
else {
|
|
7260
|
+
if (this.getPanel(group.id)) {
|
|
7261
|
+
const removedGroup = this.doRemoveGroup(group, {
|
|
7262
|
+
skipDispose: true,
|
|
7263
|
+
skipActive: true,
|
|
7264
|
+
});
|
|
7265
|
+
removedGroup.model.renderContainer =
|
|
7266
|
+
this.overlayRenderContainer;
|
|
7267
|
+
removedGroup.model.location = { type: 'grid' };
|
|
7268
|
+
returnedGroup = removedGroup;
|
|
7269
|
+
}
|
|
7270
|
+
}
|
|
7271
|
+
}));
|
|
7272
|
+
this._popoutGroups.push(value);
|
|
7273
|
+
this.updateWatermark();
|
|
7274
|
+
})
|
|
7275
|
+
.catch((err) => {
|
|
7276
|
+
console.error(err);
|
|
6730
7277
|
});
|
|
6731
|
-
popoutWindow.addDisposables({
|
|
6732
|
-
dispose: () => {
|
|
6733
|
-
remove(this._popoutGroups, popoutWindow);
|
|
6734
|
-
this.updateWatermark();
|
|
6735
|
-
},
|
|
6736
|
-
}, popoutWindow.window.onDidClose(() => {
|
|
6737
|
-
this.doAddGroup(group, [0]);
|
|
6738
|
-
}));
|
|
6739
|
-
this._popoutGroups.push(popoutWindow);
|
|
6740
|
-
this.updateWatermark();
|
|
6741
7278
|
}
|
|
6742
7279
|
addFloatingGroup(item, coord, options) {
|
|
6743
|
-
var _a, _b, _c, _d, _e, _f;
|
|
7280
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
6744
7281
|
let group;
|
|
6745
7282
|
if (item instanceof DockviewPanel) {
|
|
6746
7283
|
group = this.createGroup();
|
|
6747
|
-
this.
|
|
7284
|
+
this._onDidAddGroup.fire(group);
|
|
7285
|
+
this.movingLock(() => this.removePanel(item, {
|
|
6748
7286
|
removeEmptyGroup: true,
|
|
6749
7287
|
skipDispose: true,
|
|
6750
|
-
|
|
6751
|
-
|
|
7288
|
+
skipSetActiveGroup: true,
|
|
7289
|
+
}));
|
|
7290
|
+
group.model.openPanel(item, { skipSetGroupActive: true });
|
|
6752
7291
|
}
|
|
6753
7292
|
else {
|
|
6754
7293
|
group = item;
|
|
7294
|
+
const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;
|
|
7295
|
+
const popoutReferenceGroup = popoutReferenceGroupId
|
|
7296
|
+
? this.getPanel(popoutReferenceGroupId)
|
|
7297
|
+
: undefined;
|
|
6755
7298
|
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
6756
7299
|
options.skipRemoveGroup;
|
|
6757
7300
|
if (!skip) {
|
|
6758
|
-
|
|
7301
|
+
if (popoutReferenceGroup) {
|
|
7302
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7303
|
+
from: item,
|
|
7304
|
+
to: popoutReferenceGroup,
|
|
7305
|
+
}));
|
|
7306
|
+
this.doRemoveGroup(item, {
|
|
7307
|
+
skipPopoutReturn: true,
|
|
7308
|
+
skipPopoutAssociated: true,
|
|
7309
|
+
});
|
|
7310
|
+
this.doRemoveGroup(popoutReferenceGroup, {
|
|
7311
|
+
skipDispose: true,
|
|
7312
|
+
});
|
|
7313
|
+
group = popoutReferenceGroup;
|
|
7314
|
+
}
|
|
7315
|
+
else {
|
|
7316
|
+
this.doRemoveGroup(item, {
|
|
7317
|
+
skipDispose: true,
|
|
7318
|
+
skipPopoutReturn: true,
|
|
7319
|
+
skipPopoutAssociated: !!popoutReferenceGroup,
|
|
7320
|
+
});
|
|
7321
|
+
}
|
|
6759
7322
|
}
|
|
6760
7323
|
}
|
|
6761
|
-
group.model.location = 'floating';
|
|
7324
|
+
group.model.location = { type: 'floating' };
|
|
6762
7325
|
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
6763
7326
|
? Math.max(coord.x, 0)
|
|
6764
7327
|
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
@@ -6768,16 +7331,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
6768
7331
|
const overlay = new Overlay({
|
|
6769
7332
|
container: this.gridview.element,
|
|
6770
7333
|
content: group.element,
|
|
6771
|
-
height: (
|
|
6772
|
-
width: (
|
|
7334
|
+
height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
|
|
7335
|
+
width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
|
|
6773
7336
|
left: overlayLeft,
|
|
6774
7337
|
top: overlayTop,
|
|
6775
7338
|
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6776
7339
|
? undefined
|
|
6777
|
-
: (
|
|
7340
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6778
7341
|
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6779
7342
|
? undefined
|
|
6780
|
-
: (
|
|
7343
|
+
: (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6781
7344
|
});
|
|
6782
7345
|
const el = group.element.querySelector('.void-container');
|
|
6783
7346
|
if (!el) {
|
|
@@ -6808,12 +7371,15 @@ class DockviewComponent extends BaseGrid {
|
|
|
6808
7371
|
}), {
|
|
6809
7372
|
dispose: () => {
|
|
6810
7373
|
disposable.dispose();
|
|
6811
|
-
group.model.location = 'grid';
|
|
7374
|
+
group.model.location = { type: 'grid' };
|
|
6812
7375
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
6813
7376
|
this.updateWatermark();
|
|
6814
7377
|
},
|
|
6815
7378
|
});
|
|
6816
7379
|
this._floatingGroups.push(floatingGroupPanel);
|
|
7380
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
7381
|
+
this.doSetGroupAndPanelActive(group);
|
|
7382
|
+
}
|
|
6817
7383
|
this.updateWatermark();
|
|
6818
7384
|
}
|
|
6819
7385
|
orthogonalize(position) {
|
|
@@ -6903,8 +7469,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
6903
7469
|
return this.panels.find((panel) => panel.id === id);
|
|
6904
7470
|
}
|
|
6905
7471
|
setActivePanel(panel) {
|
|
6906
|
-
this.doSetGroupActive(panel.group);
|
|
6907
7472
|
panel.group.model.openPanel(panel);
|
|
7473
|
+
this.doSetGroupAndPanelActive(panel.group);
|
|
6908
7474
|
}
|
|
6909
7475
|
moveToNext(options = {}) {
|
|
6910
7476
|
var _a;
|
|
@@ -6965,7 +7531,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
6965
7531
|
});
|
|
6966
7532
|
const popoutGroups = this._popoutGroups.map((group) => {
|
|
6967
7533
|
return {
|
|
6968
|
-
data: group.
|
|
7534
|
+
data: group.popoutGroup.toJSON(),
|
|
7535
|
+
gridReferenceGroup: group.referenceGroup,
|
|
6969
7536
|
position: group.window.dimensions(),
|
|
6970
7537
|
};
|
|
6971
7538
|
});
|
|
@@ -6983,7 +7550,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
6983
7550
|
return result;
|
|
6984
7551
|
}
|
|
6985
7552
|
fromJSON(data) {
|
|
6986
|
-
var _a, _b;
|
|
7553
|
+
var _a, _b, _c;
|
|
6987
7554
|
this.clear();
|
|
6988
7555
|
if (typeof data !== 'object' || data === null) {
|
|
6989
7556
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -7022,7 +7589,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7022
7589
|
const isActive = typeof activeView === 'string' &&
|
|
7023
7590
|
activeView === panel.id;
|
|
7024
7591
|
group.model.openPanel(panel, {
|
|
7025
|
-
|
|
7592
|
+
skipSetActive: !isActive,
|
|
7026
7593
|
skipSetGroupActive: true,
|
|
7027
7594
|
});
|
|
7028
7595
|
}
|
|
@@ -7052,11 +7619,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7052
7619
|
}
|
|
7053
7620
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7054
7621
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
7055
|
-
const { data, position } = serializedPopoutGroup;
|
|
7622
|
+
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
7056
7623
|
const group = createGroupFromSerializedState(data);
|
|
7057
|
-
this.addPopoutGroup(
|
|
7624
|
+
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
7625
|
+
? this.getPanel(gridReferenceGroup)
|
|
7626
|
+
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
7058
7627
|
skipRemoveGroup: true,
|
|
7059
7628
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
7629
|
+
overridePopoutGroup: gridReferenceGroup
|
|
7630
|
+
? group
|
|
7631
|
+
: undefined,
|
|
7060
7632
|
});
|
|
7061
7633
|
}
|
|
7062
7634
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -7103,12 +7675,13 @@ class DockviewComponent extends BaseGrid {
|
|
|
7103
7675
|
*/
|
|
7104
7676
|
throw err;
|
|
7105
7677
|
}
|
|
7678
|
+
this.updateWatermark();
|
|
7106
7679
|
this._onDidLayoutFromJSON.fire();
|
|
7107
7680
|
}
|
|
7108
7681
|
clear() {
|
|
7109
7682
|
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
7110
7683
|
const hasActiveGroup = !!this.activeGroup;
|
|
7111
|
-
|
|
7684
|
+
!!this.activePanel;
|
|
7112
7685
|
for (const group of groups) {
|
|
7113
7686
|
// remove the group will automatically remove the panels
|
|
7114
7687
|
this.removeGroup(group, { skipActive: true });
|
|
@@ -7116,9 +7689,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
7116
7689
|
if (hasActiveGroup) {
|
|
7117
7690
|
this.doSetGroupAndPanelActive(undefined);
|
|
7118
7691
|
}
|
|
7119
|
-
if (hasActivePanel) {
|
|
7120
|
-
this._onDidActivePanelChange.fire(undefined);
|
|
7121
|
-
}
|
|
7122
7692
|
this.gridview.clear();
|
|
7123
7693
|
}
|
|
7124
7694
|
closeAllGroups() {
|
|
@@ -7159,6 +7729,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7159
7729
|
const group = this.orthogonalize(directionToPosition(options.position.direction));
|
|
7160
7730
|
const panel = this.createPanel(options, group);
|
|
7161
7731
|
group.model.openPanel(panel);
|
|
7732
|
+
this.doSetGroupAndPanelActive(group);
|
|
7162
7733
|
return panel;
|
|
7163
7734
|
}
|
|
7164
7735
|
}
|
|
@@ -7170,6 +7741,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7170
7741
|
const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
|
|
7171
7742
|
if (options.floating) {
|
|
7172
7743
|
const group = this.createGroup();
|
|
7744
|
+
this._onDidAddGroup.fire(group);
|
|
7173
7745
|
const o = typeof options.floating === 'object' &&
|
|
7174
7746
|
options.floating !== null
|
|
7175
7747
|
? options.floating
|
|
@@ -7177,16 +7749,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7177
7749
|
this.addFloatingGroup(group, o, {
|
|
7178
7750
|
inDragMode: false,
|
|
7179
7751
|
skipRemoveGroup: true,
|
|
7752
|
+
skipActiveGroup: true,
|
|
7180
7753
|
});
|
|
7181
|
-
this._onDidAddGroup.fire(group);
|
|
7182
7754
|
panel = this.createPanel(options, group);
|
|
7183
7755
|
group.model.openPanel(panel);
|
|
7184
|
-
this.doSetGroupAndPanelActive(group);
|
|
7185
7756
|
}
|
|
7186
|
-
else if (referenceGroup.api.location === 'floating' ||
|
|
7757
|
+
else if (referenceGroup.api.location.type === 'floating' ||
|
|
7187
7758
|
target === 'center') {
|
|
7188
7759
|
panel = this.createPanel(options, referenceGroup);
|
|
7189
7760
|
referenceGroup.model.openPanel(panel);
|
|
7761
|
+
this.doSetGroupAndPanelActive(referenceGroup);
|
|
7190
7762
|
}
|
|
7191
7763
|
else {
|
|
7192
7764
|
const location = getGridLocation(referenceGroup.element);
|
|
@@ -7194,10 +7766,12 @@ class DockviewComponent extends BaseGrid {
|
|
|
7194
7766
|
const group = this.createGroupAtLocation(relativeLocation);
|
|
7195
7767
|
panel = this.createPanel(options, group);
|
|
7196
7768
|
group.model.openPanel(panel);
|
|
7769
|
+
this.doSetGroupAndPanelActive(group);
|
|
7197
7770
|
}
|
|
7198
7771
|
}
|
|
7199
7772
|
else if (options.floating) {
|
|
7200
7773
|
const group = this.createGroup();
|
|
7774
|
+
this._onDidAddGroup.fire(group);
|
|
7201
7775
|
const o = typeof options.floating === 'object' &&
|
|
7202
7776
|
options.floating !== null
|
|
7203
7777
|
? options.floating
|
|
@@ -7205,16 +7779,16 @@ class DockviewComponent extends BaseGrid {
|
|
|
7205
7779
|
this.addFloatingGroup(group, o, {
|
|
7206
7780
|
inDragMode: false,
|
|
7207
7781
|
skipRemoveGroup: true,
|
|
7782
|
+
skipActiveGroup: true,
|
|
7208
7783
|
});
|
|
7209
|
-
this._onDidAddGroup.fire(group);
|
|
7210
7784
|
panel = this.createPanel(options, group);
|
|
7211
7785
|
group.model.openPanel(panel);
|
|
7212
|
-
this.doSetGroupAndPanelActive(group);
|
|
7213
7786
|
}
|
|
7214
7787
|
else {
|
|
7215
7788
|
const group = this.createGroupAtLocation();
|
|
7216
7789
|
panel = this.createPanel(options, group);
|
|
7217
7790
|
group.model.openPanel(panel);
|
|
7791
|
+
this.doSetGroupAndPanelActive(group);
|
|
7218
7792
|
}
|
|
7219
7793
|
return panel;
|
|
7220
7794
|
}
|
|
@@ -7226,13 +7800,15 @@ class DockviewComponent extends BaseGrid {
|
|
|
7226
7800
|
if (!group) {
|
|
7227
7801
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
7228
7802
|
}
|
|
7229
|
-
group.model.removePanel(panel
|
|
7803
|
+
group.model.removePanel(panel, {
|
|
7804
|
+
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
7805
|
+
});
|
|
7230
7806
|
if (!options.skipDispose) {
|
|
7231
|
-
|
|
7807
|
+
panel.group.model.renderContainer.detatch(panel);
|
|
7232
7808
|
panel.dispose();
|
|
7233
7809
|
}
|
|
7234
7810
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
7235
|
-
this.removeGroup(group);
|
|
7811
|
+
this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
|
|
7236
7812
|
}
|
|
7237
7813
|
}
|
|
7238
7814
|
createWatermarkComponent() {
|
|
@@ -7245,7 +7821,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7245
7821
|
}
|
|
7246
7822
|
updateWatermark() {
|
|
7247
7823
|
var _a, _b;
|
|
7248
|
-
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
7824
|
+
if (this.groups.filter((x) => x.api.location.type === 'grid' && !x.api.isHidden).length === 0) {
|
|
7249
7825
|
if (!this.watermark) {
|
|
7250
7826
|
this.watermark = this.createWatermarkComponent();
|
|
7251
7827
|
this.watermark.init({
|
|
@@ -7265,7 +7841,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7265
7841
|
}
|
|
7266
7842
|
addGroup(options) {
|
|
7267
7843
|
var _a;
|
|
7268
|
-
const group = this.createGroup();
|
|
7844
|
+
const group = this.createGroup(options);
|
|
7269
7845
|
if (options) {
|
|
7270
7846
|
let referenceGroup;
|
|
7271
7847
|
if (isGroupOptionsWithPanel(options)) {
|
|
@@ -7291,36 +7867,42 @@ class DockviewComponent extends BaseGrid {
|
|
|
7291
7867
|
}
|
|
7292
7868
|
else {
|
|
7293
7869
|
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
7870
|
+
if (!options.skipSetActive) {
|
|
7871
|
+
this.doSetGroupAndPanelActive(group);
|
|
7872
|
+
}
|
|
7294
7873
|
return group;
|
|
7295
7874
|
}
|
|
7296
7875
|
const target = toTarget(options.direction || 'within');
|
|
7297
7876
|
const location = getGridLocation(referenceGroup.element);
|
|
7298
7877
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
7299
7878
|
this.doAddGroup(group, relativeLocation);
|
|
7879
|
+
if (!options.skipSetActive) {
|
|
7880
|
+
this.doSetGroupAndPanelActive(group);
|
|
7881
|
+
}
|
|
7300
7882
|
return group;
|
|
7301
7883
|
}
|
|
7302
7884
|
else {
|
|
7303
7885
|
this.doAddGroup(group);
|
|
7886
|
+
this.doSetGroupAndPanelActive(group);
|
|
7304
7887
|
return group;
|
|
7305
7888
|
}
|
|
7306
7889
|
}
|
|
7307
7890
|
removeGroup(group, options) {
|
|
7891
|
+
this.doRemoveGroup(group, options);
|
|
7892
|
+
}
|
|
7893
|
+
doRemoveGroup(group, options) {
|
|
7308
7894
|
var _a;
|
|
7309
7895
|
const panels = [...group.panels]; // reassign since group panels will mutate
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
|
|
7314
|
-
|
|
7896
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7897
|
+
for (const panel of panels) {
|
|
7898
|
+
this.removePanel(panel, {
|
|
7899
|
+
removeEmptyGroup: false,
|
|
7900
|
+
skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
|
|
7901
|
+
});
|
|
7902
|
+
}
|
|
7315
7903
|
}
|
|
7316
7904
|
const activePanel = this.activePanel;
|
|
7317
|
-
|
|
7318
|
-
if (this.activePanel !== activePanel) {
|
|
7319
|
-
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7320
|
-
}
|
|
7321
|
-
}
|
|
7322
|
-
doRemoveGroup(group, options) {
|
|
7323
|
-
if (group.api.location === 'floating') {
|
|
7905
|
+
if (group.api.location.type === 'floating') {
|
|
7324
7906
|
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
7325
7907
|
if (floatingGroup) {
|
|
7326
7908
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -7332,60 +7914,124 @@ class DockviewComponent extends BaseGrid {
|
|
|
7332
7914
|
floatingGroup.dispose();
|
|
7333
7915
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7334
7916
|
const groups = Array.from(this._groups.values());
|
|
7335
|
-
this.
|
|
7917
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7336
7918
|
}
|
|
7337
7919
|
return floatingGroup.group;
|
|
7338
7920
|
}
|
|
7339
7921
|
throw new Error('failed to find floating group');
|
|
7340
7922
|
}
|
|
7341
|
-
if (group.api.location === 'popout') {
|
|
7342
|
-
const selectedGroup = this._popoutGroups.find((_) => _.
|
|
7923
|
+
if (group.api.location.type === 'popout') {
|
|
7924
|
+
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
7343
7925
|
if (selectedGroup) {
|
|
7344
7926
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7345
|
-
|
|
7927
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
|
|
7928
|
+
const refGroup = selectedGroup.referenceGroup
|
|
7929
|
+
? this.getPanel(selectedGroup.referenceGroup)
|
|
7930
|
+
: undefined;
|
|
7931
|
+
if (refGroup) {
|
|
7932
|
+
this.removeGroup(refGroup);
|
|
7933
|
+
}
|
|
7934
|
+
}
|
|
7935
|
+
selectedGroup.popoutGroup.dispose();
|
|
7346
7936
|
this._groups.delete(group.id);
|
|
7347
7937
|
this._onDidRemoveGroup.fire(group);
|
|
7348
7938
|
}
|
|
7349
|
-
selectedGroup.dispose();
|
|
7939
|
+
const removedGroup = selectedGroup.disposable.dispose();
|
|
7940
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
7941
|
+
this.doAddGroup(removedGroup, [0]);
|
|
7942
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
7943
|
+
}
|
|
7350
7944
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7351
7945
|
const groups = Array.from(this._groups.values());
|
|
7352
|
-
this.
|
|
7946
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7353
7947
|
}
|
|
7354
|
-
|
|
7948
|
+
this.updateWatermark();
|
|
7949
|
+
return selectedGroup.popoutGroup;
|
|
7355
7950
|
}
|
|
7356
7951
|
throw new Error('failed to find popout group');
|
|
7357
7952
|
}
|
|
7358
|
-
|
|
7953
|
+
const re = super.doRemoveGroup(group, options);
|
|
7954
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
7955
|
+
if (this.activePanel !== activePanel) {
|
|
7956
|
+
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7957
|
+
}
|
|
7958
|
+
}
|
|
7959
|
+
return re;
|
|
7359
7960
|
}
|
|
7360
|
-
|
|
7361
|
-
|
|
7961
|
+
movingLock(func) {
|
|
7962
|
+
const isMoving = this._moving;
|
|
7963
|
+
try {
|
|
7964
|
+
this._moving = true;
|
|
7965
|
+
return func();
|
|
7966
|
+
}
|
|
7967
|
+
finally {
|
|
7968
|
+
this._moving = isMoving;
|
|
7969
|
+
}
|
|
7970
|
+
}
|
|
7971
|
+
moveGroupOrPanel(options) {
|
|
7972
|
+
var _a;
|
|
7973
|
+
const destinationGroup = options.to.group;
|
|
7974
|
+
const sourceGroupId = options.from.groupId;
|
|
7975
|
+
const sourceItemId = options.from.panelId;
|
|
7976
|
+
const destinationTarget = options.to.position;
|
|
7977
|
+
const destinationIndex = options.to.index;
|
|
7362
7978
|
const sourceGroup = sourceGroupId
|
|
7363
7979
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
7364
7980
|
: undefined;
|
|
7981
|
+
if (!sourceGroup) {
|
|
7982
|
+
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
7983
|
+
}
|
|
7365
7984
|
if (sourceItemId === undefined) {
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
|
|
7985
|
+
/**
|
|
7986
|
+
* Moving an entire group into another group
|
|
7987
|
+
*/
|
|
7988
|
+
this.moveGroup({
|
|
7989
|
+
from: { group: sourceGroup },
|
|
7990
|
+
to: {
|
|
7991
|
+
group: destinationGroup,
|
|
7992
|
+
position: destinationTarget,
|
|
7993
|
+
},
|
|
7994
|
+
});
|
|
7369
7995
|
return;
|
|
7370
7996
|
}
|
|
7371
7997
|
if (!destinationTarget || destinationTarget === 'center') {
|
|
7372
|
-
|
|
7373
|
-
|
|
7998
|
+
/**
|
|
7999
|
+
* Dropping a panel within another group
|
|
8000
|
+
*/
|
|
8001
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8002
|
+
skipSetActive: false,
|
|
8003
|
+
skipSetActiveGroup: true,
|
|
8004
|
+
}));
|
|
8005
|
+
if (!removedPanel) {
|
|
7374
8006
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7375
8007
|
}
|
|
7376
|
-
if (
|
|
7377
|
-
|
|
8008
|
+
if (sourceGroup.model.size === 0) {
|
|
8009
|
+
// remove the group and do not set a new group as active
|
|
8010
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
7378
8011
|
}
|
|
7379
|
-
destinationGroup.model.openPanel(
|
|
8012
|
+
this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {
|
|
7380
8013
|
index: destinationIndex,
|
|
8014
|
+
skipSetGroupActive: true,
|
|
8015
|
+
}));
|
|
8016
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8017
|
+
this._onDidMovePanel.fire({
|
|
8018
|
+
panel: removedPanel,
|
|
7381
8019
|
});
|
|
7382
8020
|
}
|
|
7383
8021
|
else {
|
|
8022
|
+
/**
|
|
8023
|
+
* Dropping a panel to the extremities of a group which will place that panel
|
|
8024
|
+
* into an adjacent group
|
|
8025
|
+
*/
|
|
7384
8026
|
const referenceLocation = getGridLocation(destinationGroup.element);
|
|
7385
8027
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7386
|
-
if (sourceGroup
|
|
8028
|
+
if (sourceGroup.size < 2) {
|
|
8029
|
+
/**
|
|
8030
|
+
* If we are moving from a group which only has one panel left we will consider
|
|
8031
|
+
* moving the group itself rather than moving the panel into a newly created group
|
|
8032
|
+
*/
|
|
7387
8033
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
7388
|
-
if (sourceGroup.api.location === 'grid') {
|
|
8034
|
+
if (sourceGroup.api.location.type === 'grid') {
|
|
7389
8035
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
7390
8036
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
7391
8037
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -7393,78 +8039,123 @@ class DockviewComponent extends BaseGrid {
|
|
|
7393
8039
|
// if a group has one tab - we are essentially moving the 'group'
|
|
7394
8040
|
// which is equivalent to swapping two views in this case
|
|
7395
8041
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8042
|
+
return;
|
|
7396
8043
|
}
|
|
7397
8044
|
}
|
|
7398
8045
|
// source group will become empty so delete the group
|
|
7399
|
-
const targetGroup = this.doRemoveGroup(sourceGroup, {
|
|
8046
|
+
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
7400
8047
|
skipActive: true,
|
|
7401
8048
|
skipDispose: true,
|
|
7402
|
-
});
|
|
8049
|
+
}));
|
|
7403
8050
|
// after deleting the group we need to re-evaulate the ref location
|
|
7404
8051
|
const updatedReferenceLocation = getGridLocation(destinationGroup.element);
|
|
7405
8052
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
7406
|
-
this.doAddGroup(targetGroup, location);
|
|
8053
|
+
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8054
|
+
this.doSetGroupAndPanelActive(targetGroup);
|
|
7407
8055
|
}
|
|
7408
8056
|
else {
|
|
7409
|
-
|
|
7410
|
-
|
|
8057
|
+
/**
|
|
8058
|
+
* The group we are removing from has many panels, we need to remove the panels we are moving,
|
|
8059
|
+
* create a new group, add the panels to that new group and add the new group in an appropiate position
|
|
8060
|
+
*/
|
|
8061
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8062
|
+
skipSetActive: false,
|
|
8063
|
+
skipSetActiveGroup: true,
|
|
8064
|
+
}));
|
|
8065
|
+
if (!removedPanel) {
|
|
7411
8066
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7412
8067
|
}
|
|
7413
8068
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7414
8069
|
const group = this.createGroupAtLocation(dropLocation);
|
|
7415
|
-
group.model.openPanel(
|
|
8070
|
+
this.movingLock(() => group.model.openPanel(removedPanel, {
|
|
8071
|
+
skipSetGroupActive: true,
|
|
8072
|
+
}));
|
|
8073
|
+
this.doSetGroupAndPanelActive(group);
|
|
7416
8074
|
}
|
|
7417
8075
|
}
|
|
7418
8076
|
}
|
|
7419
|
-
moveGroup(
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
8077
|
+
moveGroup(options) {
|
|
8078
|
+
const from = options.from.group;
|
|
8079
|
+
const to = options.to.group;
|
|
8080
|
+
const target = options.to.position;
|
|
8081
|
+
if (target === 'center') {
|
|
8082
|
+
const activePanel = from.activePanel;
|
|
8083
|
+
const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {
|
|
8084
|
+
skipSetActive: true,
|
|
8085
|
+
})));
|
|
8086
|
+
if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
|
|
8087
|
+
this.doRemoveGroup(from, { skipActive: true });
|
|
8088
|
+
}
|
|
8089
|
+
this.movingLock(() => {
|
|
7427
8090
|
for (const panel of panels) {
|
|
7428
|
-
|
|
7429
|
-
|
|
8091
|
+
to.model.openPanel(panel, {
|
|
8092
|
+
skipSetActive: panel !== activePanel,
|
|
8093
|
+
skipSetGroupActive: true,
|
|
7430
8094
|
});
|
|
7431
8095
|
}
|
|
7432
|
-
}
|
|
7433
|
-
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
8096
|
+
});
|
|
8097
|
+
this.doSetGroupAndPanelActive(to);
|
|
8098
|
+
panels.forEach((panel) => {
|
|
8099
|
+
this._onDidMovePanel.fire({ panel });
|
|
8100
|
+
});
|
|
8101
|
+
}
|
|
8102
|
+
else {
|
|
8103
|
+
switch (from.api.location.type) {
|
|
8104
|
+
case 'grid':
|
|
8105
|
+
this.gridview.removeView(getGridLocation(from.element));
|
|
8106
|
+
break;
|
|
8107
|
+
case 'floating': {
|
|
8108
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
8109
|
+
if (!selectedFloatingGroup) {
|
|
8110
|
+
throw new Error('failed to find floating group');
|
|
7445
8111
|
}
|
|
7446
|
-
|
|
7447
|
-
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
|
|
7451
|
-
|
|
8112
|
+
selectedFloatingGroup.dispose();
|
|
8113
|
+
break;
|
|
8114
|
+
}
|
|
8115
|
+
case 'popout': {
|
|
8116
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
8117
|
+
if (!selectedPopoutGroup) {
|
|
8118
|
+
throw new Error('failed to find popout group');
|
|
7452
8119
|
}
|
|
8120
|
+
selectedPopoutGroup.disposable.dispose();
|
|
7453
8121
|
}
|
|
7454
|
-
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
7455
|
-
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
7456
|
-
this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);
|
|
7457
8122
|
}
|
|
8123
|
+
const referenceLocation = getGridLocation(to.element);
|
|
8124
|
+
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8125
|
+
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
8126
|
+
from.panels.forEach((panel) => {
|
|
8127
|
+
this._onDidMovePanel.fire({ panel });
|
|
8128
|
+
});
|
|
7458
8129
|
}
|
|
7459
8130
|
}
|
|
7460
|
-
|
|
7461
|
-
|
|
8131
|
+
doSetGroupActive(group) {
|
|
8132
|
+
super.doSetGroupActive(group);
|
|
8133
|
+
const activePanel = this.activePanel;
|
|
8134
|
+
if (!this._moving &&
|
|
8135
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8136
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8137
|
+
}
|
|
8138
|
+
}
|
|
8139
|
+
doSetGroupAndPanelActive(group) {
|
|
8140
|
+
super.doSetGroupActive(group);
|
|
7462
8141
|
const activePanel = this.activePanel;
|
|
7463
|
-
|
|
7464
|
-
|
|
7465
|
-
this.
|
|
8142
|
+
if (group &&
|
|
8143
|
+
this.hasMaximizedGroup() &&
|
|
8144
|
+
!this.isMaximizedGroup(group)) {
|
|
8145
|
+
this.exitMaximizedGroup();
|
|
8146
|
+
}
|
|
8147
|
+
if (!this._moving &&
|
|
8148
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8149
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
7466
8150
|
}
|
|
7467
8151
|
}
|
|
8152
|
+
getNextGroupId() {
|
|
8153
|
+
let id = this.nextGroupId.next();
|
|
8154
|
+
while (this._groups.has(id)) {
|
|
8155
|
+
id = this.nextGroupId.next();
|
|
8156
|
+
}
|
|
8157
|
+
return id;
|
|
8158
|
+
}
|
|
7468
8159
|
createGroup(options) {
|
|
7469
8160
|
if (!options) {
|
|
7470
8161
|
options = {};
|
|
@@ -7481,7 +8172,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
7481
8172
|
}
|
|
7482
8173
|
}
|
|
7483
8174
|
const view = new DockviewGroupPanel(this, id, options);
|
|
7484
|
-
view.init({ params: {}, accessor:
|
|
8175
|
+
view.init({ params: {}, accessor: this });
|
|
7485
8176
|
if (!this._groups.has(view.id)) {
|
|
7486
8177
|
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
7487
8178
|
this._onWillDragPanel.fire(event);
|
|
@@ -7489,20 +8180,48 @@ class DockviewComponent extends BaseGrid {
|
|
|
7489
8180
|
this._onWillDragGroup.fire(event);
|
|
7490
8181
|
}), view.model.onMove((event) => {
|
|
7491
8182
|
const { groupId, itemId, target, index } = event;
|
|
7492
|
-
this.moveGroupOrPanel(
|
|
8183
|
+
this.moveGroupOrPanel({
|
|
8184
|
+
from: { groupId: groupId, panelId: itemId },
|
|
8185
|
+
to: {
|
|
8186
|
+
group: view,
|
|
8187
|
+
position: target,
|
|
8188
|
+
index,
|
|
8189
|
+
},
|
|
8190
|
+
});
|
|
7493
8191
|
}), view.model.onDidDrop((event) => {
|
|
7494
|
-
this._onDidDrop.fire(
|
|
8192
|
+
this._onDidDrop.fire(event);
|
|
8193
|
+
}), view.model.onWillDrop((event) => {
|
|
8194
|
+
this._onWillDrop.fire(event);
|
|
8195
|
+
}), view.model.onWillShowOverlay((event) => {
|
|
8196
|
+
if (this.options.disableDnd) {
|
|
8197
|
+
event.preventDefault();
|
|
8198
|
+
return;
|
|
8199
|
+
}
|
|
8200
|
+
this._onWillShowOverlay.fire(event);
|
|
7495
8201
|
}), view.model.onDidAddPanel((event) => {
|
|
8202
|
+
if (this._moving) {
|
|
8203
|
+
return;
|
|
8204
|
+
}
|
|
7496
8205
|
this._onDidAddPanel.fire(event.panel);
|
|
7497
8206
|
}), view.model.onDidRemovePanel((event) => {
|
|
8207
|
+
if (this._moving) {
|
|
8208
|
+
return;
|
|
8209
|
+
}
|
|
7498
8210
|
this._onDidRemovePanel.fire(event.panel);
|
|
7499
8211
|
}), view.model.onDidActivePanelChange((event) => {
|
|
7500
|
-
this.
|
|
8212
|
+
if (this._moving) {
|
|
8213
|
+
return;
|
|
8214
|
+
}
|
|
8215
|
+
if (event.panel !== this.activePanel) {
|
|
8216
|
+
return;
|
|
8217
|
+
}
|
|
8218
|
+
if (this._onDidActivePanelChange.value !== event.panel) {
|
|
8219
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
8220
|
+
}
|
|
7501
8221
|
}));
|
|
7502
8222
|
this._groups.set(view.id, { value: view, disposable });
|
|
7503
8223
|
}
|
|
7504
|
-
// TODO: must be called after the above listeners have been setup,
|
|
7505
|
-
// not an ideal pattern
|
|
8224
|
+
// TODO: must be called after the above listeners have been setup, not an ideal pattern
|
|
7506
8225
|
view.initialize();
|
|
7507
8226
|
return view;
|
|
7508
8227
|
}
|
|
@@ -7555,7 +8274,20 @@ class GridviewComponent extends BaseGrid {
|
|
|
7555
8274
|
});
|
|
7556
8275
|
this._onDidLayoutfromJSON = new Emitter();
|
|
7557
8276
|
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
8277
|
+
this._onDidRemoveGroup = new Emitter();
|
|
8278
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
8279
|
+
this._onDidAddGroup = new Emitter();
|
|
8280
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
8281
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
8282
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7558
8283
|
this._options = options;
|
|
8284
|
+
this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {
|
|
8285
|
+
this._onDidAddGroup.fire(event);
|
|
8286
|
+
}), this.onDidRemove((event) => {
|
|
8287
|
+
this._onDidRemoveGroup.fire(event);
|
|
8288
|
+
}), this.onDidActiveChange((event) => {
|
|
8289
|
+
this._onDidActiveGroupChange.fire(event);
|
|
8290
|
+
}));
|
|
7559
8291
|
if (!this.options.components) {
|
|
7560
8292
|
this.options.components = {};
|
|
7561
8293
|
}
|
|
@@ -7730,6 +8462,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
7730
8462
|
});
|
|
7731
8463
|
this.registerPanel(view);
|
|
7732
8464
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
8465
|
+
this.doSetGroupActive(view);
|
|
7733
8466
|
return view;
|
|
7734
8467
|
}
|
|
7735
8468
|
registerPanel(panel) {
|
|
@@ -8415,10 +9148,10 @@ class SplitviewPanel extends BasePanelView {
|
|
|
8415
9148
|
this._onDidChange = new Emitter();
|
|
8416
9149
|
this.onDidChange = this._onDidChange.event;
|
|
8417
9150
|
this.api.initialize(this);
|
|
8418
|
-
this.addDisposables(this._onDidChange, this.api.
|
|
8419
|
-
const {
|
|
9151
|
+
this.addDisposables(this._onDidChange, this.api.onDidHiddenChange((event) => {
|
|
9152
|
+
const { isHidden } = event;
|
|
8420
9153
|
const { accessor } = this._params;
|
|
8421
|
-
accessor.setVisible(this,
|
|
9154
|
+
accessor.setVisible(this, !isHidden);
|
|
8422
9155
|
}), this.api.onActiveChange(() => {
|
|
8423
9156
|
const { accessor } = this._params;
|
|
8424
9157
|
accessor.setActive(this);
|
|
@@ -8477,5 +9210,5 @@ class SplitviewPanel extends BasePanelView {
|
|
|
8477
9210
|
}
|
|
8478
9211
|
}
|
|
8479
9212
|
|
|
8480
|
-
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable,
|
|
9213
|
+
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 };
|
|
8481
9214
|
//# sourceMappingURL=dockview-core.esm.js.map
|