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