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
package/dist/dockview-core.js
CHANGED
|
@@ -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
|
*/
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
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}";
|
|
40
|
+
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}";
|
|
41
41
|
styleInject(css_248z);
|
|
42
42
|
|
|
43
43
|
class TransferObject {
|
|
@@ -122,6 +122,17 @@
|
|
|
122
122
|
};
|
|
123
123
|
};
|
|
124
124
|
})(exports.DockviewEvent || (exports.DockviewEvent = {}));
|
|
125
|
+
class DockviewEvent {
|
|
126
|
+
constructor() {
|
|
127
|
+
this._defaultPrevented = false;
|
|
128
|
+
}
|
|
129
|
+
get defaultPrevented() {
|
|
130
|
+
return this._defaultPrevented;
|
|
131
|
+
}
|
|
132
|
+
preventDefault() {
|
|
133
|
+
this._defaultPrevented = true;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
125
136
|
class LeakageMonitor {
|
|
126
137
|
constructor() {
|
|
127
138
|
this.events = new Map();
|
|
@@ -165,6 +176,9 @@
|
|
|
165
176
|
}
|
|
166
177
|
Emitter.ENABLE_TRACKING = isEnabled;
|
|
167
178
|
}
|
|
179
|
+
get value() {
|
|
180
|
+
return this._last;
|
|
181
|
+
}
|
|
168
182
|
constructor(options) {
|
|
169
183
|
this.options = options;
|
|
170
184
|
this._listeners = [];
|
|
@@ -287,8 +301,12 @@
|
|
|
287
301
|
args.forEach((arg) => this._disposables.push(arg));
|
|
288
302
|
}
|
|
289
303
|
dispose() {
|
|
290
|
-
this.
|
|
304
|
+
if (this._isDisposed) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
291
307
|
this._isDisposed = true;
|
|
308
|
+
this._disposables.forEach((arg) => arg.dispose());
|
|
309
|
+
this._disposables = [];
|
|
292
310
|
}
|
|
293
311
|
}
|
|
294
312
|
class MutableDisposable {
|
|
@@ -772,6 +790,13 @@
|
|
|
772
790
|
this._endSnappingEnabled = endSnappingEnabled;
|
|
773
791
|
this.updateSashEnablement();
|
|
774
792
|
}
|
|
793
|
+
get disabled() {
|
|
794
|
+
return this._disabled;
|
|
795
|
+
}
|
|
796
|
+
set disabled(value) {
|
|
797
|
+
this._disabled = value;
|
|
798
|
+
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
799
|
+
}
|
|
775
800
|
constructor(container, options) {
|
|
776
801
|
this.container = container;
|
|
777
802
|
this.viewItems = [];
|
|
@@ -782,6 +807,7 @@
|
|
|
782
807
|
this._proportions = undefined;
|
|
783
808
|
this._startSnappingEnabled = true;
|
|
784
809
|
this._endSnappingEnabled = true;
|
|
810
|
+
this._disabled = false;
|
|
785
811
|
this._onDidSashEnd = new Emitter();
|
|
786
812
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
787
813
|
this._onDidAddView = new Emitter();
|
|
@@ -1709,7 +1735,13 @@
|
|
|
1709
1735
|
}
|
|
1710
1736
|
return exports.LayoutPriority.Normal;
|
|
1711
1737
|
}
|
|
1712
|
-
|
|
1738
|
+
get disabled() {
|
|
1739
|
+
return this.splitview.disabled;
|
|
1740
|
+
}
|
|
1741
|
+
set disabled(value) {
|
|
1742
|
+
this.splitview.disabled = value;
|
|
1743
|
+
}
|
|
1744
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {
|
|
1713
1745
|
super();
|
|
1714
1746
|
this.orientation = orientation;
|
|
1715
1747
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1754,6 +1786,7 @@
|
|
|
1754
1786
|
styles,
|
|
1755
1787
|
});
|
|
1756
1788
|
}
|
|
1789
|
+
this.disabled = disabled;
|
|
1757
1790
|
this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {
|
|
1758
1791
|
this._onDidChange.fire({});
|
|
1759
1792
|
}));
|
|
@@ -1887,7 +1920,7 @@
|
|
|
1887
1920
|
}
|
|
1888
1921
|
function flipNode(node, size, orthogonalSize) {
|
|
1889
1922
|
if (node instanceof BranchNode) {
|
|
1890
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);
|
|
1923
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1891
1924
|
let totalSize = 0;
|
|
1892
1925
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1893
1926
|
const child = node.children[i];
|
|
@@ -2023,31 +2056,57 @@
|
|
|
2023
2056
|
get maximumHeight() {
|
|
2024
2057
|
return this.root.maximumHeight;
|
|
2025
2058
|
}
|
|
2059
|
+
get locked() {
|
|
2060
|
+
return this._locked;
|
|
2061
|
+
}
|
|
2062
|
+
set locked(value) {
|
|
2063
|
+
this._locked = value;
|
|
2064
|
+
const branch = [this.root];
|
|
2065
|
+
/**
|
|
2066
|
+
* simple depth-first-search to cover all nodes
|
|
2067
|
+
*
|
|
2068
|
+
* @see https://en.wikipedia.org/wiki/Depth-first_search
|
|
2069
|
+
*/
|
|
2070
|
+
while (branch.length > 0) {
|
|
2071
|
+
const node = branch.pop();
|
|
2072
|
+
if (node instanceof BranchNode) {
|
|
2073
|
+
node.disabled = value;
|
|
2074
|
+
branch.push(...node.children);
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2026
2078
|
maximizedView() {
|
|
2027
2079
|
var _a;
|
|
2028
|
-
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.view;
|
|
2080
|
+
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
2029
2081
|
}
|
|
2030
2082
|
hasMaximizedView() {
|
|
2031
2083
|
return this._maximizedNode !== undefined;
|
|
2032
2084
|
}
|
|
2033
2085
|
maximizeView(view) {
|
|
2086
|
+
var _a;
|
|
2034
2087
|
const location = getGridLocation(view.element);
|
|
2035
2088
|
const [_, node] = this.getNode(location);
|
|
2036
2089
|
if (!(node instanceof LeafNode)) {
|
|
2037
2090
|
return;
|
|
2038
2091
|
}
|
|
2039
|
-
if (this._maximizedNode === node) {
|
|
2092
|
+
if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {
|
|
2040
2093
|
return;
|
|
2041
2094
|
}
|
|
2042
2095
|
if (this.hasMaximizedView()) {
|
|
2043
2096
|
this.exitMaximizedView();
|
|
2044
2097
|
}
|
|
2098
|
+
const hiddenOnMaximize = [];
|
|
2045
2099
|
function hideAllViewsBut(parent, exclude) {
|
|
2046
2100
|
for (let i = 0; i < parent.children.length; i++) {
|
|
2047
2101
|
const child = parent.children[i];
|
|
2048
2102
|
if (child instanceof LeafNode) {
|
|
2049
2103
|
if (child !== exclude) {
|
|
2050
|
-
parent.
|
|
2104
|
+
if (parent.isChildVisible(i)) {
|
|
2105
|
+
parent.setChildVisible(i, false);
|
|
2106
|
+
}
|
|
2107
|
+
else {
|
|
2108
|
+
hiddenOnMaximize.push(child);
|
|
2109
|
+
}
|
|
2051
2110
|
}
|
|
2052
2111
|
}
|
|
2053
2112
|
else {
|
|
@@ -2056,18 +2115,21 @@
|
|
|
2056
2115
|
}
|
|
2057
2116
|
}
|
|
2058
2117
|
hideAllViewsBut(this.root, node);
|
|
2059
|
-
this._maximizedNode = node;
|
|
2060
|
-
this.
|
|
2118
|
+
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2119
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2061
2120
|
}
|
|
2062
2121
|
exitMaximizedView() {
|
|
2063
2122
|
if (!this._maximizedNode) {
|
|
2064
2123
|
return;
|
|
2065
2124
|
}
|
|
2125
|
+
const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;
|
|
2066
2126
|
function showViewsInReverseOrder(parent) {
|
|
2067
2127
|
for (let index = parent.children.length - 1; index >= 0; index--) {
|
|
2068
2128
|
const child = parent.children[index];
|
|
2069
2129
|
if (child instanceof LeafNode) {
|
|
2070
|
-
|
|
2130
|
+
if (!hiddenOnMaximize.includes(child)) {
|
|
2131
|
+
parent.setChildVisible(index, true);
|
|
2132
|
+
}
|
|
2071
2133
|
}
|
|
2072
2134
|
else {
|
|
2073
2135
|
showViewsInReverseOrder(child);
|
|
@@ -2076,13 +2138,13 @@
|
|
|
2076
2138
|
}
|
|
2077
2139
|
showViewsInReverseOrder(this.root);
|
|
2078
2140
|
this._maximizedNode = undefined;
|
|
2079
|
-
this.
|
|
2141
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2080
2142
|
}
|
|
2081
2143
|
serialize() {
|
|
2082
2144
|
if (this.hasMaximizedView()) {
|
|
2083
2145
|
/**
|
|
2084
|
-
* do not persist maximized view state
|
|
2085
|
-
*
|
|
2146
|
+
* do not persist maximized view state
|
|
2147
|
+
* firstly exit any maximized views to ensure the correct dimensions are persisted
|
|
2086
2148
|
*/
|
|
2087
2149
|
this.exitMaximizedView();
|
|
2088
2150
|
}
|
|
@@ -2097,14 +2159,14 @@
|
|
|
2097
2159
|
dispose() {
|
|
2098
2160
|
this.disposable.dispose();
|
|
2099
2161
|
this._onDidChange.dispose();
|
|
2100
|
-
this.
|
|
2162
|
+
this._onDidMaximizedNodeChange.dispose();
|
|
2101
2163
|
this.root.dispose();
|
|
2102
2164
|
this._maximizedNode = undefined;
|
|
2103
2165
|
this.element.remove();
|
|
2104
2166
|
}
|
|
2105
2167
|
clear() {
|
|
2106
2168
|
const orientation = this.root.orientation;
|
|
2107
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);
|
|
2169
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);
|
|
2108
2170
|
}
|
|
2109
2171
|
deserialize(json, deserializer) {
|
|
2110
2172
|
const orientation = json.orientation;
|
|
@@ -2125,8 +2187,8 @@
|
|
|
2125
2187
|
};
|
|
2126
2188
|
});
|
|
2127
2189
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2128
|
-
orthogonalSize, // <- size - flips at each depth
|
|
2129
|
-
children);
|
|
2190
|
+
orthogonalSize, // <- size - flips at each depth,
|
|
2191
|
+
this._locked, children);
|
|
2130
2192
|
}
|
|
2131
2193
|
else {
|
|
2132
2194
|
result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);
|
|
@@ -2159,7 +2221,7 @@
|
|
|
2159
2221
|
}
|
|
2160
2222
|
const oldRoot = this.root;
|
|
2161
2223
|
oldRoot.element.remove();
|
|
2162
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);
|
|
2224
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);
|
|
2163
2225
|
if (oldRoot.children.length === 0) ;
|
|
2164
2226
|
else if (oldRoot.children.length === 1) {
|
|
2165
2227
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2227,15 +2289,16 @@
|
|
|
2227
2289
|
constructor(proportionalLayout, styles, orientation) {
|
|
2228
2290
|
this.proportionalLayout = proportionalLayout;
|
|
2229
2291
|
this.styles = styles;
|
|
2292
|
+
this._locked = false;
|
|
2230
2293
|
this._maximizedNode = undefined;
|
|
2231
2294
|
this.disposable = new MutableDisposable();
|
|
2232
2295
|
this._onDidChange = new Emitter();
|
|
2233
2296
|
this.onDidChange = this._onDidChange.event;
|
|
2234
|
-
this.
|
|
2235
|
-
this.
|
|
2297
|
+
this._onDidMaximizedNodeChange = new Emitter();
|
|
2298
|
+
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2236
2299
|
this.element = document.createElement('div');
|
|
2237
2300
|
this.element.className = 'grid-view';
|
|
2238
|
-
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);
|
|
2301
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);
|
|
2239
2302
|
}
|
|
2240
2303
|
isViewVisible(location) {
|
|
2241
2304
|
const [rest, index] = tail(location);
|
|
@@ -2286,7 +2349,7 @@
|
|
|
2286
2349
|
}
|
|
2287
2350
|
const child = grandParent.removeChild(parentIndex);
|
|
2288
2351
|
child.dispose();
|
|
2289
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);
|
|
2352
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);
|
|
2290
2353
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2291
2354
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2292
2355
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2913,6 +2976,21 @@
|
|
|
2913
2976
|
get onDidDrop() {
|
|
2914
2977
|
return this.component.onDidDrop;
|
|
2915
2978
|
}
|
|
2979
|
+
/**
|
|
2980
|
+
* Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and
|
|
2981
|
+
* prevent the event from occuring using the standard `preventDefault()` syntax.
|
|
2982
|
+
*
|
|
2983
|
+
* Preventing certain events may causes unexpected behaviours, use carefully.
|
|
2984
|
+
*/
|
|
2985
|
+
get onWillDrop() {
|
|
2986
|
+
return this.component.onWillDrop;
|
|
2987
|
+
}
|
|
2988
|
+
/**
|
|
2989
|
+
*
|
|
2990
|
+
*/
|
|
2991
|
+
get onWillShowOverlay() {
|
|
2992
|
+
return this.component.onWillShowOverlay;
|
|
2993
|
+
}
|
|
2916
2994
|
/**
|
|
2917
2995
|
* Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.
|
|
2918
2996
|
*/
|
|
@@ -3048,17 +3126,17 @@
|
|
|
3048
3126
|
hasMaximizedGroup() {
|
|
3049
3127
|
return this.component.hasMaximizedGroup();
|
|
3050
3128
|
}
|
|
3051
|
-
|
|
3129
|
+
exitMaximizedGroup() {
|
|
3052
3130
|
this.component.exitMaximizedGroup();
|
|
3053
3131
|
}
|
|
3054
|
-
get
|
|
3055
|
-
return this.component.
|
|
3132
|
+
get onDidMaximizedGroupChange() {
|
|
3133
|
+
return this.component.onDidMaximizedGroupChange;
|
|
3056
3134
|
}
|
|
3057
3135
|
/**
|
|
3058
3136
|
* Add a popout group in a new Window
|
|
3059
3137
|
*/
|
|
3060
3138
|
addPopoutGroup(item, options) {
|
|
3061
|
-
this.component.addPopoutGroup(item, options);
|
|
3139
|
+
return this.component.addPopoutGroup(item, options);
|
|
3062
3140
|
}
|
|
3063
3141
|
}
|
|
3064
3142
|
|
|
@@ -3112,6 +3190,18 @@
|
|
|
3112
3190
|
}
|
|
3113
3191
|
}
|
|
3114
3192
|
|
|
3193
|
+
class WillShowOverlayEvent extends DockviewEvent {
|
|
3194
|
+
get nativeEvent() {
|
|
3195
|
+
return this.options.nativeEvent;
|
|
3196
|
+
}
|
|
3197
|
+
get position() {
|
|
3198
|
+
return this.options.position;
|
|
3199
|
+
}
|
|
3200
|
+
constructor(options) {
|
|
3201
|
+
super();
|
|
3202
|
+
this.options = options;
|
|
3203
|
+
}
|
|
3204
|
+
}
|
|
3115
3205
|
function directionToPosition(direction) {
|
|
3116
3206
|
switch (direction) {
|
|
3117
3207
|
case 'above':
|
|
@@ -3164,6 +3254,8 @@
|
|
|
3164
3254
|
this.options = options;
|
|
3165
3255
|
this._onDrop = new Emitter();
|
|
3166
3256
|
this.onDrop = this._onDrop.event;
|
|
3257
|
+
this._onWillShowOverlay = new Emitter();
|
|
3258
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3167
3259
|
// use a set to take advantage of #<set>.has
|
|
3168
3260
|
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
3169
3261
|
this.dnd = new DragAndDropObserver(this.element, {
|
|
@@ -3192,6 +3284,19 @@
|
|
|
3192
3284
|
this.removeDropTarget();
|
|
3193
3285
|
return;
|
|
3194
3286
|
}
|
|
3287
|
+
const willShowOverlayEvent = new WillShowOverlayEvent({
|
|
3288
|
+
nativeEvent: e,
|
|
3289
|
+
position: quadrant,
|
|
3290
|
+
});
|
|
3291
|
+
/**
|
|
3292
|
+
* Provide an opportunity to prevent the overlay appearing and in turn
|
|
3293
|
+
* any dnd behaviours
|
|
3294
|
+
*/
|
|
3295
|
+
this._onWillShowOverlay.fire(willShowOverlayEvent);
|
|
3296
|
+
if (willShowOverlayEvent.defaultPrevented) {
|
|
3297
|
+
this.removeDropTarget();
|
|
3298
|
+
return;
|
|
3299
|
+
}
|
|
3195
3300
|
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
3196
3301
|
if (!this.options.canDisplayOverlay) {
|
|
3197
3302
|
this.removeDropTarget();
|
|
@@ -3234,7 +3339,7 @@
|
|
|
3234
3339
|
}
|
|
3235
3340
|
},
|
|
3236
3341
|
});
|
|
3237
|
-
this.addDisposables(this._onDrop, this.dnd);
|
|
3342
|
+
this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);
|
|
3238
3343
|
}
|
|
3239
3344
|
setTargetZones(acceptedTargetZones) {
|
|
3240
3345
|
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
@@ -3287,25 +3392,44 @@
|
|
|
3287
3392
|
size = clamp(0, sizeOptions.value, height) / height;
|
|
3288
3393
|
}
|
|
3289
3394
|
}
|
|
3290
|
-
const
|
|
3291
|
-
|
|
3292
|
-
|
|
3395
|
+
const box = { top: '0px', left: '0px', width: '100%', height: '100%' };
|
|
3396
|
+
/**
|
|
3397
|
+
* You can also achieve the overlay placement using the transform CSS property
|
|
3398
|
+
* to translate and scale the element however this has the undesired effect of
|
|
3399
|
+
* 'skewing' the element. Comment left here for anybody that ever revisits this.
|
|
3400
|
+
*
|
|
3401
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform
|
|
3402
|
+
*
|
|
3403
|
+
* right
|
|
3404
|
+
* translateX(${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3405
|
+
*
|
|
3406
|
+
* left
|
|
3407
|
+
* translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3408
|
+
*
|
|
3409
|
+
* top
|
|
3410
|
+
* translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3411
|
+
*
|
|
3412
|
+
* bottom
|
|
3413
|
+
* translateY(${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3414
|
+
*/
|
|
3293
3415
|
if (rightClass) {
|
|
3294
|
-
|
|
3416
|
+
box.left = `${100 * (1 - size)}%`;
|
|
3417
|
+
box.width = `${100 * size}%`;
|
|
3295
3418
|
}
|
|
3296
3419
|
else if (leftClass) {
|
|
3297
|
-
|
|
3420
|
+
box.width = `${100 * size}%`;
|
|
3298
3421
|
}
|
|
3299
3422
|
else if (topClass) {
|
|
3300
|
-
|
|
3423
|
+
box.height = `${100 * size}%`;
|
|
3301
3424
|
}
|
|
3302
3425
|
else if (bottomClass) {
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
else {
|
|
3306
|
-
transform = '';
|
|
3426
|
+
box.top = `${100 * (1 - size)}%`;
|
|
3427
|
+
box.height = `${100 * size}%`;
|
|
3307
3428
|
}
|
|
3308
|
-
this.overlayElement.style.
|
|
3429
|
+
this.overlayElement.style.top = box.top;
|
|
3430
|
+
this.overlayElement.style.left = box.left;
|
|
3431
|
+
this.overlayElement.style.width = box.width;
|
|
3432
|
+
this.overlayElement.style.height = box.height;
|
|
3309
3433
|
toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);
|
|
3310
3434
|
toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);
|
|
3311
3435
|
toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);
|
|
@@ -3373,14 +3497,6 @@
|
|
|
3373
3497
|
return 'center';
|
|
3374
3498
|
}
|
|
3375
3499
|
|
|
3376
|
-
exports.DockviewDropTargets = void 0;
|
|
3377
|
-
(function (DockviewDropTargets) {
|
|
3378
|
-
DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
|
|
3379
|
-
DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
|
|
3380
|
-
DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
|
|
3381
|
-
DockviewDropTargets[DockviewDropTargets["Edge"] = 3] = "Edge";
|
|
3382
|
-
})(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
|
|
3383
|
-
|
|
3384
3500
|
class ContentContainer extends CompositeDisposable {
|
|
3385
3501
|
get element() {
|
|
3386
3502
|
return this._element;
|
|
@@ -3408,7 +3524,7 @@
|
|
|
3408
3524
|
const data = getPanelData();
|
|
3409
3525
|
if (!data &&
|
|
3410
3526
|
event.shiftKey &&
|
|
3411
|
-
this.group.location !== 'floating') {
|
|
3527
|
+
this.group.location.type !== 'floating') {
|
|
3412
3528
|
return false;
|
|
3413
3529
|
}
|
|
3414
3530
|
if (data && data.viewId === this.accessor.id) {
|
|
@@ -3426,7 +3542,7 @@
|
|
|
3426
3542
|
data.groupId === this.group.id;
|
|
3427
3543
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3428
3544
|
}
|
|
3429
|
-
return this.group.canDisplayOverlay(event, position,
|
|
3545
|
+
return this.group.canDisplayOverlay(event, position, 'panel');
|
|
3430
3546
|
},
|
|
3431
3547
|
});
|
|
3432
3548
|
this.addDisposables(this.dropTarget);
|
|
@@ -3451,7 +3567,7 @@
|
|
|
3451
3567
|
let container;
|
|
3452
3568
|
switch (panel.api.renderer) {
|
|
3453
3569
|
case 'onlyWhenVisibile':
|
|
3454
|
-
this.
|
|
3570
|
+
this.group.renderContainer.detatch(panel);
|
|
3455
3571
|
if (this.panel) {
|
|
3456
3572
|
if (doRender) {
|
|
3457
3573
|
this._element.appendChild(this.panel.view.content.element);
|
|
@@ -3463,7 +3579,7 @@
|
|
|
3463
3579
|
if (panel.view.content.element.parentElement === this._element) {
|
|
3464
3580
|
this._element.removeChild(panel.view.content.element);
|
|
3465
3581
|
}
|
|
3466
|
-
container = this.
|
|
3582
|
+
container = this.group.renderContainer.attach({
|
|
3467
3583
|
panel,
|
|
3468
3584
|
referenceContainer: this,
|
|
3469
3585
|
});
|
|
@@ -3494,12 +3610,13 @@
|
|
|
3494
3610
|
// noop
|
|
3495
3611
|
}
|
|
3496
3612
|
closePanel() {
|
|
3613
|
+
var _a;
|
|
3497
3614
|
if (this.panel) {
|
|
3498
|
-
if (this.
|
|
3499
|
-
this.
|
|
3615
|
+
if (this.panel.api.renderer === 'onlyWhenVisibile') {
|
|
3616
|
+
(_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
|
|
3500
3617
|
}
|
|
3501
|
-
this.panel = undefined;
|
|
3502
3618
|
}
|
|
3619
|
+
this.panel = undefined;
|
|
3503
3620
|
}
|
|
3504
3621
|
dispose() {
|
|
3505
3622
|
this.disposable.dispose();
|
|
@@ -3607,7 +3724,7 @@
|
|
|
3607
3724
|
this._element.draggable = true;
|
|
3608
3725
|
toggleClass(this.element, 'inactive-tab', true);
|
|
3609
3726
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
3610
|
-
this.
|
|
3727
|
+
this.dropTarget = new Droptarget(this._element, {
|
|
3611
3728
|
acceptedTargetZones: ['center'],
|
|
3612
3729
|
canDisplayOverlay: (event, position) => {
|
|
3613
3730
|
if (this.group.locked) {
|
|
@@ -3622,9 +3739,10 @@
|
|
|
3622
3739
|
}
|
|
3623
3740
|
return this.panel.id !== data.panelId;
|
|
3624
3741
|
}
|
|
3625
|
-
return this.group.model.canDisplayOverlay(event, position,
|
|
3742
|
+
return this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
3626
3743
|
},
|
|
3627
3744
|
});
|
|
3745
|
+
this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
|
|
3628
3746
|
this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
3629
3747
|
this._onDragStart.fire(event);
|
|
3630
3748
|
}), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {
|
|
@@ -3632,9 +3750,9 @@
|
|
|
3632
3750
|
return;
|
|
3633
3751
|
}
|
|
3634
3752
|
this._onChanged.fire(event);
|
|
3635
|
-
}), this.
|
|
3753
|
+
}), this.dropTarget.onDrop((event) => {
|
|
3636
3754
|
this._onDropped.fire(event);
|
|
3637
|
-
}), this.
|
|
3755
|
+
}), this.dropTarget);
|
|
3638
3756
|
}
|
|
3639
3757
|
setActive(isActive) {
|
|
3640
3758
|
toggleClass(this.element, 'active-tab', isActive);
|
|
@@ -3681,7 +3799,7 @@
|
|
|
3681
3799
|
}, true));
|
|
3682
3800
|
}
|
|
3683
3801
|
isCancelled(_event) {
|
|
3684
|
-
if (this.group.api.location === 'floating' && !_event.shiftKey) {
|
|
3802
|
+
if (this.group.api.location.type === 'floating' && !_event.shiftKey) {
|
|
3685
3803
|
return true;
|
|
3686
3804
|
}
|
|
3687
3805
|
return false;
|
|
@@ -3733,7 +3851,7 @@
|
|
|
3733
3851
|
this.accessor.doSetGroupActive(this.group);
|
|
3734
3852
|
}));
|
|
3735
3853
|
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
3736
|
-
this.
|
|
3854
|
+
this.dropTraget = new Droptarget(this._element, {
|
|
3737
3855
|
acceptedTargetZones: ['center'],
|
|
3738
3856
|
canDisplayOverlay: (event, position) => {
|
|
3739
3857
|
var _a;
|
|
@@ -3747,14 +3865,15 @@
|
|
|
3747
3865
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
3748
3866
|
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
3749
3867
|
}
|
|
3750
|
-
return group.model.canDisplayOverlay(event, position,
|
|
3868
|
+
return group.model.canDisplayOverlay(event, position, 'panel');
|
|
3751
3869
|
},
|
|
3752
3870
|
});
|
|
3871
|
+
this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
|
|
3753
3872
|
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
3754
3873
|
this._onDragStart.fire(event);
|
|
3755
|
-
}), this.
|
|
3874
|
+
}), this.dropTraget.onDrop((event) => {
|
|
3756
3875
|
this._onDrop.fire(event);
|
|
3757
|
-
}), this.
|
|
3876
|
+
}), this.dropTraget);
|
|
3758
3877
|
}
|
|
3759
3878
|
}
|
|
3760
3879
|
|
|
@@ -3842,19 +3961,11 @@
|
|
|
3842
3961
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
3843
3962
|
this._onGroupDragStart = new Emitter();
|
|
3844
3963
|
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3845
|
-
this.
|
|
3964
|
+
this._onWillShowOverlay = new Emitter();
|
|
3965
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3846
3966
|
this._element = document.createElement('div');
|
|
3847
3967
|
this._element.className = 'tabs-and-actions-container';
|
|
3848
3968
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
3849
|
-
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3850
|
-
if (e.api.group === this.group) {
|
|
3851
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3852
|
-
}
|
|
3853
|
-
}), this.accessor.onDidRemovePanel((e) => {
|
|
3854
|
-
if (e.api.group === this.group) {
|
|
3855
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3856
|
-
}
|
|
3857
|
-
}));
|
|
3858
3969
|
this.rightActionsContainer = document.createElement('div');
|
|
3859
3970
|
this.rightActionsContainer.className = 'right-actions-container';
|
|
3860
3971
|
this.leftActionsContainer = document.createElement('div');
|
|
@@ -3869,7 +3980,15 @@
|
|
|
3869
3980
|
this._element.appendChild(this.leftActionsContainer);
|
|
3870
3981
|
this._element.appendChild(this.voidContainer.element);
|
|
3871
3982
|
this._element.appendChild(this.rightActionsContainer);
|
|
3872
|
-
this.addDisposables(this.
|
|
3983
|
+
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3984
|
+
if (e.api.group === this.group) {
|
|
3985
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3986
|
+
}
|
|
3987
|
+
}), this.accessor.onDidRemovePanel((e) => {
|
|
3988
|
+
if (e.api.group === this.group) {
|
|
3989
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3990
|
+
}
|
|
3991
|
+
}), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
3873
3992
|
this._onGroupDragStart.fire({
|
|
3874
3993
|
nativeEvent: event,
|
|
3875
3994
|
group: this.group,
|
|
@@ -3879,11 +3998,15 @@
|
|
|
3879
3998
|
event: event.nativeEvent,
|
|
3880
3999
|
index: this.tabs.length,
|
|
3881
4000
|
});
|
|
4001
|
+
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
4002
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4003
|
+
kind: 'header_space',
|
|
4004
|
+
}));
|
|
3882
4005
|
}), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
|
|
3883
4006
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3884
4007
|
if (isFloatingGroupsEnabled &&
|
|
3885
4008
|
event.shiftKey &&
|
|
3886
|
-
this.group.api.location !== 'floating') {
|
|
4009
|
+
this.group.api.location.type !== 'floating') {
|
|
3887
4010
|
event.preventDefault();
|
|
3888
4011
|
const { top, left } = this.element.getBoundingClientRect();
|
|
3889
4012
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
@@ -3946,9 +4069,9 @@
|
|
|
3946
4069
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
3947
4070
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
3948
4071
|
}), tab.onChanged((event) => {
|
|
3949
|
-
var _a;
|
|
3950
4072
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3951
|
-
const isFloatingWithOnePanel = this.group.api.location === 'floating' &&
|
|
4073
|
+
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
4074
|
+
this.size === 1;
|
|
3952
4075
|
if (isFloatingGroupsEnabled &&
|
|
3953
4076
|
!isFloatingWithOnePanel &&
|
|
3954
4077
|
event.shiftKey) {
|
|
@@ -3962,20 +4085,20 @@
|
|
|
3962
4085
|
}, { inDragMode: true });
|
|
3963
4086
|
return;
|
|
3964
4087
|
}
|
|
3965
|
-
const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
3966
|
-
this.group.model.isContentFocused;
|
|
3967
4088
|
const isLeftClick = event.button === 0;
|
|
3968
4089
|
if (!isLeftClick || event.defaultPrevented) {
|
|
3969
4090
|
return;
|
|
3970
4091
|
}
|
|
3971
|
-
this.group.
|
|
3972
|
-
|
|
3973
|
-
}
|
|
4092
|
+
if (this.group.activePanel !== panel) {
|
|
4093
|
+
this.group.model.openPanel(panel);
|
|
4094
|
+
}
|
|
3974
4095
|
}), tab.onDrop((event) => {
|
|
3975
4096
|
this._onDrop.fire({
|
|
3976
4097
|
event: event.nativeEvent,
|
|
3977
4098
|
index: this.tabs.findIndex((x) => x.value === tab),
|
|
3978
4099
|
});
|
|
4100
|
+
}), tab.onWillShowOverlay((event) => {
|
|
4101
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
|
|
3979
4102
|
}));
|
|
3980
4103
|
const value = { value: tab, disposable };
|
|
3981
4104
|
this.addTab(value, index);
|
|
@@ -3993,6 +4116,60 @@
|
|
|
3993
4116
|
}
|
|
3994
4117
|
}
|
|
3995
4118
|
|
|
4119
|
+
class DockviewDidDropEvent extends DockviewEvent {
|
|
4120
|
+
get nativeEvent() {
|
|
4121
|
+
return this.options.nativeEvent;
|
|
4122
|
+
}
|
|
4123
|
+
get position() {
|
|
4124
|
+
return this.options.position;
|
|
4125
|
+
}
|
|
4126
|
+
get panel() {
|
|
4127
|
+
return this.options.panel;
|
|
4128
|
+
}
|
|
4129
|
+
get group() {
|
|
4130
|
+
return this.options.group;
|
|
4131
|
+
}
|
|
4132
|
+
get api() {
|
|
4133
|
+
return this.options.api;
|
|
4134
|
+
}
|
|
4135
|
+
constructor(options) {
|
|
4136
|
+
super();
|
|
4137
|
+
this.options = options;
|
|
4138
|
+
}
|
|
4139
|
+
getData() {
|
|
4140
|
+
return this.options.getData();
|
|
4141
|
+
}
|
|
4142
|
+
}
|
|
4143
|
+
class DockviewWillDropEvent extends DockviewDidDropEvent {
|
|
4144
|
+
get kind() {
|
|
4145
|
+
return this._kind;
|
|
4146
|
+
}
|
|
4147
|
+
constructor(options) {
|
|
4148
|
+
super(options);
|
|
4149
|
+
this._kind = options.kind;
|
|
4150
|
+
}
|
|
4151
|
+
}
|
|
4152
|
+
class WillShowOverlayLocationEvent {
|
|
4153
|
+
get kind() {
|
|
4154
|
+
return this._kind;
|
|
4155
|
+
}
|
|
4156
|
+
get nativeEvent() {
|
|
4157
|
+
return this.event.nativeEvent;
|
|
4158
|
+
}
|
|
4159
|
+
get position() {
|
|
4160
|
+
return this.event.position;
|
|
4161
|
+
}
|
|
4162
|
+
get defaultPrevented() {
|
|
4163
|
+
return this.event.defaultPrevented;
|
|
4164
|
+
}
|
|
4165
|
+
preventDefault() {
|
|
4166
|
+
this.event.preventDefault();
|
|
4167
|
+
}
|
|
4168
|
+
constructor(event, options) {
|
|
4169
|
+
this.event = event;
|
|
4170
|
+
this._kind = options.kind;
|
|
4171
|
+
}
|
|
4172
|
+
}
|
|
3996
4173
|
class DockviewGroupPanelModel extends CompositeDisposable {
|
|
3997
4174
|
get element() {
|
|
3998
4175
|
throw new Error('not supported');
|
|
@@ -4038,7 +4215,7 @@
|
|
|
4038
4215
|
this._location = value;
|
|
4039
4216
|
toggleClass(this.container, 'dv-groupview-floating', false);
|
|
4040
4217
|
toggleClass(this.container, 'dv-groupview-popout', false);
|
|
4041
|
-
switch (value) {
|
|
4218
|
+
switch (value.type) {
|
|
4042
4219
|
case 'grid':
|
|
4043
4220
|
this.contentContainer.dropTarget.setTargetZones([
|
|
4044
4221
|
'top',
|
|
@@ -4074,7 +4251,7 @@
|
|
|
4074
4251
|
this.groupPanel = groupPanel;
|
|
4075
4252
|
this._isGroupActive = false;
|
|
4076
4253
|
this._locked = false;
|
|
4077
|
-
this._location = 'grid';
|
|
4254
|
+
this._location = { type: 'grid' };
|
|
4078
4255
|
this.mostRecentlyUsed = [];
|
|
4079
4256
|
this._onDidChange = new Emitter();
|
|
4080
4257
|
this.onDidChange = this._onDidChange.event;
|
|
@@ -4085,6 +4262,10 @@
|
|
|
4085
4262
|
this.onMove = this._onMove.event;
|
|
4086
4263
|
this._onDidDrop = new Emitter();
|
|
4087
4264
|
this.onDidDrop = this._onDidDrop.event;
|
|
4265
|
+
this._onWillDrop = new Emitter();
|
|
4266
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
4267
|
+
this._onWillShowOverlay = new Emitter();
|
|
4268
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
4088
4269
|
this._onTabDragStart = new Emitter();
|
|
4089
4270
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
4090
4271
|
this._onGroupDragStart = new Emitter();
|
|
@@ -4095,46 +4276,69 @@
|
|
|
4095
4276
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4096
4277
|
this._onDidActivePanelChange = new Emitter();
|
|
4097
4278
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4279
|
+
this._overwriteRenderContainer = null;
|
|
4098
4280
|
toggleClass(this.container, 'groupview', true);
|
|
4281
|
+
this._api = new DockviewApi(this.accessor);
|
|
4099
4282
|
this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
|
|
4100
4283
|
this.contentContainer = new ContentContainer(this.accessor, this);
|
|
4101
4284
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
4102
4285
|
this.header.hidden = !!options.hideHeader;
|
|
4103
4286
|
this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;
|
|
4104
|
-
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {
|
|
4287
|
+
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {
|
|
4105
4288
|
this._onTabDragStart.fire(event);
|
|
4106
4289
|
}), this.tabsContainer.onGroupDragStart((event) => {
|
|
4107
4290
|
this._onGroupDragStart.fire(event);
|
|
4108
4291
|
}), this.tabsContainer.onDrop((event) => {
|
|
4109
|
-
this.handleDropEvent(event.event, 'center', event.index);
|
|
4292
|
+
this.handleDropEvent('header', event.event, 'center', event.index);
|
|
4110
4293
|
}), this.contentContainer.onDidFocus(() => {
|
|
4111
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4294
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4112
4295
|
}), this.contentContainer.onDidBlur(() => {
|
|
4113
4296
|
// noop
|
|
4114
4297
|
}), this.contentContainer.dropTarget.onDrop((event) => {
|
|
4115
|
-
this.handleDropEvent(event.nativeEvent, event.position);
|
|
4116
|
-
}), this.
|
|
4298
|
+
this.handleDropEvent('content', event.nativeEvent, event.position);
|
|
4299
|
+
}), this.tabsContainer.onWillShowOverlay((event) => {
|
|
4300
|
+
this._onWillShowOverlay.fire(event);
|
|
4301
|
+
}), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
|
|
4302
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4303
|
+
kind: 'content',
|
|
4304
|
+
}));
|
|
4305
|
+
}), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
|
|
4306
|
+
}
|
|
4307
|
+
focusContent() {
|
|
4308
|
+
this.contentContainer.element.focus();
|
|
4309
|
+
}
|
|
4310
|
+
set renderContainer(value) {
|
|
4311
|
+
this.panels.forEach((panel) => {
|
|
4312
|
+
this.renderContainer.detatch(panel);
|
|
4313
|
+
});
|
|
4314
|
+
this._overwriteRenderContainer = value;
|
|
4315
|
+
this.panels.forEach((panel) => {
|
|
4316
|
+
this.rerender(panel);
|
|
4317
|
+
});
|
|
4318
|
+
}
|
|
4319
|
+
get renderContainer() {
|
|
4320
|
+
var _a;
|
|
4321
|
+
return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);
|
|
4117
4322
|
}
|
|
4118
4323
|
initialize() {
|
|
4119
|
-
|
|
4120
|
-
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
4324
|
+
if (this.options.panels) {
|
|
4121
4325
|
this.options.panels.forEach((panel) => {
|
|
4122
4326
|
this.doAddPanel(panel);
|
|
4123
4327
|
});
|
|
4124
4328
|
}
|
|
4125
|
-
if (
|
|
4329
|
+
if (this.options.activePanel) {
|
|
4126
4330
|
this.openPanel(this.options.activePanel);
|
|
4127
4331
|
}
|
|
4128
4332
|
// must be run after the constructor otherwise this.parent may not be
|
|
4129
4333
|
// correctly initialized
|
|
4130
|
-
this.setActive(this.isActive, true
|
|
4334
|
+
this.setActive(this.isActive, true);
|
|
4131
4335
|
this.updateContainer();
|
|
4132
4336
|
if (this.accessor.options.createRightHeaderActionsElement) {
|
|
4133
4337
|
this._rightHeaderActions =
|
|
4134
4338
|
this.accessor.options.createRightHeaderActionsElement(this.groupPanel);
|
|
4135
4339
|
this.addDisposables(this._rightHeaderActions);
|
|
4136
4340
|
this._rightHeaderActions.init({
|
|
4137
|
-
containerApi:
|
|
4341
|
+
containerApi: this._api,
|
|
4138
4342
|
api: this.groupPanel.api,
|
|
4139
4343
|
});
|
|
4140
4344
|
this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);
|
|
@@ -4144,7 +4348,7 @@
|
|
|
4144
4348
|
this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);
|
|
4145
4349
|
this.addDisposables(this._leftHeaderActions);
|
|
4146
4350
|
this._leftHeaderActions.init({
|
|
4147
|
-
containerApi:
|
|
4351
|
+
containerApi: this._api,
|
|
4148
4352
|
api: this.groupPanel.api,
|
|
4149
4353
|
});
|
|
4150
4354
|
this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);
|
|
@@ -4154,7 +4358,7 @@
|
|
|
4154
4358
|
this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);
|
|
4155
4359
|
this.addDisposables(this._prefixHeaderActions);
|
|
4156
4360
|
this._prefixHeaderActions.init({
|
|
4157
|
-
containerApi:
|
|
4361
|
+
containerApi: this._api,
|
|
4158
4362
|
api: this.groupPanel.api,
|
|
4159
4363
|
});
|
|
4160
4364
|
this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);
|
|
@@ -4234,34 +4438,45 @@
|
|
|
4234
4438
|
//noop
|
|
4235
4439
|
}
|
|
4236
4440
|
focus() {
|
|
4237
|
-
var _a
|
|
4238
|
-
(
|
|
4441
|
+
var _a;
|
|
4442
|
+
(_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4239
4443
|
}
|
|
4240
4444
|
openPanel(panel, options = {}) {
|
|
4445
|
+
/**
|
|
4446
|
+
* set the panel group
|
|
4447
|
+
* add the panel
|
|
4448
|
+
* check if group active
|
|
4449
|
+
* check if panel active
|
|
4450
|
+
*/
|
|
4241
4451
|
if (typeof options.index !== 'number' ||
|
|
4242
4452
|
options.index > this.panels.length) {
|
|
4243
4453
|
options.index = this.panels.length;
|
|
4244
4454
|
}
|
|
4245
|
-
const
|
|
4246
|
-
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
4455
|
+
const skipSetActive = !!options.skipSetActive;
|
|
4247
4456
|
// ensure the group is updated before we fire any events
|
|
4248
|
-
panel.updateParentGroup(this.groupPanel,
|
|
4457
|
+
panel.updateParentGroup(this.groupPanel, {
|
|
4458
|
+
skipSetActive: options.skipSetActive,
|
|
4459
|
+
});
|
|
4460
|
+
this.doAddPanel(panel, options.index, {
|
|
4461
|
+
skipSetActive: skipSetActive,
|
|
4462
|
+
});
|
|
4249
4463
|
if (this._activePanel === panel) {
|
|
4250
|
-
|
|
4251
|
-
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4252
|
-
}
|
|
4464
|
+
this.contentContainer.renderPanel(panel, { asActive: true });
|
|
4253
4465
|
return;
|
|
4254
4466
|
}
|
|
4255
|
-
|
|
4256
|
-
if (!skipSetPanelActive) {
|
|
4467
|
+
if (!skipSetActive) {
|
|
4257
4468
|
this.doSetActivePanel(panel);
|
|
4258
4469
|
}
|
|
4259
|
-
if (!skipSetGroupActive) {
|
|
4260
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4470
|
+
if (!options.skipSetGroupActive) {
|
|
4471
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4472
|
+
}
|
|
4473
|
+
if (!options.skipSetActive) {
|
|
4474
|
+
this.updateContainer();
|
|
4261
4475
|
}
|
|
4262
|
-
this.updateContainer();
|
|
4263
4476
|
}
|
|
4264
|
-
removePanel(groupItemOrId
|
|
4477
|
+
removePanel(groupItemOrId, options = {
|
|
4478
|
+
skipSetActive: false,
|
|
4479
|
+
}) {
|
|
4265
4480
|
const id = typeof groupItemOrId === 'string'
|
|
4266
4481
|
? groupItemOrId
|
|
4267
4482
|
: groupItemOrId.id;
|
|
@@ -4269,7 +4484,7 @@
|
|
|
4269
4484
|
if (!panelToRemove) {
|
|
4270
4485
|
throw new Error('invalid operation');
|
|
4271
4486
|
}
|
|
4272
|
-
return this._removePanel(panelToRemove);
|
|
4487
|
+
return this._removePanel(panelToRemove, options);
|
|
4273
4488
|
}
|
|
4274
4489
|
closeAllPanels() {
|
|
4275
4490
|
if (this.panels.length > 0) {
|
|
@@ -4295,12 +4510,8 @@
|
|
|
4295
4510
|
updateActions(element) {
|
|
4296
4511
|
this.tabsContainer.setRightActionsElement(element);
|
|
4297
4512
|
}
|
|
4298
|
-
setActive(isGroupActive,
|
|
4299
|
-
var _a, _b, _c, _d;
|
|
4513
|
+
setActive(isGroupActive, force = false) {
|
|
4300
4514
|
if (!force && this.isActive === isGroupActive) {
|
|
4301
|
-
if (!skipFocus) {
|
|
4302
|
-
(_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4303
|
-
}
|
|
4304
4515
|
return;
|
|
4305
4516
|
}
|
|
4306
4517
|
this._isGroupActive = isGroupActive;
|
|
@@ -4311,11 +4522,6 @@
|
|
|
4311
4522
|
this.doSetActivePanel(this.panels[0]);
|
|
4312
4523
|
}
|
|
4313
4524
|
this.updateContainer();
|
|
4314
|
-
if (isGroupActive) {
|
|
4315
|
-
if (!skipFocus) {
|
|
4316
|
-
(_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
4317
|
-
}
|
|
4318
|
-
}
|
|
4319
4525
|
}
|
|
4320
4526
|
layout(width, height) {
|
|
4321
4527
|
var _a;
|
|
@@ -4326,17 +4532,22 @@
|
|
|
4326
4532
|
this._activePanel.layout(this._width, this._height);
|
|
4327
4533
|
}
|
|
4328
4534
|
}
|
|
4329
|
-
_removePanel(panel) {
|
|
4535
|
+
_removePanel(panel, options) {
|
|
4330
4536
|
const isActivePanel = this._activePanel === panel;
|
|
4331
4537
|
this.doRemovePanel(panel);
|
|
4332
4538
|
if (isActivePanel && this.panels.length > 0) {
|
|
4333
4539
|
const nextPanel = this.mostRecentlyUsed[0];
|
|
4334
|
-
this.openPanel(nextPanel
|
|
4540
|
+
this.openPanel(nextPanel, {
|
|
4541
|
+
skipSetActive: options.skipSetActive,
|
|
4542
|
+
skipSetGroupActive: options.skipSetActiveGroup,
|
|
4543
|
+
});
|
|
4335
4544
|
}
|
|
4336
4545
|
if (this._activePanel && this.panels.length === 0) {
|
|
4337
4546
|
this.doSetActivePanel(undefined);
|
|
4338
4547
|
}
|
|
4339
|
-
|
|
4548
|
+
if (!options.skipSetActive) {
|
|
4549
|
+
this.updateContainer();
|
|
4550
|
+
}
|
|
4340
4551
|
return panel;
|
|
4341
4552
|
}
|
|
4342
4553
|
doRemovePanel(panel) {
|
|
@@ -4351,13 +4562,13 @@
|
|
|
4351
4562
|
}
|
|
4352
4563
|
this._onDidRemovePanel.fire({ panel });
|
|
4353
4564
|
}
|
|
4354
|
-
doAddPanel(panel, index = this.panels.length,
|
|
4565
|
+
doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {
|
|
4355
4566
|
const existingPanel = this._panels.indexOf(panel);
|
|
4356
4567
|
const hasExistingPanel = existingPanel > -1;
|
|
4357
4568
|
this.tabsContainer.show();
|
|
4358
4569
|
this.contentContainer.show();
|
|
4359
4570
|
this.tabsContainer.openPanel(panel, index);
|
|
4360
|
-
if (!skipSetActive) {
|
|
4571
|
+
if (!options.skipSetActive) {
|
|
4361
4572
|
this.contentContainer.openPanel(panel);
|
|
4362
4573
|
}
|
|
4363
4574
|
if (hasExistingPanel) {
|
|
@@ -4369,12 +4580,17 @@
|
|
|
4369
4580
|
this._onDidAddPanel.fire({ panel });
|
|
4370
4581
|
}
|
|
4371
4582
|
doSetActivePanel(panel) {
|
|
4583
|
+
if (this._activePanel === panel) {
|
|
4584
|
+
return;
|
|
4585
|
+
}
|
|
4372
4586
|
this._activePanel = panel;
|
|
4373
4587
|
if (panel) {
|
|
4374
4588
|
this.tabsContainer.setActivePanel(panel);
|
|
4375
4589
|
panel.layout(this._width, this._height);
|
|
4376
4590
|
this.updateMru(panel);
|
|
4377
|
-
this._onDidActivePanelChange.fire({
|
|
4591
|
+
this._onDidActivePanelChange.fire({
|
|
4592
|
+
panel,
|
|
4593
|
+
});
|
|
4378
4594
|
}
|
|
4379
4595
|
}
|
|
4380
4596
|
updateMru(panel) {
|
|
@@ -4386,11 +4602,11 @@
|
|
|
4386
4602
|
updateContainer() {
|
|
4387
4603
|
var _a, _b;
|
|
4388
4604
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
4389
|
-
this.panels.forEach((panel) => panel.
|
|
4605
|
+
this.panels.forEach((panel) => panel.runEvents());
|
|
4390
4606
|
if (this.isEmpty && !this.watermark) {
|
|
4391
4607
|
const watermark = this.accessor.createWatermarkComponent();
|
|
4392
4608
|
watermark.init({
|
|
4393
|
-
containerApi:
|
|
4609
|
+
containerApi: this._api,
|
|
4394
4610
|
group: this.groupPanel,
|
|
4395
4611
|
});
|
|
4396
4612
|
this.watermark = watermark;
|
|
@@ -4423,10 +4639,32 @@
|
|
|
4423
4639
|
}
|
|
4424
4640
|
return false;
|
|
4425
4641
|
}
|
|
4426
|
-
handleDropEvent(event, position, index) {
|
|
4642
|
+
handleDropEvent(type, event, position, index) {
|
|
4427
4643
|
if (this.locked === 'no-drop-target') {
|
|
4428
4644
|
return;
|
|
4429
4645
|
}
|
|
4646
|
+
function getKind() {
|
|
4647
|
+
switch (type) {
|
|
4648
|
+
case 'header':
|
|
4649
|
+
return typeof index === 'number' ? 'tab' : 'header_space';
|
|
4650
|
+
case 'content':
|
|
4651
|
+
return 'content';
|
|
4652
|
+
}
|
|
4653
|
+
}
|
|
4654
|
+
const panel = typeof index === 'number' ? this.panels[index] : undefined;
|
|
4655
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
4656
|
+
nativeEvent: event,
|
|
4657
|
+
position,
|
|
4658
|
+
panel,
|
|
4659
|
+
getData: () => getPanelData(),
|
|
4660
|
+
kind: getKind(),
|
|
4661
|
+
group: this.groupPanel,
|
|
4662
|
+
api: this._api,
|
|
4663
|
+
});
|
|
4664
|
+
this._onWillDrop.fire(willDropEvent);
|
|
4665
|
+
if (willDropEvent.defaultPrevented) {
|
|
4666
|
+
return;
|
|
4667
|
+
}
|
|
4430
4668
|
const data = getPanelData();
|
|
4431
4669
|
if (data && data.viewId === this.accessor.id) {
|
|
4432
4670
|
if (data.panelId === null) {
|
|
@@ -4459,12 +4697,14 @@
|
|
|
4459
4697
|
});
|
|
4460
4698
|
}
|
|
4461
4699
|
else {
|
|
4462
|
-
this._onDidDrop.fire({
|
|
4700
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
4463
4701
|
nativeEvent: event,
|
|
4464
4702
|
position,
|
|
4465
|
-
|
|
4703
|
+
panel,
|
|
4466
4704
|
getData: () => getPanelData(),
|
|
4467
|
-
|
|
4705
|
+
group: this.groupPanel,
|
|
4706
|
+
api: this._api,
|
|
4707
|
+
}));
|
|
4468
4708
|
}
|
|
4469
4709
|
}
|
|
4470
4710
|
dispose() {
|
|
@@ -4472,6 +4712,7 @@
|
|
|
4472
4712
|
super.dispose();
|
|
4473
4713
|
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();
|
|
4474
4714
|
(_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
4715
|
+
this.watermark = undefined;
|
|
4475
4716
|
for (const panel of this.panels) {
|
|
4476
4717
|
panel.dispose();
|
|
4477
4718
|
}
|
|
@@ -4493,15 +4734,7 @@
|
|
|
4493
4734
|
constructor(parentElement, disableResizing = false) {
|
|
4494
4735
|
super();
|
|
4495
4736
|
this._disableResizing = disableResizing;
|
|
4496
|
-
|
|
4497
|
-
this._element = parentElement;
|
|
4498
|
-
}
|
|
4499
|
-
else {
|
|
4500
|
-
this._element = document.createElement('div');
|
|
4501
|
-
this._element.style.height = '100%';
|
|
4502
|
-
this._element.style.width = '100%';
|
|
4503
|
-
this._element.className = 'dv-resizable-container';
|
|
4504
|
-
}
|
|
4737
|
+
this._element = parentElement;
|
|
4505
4738
|
this.addDisposables(watchElementResize(this._element, (entry) => {
|
|
4506
4739
|
if (this.isDisposed) {
|
|
4507
4740
|
/**
|
|
@@ -4589,25 +4822,38 @@
|
|
|
4589
4822
|
get activeGroup() {
|
|
4590
4823
|
return this._activeGroup;
|
|
4591
4824
|
}
|
|
4825
|
+
get locked() {
|
|
4826
|
+
return this.gridview.locked;
|
|
4827
|
+
}
|
|
4828
|
+
set locked(value) {
|
|
4829
|
+
this.gridview.locked = value;
|
|
4830
|
+
}
|
|
4592
4831
|
constructor(options) {
|
|
4593
|
-
super(
|
|
4832
|
+
super(document.createElement('div'), options.disableAutoResizing);
|
|
4594
4833
|
this._id = nextLayoutId$1.next();
|
|
4595
4834
|
this._groups = new Map();
|
|
4596
4835
|
this._onDidLayoutChange = new Emitter();
|
|
4597
4836
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
4598
|
-
this.
|
|
4599
|
-
this.
|
|
4600
|
-
this.
|
|
4601
|
-
this.
|
|
4602
|
-
this.
|
|
4603
|
-
this.
|
|
4837
|
+
this._onDidRemove = new Emitter();
|
|
4838
|
+
this.onDidRemove = this._onDidRemove.event;
|
|
4839
|
+
this._onDidAdd = new Emitter();
|
|
4840
|
+
this.onDidAdd = this._onDidAdd.event;
|
|
4841
|
+
this._onDidActiveChange = new Emitter();
|
|
4842
|
+
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4604
4843
|
this._bufferOnDidLayoutChange = new TickDelayedEvent();
|
|
4844
|
+
this.element.style.height = '100%';
|
|
4845
|
+
this.element.style.width = '100%';
|
|
4846
|
+
options.parentElement.appendChild(this.element);
|
|
4605
4847
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
4848
|
+
this.gridview.locked = !!options.locked;
|
|
4606
4849
|
this.element.appendChild(this.gridview.element);
|
|
4607
4850
|
this.layout(0, 0, true); // set some elements height/widths
|
|
4608
|
-
this.addDisposables(
|
|
4851
|
+
this.addDisposables(Disposable.from(() => {
|
|
4852
|
+
var _a;
|
|
4853
|
+
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
4854
|
+
}), this.gridview.onDidChange(() => {
|
|
4609
4855
|
this._bufferOnDidLayoutChange.fire();
|
|
4610
|
-
}), exports.DockviewEvent.any(this.
|
|
4856
|
+
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {
|
|
4611
4857
|
this._bufferOnDidLayoutChange.fire();
|
|
4612
4858
|
}), this._bufferOnDidLayoutChange.onEvent(() => {
|
|
4613
4859
|
this._onDidLayoutChange.fire();
|
|
@@ -4622,6 +4868,7 @@
|
|
|
4622
4868
|
}
|
|
4623
4869
|
maximizeGroup(panel) {
|
|
4624
4870
|
this.gridview.maximizeView(panel);
|
|
4871
|
+
this.doSetGroupActive(panel);
|
|
4625
4872
|
}
|
|
4626
4873
|
isMaximizedGroup(panel) {
|
|
4627
4874
|
return this.gridview.maximizedView() === panel;
|
|
@@ -4632,13 +4879,12 @@
|
|
|
4632
4879
|
hasMaximizedGroup() {
|
|
4633
4880
|
return this.gridview.hasMaximizedView();
|
|
4634
4881
|
}
|
|
4635
|
-
get
|
|
4636
|
-
return this.gridview.
|
|
4882
|
+
get onDidMaximizedGroupChange() {
|
|
4883
|
+
return this.gridview.onDidMaximizedNodeChange;
|
|
4637
4884
|
}
|
|
4638
4885
|
doAddGroup(group, location = [0], size) {
|
|
4639
4886
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
|
|
4640
|
-
this.
|
|
4641
|
-
this.doSetGroupActive(group);
|
|
4887
|
+
this._onDidAdd.fire(group);
|
|
4642
4888
|
}
|
|
4643
4889
|
doRemoveGroup(group, options) {
|
|
4644
4890
|
if (!this._groups.has(group.id)) {
|
|
@@ -4650,8 +4896,8 @@
|
|
|
4650
4896
|
item.disposable.dispose();
|
|
4651
4897
|
item.value.dispose();
|
|
4652
4898
|
this._groups.delete(group.id);
|
|
4899
|
+
this._onDidRemove.fire(group);
|
|
4653
4900
|
}
|
|
4654
|
-
this._onDidRemoveGroup.fire(group);
|
|
4655
4901
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
4656
4902
|
const groups = Array.from(this._groups.values());
|
|
4657
4903
|
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
@@ -4662,25 +4908,18 @@
|
|
|
4662
4908
|
var _a;
|
|
4663
4909
|
return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;
|
|
4664
4910
|
}
|
|
4665
|
-
doSetGroupActive(group
|
|
4666
|
-
var _a, _b, _c;
|
|
4911
|
+
doSetGroupActive(group) {
|
|
4667
4912
|
if (this._activeGroup === group) {
|
|
4668
4913
|
return;
|
|
4669
4914
|
}
|
|
4670
4915
|
if (this._activeGroup) {
|
|
4671
4916
|
this._activeGroup.setActive(false);
|
|
4672
|
-
if (!skipFocus) {
|
|
4673
|
-
(_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4674
|
-
}
|
|
4675
4917
|
}
|
|
4676
4918
|
if (group) {
|
|
4677
4919
|
group.setActive(true);
|
|
4678
|
-
if (!skipFocus) {
|
|
4679
|
-
(_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);
|
|
4680
|
-
}
|
|
4681
4920
|
}
|
|
4682
4921
|
this._activeGroup = group;
|
|
4683
|
-
this.
|
|
4922
|
+
this._onDidActiveChange.fire(group);
|
|
4684
4923
|
}
|
|
4685
4924
|
removeGroup(group) {
|
|
4686
4925
|
this.doRemoveGroup(group);
|
|
@@ -4725,9 +4964,9 @@
|
|
|
4725
4964
|
this.gridview.layout(width, height);
|
|
4726
4965
|
}
|
|
4727
4966
|
dispose() {
|
|
4728
|
-
this.
|
|
4729
|
-
this.
|
|
4730
|
-
this.
|
|
4967
|
+
this._onDidActiveChange.dispose();
|
|
4968
|
+
this._onDidAdd.dispose();
|
|
4969
|
+
this._onDidRemove.dispose();
|
|
4731
4970
|
this._onDidLayoutChange.dispose();
|
|
4732
4971
|
for (const group of this.groups) {
|
|
4733
4972
|
group.dispose();
|
|
@@ -4737,11 +4976,15 @@
|
|
|
4737
4976
|
}
|
|
4738
4977
|
}
|
|
4739
4978
|
|
|
4979
|
+
class WillFocusEvent extends DockviewEvent {
|
|
4980
|
+
constructor() {
|
|
4981
|
+
super();
|
|
4982
|
+
}
|
|
4983
|
+
}
|
|
4740
4984
|
/**
|
|
4741
4985
|
* A core api implementation that should be used across all panel-like objects
|
|
4742
4986
|
*/
|
|
4743
4987
|
class PanelApiImpl extends CompositeDisposable {
|
|
4744
|
-
//
|
|
4745
4988
|
get isFocused() {
|
|
4746
4989
|
return this._isFocused;
|
|
4747
4990
|
}
|
|
@@ -4751,6 +4994,9 @@
|
|
|
4751
4994
|
get isVisible() {
|
|
4752
4995
|
return this._isVisible;
|
|
4753
4996
|
}
|
|
4997
|
+
get isHidden() {
|
|
4998
|
+
return this._isHidden;
|
|
4999
|
+
}
|
|
4754
5000
|
get width() {
|
|
4755
5001
|
return this._width;
|
|
4756
5002
|
}
|
|
@@ -4763,38 +5009,26 @@
|
|
|
4763
5009
|
this._isFocused = false;
|
|
4764
5010
|
this._isActive = false;
|
|
4765
5011
|
this._isVisible = true;
|
|
5012
|
+
this._isHidden = false;
|
|
4766
5013
|
this._width = 0;
|
|
4767
5014
|
this._height = 0;
|
|
4768
5015
|
this.panelUpdatesDisposable = new MutableDisposable();
|
|
4769
|
-
this._onDidDimensionChange = new Emitter(
|
|
4770
|
-
replay: true,
|
|
4771
|
-
});
|
|
5016
|
+
this._onDidDimensionChange = new Emitter();
|
|
4772
5017
|
this.onDidDimensionsChange = this._onDidDimensionChange.event;
|
|
4773
|
-
|
|
4774
|
-
this._onDidChangeFocus = new Emitter({
|
|
4775
|
-
replay: true,
|
|
4776
|
-
});
|
|
5018
|
+
this._onDidChangeFocus = new Emitter();
|
|
4777
5019
|
this.onDidFocusChange = this._onDidChangeFocus.event;
|
|
4778
5020
|
//
|
|
4779
|
-
this.
|
|
4780
|
-
this.
|
|
5021
|
+
this._onWillFocus = new Emitter();
|
|
5022
|
+
this.onWillFocus = this._onWillFocus.event;
|
|
4781
5023
|
//
|
|
4782
|
-
this._onDidVisibilityChange = new Emitter(
|
|
4783
|
-
replay: true,
|
|
4784
|
-
});
|
|
5024
|
+
this._onDidVisibilityChange = new Emitter();
|
|
4785
5025
|
this.onDidVisibilityChange = this._onDidVisibilityChange.event;
|
|
4786
|
-
|
|
4787
|
-
this.
|
|
4788
|
-
this.
|
|
4789
|
-
//
|
|
4790
|
-
this._onDidActiveChange = new Emitter({
|
|
4791
|
-
replay: true,
|
|
4792
|
-
});
|
|
5026
|
+
this._onDidHiddenChange = new Emitter();
|
|
5027
|
+
this.onDidHiddenChange = this._onDidHiddenChange.event;
|
|
5028
|
+
this._onDidActiveChange = new Emitter();
|
|
4793
5029
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4794
|
-
//
|
|
4795
5030
|
this._onActiveChange = new Emitter();
|
|
4796
5031
|
this.onActiveChange = this._onActiveChange.event;
|
|
4797
|
-
//
|
|
4798
5032
|
this._onUpdateParameters = new Emitter();
|
|
4799
5033
|
this.onUpdateParameters = this._onUpdateParameters.event;
|
|
4800
5034
|
this.addDisposables(this.onDidFocusChange((event) => {
|
|
@@ -4803,10 +5037,12 @@
|
|
|
4803
5037
|
this._isActive = event.isActive;
|
|
4804
5038
|
}), this.onDidVisibilityChange((event) => {
|
|
4805
5039
|
this._isVisible = event.isVisible;
|
|
5040
|
+
}), this.onDidHiddenChange((event) => {
|
|
5041
|
+
this._isHidden = event.isHidden;
|
|
4806
5042
|
}), this.onDidDimensionsChange((event) => {
|
|
4807
5043
|
this._width = event.width;
|
|
4808
5044
|
this._height = event.height;
|
|
4809
|
-
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this.
|
|
5045
|
+
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onDidHiddenChange, this._onUpdateParameters);
|
|
4810
5046
|
}
|
|
4811
5047
|
initialize(panel) {
|
|
4812
5048
|
this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
|
|
@@ -4815,8 +5051,8 @@
|
|
|
4815
5051
|
});
|
|
4816
5052
|
});
|
|
4817
5053
|
}
|
|
4818
|
-
|
|
4819
|
-
this.
|
|
5054
|
+
setHidden(isHidden) {
|
|
5055
|
+
this._onDidHiddenChange.fire({ isHidden });
|
|
4820
5056
|
}
|
|
4821
5057
|
setActive() {
|
|
4822
5058
|
this._onActiveChange.fire();
|
|
@@ -4824,9 +5060,6 @@
|
|
|
4824
5060
|
updateParameters(parameters) {
|
|
4825
5061
|
this._onUpdateParameters.fire(parameters);
|
|
4826
5062
|
}
|
|
4827
|
-
dispose() {
|
|
4828
|
-
super.dispose();
|
|
4829
|
-
}
|
|
4830
5063
|
}
|
|
4831
5064
|
|
|
4832
5065
|
class SplitviewPanelApiImpl extends PanelApiImpl {
|
|
@@ -4914,7 +5147,12 @@
|
|
|
4914
5147
|
}), focusTracker);
|
|
4915
5148
|
}
|
|
4916
5149
|
focus() {
|
|
4917
|
-
|
|
5150
|
+
const event = new WillFocusEvent();
|
|
5151
|
+
this.api._onWillFocus.fire(event);
|
|
5152
|
+
if (event.defaultPrevented) {
|
|
5153
|
+
return;
|
|
5154
|
+
}
|
|
5155
|
+
this._element.focus();
|
|
4918
5156
|
}
|
|
4919
5157
|
layout(width, height) {
|
|
4920
5158
|
this._width = width;
|
|
@@ -5243,9 +5481,7 @@
|
|
|
5243
5481
|
super(id);
|
|
5244
5482
|
this._onDidConstraintsChangeInternal = new Emitter();
|
|
5245
5483
|
this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
|
|
5246
|
-
this._onDidConstraintsChange = new Emitter(
|
|
5247
|
-
replay: true,
|
|
5248
|
-
});
|
|
5484
|
+
this._onDidConstraintsChange = new Emitter();
|
|
5249
5485
|
this.onDidConstraintsChange = this._onDidConstraintsChange.event;
|
|
5250
5486
|
this._onDidSizeChange = new Emitter();
|
|
5251
5487
|
this.onDidSizeChange = this._onDidSizeChange.event;
|
|
@@ -5338,13 +5574,13 @@
|
|
|
5338
5574
|
this._maximumHeight = options.maximumHeight;
|
|
5339
5575
|
}
|
|
5340
5576
|
this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
|
|
5341
|
-
this.addDisposables(this.api.
|
|
5342
|
-
const {
|
|
5577
|
+
this.addDisposables(this.api.onDidHiddenChange((event) => {
|
|
5578
|
+
const { isHidden } = event;
|
|
5343
5579
|
const { accessor } = this._params;
|
|
5344
|
-
accessor.setVisible(this,
|
|
5580
|
+
accessor.setVisible(this, !isHidden);
|
|
5345
5581
|
}), this.api.onActiveChange(() => {
|
|
5346
5582
|
const { accessor } = this._params;
|
|
5347
|
-
accessor.
|
|
5583
|
+
accessor.doSetGroupActive(this);
|
|
5348
5584
|
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
5349
5585
|
if (typeof event.minimumWidth === 'number' ||
|
|
5350
5586
|
typeof event.minimumWidth === 'function') {
|
|
@@ -5427,6 +5663,17 @@
|
|
|
5427
5663
|
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5428
5664
|
this.addDisposables(this._onDidLocationChange);
|
|
5429
5665
|
}
|
|
5666
|
+
close() {
|
|
5667
|
+
if (!this._group) {
|
|
5668
|
+
return;
|
|
5669
|
+
}
|
|
5670
|
+
return this.accessor.removeGroup(this._group);
|
|
5671
|
+
}
|
|
5672
|
+
getWindow() {
|
|
5673
|
+
return this.location.type === 'popout'
|
|
5674
|
+
? this.location.getWindow()
|
|
5675
|
+
: window;
|
|
5676
|
+
}
|
|
5430
5677
|
moveTo(options) {
|
|
5431
5678
|
var _a, _b, _c;
|
|
5432
5679
|
if (!this._group) {
|
|
@@ -5434,14 +5681,23 @@
|
|
|
5434
5681
|
}
|
|
5435
5682
|
const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({
|
|
5436
5683
|
direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),
|
|
5684
|
+
skipSetActive: true,
|
|
5685
|
+
});
|
|
5686
|
+
this.accessor.moveGroupOrPanel({
|
|
5687
|
+
from: { groupId: this._group.id },
|
|
5688
|
+
to: {
|
|
5689
|
+
group,
|
|
5690
|
+
position: options.group
|
|
5691
|
+
? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
|
|
5692
|
+
: 'center',
|
|
5693
|
+
},
|
|
5437
5694
|
});
|
|
5438
|
-
this.accessor.moveGroupOrPanel(group, this._group.id, undefined, options.group ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center' : 'center');
|
|
5439
5695
|
}
|
|
5440
5696
|
maximize() {
|
|
5441
5697
|
if (!this._group) {
|
|
5442
5698
|
throw new Error(NOT_INITIALIZED_MESSAGE);
|
|
5443
5699
|
}
|
|
5444
|
-
if (this.location !== 'grid') {
|
|
5700
|
+
if (this.location.type !== 'grid') {
|
|
5445
5701
|
// only grid groups can be maximized
|
|
5446
5702
|
return;
|
|
5447
5703
|
}
|
|
@@ -5498,6 +5754,12 @@
|
|
|
5498
5754
|
this.api.initialize(this); // cannot use 'this' after after 'super' call
|
|
5499
5755
|
this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);
|
|
5500
5756
|
}
|
|
5757
|
+
focus() {
|
|
5758
|
+
if (!this.api.isActive) {
|
|
5759
|
+
this.api.setActive();
|
|
5760
|
+
}
|
|
5761
|
+
super.focus();
|
|
5762
|
+
}
|
|
5501
5763
|
initialize() {
|
|
5502
5764
|
this._model.initialize();
|
|
5503
5765
|
}
|
|
@@ -5543,6 +5805,9 @@
|
|
|
5543
5805
|
}
|
|
5544
5806
|
|
|
5545
5807
|
class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
5808
|
+
get location() {
|
|
5809
|
+
return this.group.api.location;
|
|
5810
|
+
}
|
|
5546
5811
|
get title() {
|
|
5547
5812
|
return this.panel.title;
|
|
5548
5813
|
}
|
|
@@ -5554,15 +5819,34 @@
|
|
|
5554
5819
|
}
|
|
5555
5820
|
set group(value) {
|
|
5556
5821
|
const isOldGroupActive = this.isGroupActive;
|
|
5557
|
-
this._group
|
|
5558
|
-
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
|
|
5822
|
+
if (this._group !== value) {
|
|
5823
|
+
this._group = value;
|
|
5824
|
+
this._onDidGroupChange.fire({});
|
|
5825
|
+
let _trackGroupActive = isOldGroupActive; // prevent duplicate events with same state
|
|
5826
|
+
this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidLocationChange((event) => {
|
|
5827
|
+
if (this.group !== this.panel.group) {
|
|
5828
|
+
return;
|
|
5829
|
+
}
|
|
5830
|
+
this._onDidLocationChange.fire(event);
|
|
5831
|
+
}), this.group.api.onDidActiveChange(() => {
|
|
5832
|
+
if (this.group !== this.panel.group) {
|
|
5833
|
+
return;
|
|
5834
|
+
}
|
|
5835
|
+
if (_trackGroupActive !== this.isGroupActive) {
|
|
5836
|
+
_trackGroupActive = this.isGroupActive;
|
|
5837
|
+
this._onDidActiveGroupChange.fire({
|
|
5838
|
+
isActive: this.isGroupActive,
|
|
5839
|
+
});
|
|
5840
|
+
}
|
|
5841
|
+
}));
|
|
5842
|
+
// if (this.isGroupActive !== isOldGroupActive) {
|
|
5843
|
+
// this._onDidActiveGroupChange.fire({
|
|
5844
|
+
// isActive: this.isGroupActive,
|
|
5845
|
+
// });
|
|
5846
|
+
// }
|
|
5847
|
+
this._onDidLocationChange.fire({
|
|
5848
|
+
location: this.group.api.location,
|
|
5562
5849
|
});
|
|
5563
|
-
if (this.isGroupActive !== isOldGroupActive) {
|
|
5564
|
-
this._onDidActiveGroupChange.fire();
|
|
5565
|
-
}
|
|
5566
5850
|
}
|
|
5567
5851
|
}
|
|
5568
5852
|
get group() {
|
|
@@ -5580,14 +5864,26 @@
|
|
|
5580
5864
|
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
5581
5865
|
this._onDidRendererChange = new Emitter();
|
|
5582
5866
|
this.onDidRendererChange = this._onDidRendererChange.event;
|
|
5583
|
-
this.
|
|
5867
|
+
this._onDidLocationChange = new Emitter();
|
|
5868
|
+
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5869
|
+
this.groupEventsDisposable = new MutableDisposable();
|
|
5584
5870
|
this.initialize(panel);
|
|
5585
5871
|
this._group = group;
|
|
5586
|
-
this.addDisposables(this.
|
|
5872
|
+
this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);
|
|
5873
|
+
}
|
|
5874
|
+
getWindow() {
|
|
5875
|
+
return this.group.api.getWindow();
|
|
5587
5876
|
}
|
|
5588
5877
|
moveTo(options) {
|
|
5589
5878
|
var _a;
|
|
5590
|
-
this.accessor.moveGroupOrPanel(
|
|
5879
|
+
this.accessor.moveGroupOrPanel({
|
|
5880
|
+
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
5881
|
+
to: {
|
|
5882
|
+
group: options.group,
|
|
5883
|
+
position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
|
|
5884
|
+
index: options.index,
|
|
5885
|
+
},
|
|
5886
|
+
});
|
|
5591
5887
|
}
|
|
5592
5888
|
setTitle(title) {
|
|
5593
5889
|
this.panel.setTitle(title);
|
|
@@ -5648,7 +5944,14 @@
|
|
|
5648
5944
|
this.setTitle(params.title);
|
|
5649
5945
|
}
|
|
5650
5946
|
focus() {
|
|
5651
|
-
|
|
5947
|
+
const event = new WillFocusEvent();
|
|
5948
|
+
this.api._onWillFocus.fire(event);
|
|
5949
|
+
if (event.defaultPrevented) {
|
|
5950
|
+
return;
|
|
5951
|
+
}
|
|
5952
|
+
if (!this.api.isActive) {
|
|
5953
|
+
this.api.setActive();
|
|
5954
|
+
}
|
|
5652
5955
|
}
|
|
5653
5956
|
toJSON() {
|
|
5654
5957
|
return {
|
|
@@ -5705,20 +6008,40 @@
|
|
|
5705
6008
|
},
|
|
5706
6009
|
});
|
|
5707
6010
|
}
|
|
5708
|
-
updateParentGroup(group,
|
|
6011
|
+
updateParentGroup(group, options) {
|
|
5709
6012
|
this._group = group;
|
|
5710
|
-
this.api.group =
|
|
6013
|
+
this.api.group = this._group;
|
|
5711
6014
|
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
5712
|
-
this.api.
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
6015
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6016
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {
|
|
6017
|
+
if (this.api.isActive !== isActive) {
|
|
6018
|
+
this.api._onDidActiveChange.fire({
|
|
6019
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6020
|
+
});
|
|
6021
|
+
}
|
|
6022
|
+
}
|
|
6023
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6024
|
+
this.api._onDidVisibilityChange.fire({
|
|
6025
|
+
isVisible: isPanelVisible,
|
|
6026
|
+
});
|
|
6027
|
+
}
|
|
6028
|
+
}
|
|
6029
|
+
runEvents() {
|
|
6030
|
+
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
6031
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6032
|
+
if (this.api.isActive !== isActive) {
|
|
6033
|
+
this.api._onDidActiveChange.fire({
|
|
6034
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6035
|
+
});
|
|
6036
|
+
}
|
|
6037
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6038
|
+
this.api._onDidVisibilityChange.fire({
|
|
6039
|
+
isVisible: isPanelVisible,
|
|
6040
|
+
});
|
|
6041
|
+
}
|
|
5719
6042
|
}
|
|
5720
6043
|
layout(width, height) {
|
|
5721
|
-
//
|
|
6044
|
+
// TODO: Can we somehow do height without header height or indicate what the header height is?
|
|
5722
6045
|
this.api._onDidDimensionChange.fire({
|
|
5723
6046
|
width,
|
|
5724
6047
|
height: height,
|
|
@@ -5840,8 +6163,6 @@
|
|
|
5840
6163
|
this.id = id;
|
|
5841
6164
|
this.contentComponent = contentComponent;
|
|
5842
6165
|
this.tabComponent = tabComponent;
|
|
5843
|
-
this._group = null;
|
|
5844
|
-
this._isPanelVisible = null;
|
|
5845
6166
|
this._content = this.createContentComponent(this.id, contentComponent);
|
|
5846
6167
|
this._tab = this.createTabComponent(this.id, tabComponent);
|
|
5847
6168
|
}
|
|
@@ -5849,25 +6170,8 @@
|
|
|
5849
6170
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
5850
6171
|
this.tab.init(params);
|
|
5851
6172
|
}
|
|
5852
|
-
updateParentGroup(
|
|
5853
|
-
|
|
5854
|
-
this._group = group;
|
|
5855
|
-
if (this._content.onGroupChange) {
|
|
5856
|
-
this._content.onGroupChange(group);
|
|
5857
|
-
}
|
|
5858
|
-
if (this._tab.onGroupChange) {
|
|
5859
|
-
this._tab.onGroupChange(group);
|
|
5860
|
-
}
|
|
5861
|
-
}
|
|
5862
|
-
if (isPanelVisible !== this._isPanelVisible) {
|
|
5863
|
-
this._isPanelVisible = isPanelVisible;
|
|
5864
|
-
if (this._content.onPanelVisibleChange) {
|
|
5865
|
-
this._content.onPanelVisibleChange(isPanelVisible);
|
|
5866
|
-
}
|
|
5867
|
-
if (this._tab.onPanelVisibleChange) {
|
|
5868
|
-
this._tab.onPanelVisibleChange(isPanelVisible);
|
|
5869
|
-
}
|
|
5870
|
-
}
|
|
6173
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6174
|
+
// noop
|
|
5871
6175
|
}
|
|
5872
6176
|
layout(width, height) {
|
|
5873
6177
|
var _a, _b;
|
|
@@ -6300,117 +6604,6 @@
|
|
|
6300
6604
|
}
|
|
6301
6605
|
}
|
|
6302
6606
|
|
|
6303
|
-
class PopoutWindow extends CompositeDisposable {
|
|
6304
|
-
constructor(id, className, options) {
|
|
6305
|
-
super();
|
|
6306
|
-
this.id = id;
|
|
6307
|
-
this.className = className;
|
|
6308
|
-
this.options = options;
|
|
6309
|
-
this._onDidClose = new Emitter();
|
|
6310
|
-
this.onDidClose = this._onDidClose.event;
|
|
6311
|
-
this._window = null;
|
|
6312
|
-
this.addDisposables(this._onDidClose, {
|
|
6313
|
-
dispose: () => {
|
|
6314
|
-
this.close();
|
|
6315
|
-
},
|
|
6316
|
-
});
|
|
6317
|
-
}
|
|
6318
|
-
dimensions() {
|
|
6319
|
-
if (!this._window) {
|
|
6320
|
-
return null;
|
|
6321
|
-
}
|
|
6322
|
-
const left = this._window.value.screenX;
|
|
6323
|
-
const top = this._window.value.screenY;
|
|
6324
|
-
const width = this._window.value.innerWidth;
|
|
6325
|
-
const height = this._window.value.innerHeight;
|
|
6326
|
-
return { top, left, width, height };
|
|
6327
|
-
}
|
|
6328
|
-
close() {
|
|
6329
|
-
if (this._window) {
|
|
6330
|
-
this._window.disposable.dispose();
|
|
6331
|
-
this._window.value.close();
|
|
6332
|
-
this._window = null;
|
|
6333
|
-
}
|
|
6334
|
-
}
|
|
6335
|
-
open(content) {
|
|
6336
|
-
if (this._window) {
|
|
6337
|
-
throw new Error('instance of popout window is already open');
|
|
6338
|
-
}
|
|
6339
|
-
const url = `${this.options.url}`;
|
|
6340
|
-
const features = Object.entries({
|
|
6341
|
-
top: this.options.top,
|
|
6342
|
-
left: this.options.left,
|
|
6343
|
-
width: this.options.width,
|
|
6344
|
-
height: this.options.height,
|
|
6345
|
-
})
|
|
6346
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
6347
|
-
.join(',');
|
|
6348
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6349
|
-
const externalWindow = window.open(url, this.id, features);
|
|
6350
|
-
if (!externalWindow) {
|
|
6351
|
-
return;
|
|
6352
|
-
}
|
|
6353
|
-
const disposable = new CompositeDisposable();
|
|
6354
|
-
this._window = { value: externalWindow, disposable };
|
|
6355
|
-
const cleanUp = () => {
|
|
6356
|
-
this._onDidClose.fire();
|
|
6357
|
-
this._window = null;
|
|
6358
|
-
};
|
|
6359
|
-
// prevent any default content from loading
|
|
6360
|
-
// externalWindow.document.body.replaceWith(document.createElement('div'));
|
|
6361
|
-
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6362
|
-
cleanUp();
|
|
6363
|
-
this.close();
|
|
6364
|
-
}));
|
|
6365
|
-
externalWindow.addEventListener('load', () => {
|
|
6366
|
-
const externalDocument = externalWindow.document;
|
|
6367
|
-
externalDocument.title = document.title;
|
|
6368
|
-
const div = document.createElement('div');
|
|
6369
|
-
div.classList.add('dv-popout-window');
|
|
6370
|
-
div.style.position = 'absolute';
|
|
6371
|
-
div.style.width = '100%';
|
|
6372
|
-
div.style.height = '100%';
|
|
6373
|
-
div.style.top = '0px';
|
|
6374
|
-
div.style.left = '0px';
|
|
6375
|
-
div.classList.add(this.className);
|
|
6376
|
-
div.appendChild(content);
|
|
6377
|
-
externalDocument.body.replaceChildren(div);
|
|
6378
|
-
externalDocument.body.classList.add(this.className);
|
|
6379
|
-
addStyles(externalDocument, window.document.styleSheets);
|
|
6380
|
-
externalWindow.addEventListener('beforeunload', () => {
|
|
6381
|
-
// TODO: indicate external window is closing
|
|
6382
|
-
cleanUp();
|
|
6383
|
-
});
|
|
6384
|
-
});
|
|
6385
|
-
}
|
|
6386
|
-
}
|
|
6387
|
-
|
|
6388
|
-
class DockviewPopoutGroupPanel extends CompositeDisposable {
|
|
6389
|
-
constructor(id, group, options) {
|
|
6390
|
-
var _a;
|
|
6391
|
-
super();
|
|
6392
|
-
this.id = id;
|
|
6393
|
-
this.group = group;
|
|
6394
|
-
this.options = options;
|
|
6395
|
-
this.window = new PopoutWindow(id, (_a = options.className) !== null && _a !== void 0 ? _a : '', {
|
|
6396
|
-
url: this.options.popoutUrl,
|
|
6397
|
-
left: this.options.box.left,
|
|
6398
|
-
top: this.options.box.top,
|
|
6399
|
-
width: this.options.box.width,
|
|
6400
|
-
height: this.options.box.height,
|
|
6401
|
-
});
|
|
6402
|
-
group.model.location = 'popout';
|
|
6403
|
-
this.addDisposables(this.window, {
|
|
6404
|
-
dispose: () => {
|
|
6405
|
-
group.model.location = 'grid';
|
|
6406
|
-
},
|
|
6407
|
-
}, this.window.onDidClose(() => {
|
|
6408
|
-
this.dispose();
|
|
6409
|
-
}));
|
|
6410
|
-
this.window.open(group.element);
|
|
6411
|
-
}
|
|
6412
|
-
}
|
|
6413
|
-
|
|
6414
6607
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6415
6608
|
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6416
6609
|
|
|
@@ -6424,11 +6617,13 @@
|
|
|
6424
6617
|
super();
|
|
6425
6618
|
this.element = element;
|
|
6426
6619
|
this.map = {};
|
|
6620
|
+
this._disposed = false;
|
|
6427
6621
|
this.addDisposables(Disposable.from(() => {
|
|
6428
6622
|
for (const value of Object.values(this.map)) {
|
|
6429
6623
|
value.disposable.dispose();
|
|
6430
6624
|
value.destroy.dispose();
|
|
6431
6625
|
}
|
|
6626
|
+
this._disposed = true;
|
|
6432
6627
|
}));
|
|
6433
6628
|
}
|
|
6434
6629
|
detatch(panel) {
|
|
@@ -6468,7 +6663,7 @@
|
|
|
6468
6663
|
focusContainer.style.top = `${box.top - box2.top}px`;
|
|
6469
6664
|
focusContainer.style.width = `${box.width}px`;
|
|
6470
6665
|
focusContainer.style.height = `${box.height}px`;
|
|
6471
|
-
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location === 'floating');
|
|
6666
|
+
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');
|
|
6472
6667
|
};
|
|
6473
6668
|
const visibilityChanged = () => {
|
|
6474
6669
|
if (panel.api.isVisible) {
|
|
@@ -6514,8 +6709,11 @@
|
|
|
6514
6709
|
resize();
|
|
6515
6710
|
}));
|
|
6516
6711
|
this.map[panel.api.id].destroy = Disposable.from(() => {
|
|
6517
|
-
|
|
6518
|
-
|
|
6712
|
+
var _a;
|
|
6713
|
+
if (panel.view.content.element.parentElement === focusContainer) {
|
|
6714
|
+
focusContainer.removeChild(panel.view.content.element);
|
|
6715
|
+
}
|
|
6716
|
+
(_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
|
|
6519
6717
|
});
|
|
6520
6718
|
queueMicrotask(() => {
|
|
6521
6719
|
if (this.isDisposed) {
|
|
@@ -6536,11 +6734,187 @@
|
|
|
6536
6734
|
}
|
|
6537
6735
|
}
|
|
6538
6736
|
|
|
6737
|
+
/******************************************************************************
|
|
6738
|
+
Copyright (c) Microsoft Corporation.
|
|
6739
|
+
|
|
6740
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6741
|
+
purpose with or without fee is hereby granted.
|
|
6742
|
+
|
|
6743
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6744
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6745
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6746
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6747
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6748
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6749
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6750
|
+
***************************************************************************** */
|
|
6751
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
6752
|
+
|
|
6753
|
+
|
|
6754
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
6755
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6756
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6757
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6758
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6759
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
6760
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
6761
|
+
});
|
|
6762
|
+
}
|
|
6763
|
+
|
|
6764
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
6765
|
+
var e = new Error(message);
|
|
6766
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
6767
|
+
};
|
|
6768
|
+
|
|
6769
|
+
class PopoutWindow extends CompositeDisposable {
|
|
6770
|
+
get window() {
|
|
6771
|
+
var _a, _b;
|
|
6772
|
+
return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
6773
|
+
}
|
|
6774
|
+
constructor(target, className, options) {
|
|
6775
|
+
super();
|
|
6776
|
+
this.target = target;
|
|
6777
|
+
this.className = className;
|
|
6778
|
+
this.options = options;
|
|
6779
|
+
this._onWillClose = new Emitter();
|
|
6780
|
+
this.onWillClose = this._onWillClose.event;
|
|
6781
|
+
this._onDidClose = new Emitter();
|
|
6782
|
+
this.onDidClose = this._onDidClose.event;
|
|
6783
|
+
this._window = null;
|
|
6784
|
+
this.addDisposables(this._onWillClose, this._onDidClose, {
|
|
6785
|
+
dispose: () => {
|
|
6786
|
+
this.close();
|
|
6787
|
+
},
|
|
6788
|
+
});
|
|
6789
|
+
}
|
|
6790
|
+
dimensions() {
|
|
6791
|
+
if (!this._window) {
|
|
6792
|
+
return null;
|
|
6793
|
+
}
|
|
6794
|
+
const left = this._window.value.screenX;
|
|
6795
|
+
const top = this._window.value.screenY;
|
|
6796
|
+
const width = this._window.value.innerWidth;
|
|
6797
|
+
const height = this._window.value.innerHeight;
|
|
6798
|
+
return { top, left, width, height };
|
|
6799
|
+
}
|
|
6800
|
+
close() {
|
|
6801
|
+
var _a, _b;
|
|
6802
|
+
if (this._window) {
|
|
6803
|
+
this._onWillClose.fire();
|
|
6804
|
+
(_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6805
|
+
id: this.target,
|
|
6806
|
+
window: this._window.value,
|
|
6807
|
+
});
|
|
6808
|
+
this._window.disposable.dispose();
|
|
6809
|
+
this._window.value.close();
|
|
6810
|
+
this._window = null;
|
|
6811
|
+
this._onDidClose.fire();
|
|
6812
|
+
}
|
|
6813
|
+
}
|
|
6814
|
+
open() {
|
|
6815
|
+
var _a, _b;
|
|
6816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6817
|
+
if (this._window) {
|
|
6818
|
+
throw new Error('instance of popout window is already open');
|
|
6819
|
+
}
|
|
6820
|
+
const url = `${this.options.url}`;
|
|
6821
|
+
const features = Object.entries({
|
|
6822
|
+
top: this.options.top,
|
|
6823
|
+
left: this.options.left,
|
|
6824
|
+
width: this.options.width,
|
|
6825
|
+
height: this.options.height,
|
|
6826
|
+
})
|
|
6827
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
6828
|
+
.join(',');
|
|
6829
|
+
/**
|
|
6830
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6831
|
+
*/
|
|
6832
|
+
const externalWindow = window.open(url, this.target, features);
|
|
6833
|
+
if (!externalWindow) {
|
|
6834
|
+
/**
|
|
6835
|
+
* Popup blocked
|
|
6836
|
+
*/
|
|
6837
|
+
return null;
|
|
6838
|
+
}
|
|
6839
|
+
const disposable = new CompositeDisposable();
|
|
6840
|
+
this._window = { value: externalWindow, disposable };
|
|
6841
|
+
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6842
|
+
/**
|
|
6843
|
+
* before the main window closes we should close this popup too
|
|
6844
|
+
* to be good citizens
|
|
6845
|
+
*
|
|
6846
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6847
|
+
*/
|
|
6848
|
+
this.close();
|
|
6849
|
+
}));
|
|
6850
|
+
const container = this.createPopoutWindowContainer();
|
|
6851
|
+
if (this.className) {
|
|
6852
|
+
container.classList.add(this.className);
|
|
6853
|
+
}
|
|
6854
|
+
(_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6855
|
+
id: this.target,
|
|
6856
|
+
window: externalWindow,
|
|
6857
|
+
});
|
|
6858
|
+
return new Promise((resolve) => {
|
|
6859
|
+
externalWindow.addEventListener('unload', (e) => {
|
|
6860
|
+
// if page fails to load before unloading
|
|
6861
|
+
// this.close();
|
|
6862
|
+
});
|
|
6863
|
+
externalWindow.addEventListener('load', () => {
|
|
6864
|
+
/**
|
|
6865
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
|
|
6866
|
+
*/
|
|
6867
|
+
const externalDocument = externalWindow.document;
|
|
6868
|
+
externalDocument.title = document.title;
|
|
6869
|
+
externalDocument.body.appendChild(container);
|
|
6870
|
+
addStyles(externalDocument, window.document.styleSheets);
|
|
6871
|
+
/**
|
|
6872
|
+
* beforeunload must be registered after load for reasons I could not determine
|
|
6873
|
+
* otherwise the beforeunload event will not fire when the window is closed
|
|
6874
|
+
*/
|
|
6875
|
+
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
6876
|
+
/**
|
|
6877
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6878
|
+
*/
|
|
6879
|
+
this.close();
|
|
6880
|
+
});
|
|
6881
|
+
resolve(container);
|
|
6882
|
+
});
|
|
6883
|
+
});
|
|
6884
|
+
});
|
|
6885
|
+
}
|
|
6886
|
+
createPopoutWindowContainer() {
|
|
6887
|
+
const el = document.createElement('div');
|
|
6888
|
+
el.classList.add('dv-popout-window');
|
|
6889
|
+
el.id = 'dv-popout-window';
|
|
6890
|
+
el.style.position = 'absolute';
|
|
6891
|
+
el.style.width = '100%';
|
|
6892
|
+
el.style.height = '100%';
|
|
6893
|
+
el.style.top = '0px';
|
|
6894
|
+
el.style.left = '0px';
|
|
6895
|
+
return el;
|
|
6896
|
+
}
|
|
6897
|
+
}
|
|
6898
|
+
|
|
6539
6899
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
6540
6900
|
activationSize: { type: 'pixels', value: 10 },
|
|
6541
6901
|
size: { type: 'pixels', value: 20 },
|
|
6542
6902
|
};
|
|
6543
|
-
function
|
|
6903
|
+
function moveGroupWithoutDestroying(options) {
|
|
6904
|
+
const activePanel = options.from.activePanel;
|
|
6905
|
+
const panels = [...options.from.panels].map((panel) => {
|
|
6906
|
+
const removedPanel = options.from.model.removePanel(panel);
|
|
6907
|
+
options.from.model.renderContainer.detatch(panel);
|
|
6908
|
+
return removedPanel;
|
|
6909
|
+
});
|
|
6910
|
+
panels.forEach((panel) => {
|
|
6911
|
+
options.to.model.openPanel(panel, {
|
|
6912
|
+
skipSetActive: activePanel !== panel,
|
|
6913
|
+
skipSetGroupActive: true,
|
|
6914
|
+
});
|
|
6915
|
+
});
|
|
6916
|
+
}
|
|
6917
|
+
function getDockviewTheme(element) {
|
|
6544
6918
|
function toClassList(element) {
|
|
6545
6919
|
const list = [];
|
|
6546
6920
|
for (let i = 0; i < element.classList.length; i++) {
|
|
@@ -6591,6 +6965,7 @@
|
|
|
6591
6965
|
styles: options.styles,
|
|
6592
6966
|
parentElement: options.parentElement,
|
|
6593
6967
|
disableAutoResizing: options.disableAutoResizing,
|
|
6968
|
+
locked: options.locked,
|
|
6594
6969
|
});
|
|
6595
6970
|
this.nextGroupId = sequentialNumberGenerator();
|
|
6596
6971
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -6601,6 +6976,10 @@
|
|
|
6601
6976
|
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
6602
6977
|
this._onDidDrop = new Emitter();
|
|
6603
6978
|
this.onDidDrop = this._onDidDrop.event;
|
|
6979
|
+
this._onWillDrop = new Emitter();
|
|
6980
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
6981
|
+
this._onWillShowOverlay = new Emitter();
|
|
6982
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
6604
6983
|
this._onDidRemovePanel = new Emitter();
|
|
6605
6984
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
6606
6985
|
this._onDidAddPanel = new Emitter();
|
|
@@ -6609,15 +6988,36 @@
|
|
|
6609
6988
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
6610
6989
|
this._onDidActivePanelChange = new Emitter();
|
|
6611
6990
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
6991
|
+
this._onDidMovePanel = new Emitter();
|
|
6612
6992
|
this._floatingGroups = [];
|
|
6613
6993
|
this._popoutGroups = [];
|
|
6994
|
+
this._ignoreEvents = 0;
|
|
6995
|
+
this._onDidRemoveGroup = new Emitter();
|
|
6996
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
6997
|
+
this._onDidAddGroup = new Emitter();
|
|
6998
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
6999
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
7000
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7001
|
+
this._moving = false;
|
|
6614
7002
|
const gready = document.createElement('div');
|
|
6615
7003
|
gready.className = 'dv-overlay-render-container';
|
|
6616
7004
|
this.gridview.element.appendChild(gready);
|
|
6617
7005
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
6618
7006
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
6619
7007
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
6620
|
-
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop,
|
|
7008
|
+
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) => {
|
|
7009
|
+
if (!this._moving) {
|
|
7010
|
+
this._onDidAddGroup.fire(event);
|
|
7011
|
+
}
|
|
7012
|
+
}), this.onDidRemove((event) => {
|
|
7013
|
+
if (!this._moving) {
|
|
7014
|
+
this._onDidRemoveGroup.fire(event);
|
|
7015
|
+
}
|
|
7016
|
+
}), this.onDidActiveChange((event) => {
|
|
7017
|
+
if (!this._moving) {
|
|
7018
|
+
this._onDidActiveGroupChange.fire(event);
|
|
7019
|
+
}
|
|
7020
|
+
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
6621
7021
|
this.updateWatermark();
|
|
6622
7022
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
6623
7023
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -6628,7 +7028,7 @@
|
|
|
6628
7028
|
}
|
|
6629
7029
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
6630
7030
|
for (const group of [...this._popoutGroups]) {
|
|
6631
|
-
group.dispose();
|
|
7031
|
+
group.disposable.dispose();
|
|
6632
7032
|
}
|
|
6633
7033
|
}));
|
|
6634
7034
|
this._options = options;
|
|
@@ -6674,7 +7074,7 @@
|
|
|
6674
7074
|
return this.options.showDndOverlay({
|
|
6675
7075
|
nativeEvent: event,
|
|
6676
7076
|
position: position,
|
|
6677
|
-
target:
|
|
7077
|
+
target: 'edge',
|
|
6678
7078
|
getData: getPanelData,
|
|
6679
7079
|
});
|
|
6680
7080
|
}
|
|
@@ -6685,86 +7085,249 @@
|
|
|
6685
7085
|
});
|
|
6686
7086
|
this.addDisposables(this._rootDropTarget.onDrop((event) => {
|
|
6687
7087
|
var _a;
|
|
7088
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
7089
|
+
nativeEvent: event.nativeEvent,
|
|
7090
|
+
position: event.position,
|
|
7091
|
+
panel: undefined,
|
|
7092
|
+
api: this._api,
|
|
7093
|
+
group: undefined,
|
|
7094
|
+
getData: getPanelData,
|
|
7095
|
+
kind: 'content',
|
|
7096
|
+
});
|
|
7097
|
+
this._onWillDrop.fire(willDropEvent);
|
|
7098
|
+
if (willDropEvent.defaultPrevented) {
|
|
7099
|
+
return;
|
|
7100
|
+
}
|
|
6688
7101
|
const data = getPanelData();
|
|
6689
7102
|
if (data) {
|
|
6690
|
-
this.moveGroupOrPanel(
|
|
7103
|
+
this.moveGroupOrPanel({
|
|
7104
|
+
from: {
|
|
7105
|
+
groupId: data.groupId,
|
|
7106
|
+
panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
|
|
7107
|
+
},
|
|
7108
|
+
to: {
|
|
7109
|
+
group: this.orthogonalize(event.position),
|
|
7110
|
+
position: 'center',
|
|
7111
|
+
},
|
|
7112
|
+
});
|
|
6691
7113
|
}
|
|
6692
7114
|
else {
|
|
6693
|
-
this._onDidDrop.fire(
|
|
7115
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
7116
|
+
nativeEvent: event.nativeEvent,
|
|
7117
|
+
position: event.position,
|
|
7118
|
+
panel: undefined,
|
|
7119
|
+
api: this._api,
|
|
7120
|
+
group: undefined,
|
|
7121
|
+
getData: getPanelData,
|
|
7122
|
+
}));
|
|
6694
7123
|
}
|
|
6695
7124
|
}), this._rootDropTarget);
|
|
6696
7125
|
this._api = new DockviewApi(this);
|
|
6697
7126
|
this.updateWatermark();
|
|
6698
7127
|
}
|
|
6699
|
-
addPopoutGroup(
|
|
6700
|
-
var _a;
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
7128
|
+
addPopoutGroup(itemToPopout, options) {
|
|
7129
|
+
var _a, _b, _c;
|
|
7130
|
+
if (itemToPopout instanceof DockviewPanel &&
|
|
7131
|
+
itemToPopout.group.size === 1) {
|
|
7132
|
+
return this.addPopoutGroup(itemToPopout.group);
|
|
7133
|
+
}
|
|
7134
|
+
const theme = getDockviewTheme(this.gridview.element);
|
|
7135
|
+
const element = this.element;
|
|
7136
|
+
function getBox() {
|
|
7137
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7138
|
+
return options.position;
|
|
7139
|
+
}
|
|
7140
|
+
if (itemToPopout instanceof DockviewGroupPanel) {
|
|
7141
|
+
return itemToPopout.element.getBoundingClientRect();
|
|
7142
|
+
}
|
|
7143
|
+
if (itemToPopout.group) {
|
|
7144
|
+
return itemToPopout.group.element.getBoundingClientRect();
|
|
7145
|
+
}
|
|
7146
|
+
return element.getBoundingClientRect();
|
|
7147
|
+
}
|
|
7148
|
+
const box = getBox();
|
|
7149
|
+
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;
|
|
7150
|
+
if (itemToPopout.api.location.type === 'grid') {
|
|
7151
|
+
itemToPopout.api.setHidden(true);
|
|
7152
|
+
}
|
|
7153
|
+
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7154
|
+
theme !== null && theme !== void 0 ? theme : '', {
|
|
7155
|
+
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7156
|
+
left: window.screenX + box.left,
|
|
7157
|
+
top: window.screenY + box.top,
|
|
7158
|
+
width: box.width,
|
|
7159
|
+
height: box.height,
|
|
7160
|
+
onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
|
|
7161
|
+
onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
|
|
7162
|
+
});
|
|
7163
|
+
const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {
|
|
7164
|
+
popoutWindowDisposable.dispose();
|
|
7165
|
+
}));
|
|
7166
|
+
return _window
|
|
7167
|
+
.open()
|
|
7168
|
+
.then((popoutContainer) => {
|
|
7169
|
+
var _a;
|
|
7170
|
+
if (_window.isDisposed) {
|
|
7171
|
+
return;
|
|
6712
7172
|
}
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
if (!box) {
|
|
6717
|
-
box = group.element.getBoundingClientRect();
|
|
7173
|
+
if (popoutContainer === null) {
|
|
7174
|
+
popoutWindowDisposable.dispose();
|
|
7175
|
+
return;
|
|
6718
7176
|
}
|
|
6719
|
-
const
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
7177
|
+
const gready = document.createElement('div');
|
|
7178
|
+
gready.className = 'dv-overlay-render-container';
|
|
7179
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7180
|
+
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
7181
|
+
? itemToPopout.group
|
|
7182
|
+
: itemToPopout;
|
|
7183
|
+
const referenceLocation = itemToPopout.api.location.type;
|
|
7184
|
+
const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
7185
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7186
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
|
|
7187
|
+
this._onDidAddGroup.fire(group);
|
|
7188
|
+
}
|
|
7189
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
7190
|
+
this.movingLock(() => {
|
|
7191
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7192
|
+
group.model.openPanel(panel);
|
|
7193
|
+
});
|
|
7194
|
+
}
|
|
7195
|
+
else {
|
|
7196
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7197
|
+
from: referenceGroup,
|
|
7198
|
+
to: group,
|
|
7199
|
+
}));
|
|
7200
|
+
switch (referenceLocation) {
|
|
7201
|
+
case 'grid':
|
|
7202
|
+
referenceGroup.api.setHidden(true);
|
|
7203
|
+
break;
|
|
7204
|
+
case 'floating':
|
|
7205
|
+
case 'popout':
|
|
7206
|
+
this.removeGroup(referenceGroup);
|
|
7207
|
+
break;
|
|
7208
|
+
}
|
|
7209
|
+
}
|
|
7210
|
+
popoutContainer.classList.add('dv-dockview');
|
|
7211
|
+
popoutContainer.style.overflow = 'hidden';
|
|
7212
|
+
popoutContainer.appendChild(gready);
|
|
7213
|
+
popoutContainer.appendChild(group.element);
|
|
7214
|
+
group.model.location = {
|
|
7215
|
+
type: 'popout',
|
|
7216
|
+
getWindow: () => _window.window,
|
|
7217
|
+
};
|
|
7218
|
+
this.doSetGroupAndPanelActive(group);
|
|
7219
|
+
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
7220
|
+
var _a;
|
|
7221
|
+
if (event.isActive) {
|
|
7222
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7223
|
+
}
|
|
7224
|
+
}), group.api.onWillFocus(() => {
|
|
7225
|
+
var _a;
|
|
7226
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7227
|
+
}));
|
|
7228
|
+
let returnedGroup;
|
|
7229
|
+
const value = {
|
|
7230
|
+
window: _window,
|
|
7231
|
+
popoutGroup: group,
|
|
7232
|
+
referenceGroup: this.getPanel(referenceGroup.id)
|
|
7233
|
+
? referenceGroup.id
|
|
7234
|
+
: undefined,
|
|
7235
|
+
disposable: {
|
|
7236
|
+
dispose: () => {
|
|
7237
|
+
popoutWindowDisposable.dispose();
|
|
7238
|
+
return returnedGroup;
|
|
7239
|
+
},
|
|
7240
|
+
},
|
|
7241
|
+
};
|
|
7242
|
+
popoutWindowDisposable.addDisposables(
|
|
7243
|
+
/**
|
|
7244
|
+
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
7245
|
+
* since we can reply on the window resize event as we will occupy the full
|
|
7246
|
+
* window dimensions
|
|
7247
|
+
*/
|
|
7248
|
+
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
7249
|
+
group.layout(window.innerWidth, window.innerHeight);
|
|
7250
|
+
}), overlayRenderContainer, Disposable.from(() => {
|
|
7251
|
+
if (this.getPanel(referenceGroup.id)) {
|
|
7252
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7253
|
+
from: group,
|
|
7254
|
+
to: referenceGroup,
|
|
7255
|
+
}));
|
|
7256
|
+
if (referenceGroup.api.isHidden) {
|
|
7257
|
+
referenceGroup.api.setHidden(false);
|
|
7258
|
+
}
|
|
7259
|
+
if (this.getPanel(group.id)) {
|
|
7260
|
+
this.doRemoveGroup(group, {
|
|
7261
|
+
skipPopoutAssociated: true,
|
|
7262
|
+
});
|
|
7263
|
+
}
|
|
7264
|
+
}
|
|
7265
|
+
else {
|
|
7266
|
+
if (this.getPanel(group.id)) {
|
|
7267
|
+
const removedGroup = this.doRemoveGroup(group, {
|
|
7268
|
+
skipDispose: true,
|
|
7269
|
+
skipActive: true,
|
|
7270
|
+
});
|
|
7271
|
+
removedGroup.model.renderContainer =
|
|
7272
|
+
this.overlayRenderContainer;
|
|
7273
|
+
removedGroup.model.location = { type: 'grid' };
|
|
7274
|
+
returnedGroup = removedGroup;
|
|
7275
|
+
}
|
|
7276
|
+
}
|
|
7277
|
+
}));
|
|
7278
|
+
this._popoutGroups.push(value);
|
|
7279
|
+
this.updateWatermark();
|
|
7280
|
+
})
|
|
7281
|
+
.catch((err) => {
|
|
7282
|
+
console.error(err);
|
|
6736
7283
|
});
|
|
6737
|
-
popoutWindow.addDisposables({
|
|
6738
|
-
dispose: () => {
|
|
6739
|
-
remove(this._popoutGroups, popoutWindow);
|
|
6740
|
-
this.updateWatermark();
|
|
6741
|
-
},
|
|
6742
|
-
}, popoutWindow.window.onDidClose(() => {
|
|
6743
|
-
this.doAddGroup(group, [0]);
|
|
6744
|
-
}));
|
|
6745
|
-
this._popoutGroups.push(popoutWindow);
|
|
6746
|
-
this.updateWatermark();
|
|
6747
7284
|
}
|
|
6748
7285
|
addFloatingGroup(item, coord, options) {
|
|
6749
|
-
var _a, _b, _c, _d, _e, _f;
|
|
7286
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
6750
7287
|
let group;
|
|
6751
7288
|
if (item instanceof DockviewPanel) {
|
|
6752
7289
|
group = this.createGroup();
|
|
6753
|
-
this.
|
|
7290
|
+
this._onDidAddGroup.fire(group);
|
|
7291
|
+
this.movingLock(() => this.removePanel(item, {
|
|
6754
7292
|
removeEmptyGroup: true,
|
|
6755
7293
|
skipDispose: true,
|
|
6756
|
-
|
|
6757
|
-
|
|
7294
|
+
skipSetActiveGroup: true,
|
|
7295
|
+
}));
|
|
7296
|
+
group.model.openPanel(item, { skipSetGroupActive: true });
|
|
6758
7297
|
}
|
|
6759
7298
|
else {
|
|
6760
7299
|
group = item;
|
|
7300
|
+
const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;
|
|
7301
|
+
const popoutReferenceGroup = popoutReferenceGroupId
|
|
7302
|
+
? this.getPanel(popoutReferenceGroupId)
|
|
7303
|
+
: undefined;
|
|
6761
7304
|
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
6762
7305
|
options.skipRemoveGroup;
|
|
6763
7306
|
if (!skip) {
|
|
6764
|
-
|
|
7307
|
+
if (popoutReferenceGroup) {
|
|
7308
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7309
|
+
from: item,
|
|
7310
|
+
to: popoutReferenceGroup,
|
|
7311
|
+
}));
|
|
7312
|
+
this.doRemoveGroup(item, {
|
|
7313
|
+
skipPopoutReturn: true,
|
|
7314
|
+
skipPopoutAssociated: true,
|
|
7315
|
+
});
|
|
7316
|
+
this.doRemoveGroup(popoutReferenceGroup, {
|
|
7317
|
+
skipDispose: true,
|
|
7318
|
+
});
|
|
7319
|
+
group = popoutReferenceGroup;
|
|
7320
|
+
}
|
|
7321
|
+
else {
|
|
7322
|
+
this.doRemoveGroup(item, {
|
|
7323
|
+
skipDispose: true,
|
|
7324
|
+
skipPopoutReturn: true,
|
|
7325
|
+
skipPopoutAssociated: !!popoutReferenceGroup,
|
|
7326
|
+
});
|
|
7327
|
+
}
|
|
6765
7328
|
}
|
|
6766
7329
|
}
|
|
6767
|
-
group.model.location = 'floating';
|
|
7330
|
+
group.model.location = { type: 'floating' };
|
|
6768
7331
|
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
6769
7332
|
? Math.max(coord.x, 0)
|
|
6770
7333
|
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
@@ -6774,16 +7337,16 @@
|
|
|
6774
7337
|
const overlay = new Overlay({
|
|
6775
7338
|
container: this.gridview.element,
|
|
6776
7339
|
content: group.element,
|
|
6777
|
-
height: (
|
|
6778
|
-
width: (
|
|
7340
|
+
height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
|
|
7341
|
+
width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
|
|
6779
7342
|
left: overlayLeft,
|
|
6780
7343
|
top: overlayTop,
|
|
6781
7344
|
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6782
7345
|
? undefined
|
|
6783
|
-
: (
|
|
7346
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6784
7347
|
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6785
7348
|
? undefined
|
|
6786
|
-
: (
|
|
7349
|
+
: (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6787
7350
|
});
|
|
6788
7351
|
const el = group.element.querySelector('.void-container');
|
|
6789
7352
|
if (!el) {
|
|
@@ -6814,12 +7377,15 @@
|
|
|
6814
7377
|
}), {
|
|
6815
7378
|
dispose: () => {
|
|
6816
7379
|
disposable.dispose();
|
|
6817
|
-
group.model.location = 'grid';
|
|
7380
|
+
group.model.location = { type: 'grid' };
|
|
6818
7381
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
6819
7382
|
this.updateWatermark();
|
|
6820
7383
|
},
|
|
6821
7384
|
});
|
|
6822
7385
|
this._floatingGroups.push(floatingGroupPanel);
|
|
7386
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
7387
|
+
this.doSetGroupAndPanelActive(group);
|
|
7388
|
+
}
|
|
6823
7389
|
this.updateWatermark();
|
|
6824
7390
|
}
|
|
6825
7391
|
orthogonalize(position) {
|
|
@@ -6909,8 +7475,8 @@
|
|
|
6909
7475
|
return this.panels.find((panel) => panel.id === id);
|
|
6910
7476
|
}
|
|
6911
7477
|
setActivePanel(panel) {
|
|
6912
|
-
this.doSetGroupActive(panel.group);
|
|
6913
7478
|
panel.group.model.openPanel(panel);
|
|
7479
|
+
this.doSetGroupAndPanelActive(panel.group);
|
|
6914
7480
|
}
|
|
6915
7481
|
moveToNext(options = {}) {
|
|
6916
7482
|
var _a;
|
|
@@ -6971,7 +7537,8 @@
|
|
|
6971
7537
|
});
|
|
6972
7538
|
const popoutGroups = this._popoutGroups.map((group) => {
|
|
6973
7539
|
return {
|
|
6974
|
-
data: group.
|
|
7540
|
+
data: group.popoutGroup.toJSON(),
|
|
7541
|
+
gridReferenceGroup: group.referenceGroup,
|
|
6975
7542
|
position: group.window.dimensions(),
|
|
6976
7543
|
};
|
|
6977
7544
|
});
|
|
@@ -6989,7 +7556,7 @@
|
|
|
6989
7556
|
return result;
|
|
6990
7557
|
}
|
|
6991
7558
|
fromJSON(data) {
|
|
6992
|
-
var _a, _b;
|
|
7559
|
+
var _a, _b, _c;
|
|
6993
7560
|
this.clear();
|
|
6994
7561
|
if (typeof data !== 'object' || data === null) {
|
|
6995
7562
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -7028,7 +7595,7 @@
|
|
|
7028
7595
|
const isActive = typeof activeView === 'string' &&
|
|
7029
7596
|
activeView === panel.id;
|
|
7030
7597
|
group.model.openPanel(panel, {
|
|
7031
|
-
|
|
7598
|
+
skipSetActive: !isActive,
|
|
7032
7599
|
skipSetGroupActive: true,
|
|
7033
7600
|
});
|
|
7034
7601
|
}
|
|
@@ -7058,11 +7625,16 @@
|
|
|
7058
7625
|
}
|
|
7059
7626
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7060
7627
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
7061
|
-
const { data, position } = serializedPopoutGroup;
|
|
7628
|
+
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
7062
7629
|
const group = createGroupFromSerializedState(data);
|
|
7063
|
-
this.addPopoutGroup(
|
|
7630
|
+
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
7631
|
+
? this.getPanel(gridReferenceGroup)
|
|
7632
|
+
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
7064
7633
|
skipRemoveGroup: true,
|
|
7065
7634
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
7635
|
+
overridePopoutGroup: gridReferenceGroup
|
|
7636
|
+
? group
|
|
7637
|
+
: undefined,
|
|
7066
7638
|
});
|
|
7067
7639
|
}
|
|
7068
7640
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -7109,12 +7681,13 @@
|
|
|
7109
7681
|
*/
|
|
7110
7682
|
throw err;
|
|
7111
7683
|
}
|
|
7684
|
+
this.updateWatermark();
|
|
7112
7685
|
this._onDidLayoutFromJSON.fire();
|
|
7113
7686
|
}
|
|
7114
7687
|
clear() {
|
|
7115
7688
|
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
7116
7689
|
const hasActiveGroup = !!this.activeGroup;
|
|
7117
|
-
|
|
7690
|
+
!!this.activePanel;
|
|
7118
7691
|
for (const group of groups) {
|
|
7119
7692
|
// remove the group will automatically remove the panels
|
|
7120
7693
|
this.removeGroup(group, { skipActive: true });
|
|
@@ -7122,9 +7695,6 @@
|
|
|
7122
7695
|
if (hasActiveGroup) {
|
|
7123
7696
|
this.doSetGroupAndPanelActive(undefined);
|
|
7124
7697
|
}
|
|
7125
|
-
if (hasActivePanel) {
|
|
7126
|
-
this._onDidActivePanelChange.fire(undefined);
|
|
7127
|
-
}
|
|
7128
7698
|
this.gridview.clear();
|
|
7129
7699
|
}
|
|
7130
7700
|
closeAllGroups() {
|
|
@@ -7165,6 +7735,7 @@
|
|
|
7165
7735
|
const group = this.orthogonalize(directionToPosition(options.position.direction));
|
|
7166
7736
|
const panel = this.createPanel(options, group);
|
|
7167
7737
|
group.model.openPanel(panel);
|
|
7738
|
+
this.doSetGroupAndPanelActive(group);
|
|
7168
7739
|
return panel;
|
|
7169
7740
|
}
|
|
7170
7741
|
}
|
|
@@ -7176,6 +7747,7 @@
|
|
|
7176
7747
|
const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
|
|
7177
7748
|
if (options.floating) {
|
|
7178
7749
|
const group = this.createGroup();
|
|
7750
|
+
this._onDidAddGroup.fire(group);
|
|
7179
7751
|
const o = typeof options.floating === 'object' &&
|
|
7180
7752
|
options.floating !== null
|
|
7181
7753
|
? options.floating
|
|
@@ -7183,16 +7755,16 @@
|
|
|
7183
7755
|
this.addFloatingGroup(group, o, {
|
|
7184
7756
|
inDragMode: false,
|
|
7185
7757
|
skipRemoveGroup: true,
|
|
7758
|
+
skipActiveGroup: true,
|
|
7186
7759
|
});
|
|
7187
|
-
this._onDidAddGroup.fire(group);
|
|
7188
7760
|
panel = this.createPanel(options, group);
|
|
7189
7761
|
group.model.openPanel(panel);
|
|
7190
|
-
this.doSetGroupAndPanelActive(group);
|
|
7191
7762
|
}
|
|
7192
|
-
else if (referenceGroup.api.location === 'floating' ||
|
|
7763
|
+
else if (referenceGroup.api.location.type === 'floating' ||
|
|
7193
7764
|
target === 'center') {
|
|
7194
7765
|
panel = this.createPanel(options, referenceGroup);
|
|
7195
7766
|
referenceGroup.model.openPanel(panel);
|
|
7767
|
+
this.doSetGroupAndPanelActive(referenceGroup);
|
|
7196
7768
|
}
|
|
7197
7769
|
else {
|
|
7198
7770
|
const location = getGridLocation(referenceGroup.element);
|
|
@@ -7200,10 +7772,12 @@
|
|
|
7200
7772
|
const group = this.createGroupAtLocation(relativeLocation);
|
|
7201
7773
|
panel = this.createPanel(options, group);
|
|
7202
7774
|
group.model.openPanel(panel);
|
|
7775
|
+
this.doSetGroupAndPanelActive(group);
|
|
7203
7776
|
}
|
|
7204
7777
|
}
|
|
7205
7778
|
else if (options.floating) {
|
|
7206
7779
|
const group = this.createGroup();
|
|
7780
|
+
this._onDidAddGroup.fire(group);
|
|
7207
7781
|
const o = typeof options.floating === 'object' &&
|
|
7208
7782
|
options.floating !== null
|
|
7209
7783
|
? options.floating
|
|
@@ -7211,16 +7785,16 @@
|
|
|
7211
7785
|
this.addFloatingGroup(group, o, {
|
|
7212
7786
|
inDragMode: false,
|
|
7213
7787
|
skipRemoveGroup: true,
|
|
7788
|
+
skipActiveGroup: true,
|
|
7214
7789
|
});
|
|
7215
|
-
this._onDidAddGroup.fire(group);
|
|
7216
7790
|
panel = this.createPanel(options, group);
|
|
7217
7791
|
group.model.openPanel(panel);
|
|
7218
|
-
this.doSetGroupAndPanelActive(group);
|
|
7219
7792
|
}
|
|
7220
7793
|
else {
|
|
7221
7794
|
const group = this.createGroupAtLocation();
|
|
7222
7795
|
panel = this.createPanel(options, group);
|
|
7223
7796
|
group.model.openPanel(panel);
|
|
7797
|
+
this.doSetGroupAndPanelActive(group);
|
|
7224
7798
|
}
|
|
7225
7799
|
return panel;
|
|
7226
7800
|
}
|
|
@@ -7232,13 +7806,15 @@
|
|
|
7232
7806
|
if (!group) {
|
|
7233
7807
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
7234
7808
|
}
|
|
7235
|
-
group.model.removePanel(panel
|
|
7809
|
+
group.model.removePanel(panel, {
|
|
7810
|
+
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
7811
|
+
});
|
|
7236
7812
|
if (!options.skipDispose) {
|
|
7237
|
-
|
|
7813
|
+
panel.group.model.renderContainer.detatch(panel);
|
|
7238
7814
|
panel.dispose();
|
|
7239
7815
|
}
|
|
7240
7816
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
7241
|
-
this.removeGroup(group);
|
|
7817
|
+
this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
|
|
7242
7818
|
}
|
|
7243
7819
|
}
|
|
7244
7820
|
createWatermarkComponent() {
|
|
@@ -7251,7 +7827,7 @@
|
|
|
7251
7827
|
}
|
|
7252
7828
|
updateWatermark() {
|
|
7253
7829
|
var _a, _b;
|
|
7254
|
-
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
7830
|
+
if (this.groups.filter((x) => x.api.location.type === 'grid' && !x.api.isHidden).length === 0) {
|
|
7255
7831
|
if (!this.watermark) {
|
|
7256
7832
|
this.watermark = this.createWatermarkComponent();
|
|
7257
7833
|
this.watermark.init({
|
|
@@ -7271,7 +7847,7 @@
|
|
|
7271
7847
|
}
|
|
7272
7848
|
addGroup(options) {
|
|
7273
7849
|
var _a;
|
|
7274
|
-
const group = this.createGroup();
|
|
7850
|
+
const group = this.createGroup(options);
|
|
7275
7851
|
if (options) {
|
|
7276
7852
|
let referenceGroup;
|
|
7277
7853
|
if (isGroupOptionsWithPanel(options)) {
|
|
@@ -7297,36 +7873,42 @@
|
|
|
7297
7873
|
}
|
|
7298
7874
|
else {
|
|
7299
7875
|
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
7876
|
+
if (!options.skipSetActive) {
|
|
7877
|
+
this.doSetGroupAndPanelActive(group);
|
|
7878
|
+
}
|
|
7300
7879
|
return group;
|
|
7301
7880
|
}
|
|
7302
7881
|
const target = toTarget(options.direction || 'within');
|
|
7303
7882
|
const location = getGridLocation(referenceGroup.element);
|
|
7304
7883
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
7305
7884
|
this.doAddGroup(group, relativeLocation);
|
|
7885
|
+
if (!options.skipSetActive) {
|
|
7886
|
+
this.doSetGroupAndPanelActive(group);
|
|
7887
|
+
}
|
|
7306
7888
|
return group;
|
|
7307
7889
|
}
|
|
7308
7890
|
else {
|
|
7309
7891
|
this.doAddGroup(group);
|
|
7892
|
+
this.doSetGroupAndPanelActive(group);
|
|
7310
7893
|
return group;
|
|
7311
7894
|
}
|
|
7312
7895
|
}
|
|
7313
7896
|
removeGroup(group, options) {
|
|
7897
|
+
this.doRemoveGroup(group, options);
|
|
7898
|
+
}
|
|
7899
|
+
doRemoveGroup(group, options) {
|
|
7314
7900
|
var _a;
|
|
7315
7901
|
const panels = [...group.panels]; // reassign since group panels will mutate
|
|
7316
|
-
|
|
7317
|
-
|
|
7318
|
-
|
|
7319
|
-
|
|
7320
|
-
|
|
7902
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7903
|
+
for (const panel of panels) {
|
|
7904
|
+
this.removePanel(panel, {
|
|
7905
|
+
removeEmptyGroup: false,
|
|
7906
|
+
skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
|
|
7907
|
+
});
|
|
7908
|
+
}
|
|
7321
7909
|
}
|
|
7322
7910
|
const activePanel = this.activePanel;
|
|
7323
|
-
|
|
7324
|
-
if (this.activePanel !== activePanel) {
|
|
7325
|
-
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7326
|
-
}
|
|
7327
|
-
}
|
|
7328
|
-
doRemoveGroup(group, options) {
|
|
7329
|
-
if (group.api.location === 'floating') {
|
|
7911
|
+
if (group.api.location.type === 'floating') {
|
|
7330
7912
|
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
7331
7913
|
if (floatingGroup) {
|
|
7332
7914
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -7338,60 +7920,124 @@
|
|
|
7338
7920
|
floatingGroup.dispose();
|
|
7339
7921
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7340
7922
|
const groups = Array.from(this._groups.values());
|
|
7341
|
-
this.
|
|
7923
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7342
7924
|
}
|
|
7343
7925
|
return floatingGroup.group;
|
|
7344
7926
|
}
|
|
7345
7927
|
throw new Error('failed to find floating group');
|
|
7346
7928
|
}
|
|
7347
|
-
if (group.api.location === 'popout') {
|
|
7348
|
-
const selectedGroup = this._popoutGroups.find((_) => _.
|
|
7929
|
+
if (group.api.location.type === 'popout') {
|
|
7930
|
+
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
7349
7931
|
if (selectedGroup) {
|
|
7350
7932
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7351
|
-
|
|
7933
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
|
|
7934
|
+
const refGroup = selectedGroup.referenceGroup
|
|
7935
|
+
? this.getPanel(selectedGroup.referenceGroup)
|
|
7936
|
+
: undefined;
|
|
7937
|
+
if (refGroup) {
|
|
7938
|
+
this.removeGroup(refGroup);
|
|
7939
|
+
}
|
|
7940
|
+
}
|
|
7941
|
+
selectedGroup.popoutGroup.dispose();
|
|
7352
7942
|
this._groups.delete(group.id);
|
|
7353
7943
|
this._onDidRemoveGroup.fire(group);
|
|
7354
7944
|
}
|
|
7355
|
-
selectedGroup.dispose();
|
|
7945
|
+
const removedGroup = selectedGroup.disposable.dispose();
|
|
7946
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
7947
|
+
this.doAddGroup(removedGroup, [0]);
|
|
7948
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
7949
|
+
}
|
|
7356
7950
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7357
7951
|
const groups = Array.from(this._groups.values());
|
|
7358
|
-
this.
|
|
7952
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7359
7953
|
}
|
|
7360
|
-
|
|
7954
|
+
this.updateWatermark();
|
|
7955
|
+
return selectedGroup.popoutGroup;
|
|
7361
7956
|
}
|
|
7362
7957
|
throw new Error('failed to find popout group');
|
|
7363
7958
|
}
|
|
7364
|
-
|
|
7959
|
+
const re = super.doRemoveGroup(group, options);
|
|
7960
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
7961
|
+
if (this.activePanel !== activePanel) {
|
|
7962
|
+
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7963
|
+
}
|
|
7964
|
+
}
|
|
7965
|
+
return re;
|
|
7365
7966
|
}
|
|
7366
|
-
|
|
7367
|
-
|
|
7967
|
+
movingLock(func) {
|
|
7968
|
+
const isMoving = this._moving;
|
|
7969
|
+
try {
|
|
7970
|
+
this._moving = true;
|
|
7971
|
+
return func();
|
|
7972
|
+
}
|
|
7973
|
+
finally {
|
|
7974
|
+
this._moving = isMoving;
|
|
7975
|
+
}
|
|
7976
|
+
}
|
|
7977
|
+
moveGroupOrPanel(options) {
|
|
7978
|
+
var _a;
|
|
7979
|
+
const destinationGroup = options.to.group;
|
|
7980
|
+
const sourceGroupId = options.from.groupId;
|
|
7981
|
+
const sourceItemId = options.from.panelId;
|
|
7982
|
+
const destinationTarget = options.to.position;
|
|
7983
|
+
const destinationIndex = options.to.index;
|
|
7368
7984
|
const sourceGroup = sourceGroupId
|
|
7369
7985
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
7370
7986
|
: undefined;
|
|
7987
|
+
if (!sourceGroup) {
|
|
7988
|
+
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
7989
|
+
}
|
|
7371
7990
|
if (sourceItemId === undefined) {
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7991
|
+
/**
|
|
7992
|
+
* Moving an entire group into another group
|
|
7993
|
+
*/
|
|
7994
|
+
this.moveGroup({
|
|
7995
|
+
from: { group: sourceGroup },
|
|
7996
|
+
to: {
|
|
7997
|
+
group: destinationGroup,
|
|
7998
|
+
position: destinationTarget,
|
|
7999
|
+
},
|
|
8000
|
+
});
|
|
7375
8001
|
return;
|
|
7376
8002
|
}
|
|
7377
8003
|
if (!destinationTarget || destinationTarget === 'center') {
|
|
7378
|
-
|
|
7379
|
-
|
|
8004
|
+
/**
|
|
8005
|
+
* Dropping a panel within another group
|
|
8006
|
+
*/
|
|
8007
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8008
|
+
skipSetActive: false,
|
|
8009
|
+
skipSetActiveGroup: true,
|
|
8010
|
+
}));
|
|
8011
|
+
if (!removedPanel) {
|
|
7380
8012
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7381
8013
|
}
|
|
7382
|
-
if (
|
|
7383
|
-
|
|
8014
|
+
if (sourceGroup.model.size === 0) {
|
|
8015
|
+
// remove the group and do not set a new group as active
|
|
8016
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
7384
8017
|
}
|
|
7385
|
-
destinationGroup.model.openPanel(
|
|
8018
|
+
this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {
|
|
7386
8019
|
index: destinationIndex,
|
|
8020
|
+
skipSetGroupActive: true,
|
|
8021
|
+
}));
|
|
8022
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8023
|
+
this._onDidMovePanel.fire({
|
|
8024
|
+
panel: removedPanel,
|
|
7387
8025
|
});
|
|
7388
8026
|
}
|
|
7389
8027
|
else {
|
|
8028
|
+
/**
|
|
8029
|
+
* Dropping a panel to the extremities of a group which will place that panel
|
|
8030
|
+
* into an adjacent group
|
|
8031
|
+
*/
|
|
7390
8032
|
const referenceLocation = getGridLocation(destinationGroup.element);
|
|
7391
8033
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7392
|
-
if (sourceGroup
|
|
8034
|
+
if (sourceGroup.size < 2) {
|
|
8035
|
+
/**
|
|
8036
|
+
* If we are moving from a group which only has one panel left we will consider
|
|
8037
|
+
* moving the group itself rather than moving the panel into a newly created group
|
|
8038
|
+
*/
|
|
7393
8039
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
7394
|
-
if (sourceGroup.api.location === 'grid') {
|
|
8040
|
+
if (sourceGroup.api.location.type === 'grid') {
|
|
7395
8041
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
7396
8042
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
7397
8043
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -7399,78 +8045,123 @@
|
|
|
7399
8045
|
// if a group has one tab - we are essentially moving the 'group'
|
|
7400
8046
|
// which is equivalent to swapping two views in this case
|
|
7401
8047
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8048
|
+
return;
|
|
7402
8049
|
}
|
|
7403
8050
|
}
|
|
7404
8051
|
// source group will become empty so delete the group
|
|
7405
|
-
const targetGroup = this.doRemoveGroup(sourceGroup, {
|
|
8052
|
+
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
7406
8053
|
skipActive: true,
|
|
7407
8054
|
skipDispose: true,
|
|
7408
|
-
});
|
|
8055
|
+
}));
|
|
7409
8056
|
// after deleting the group we need to re-evaulate the ref location
|
|
7410
8057
|
const updatedReferenceLocation = getGridLocation(destinationGroup.element);
|
|
7411
8058
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
7412
|
-
this.doAddGroup(targetGroup, location);
|
|
8059
|
+
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8060
|
+
this.doSetGroupAndPanelActive(targetGroup);
|
|
7413
8061
|
}
|
|
7414
8062
|
else {
|
|
7415
|
-
|
|
7416
|
-
|
|
8063
|
+
/**
|
|
8064
|
+
* The group we are removing from has many panels, we need to remove the panels we are moving,
|
|
8065
|
+
* create a new group, add the panels to that new group and add the new group in an appropiate position
|
|
8066
|
+
*/
|
|
8067
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8068
|
+
skipSetActive: false,
|
|
8069
|
+
skipSetActiveGroup: true,
|
|
8070
|
+
}));
|
|
8071
|
+
if (!removedPanel) {
|
|
7417
8072
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7418
8073
|
}
|
|
7419
8074
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7420
8075
|
const group = this.createGroupAtLocation(dropLocation);
|
|
7421
|
-
group.model.openPanel(
|
|
8076
|
+
this.movingLock(() => group.model.openPanel(removedPanel, {
|
|
8077
|
+
skipSetGroupActive: true,
|
|
8078
|
+
}));
|
|
8079
|
+
this.doSetGroupAndPanelActive(group);
|
|
7422
8080
|
}
|
|
7423
8081
|
}
|
|
7424
8082
|
}
|
|
7425
|
-
moveGroup(
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
8083
|
+
moveGroup(options) {
|
|
8084
|
+
const from = options.from.group;
|
|
8085
|
+
const to = options.to.group;
|
|
8086
|
+
const target = options.to.position;
|
|
8087
|
+
if (target === 'center') {
|
|
8088
|
+
const activePanel = from.activePanel;
|
|
8089
|
+
const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {
|
|
8090
|
+
skipSetActive: true,
|
|
8091
|
+
})));
|
|
8092
|
+
if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
|
|
8093
|
+
this.doRemoveGroup(from, { skipActive: true });
|
|
8094
|
+
}
|
|
8095
|
+
this.movingLock(() => {
|
|
7433
8096
|
for (const panel of panels) {
|
|
7434
|
-
|
|
7435
|
-
|
|
8097
|
+
to.model.openPanel(panel, {
|
|
8098
|
+
skipSetActive: panel !== activePanel,
|
|
8099
|
+
skipSetGroupActive: true,
|
|
7436
8100
|
});
|
|
7437
8101
|
}
|
|
7438
|
-
}
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
7446
|
-
|
|
7447
|
-
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
|
|
8102
|
+
});
|
|
8103
|
+
this.doSetGroupAndPanelActive(to);
|
|
8104
|
+
panels.forEach((panel) => {
|
|
8105
|
+
this._onDidMovePanel.fire({ panel });
|
|
8106
|
+
});
|
|
8107
|
+
}
|
|
8108
|
+
else {
|
|
8109
|
+
switch (from.api.location.type) {
|
|
8110
|
+
case 'grid':
|
|
8111
|
+
this.gridview.removeView(getGridLocation(from.element));
|
|
8112
|
+
break;
|
|
8113
|
+
case 'floating': {
|
|
8114
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
8115
|
+
if (!selectedFloatingGroup) {
|
|
8116
|
+
throw new Error('failed to find floating group');
|
|
7451
8117
|
}
|
|
7452
|
-
|
|
7453
|
-
|
|
7454
|
-
|
|
7455
|
-
|
|
7456
|
-
|
|
7457
|
-
|
|
8118
|
+
selectedFloatingGroup.dispose();
|
|
8119
|
+
break;
|
|
8120
|
+
}
|
|
8121
|
+
case 'popout': {
|
|
8122
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
8123
|
+
if (!selectedPopoutGroup) {
|
|
8124
|
+
throw new Error('failed to find popout group');
|
|
7458
8125
|
}
|
|
8126
|
+
selectedPopoutGroup.disposable.dispose();
|
|
7459
8127
|
}
|
|
7460
|
-
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
7461
|
-
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
7462
|
-
this.gridview.addView(sourceGroup, exports.Sizing.Distribute, dropLocation);
|
|
7463
8128
|
}
|
|
8129
|
+
const referenceLocation = getGridLocation(to.element);
|
|
8130
|
+
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8131
|
+
this.gridview.addView(from, exports.Sizing.Distribute, dropLocation);
|
|
8132
|
+
from.panels.forEach((panel) => {
|
|
8133
|
+
this._onDidMovePanel.fire({ panel });
|
|
8134
|
+
});
|
|
7464
8135
|
}
|
|
7465
8136
|
}
|
|
7466
|
-
|
|
7467
|
-
|
|
8137
|
+
doSetGroupActive(group) {
|
|
8138
|
+
super.doSetGroupActive(group);
|
|
8139
|
+
const activePanel = this.activePanel;
|
|
8140
|
+
if (!this._moving &&
|
|
8141
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8142
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8143
|
+
}
|
|
8144
|
+
}
|
|
8145
|
+
doSetGroupAndPanelActive(group) {
|
|
8146
|
+
super.doSetGroupActive(group);
|
|
7468
8147
|
const activePanel = this.activePanel;
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
this.
|
|
8148
|
+
if (group &&
|
|
8149
|
+
this.hasMaximizedGroup() &&
|
|
8150
|
+
!this.isMaximizedGroup(group)) {
|
|
8151
|
+
this.exitMaximizedGroup();
|
|
8152
|
+
}
|
|
8153
|
+
if (!this._moving &&
|
|
8154
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8155
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
7472
8156
|
}
|
|
7473
8157
|
}
|
|
8158
|
+
getNextGroupId() {
|
|
8159
|
+
let id = this.nextGroupId.next();
|
|
8160
|
+
while (this._groups.has(id)) {
|
|
8161
|
+
id = this.nextGroupId.next();
|
|
8162
|
+
}
|
|
8163
|
+
return id;
|
|
8164
|
+
}
|
|
7474
8165
|
createGroup(options) {
|
|
7475
8166
|
if (!options) {
|
|
7476
8167
|
options = {};
|
|
@@ -7487,7 +8178,7 @@
|
|
|
7487
8178
|
}
|
|
7488
8179
|
}
|
|
7489
8180
|
const view = new DockviewGroupPanel(this, id, options);
|
|
7490
|
-
view.init({ params: {}, accessor:
|
|
8181
|
+
view.init({ params: {}, accessor: this });
|
|
7491
8182
|
if (!this._groups.has(view.id)) {
|
|
7492
8183
|
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
7493
8184
|
this._onWillDragPanel.fire(event);
|
|
@@ -7495,20 +8186,48 @@
|
|
|
7495
8186
|
this._onWillDragGroup.fire(event);
|
|
7496
8187
|
}), view.model.onMove((event) => {
|
|
7497
8188
|
const { groupId, itemId, target, index } = event;
|
|
7498
|
-
this.moveGroupOrPanel(
|
|
8189
|
+
this.moveGroupOrPanel({
|
|
8190
|
+
from: { groupId: groupId, panelId: itemId },
|
|
8191
|
+
to: {
|
|
8192
|
+
group: view,
|
|
8193
|
+
position: target,
|
|
8194
|
+
index,
|
|
8195
|
+
},
|
|
8196
|
+
});
|
|
7499
8197
|
}), view.model.onDidDrop((event) => {
|
|
7500
|
-
this._onDidDrop.fire(
|
|
8198
|
+
this._onDidDrop.fire(event);
|
|
8199
|
+
}), view.model.onWillDrop((event) => {
|
|
8200
|
+
this._onWillDrop.fire(event);
|
|
8201
|
+
}), view.model.onWillShowOverlay((event) => {
|
|
8202
|
+
if (this.options.disableDnd) {
|
|
8203
|
+
event.preventDefault();
|
|
8204
|
+
return;
|
|
8205
|
+
}
|
|
8206
|
+
this._onWillShowOverlay.fire(event);
|
|
7501
8207
|
}), view.model.onDidAddPanel((event) => {
|
|
8208
|
+
if (this._moving) {
|
|
8209
|
+
return;
|
|
8210
|
+
}
|
|
7502
8211
|
this._onDidAddPanel.fire(event.panel);
|
|
7503
8212
|
}), view.model.onDidRemovePanel((event) => {
|
|
8213
|
+
if (this._moving) {
|
|
8214
|
+
return;
|
|
8215
|
+
}
|
|
7504
8216
|
this._onDidRemovePanel.fire(event.panel);
|
|
7505
8217
|
}), view.model.onDidActivePanelChange((event) => {
|
|
7506
|
-
this.
|
|
8218
|
+
if (this._moving) {
|
|
8219
|
+
return;
|
|
8220
|
+
}
|
|
8221
|
+
if (event.panel !== this.activePanel) {
|
|
8222
|
+
return;
|
|
8223
|
+
}
|
|
8224
|
+
if (this._onDidActivePanelChange.value !== event.panel) {
|
|
8225
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
8226
|
+
}
|
|
7507
8227
|
}));
|
|
7508
8228
|
this._groups.set(view.id, { value: view, disposable });
|
|
7509
8229
|
}
|
|
7510
|
-
// TODO: must be called after the above listeners have been setup,
|
|
7511
|
-
// not an ideal pattern
|
|
8230
|
+
// TODO: must be called after the above listeners have been setup, not an ideal pattern
|
|
7512
8231
|
view.initialize();
|
|
7513
8232
|
return view;
|
|
7514
8233
|
}
|
|
@@ -7561,7 +8280,20 @@
|
|
|
7561
8280
|
});
|
|
7562
8281
|
this._onDidLayoutfromJSON = new Emitter();
|
|
7563
8282
|
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
8283
|
+
this._onDidRemoveGroup = new Emitter();
|
|
8284
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
8285
|
+
this._onDidAddGroup = new Emitter();
|
|
8286
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
8287
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
8288
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7564
8289
|
this._options = options;
|
|
8290
|
+
this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {
|
|
8291
|
+
this._onDidAddGroup.fire(event);
|
|
8292
|
+
}), this.onDidRemove((event) => {
|
|
8293
|
+
this._onDidRemoveGroup.fire(event);
|
|
8294
|
+
}), this.onDidActiveChange((event) => {
|
|
8295
|
+
this._onDidActiveGroupChange.fire(event);
|
|
8296
|
+
}));
|
|
7565
8297
|
if (!this.options.components) {
|
|
7566
8298
|
this.options.components = {};
|
|
7567
8299
|
}
|
|
@@ -7736,6 +8468,7 @@
|
|
|
7736
8468
|
});
|
|
7737
8469
|
this.registerPanel(view);
|
|
7738
8470
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
8471
|
+
this.doSetGroupActive(view);
|
|
7739
8472
|
return view;
|
|
7740
8473
|
}
|
|
7741
8474
|
registerPanel(panel) {
|
|
@@ -8421,10 +9154,10 @@
|
|
|
8421
9154
|
this._onDidChange = new Emitter();
|
|
8422
9155
|
this.onDidChange = this._onDidChange.event;
|
|
8423
9156
|
this.api.initialize(this);
|
|
8424
|
-
this.addDisposables(this._onDidChange, this.api.
|
|
8425
|
-
const {
|
|
9157
|
+
this.addDisposables(this._onDidChange, this.api.onDidHiddenChange((event) => {
|
|
9158
|
+
const { isHidden } = event;
|
|
8426
9159
|
const { accessor } = this._params;
|
|
8427
|
-
accessor.setVisible(this,
|
|
9160
|
+
accessor.setVisible(this, !isHidden);
|
|
8428
9161
|
}), this.api.onActiveChange(() => {
|
|
8429
9162
|
const { accessor } = this._params;
|
|
8430
9163
|
accessor.setActive(this);
|
|
@@ -8490,11 +9223,13 @@
|
|
|
8490
9223
|
exports.DockviewApi = DockviewApi;
|
|
8491
9224
|
exports.DockviewComponent = DockviewComponent;
|
|
8492
9225
|
exports.DockviewCompositeDisposable = CompositeDisposable;
|
|
9226
|
+
exports.DockviewDidDropEvent = DockviewDidDropEvent;
|
|
8493
9227
|
exports.DockviewEmitter = Emitter;
|
|
8494
9228
|
exports.DockviewGroupPanel = DockviewGroupPanel;
|
|
8495
9229
|
exports.DockviewGroupPanelModel = DockviewGroupPanelModel;
|
|
8496
9230
|
exports.DockviewMutableDisposable = MutableDisposable;
|
|
8497
9231
|
exports.DockviewPanel = DockviewPanel;
|
|
9232
|
+
exports.DockviewWillDropEvent = DockviewWillDropEvent;
|
|
8498
9233
|
exports.DraggablePaneviewPanel = DraggablePaneviewPanel;
|
|
8499
9234
|
exports.Gridview = Gridview;
|
|
8500
9235
|
exports.GridviewApi = GridviewApi;
|
|
@@ -8513,6 +9248,7 @@
|
|
|
8513
9248
|
exports.SplitviewComponent = SplitviewComponent;
|
|
8514
9249
|
exports.SplitviewPanel = SplitviewPanel;
|
|
8515
9250
|
exports.Tab = Tab;
|
|
9251
|
+
exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
|
|
8516
9252
|
exports.createComponent = createComponent;
|
|
8517
9253
|
exports.directionToPosition = directionToPosition;
|
|
8518
9254
|
exports.getDirectionOrientation = getDirectionOrientation;
|