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