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