dockview-core 1.9.2 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +35 -8
- package/dist/cjs/api/component.api.js +37 -7
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
- package/dist/cjs/api/dockviewPanelApi.d.ts +24 -7
- package/dist/cjs/api/dockviewPanelApi.js +60 -14
- package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -4
- package/dist/cjs/api/panelApi.d.ts +10 -8
- package/dist/cjs/api/panelApi.js +19 -29
- package/dist/cjs/api/paneviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/paneviewPanelApi.js +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/splitviewPanelApi.js +0 -1
- package/dist/cjs/array.d.ts +0 -1
- package/dist/cjs/array.js +0 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +0 -1
- package/dist/cjs/dnd/dataTransfer.js +0 -1
- package/dist/cjs/dnd/dnd.d.ts +0 -1
- package/dist/cjs/dnd/dnd.js +0 -1
- package/dist/cjs/dnd/droptarget.d.ts +20 -9
- package/dist/cjs/dnd/droptarget.js +71 -14
- package/dist/cjs/dnd/ghost.d.ts +0 -1
- package/dist/cjs/dnd/ghost.js +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/groupDragHandler.js +1 -2
- package/dist/cjs/dnd/overlay.d.ts +0 -1
- package/dist/cjs/dnd/overlay.js +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts +0 -1
- package/dist/cjs/dockview/components/panel/content.js +6 -7
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts +5 -13
- package/dist/cjs/dockview/components/tab/tab.js +5 -6
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +26 -22
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +5 -6
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js +0 -1
- package/dist/cjs/dockview/deserializer.d.ts +0 -1
- package/dist/cjs/dockview/deserializer.js +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +86 -25
- package/dist/cjs/dockview/dockviewComponent.js +586 -198
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +6 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +81 -37
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +226 -57
- package/dist/cjs/dockview/dockviewPanel.d.ts +8 -3
- package/dist/cjs/dockview/dockviewPanel.js +39 -12
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/cjs/dockview/dockviewPanelModel.js +2 -22
- package/dist/cjs/dockview/options.d.ts +10 -6
- package/dist/cjs/dockview/options.js +0 -1
- package/dist/cjs/dockview/types.d.ts +0 -11
- package/dist/cjs/dockview/types.js +0 -9
- package/dist/cjs/dom.d.ts +0 -1
- package/dist/cjs/dom.js +0 -1
- package/dist/cjs/events.d.ts +10 -1
- package/dist/cjs/events.js +25 -2
- package/dist/cjs/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/cjs/gridview/baseComponentGridview.js +37 -27
- package/dist/cjs/gridview/basePanelView.d.ts +0 -1
- package/dist/cjs/gridview/basePanelView.js +7 -2
- package/dist/cjs/gridview/branchNode.d.ts +3 -2
- package/dist/cjs/gridview/branchNode.js +12 -2
- package/dist/cjs/gridview/gridview.d.ts +5 -3
- package/dist/cjs/gridview/gridview.js +54 -21
- package/dist/cjs/gridview/gridviewComponent.d.ts +10 -2
- package/dist/cjs/gridview/gridviewComponent.js +14 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
- package/dist/cjs/gridview/gridviewPanel.js +2 -3
- package/dist/cjs/gridview/leafNode.d.ts +0 -1
- package/dist/cjs/gridview/leafNode.js +0 -1
- package/dist/cjs/gridview/options.d.ts +1 -2
- package/dist/cjs/gridview/options.js +0 -1
- package/dist/cjs/gridview/types.d.ts +0 -1
- package/dist/cjs/gridview/types.js +0 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/lifecycle.d.ts +3 -4
- package/dist/cjs/lifecycle.js +5 -2
- package/dist/cjs/math.d.ts +0 -1
- package/dist/cjs/math.js +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts +1 -1
- package/dist/cjs/overlayRenderContainer.js +8 -4
- package/dist/cjs/panel/componentFactory.d.ts +0 -1
- package/dist/cjs/panel/componentFactory.js +0 -1
- package/dist/cjs/panel/types.d.ts +1 -2
- package/dist/cjs/panel/types.js +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/cjs/paneview/options.d.ts +1 -2
- package/dist/cjs/paneview/options.js +0 -1
- package/dist/cjs/paneview/paneview.d.ts +1 -1
- package/dist/cjs/paneview/paneview.js +3 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -1
- package/dist/cjs/paneview/paneviewComponent.js +6 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -1
- package/dist/cjs/paneview/paneviewPanel.js +5 -2
- package/dist/cjs/popoutWindow.d.ts +15 -4
- package/dist/cjs/popoutWindow.js +140 -56
- package/dist/cjs/resizable.d.ts +1 -2
- package/dist/cjs/resizable.js +1 -10
- package/dist/cjs/splitview/options.d.ts +3 -7
- package/dist/cjs/splitview/options.js +0 -1
- package/dist/cjs/splitview/splitview.d.ts +3 -1
- package/dist/cjs/splitview/splitview.js +12 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +1 -2
- package/dist/cjs/splitview/splitviewComponent.js +5 -6
- package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
- package/dist/cjs/splitview/splitviewPanel.js +1 -2
- package/dist/cjs/splitview/viewItem.d.ts +0 -1
- package/dist/cjs/splitview/viewItem.js +0 -1
- package/dist/cjs/svg.d.ts +0 -1
- package/dist/cjs/svg.js +0 -1
- package/dist/cjs/types.d.ts +0 -1
- package/dist/cjs/types.js +0 -1
- package/dist/dockview-core.amd.js +1298 -531
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +1297 -530
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +1298 -531
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +1296 -532
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +1298 -531
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +1297 -530
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +35 -8
- package/dist/esm/api/component.api.js +29 -7
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
- package/dist/esm/api/dockviewPanelApi.d.ts +24 -7
- package/dist/esm/api/dockviewPanelApi.js +56 -14
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
- package/dist/esm/api/gridviewPanelApi.js +1 -4
- package/dist/esm/api/panelApi.d.ts +10 -8
- package/dist/esm/api/panelApi.js +16 -29
- package/dist/esm/api/paneviewPanelApi.d.ts +0 -1
- package/dist/esm/api/paneviewPanelApi.js +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
- package/dist/esm/api/splitviewPanelApi.js +0 -1
- package/dist/esm/array.d.ts +0 -1
- package/dist/esm/array.js +0 -1
- package/dist/esm/constants.d.ts +0 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/esm/dnd/abstractDragHandler.js +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts +0 -1
- package/dist/esm/dnd/dataTransfer.js +0 -1
- package/dist/esm/dnd/dnd.d.ts +0 -1
- package/dist/esm/dnd/dnd.js +0 -1
- package/dist/esm/dnd/droptarget.d.ts +20 -9
- package/dist/esm/dnd/droptarget.js +59 -14
- package/dist/esm/dnd/ghost.d.ts +0 -1
- package/dist/esm/dnd/ghost.js +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts +0 -1
- package/dist/esm/dnd/groupDragHandler.js +1 -2
- package/dist/esm/dnd/overlay.d.ts +0 -1
- package/dist/esm/dnd/overlay.js +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts +0 -1
- package/dist/esm/dockview/components/panel/content.js +6 -7
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts +5 -13
- package/dist/esm/dockview/components/tab/tab.js +6 -7
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +24 -20
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/esm/dockview/components/titlebar/voidContainer.js +6 -7
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js +0 -1
- package/dist/esm/dockview/deserializer.d.ts +0 -1
- package/dist/esm/dockview/deserializer.js +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +86 -25
- package/dist/esm/dockview/dockviewComponent.js +529 -163
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js +6 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +81 -37
- package/dist/esm/dockview/dockviewGroupPanelModel.js +169 -53
- package/dist/esm/dockview/dockviewPanel.d.ts +8 -3
- package/dist/esm/dockview/dockviewPanel.js +39 -12
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/esm/dockview/dockviewPanelModel.js +2 -22
- package/dist/esm/dockview/options.d.ts +10 -6
- package/dist/esm/dockview/options.js +0 -1
- package/dist/esm/dockview/types.d.ts +0 -11
- package/dist/esm/dockview/types.js +1 -8
- package/dist/esm/dom.d.ts +0 -1
- package/dist/esm/dom.js +0 -1
- package/dist/esm/events.d.ts +10 -1
- package/dist/esm/events.js +14 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/esm/gridview/baseComponentGridview.js +33 -27
- package/dist/esm/gridview/basePanelView.d.ts +0 -1
- package/dist/esm/gridview/basePanelView.js +7 -2
- package/dist/esm/gridview/branchNode.d.ts +3 -2
- package/dist/esm/gridview/branchNode.js +8 -2
- package/dist/esm/gridview/gridview.d.ts +5 -3
- package/dist/esm/gridview/gridview.js +49 -20
- package/dist/esm/gridview/gridviewComponent.d.ts +10 -2
- package/dist/esm/gridview/gridviewComponent.js +14 -1
- package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
- package/dist/esm/gridview/gridviewPanel.js +2 -3
- package/dist/esm/gridview/leafNode.d.ts +0 -1
- package/dist/esm/gridview/leafNode.js +0 -1
- package/dist/esm/gridview/options.d.ts +1 -2
- package/dist/esm/gridview/options.js +0 -1
- package/dist/esm/gridview/types.d.ts +0 -1
- package/dist/esm/gridview/types.js +0 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/lifecycle.d.ts +3 -4
- package/dist/esm/lifecycle.js +5 -2
- package/dist/esm/math.d.ts +0 -1
- package/dist/esm/math.js +0 -1
- package/dist/esm/overlayRenderContainer.d.ts +1 -1
- package/dist/esm/overlayRenderContainer.js +8 -4
- package/dist/esm/panel/componentFactory.d.ts +0 -1
- package/dist/esm/panel/componentFactory.js +0 -1
- package/dist/esm/panel/types.d.ts +1 -2
- package/dist/esm/panel/types.js +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/esm/paneview/options.d.ts +1 -2
- package/dist/esm/paneview/options.js +0 -1
- package/dist/esm/paneview/paneview.d.ts +1 -1
- package/dist/esm/paneview/paneview.js +3 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -1
- package/dist/esm/paneview/paneviewComponent.js +6 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -1
- package/dist/esm/paneview/paneviewPanel.js +5 -2
- package/dist/esm/popoutWindow.d.ts +15 -4
- package/dist/esm/popoutWindow.js +105 -52
- package/dist/esm/resizable.d.ts +1 -2
- package/dist/esm/resizable.js +1 -10
- package/dist/esm/splitview/options.d.ts +3 -7
- package/dist/esm/splitview/options.js +0 -1
- package/dist/esm/splitview/splitview.d.ts +3 -1
- package/dist/esm/splitview/splitview.js +8 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +1 -2
- package/dist/esm/splitview/splitviewComponent.js +5 -6
- package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
- package/dist/esm/splitview/splitviewPanel.js +1 -2
- package/dist/esm/splitview/viewItem.d.ts +0 -1
- package/dist/esm/splitview/viewItem.js +0 -1
- package/dist/esm/svg.d.ts +0 -1
- package/dist/esm/svg.js +0 -1
- package/dist/esm/types.d.ts +0 -1
- package/dist/esm/types.js +0 -1
- package/dist/styles/dockview.css +20 -6
- package/package.json +3 -3
- package/dist/cjs/api/component.api.d.ts.map +0 -1
- package/dist/cjs/api/component.api.js.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.js.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.js.map +0 -1
- package/dist/cjs/api/panelApi.d.ts.map +0 -1
- package/dist/cjs/api/panelApi.js.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.js.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.js.map +0 -1
- package/dist/cjs/array.d.ts.map +0 -1
- package/dist/cjs/array.js.map +0 -1
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js.map +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/cjs/dnd/dataTransfer.js.map +0 -1
- package/dist/cjs/dnd/dnd.d.ts.map +0 -1
- package/dist/cjs/dnd/dnd.js.map +0 -1
- package/dist/cjs/dnd/droptarget.d.ts.map +0 -1
- package/dist/cjs/dnd/droptarget.js.map +0 -1
- package/dist/cjs/dnd/ghost.d.ts.map +0 -1
- package/dist/cjs/dnd/ghost.js.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.js.map +0 -1
- package/dist/cjs/dnd/overlay.d.ts.map +0 -1
- package/dist/cjs/dnd/overlay.js.map +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/cjs/dockview/components/panel/content.js.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/cjs/dockview/deserializer.d.ts.map +0 -1
- package/dist/cjs/dockview/deserializer.js.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.js.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +0 -50
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/options.d.ts.map +0 -1
- package/dist/cjs/dockview/options.js.map +0 -1
- package/dist/cjs/dockview/types.d.ts.map +0 -1
- package/dist/cjs/dockview/types.js.map +0 -1
- package/dist/cjs/dom.d.ts.map +0 -1
- package/dist/cjs/dom.js.map +0 -1
- package/dist/cjs/events.d.ts.map +0 -1
- package/dist/cjs/events.js.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +0 -1
- package/dist/cjs/gridview/basePanelView.d.ts.map +0 -1
- package/dist/cjs/gridview/basePanelView.js.map +0 -1
- package/dist/cjs/gridview/branchNode.d.ts.map +0 -1
- package/dist/cjs/gridview/branchNode.js.map +0 -1
- package/dist/cjs/gridview/gridview.d.ts.map +0 -1
- package/dist/cjs/gridview/gridview.js.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.js.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.js.map +0 -1
- package/dist/cjs/gridview/leafNode.d.ts.map +0 -1
- package/dist/cjs/gridview/leafNode.js.map +0 -1
- package/dist/cjs/gridview/options.d.ts.map +0 -1
- package/dist/cjs/gridview/options.js.map +0 -1
- package/dist/cjs/gridview/types.d.ts.map +0 -1
- package/dist/cjs/gridview/types.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lifecycle.d.ts.map +0 -1
- package/dist/cjs/lifecycle.js.map +0 -1
- package/dist/cjs/math.d.ts.map +0 -1
- package/dist/cjs/math.js.map +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts.map +0 -1
- package/dist/cjs/overlayRenderContainer.js.map +0 -1
- package/dist/cjs/panel/componentFactory.d.ts.map +0 -1
- package/dist/cjs/panel/componentFactory.js.map +0 -1
- package/dist/cjs/panel/types.d.ts.map +0 -1
- package/dist/cjs/panel/types.js.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/cjs/paneview/options.d.ts.map +0 -1
- package/dist/cjs/paneview/options.js.map +0 -1
- package/dist/cjs/paneview/paneview.d.ts.map +0 -1
- package/dist/cjs/paneview/paneview.js.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.js.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.js.map +0 -1
- package/dist/cjs/popoutWindow.d.ts.map +0 -1
- package/dist/cjs/popoutWindow.js.map +0 -1
- package/dist/cjs/resizable.d.ts.map +0 -1
- package/dist/cjs/resizable.js.map +0 -1
- package/dist/cjs/splitview/options.d.ts.map +0 -1
- package/dist/cjs/splitview/options.js.map +0 -1
- package/dist/cjs/splitview/splitview.d.ts.map +0 -1
- package/dist/cjs/splitview/splitview.js.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.js.map +0 -1
- package/dist/cjs/splitview/viewItem.d.ts.map +0 -1
- package/dist/cjs/splitview/viewItem.js.map +0 -1
- package/dist/cjs/svg.d.ts.map +0 -1
- package/dist/cjs/svg.js.map +0 -1
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js.map +0 -1
- package/dist/esm/api/component.api.d.ts.map +0 -1
- package/dist/esm/api/component.api.js.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/esm/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewPanelApi.js.map +0 -1
- package/dist/esm/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/gridviewPanelApi.js.map +0 -1
- package/dist/esm/api/panelApi.d.ts.map +0 -1
- package/dist/esm/api/panelApi.js.map +0 -1
- package/dist/esm/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/paneviewPanelApi.js.map +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/splitviewPanelApi.js.map +0 -1
- package/dist/esm/array.d.ts.map +0 -1
- package/dist/esm/array.js.map +0 -1
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.js.map +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/esm/dnd/dataTransfer.js.map +0 -1
- package/dist/esm/dnd/dnd.d.ts.map +0 -1
- package/dist/esm/dnd/dnd.js.map +0 -1
- package/dist/esm/dnd/droptarget.d.ts.map +0 -1
- package/dist/esm/dnd/droptarget.js.map +0 -1
- package/dist/esm/dnd/ghost.d.ts.map +0 -1
- package/dist/esm/dnd/ghost.js.map +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/groupDragHandler.js.map +0 -1
- package/dist/esm/dnd/overlay.d.ts.map +0 -1
- package/dist/esm/dnd/overlay.js.map +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/esm/dockview/components/panel/content.js.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/tab.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/esm/dockview/deserializer.d.ts.map +0 -1
- package/dist/esm/dockview/deserializer.js.map +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewComponent.js.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js +0 -28
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/esm/dockview/options.d.ts.map +0 -1
- package/dist/esm/dockview/options.js.map +0 -1
- package/dist/esm/dockview/types.d.ts.map +0 -1
- package/dist/esm/dockview/types.js.map +0 -1
- package/dist/esm/dom.d.ts.map +0 -1
- package/dist/esm/dom.js.map +0 -1
- package/dist/esm/events.d.ts.map +0 -1
- package/dist/esm/events.js.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.js.map +0 -1
- package/dist/esm/gridview/basePanelView.d.ts.map +0 -1
- package/dist/esm/gridview/basePanelView.js.map +0 -1
- package/dist/esm/gridview/branchNode.d.ts.map +0 -1
- package/dist/esm/gridview/branchNode.js.map +0 -1
- package/dist/esm/gridview/gridview.d.ts.map +0 -1
- package/dist/esm/gridview/gridview.js.map +0 -1
- package/dist/esm/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewComponent.js.map +0 -1
- package/dist/esm/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewPanel.js.map +0 -1
- package/dist/esm/gridview/leafNode.d.ts.map +0 -1
- package/dist/esm/gridview/leafNode.js.map +0 -1
- package/dist/esm/gridview/options.d.ts.map +0 -1
- package/dist/esm/gridview/options.js.map +0 -1
- package/dist/esm/gridview/types.d.ts.map +0 -1
- package/dist/esm/gridview/types.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lifecycle.d.ts.map +0 -1
- package/dist/esm/lifecycle.js.map +0 -1
- package/dist/esm/math.d.ts.map +0 -1
- package/dist/esm/math.js.map +0 -1
- package/dist/esm/overlayRenderContainer.d.ts.map +0 -1
- package/dist/esm/overlayRenderContainer.js.map +0 -1
- package/dist/esm/panel/componentFactory.d.ts.map +0 -1
- package/dist/esm/panel/componentFactory.js.map +0 -1
- package/dist/esm/panel/types.d.ts.map +0 -1
- package/dist/esm/panel/types.js.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/esm/paneview/options.d.ts.map +0 -1
- package/dist/esm/paneview/options.js.map +0 -1
- package/dist/esm/paneview/paneview.d.ts.map +0 -1
- package/dist/esm/paneview/paneview.js.map +0 -1
- package/dist/esm/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewComponent.js.map +0 -1
- package/dist/esm/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewPanel.js.map +0 -1
- package/dist/esm/popoutWindow.d.ts.map +0 -1
- package/dist/esm/popoutWindow.js.map +0 -1
- package/dist/esm/resizable.d.ts.map +0 -1
- package/dist/esm/resizable.js.map +0 -1
- package/dist/esm/splitview/options.d.ts.map +0 -1
- package/dist/esm/splitview/options.js.map +0 -1
- package/dist/esm/splitview/splitview.d.ts.map +0 -1
- package/dist/esm/splitview/splitview.js.map +0 -1
- package/dist/esm/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewComponent.js.map +0 -1
- package/dist/esm/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewPanel.js.map +0 -1
- package/dist/esm/splitview/viewItem.d.ts.map +0 -1
- package/dist/esm/splitview/viewItem.js.map +0 -1
- package/dist/esm/svg.d.ts.map +0 -1
- package/dist/esm/svg.js.map +0 -1
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js.map +0 -1
package/dist/dockview-core.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.10.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit.dv-dockview {\n padding: 3px;\n}\n.dockview-theme-replit .view:has(> .groupview) {\n padding: 3px;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
40
|
+
var css_248z = ".dv-render-overlay {\n position: absolute;\n z-index: 1;\n height: 100%;\n}\n.dv-render-overlay.dv-render-overlay-float {\n z-index: 999;\n}\n\n.dv-debug .dv-render-overlay {\n outline: 1px solid red;\n outline-offset: -1;\n}\n.dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n\n.dockview-theme-replit {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-floating-box-shadow: 8px 8px 8px 0px rgba(83, 89, 93, 0.5);\n --dv-group-gap-size: 3px;\n --dv-group-view-background-color: #ebeced;\n --dv-tabs-and-actions-container-background-color: #fcfcfc;\n --dv-activegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-activegroup-hiddenpanel-tab-background-color: ##fcfcfc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #f0f1f2;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #fcfcfc;\n --dv-tab-divider-color: transparent;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-inactivegroup-hiddenpanel-tab-color: rgb(51, 51, 51);\n --dv-separator-border: transparent;\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n --dv-background-color: #ebeced;\n --dv-separator-handle-background-color: #cfd1d3;\n --dv-separator-handle-hover-background-color: #babbbb;\n}\n.dockview-theme-replit .dv-resize-container:has(> .groupview) {\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview {\n overflow: hidden;\n border-radius: 10px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container {\n border-bottom: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab {\n margin: 4px;\n border-radius: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab .dockview-svg {\n height: 8px;\n width: 8px;\n}\n.dockview-theme-replit .groupview .tabs-and-actions-container .tab:hover {\n background-color: #e4e5e6 !important;\n}\n.dockview-theme-replit .groupview .content-container {\n background-color: #fcfcfc;\n}\n.dockview-theme-replit .groupview.active-group {\n border: 1px solid rgba(128, 128, 128, 0.35);\n}\n.dockview-theme-replit .groupview.inactive-group {\n border: 1px solid transparent;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash::after {\n content: \"\";\n height: 4px;\n width: 40px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .vertical > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash::after {\n content: \"\";\n height: 40px;\n width: 4px;\n border-radius: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--dv-separator-handle-background-color);\n position: absolute;\n}\n.dockview-theme-replit .horizontal > .sash-container > .sash:hover::after {\n background-color: var(--dv-separator-handle-hover-background-color);\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-debug .dv-resize-container .dv-resize-handle-top {\n background-color: red;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-bottom {\n background-color: green;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-left {\n background-color: yellow;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-right {\n background-color: blue;\n}\n.dv-debug .dv-resize-container .dv-resize-handle-topleft,\n.dv-debug .dv-resize-container .dv-resize-handle-topright,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,\n.dv-debug .dv-resize-container .dv-resize-handle-bottomright {\n background-color: cyan;\n}\n\n.dv-resize-container {\n position: absolute;\n z-index: 997;\n border: 1px solid var(--dv-tab-divider-color);\n box-shadow: var(--dv-floating-box-shadow);\n}\n.dv-resize-container.dv-bring-to-front {\n z-index: 998;\n}\n.dv-resize-container.dv-resize-container-dragging {\n opacity: 0.5;\n}\n.dv-resize-container .dv-resize-handle-top {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-bottom {\n height: 4px;\n width: calc(100% - 8px);\n left: 4px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: ns-resize;\n}\n.dv-resize-container .dv-resize-handle-left {\n height: calc(100% - 8px);\n width: 4px;\n left: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-right {\n height: calc(100% - 8px);\n width: 4px;\n right: -2px;\n top: 4px;\n z-index: 999;\n position: absolute;\n cursor: ew-resize;\n}\n.dv-resize-container .dv-resize-handle-topleft {\n height: 4px;\n width: 4px;\n top: -2px;\n left: -2px;\n z-index: 999;\n position: absolute;\n cursor: nw-resize;\n}\n.dv-resize-container .dv-resize-handle-topright {\n height: 4px;\n width: 4px;\n right: -2px;\n top: -2px;\n z-index: 999;\n position: absolute;\n cursor: ne-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomleft {\n height: 4px;\n width: 4px;\n left: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: sw-resize;\n}\n.dv-resize-container .dv-resize-handle-bottomright {\n height: 4px;\n width: 4px;\n right: -2px;\n bottom: -2px;\n z-index: 999;\n position: absolute;\n cursor: se-resize;\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n z-index: 1;\n}\n.dv-dockview .dv-overlay-render-container {\n position: relative;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:last-child) {\n border-right: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.horizontal > .view-container > .view:not(:first-child) {\n border-left: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:last-child) {\n border-bottom: var(--dv-group-gap-size) solid transparent;\n}\n.dv-dockview .split-view-container.vertical > .view-container > .view:not(:first-child) {\n border-top: var(--dv-group-gap-size) solid transparent;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n min-height: 0;\n outline: none;\n}\n.dv-root-wrapper {\n height: 100%;\n width: 100%;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.dv-debug .split-view-container .sash-container .sash.enabled {\n background-color: black;\n}\n.dv-debug .split-view-container .sash-container .sash.disabled {\n background-color: orange;\n}\n.dv-debug .split-view-container .sash-container .sash.maximum {\n background-color: green;\n}\n.dv-debug .split-view-container .sash-container .sash.minimum {\n background-color: red;\n}\n\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.dv-splitview-disabled > .sash-container > .sash {\n pointer-events: none;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:not(.disabled):active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:not(.disabled):hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab:focus-within, .tab:focus {\n position: relative;\n}\n.tab:focus-within::after, .tab:focus::after {\n position: absolute;\n content: \"\";\n height: 100%;\n width: 100%;\n top: 0px;\n left: 0px;\n pointer-events: none;\n outline: 1px solid var(--dv-tab-divider-color) !important;\n outline-offset: -1px;\n z-index: 5;\n}\n.tab.dv-tab-dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
|
|
41
41
|
styleInject(css_248z);
|
|
42
42
|
|
|
43
43
|
class TransferObject {
|
|
@@ -122,6 +122,17 @@
|
|
|
122
122
|
};
|
|
123
123
|
};
|
|
124
124
|
})(exports.DockviewEvent || (exports.DockviewEvent = {}));
|
|
125
|
+
class DockviewEvent {
|
|
126
|
+
constructor() {
|
|
127
|
+
this._defaultPrevented = false;
|
|
128
|
+
}
|
|
129
|
+
get defaultPrevented() {
|
|
130
|
+
return this._defaultPrevented;
|
|
131
|
+
}
|
|
132
|
+
preventDefault() {
|
|
133
|
+
this._defaultPrevented = true;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
125
136
|
class LeakageMonitor {
|
|
126
137
|
constructor() {
|
|
127
138
|
this.events = new Map();
|
|
@@ -165,6 +176,9 @@
|
|
|
165
176
|
}
|
|
166
177
|
Emitter.ENABLE_TRACKING = isEnabled;
|
|
167
178
|
}
|
|
179
|
+
get value() {
|
|
180
|
+
return this._last;
|
|
181
|
+
}
|
|
168
182
|
constructor(options) {
|
|
169
183
|
this.options = options;
|
|
170
184
|
this._listeners = [];
|
|
@@ -287,8 +301,12 @@
|
|
|
287
301
|
args.forEach((arg) => this._disposables.push(arg));
|
|
288
302
|
}
|
|
289
303
|
dispose() {
|
|
290
|
-
this.
|
|
304
|
+
if (this._isDisposed) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
291
307
|
this._isDisposed = true;
|
|
308
|
+
this._disposables.forEach((arg) => arg.dispose());
|
|
309
|
+
this._disposables = [];
|
|
292
310
|
}
|
|
293
311
|
}
|
|
294
312
|
class MutableDisposable {
|
|
@@ -772,6 +790,13 @@
|
|
|
772
790
|
this._endSnappingEnabled = endSnappingEnabled;
|
|
773
791
|
this.updateSashEnablement();
|
|
774
792
|
}
|
|
793
|
+
get disabled() {
|
|
794
|
+
return this._disabled;
|
|
795
|
+
}
|
|
796
|
+
set disabled(value) {
|
|
797
|
+
this._disabled = value;
|
|
798
|
+
toggleClass(this.element, 'dv-splitview-disabled', value);
|
|
799
|
+
}
|
|
775
800
|
constructor(container, options) {
|
|
776
801
|
this.container = container;
|
|
777
802
|
this.viewItems = [];
|
|
@@ -782,6 +807,7 @@
|
|
|
782
807
|
this._proportions = undefined;
|
|
783
808
|
this._startSnappingEnabled = true;
|
|
784
809
|
this._endSnappingEnabled = true;
|
|
810
|
+
this._disabled = false;
|
|
785
811
|
this._onDidSashEnd = new Emitter();
|
|
786
812
|
this.onDidSashEnd = this._onDidSashEnd.event;
|
|
787
813
|
this._onDidAddView = new Emitter();
|
|
@@ -1456,6 +1482,9 @@
|
|
|
1456
1482
|
this._onDidChange.fire();
|
|
1457
1483
|
}));
|
|
1458
1484
|
}
|
|
1485
|
+
setViewVisible(index, visible) {
|
|
1486
|
+
this.splitview.setViewVisible(index, visible);
|
|
1487
|
+
}
|
|
1459
1488
|
addPane(pane, size, index = this.splitview.length, skipLayout = false) {
|
|
1460
1489
|
const disposable = pane.onDidChangeExpansionState(() => {
|
|
1461
1490
|
this.setupAnimation();
|
|
@@ -1709,7 +1738,13 @@
|
|
|
1709
1738
|
}
|
|
1710
1739
|
return exports.LayoutPriority.Normal;
|
|
1711
1740
|
}
|
|
1712
|
-
|
|
1741
|
+
get disabled() {
|
|
1742
|
+
return this.splitview.disabled;
|
|
1743
|
+
}
|
|
1744
|
+
set disabled(value) {
|
|
1745
|
+
this.splitview.disabled = value;
|
|
1746
|
+
}
|
|
1747
|
+
constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {
|
|
1713
1748
|
super();
|
|
1714
1749
|
this.orientation = orientation;
|
|
1715
1750
|
this.proportionalLayout = proportionalLayout;
|
|
@@ -1754,6 +1789,7 @@
|
|
|
1754
1789
|
styles,
|
|
1755
1790
|
});
|
|
1756
1791
|
}
|
|
1792
|
+
this.disabled = disabled;
|
|
1757
1793
|
this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {
|
|
1758
1794
|
this._onDidChange.fire({});
|
|
1759
1795
|
}));
|
|
@@ -1887,7 +1923,7 @@
|
|
|
1887
1923
|
}
|
|
1888
1924
|
function flipNode(node, size, orthogonalSize) {
|
|
1889
1925
|
if (node instanceof BranchNode) {
|
|
1890
|
-
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);
|
|
1926
|
+
const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);
|
|
1891
1927
|
let totalSize = 0;
|
|
1892
1928
|
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
1893
1929
|
const child = node.children[i];
|
|
@@ -2023,31 +2059,57 @@
|
|
|
2023
2059
|
get maximumHeight() {
|
|
2024
2060
|
return this.root.maximumHeight;
|
|
2025
2061
|
}
|
|
2062
|
+
get locked() {
|
|
2063
|
+
return this._locked;
|
|
2064
|
+
}
|
|
2065
|
+
set locked(value) {
|
|
2066
|
+
this._locked = value;
|
|
2067
|
+
const branch = [this.root];
|
|
2068
|
+
/**
|
|
2069
|
+
* simple depth-first-search to cover all nodes
|
|
2070
|
+
*
|
|
2071
|
+
* @see https://en.wikipedia.org/wiki/Depth-first_search
|
|
2072
|
+
*/
|
|
2073
|
+
while (branch.length > 0) {
|
|
2074
|
+
const node = branch.pop();
|
|
2075
|
+
if (node instanceof BranchNode) {
|
|
2076
|
+
node.disabled = value;
|
|
2077
|
+
branch.push(...node.children);
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2026
2081
|
maximizedView() {
|
|
2027
2082
|
var _a;
|
|
2028
|
-
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.view;
|
|
2083
|
+
return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;
|
|
2029
2084
|
}
|
|
2030
2085
|
hasMaximizedView() {
|
|
2031
2086
|
return this._maximizedNode !== undefined;
|
|
2032
2087
|
}
|
|
2033
2088
|
maximizeView(view) {
|
|
2089
|
+
var _a;
|
|
2034
2090
|
const location = getGridLocation(view.element);
|
|
2035
2091
|
const [_, node] = this.getNode(location);
|
|
2036
2092
|
if (!(node instanceof LeafNode)) {
|
|
2037
2093
|
return;
|
|
2038
2094
|
}
|
|
2039
|
-
if (this._maximizedNode === node) {
|
|
2095
|
+
if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {
|
|
2040
2096
|
return;
|
|
2041
2097
|
}
|
|
2042
2098
|
if (this.hasMaximizedView()) {
|
|
2043
2099
|
this.exitMaximizedView();
|
|
2044
2100
|
}
|
|
2101
|
+
const hiddenOnMaximize = [];
|
|
2045
2102
|
function hideAllViewsBut(parent, exclude) {
|
|
2046
2103
|
for (let i = 0; i < parent.children.length; i++) {
|
|
2047
2104
|
const child = parent.children[i];
|
|
2048
2105
|
if (child instanceof LeafNode) {
|
|
2049
2106
|
if (child !== exclude) {
|
|
2050
|
-
parent.
|
|
2107
|
+
if (parent.isChildVisible(i)) {
|
|
2108
|
+
parent.setChildVisible(i, false);
|
|
2109
|
+
}
|
|
2110
|
+
else {
|
|
2111
|
+
hiddenOnMaximize.push(child);
|
|
2112
|
+
}
|
|
2051
2113
|
}
|
|
2052
2114
|
}
|
|
2053
2115
|
else {
|
|
@@ -2056,18 +2118,21 @@
|
|
|
2056
2118
|
}
|
|
2057
2119
|
}
|
|
2058
2120
|
hideAllViewsBut(this.root, node);
|
|
2059
|
-
this._maximizedNode = node;
|
|
2060
|
-
this.
|
|
2121
|
+
this._maximizedNode = { leaf: node, hiddenOnMaximize };
|
|
2122
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2061
2123
|
}
|
|
2062
2124
|
exitMaximizedView() {
|
|
2063
2125
|
if (!this._maximizedNode) {
|
|
2064
2126
|
return;
|
|
2065
2127
|
}
|
|
2128
|
+
const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;
|
|
2066
2129
|
function showViewsInReverseOrder(parent) {
|
|
2067
2130
|
for (let index = parent.children.length - 1; index >= 0; index--) {
|
|
2068
2131
|
const child = parent.children[index];
|
|
2069
2132
|
if (child instanceof LeafNode) {
|
|
2070
|
-
|
|
2133
|
+
if (!hiddenOnMaximize.includes(child)) {
|
|
2134
|
+
parent.setChildVisible(index, true);
|
|
2135
|
+
}
|
|
2071
2136
|
}
|
|
2072
2137
|
else {
|
|
2073
2138
|
showViewsInReverseOrder(child);
|
|
@@ -2076,13 +2141,13 @@
|
|
|
2076
2141
|
}
|
|
2077
2142
|
showViewsInReverseOrder(this.root);
|
|
2078
2143
|
this._maximizedNode = undefined;
|
|
2079
|
-
this.
|
|
2144
|
+
this._onDidMaximizedNodeChange.fire();
|
|
2080
2145
|
}
|
|
2081
2146
|
serialize() {
|
|
2082
2147
|
if (this.hasMaximizedView()) {
|
|
2083
2148
|
/**
|
|
2084
|
-
* do not persist maximized view state
|
|
2085
|
-
*
|
|
2149
|
+
* do not persist maximized view state
|
|
2150
|
+
* firstly exit any maximized views to ensure the correct dimensions are persisted
|
|
2086
2151
|
*/
|
|
2087
2152
|
this.exitMaximizedView();
|
|
2088
2153
|
}
|
|
@@ -2097,14 +2162,14 @@
|
|
|
2097
2162
|
dispose() {
|
|
2098
2163
|
this.disposable.dispose();
|
|
2099
2164
|
this._onDidChange.dispose();
|
|
2100
|
-
this.
|
|
2165
|
+
this._onDidMaximizedNodeChange.dispose();
|
|
2101
2166
|
this.root.dispose();
|
|
2102
2167
|
this._maximizedNode = undefined;
|
|
2103
2168
|
this.element.remove();
|
|
2104
2169
|
}
|
|
2105
2170
|
clear() {
|
|
2106
2171
|
const orientation = this.root.orientation;
|
|
2107
|
-
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);
|
|
2172
|
+
this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);
|
|
2108
2173
|
}
|
|
2109
2174
|
deserialize(json, deserializer) {
|
|
2110
2175
|
const orientation = json.orientation;
|
|
@@ -2125,8 +2190,8 @@
|
|
|
2125
2190
|
};
|
|
2126
2191
|
});
|
|
2127
2192
|
result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth
|
|
2128
|
-
orthogonalSize, // <- size - flips at each depth
|
|
2129
|
-
children);
|
|
2193
|
+
orthogonalSize, // <- size - flips at each depth,
|
|
2194
|
+
this._locked, children);
|
|
2130
2195
|
}
|
|
2131
2196
|
else {
|
|
2132
2197
|
result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);
|
|
@@ -2159,7 +2224,7 @@
|
|
|
2159
2224
|
}
|
|
2160
2225
|
const oldRoot = this.root;
|
|
2161
2226
|
oldRoot.element.remove();
|
|
2162
|
-
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);
|
|
2227
|
+
this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);
|
|
2163
2228
|
if (oldRoot.children.length === 0) ;
|
|
2164
2229
|
else if (oldRoot.children.length === 1) {
|
|
2165
2230
|
// can remove one level of redundant branching if there is only a single child
|
|
@@ -2227,15 +2292,16 @@
|
|
|
2227
2292
|
constructor(proportionalLayout, styles, orientation) {
|
|
2228
2293
|
this.proportionalLayout = proportionalLayout;
|
|
2229
2294
|
this.styles = styles;
|
|
2295
|
+
this._locked = false;
|
|
2230
2296
|
this._maximizedNode = undefined;
|
|
2231
2297
|
this.disposable = new MutableDisposable();
|
|
2232
2298
|
this._onDidChange = new Emitter();
|
|
2233
2299
|
this.onDidChange = this._onDidChange.event;
|
|
2234
|
-
this.
|
|
2235
|
-
this.
|
|
2300
|
+
this._onDidMaximizedNodeChange = new Emitter();
|
|
2301
|
+
this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
|
|
2236
2302
|
this.element = document.createElement('div');
|
|
2237
2303
|
this.element.className = 'grid-view';
|
|
2238
|
-
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);
|
|
2304
|
+
this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);
|
|
2239
2305
|
}
|
|
2240
2306
|
isViewVisible(location) {
|
|
2241
2307
|
const [rest, index] = tail(location);
|
|
@@ -2286,7 +2352,7 @@
|
|
|
2286
2352
|
}
|
|
2287
2353
|
const child = grandParent.removeChild(parentIndex);
|
|
2288
2354
|
child.dispose();
|
|
2289
|
-
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);
|
|
2355
|
+
const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);
|
|
2290
2356
|
grandParent.addChild(newParent, parent.size, parentIndex);
|
|
2291
2357
|
const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);
|
|
2292
2358
|
newParent.addChild(newSibling, newSiblingSize, 0);
|
|
@@ -2914,13 +2980,36 @@
|
|
|
2914
2980
|
return this.component.onDidDrop;
|
|
2915
2981
|
}
|
|
2916
2982
|
/**
|
|
2917
|
-
* Invoked
|
|
2983
|
+
* Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and
|
|
2984
|
+
* prevent the event from occuring using the standard `preventDefault()` syntax.
|
|
2985
|
+
*
|
|
2986
|
+
* Preventing certain events may causes unexpected behaviours, use carefully.
|
|
2987
|
+
*/
|
|
2988
|
+
get onWillDrop() {
|
|
2989
|
+
return this.component.onWillDrop;
|
|
2990
|
+
}
|
|
2991
|
+
/**
|
|
2992
|
+
* Invoked before an overlay is shown indicating a drop target.
|
|
2993
|
+
*
|
|
2994
|
+
* Calling `event.preventDefault()` will prevent the overlay being shown and prevent
|
|
2995
|
+
* the any subsequent drop event.
|
|
2996
|
+
*/
|
|
2997
|
+
get onWillShowOverlay() {
|
|
2998
|
+
return this.component.onWillShowOverlay;
|
|
2999
|
+
}
|
|
3000
|
+
/**
|
|
3001
|
+
* Invoked before a group is dragged.
|
|
3002
|
+
*
|
|
3003
|
+
* Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.
|
|
3004
|
+
*
|
|
2918
3005
|
*/
|
|
2919
3006
|
get onWillDragGroup() {
|
|
2920
3007
|
return this.component.onWillDragGroup;
|
|
2921
3008
|
}
|
|
2922
3009
|
/**
|
|
2923
|
-
* Invoked before a panel is dragged.
|
|
3010
|
+
* Invoked before a panel is dragged.
|
|
3011
|
+
*
|
|
3012
|
+
* Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.
|
|
2924
3013
|
*/
|
|
2925
3014
|
get onWillDragPanel() {
|
|
2926
3015
|
return this.component.onWillDragPanel;
|
|
@@ -3048,17 +3137,17 @@
|
|
|
3048
3137
|
hasMaximizedGroup() {
|
|
3049
3138
|
return this.component.hasMaximizedGroup();
|
|
3050
3139
|
}
|
|
3051
|
-
|
|
3140
|
+
exitMaximizedGroup() {
|
|
3052
3141
|
this.component.exitMaximizedGroup();
|
|
3053
3142
|
}
|
|
3054
|
-
get
|
|
3055
|
-
return this.component.
|
|
3143
|
+
get onDidMaximizedGroupChange() {
|
|
3144
|
+
return this.component.onDidMaximizedGroupChange;
|
|
3056
3145
|
}
|
|
3057
3146
|
/**
|
|
3058
3147
|
* Add a popout group in a new Window
|
|
3059
3148
|
*/
|
|
3060
3149
|
addPopoutGroup(item, options) {
|
|
3061
|
-
this.component.addPopoutGroup(item, options);
|
|
3150
|
+
return this.component.addPopoutGroup(item, options);
|
|
3062
3151
|
}
|
|
3063
3152
|
}
|
|
3064
3153
|
|
|
@@ -3112,6 +3201,18 @@
|
|
|
3112
3201
|
}
|
|
3113
3202
|
}
|
|
3114
3203
|
|
|
3204
|
+
class WillShowOverlayEvent extends DockviewEvent {
|
|
3205
|
+
get nativeEvent() {
|
|
3206
|
+
return this.options.nativeEvent;
|
|
3207
|
+
}
|
|
3208
|
+
get position() {
|
|
3209
|
+
return this.options.position;
|
|
3210
|
+
}
|
|
3211
|
+
constructor(options) {
|
|
3212
|
+
super();
|
|
3213
|
+
this.options = options;
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3115
3216
|
function directionToPosition(direction) {
|
|
3116
3217
|
switch (direction) {
|
|
3117
3218
|
case 'above':
|
|
@@ -3164,6 +3265,8 @@
|
|
|
3164
3265
|
this.options = options;
|
|
3165
3266
|
this._onDrop = new Emitter();
|
|
3166
3267
|
this.onDrop = this._onDrop.event;
|
|
3268
|
+
this._onWillShowOverlay = new Emitter();
|
|
3269
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3167
3270
|
// use a set to take advantage of #<set>.has
|
|
3168
3271
|
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
3169
3272
|
this.dnd = new DragAndDropObserver(this.element, {
|
|
@@ -3192,6 +3295,19 @@
|
|
|
3192
3295
|
this.removeDropTarget();
|
|
3193
3296
|
return;
|
|
3194
3297
|
}
|
|
3298
|
+
const willShowOverlayEvent = new WillShowOverlayEvent({
|
|
3299
|
+
nativeEvent: e,
|
|
3300
|
+
position: quadrant,
|
|
3301
|
+
});
|
|
3302
|
+
/**
|
|
3303
|
+
* Provide an opportunity to prevent the overlay appearing and in turn
|
|
3304
|
+
* any dnd behaviours
|
|
3305
|
+
*/
|
|
3306
|
+
this._onWillShowOverlay.fire(willShowOverlayEvent);
|
|
3307
|
+
if (willShowOverlayEvent.defaultPrevented) {
|
|
3308
|
+
this.removeDropTarget();
|
|
3309
|
+
return;
|
|
3310
|
+
}
|
|
3195
3311
|
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
3196
3312
|
if (!this.options.canDisplayOverlay) {
|
|
3197
3313
|
this.removeDropTarget();
|
|
@@ -3234,7 +3350,7 @@
|
|
|
3234
3350
|
}
|
|
3235
3351
|
},
|
|
3236
3352
|
});
|
|
3237
|
-
this.addDisposables(this._onDrop, this.dnd);
|
|
3353
|
+
this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);
|
|
3238
3354
|
}
|
|
3239
3355
|
setTargetZones(acceptedTargetZones) {
|
|
3240
3356
|
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
@@ -3287,25 +3403,44 @@
|
|
|
3287
3403
|
size = clamp(0, sizeOptions.value, height) / height;
|
|
3288
3404
|
}
|
|
3289
3405
|
}
|
|
3290
|
-
const
|
|
3291
|
-
|
|
3292
|
-
|
|
3406
|
+
const box = { top: '0px', left: '0px', width: '100%', height: '100%' };
|
|
3407
|
+
/**
|
|
3408
|
+
* You can also achieve the overlay placement using the transform CSS property
|
|
3409
|
+
* to translate and scale the element however this has the undesired effect of
|
|
3410
|
+
* 'skewing' the element. Comment left here for anybody that ever revisits this.
|
|
3411
|
+
*
|
|
3412
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform
|
|
3413
|
+
*
|
|
3414
|
+
* right
|
|
3415
|
+
* translateX(${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3416
|
+
*
|
|
3417
|
+
* left
|
|
3418
|
+
* translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})
|
|
3419
|
+
*
|
|
3420
|
+
* top
|
|
3421
|
+
* translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3422
|
+
*
|
|
3423
|
+
* bottom
|
|
3424
|
+
* translateY(${100 * (1 - size) / 2}%) scaleY(${scale})
|
|
3425
|
+
*/
|
|
3293
3426
|
if (rightClass) {
|
|
3294
|
-
|
|
3427
|
+
box.left = `${100 * (1 - size)}%`;
|
|
3428
|
+
box.width = `${100 * size}%`;
|
|
3295
3429
|
}
|
|
3296
3430
|
else if (leftClass) {
|
|
3297
|
-
|
|
3431
|
+
box.width = `${100 * size}%`;
|
|
3298
3432
|
}
|
|
3299
3433
|
else if (topClass) {
|
|
3300
|
-
|
|
3434
|
+
box.height = `${100 * size}%`;
|
|
3301
3435
|
}
|
|
3302
3436
|
else if (bottomClass) {
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
else {
|
|
3306
|
-
transform = '';
|
|
3437
|
+
box.top = `${100 * (1 - size)}%`;
|
|
3438
|
+
box.height = `${100 * size}%`;
|
|
3307
3439
|
}
|
|
3308
|
-
this.overlayElement.style.
|
|
3440
|
+
this.overlayElement.style.top = box.top;
|
|
3441
|
+
this.overlayElement.style.left = box.left;
|
|
3442
|
+
this.overlayElement.style.width = box.width;
|
|
3443
|
+
this.overlayElement.style.height = box.height;
|
|
3309
3444
|
toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);
|
|
3310
3445
|
toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);
|
|
3311
3446
|
toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);
|
|
@@ -3373,14 +3508,6 @@
|
|
|
3373
3508
|
return 'center';
|
|
3374
3509
|
}
|
|
3375
3510
|
|
|
3376
|
-
exports.DockviewDropTargets = void 0;
|
|
3377
|
-
(function (DockviewDropTargets) {
|
|
3378
|
-
DockviewDropTargets[DockviewDropTargets["Tab"] = 0] = "Tab";
|
|
3379
|
-
DockviewDropTargets[DockviewDropTargets["Panel"] = 1] = "Panel";
|
|
3380
|
-
DockviewDropTargets[DockviewDropTargets["TabContainer"] = 2] = "TabContainer";
|
|
3381
|
-
DockviewDropTargets[DockviewDropTargets["Edge"] = 3] = "Edge";
|
|
3382
|
-
})(exports.DockviewDropTargets || (exports.DockviewDropTargets = {}));
|
|
3383
|
-
|
|
3384
3511
|
class ContentContainer extends CompositeDisposable {
|
|
3385
3512
|
get element() {
|
|
3386
3513
|
return this._element;
|
|
@@ -3408,7 +3535,7 @@
|
|
|
3408
3535
|
const data = getPanelData();
|
|
3409
3536
|
if (!data &&
|
|
3410
3537
|
event.shiftKey &&
|
|
3411
|
-
this.group.location !== 'floating') {
|
|
3538
|
+
this.group.location.type !== 'floating') {
|
|
3412
3539
|
return false;
|
|
3413
3540
|
}
|
|
3414
3541
|
if (data && data.viewId === this.accessor.id) {
|
|
@@ -3426,7 +3553,7 @@
|
|
|
3426
3553
|
data.groupId === this.group.id;
|
|
3427
3554
|
return !groupHasOnePanelAndIsActiveDragElement;
|
|
3428
3555
|
}
|
|
3429
|
-
return this.group.canDisplayOverlay(event, position,
|
|
3556
|
+
return this.group.canDisplayOverlay(event, position, 'content');
|
|
3430
3557
|
},
|
|
3431
3558
|
});
|
|
3432
3559
|
this.addDisposables(this.dropTarget);
|
|
@@ -3451,7 +3578,7 @@
|
|
|
3451
3578
|
let container;
|
|
3452
3579
|
switch (panel.api.renderer) {
|
|
3453
3580
|
case 'onlyWhenVisibile':
|
|
3454
|
-
this.
|
|
3581
|
+
this.group.renderContainer.detatch(panel);
|
|
3455
3582
|
if (this.panel) {
|
|
3456
3583
|
if (doRender) {
|
|
3457
3584
|
this._element.appendChild(this.panel.view.content.element);
|
|
@@ -3463,7 +3590,7 @@
|
|
|
3463
3590
|
if (panel.view.content.element.parentElement === this._element) {
|
|
3464
3591
|
this._element.removeChild(panel.view.content.element);
|
|
3465
3592
|
}
|
|
3466
|
-
container = this.
|
|
3593
|
+
container = this.group.renderContainer.attach({
|
|
3467
3594
|
panel,
|
|
3468
3595
|
referenceContainer: this,
|
|
3469
3596
|
});
|
|
@@ -3494,9 +3621,10 @@
|
|
|
3494
3621
|
// noop
|
|
3495
3622
|
}
|
|
3496
3623
|
closePanel() {
|
|
3624
|
+
var _a;
|
|
3497
3625
|
if (this.panel) {
|
|
3498
3626
|
if (this.panel.api.renderer === 'onlyWhenVisibile') {
|
|
3499
|
-
this.
|
|
3627
|
+
(_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
|
|
3500
3628
|
}
|
|
3501
3629
|
}
|
|
3502
3630
|
this.panel = undefined;
|
|
@@ -3607,7 +3735,7 @@
|
|
|
3607
3735
|
this._element.draggable = true;
|
|
3608
3736
|
toggleClass(this.element, 'inactive-tab', true);
|
|
3609
3737
|
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
3610
|
-
this.
|
|
3738
|
+
this.dropTarget = new Droptarget(this._element, {
|
|
3611
3739
|
acceptedTargetZones: ['center'],
|
|
3612
3740
|
canDisplayOverlay: (event, position) => {
|
|
3613
3741
|
if (this.group.locked) {
|
|
@@ -3622,9 +3750,10 @@
|
|
|
3622
3750
|
}
|
|
3623
3751
|
return this.panel.id !== data.panelId;
|
|
3624
3752
|
}
|
|
3625
|
-
return this.group.model.canDisplayOverlay(event, position,
|
|
3753
|
+
return this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
3626
3754
|
},
|
|
3627
3755
|
});
|
|
3756
|
+
this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
|
|
3628
3757
|
this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
3629
3758
|
this._onDragStart.fire(event);
|
|
3630
3759
|
}), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {
|
|
@@ -3632,9 +3761,9 @@
|
|
|
3632
3761
|
return;
|
|
3633
3762
|
}
|
|
3634
3763
|
this._onChanged.fire(event);
|
|
3635
|
-
}), this.
|
|
3764
|
+
}), this.dropTarget.onDrop((event) => {
|
|
3636
3765
|
this._onDropped.fire(event);
|
|
3637
|
-
}), this.
|
|
3766
|
+
}), this.dropTarget);
|
|
3638
3767
|
}
|
|
3639
3768
|
setActive(isActive) {
|
|
3640
3769
|
toggleClass(this.element, 'active-tab', isActive);
|
|
@@ -3681,7 +3810,7 @@
|
|
|
3681
3810
|
}, true));
|
|
3682
3811
|
}
|
|
3683
3812
|
isCancelled(_event) {
|
|
3684
|
-
if (this.group.api.location === 'floating' && !_event.shiftKey) {
|
|
3813
|
+
if (this.group.api.location.type === 'floating' && !_event.shiftKey) {
|
|
3685
3814
|
return true;
|
|
3686
3815
|
}
|
|
3687
3816
|
return false;
|
|
@@ -3733,7 +3862,7 @@
|
|
|
3733
3862
|
this.accessor.doSetGroupActive(this.group);
|
|
3734
3863
|
}));
|
|
3735
3864
|
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
3736
|
-
this.
|
|
3865
|
+
this.dropTraget = new Droptarget(this._element, {
|
|
3737
3866
|
acceptedTargetZones: ['center'],
|
|
3738
3867
|
canDisplayOverlay: (event, position) => {
|
|
3739
3868
|
var _a;
|
|
@@ -3747,14 +3876,15 @@
|
|
|
3747
3876
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
|
3748
3877
|
return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
|
|
3749
3878
|
}
|
|
3750
|
-
return group.model.canDisplayOverlay(event, position,
|
|
3879
|
+
return group.model.canDisplayOverlay(event, position, 'header_space');
|
|
3751
3880
|
},
|
|
3752
3881
|
});
|
|
3882
|
+
this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
|
|
3753
3883
|
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
3754
3884
|
this._onDragStart.fire(event);
|
|
3755
|
-
}), this.
|
|
3885
|
+
}), this.dropTraget.onDrop((event) => {
|
|
3756
3886
|
this._onDrop.fire(event);
|
|
3757
|
-
}), this.
|
|
3887
|
+
}), this.dropTraget);
|
|
3758
3888
|
}
|
|
3759
3889
|
}
|
|
3760
3890
|
|
|
@@ -3842,19 +3972,11 @@
|
|
|
3842
3972
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
3843
3973
|
this._onGroupDragStart = new Emitter();
|
|
3844
3974
|
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3845
|
-
this.
|
|
3975
|
+
this._onWillShowOverlay = new Emitter();
|
|
3976
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
3846
3977
|
this._element = document.createElement('div');
|
|
3847
3978
|
this._element.className = 'tabs-and-actions-container';
|
|
3848
3979
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
3849
|
-
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3850
|
-
if (e.api.group === this.group) {
|
|
3851
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3852
|
-
}
|
|
3853
|
-
}), this.accessor.onDidRemovePanel((e) => {
|
|
3854
|
-
if (e.api.group === this.group) {
|
|
3855
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3856
|
-
}
|
|
3857
|
-
}));
|
|
3858
3980
|
this.rightActionsContainer = document.createElement('div');
|
|
3859
3981
|
this.rightActionsContainer.className = 'right-actions-container';
|
|
3860
3982
|
this.leftActionsContainer = document.createElement('div');
|
|
@@ -3869,7 +3991,15 @@
|
|
|
3869
3991
|
this._element.appendChild(this.leftActionsContainer);
|
|
3870
3992
|
this._element.appendChild(this.voidContainer.element);
|
|
3871
3993
|
this._element.appendChild(this.rightActionsContainer);
|
|
3872
|
-
this.addDisposables(this.
|
|
3994
|
+
this.addDisposables(this.accessor.onDidAddPanel((e) => {
|
|
3995
|
+
if (e.api.group === this.group) {
|
|
3996
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
3997
|
+
}
|
|
3998
|
+
}), this.accessor.onDidRemovePanel((e) => {
|
|
3999
|
+
if (e.api.group === this.group) {
|
|
4000
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
4001
|
+
}
|
|
4002
|
+
}), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
3873
4003
|
this._onGroupDragStart.fire({
|
|
3874
4004
|
nativeEvent: event,
|
|
3875
4005
|
group: this.group,
|
|
@@ -3879,11 +4009,15 @@
|
|
|
3879
4009
|
event: event.nativeEvent,
|
|
3880
4010
|
index: this.tabs.length,
|
|
3881
4011
|
});
|
|
4012
|
+
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
4013
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4014
|
+
kind: 'header_space',
|
|
4015
|
+
}));
|
|
3882
4016
|
}), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
|
|
3883
4017
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3884
4018
|
if (isFloatingGroupsEnabled &&
|
|
3885
4019
|
event.shiftKey &&
|
|
3886
|
-
this.group.api.location !== 'floating') {
|
|
4020
|
+
this.group.api.location.type !== 'floating') {
|
|
3887
4021
|
event.preventDefault();
|
|
3888
4022
|
const { top, left } = this.element.getBoundingClientRect();
|
|
3889
4023
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
@@ -3946,9 +4080,9 @@
|
|
|
3946
4080
|
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
3947
4081
|
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
3948
4082
|
}), tab.onChanged((event) => {
|
|
3949
|
-
var _a;
|
|
3950
4083
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3951
|
-
const isFloatingWithOnePanel = this.group.api.location === 'floating' &&
|
|
4084
|
+
const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&
|
|
4085
|
+
this.size === 1;
|
|
3952
4086
|
if (isFloatingGroupsEnabled &&
|
|
3953
4087
|
!isFloatingWithOnePanel &&
|
|
3954
4088
|
event.shiftKey) {
|
|
@@ -3962,20 +4096,20 @@
|
|
|
3962
4096
|
}, { inDragMode: true });
|
|
3963
4097
|
return;
|
|
3964
4098
|
}
|
|
3965
|
-
const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
3966
|
-
this.group.model.isContentFocused;
|
|
3967
4099
|
const isLeftClick = event.button === 0;
|
|
3968
4100
|
if (!isLeftClick || event.defaultPrevented) {
|
|
3969
4101
|
return;
|
|
3970
4102
|
}
|
|
3971
|
-
this.group.
|
|
3972
|
-
|
|
3973
|
-
}
|
|
4103
|
+
if (this.group.activePanel !== panel) {
|
|
4104
|
+
this.group.model.openPanel(panel);
|
|
4105
|
+
}
|
|
3974
4106
|
}), tab.onDrop((event) => {
|
|
3975
4107
|
this._onDrop.fire({
|
|
3976
4108
|
event: event.nativeEvent,
|
|
3977
4109
|
index: this.tabs.findIndex((x) => x.value === tab),
|
|
3978
4110
|
});
|
|
4111
|
+
}), tab.onWillShowOverlay((event) => {
|
|
4112
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
|
|
3979
4113
|
}));
|
|
3980
4114
|
const value = { value: tab, disposable };
|
|
3981
4115
|
this.addTab(value, index);
|
|
@@ -3993,6 +4127,60 @@
|
|
|
3993
4127
|
}
|
|
3994
4128
|
}
|
|
3995
4129
|
|
|
4130
|
+
class DockviewDidDropEvent extends DockviewEvent {
|
|
4131
|
+
get nativeEvent() {
|
|
4132
|
+
return this.options.nativeEvent;
|
|
4133
|
+
}
|
|
4134
|
+
get position() {
|
|
4135
|
+
return this.options.position;
|
|
4136
|
+
}
|
|
4137
|
+
get panel() {
|
|
4138
|
+
return this.options.panel;
|
|
4139
|
+
}
|
|
4140
|
+
get group() {
|
|
4141
|
+
return this.options.group;
|
|
4142
|
+
}
|
|
4143
|
+
get api() {
|
|
4144
|
+
return this.options.api;
|
|
4145
|
+
}
|
|
4146
|
+
constructor(options) {
|
|
4147
|
+
super();
|
|
4148
|
+
this.options = options;
|
|
4149
|
+
}
|
|
4150
|
+
getData() {
|
|
4151
|
+
return this.options.getData();
|
|
4152
|
+
}
|
|
4153
|
+
}
|
|
4154
|
+
class DockviewWillDropEvent extends DockviewDidDropEvent {
|
|
4155
|
+
get kind() {
|
|
4156
|
+
return this._kind;
|
|
4157
|
+
}
|
|
4158
|
+
constructor(options) {
|
|
4159
|
+
super(options);
|
|
4160
|
+
this._kind = options.kind;
|
|
4161
|
+
}
|
|
4162
|
+
}
|
|
4163
|
+
class WillShowOverlayLocationEvent {
|
|
4164
|
+
get kind() {
|
|
4165
|
+
return this._kind;
|
|
4166
|
+
}
|
|
4167
|
+
get nativeEvent() {
|
|
4168
|
+
return this.event.nativeEvent;
|
|
4169
|
+
}
|
|
4170
|
+
get position() {
|
|
4171
|
+
return this.event.position;
|
|
4172
|
+
}
|
|
4173
|
+
get defaultPrevented() {
|
|
4174
|
+
return this.event.defaultPrevented;
|
|
4175
|
+
}
|
|
4176
|
+
preventDefault() {
|
|
4177
|
+
this.event.preventDefault();
|
|
4178
|
+
}
|
|
4179
|
+
constructor(event, options) {
|
|
4180
|
+
this.event = event;
|
|
4181
|
+
this._kind = options.kind;
|
|
4182
|
+
}
|
|
4183
|
+
}
|
|
3996
4184
|
class DockviewGroupPanelModel extends CompositeDisposable {
|
|
3997
4185
|
get element() {
|
|
3998
4186
|
throw new Error('not supported');
|
|
@@ -4038,7 +4226,7 @@
|
|
|
4038
4226
|
this._location = value;
|
|
4039
4227
|
toggleClass(this.container, 'dv-groupview-floating', false);
|
|
4040
4228
|
toggleClass(this.container, 'dv-groupview-popout', false);
|
|
4041
|
-
switch (value) {
|
|
4229
|
+
switch (value.type) {
|
|
4042
4230
|
case 'grid':
|
|
4043
4231
|
this.contentContainer.dropTarget.setTargetZones([
|
|
4044
4232
|
'top',
|
|
@@ -4074,7 +4262,7 @@
|
|
|
4074
4262
|
this.groupPanel = groupPanel;
|
|
4075
4263
|
this._isGroupActive = false;
|
|
4076
4264
|
this._locked = false;
|
|
4077
|
-
this._location = 'grid';
|
|
4265
|
+
this._location = { type: 'grid' };
|
|
4078
4266
|
this.mostRecentlyUsed = [];
|
|
4079
4267
|
this._onDidChange = new Emitter();
|
|
4080
4268
|
this.onDidChange = this._onDidChange.event;
|
|
@@ -4085,6 +4273,10 @@
|
|
|
4085
4273
|
this.onMove = this._onMove.event;
|
|
4086
4274
|
this._onDidDrop = new Emitter();
|
|
4087
4275
|
this.onDidDrop = this._onDidDrop.event;
|
|
4276
|
+
this._onWillDrop = new Emitter();
|
|
4277
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
4278
|
+
this._onWillShowOverlay = new Emitter();
|
|
4279
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
4088
4280
|
this._onTabDragStart = new Emitter();
|
|
4089
4281
|
this.onTabDragStart = this._onTabDragStart.event;
|
|
4090
4282
|
this._onGroupDragStart = new Emitter();
|
|
@@ -4095,46 +4287,69 @@
|
|
|
4095
4287
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
4096
4288
|
this._onDidActivePanelChange = new Emitter();
|
|
4097
4289
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
4290
|
+
this._overwriteRenderContainer = null;
|
|
4098
4291
|
toggleClass(this.container, 'groupview', true);
|
|
4292
|
+
this._api = new DockviewApi(this.accessor);
|
|
4099
4293
|
this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
|
|
4100
4294
|
this.contentContainer = new ContentContainer(this.accessor, this);
|
|
4101
4295
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
4102
4296
|
this.header.hidden = !!options.hideHeader;
|
|
4103
4297
|
this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;
|
|
4104
|
-
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {
|
|
4298
|
+
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {
|
|
4105
4299
|
this._onTabDragStart.fire(event);
|
|
4106
4300
|
}), this.tabsContainer.onGroupDragStart((event) => {
|
|
4107
4301
|
this._onGroupDragStart.fire(event);
|
|
4108
4302
|
}), this.tabsContainer.onDrop((event) => {
|
|
4109
|
-
this.handleDropEvent(event.event, 'center', event.index);
|
|
4303
|
+
this.handleDropEvent('header', event.event, 'center', event.index);
|
|
4110
4304
|
}), this.contentContainer.onDidFocus(() => {
|
|
4111
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4305
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4112
4306
|
}), this.contentContainer.onDidBlur(() => {
|
|
4113
4307
|
// noop
|
|
4114
4308
|
}), this.contentContainer.dropTarget.onDrop((event) => {
|
|
4115
|
-
this.handleDropEvent(event.nativeEvent, event.position);
|
|
4116
|
-
}), this.
|
|
4309
|
+
this.handleDropEvent('content', event.nativeEvent, event.position);
|
|
4310
|
+
}), this.tabsContainer.onWillShowOverlay((event) => {
|
|
4311
|
+
this._onWillShowOverlay.fire(event);
|
|
4312
|
+
}), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
|
|
4313
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
4314
|
+
kind: 'content',
|
|
4315
|
+
}));
|
|
4316
|
+
}), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
|
|
4317
|
+
}
|
|
4318
|
+
focusContent() {
|
|
4319
|
+
this.contentContainer.element.focus();
|
|
4320
|
+
}
|
|
4321
|
+
set renderContainer(value) {
|
|
4322
|
+
this.panels.forEach((panel) => {
|
|
4323
|
+
this.renderContainer.detatch(panel);
|
|
4324
|
+
});
|
|
4325
|
+
this._overwriteRenderContainer = value;
|
|
4326
|
+
this.panels.forEach((panel) => {
|
|
4327
|
+
this.rerender(panel);
|
|
4328
|
+
});
|
|
4329
|
+
}
|
|
4330
|
+
get renderContainer() {
|
|
4331
|
+
var _a;
|
|
4332
|
+
return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);
|
|
4117
4333
|
}
|
|
4118
4334
|
initialize() {
|
|
4119
|
-
|
|
4120
|
-
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
4335
|
+
if (this.options.panels) {
|
|
4121
4336
|
this.options.panels.forEach((panel) => {
|
|
4122
4337
|
this.doAddPanel(panel);
|
|
4123
4338
|
});
|
|
4124
4339
|
}
|
|
4125
|
-
if (
|
|
4340
|
+
if (this.options.activePanel) {
|
|
4126
4341
|
this.openPanel(this.options.activePanel);
|
|
4127
4342
|
}
|
|
4128
4343
|
// must be run after the constructor otherwise this.parent may not be
|
|
4129
4344
|
// correctly initialized
|
|
4130
|
-
this.setActive(this.isActive, true
|
|
4345
|
+
this.setActive(this.isActive, true);
|
|
4131
4346
|
this.updateContainer();
|
|
4132
4347
|
if (this.accessor.options.createRightHeaderActionsElement) {
|
|
4133
4348
|
this._rightHeaderActions =
|
|
4134
4349
|
this.accessor.options.createRightHeaderActionsElement(this.groupPanel);
|
|
4135
4350
|
this.addDisposables(this._rightHeaderActions);
|
|
4136
4351
|
this._rightHeaderActions.init({
|
|
4137
|
-
containerApi:
|
|
4352
|
+
containerApi: this._api,
|
|
4138
4353
|
api: this.groupPanel.api,
|
|
4139
4354
|
});
|
|
4140
4355
|
this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);
|
|
@@ -4144,7 +4359,7 @@
|
|
|
4144
4359
|
this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);
|
|
4145
4360
|
this.addDisposables(this._leftHeaderActions);
|
|
4146
4361
|
this._leftHeaderActions.init({
|
|
4147
|
-
containerApi:
|
|
4362
|
+
containerApi: this._api,
|
|
4148
4363
|
api: this.groupPanel.api,
|
|
4149
4364
|
});
|
|
4150
4365
|
this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);
|
|
@@ -4154,7 +4369,7 @@
|
|
|
4154
4369
|
this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);
|
|
4155
4370
|
this.addDisposables(this._prefixHeaderActions);
|
|
4156
4371
|
this._prefixHeaderActions.init({
|
|
4157
|
-
containerApi:
|
|
4372
|
+
containerApi: this._api,
|
|
4158
4373
|
api: this.groupPanel.api,
|
|
4159
4374
|
});
|
|
4160
4375
|
this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);
|
|
@@ -4234,35 +4449,45 @@
|
|
|
4234
4449
|
//noop
|
|
4235
4450
|
}
|
|
4236
4451
|
focus() {
|
|
4237
|
-
var _a
|
|
4238
|
-
(
|
|
4452
|
+
var _a;
|
|
4453
|
+
(_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4239
4454
|
}
|
|
4240
4455
|
openPanel(panel, options = {}) {
|
|
4456
|
+
/**
|
|
4457
|
+
* set the panel group
|
|
4458
|
+
* add the panel
|
|
4459
|
+
* check if group active
|
|
4460
|
+
* check if panel active
|
|
4461
|
+
*/
|
|
4241
4462
|
if (typeof options.index !== 'number' ||
|
|
4242
4463
|
options.index > this.panels.length) {
|
|
4243
4464
|
options.index = this.panels.length;
|
|
4244
4465
|
}
|
|
4245
|
-
const
|
|
4246
|
-
const skipSetGroupActive = !!options.skipSetGroupActive;
|
|
4466
|
+
const skipSetActive = !!options.skipSetActive;
|
|
4247
4467
|
// ensure the group is updated before we fire any events
|
|
4248
|
-
panel.updateParentGroup(this.groupPanel,
|
|
4468
|
+
panel.updateParentGroup(this.groupPanel, {
|
|
4469
|
+
skipSetActive: options.skipSetActive,
|
|
4470
|
+
});
|
|
4471
|
+
this.doAddPanel(panel, options.index, {
|
|
4472
|
+
skipSetActive: skipSetActive,
|
|
4473
|
+
});
|
|
4249
4474
|
if (this._activePanel === panel) {
|
|
4250
|
-
if (!skipSetGroupActive) {
|
|
4251
|
-
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4252
|
-
}
|
|
4253
4475
|
this.contentContainer.renderPanel(panel, { asActive: true });
|
|
4254
4476
|
return;
|
|
4255
4477
|
}
|
|
4256
|
-
|
|
4257
|
-
if (!skipSetPanelActive) {
|
|
4478
|
+
if (!skipSetActive) {
|
|
4258
4479
|
this.doSetActivePanel(panel);
|
|
4259
4480
|
}
|
|
4260
|
-
if (!skipSetGroupActive) {
|
|
4261
|
-
this.accessor.doSetGroupActive(this.groupPanel
|
|
4481
|
+
if (!options.skipSetGroupActive) {
|
|
4482
|
+
this.accessor.doSetGroupActive(this.groupPanel);
|
|
4483
|
+
}
|
|
4484
|
+
if (!options.skipSetActive) {
|
|
4485
|
+
this.updateContainer();
|
|
4262
4486
|
}
|
|
4263
|
-
this.updateContainer();
|
|
4264
4487
|
}
|
|
4265
|
-
removePanel(groupItemOrId
|
|
4488
|
+
removePanel(groupItemOrId, options = {
|
|
4489
|
+
skipSetActive: false,
|
|
4490
|
+
}) {
|
|
4266
4491
|
const id = typeof groupItemOrId === 'string'
|
|
4267
4492
|
? groupItemOrId
|
|
4268
4493
|
: groupItemOrId.id;
|
|
@@ -4270,7 +4495,7 @@
|
|
|
4270
4495
|
if (!panelToRemove) {
|
|
4271
4496
|
throw new Error('invalid operation');
|
|
4272
4497
|
}
|
|
4273
|
-
return this._removePanel(panelToRemove);
|
|
4498
|
+
return this._removePanel(panelToRemove, options);
|
|
4274
4499
|
}
|
|
4275
4500
|
closeAllPanels() {
|
|
4276
4501
|
if (this.panels.length > 0) {
|
|
@@ -4296,12 +4521,8 @@
|
|
|
4296
4521
|
updateActions(element) {
|
|
4297
4522
|
this.tabsContainer.setRightActionsElement(element);
|
|
4298
4523
|
}
|
|
4299
|
-
setActive(isGroupActive,
|
|
4300
|
-
var _a, _b, _c, _d;
|
|
4524
|
+
setActive(isGroupActive, force = false) {
|
|
4301
4525
|
if (!force && this.isActive === isGroupActive) {
|
|
4302
|
-
if (!skipFocus) {
|
|
4303
|
-
(_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4304
|
-
}
|
|
4305
4526
|
return;
|
|
4306
4527
|
}
|
|
4307
4528
|
this._isGroupActive = isGroupActive;
|
|
@@ -4312,11 +4533,6 @@
|
|
|
4312
4533
|
this.doSetActivePanel(this.panels[0]);
|
|
4313
4534
|
}
|
|
4314
4535
|
this.updateContainer();
|
|
4315
|
-
if (isGroupActive) {
|
|
4316
|
-
if (!skipFocus) {
|
|
4317
|
-
(_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
4318
|
-
}
|
|
4319
|
-
}
|
|
4320
4536
|
}
|
|
4321
4537
|
layout(width, height) {
|
|
4322
4538
|
var _a;
|
|
@@ -4327,17 +4543,22 @@
|
|
|
4327
4543
|
this._activePanel.layout(this._width, this._height);
|
|
4328
4544
|
}
|
|
4329
4545
|
}
|
|
4330
|
-
_removePanel(panel) {
|
|
4546
|
+
_removePanel(panel, options) {
|
|
4331
4547
|
const isActivePanel = this._activePanel === panel;
|
|
4332
4548
|
this.doRemovePanel(panel);
|
|
4333
4549
|
if (isActivePanel && this.panels.length > 0) {
|
|
4334
4550
|
const nextPanel = this.mostRecentlyUsed[0];
|
|
4335
|
-
this.openPanel(nextPanel
|
|
4551
|
+
this.openPanel(nextPanel, {
|
|
4552
|
+
skipSetActive: options.skipSetActive,
|
|
4553
|
+
skipSetGroupActive: options.skipSetActiveGroup,
|
|
4554
|
+
});
|
|
4336
4555
|
}
|
|
4337
4556
|
if (this._activePanel && this.panels.length === 0) {
|
|
4338
4557
|
this.doSetActivePanel(undefined);
|
|
4339
4558
|
}
|
|
4340
|
-
|
|
4559
|
+
if (!options.skipSetActive) {
|
|
4560
|
+
this.updateContainer();
|
|
4561
|
+
}
|
|
4341
4562
|
return panel;
|
|
4342
4563
|
}
|
|
4343
4564
|
doRemovePanel(panel) {
|
|
@@ -4352,13 +4573,13 @@
|
|
|
4352
4573
|
}
|
|
4353
4574
|
this._onDidRemovePanel.fire({ panel });
|
|
4354
4575
|
}
|
|
4355
|
-
doAddPanel(panel, index = this.panels.length,
|
|
4576
|
+
doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {
|
|
4356
4577
|
const existingPanel = this._panels.indexOf(panel);
|
|
4357
4578
|
const hasExistingPanel = existingPanel > -1;
|
|
4358
4579
|
this.tabsContainer.show();
|
|
4359
4580
|
this.contentContainer.show();
|
|
4360
4581
|
this.tabsContainer.openPanel(panel, index);
|
|
4361
|
-
if (!skipSetActive) {
|
|
4582
|
+
if (!options.skipSetActive) {
|
|
4362
4583
|
this.contentContainer.openPanel(panel);
|
|
4363
4584
|
}
|
|
4364
4585
|
if (hasExistingPanel) {
|
|
@@ -4370,12 +4591,17 @@
|
|
|
4370
4591
|
this._onDidAddPanel.fire({ panel });
|
|
4371
4592
|
}
|
|
4372
4593
|
doSetActivePanel(panel) {
|
|
4594
|
+
if (this._activePanel === panel) {
|
|
4595
|
+
return;
|
|
4596
|
+
}
|
|
4373
4597
|
this._activePanel = panel;
|
|
4374
4598
|
if (panel) {
|
|
4375
4599
|
this.tabsContainer.setActivePanel(panel);
|
|
4376
4600
|
panel.layout(this._width, this._height);
|
|
4377
4601
|
this.updateMru(panel);
|
|
4378
|
-
this._onDidActivePanelChange.fire({
|
|
4602
|
+
this._onDidActivePanelChange.fire({
|
|
4603
|
+
panel,
|
|
4604
|
+
});
|
|
4379
4605
|
}
|
|
4380
4606
|
}
|
|
4381
4607
|
updateMru(panel) {
|
|
@@ -4387,11 +4613,11 @@
|
|
|
4387
4613
|
updateContainer() {
|
|
4388
4614
|
var _a, _b;
|
|
4389
4615
|
toggleClass(this.container, 'empty', this.isEmpty);
|
|
4390
|
-
this.panels.forEach((panel) => panel.
|
|
4616
|
+
this.panels.forEach((panel) => panel.runEvents());
|
|
4391
4617
|
if (this.isEmpty && !this.watermark) {
|
|
4392
4618
|
const watermark = this.accessor.createWatermarkComponent();
|
|
4393
4619
|
watermark.init({
|
|
4394
|
-
containerApi:
|
|
4620
|
+
containerApi: this._api,
|
|
4395
4621
|
group: this.groupPanel,
|
|
4396
4622
|
});
|
|
4397
4623
|
this.watermark = watermark;
|
|
@@ -4424,10 +4650,32 @@
|
|
|
4424
4650
|
}
|
|
4425
4651
|
return false;
|
|
4426
4652
|
}
|
|
4427
|
-
handleDropEvent(event, position, index) {
|
|
4653
|
+
handleDropEvent(type, event, position, index) {
|
|
4428
4654
|
if (this.locked === 'no-drop-target') {
|
|
4429
4655
|
return;
|
|
4430
4656
|
}
|
|
4657
|
+
function getKind() {
|
|
4658
|
+
switch (type) {
|
|
4659
|
+
case 'header':
|
|
4660
|
+
return typeof index === 'number' ? 'tab' : 'header_space';
|
|
4661
|
+
case 'content':
|
|
4662
|
+
return 'content';
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
const panel = typeof index === 'number' ? this.panels[index] : undefined;
|
|
4666
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
4667
|
+
nativeEvent: event,
|
|
4668
|
+
position,
|
|
4669
|
+
panel,
|
|
4670
|
+
getData: () => getPanelData(),
|
|
4671
|
+
kind: getKind(),
|
|
4672
|
+
group: this.groupPanel,
|
|
4673
|
+
api: this._api,
|
|
4674
|
+
});
|
|
4675
|
+
this._onWillDrop.fire(willDropEvent);
|
|
4676
|
+
if (willDropEvent.defaultPrevented) {
|
|
4677
|
+
return;
|
|
4678
|
+
}
|
|
4431
4679
|
const data = getPanelData();
|
|
4432
4680
|
if (data && data.viewId === this.accessor.id) {
|
|
4433
4681
|
if (data.panelId === null) {
|
|
@@ -4460,12 +4708,14 @@
|
|
|
4460
4708
|
});
|
|
4461
4709
|
}
|
|
4462
4710
|
else {
|
|
4463
|
-
this._onDidDrop.fire({
|
|
4711
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
4464
4712
|
nativeEvent: event,
|
|
4465
4713
|
position,
|
|
4466
|
-
|
|
4714
|
+
panel,
|
|
4467
4715
|
getData: () => getPanelData(),
|
|
4468
|
-
|
|
4716
|
+
group: this.groupPanel,
|
|
4717
|
+
api: this._api,
|
|
4718
|
+
}));
|
|
4469
4719
|
}
|
|
4470
4720
|
}
|
|
4471
4721
|
dispose() {
|
|
@@ -4473,6 +4723,7 @@
|
|
|
4473
4723
|
super.dispose();
|
|
4474
4724
|
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();
|
|
4475
4725
|
(_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
4726
|
+
this.watermark = undefined;
|
|
4476
4727
|
for (const panel of this.panels) {
|
|
4477
4728
|
panel.dispose();
|
|
4478
4729
|
}
|
|
@@ -4494,15 +4745,7 @@
|
|
|
4494
4745
|
constructor(parentElement, disableResizing = false) {
|
|
4495
4746
|
super();
|
|
4496
4747
|
this._disableResizing = disableResizing;
|
|
4497
|
-
|
|
4498
|
-
this._element = parentElement;
|
|
4499
|
-
}
|
|
4500
|
-
else {
|
|
4501
|
-
this._element = document.createElement('div');
|
|
4502
|
-
this._element.style.height = '100%';
|
|
4503
|
-
this._element.style.width = '100%';
|
|
4504
|
-
this._element.className = 'dv-resizable-container';
|
|
4505
|
-
}
|
|
4748
|
+
this._element = parentElement;
|
|
4506
4749
|
this.addDisposables(watchElementResize(this._element, (entry) => {
|
|
4507
4750
|
if (this.isDisposed) {
|
|
4508
4751
|
/**
|
|
@@ -4590,25 +4833,38 @@
|
|
|
4590
4833
|
get activeGroup() {
|
|
4591
4834
|
return this._activeGroup;
|
|
4592
4835
|
}
|
|
4836
|
+
get locked() {
|
|
4837
|
+
return this.gridview.locked;
|
|
4838
|
+
}
|
|
4839
|
+
set locked(value) {
|
|
4840
|
+
this.gridview.locked = value;
|
|
4841
|
+
}
|
|
4593
4842
|
constructor(options) {
|
|
4594
|
-
super(
|
|
4843
|
+
super(document.createElement('div'), options.disableAutoResizing);
|
|
4595
4844
|
this._id = nextLayoutId$1.next();
|
|
4596
4845
|
this._groups = new Map();
|
|
4597
4846
|
this._onDidLayoutChange = new Emitter();
|
|
4598
4847
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
4599
|
-
this.
|
|
4600
|
-
this.
|
|
4601
|
-
this.
|
|
4602
|
-
this.
|
|
4603
|
-
this.
|
|
4604
|
-
this.
|
|
4848
|
+
this._onDidRemove = new Emitter();
|
|
4849
|
+
this.onDidRemove = this._onDidRemove.event;
|
|
4850
|
+
this._onDidAdd = new Emitter();
|
|
4851
|
+
this.onDidAdd = this._onDidAdd.event;
|
|
4852
|
+
this._onDidActiveChange = new Emitter();
|
|
4853
|
+
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4605
4854
|
this._bufferOnDidLayoutChange = new TickDelayedEvent();
|
|
4855
|
+
this.element.style.height = '100%';
|
|
4856
|
+
this.element.style.width = '100%';
|
|
4857
|
+
options.parentElement.appendChild(this.element);
|
|
4606
4858
|
this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
|
|
4859
|
+
this.gridview.locked = !!options.locked;
|
|
4607
4860
|
this.element.appendChild(this.gridview.element);
|
|
4608
4861
|
this.layout(0, 0, true); // set some elements height/widths
|
|
4609
|
-
this.addDisposables(
|
|
4862
|
+
this.addDisposables(Disposable.from(() => {
|
|
4863
|
+
var _a;
|
|
4864
|
+
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
|
|
4865
|
+
}), this.gridview.onDidChange(() => {
|
|
4610
4866
|
this._bufferOnDidLayoutChange.fire();
|
|
4611
|
-
}), exports.DockviewEvent.any(this.
|
|
4867
|
+
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {
|
|
4612
4868
|
this._bufferOnDidLayoutChange.fire();
|
|
4613
4869
|
}), this._bufferOnDidLayoutChange.onEvent(() => {
|
|
4614
4870
|
this._onDidLayoutChange.fire();
|
|
@@ -4623,6 +4879,7 @@
|
|
|
4623
4879
|
}
|
|
4624
4880
|
maximizeGroup(panel) {
|
|
4625
4881
|
this.gridview.maximizeView(panel);
|
|
4882
|
+
this.doSetGroupActive(panel);
|
|
4626
4883
|
}
|
|
4627
4884
|
isMaximizedGroup(panel) {
|
|
4628
4885
|
return this.gridview.maximizedView() === panel;
|
|
@@ -4633,13 +4890,12 @@
|
|
|
4633
4890
|
hasMaximizedGroup() {
|
|
4634
4891
|
return this.gridview.hasMaximizedView();
|
|
4635
4892
|
}
|
|
4636
|
-
get
|
|
4637
|
-
return this.gridview.
|
|
4893
|
+
get onDidMaximizedGroupChange() {
|
|
4894
|
+
return this.gridview.onDidMaximizedNodeChange;
|
|
4638
4895
|
}
|
|
4639
4896
|
doAddGroup(group, location = [0], size) {
|
|
4640
4897
|
this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
|
|
4641
|
-
this.
|
|
4642
|
-
this.doSetGroupActive(group);
|
|
4898
|
+
this._onDidAdd.fire(group);
|
|
4643
4899
|
}
|
|
4644
4900
|
doRemoveGroup(group, options) {
|
|
4645
4901
|
if (!this._groups.has(group.id)) {
|
|
@@ -4651,8 +4907,8 @@
|
|
|
4651
4907
|
item.disposable.dispose();
|
|
4652
4908
|
item.value.dispose();
|
|
4653
4909
|
this._groups.delete(group.id);
|
|
4910
|
+
this._onDidRemove.fire(group);
|
|
4654
4911
|
}
|
|
4655
|
-
this._onDidRemoveGroup.fire(group);
|
|
4656
4912
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
4657
4913
|
const groups = Array.from(this._groups.values());
|
|
4658
4914
|
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
@@ -4663,25 +4919,18 @@
|
|
|
4663
4919
|
var _a;
|
|
4664
4920
|
return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;
|
|
4665
4921
|
}
|
|
4666
|
-
doSetGroupActive(group
|
|
4667
|
-
var _a, _b, _c;
|
|
4922
|
+
doSetGroupActive(group) {
|
|
4668
4923
|
if (this._activeGroup === group) {
|
|
4669
4924
|
return;
|
|
4670
4925
|
}
|
|
4671
4926
|
if (this._activeGroup) {
|
|
4672
4927
|
this._activeGroup.setActive(false);
|
|
4673
|
-
if (!skipFocus) {
|
|
4674
|
-
(_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
4675
|
-
}
|
|
4676
4928
|
}
|
|
4677
4929
|
if (group) {
|
|
4678
4930
|
group.setActive(true);
|
|
4679
|
-
if (!skipFocus) {
|
|
4680
|
-
(_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);
|
|
4681
|
-
}
|
|
4682
4931
|
}
|
|
4683
4932
|
this._activeGroup = group;
|
|
4684
|
-
this.
|
|
4933
|
+
this._onDidActiveChange.fire(group);
|
|
4685
4934
|
}
|
|
4686
4935
|
removeGroup(group) {
|
|
4687
4936
|
this.doRemoveGroup(group);
|
|
@@ -4726,9 +4975,9 @@
|
|
|
4726
4975
|
this.gridview.layout(width, height);
|
|
4727
4976
|
}
|
|
4728
4977
|
dispose() {
|
|
4729
|
-
this.
|
|
4730
|
-
this.
|
|
4731
|
-
this.
|
|
4978
|
+
this._onDidActiveChange.dispose();
|
|
4979
|
+
this._onDidAdd.dispose();
|
|
4980
|
+
this._onDidRemove.dispose();
|
|
4732
4981
|
this._onDidLayoutChange.dispose();
|
|
4733
4982
|
for (const group of this.groups) {
|
|
4734
4983
|
group.dispose();
|
|
@@ -4738,11 +4987,15 @@
|
|
|
4738
4987
|
}
|
|
4739
4988
|
}
|
|
4740
4989
|
|
|
4990
|
+
class WillFocusEvent extends DockviewEvent {
|
|
4991
|
+
constructor() {
|
|
4992
|
+
super();
|
|
4993
|
+
}
|
|
4994
|
+
}
|
|
4741
4995
|
/**
|
|
4742
4996
|
* A core api implementation that should be used across all panel-like objects
|
|
4743
4997
|
*/
|
|
4744
4998
|
class PanelApiImpl extends CompositeDisposable {
|
|
4745
|
-
//
|
|
4746
4999
|
get isFocused() {
|
|
4747
5000
|
return this._isFocused;
|
|
4748
5001
|
}
|
|
@@ -4767,35 +5020,22 @@
|
|
|
4767
5020
|
this._width = 0;
|
|
4768
5021
|
this._height = 0;
|
|
4769
5022
|
this.panelUpdatesDisposable = new MutableDisposable();
|
|
4770
|
-
this._onDidDimensionChange = new Emitter(
|
|
4771
|
-
replay: true,
|
|
4772
|
-
});
|
|
5023
|
+
this._onDidDimensionChange = new Emitter();
|
|
4773
5024
|
this.onDidDimensionsChange = this._onDidDimensionChange.event;
|
|
4774
|
-
|
|
4775
|
-
this._onDidChangeFocus = new Emitter({
|
|
4776
|
-
replay: true,
|
|
4777
|
-
});
|
|
5025
|
+
this._onDidChangeFocus = new Emitter();
|
|
4778
5026
|
this.onDidFocusChange = this._onDidChangeFocus.event;
|
|
4779
5027
|
//
|
|
4780
|
-
this.
|
|
4781
|
-
this.
|
|
5028
|
+
this._onWillFocus = new Emitter();
|
|
5029
|
+
this.onWillFocus = this._onWillFocus.event;
|
|
4782
5030
|
//
|
|
4783
|
-
this._onDidVisibilityChange = new Emitter(
|
|
4784
|
-
replay: true,
|
|
4785
|
-
});
|
|
5031
|
+
this._onDidVisibilityChange = new Emitter();
|
|
4786
5032
|
this.onDidVisibilityChange = this._onDidVisibilityChange.event;
|
|
4787
|
-
|
|
4788
|
-
this.
|
|
4789
|
-
this.
|
|
4790
|
-
//
|
|
4791
|
-
this._onDidActiveChange = new Emitter({
|
|
4792
|
-
replay: true,
|
|
4793
|
-
});
|
|
5033
|
+
this._onWillVisibilityChange = new Emitter();
|
|
5034
|
+
this.onWillVisibilityChange = this._onWillVisibilityChange.event;
|
|
5035
|
+
this._onDidActiveChange = new Emitter();
|
|
4794
5036
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
4795
|
-
//
|
|
4796
5037
|
this._onActiveChange = new Emitter();
|
|
4797
5038
|
this.onActiveChange = this._onActiveChange.event;
|
|
4798
|
-
//
|
|
4799
5039
|
this._onUpdateParameters = new Emitter();
|
|
4800
5040
|
this.onUpdateParameters = this._onUpdateParameters.event;
|
|
4801
5041
|
this.addDisposables(this.onDidFocusChange((event) => {
|
|
@@ -4807,7 +5047,7 @@
|
|
|
4807
5047
|
}), this.onDidDimensionsChange((event) => {
|
|
4808
5048
|
this._width = event.width;
|
|
4809
5049
|
this._height = event.height;
|
|
4810
|
-
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this.
|
|
5050
|
+
}), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onWillVisibilityChange, this._onUpdateParameters);
|
|
4811
5051
|
}
|
|
4812
5052
|
initialize(panel) {
|
|
4813
5053
|
this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
|
|
@@ -4817,7 +5057,7 @@
|
|
|
4817
5057
|
});
|
|
4818
5058
|
}
|
|
4819
5059
|
setVisible(isVisible) {
|
|
4820
|
-
this.
|
|
5060
|
+
this._onWillVisibilityChange.fire({ isVisible });
|
|
4821
5061
|
}
|
|
4822
5062
|
setActive() {
|
|
4823
5063
|
this._onActiveChange.fire();
|
|
@@ -4825,9 +5065,6 @@
|
|
|
4825
5065
|
updateParameters(parameters) {
|
|
4826
5066
|
this._onUpdateParameters.fire(parameters);
|
|
4827
5067
|
}
|
|
4828
|
-
dispose() {
|
|
4829
|
-
super.dispose();
|
|
4830
|
-
}
|
|
4831
5068
|
}
|
|
4832
5069
|
|
|
4833
5070
|
class SplitviewPanelApiImpl extends PanelApiImpl {
|
|
@@ -4915,7 +5152,12 @@
|
|
|
4915
5152
|
}), focusTracker);
|
|
4916
5153
|
}
|
|
4917
5154
|
focus() {
|
|
4918
|
-
|
|
5155
|
+
const event = new WillFocusEvent();
|
|
5156
|
+
this.api._onWillFocus.fire(event);
|
|
5157
|
+
if (event.defaultPrevented) {
|
|
5158
|
+
return;
|
|
5159
|
+
}
|
|
5160
|
+
this._element.focus();
|
|
4919
5161
|
}
|
|
4920
5162
|
layout(width, height) {
|
|
4921
5163
|
this._width = width;
|
|
@@ -5033,7 +5275,11 @@
|
|
|
5033
5275
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
5034
5276
|
this._orientation = orientation;
|
|
5035
5277
|
this.element.classList.add('pane');
|
|
5036
|
-
this.addDisposables(this.api.
|
|
5278
|
+
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
5279
|
+
const { isVisible } = event;
|
|
5280
|
+
const { accessor } = this._params;
|
|
5281
|
+
accessor.setVisible(this, isVisible);
|
|
5282
|
+
}), this.api.onDidSizeChange((event) => {
|
|
5037
5283
|
this._onDidChange.fire({ size: event.size });
|
|
5038
5284
|
}), addDisposableListener(this.element, 'mouseenter', (ev) => {
|
|
5039
5285
|
this.api._onMouseEnter.fire(ev);
|
|
@@ -5244,9 +5490,7 @@
|
|
|
5244
5490
|
super(id);
|
|
5245
5491
|
this._onDidConstraintsChangeInternal = new Emitter();
|
|
5246
5492
|
this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
|
|
5247
|
-
this._onDidConstraintsChange = new Emitter(
|
|
5248
|
-
replay: true,
|
|
5249
|
-
});
|
|
5493
|
+
this._onDidConstraintsChange = new Emitter();
|
|
5250
5494
|
this.onDidConstraintsChange = this._onDidConstraintsChange.event;
|
|
5251
5495
|
this._onDidSizeChange = new Emitter();
|
|
5252
5496
|
this.onDidSizeChange = this._onDidSizeChange.event;
|
|
@@ -5339,13 +5583,13 @@
|
|
|
5339
5583
|
this._maximumHeight = options.maximumHeight;
|
|
5340
5584
|
}
|
|
5341
5585
|
this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
|
|
5342
|
-
this.addDisposables(this.api.
|
|
5586
|
+
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
5343
5587
|
const { isVisible } = event;
|
|
5344
5588
|
const { accessor } = this._params;
|
|
5345
5589
|
accessor.setVisible(this, isVisible);
|
|
5346
5590
|
}), this.api.onActiveChange(() => {
|
|
5347
5591
|
const { accessor } = this._params;
|
|
5348
|
-
accessor.
|
|
5592
|
+
accessor.doSetGroupActive(this);
|
|
5349
5593
|
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
5350
5594
|
if (typeof event.minimumWidth === 'number' ||
|
|
5351
5595
|
typeof event.minimumWidth === 'function') {
|
|
@@ -5428,6 +5672,17 @@
|
|
|
5428
5672
|
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5429
5673
|
this.addDisposables(this._onDidLocationChange);
|
|
5430
5674
|
}
|
|
5675
|
+
close() {
|
|
5676
|
+
if (!this._group) {
|
|
5677
|
+
return;
|
|
5678
|
+
}
|
|
5679
|
+
return this.accessor.removeGroup(this._group);
|
|
5680
|
+
}
|
|
5681
|
+
getWindow() {
|
|
5682
|
+
return this.location.type === 'popout'
|
|
5683
|
+
? this.location.getWindow()
|
|
5684
|
+
: window;
|
|
5685
|
+
}
|
|
5431
5686
|
moveTo(options) {
|
|
5432
5687
|
var _a, _b, _c;
|
|
5433
5688
|
if (!this._group) {
|
|
@@ -5435,14 +5690,23 @@
|
|
|
5435
5690
|
}
|
|
5436
5691
|
const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({
|
|
5437
5692
|
direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),
|
|
5693
|
+
skipSetActive: true,
|
|
5694
|
+
});
|
|
5695
|
+
this.accessor.moveGroupOrPanel({
|
|
5696
|
+
from: { groupId: this._group.id },
|
|
5697
|
+
to: {
|
|
5698
|
+
group,
|
|
5699
|
+
position: options.group
|
|
5700
|
+
? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
|
|
5701
|
+
: 'center',
|
|
5702
|
+
},
|
|
5438
5703
|
});
|
|
5439
|
-
this.accessor.moveGroupOrPanel(group, this._group.id, undefined, options.group ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center' : 'center');
|
|
5440
5704
|
}
|
|
5441
5705
|
maximize() {
|
|
5442
5706
|
if (!this._group) {
|
|
5443
5707
|
throw new Error(NOT_INITIALIZED_MESSAGE);
|
|
5444
5708
|
}
|
|
5445
|
-
if (this.location !== 'grid') {
|
|
5709
|
+
if (this.location.type !== 'grid') {
|
|
5446
5710
|
// only grid groups can be maximized
|
|
5447
5711
|
return;
|
|
5448
5712
|
}
|
|
@@ -5499,6 +5763,12 @@
|
|
|
5499
5763
|
this.api.initialize(this); // cannot use 'this' after after 'super' call
|
|
5500
5764
|
this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);
|
|
5501
5765
|
}
|
|
5766
|
+
focus() {
|
|
5767
|
+
if (!this.api.isActive) {
|
|
5768
|
+
this.api.setActive();
|
|
5769
|
+
}
|
|
5770
|
+
super.focus();
|
|
5771
|
+
}
|
|
5502
5772
|
initialize() {
|
|
5503
5773
|
this._model.initialize();
|
|
5504
5774
|
}
|
|
@@ -5544,6 +5814,9 @@
|
|
|
5544
5814
|
}
|
|
5545
5815
|
|
|
5546
5816
|
class DockviewPanelApiImpl extends GridviewPanelApiImpl {
|
|
5817
|
+
get location() {
|
|
5818
|
+
return this.group.api.location;
|
|
5819
|
+
}
|
|
5547
5820
|
get title() {
|
|
5548
5821
|
return this.panel.title;
|
|
5549
5822
|
}
|
|
@@ -5554,16 +5827,14 @@
|
|
|
5554
5827
|
return this.panel.renderer;
|
|
5555
5828
|
}
|
|
5556
5829
|
set group(value) {
|
|
5557
|
-
const
|
|
5558
|
-
this._group
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
this.
|
|
5562
|
-
|
|
5830
|
+
const oldGroup = this._group;
|
|
5831
|
+
if (this._group !== value) {
|
|
5832
|
+
this._group = value;
|
|
5833
|
+
this._onDidGroupChange.fire({});
|
|
5834
|
+
this.setupGroupEventListeners(oldGroup);
|
|
5835
|
+
this._onDidLocationChange.fire({
|
|
5836
|
+
location: this.group.api.location,
|
|
5563
5837
|
});
|
|
5564
|
-
if (this.isGroupActive !== isOldGroupActive) {
|
|
5565
|
-
this._onDidActiveGroupChange.fire();
|
|
5566
|
-
}
|
|
5567
5838
|
}
|
|
5568
5839
|
}
|
|
5569
5840
|
get group() {
|
|
@@ -5581,14 +5852,27 @@
|
|
|
5581
5852
|
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
5582
5853
|
this._onDidRendererChange = new Emitter();
|
|
5583
5854
|
this.onDidRendererChange = this._onDidRendererChange.event;
|
|
5584
|
-
this.
|
|
5855
|
+
this._onDidLocationChange = new Emitter();
|
|
5856
|
+
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
5857
|
+
this.groupEventsDisposable = new MutableDisposable();
|
|
5585
5858
|
this.initialize(panel);
|
|
5586
5859
|
this._group = group;
|
|
5587
|
-
this.
|
|
5860
|
+
this.setupGroupEventListeners();
|
|
5861
|
+
this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);
|
|
5862
|
+
}
|
|
5863
|
+
getWindow() {
|
|
5864
|
+
return this.group.api.getWindow();
|
|
5588
5865
|
}
|
|
5589
5866
|
moveTo(options) {
|
|
5590
5867
|
var _a;
|
|
5591
|
-
this.accessor.moveGroupOrPanel(
|
|
5868
|
+
this.accessor.moveGroupOrPanel({
|
|
5869
|
+
from: { groupId: this._group.id, panelId: this.panel.id },
|
|
5870
|
+
to: {
|
|
5871
|
+
group: options.group,
|
|
5872
|
+
position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
|
|
5873
|
+
index: options.index,
|
|
5874
|
+
},
|
|
5875
|
+
});
|
|
5592
5876
|
}
|
|
5593
5877
|
setTitle(title) {
|
|
5594
5878
|
this.panel.setTitle(title);
|
|
@@ -5608,6 +5892,35 @@
|
|
|
5608
5892
|
exitMaximized() {
|
|
5609
5893
|
this.group.api.exitMaximized();
|
|
5610
5894
|
}
|
|
5895
|
+
setupGroupEventListeners(previousGroup) {
|
|
5896
|
+
var _a;
|
|
5897
|
+
let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state
|
|
5898
|
+
this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {
|
|
5899
|
+
if (!event.isVisible && this.isVisible) {
|
|
5900
|
+
this._onDidVisibilityChange.fire(event);
|
|
5901
|
+
}
|
|
5902
|
+
else if (event.isVisible &&
|
|
5903
|
+
!this.isVisible &&
|
|
5904
|
+
this.group.model.isPanelActive(this.panel)) {
|
|
5905
|
+
this._onDidVisibilityChange.fire(event);
|
|
5906
|
+
}
|
|
5907
|
+
}), this.group.api.onDidLocationChange((event) => {
|
|
5908
|
+
if (this.group !== this.panel.group) {
|
|
5909
|
+
return;
|
|
5910
|
+
}
|
|
5911
|
+
this._onDidLocationChange.fire(event);
|
|
5912
|
+
}), this.group.api.onDidActiveChange(() => {
|
|
5913
|
+
if (this.group !== this.panel.group) {
|
|
5914
|
+
return;
|
|
5915
|
+
}
|
|
5916
|
+
if (_trackGroupActive !== this.isGroupActive) {
|
|
5917
|
+
_trackGroupActive = this.isGroupActive;
|
|
5918
|
+
this._onDidActiveGroupChange.fire({
|
|
5919
|
+
isActive: this.isGroupActive,
|
|
5920
|
+
});
|
|
5921
|
+
}
|
|
5922
|
+
}));
|
|
5923
|
+
}
|
|
5611
5924
|
}
|
|
5612
5925
|
|
|
5613
5926
|
class DockviewPanel extends CompositeDisposable {
|
|
@@ -5649,7 +5962,14 @@
|
|
|
5649
5962
|
this.setTitle(params.title);
|
|
5650
5963
|
}
|
|
5651
5964
|
focus() {
|
|
5652
|
-
|
|
5965
|
+
const event = new WillFocusEvent();
|
|
5966
|
+
this.api._onWillFocus.fire(event);
|
|
5967
|
+
if (event.defaultPrevented) {
|
|
5968
|
+
return;
|
|
5969
|
+
}
|
|
5970
|
+
if (!this.api.isActive) {
|
|
5971
|
+
this.api.setActive();
|
|
5972
|
+
}
|
|
5653
5973
|
}
|
|
5654
5974
|
toJSON() {
|
|
5655
5975
|
return {
|
|
@@ -5706,20 +6026,40 @@
|
|
|
5706
6026
|
},
|
|
5707
6027
|
});
|
|
5708
6028
|
}
|
|
5709
|
-
updateParentGroup(group,
|
|
6029
|
+
updateParentGroup(group, options) {
|
|
5710
6030
|
this._group = group;
|
|
5711
|
-
this.api.group =
|
|
6031
|
+
this.api.group = this._group;
|
|
5712
6032
|
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
5713
|
-
this.api.
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
6033
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6034
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {
|
|
6035
|
+
if (this.api.isActive !== isActive) {
|
|
6036
|
+
this.api._onDidActiveChange.fire({
|
|
6037
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6038
|
+
});
|
|
6039
|
+
}
|
|
6040
|
+
}
|
|
6041
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6042
|
+
this.api._onDidVisibilityChange.fire({
|
|
6043
|
+
isVisible: isPanelVisible,
|
|
6044
|
+
});
|
|
6045
|
+
}
|
|
6046
|
+
}
|
|
6047
|
+
runEvents() {
|
|
6048
|
+
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
6049
|
+
const isActive = this.group.api.isActive && isPanelVisible;
|
|
6050
|
+
if (this.api.isActive !== isActive) {
|
|
6051
|
+
this.api._onDidActiveChange.fire({
|
|
6052
|
+
isActive: this.group.api.isActive && isPanelVisible,
|
|
6053
|
+
});
|
|
6054
|
+
}
|
|
6055
|
+
if (this.api.isVisible !== isPanelVisible) {
|
|
6056
|
+
this.api._onDidVisibilityChange.fire({
|
|
6057
|
+
isVisible: isPanelVisible,
|
|
6058
|
+
});
|
|
6059
|
+
}
|
|
5720
6060
|
}
|
|
5721
6061
|
layout(width, height) {
|
|
5722
|
-
//
|
|
6062
|
+
// TODO: Can we somehow do height without header height or indicate what the header height is?
|
|
5723
6063
|
this.api._onDidDimensionChange.fire({
|
|
5724
6064
|
width,
|
|
5725
6065
|
height: height,
|
|
@@ -5841,8 +6181,6 @@
|
|
|
5841
6181
|
this.id = id;
|
|
5842
6182
|
this.contentComponent = contentComponent;
|
|
5843
6183
|
this.tabComponent = tabComponent;
|
|
5844
|
-
this._group = null;
|
|
5845
|
-
this._isPanelVisible = null;
|
|
5846
6184
|
this._content = this.createContentComponent(this.id, contentComponent);
|
|
5847
6185
|
this._tab = this.createTabComponent(this.id, tabComponent);
|
|
5848
6186
|
}
|
|
@@ -5850,25 +6188,8 @@
|
|
|
5850
6188
|
this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));
|
|
5851
6189
|
this.tab.init(params);
|
|
5852
6190
|
}
|
|
5853
|
-
updateParentGroup(
|
|
5854
|
-
|
|
5855
|
-
this._group = group;
|
|
5856
|
-
if (this._content.onGroupChange) {
|
|
5857
|
-
this._content.onGroupChange(group);
|
|
5858
|
-
}
|
|
5859
|
-
if (this._tab.onGroupChange) {
|
|
5860
|
-
this._tab.onGroupChange(group);
|
|
5861
|
-
}
|
|
5862
|
-
}
|
|
5863
|
-
if (isPanelVisible !== this._isPanelVisible) {
|
|
5864
|
-
this._isPanelVisible = isPanelVisible;
|
|
5865
|
-
if (this._content.onPanelVisibleChange) {
|
|
5866
|
-
this._content.onPanelVisibleChange(isPanelVisible);
|
|
5867
|
-
}
|
|
5868
|
-
if (this._tab.onPanelVisibleChange) {
|
|
5869
|
-
this._tab.onPanelVisibleChange(isPanelVisible);
|
|
5870
|
-
}
|
|
5871
|
-
}
|
|
6191
|
+
updateParentGroup(_group, _isPanelVisible) {
|
|
6192
|
+
// noop
|
|
5872
6193
|
}
|
|
5873
6194
|
layout(width, height) {
|
|
5874
6195
|
var _a, _b;
|
|
@@ -6301,117 +6622,6 @@
|
|
|
6301
6622
|
}
|
|
6302
6623
|
}
|
|
6303
6624
|
|
|
6304
|
-
class PopoutWindow extends CompositeDisposable {
|
|
6305
|
-
constructor(id, className, options) {
|
|
6306
|
-
super();
|
|
6307
|
-
this.id = id;
|
|
6308
|
-
this.className = className;
|
|
6309
|
-
this.options = options;
|
|
6310
|
-
this._onDidClose = new Emitter();
|
|
6311
|
-
this.onDidClose = this._onDidClose.event;
|
|
6312
|
-
this._window = null;
|
|
6313
|
-
this.addDisposables(this._onDidClose, {
|
|
6314
|
-
dispose: () => {
|
|
6315
|
-
this.close();
|
|
6316
|
-
},
|
|
6317
|
-
});
|
|
6318
|
-
}
|
|
6319
|
-
dimensions() {
|
|
6320
|
-
if (!this._window) {
|
|
6321
|
-
return null;
|
|
6322
|
-
}
|
|
6323
|
-
const left = this._window.value.screenX;
|
|
6324
|
-
const top = this._window.value.screenY;
|
|
6325
|
-
const width = this._window.value.innerWidth;
|
|
6326
|
-
const height = this._window.value.innerHeight;
|
|
6327
|
-
return { top, left, width, height };
|
|
6328
|
-
}
|
|
6329
|
-
close() {
|
|
6330
|
-
if (this._window) {
|
|
6331
|
-
this._window.disposable.dispose();
|
|
6332
|
-
this._window.value.close();
|
|
6333
|
-
this._window = null;
|
|
6334
|
-
}
|
|
6335
|
-
}
|
|
6336
|
-
open(content) {
|
|
6337
|
-
if (this._window) {
|
|
6338
|
-
throw new Error('instance of popout window is already open');
|
|
6339
|
-
}
|
|
6340
|
-
const url = `${this.options.url}`;
|
|
6341
|
-
const features = Object.entries({
|
|
6342
|
-
top: this.options.top,
|
|
6343
|
-
left: this.options.left,
|
|
6344
|
-
width: this.options.width,
|
|
6345
|
-
height: this.options.height,
|
|
6346
|
-
})
|
|
6347
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
6348
|
-
.join(',');
|
|
6349
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6350
|
-
const externalWindow = window.open(url, this.id, features);
|
|
6351
|
-
if (!externalWindow) {
|
|
6352
|
-
return;
|
|
6353
|
-
}
|
|
6354
|
-
const disposable = new CompositeDisposable();
|
|
6355
|
-
this._window = { value: externalWindow, disposable };
|
|
6356
|
-
const cleanUp = () => {
|
|
6357
|
-
this._onDidClose.fire();
|
|
6358
|
-
this._window = null;
|
|
6359
|
-
};
|
|
6360
|
-
// prevent any default content from loading
|
|
6361
|
-
// externalWindow.document.body.replaceWith(document.createElement('div'));
|
|
6362
|
-
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6363
|
-
cleanUp();
|
|
6364
|
-
this.close();
|
|
6365
|
-
}));
|
|
6366
|
-
externalWindow.addEventListener('load', () => {
|
|
6367
|
-
const externalDocument = externalWindow.document;
|
|
6368
|
-
externalDocument.title = document.title;
|
|
6369
|
-
const div = document.createElement('div');
|
|
6370
|
-
div.classList.add('dv-popout-window');
|
|
6371
|
-
div.style.position = 'absolute';
|
|
6372
|
-
div.style.width = '100%';
|
|
6373
|
-
div.style.height = '100%';
|
|
6374
|
-
div.style.top = '0px';
|
|
6375
|
-
div.style.left = '0px';
|
|
6376
|
-
div.classList.add(this.className);
|
|
6377
|
-
div.appendChild(content);
|
|
6378
|
-
externalDocument.body.replaceChildren(div);
|
|
6379
|
-
externalDocument.body.classList.add(this.className);
|
|
6380
|
-
addStyles(externalDocument, window.document.styleSheets);
|
|
6381
|
-
externalWindow.addEventListener('beforeunload', () => {
|
|
6382
|
-
// TODO: indicate external window is closing
|
|
6383
|
-
cleanUp();
|
|
6384
|
-
});
|
|
6385
|
-
});
|
|
6386
|
-
}
|
|
6387
|
-
}
|
|
6388
|
-
|
|
6389
|
-
class DockviewPopoutGroupPanel extends CompositeDisposable {
|
|
6390
|
-
constructor(id, group, options) {
|
|
6391
|
-
var _a;
|
|
6392
|
-
super();
|
|
6393
|
-
this.id = id;
|
|
6394
|
-
this.group = group;
|
|
6395
|
-
this.options = options;
|
|
6396
|
-
this.window = new PopoutWindow(id, (_a = options.className) !== null && _a !== void 0 ? _a : '', {
|
|
6397
|
-
url: this.options.popoutUrl,
|
|
6398
|
-
left: this.options.box.left,
|
|
6399
|
-
top: this.options.box.top,
|
|
6400
|
-
width: this.options.box.width,
|
|
6401
|
-
height: this.options.box.height,
|
|
6402
|
-
});
|
|
6403
|
-
group.model.location = 'popout';
|
|
6404
|
-
this.addDisposables(this.window, {
|
|
6405
|
-
dispose: () => {
|
|
6406
|
-
group.model.location = 'grid';
|
|
6407
|
-
},
|
|
6408
|
-
}, this.window.onDidClose(() => {
|
|
6409
|
-
this.dispose();
|
|
6410
|
-
}));
|
|
6411
|
-
this.window.open(group.element);
|
|
6412
|
-
}
|
|
6413
|
-
}
|
|
6414
|
-
|
|
6415
6625
|
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
6416
6626
|
const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };
|
|
6417
6627
|
|
|
@@ -6425,11 +6635,13 @@
|
|
|
6425
6635
|
super();
|
|
6426
6636
|
this.element = element;
|
|
6427
6637
|
this.map = {};
|
|
6638
|
+
this._disposed = false;
|
|
6428
6639
|
this.addDisposables(Disposable.from(() => {
|
|
6429
6640
|
for (const value of Object.values(this.map)) {
|
|
6430
6641
|
value.disposable.dispose();
|
|
6431
6642
|
value.destroy.dispose();
|
|
6432
6643
|
}
|
|
6644
|
+
this._disposed = true;
|
|
6433
6645
|
}));
|
|
6434
6646
|
}
|
|
6435
6647
|
detatch(panel) {
|
|
@@ -6469,7 +6681,7 @@
|
|
|
6469
6681
|
focusContainer.style.top = `${box.top - box2.top}px`;
|
|
6470
6682
|
focusContainer.style.width = `${box.width}px`;
|
|
6471
6683
|
focusContainer.style.height = `${box.height}px`;
|
|
6472
|
-
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location === 'floating');
|
|
6684
|
+
toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');
|
|
6473
6685
|
};
|
|
6474
6686
|
const visibilityChanged = () => {
|
|
6475
6687
|
if (panel.api.isVisible) {
|
|
@@ -6515,8 +6727,11 @@
|
|
|
6515
6727
|
resize();
|
|
6516
6728
|
}));
|
|
6517
6729
|
this.map[panel.api.id].destroy = Disposable.from(() => {
|
|
6518
|
-
|
|
6519
|
-
|
|
6730
|
+
var _a;
|
|
6731
|
+
if (panel.view.content.element.parentElement === focusContainer) {
|
|
6732
|
+
focusContainer.removeChild(panel.view.content.element);
|
|
6733
|
+
}
|
|
6734
|
+
(_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
|
|
6520
6735
|
});
|
|
6521
6736
|
queueMicrotask(() => {
|
|
6522
6737
|
if (this.isDisposed) {
|
|
@@ -6537,11 +6752,187 @@
|
|
|
6537
6752
|
}
|
|
6538
6753
|
}
|
|
6539
6754
|
|
|
6755
|
+
/******************************************************************************
|
|
6756
|
+
Copyright (c) Microsoft Corporation.
|
|
6757
|
+
|
|
6758
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6759
|
+
purpose with or without fee is hereby granted.
|
|
6760
|
+
|
|
6761
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
6762
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
6763
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
6764
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
6765
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
6766
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
6767
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
6768
|
+
***************************************************************************** */
|
|
6769
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
6770
|
+
|
|
6771
|
+
|
|
6772
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
6773
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6774
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6775
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6776
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6777
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
6778
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
6779
|
+
});
|
|
6780
|
+
}
|
|
6781
|
+
|
|
6782
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
6783
|
+
var e = new Error(message);
|
|
6784
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
6785
|
+
};
|
|
6786
|
+
|
|
6787
|
+
class PopoutWindow extends CompositeDisposable {
|
|
6788
|
+
get window() {
|
|
6789
|
+
var _a, _b;
|
|
6790
|
+
return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
6791
|
+
}
|
|
6792
|
+
constructor(target, className, options) {
|
|
6793
|
+
super();
|
|
6794
|
+
this.target = target;
|
|
6795
|
+
this.className = className;
|
|
6796
|
+
this.options = options;
|
|
6797
|
+
this._onWillClose = new Emitter();
|
|
6798
|
+
this.onWillClose = this._onWillClose.event;
|
|
6799
|
+
this._onDidClose = new Emitter();
|
|
6800
|
+
this.onDidClose = this._onDidClose.event;
|
|
6801
|
+
this._window = null;
|
|
6802
|
+
this.addDisposables(this._onWillClose, this._onDidClose, {
|
|
6803
|
+
dispose: () => {
|
|
6804
|
+
this.close();
|
|
6805
|
+
},
|
|
6806
|
+
});
|
|
6807
|
+
}
|
|
6808
|
+
dimensions() {
|
|
6809
|
+
if (!this._window) {
|
|
6810
|
+
return null;
|
|
6811
|
+
}
|
|
6812
|
+
const left = this._window.value.screenX;
|
|
6813
|
+
const top = this._window.value.screenY;
|
|
6814
|
+
const width = this._window.value.innerWidth;
|
|
6815
|
+
const height = this._window.value.innerHeight;
|
|
6816
|
+
return { top, left, width, height };
|
|
6817
|
+
}
|
|
6818
|
+
close() {
|
|
6819
|
+
var _a, _b;
|
|
6820
|
+
if (this._window) {
|
|
6821
|
+
this._onWillClose.fire();
|
|
6822
|
+
(_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6823
|
+
id: this.target,
|
|
6824
|
+
window: this._window.value,
|
|
6825
|
+
});
|
|
6826
|
+
this._window.disposable.dispose();
|
|
6827
|
+
this._window.value.close();
|
|
6828
|
+
this._window = null;
|
|
6829
|
+
this._onDidClose.fire();
|
|
6830
|
+
}
|
|
6831
|
+
}
|
|
6832
|
+
open() {
|
|
6833
|
+
var _a, _b;
|
|
6834
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6835
|
+
if (this._window) {
|
|
6836
|
+
throw new Error('instance of popout window is already open');
|
|
6837
|
+
}
|
|
6838
|
+
const url = `${this.options.url}`;
|
|
6839
|
+
const features = Object.entries({
|
|
6840
|
+
top: this.options.top,
|
|
6841
|
+
left: this.options.left,
|
|
6842
|
+
width: this.options.width,
|
|
6843
|
+
height: this.options.height,
|
|
6844
|
+
})
|
|
6845
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
6846
|
+
.join(',');
|
|
6847
|
+
/**
|
|
6848
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open
|
|
6849
|
+
*/
|
|
6850
|
+
const externalWindow = window.open(url, this.target, features);
|
|
6851
|
+
if (!externalWindow) {
|
|
6852
|
+
/**
|
|
6853
|
+
* Popup blocked
|
|
6854
|
+
*/
|
|
6855
|
+
return null;
|
|
6856
|
+
}
|
|
6857
|
+
const disposable = new CompositeDisposable();
|
|
6858
|
+
this._window = { value: externalWindow, disposable };
|
|
6859
|
+
disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
|
|
6860
|
+
/**
|
|
6861
|
+
* before the main window closes we should close this popup too
|
|
6862
|
+
* to be good citizens
|
|
6863
|
+
*
|
|
6864
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6865
|
+
*/
|
|
6866
|
+
this.close();
|
|
6867
|
+
}));
|
|
6868
|
+
const container = this.createPopoutWindowContainer();
|
|
6869
|
+
if (this.className) {
|
|
6870
|
+
container.classList.add(this.className);
|
|
6871
|
+
}
|
|
6872
|
+
(_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
6873
|
+
id: this.target,
|
|
6874
|
+
window: externalWindow,
|
|
6875
|
+
});
|
|
6876
|
+
return new Promise((resolve) => {
|
|
6877
|
+
externalWindow.addEventListener('unload', (e) => {
|
|
6878
|
+
// if page fails to load before unloading
|
|
6879
|
+
// this.close();
|
|
6880
|
+
});
|
|
6881
|
+
externalWindow.addEventListener('load', () => {
|
|
6882
|
+
/**
|
|
6883
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
|
|
6884
|
+
*/
|
|
6885
|
+
const externalDocument = externalWindow.document;
|
|
6886
|
+
externalDocument.title = document.title;
|
|
6887
|
+
externalDocument.body.appendChild(container);
|
|
6888
|
+
addStyles(externalDocument, window.document.styleSheets);
|
|
6889
|
+
/**
|
|
6890
|
+
* beforeunload must be registered after load for reasons I could not determine
|
|
6891
|
+
* otherwise the beforeunload event will not fire when the window is closed
|
|
6892
|
+
*/
|
|
6893
|
+
addDisposableWindowListener(externalWindow, 'beforeunload', () => {
|
|
6894
|
+
/**
|
|
6895
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
6896
|
+
*/
|
|
6897
|
+
this.close();
|
|
6898
|
+
});
|
|
6899
|
+
resolve(container);
|
|
6900
|
+
});
|
|
6901
|
+
});
|
|
6902
|
+
});
|
|
6903
|
+
}
|
|
6904
|
+
createPopoutWindowContainer() {
|
|
6905
|
+
const el = document.createElement('div');
|
|
6906
|
+
el.classList.add('dv-popout-window');
|
|
6907
|
+
el.id = 'dv-popout-window';
|
|
6908
|
+
el.style.position = 'absolute';
|
|
6909
|
+
el.style.width = '100%';
|
|
6910
|
+
el.style.height = '100%';
|
|
6911
|
+
el.style.top = '0px';
|
|
6912
|
+
el.style.left = '0px';
|
|
6913
|
+
return el;
|
|
6914
|
+
}
|
|
6915
|
+
}
|
|
6916
|
+
|
|
6540
6917
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
6541
6918
|
activationSize: { type: 'pixels', value: 10 },
|
|
6542
6919
|
size: { type: 'pixels', value: 20 },
|
|
6543
6920
|
};
|
|
6544
|
-
function
|
|
6921
|
+
function moveGroupWithoutDestroying(options) {
|
|
6922
|
+
const activePanel = options.from.activePanel;
|
|
6923
|
+
const panels = [...options.from.panels].map((panel) => {
|
|
6924
|
+
const removedPanel = options.from.model.removePanel(panel);
|
|
6925
|
+
options.from.model.renderContainer.detatch(panel);
|
|
6926
|
+
return removedPanel;
|
|
6927
|
+
});
|
|
6928
|
+
panels.forEach((panel) => {
|
|
6929
|
+
options.to.model.openPanel(panel, {
|
|
6930
|
+
skipSetActive: activePanel !== panel,
|
|
6931
|
+
skipSetGroupActive: true,
|
|
6932
|
+
});
|
|
6933
|
+
});
|
|
6934
|
+
}
|
|
6935
|
+
function getDockviewTheme(element) {
|
|
6545
6936
|
function toClassList(element) {
|
|
6546
6937
|
const list = [];
|
|
6547
6938
|
for (let i = 0; i < element.classList.length; i++) {
|
|
@@ -6592,6 +6983,7 @@
|
|
|
6592
6983
|
styles: options.styles,
|
|
6593
6984
|
parentElement: options.parentElement,
|
|
6594
6985
|
disableAutoResizing: options.disableAutoResizing,
|
|
6986
|
+
locked: options.locked,
|
|
6595
6987
|
});
|
|
6596
6988
|
this.nextGroupId = sequentialNumberGenerator();
|
|
6597
6989
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -6602,6 +6994,10 @@
|
|
|
6602
6994
|
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
6603
6995
|
this._onDidDrop = new Emitter();
|
|
6604
6996
|
this.onDidDrop = this._onDidDrop.event;
|
|
6997
|
+
this._onWillDrop = new Emitter();
|
|
6998
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
6999
|
+
this._onWillShowOverlay = new Emitter();
|
|
7000
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
6605
7001
|
this._onDidRemovePanel = new Emitter();
|
|
6606
7002
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
6607
7003
|
this._onDidAddPanel = new Emitter();
|
|
@@ -6610,15 +7006,36 @@
|
|
|
6610
7006
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
6611
7007
|
this._onDidActivePanelChange = new Emitter();
|
|
6612
7008
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
7009
|
+
this._onDidMovePanel = new Emitter();
|
|
6613
7010
|
this._floatingGroups = [];
|
|
6614
7011
|
this._popoutGroups = [];
|
|
7012
|
+
this._ignoreEvents = 0;
|
|
7013
|
+
this._onDidRemoveGroup = new Emitter();
|
|
7014
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
7015
|
+
this._onDidAddGroup = new Emitter();
|
|
7016
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
7017
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
7018
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7019
|
+
this._moving = false;
|
|
6615
7020
|
const gready = document.createElement('div');
|
|
6616
7021
|
gready.className = 'dv-overlay-render-container';
|
|
6617
7022
|
this.gridview.element.appendChild(gready);
|
|
6618
7023
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
6619
7024
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
6620
7025
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
6621
|
-
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop,
|
|
7026
|
+
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) => {
|
|
7027
|
+
if (!this._moving) {
|
|
7028
|
+
this._onDidAddGroup.fire(event);
|
|
7029
|
+
}
|
|
7030
|
+
}), this.onDidRemove((event) => {
|
|
7031
|
+
if (!this._moving) {
|
|
7032
|
+
this._onDidRemoveGroup.fire(event);
|
|
7033
|
+
}
|
|
7034
|
+
}), this.onDidActiveChange((event) => {
|
|
7035
|
+
if (!this._moving) {
|
|
7036
|
+
this._onDidActiveGroupChange.fire(event);
|
|
7037
|
+
}
|
|
7038
|
+
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
6622
7039
|
this.updateWatermark();
|
|
6623
7040
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
6624
7041
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -6629,7 +7046,7 @@
|
|
|
6629
7046
|
}
|
|
6630
7047
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
6631
7048
|
for (const group of [...this._popoutGroups]) {
|
|
6632
|
-
group.dispose();
|
|
7049
|
+
group.disposable.dispose();
|
|
6633
7050
|
}
|
|
6634
7051
|
}));
|
|
6635
7052
|
this._options = options;
|
|
@@ -6675,7 +7092,7 @@
|
|
|
6675
7092
|
return this.options.showDndOverlay({
|
|
6676
7093
|
nativeEvent: event,
|
|
6677
7094
|
position: position,
|
|
6678
|
-
target:
|
|
7095
|
+
target: 'edge',
|
|
6679
7096
|
getData: getPanelData,
|
|
6680
7097
|
});
|
|
6681
7098
|
}
|
|
@@ -6684,88 +7101,259 @@
|
|
|
6684
7101
|
acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
|
|
6685
7102
|
overlayModel: (_b = this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,
|
|
6686
7103
|
});
|
|
6687
|
-
this.addDisposables(this._rootDropTarget.
|
|
7104
|
+
this.addDisposables(this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {
|
|
7105
|
+
if (this.gridview.length > 0 && event.position === 'center') {
|
|
7106
|
+
// option only available when no panels in primary grid
|
|
7107
|
+
return;
|
|
7108
|
+
}
|
|
7109
|
+
this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
|
|
7110
|
+
kind: 'edge',
|
|
7111
|
+
}));
|
|
7112
|
+
}), this._rootDropTarget.onDrop((event) => {
|
|
6688
7113
|
var _a;
|
|
7114
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
7115
|
+
nativeEvent: event.nativeEvent,
|
|
7116
|
+
position: event.position,
|
|
7117
|
+
panel: undefined,
|
|
7118
|
+
api: this._api,
|
|
7119
|
+
group: undefined,
|
|
7120
|
+
getData: getPanelData,
|
|
7121
|
+
kind: 'edge',
|
|
7122
|
+
});
|
|
7123
|
+
this._onWillDrop.fire(willDropEvent);
|
|
7124
|
+
if (willDropEvent.defaultPrevented) {
|
|
7125
|
+
return;
|
|
7126
|
+
}
|
|
6689
7127
|
const data = getPanelData();
|
|
6690
7128
|
if (data) {
|
|
6691
|
-
this.moveGroupOrPanel(
|
|
7129
|
+
this.moveGroupOrPanel({
|
|
7130
|
+
from: {
|
|
7131
|
+
groupId: data.groupId,
|
|
7132
|
+
panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
|
|
7133
|
+
},
|
|
7134
|
+
to: {
|
|
7135
|
+
group: this.orthogonalize(event.position),
|
|
7136
|
+
position: 'center',
|
|
7137
|
+
},
|
|
7138
|
+
});
|
|
6692
7139
|
}
|
|
6693
7140
|
else {
|
|
6694
|
-
this._onDidDrop.fire(
|
|
7141
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
7142
|
+
nativeEvent: event.nativeEvent,
|
|
7143
|
+
position: event.position,
|
|
7144
|
+
panel: undefined,
|
|
7145
|
+
api: this._api,
|
|
7146
|
+
group: undefined,
|
|
7147
|
+
getData: getPanelData,
|
|
7148
|
+
}));
|
|
6695
7149
|
}
|
|
6696
7150
|
}), this._rootDropTarget);
|
|
6697
7151
|
this._api = new DockviewApi(this);
|
|
6698
7152
|
this.updateWatermark();
|
|
6699
7153
|
}
|
|
6700
|
-
addPopoutGroup(
|
|
6701
|
-
var _a;
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
7154
|
+
addPopoutGroup(itemToPopout, options) {
|
|
7155
|
+
var _a, _b, _c;
|
|
7156
|
+
if (itemToPopout instanceof DockviewPanel &&
|
|
7157
|
+
itemToPopout.group.size === 1) {
|
|
7158
|
+
return this.addPopoutGroup(itemToPopout.group);
|
|
7159
|
+
}
|
|
7160
|
+
const theme = getDockviewTheme(this.gridview.element);
|
|
7161
|
+
const element = this.element;
|
|
7162
|
+
function getBox() {
|
|
7163
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
7164
|
+
return options.position;
|
|
7165
|
+
}
|
|
7166
|
+
if (itemToPopout instanceof DockviewGroupPanel) {
|
|
7167
|
+
return itemToPopout.element.getBoundingClientRect();
|
|
7168
|
+
}
|
|
7169
|
+
if (itemToPopout.group) {
|
|
7170
|
+
return itemToPopout.group.element.getBoundingClientRect();
|
|
7171
|
+
}
|
|
7172
|
+
return element.getBoundingClientRect();
|
|
7173
|
+
}
|
|
7174
|
+
const box = getBox();
|
|
7175
|
+
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;
|
|
7176
|
+
if (itemToPopout.api.location.type === 'grid') {
|
|
7177
|
+
itemToPopout.api.setVisible(false);
|
|
7178
|
+
}
|
|
7179
|
+
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
7180
|
+
theme !== null && theme !== void 0 ? theme : '', {
|
|
7181
|
+
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
7182
|
+
left: window.screenX + box.left,
|
|
7183
|
+
top: window.screenY + box.top,
|
|
7184
|
+
width: box.width,
|
|
7185
|
+
height: box.height,
|
|
7186
|
+
onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
|
|
7187
|
+
onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
|
|
7188
|
+
});
|
|
7189
|
+
const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {
|
|
7190
|
+
popoutWindowDisposable.dispose();
|
|
7191
|
+
}));
|
|
7192
|
+
return _window
|
|
7193
|
+
.open()
|
|
7194
|
+
.then((popoutContainer) => {
|
|
7195
|
+
var _a;
|
|
7196
|
+
if (_window.isDisposed) {
|
|
7197
|
+
return;
|
|
6713
7198
|
}
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
if (!box) {
|
|
6718
|
-
box = group.element.getBoundingClientRect();
|
|
7199
|
+
if (popoutContainer === null) {
|
|
7200
|
+
popoutWindowDisposable.dispose();
|
|
7201
|
+
return;
|
|
6719
7202
|
}
|
|
6720
|
-
const
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
7203
|
+
const gready = document.createElement('div');
|
|
7204
|
+
gready.className = 'dv-overlay-render-container';
|
|
7205
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
7206
|
+
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
7207
|
+
? itemToPopout.group
|
|
7208
|
+
: itemToPopout;
|
|
7209
|
+
const referenceLocation = itemToPopout.api.location.type;
|
|
7210
|
+
const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
7211
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
7212
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
|
|
7213
|
+
this._onDidAddGroup.fire(group);
|
|
7214
|
+
}
|
|
7215
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
7216
|
+
this.movingLock(() => {
|
|
7217
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
7218
|
+
group.model.openPanel(panel);
|
|
7219
|
+
});
|
|
7220
|
+
}
|
|
7221
|
+
else {
|
|
7222
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7223
|
+
from: referenceGroup,
|
|
7224
|
+
to: group,
|
|
7225
|
+
}));
|
|
7226
|
+
switch (referenceLocation) {
|
|
7227
|
+
case 'grid':
|
|
7228
|
+
referenceGroup.api.setVisible(false);
|
|
7229
|
+
break;
|
|
7230
|
+
case 'floating':
|
|
7231
|
+
case 'popout':
|
|
7232
|
+
this.removeGroup(referenceGroup);
|
|
7233
|
+
break;
|
|
7234
|
+
}
|
|
7235
|
+
}
|
|
7236
|
+
popoutContainer.classList.add('dv-dockview');
|
|
7237
|
+
popoutContainer.style.overflow = 'hidden';
|
|
7238
|
+
popoutContainer.appendChild(gready);
|
|
7239
|
+
popoutContainer.appendChild(group.element);
|
|
7240
|
+
group.model.location = {
|
|
7241
|
+
type: 'popout',
|
|
7242
|
+
getWindow: () => _window.window,
|
|
7243
|
+
};
|
|
7244
|
+
this.doSetGroupAndPanelActive(group);
|
|
7245
|
+
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
7246
|
+
var _a;
|
|
7247
|
+
if (event.isActive) {
|
|
7248
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7249
|
+
}
|
|
7250
|
+
}), group.api.onWillFocus(() => {
|
|
7251
|
+
var _a;
|
|
7252
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
7253
|
+
}));
|
|
7254
|
+
let returnedGroup;
|
|
7255
|
+
const value = {
|
|
7256
|
+
window: _window,
|
|
7257
|
+
popoutGroup: group,
|
|
7258
|
+
referenceGroup: this.getPanel(referenceGroup.id)
|
|
7259
|
+
? referenceGroup.id
|
|
7260
|
+
: undefined,
|
|
7261
|
+
disposable: {
|
|
7262
|
+
dispose: () => {
|
|
7263
|
+
popoutWindowDisposable.dispose();
|
|
7264
|
+
return returnedGroup;
|
|
7265
|
+
},
|
|
7266
|
+
},
|
|
7267
|
+
};
|
|
7268
|
+
popoutWindowDisposable.addDisposables(
|
|
7269
|
+
/**
|
|
7270
|
+
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
7271
|
+
* since we can reply on the window resize event as we will occupy the full
|
|
7272
|
+
* window dimensions
|
|
7273
|
+
*/
|
|
7274
|
+
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
7275
|
+
group.layout(window.innerWidth, window.innerHeight);
|
|
7276
|
+
}), overlayRenderContainer, Disposable.from(() => {
|
|
7277
|
+
if (this.getPanel(referenceGroup.id)) {
|
|
7278
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7279
|
+
from: group,
|
|
7280
|
+
to: referenceGroup,
|
|
7281
|
+
}));
|
|
7282
|
+
if (!referenceGroup.api.isVisible) {
|
|
7283
|
+
referenceGroup.api.setVisible(true);
|
|
7284
|
+
}
|
|
7285
|
+
if (this.getPanel(group.id)) {
|
|
7286
|
+
this.doRemoveGroup(group, {
|
|
7287
|
+
skipPopoutAssociated: true,
|
|
7288
|
+
});
|
|
7289
|
+
}
|
|
7290
|
+
}
|
|
7291
|
+
else {
|
|
7292
|
+
if (this.getPanel(group.id)) {
|
|
7293
|
+
const removedGroup = this.doRemoveGroup(group, {
|
|
7294
|
+
skipDispose: true,
|
|
7295
|
+
skipActive: true,
|
|
7296
|
+
});
|
|
7297
|
+
removedGroup.model.renderContainer =
|
|
7298
|
+
this.overlayRenderContainer;
|
|
7299
|
+
removedGroup.model.location = { type: 'grid' };
|
|
7300
|
+
returnedGroup = removedGroup;
|
|
7301
|
+
}
|
|
7302
|
+
}
|
|
7303
|
+
}));
|
|
7304
|
+
this._popoutGroups.push(value);
|
|
7305
|
+
this.updateWatermark();
|
|
7306
|
+
})
|
|
7307
|
+
.catch((err) => {
|
|
7308
|
+
console.error(err);
|
|
6737
7309
|
});
|
|
6738
|
-
popoutWindow.addDisposables({
|
|
6739
|
-
dispose: () => {
|
|
6740
|
-
remove(this._popoutGroups, popoutWindow);
|
|
6741
|
-
this.updateWatermark();
|
|
6742
|
-
},
|
|
6743
|
-
}, popoutWindow.window.onDidClose(() => {
|
|
6744
|
-
this.doAddGroup(group, [0]);
|
|
6745
|
-
}));
|
|
6746
|
-
this._popoutGroups.push(popoutWindow);
|
|
6747
|
-
this.updateWatermark();
|
|
6748
7310
|
}
|
|
6749
7311
|
addFloatingGroup(item, coord, options) {
|
|
6750
|
-
var _a, _b, _c, _d, _e, _f;
|
|
7312
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
6751
7313
|
let group;
|
|
6752
7314
|
if (item instanceof DockviewPanel) {
|
|
6753
7315
|
group = this.createGroup();
|
|
6754
|
-
this.
|
|
7316
|
+
this._onDidAddGroup.fire(group);
|
|
7317
|
+
this.movingLock(() => this.removePanel(item, {
|
|
6755
7318
|
removeEmptyGroup: true,
|
|
6756
7319
|
skipDispose: true,
|
|
6757
|
-
|
|
6758
|
-
|
|
7320
|
+
skipSetActiveGroup: true,
|
|
7321
|
+
}));
|
|
7322
|
+
group.model.openPanel(item, { skipSetGroupActive: true });
|
|
6759
7323
|
}
|
|
6760
7324
|
else {
|
|
6761
7325
|
group = item;
|
|
7326
|
+
const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;
|
|
7327
|
+
const popoutReferenceGroup = popoutReferenceGroupId
|
|
7328
|
+
? this.getPanel(popoutReferenceGroupId)
|
|
7329
|
+
: undefined;
|
|
6762
7330
|
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
6763
7331
|
options.skipRemoveGroup;
|
|
6764
7332
|
if (!skip) {
|
|
6765
|
-
|
|
7333
|
+
if (popoutReferenceGroup) {
|
|
7334
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
7335
|
+
from: item,
|
|
7336
|
+
to: popoutReferenceGroup,
|
|
7337
|
+
}));
|
|
7338
|
+
this.doRemoveGroup(item, {
|
|
7339
|
+
skipPopoutReturn: true,
|
|
7340
|
+
skipPopoutAssociated: true,
|
|
7341
|
+
});
|
|
7342
|
+
this.doRemoveGroup(popoutReferenceGroup, {
|
|
7343
|
+
skipDispose: true,
|
|
7344
|
+
});
|
|
7345
|
+
group = popoutReferenceGroup;
|
|
7346
|
+
}
|
|
7347
|
+
else {
|
|
7348
|
+
this.doRemoveGroup(item, {
|
|
7349
|
+
skipDispose: true,
|
|
7350
|
+
skipPopoutReturn: true,
|
|
7351
|
+
skipPopoutAssociated: !!popoutReferenceGroup,
|
|
7352
|
+
});
|
|
7353
|
+
}
|
|
6766
7354
|
}
|
|
6767
7355
|
}
|
|
6768
|
-
group.model.location = 'floating';
|
|
7356
|
+
group.model.location = { type: 'floating' };
|
|
6769
7357
|
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
6770
7358
|
? Math.max(coord.x, 0)
|
|
6771
7359
|
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
@@ -6775,16 +7363,16 @@
|
|
|
6775
7363
|
const overlay = new Overlay({
|
|
6776
7364
|
container: this.gridview.element,
|
|
6777
7365
|
content: group.element,
|
|
6778
|
-
height: (
|
|
6779
|
-
width: (
|
|
7366
|
+
height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
|
|
7367
|
+
width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
|
|
6780
7368
|
left: overlayLeft,
|
|
6781
7369
|
top: overlayTop,
|
|
6782
7370
|
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6783
7371
|
? undefined
|
|
6784
|
-
: (
|
|
7372
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6785
7373
|
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
6786
7374
|
? undefined
|
|
6787
|
-
: (
|
|
7375
|
+
: (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
6788
7376
|
});
|
|
6789
7377
|
const el = group.element.querySelector('.void-container');
|
|
6790
7378
|
if (!el) {
|
|
@@ -6815,12 +7403,15 @@
|
|
|
6815
7403
|
}), {
|
|
6816
7404
|
dispose: () => {
|
|
6817
7405
|
disposable.dispose();
|
|
6818
|
-
group.model.location = 'grid';
|
|
7406
|
+
group.model.location = { type: 'grid' };
|
|
6819
7407
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
6820
7408
|
this.updateWatermark();
|
|
6821
7409
|
},
|
|
6822
7410
|
});
|
|
6823
7411
|
this._floatingGroups.push(floatingGroupPanel);
|
|
7412
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
7413
|
+
this.doSetGroupAndPanelActive(group);
|
|
7414
|
+
}
|
|
6824
7415
|
this.updateWatermark();
|
|
6825
7416
|
}
|
|
6826
7417
|
orthogonalize(position) {
|
|
@@ -6910,8 +7501,8 @@
|
|
|
6910
7501
|
return this.panels.find((panel) => panel.id === id);
|
|
6911
7502
|
}
|
|
6912
7503
|
setActivePanel(panel) {
|
|
6913
|
-
this.doSetGroupActive(panel.group);
|
|
6914
7504
|
panel.group.model.openPanel(panel);
|
|
7505
|
+
this.doSetGroupAndPanelActive(panel.group);
|
|
6915
7506
|
}
|
|
6916
7507
|
moveToNext(options = {}) {
|
|
6917
7508
|
var _a;
|
|
@@ -6972,7 +7563,8 @@
|
|
|
6972
7563
|
});
|
|
6973
7564
|
const popoutGroups = this._popoutGroups.map((group) => {
|
|
6974
7565
|
return {
|
|
6975
|
-
data: group.
|
|
7566
|
+
data: group.popoutGroup.toJSON(),
|
|
7567
|
+
gridReferenceGroup: group.referenceGroup,
|
|
6976
7568
|
position: group.window.dimensions(),
|
|
6977
7569
|
};
|
|
6978
7570
|
});
|
|
@@ -6990,7 +7582,7 @@
|
|
|
6990
7582
|
return result;
|
|
6991
7583
|
}
|
|
6992
7584
|
fromJSON(data) {
|
|
6993
|
-
var _a, _b;
|
|
7585
|
+
var _a, _b, _c;
|
|
6994
7586
|
this.clear();
|
|
6995
7587
|
if (typeof data !== 'object' || data === null) {
|
|
6996
7588
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -7029,7 +7621,7 @@
|
|
|
7029
7621
|
const isActive = typeof activeView === 'string' &&
|
|
7030
7622
|
activeView === panel.id;
|
|
7031
7623
|
group.model.openPanel(panel, {
|
|
7032
|
-
|
|
7624
|
+
skipSetActive: !isActive,
|
|
7033
7625
|
skipSetGroupActive: true,
|
|
7034
7626
|
});
|
|
7035
7627
|
}
|
|
@@ -7059,11 +7651,16 @@
|
|
|
7059
7651
|
}
|
|
7060
7652
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
7061
7653
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
7062
|
-
const { data, position } = serializedPopoutGroup;
|
|
7654
|
+
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
7063
7655
|
const group = createGroupFromSerializedState(data);
|
|
7064
|
-
this.addPopoutGroup(
|
|
7656
|
+
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
7657
|
+
? this.getPanel(gridReferenceGroup)
|
|
7658
|
+
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
7065
7659
|
skipRemoveGroup: true,
|
|
7066
7660
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
7661
|
+
overridePopoutGroup: gridReferenceGroup
|
|
7662
|
+
? group
|
|
7663
|
+
: undefined,
|
|
7067
7664
|
});
|
|
7068
7665
|
}
|
|
7069
7666
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -7110,12 +7707,13 @@
|
|
|
7110
7707
|
*/
|
|
7111
7708
|
throw err;
|
|
7112
7709
|
}
|
|
7710
|
+
this.updateWatermark();
|
|
7113
7711
|
this._onDidLayoutFromJSON.fire();
|
|
7114
7712
|
}
|
|
7115
7713
|
clear() {
|
|
7116
7714
|
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
7117
7715
|
const hasActiveGroup = !!this.activeGroup;
|
|
7118
|
-
|
|
7716
|
+
!!this.activePanel;
|
|
7119
7717
|
for (const group of groups) {
|
|
7120
7718
|
// remove the group will automatically remove the panels
|
|
7121
7719
|
this.removeGroup(group, { skipActive: true });
|
|
@@ -7123,9 +7721,6 @@
|
|
|
7123
7721
|
if (hasActiveGroup) {
|
|
7124
7722
|
this.doSetGroupAndPanelActive(undefined);
|
|
7125
7723
|
}
|
|
7126
|
-
if (hasActivePanel) {
|
|
7127
|
-
this._onDidActivePanelChange.fire(undefined);
|
|
7128
|
-
}
|
|
7129
7724
|
this.gridview.clear();
|
|
7130
7725
|
}
|
|
7131
7726
|
closeAllGroups() {
|
|
@@ -7166,6 +7761,7 @@
|
|
|
7166
7761
|
const group = this.orthogonalize(directionToPosition(options.position.direction));
|
|
7167
7762
|
const panel = this.createPanel(options, group);
|
|
7168
7763
|
group.model.openPanel(panel);
|
|
7764
|
+
this.doSetGroupAndPanelActive(group);
|
|
7169
7765
|
return panel;
|
|
7170
7766
|
}
|
|
7171
7767
|
}
|
|
@@ -7177,6 +7773,7 @@
|
|
|
7177
7773
|
const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
|
|
7178
7774
|
if (options.floating) {
|
|
7179
7775
|
const group = this.createGroup();
|
|
7776
|
+
this._onDidAddGroup.fire(group);
|
|
7180
7777
|
const o = typeof options.floating === 'object' &&
|
|
7181
7778
|
options.floating !== null
|
|
7182
7779
|
? options.floating
|
|
@@ -7184,16 +7781,16 @@
|
|
|
7184
7781
|
this.addFloatingGroup(group, o, {
|
|
7185
7782
|
inDragMode: false,
|
|
7186
7783
|
skipRemoveGroup: true,
|
|
7784
|
+
skipActiveGroup: true,
|
|
7187
7785
|
});
|
|
7188
|
-
this._onDidAddGroup.fire(group);
|
|
7189
7786
|
panel = this.createPanel(options, group);
|
|
7190
7787
|
group.model.openPanel(panel);
|
|
7191
|
-
this.doSetGroupAndPanelActive(group);
|
|
7192
7788
|
}
|
|
7193
|
-
else if (referenceGroup.api.location === 'floating' ||
|
|
7789
|
+
else if (referenceGroup.api.location.type === 'floating' ||
|
|
7194
7790
|
target === 'center') {
|
|
7195
7791
|
panel = this.createPanel(options, referenceGroup);
|
|
7196
7792
|
referenceGroup.model.openPanel(panel);
|
|
7793
|
+
this.doSetGroupAndPanelActive(referenceGroup);
|
|
7197
7794
|
}
|
|
7198
7795
|
else {
|
|
7199
7796
|
const location = getGridLocation(referenceGroup.element);
|
|
@@ -7201,10 +7798,12 @@
|
|
|
7201
7798
|
const group = this.createGroupAtLocation(relativeLocation);
|
|
7202
7799
|
panel = this.createPanel(options, group);
|
|
7203
7800
|
group.model.openPanel(panel);
|
|
7801
|
+
this.doSetGroupAndPanelActive(group);
|
|
7204
7802
|
}
|
|
7205
7803
|
}
|
|
7206
7804
|
else if (options.floating) {
|
|
7207
7805
|
const group = this.createGroup();
|
|
7806
|
+
this._onDidAddGroup.fire(group);
|
|
7208
7807
|
const o = typeof options.floating === 'object' &&
|
|
7209
7808
|
options.floating !== null
|
|
7210
7809
|
? options.floating
|
|
@@ -7212,16 +7811,16 @@
|
|
|
7212
7811
|
this.addFloatingGroup(group, o, {
|
|
7213
7812
|
inDragMode: false,
|
|
7214
7813
|
skipRemoveGroup: true,
|
|
7814
|
+
skipActiveGroup: true,
|
|
7215
7815
|
});
|
|
7216
|
-
this._onDidAddGroup.fire(group);
|
|
7217
7816
|
panel = this.createPanel(options, group);
|
|
7218
7817
|
group.model.openPanel(panel);
|
|
7219
|
-
this.doSetGroupAndPanelActive(group);
|
|
7220
7818
|
}
|
|
7221
7819
|
else {
|
|
7222
7820
|
const group = this.createGroupAtLocation();
|
|
7223
7821
|
panel = this.createPanel(options, group);
|
|
7224
7822
|
group.model.openPanel(panel);
|
|
7823
|
+
this.doSetGroupAndPanelActive(group);
|
|
7225
7824
|
}
|
|
7226
7825
|
return panel;
|
|
7227
7826
|
}
|
|
@@ -7233,13 +7832,15 @@
|
|
|
7233
7832
|
if (!group) {
|
|
7234
7833
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
7235
7834
|
}
|
|
7236
|
-
group.model.removePanel(panel
|
|
7835
|
+
group.model.removePanel(panel, {
|
|
7836
|
+
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
7837
|
+
});
|
|
7237
7838
|
if (!options.skipDispose) {
|
|
7238
|
-
|
|
7839
|
+
panel.group.model.renderContainer.detatch(panel);
|
|
7239
7840
|
panel.dispose();
|
|
7240
7841
|
}
|
|
7241
7842
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
7242
|
-
this.removeGroup(group);
|
|
7843
|
+
this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
|
|
7243
7844
|
}
|
|
7244
7845
|
}
|
|
7245
7846
|
createWatermarkComponent() {
|
|
@@ -7252,7 +7853,7 @@
|
|
|
7252
7853
|
}
|
|
7253
7854
|
updateWatermark() {
|
|
7254
7855
|
var _a, _b;
|
|
7255
|
-
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
7856
|
+
if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {
|
|
7256
7857
|
if (!this.watermark) {
|
|
7257
7858
|
this.watermark = this.createWatermarkComponent();
|
|
7258
7859
|
this.watermark.init({
|
|
@@ -7298,36 +7899,42 @@
|
|
|
7298
7899
|
}
|
|
7299
7900
|
else {
|
|
7300
7901
|
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
7902
|
+
if (!options.skipSetActive) {
|
|
7903
|
+
this.doSetGroupAndPanelActive(group);
|
|
7904
|
+
}
|
|
7301
7905
|
return group;
|
|
7302
7906
|
}
|
|
7303
7907
|
const target = toTarget(options.direction || 'within');
|
|
7304
7908
|
const location = getGridLocation(referenceGroup.element);
|
|
7305
7909
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
7306
7910
|
this.doAddGroup(group, relativeLocation);
|
|
7911
|
+
if (!options.skipSetActive) {
|
|
7912
|
+
this.doSetGroupAndPanelActive(group);
|
|
7913
|
+
}
|
|
7307
7914
|
return group;
|
|
7308
7915
|
}
|
|
7309
7916
|
else {
|
|
7310
7917
|
this.doAddGroup(group);
|
|
7918
|
+
this.doSetGroupAndPanelActive(group);
|
|
7311
7919
|
return group;
|
|
7312
7920
|
}
|
|
7313
7921
|
}
|
|
7314
7922
|
removeGroup(group, options) {
|
|
7923
|
+
this.doRemoveGroup(group, options);
|
|
7924
|
+
}
|
|
7925
|
+
doRemoveGroup(group, options) {
|
|
7315
7926
|
var _a;
|
|
7316
7927
|
const panels = [...group.panels]; // reassign since group panels will mutate
|
|
7317
|
-
|
|
7318
|
-
|
|
7319
|
-
|
|
7320
|
-
|
|
7321
|
-
|
|
7928
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7929
|
+
for (const panel of panels) {
|
|
7930
|
+
this.removePanel(panel, {
|
|
7931
|
+
removeEmptyGroup: false,
|
|
7932
|
+
skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
|
|
7933
|
+
});
|
|
7934
|
+
}
|
|
7322
7935
|
}
|
|
7323
7936
|
const activePanel = this.activePanel;
|
|
7324
|
-
|
|
7325
|
-
if (this.activePanel !== activePanel) {
|
|
7326
|
-
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7327
|
-
}
|
|
7328
|
-
}
|
|
7329
|
-
doRemoveGroup(group, options) {
|
|
7330
|
-
if (group.api.location === 'floating') {
|
|
7937
|
+
if (group.api.location.type === 'floating') {
|
|
7331
7938
|
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
7332
7939
|
if (floatingGroup) {
|
|
7333
7940
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -7339,60 +7946,124 @@
|
|
|
7339
7946
|
floatingGroup.dispose();
|
|
7340
7947
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7341
7948
|
const groups = Array.from(this._groups.values());
|
|
7342
|
-
this.
|
|
7949
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7343
7950
|
}
|
|
7344
7951
|
return floatingGroup.group;
|
|
7345
7952
|
}
|
|
7346
7953
|
throw new Error('failed to find floating group');
|
|
7347
7954
|
}
|
|
7348
|
-
if (group.api.location === 'popout') {
|
|
7349
|
-
const selectedGroup = this._popoutGroups.find((_) => _.
|
|
7955
|
+
if (group.api.location.type === 'popout') {
|
|
7956
|
+
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
7350
7957
|
if (selectedGroup) {
|
|
7351
7958
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
7352
|
-
|
|
7959
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
|
|
7960
|
+
const refGroup = selectedGroup.referenceGroup
|
|
7961
|
+
? this.getPanel(selectedGroup.referenceGroup)
|
|
7962
|
+
: undefined;
|
|
7963
|
+
if (refGroup) {
|
|
7964
|
+
this.removeGroup(refGroup);
|
|
7965
|
+
}
|
|
7966
|
+
}
|
|
7967
|
+
selectedGroup.popoutGroup.dispose();
|
|
7353
7968
|
this._groups.delete(group.id);
|
|
7354
7969
|
this._onDidRemoveGroup.fire(group);
|
|
7355
7970
|
}
|
|
7356
|
-
selectedGroup.dispose();
|
|
7971
|
+
const removedGroup = selectedGroup.disposable.dispose();
|
|
7972
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
7973
|
+
this.doAddGroup(removedGroup, [0]);
|
|
7974
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
7975
|
+
}
|
|
7357
7976
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
7358
7977
|
const groups = Array.from(this._groups.values());
|
|
7359
|
-
this.
|
|
7978
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
7360
7979
|
}
|
|
7361
|
-
|
|
7980
|
+
this.updateWatermark();
|
|
7981
|
+
return selectedGroup.popoutGroup;
|
|
7362
7982
|
}
|
|
7363
7983
|
throw new Error('failed to find popout group');
|
|
7364
7984
|
}
|
|
7365
|
-
|
|
7985
|
+
const re = super.doRemoveGroup(group, options);
|
|
7986
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
7987
|
+
if (this.activePanel !== activePanel) {
|
|
7988
|
+
this._onDidActivePanelChange.fire(this.activePanel);
|
|
7989
|
+
}
|
|
7990
|
+
}
|
|
7991
|
+
return re;
|
|
7366
7992
|
}
|
|
7367
|
-
|
|
7368
|
-
|
|
7993
|
+
movingLock(func) {
|
|
7994
|
+
const isMoving = this._moving;
|
|
7995
|
+
try {
|
|
7996
|
+
this._moving = true;
|
|
7997
|
+
return func();
|
|
7998
|
+
}
|
|
7999
|
+
finally {
|
|
8000
|
+
this._moving = isMoving;
|
|
8001
|
+
}
|
|
8002
|
+
}
|
|
8003
|
+
moveGroupOrPanel(options) {
|
|
8004
|
+
var _a;
|
|
8005
|
+
const destinationGroup = options.to.group;
|
|
8006
|
+
const sourceGroupId = options.from.groupId;
|
|
8007
|
+
const sourceItemId = options.from.panelId;
|
|
8008
|
+
const destinationTarget = options.to.position;
|
|
8009
|
+
const destinationIndex = options.to.index;
|
|
7369
8010
|
const sourceGroup = sourceGroupId
|
|
7370
8011
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
7371
8012
|
: undefined;
|
|
8013
|
+
if (!sourceGroup) {
|
|
8014
|
+
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
8015
|
+
}
|
|
7372
8016
|
if (sourceItemId === undefined) {
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
|
|
8017
|
+
/**
|
|
8018
|
+
* Moving an entire group into another group
|
|
8019
|
+
*/
|
|
8020
|
+
this.moveGroup({
|
|
8021
|
+
from: { group: sourceGroup },
|
|
8022
|
+
to: {
|
|
8023
|
+
group: destinationGroup,
|
|
8024
|
+
position: destinationTarget,
|
|
8025
|
+
},
|
|
8026
|
+
});
|
|
7376
8027
|
return;
|
|
7377
8028
|
}
|
|
7378
8029
|
if (!destinationTarget || destinationTarget === 'center') {
|
|
7379
|
-
|
|
7380
|
-
|
|
8030
|
+
/**
|
|
8031
|
+
* Dropping a panel within another group
|
|
8032
|
+
*/
|
|
8033
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8034
|
+
skipSetActive: false,
|
|
8035
|
+
skipSetActiveGroup: true,
|
|
8036
|
+
}));
|
|
8037
|
+
if (!removedPanel) {
|
|
7381
8038
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7382
8039
|
}
|
|
7383
|
-
if (
|
|
7384
|
-
|
|
8040
|
+
if (sourceGroup.model.size === 0) {
|
|
8041
|
+
// remove the group and do not set a new group as active
|
|
8042
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
7385
8043
|
}
|
|
7386
|
-
destinationGroup.model.openPanel(
|
|
8044
|
+
this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {
|
|
7387
8045
|
index: destinationIndex,
|
|
8046
|
+
skipSetGroupActive: true,
|
|
8047
|
+
}));
|
|
8048
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
8049
|
+
this._onDidMovePanel.fire({
|
|
8050
|
+
panel: removedPanel,
|
|
7388
8051
|
});
|
|
7389
8052
|
}
|
|
7390
8053
|
else {
|
|
8054
|
+
/**
|
|
8055
|
+
* Dropping a panel to the extremities of a group which will place that panel
|
|
8056
|
+
* into an adjacent group
|
|
8057
|
+
*/
|
|
7391
8058
|
const referenceLocation = getGridLocation(destinationGroup.element);
|
|
7392
8059
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7393
|
-
if (sourceGroup
|
|
8060
|
+
if (sourceGroup.size < 2) {
|
|
8061
|
+
/**
|
|
8062
|
+
* If we are moving from a group which only has one panel left we will consider
|
|
8063
|
+
* moving the group itself rather than moving the panel into a newly created group
|
|
8064
|
+
*/
|
|
7394
8065
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
7395
|
-
if (sourceGroup.api.location === 'grid') {
|
|
8066
|
+
if (sourceGroup.api.location.type === 'grid') {
|
|
7396
8067
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
7397
8068
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
7398
8069
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -7400,77 +8071,122 @@
|
|
|
7400
8071
|
// if a group has one tab - we are essentially moving the 'group'
|
|
7401
8072
|
// which is equivalent to swapping two views in this case
|
|
7402
8073
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
8074
|
+
return;
|
|
7403
8075
|
}
|
|
7404
8076
|
}
|
|
7405
8077
|
// source group will become empty so delete the group
|
|
7406
|
-
const targetGroup = this.doRemoveGroup(sourceGroup, {
|
|
8078
|
+
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
7407
8079
|
skipActive: true,
|
|
7408
8080
|
skipDispose: true,
|
|
7409
|
-
});
|
|
8081
|
+
}));
|
|
7410
8082
|
// after deleting the group we need to re-evaulate the ref location
|
|
7411
8083
|
const updatedReferenceLocation = getGridLocation(destinationGroup.element);
|
|
7412
8084
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
7413
|
-
this.doAddGroup(targetGroup, location);
|
|
8085
|
+
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
8086
|
+
this.doSetGroupAndPanelActive(targetGroup);
|
|
7414
8087
|
}
|
|
7415
8088
|
else {
|
|
7416
|
-
|
|
7417
|
-
|
|
8089
|
+
/**
|
|
8090
|
+
* The group we are removing from has many panels, we need to remove the panels we are moving,
|
|
8091
|
+
* create a new group, add the panels to that new group and add the new group in an appropiate position
|
|
8092
|
+
*/
|
|
8093
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
8094
|
+
skipSetActive: false,
|
|
8095
|
+
skipSetActiveGroup: true,
|
|
8096
|
+
}));
|
|
8097
|
+
if (!removedPanel) {
|
|
7418
8098
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
7419
8099
|
}
|
|
7420
8100
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
7421
8101
|
const group = this.createGroupAtLocation(dropLocation);
|
|
7422
|
-
group.model.openPanel(
|
|
8102
|
+
this.movingLock(() => group.model.openPanel(removedPanel, {
|
|
8103
|
+
skipSetGroupActive: true,
|
|
8104
|
+
}));
|
|
8105
|
+
this.doSetGroupAndPanelActive(group);
|
|
7423
8106
|
}
|
|
7424
8107
|
}
|
|
7425
8108
|
}
|
|
7426
|
-
moveGroup(
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
8109
|
+
moveGroup(options) {
|
|
8110
|
+
const from = options.from.group;
|
|
8111
|
+
const to = options.to.group;
|
|
8112
|
+
const target = options.to.position;
|
|
8113
|
+
if (target === 'center') {
|
|
8114
|
+
const activePanel = from.activePanel;
|
|
8115
|
+
const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {
|
|
8116
|
+
skipSetActive: true,
|
|
8117
|
+
})));
|
|
8118
|
+
if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
|
|
8119
|
+
this.doRemoveGroup(from, { skipActive: true });
|
|
8120
|
+
}
|
|
8121
|
+
this.movingLock(() => {
|
|
7434
8122
|
for (const panel of panels) {
|
|
7435
|
-
|
|
7436
|
-
|
|
8123
|
+
to.model.openPanel(panel, {
|
|
8124
|
+
skipSetActive: panel !== activePanel,
|
|
8125
|
+
skipSetGroupActive: true,
|
|
7437
8126
|
});
|
|
7438
8127
|
}
|
|
7439
|
-
}
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
7446
|
-
|
|
7447
|
-
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
|
|
7451
|
-
|
|
8128
|
+
});
|
|
8129
|
+
this.doSetGroupAndPanelActive(to);
|
|
8130
|
+
panels.forEach((panel) => {
|
|
8131
|
+
this._onDidMovePanel.fire({ panel });
|
|
8132
|
+
});
|
|
8133
|
+
}
|
|
8134
|
+
else {
|
|
8135
|
+
switch (from.api.location.type) {
|
|
8136
|
+
case 'grid':
|
|
8137
|
+
this.gridview.removeView(getGridLocation(from.element));
|
|
8138
|
+
break;
|
|
8139
|
+
case 'floating': {
|
|
8140
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
8141
|
+
if (!selectedFloatingGroup) {
|
|
8142
|
+
throw new Error('failed to find floating group');
|
|
7452
8143
|
}
|
|
7453
|
-
|
|
7454
|
-
|
|
7455
|
-
|
|
7456
|
-
|
|
7457
|
-
|
|
7458
|
-
|
|
8144
|
+
selectedFloatingGroup.dispose();
|
|
8145
|
+
break;
|
|
8146
|
+
}
|
|
8147
|
+
case 'popout': {
|
|
8148
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
8149
|
+
if (!selectedPopoutGroup) {
|
|
8150
|
+
throw new Error('failed to find popout group');
|
|
7459
8151
|
}
|
|
8152
|
+
selectedPopoutGroup.disposable.dispose();
|
|
7460
8153
|
}
|
|
7461
|
-
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
7462
|
-
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
7463
|
-
this.gridview.addView(sourceGroup, exports.Sizing.Distribute, dropLocation);
|
|
7464
8154
|
}
|
|
8155
|
+
const referenceLocation = getGridLocation(to.element);
|
|
8156
|
+
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
8157
|
+
this.gridview.addView(from, exports.Sizing.Distribute, dropLocation);
|
|
8158
|
+
from.panels.forEach((panel) => {
|
|
8159
|
+
this._onDidMovePanel.fire({ panel });
|
|
8160
|
+
});
|
|
7465
8161
|
}
|
|
7466
8162
|
}
|
|
7467
|
-
|
|
7468
|
-
|
|
8163
|
+
doSetGroupActive(group) {
|
|
8164
|
+
super.doSetGroupActive(group);
|
|
8165
|
+
const activePanel = this.activePanel;
|
|
8166
|
+
if (!this._moving &&
|
|
8167
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8168
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8169
|
+
}
|
|
8170
|
+
}
|
|
8171
|
+
doSetGroupAndPanelActive(group) {
|
|
8172
|
+
super.doSetGroupActive(group);
|
|
7469
8173
|
const activePanel = this.activePanel;
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
this.
|
|
8174
|
+
if (group &&
|
|
8175
|
+
this.hasMaximizedGroup() &&
|
|
8176
|
+
!this.isMaximizedGroup(group)) {
|
|
8177
|
+
this.exitMaximizedGroup();
|
|
8178
|
+
}
|
|
8179
|
+
if (!this._moving &&
|
|
8180
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
8181
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
8182
|
+
}
|
|
8183
|
+
}
|
|
8184
|
+
getNextGroupId() {
|
|
8185
|
+
let id = this.nextGroupId.next();
|
|
8186
|
+
while (this._groups.has(id)) {
|
|
8187
|
+
id = this.nextGroupId.next();
|
|
7473
8188
|
}
|
|
8189
|
+
return id;
|
|
7474
8190
|
}
|
|
7475
8191
|
createGroup(options) {
|
|
7476
8192
|
if (!options) {
|
|
@@ -7488,7 +8204,7 @@
|
|
|
7488
8204
|
}
|
|
7489
8205
|
}
|
|
7490
8206
|
const view = new DockviewGroupPanel(this, id, options);
|
|
7491
|
-
view.init({ params: {}, accessor:
|
|
8207
|
+
view.init({ params: {}, accessor: this });
|
|
7492
8208
|
if (!this._groups.has(view.id)) {
|
|
7493
8209
|
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
7494
8210
|
this._onWillDragPanel.fire(event);
|
|
@@ -7496,20 +8212,48 @@
|
|
|
7496
8212
|
this._onWillDragGroup.fire(event);
|
|
7497
8213
|
}), view.model.onMove((event) => {
|
|
7498
8214
|
const { groupId, itemId, target, index } = event;
|
|
7499
|
-
this.moveGroupOrPanel(
|
|
8215
|
+
this.moveGroupOrPanel({
|
|
8216
|
+
from: { groupId: groupId, panelId: itemId },
|
|
8217
|
+
to: {
|
|
8218
|
+
group: view,
|
|
8219
|
+
position: target,
|
|
8220
|
+
index,
|
|
8221
|
+
},
|
|
8222
|
+
});
|
|
7500
8223
|
}), view.model.onDidDrop((event) => {
|
|
7501
|
-
this._onDidDrop.fire(
|
|
8224
|
+
this._onDidDrop.fire(event);
|
|
8225
|
+
}), view.model.onWillDrop((event) => {
|
|
8226
|
+
this._onWillDrop.fire(event);
|
|
8227
|
+
}), view.model.onWillShowOverlay((event) => {
|
|
8228
|
+
if (this.options.disableDnd) {
|
|
8229
|
+
event.preventDefault();
|
|
8230
|
+
return;
|
|
8231
|
+
}
|
|
8232
|
+
this._onWillShowOverlay.fire(event);
|
|
7502
8233
|
}), view.model.onDidAddPanel((event) => {
|
|
8234
|
+
if (this._moving) {
|
|
8235
|
+
return;
|
|
8236
|
+
}
|
|
7503
8237
|
this._onDidAddPanel.fire(event.panel);
|
|
7504
8238
|
}), view.model.onDidRemovePanel((event) => {
|
|
8239
|
+
if (this._moving) {
|
|
8240
|
+
return;
|
|
8241
|
+
}
|
|
7505
8242
|
this._onDidRemovePanel.fire(event.panel);
|
|
7506
8243
|
}), view.model.onDidActivePanelChange((event) => {
|
|
7507
|
-
this.
|
|
8244
|
+
if (this._moving) {
|
|
8245
|
+
return;
|
|
8246
|
+
}
|
|
8247
|
+
if (event.panel !== this.activePanel) {
|
|
8248
|
+
return;
|
|
8249
|
+
}
|
|
8250
|
+
if (this._onDidActivePanelChange.value !== event.panel) {
|
|
8251
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
8252
|
+
}
|
|
7508
8253
|
}));
|
|
7509
8254
|
this._groups.set(view.id, { value: view, disposable });
|
|
7510
8255
|
}
|
|
7511
|
-
// TODO: must be called after the above listeners have been setup,
|
|
7512
|
-
// not an ideal pattern
|
|
8256
|
+
// TODO: must be called after the above listeners have been setup, not an ideal pattern
|
|
7513
8257
|
view.initialize();
|
|
7514
8258
|
return view;
|
|
7515
8259
|
}
|
|
@@ -7562,7 +8306,20 @@
|
|
|
7562
8306
|
});
|
|
7563
8307
|
this._onDidLayoutfromJSON = new Emitter();
|
|
7564
8308
|
this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
|
|
8309
|
+
this._onDidRemoveGroup = new Emitter();
|
|
8310
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
8311
|
+
this._onDidAddGroup = new Emitter();
|
|
8312
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
8313
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
8314
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
7565
8315
|
this._options = options;
|
|
8316
|
+
this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {
|
|
8317
|
+
this._onDidAddGroup.fire(event);
|
|
8318
|
+
}), this.onDidRemove((event) => {
|
|
8319
|
+
this._onDidRemoveGroup.fire(event);
|
|
8320
|
+
}), this.onDidActiveChange((event) => {
|
|
8321
|
+
this._onDidActiveGroupChange.fire(event);
|
|
8322
|
+
}));
|
|
7566
8323
|
if (!this.options.components) {
|
|
7567
8324
|
this.options.components = {};
|
|
7568
8325
|
}
|
|
@@ -7737,6 +8494,7 @@
|
|
|
7737
8494
|
});
|
|
7738
8495
|
this.registerPanel(view);
|
|
7739
8496
|
this.doAddGroup(view, relativeLocation, options.size);
|
|
8497
|
+
this.doSetGroupActive(view);
|
|
7740
8498
|
return view;
|
|
7741
8499
|
}
|
|
7742
8500
|
registerPanel(panel) {
|
|
@@ -7878,19 +8636,19 @@
|
|
|
7878
8636
|
const index = this.panels.indexOf(panel);
|
|
7879
8637
|
this.splitview.setViewVisible(index, visible);
|
|
7880
8638
|
}
|
|
7881
|
-
setActive(
|
|
7882
|
-
this._activePanel =
|
|
8639
|
+
setActive(panel, skipFocus) {
|
|
8640
|
+
this._activePanel = panel;
|
|
7883
8641
|
this.panels
|
|
7884
|
-
.filter((v) => v !==
|
|
8642
|
+
.filter((v) => v !== panel)
|
|
7885
8643
|
.forEach((v) => {
|
|
7886
8644
|
v.api._onDidActiveChange.fire({ isActive: false });
|
|
7887
8645
|
if (!skipFocus) {
|
|
7888
8646
|
v.focus();
|
|
7889
8647
|
}
|
|
7890
8648
|
});
|
|
7891
|
-
|
|
8649
|
+
panel.api._onDidActiveChange.fire({ isActive: true });
|
|
7892
8650
|
if (!skipFocus) {
|
|
7893
|
-
|
|
8651
|
+
panel.focus();
|
|
7894
8652
|
}
|
|
7895
8653
|
}
|
|
7896
8654
|
removePanel(panel, sizing) {
|
|
@@ -8189,6 +8947,10 @@
|
|
|
8189
8947
|
});
|
|
8190
8948
|
this.addDisposables(this._disposable);
|
|
8191
8949
|
}
|
|
8950
|
+
setVisible(panel, visible) {
|
|
8951
|
+
const index = this.panels.indexOf(panel);
|
|
8952
|
+
this.paneview.setViewVisible(index, visible);
|
|
8953
|
+
}
|
|
8192
8954
|
focus() {
|
|
8193
8955
|
//noop
|
|
8194
8956
|
}
|
|
@@ -8235,6 +8997,7 @@
|
|
|
8235
8997
|
isExpanded: options.isExpanded,
|
|
8236
8998
|
title: options.title,
|
|
8237
8999
|
containerApi: new PaneviewApi(this),
|
|
9000
|
+
accessor: this,
|
|
8238
9001
|
});
|
|
8239
9002
|
this.paneview.addPane(view, size, index);
|
|
8240
9003
|
view.orientation = this.paneview.orientation;
|
|
@@ -8334,6 +9097,7 @@
|
|
|
8334
9097
|
title: data.title,
|
|
8335
9098
|
isExpanded: !!view.expanded,
|
|
8336
9099
|
containerApi: new PaneviewApi(this),
|
|
9100
|
+
accessor: this,
|
|
8337
9101
|
});
|
|
8338
9102
|
panel.orientation = this.paneview.orientation;
|
|
8339
9103
|
});
|
|
@@ -8422,7 +9186,7 @@
|
|
|
8422
9186
|
this._onDidChange = new Emitter();
|
|
8423
9187
|
this.onDidChange = this._onDidChange.event;
|
|
8424
9188
|
this.api.initialize(this);
|
|
8425
|
-
this.addDisposables(this._onDidChange, this.api.
|
|
9189
|
+
this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {
|
|
8426
9190
|
const { isVisible } = event;
|
|
8427
9191
|
const { accessor } = this._params;
|
|
8428
9192
|
accessor.setVisible(this, isVisible);
|
|
@@ -8491,11 +9255,13 @@
|
|
|
8491
9255
|
exports.DockviewApi = DockviewApi;
|
|
8492
9256
|
exports.DockviewComponent = DockviewComponent;
|
|
8493
9257
|
exports.DockviewCompositeDisposable = CompositeDisposable;
|
|
9258
|
+
exports.DockviewDidDropEvent = DockviewDidDropEvent;
|
|
8494
9259
|
exports.DockviewEmitter = Emitter;
|
|
8495
9260
|
exports.DockviewGroupPanel = DockviewGroupPanel;
|
|
8496
9261
|
exports.DockviewGroupPanelModel = DockviewGroupPanelModel;
|
|
8497
9262
|
exports.DockviewMutableDisposable = MutableDisposable;
|
|
8498
9263
|
exports.DockviewPanel = DockviewPanel;
|
|
9264
|
+
exports.DockviewWillDropEvent = DockviewWillDropEvent;
|
|
8499
9265
|
exports.DraggablePaneviewPanel = DraggablePaneviewPanel;
|
|
8500
9266
|
exports.Gridview = Gridview;
|
|
8501
9267
|
exports.GridviewApi = GridviewApi;
|
|
@@ -8514,6 +9280,7 @@
|
|
|
8514
9280
|
exports.SplitviewComponent = SplitviewComponent;
|
|
8515
9281
|
exports.SplitviewPanel = SplitviewPanel;
|
|
8516
9282
|
exports.Tab = Tab;
|
|
9283
|
+
exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
|
|
8517
9284
|
exports.createComponent = createComponent;
|
|
8518
9285
|
exports.directionToPosition = directionToPosition;
|
|
8519
9286
|
exports.getDirectionOrientation = getDirectionOrientation;
|