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
|
@@ -3,9 +3,8 @@ import { directionToPosition, Droptarget, } from '../dnd/droptarget';
|
|
|
3
3
|
import { tail, sequenceEquals, remove } from '../array';
|
|
4
4
|
import { DockviewPanel } from './dockviewPanel';
|
|
5
5
|
import { CompositeDisposable, Disposable } from '../lifecycle';
|
|
6
|
-
import { Event, Emitter } from '../events';
|
|
6
|
+
import { Event, Emitter, addDisposableWindowListener } from '../events';
|
|
7
7
|
import { Watermark } from './components/watermark/watermark';
|
|
8
|
-
import { DockviewDropTargets, } from './types';
|
|
9
8
|
import { sequentialNumberGenerator } from '../math';
|
|
10
9
|
import { DefaultDockviewDeserialzier } from './deserializer';
|
|
11
10
|
import { createComponent } from '../panel/componentFactory';
|
|
@@ -13,20 +12,35 @@ import { isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGro
|
|
|
13
12
|
import { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';
|
|
14
13
|
import { DockviewApi } from '../api/component.api';
|
|
15
14
|
import { Orientation, Sizing } from '../splitview/splitview';
|
|
15
|
+
import { DockviewDidDropEvent, DockviewWillDropEvent, } from './dockviewGroupPanelModel';
|
|
16
16
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
17
17
|
import { DockviewPanelModel } from './dockviewPanelModel';
|
|
18
18
|
import { getPanelData } from '../dnd/dataTransfer';
|
|
19
19
|
import { Overlay } from '../dnd/overlay';
|
|
20
20
|
import { toggleClass, watchElementResize } from '../dom';
|
|
21
21
|
import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
|
|
22
|
-
import { DockviewPopoutGroupPanel } from './dockviewPopoutGroupPanel';
|
|
23
22
|
import { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, } from '../constants';
|
|
24
23
|
import { OverlayRenderContainer, } from '../overlayRenderContainer';
|
|
24
|
+
import { PopoutWindow } from '../popoutWindow';
|
|
25
25
|
const DEFAULT_ROOT_OVERLAY_MODEL = {
|
|
26
26
|
activationSize: { type: 'pixels', value: 10 },
|
|
27
27
|
size: { type: 'pixels', value: 20 },
|
|
28
28
|
};
|
|
29
|
-
function
|
|
29
|
+
function moveGroupWithoutDestroying(options) {
|
|
30
|
+
const activePanel = options.from.activePanel;
|
|
31
|
+
const panels = [...options.from.panels].map((panel) => {
|
|
32
|
+
const removedPanel = options.from.model.removePanel(panel);
|
|
33
|
+
options.from.model.renderContainer.detatch(panel);
|
|
34
|
+
return removedPanel;
|
|
35
|
+
});
|
|
36
|
+
panels.forEach((panel) => {
|
|
37
|
+
options.to.model.openPanel(panel, {
|
|
38
|
+
skipSetActive: activePanel !== panel,
|
|
39
|
+
skipSetGroupActive: true,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function getDockviewTheme(element) {
|
|
30
44
|
function toClassList(element) {
|
|
31
45
|
const list = [];
|
|
32
46
|
for (let i = 0; i < element.classList.length; i++) {
|
|
@@ -137,6 +151,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
137
151
|
styles: options.styles,
|
|
138
152
|
parentElement: options.parentElement,
|
|
139
153
|
disableAutoResizing: options.disableAutoResizing,
|
|
154
|
+
locked: options.locked,
|
|
140
155
|
});
|
|
141
156
|
this.nextGroupId = sequentialNumberGenerator();
|
|
142
157
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
@@ -147,6 +162,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
147
162
|
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
148
163
|
this._onDidDrop = new Emitter();
|
|
149
164
|
this.onDidDrop = this._onDidDrop.event;
|
|
165
|
+
this._onWillDrop = new Emitter();
|
|
166
|
+
this.onWillDrop = this._onWillDrop.event;
|
|
167
|
+
this._onWillShowOverlay = new Emitter();
|
|
168
|
+
this.onWillShowOverlay = this._onWillShowOverlay.event;
|
|
150
169
|
this._onDidRemovePanel = new Emitter();
|
|
151
170
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
152
171
|
this._onDidAddPanel = new Emitter();
|
|
@@ -155,15 +174,36 @@ export class DockviewComponent extends BaseGrid {
|
|
|
155
174
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
156
175
|
this._onDidActivePanelChange = new Emitter();
|
|
157
176
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
177
|
+
this._onDidMovePanel = new Emitter();
|
|
158
178
|
this._floatingGroups = [];
|
|
159
179
|
this._popoutGroups = [];
|
|
180
|
+
this._ignoreEvents = 0;
|
|
181
|
+
this._onDidRemoveGroup = new Emitter();
|
|
182
|
+
this.onDidRemoveGroup = this._onDidRemoveGroup.event;
|
|
183
|
+
this._onDidAddGroup = new Emitter();
|
|
184
|
+
this.onDidAddGroup = this._onDidAddGroup.event;
|
|
185
|
+
this._onDidActiveGroupChange = new Emitter();
|
|
186
|
+
this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
|
|
187
|
+
this._moving = false;
|
|
160
188
|
const gready = document.createElement('div');
|
|
161
189
|
gready.className = 'dv-overlay-render-container';
|
|
162
190
|
this.gridview.element.appendChild(gready);
|
|
163
191
|
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
164
192
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
165
193
|
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
166
|
-
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop,
|
|
194
|
+
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) => {
|
|
195
|
+
if (!this._moving) {
|
|
196
|
+
this._onDidAddGroup.fire(event);
|
|
197
|
+
}
|
|
198
|
+
}), this.onDidRemove((event) => {
|
|
199
|
+
if (!this._moving) {
|
|
200
|
+
this._onDidRemoveGroup.fire(event);
|
|
201
|
+
}
|
|
202
|
+
}), this.onDidActiveChange((event) => {
|
|
203
|
+
if (!this._moving) {
|
|
204
|
+
this._onDidActiveGroupChange.fire(event);
|
|
205
|
+
}
|
|
206
|
+
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
167
207
|
this.updateWatermark();
|
|
168
208
|
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
169
209
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -174,7 +214,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
174
214
|
}
|
|
175
215
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
176
216
|
for (const group of [...this._popoutGroups]) {
|
|
177
|
-
group.dispose();
|
|
217
|
+
group.disposable.dispose();
|
|
178
218
|
}
|
|
179
219
|
}));
|
|
180
220
|
this._options = options;
|
|
@@ -220,7 +260,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
220
260
|
return this.options.showDndOverlay({
|
|
221
261
|
nativeEvent: event,
|
|
222
262
|
position: position,
|
|
223
|
-
target:
|
|
263
|
+
target: 'edge',
|
|
224
264
|
getData: getPanelData,
|
|
225
265
|
});
|
|
226
266
|
}
|
|
@@ -231,86 +271,249 @@ export class DockviewComponent extends BaseGrid {
|
|
|
231
271
|
});
|
|
232
272
|
this.addDisposables(this._rootDropTarget.onDrop((event) => {
|
|
233
273
|
var _a;
|
|
274
|
+
const willDropEvent = new DockviewWillDropEvent({
|
|
275
|
+
nativeEvent: event.nativeEvent,
|
|
276
|
+
position: event.position,
|
|
277
|
+
panel: undefined,
|
|
278
|
+
api: this._api,
|
|
279
|
+
group: undefined,
|
|
280
|
+
getData: getPanelData,
|
|
281
|
+
kind: 'content',
|
|
282
|
+
});
|
|
283
|
+
this._onWillDrop.fire(willDropEvent);
|
|
284
|
+
if (willDropEvent.defaultPrevented) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
234
287
|
const data = getPanelData();
|
|
235
288
|
if (data) {
|
|
236
|
-
this.moveGroupOrPanel(
|
|
289
|
+
this.moveGroupOrPanel({
|
|
290
|
+
from: {
|
|
291
|
+
groupId: data.groupId,
|
|
292
|
+
panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
|
|
293
|
+
},
|
|
294
|
+
to: {
|
|
295
|
+
group: this.orthogonalize(event.position),
|
|
296
|
+
position: 'center',
|
|
297
|
+
},
|
|
298
|
+
});
|
|
237
299
|
}
|
|
238
300
|
else {
|
|
239
|
-
this._onDidDrop.fire(
|
|
301
|
+
this._onDidDrop.fire(new DockviewDidDropEvent({
|
|
302
|
+
nativeEvent: event.nativeEvent,
|
|
303
|
+
position: event.position,
|
|
304
|
+
panel: undefined,
|
|
305
|
+
api: this._api,
|
|
306
|
+
group: undefined,
|
|
307
|
+
getData: getPanelData,
|
|
308
|
+
}));
|
|
240
309
|
}
|
|
241
310
|
}), this._rootDropTarget);
|
|
242
311
|
this._api = new DockviewApi(this);
|
|
243
312
|
this.updateWatermark();
|
|
244
313
|
}
|
|
245
|
-
addPopoutGroup(
|
|
246
|
-
var _a;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
group = this.createGroup();
|
|
251
|
-
this.removePanel(item, {
|
|
252
|
-
removeEmptyGroup: true,
|
|
253
|
-
skipDispose: true,
|
|
254
|
-
});
|
|
255
|
-
group.model.openPanel(item);
|
|
256
|
-
if (!box) {
|
|
257
|
-
box = this.element.getBoundingClientRect();
|
|
258
|
-
}
|
|
314
|
+
addPopoutGroup(itemToPopout, options) {
|
|
315
|
+
var _a, _b, _c;
|
|
316
|
+
if (itemToPopout instanceof DockviewPanel &&
|
|
317
|
+
itemToPopout.group.size === 1) {
|
|
318
|
+
return this.addPopoutGroup(itemToPopout.group);
|
|
259
319
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
320
|
+
const theme = getDockviewTheme(this.gridview.element);
|
|
321
|
+
const element = this.element;
|
|
322
|
+
function getBox() {
|
|
323
|
+
if (options === null || options === void 0 ? void 0 : options.position) {
|
|
324
|
+
return options.position;
|
|
264
325
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
326
|
+
if (itemToPopout instanceof DockviewGroupPanel) {
|
|
327
|
+
return itemToPopout.element.getBoundingClientRect();
|
|
328
|
+
}
|
|
329
|
+
if (itemToPopout.group) {
|
|
330
|
+
return itemToPopout.group.element.getBoundingClientRect();
|
|
269
331
|
}
|
|
332
|
+
return element.getBoundingClientRect();
|
|
270
333
|
}
|
|
271
|
-
const
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
334
|
+
const box = getBox();
|
|
335
|
+
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;
|
|
336
|
+
if (itemToPopout.api.location.type === 'grid') {
|
|
337
|
+
itemToPopout.api.setHidden(true);
|
|
338
|
+
}
|
|
339
|
+
const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
|
|
340
|
+
theme !== null && theme !== void 0 ? theme : '', {
|
|
341
|
+
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
342
|
+
left: window.screenX + box.left,
|
|
343
|
+
top: window.screenY + box.top,
|
|
344
|
+
width: box.width,
|
|
345
|
+
height: box.height,
|
|
346
|
+
onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
|
|
347
|
+
onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
|
|
282
348
|
});
|
|
283
|
-
|
|
284
|
-
dispose
|
|
285
|
-
remove(this._popoutGroups, popoutWindow);
|
|
286
|
-
this.updateWatermark();
|
|
287
|
-
},
|
|
288
|
-
}, popoutWindow.window.onDidClose(() => {
|
|
289
|
-
this.doAddGroup(group, [0]);
|
|
349
|
+
const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {
|
|
350
|
+
popoutWindowDisposable.dispose();
|
|
290
351
|
}));
|
|
291
|
-
|
|
292
|
-
|
|
352
|
+
return _window
|
|
353
|
+
.open()
|
|
354
|
+
.then((popoutContainer) => {
|
|
355
|
+
var _a;
|
|
356
|
+
if (_window.isDisposed) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
if (popoutContainer === null) {
|
|
360
|
+
popoutWindowDisposable.dispose();
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
const gready = document.createElement('div');
|
|
364
|
+
gready.className = 'dv-overlay-render-container';
|
|
365
|
+
const overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
366
|
+
const referenceGroup = itemToPopout instanceof DockviewPanel
|
|
367
|
+
? itemToPopout.group
|
|
368
|
+
: itemToPopout;
|
|
369
|
+
const referenceLocation = itemToPopout.api.location.type;
|
|
370
|
+
const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
|
|
371
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
372
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
|
|
373
|
+
this._onDidAddGroup.fire(group);
|
|
374
|
+
}
|
|
375
|
+
if (itemToPopout instanceof DockviewPanel) {
|
|
376
|
+
this.movingLock(() => {
|
|
377
|
+
const panel = referenceGroup.model.removePanel(itemToPopout);
|
|
378
|
+
group.model.openPanel(panel);
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
383
|
+
from: referenceGroup,
|
|
384
|
+
to: group,
|
|
385
|
+
}));
|
|
386
|
+
switch (referenceLocation) {
|
|
387
|
+
case 'grid':
|
|
388
|
+
referenceGroup.api.setHidden(true);
|
|
389
|
+
break;
|
|
390
|
+
case 'floating':
|
|
391
|
+
case 'popout':
|
|
392
|
+
this.removeGroup(referenceGroup);
|
|
393
|
+
break;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
popoutContainer.classList.add('dv-dockview');
|
|
397
|
+
popoutContainer.style.overflow = 'hidden';
|
|
398
|
+
popoutContainer.appendChild(gready);
|
|
399
|
+
popoutContainer.appendChild(group.element);
|
|
400
|
+
group.model.location = {
|
|
401
|
+
type: 'popout',
|
|
402
|
+
getWindow: () => _window.window,
|
|
403
|
+
};
|
|
404
|
+
this.doSetGroupAndPanelActive(group);
|
|
405
|
+
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
|
|
406
|
+
var _a;
|
|
407
|
+
if (event.isActive) {
|
|
408
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
409
|
+
}
|
|
410
|
+
}), group.api.onWillFocus(() => {
|
|
411
|
+
var _a;
|
|
412
|
+
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
413
|
+
}));
|
|
414
|
+
let returnedGroup;
|
|
415
|
+
const value = {
|
|
416
|
+
window: _window,
|
|
417
|
+
popoutGroup: group,
|
|
418
|
+
referenceGroup: this.getPanel(referenceGroup.id)
|
|
419
|
+
? referenceGroup.id
|
|
420
|
+
: undefined,
|
|
421
|
+
disposable: {
|
|
422
|
+
dispose: () => {
|
|
423
|
+
popoutWindowDisposable.dispose();
|
|
424
|
+
return returnedGroup;
|
|
425
|
+
},
|
|
426
|
+
},
|
|
427
|
+
};
|
|
428
|
+
popoutWindowDisposable.addDisposables(
|
|
429
|
+
/**
|
|
430
|
+
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
431
|
+
* since we can reply on the window resize event as we will occupy the full
|
|
432
|
+
* window dimensions
|
|
433
|
+
*/
|
|
434
|
+
addDisposableWindowListener(_window.window, 'resize', () => {
|
|
435
|
+
group.layout(window.innerWidth, window.innerHeight);
|
|
436
|
+
}), overlayRenderContainer, Disposable.from(() => {
|
|
437
|
+
if (this.getPanel(referenceGroup.id)) {
|
|
438
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
439
|
+
from: group,
|
|
440
|
+
to: referenceGroup,
|
|
441
|
+
}));
|
|
442
|
+
if (referenceGroup.api.isHidden) {
|
|
443
|
+
referenceGroup.api.setHidden(false);
|
|
444
|
+
}
|
|
445
|
+
if (this.getPanel(group.id)) {
|
|
446
|
+
this.doRemoveGroup(group, {
|
|
447
|
+
skipPopoutAssociated: true,
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
if (this.getPanel(group.id)) {
|
|
453
|
+
const removedGroup = this.doRemoveGroup(group, {
|
|
454
|
+
skipDispose: true,
|
|
455
|
+
skipActive: true,
|
|
456
|
+
});
|
|
457
|
+
removedGroup.model.renderContainer =
|
|
458
|
+
this.overlayRenderContainer;
|
|
459
|
+
removedGroup.model.location = { type: 'grid' };
|
|
460
|
+
returnedGroup = removedGroup;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}));
|
|
464
|
+
this._popoutGroups.push(value);
|
|
465
|
+
this.updateWatermark();
|
|
466
|
+
})
|
|
467
|
+
.catch((err) => {
|
|
468
|
+
console.error(err);
|
|
469
|
+
});
|
|
293
470
|
}
|
|
294
471
|
addFloatingGroup(item, coord, options) {
|
|
295
|
-
var _a, _b, _c, _d, _e, _f;
|
|
472
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
296
473
|
let group;
|
|
297
474
|
if (item instanceof DockviewPanel) {
|
|
298
475
|
group = this.createGroup();
|
|
299
|
-
this.
|
|
476
|
+
this._onDidAddGroup.fire(group);
|
|
477
|
+
this.movingLock(() => this.removePanel(item, {
|
|
300
478
|
removeEmptyGroup: true,
|
|
301
479
|
skipDispose: true,
|
|
302
|
-
|
|
303
|
-
|
|
480
|
+
skipSetActiveGroup: true,
|
|
481
|
+
}));
|
|
482
|
+
group.model.openPanel(item, { skipSetGroupActive: true });
|
|
304
483
|
}
|
|
305
484
|
else {
|
|
306
485
|
group = item;
|
|
486
|
+
const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;
|
|
487
|
+
const popoutReferenceGroup = popoutReferenceGroupId
|
|
488
|
+
? this.getPanel(popoutReferenceGroupId)
|
|
489
|
+
: undefined;
|
|
307
490
|
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
308
491
|
options.skipRemoveGroup;
|
|
309
492
|
if (!skip) {
|
|
310
|
-
|
|
493
|
+
if (popoutReferenceGroup) {
|
|
494
|
+
this.movingLock(() => moveGroupWithoutDestroying({
|
|
495
|
+
from: item,
|
|
496
|
+
to: popoutReferenceGroup,
|
|
497
|
+
}));
|
|
498
|
+
this.doRemoveGroup(item, {
|
|
499
|
+
skipPopoutReturn: true,
|
|
500
|
+
skipPopoutAssociated: true,
|
|
501
|
+
});
|
|
502
|
+
this.doRemoveGroup(popoutReferenceGroup, {
|
|
503
|
+
skipDispose: true,
|
|
504
|
+
});
|
|
505
|
+
group = popoutReferenceGroup;
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
this.doRemoveGroup(item, {
|
|
509
|
+
skipDispose: true,
|
|
510
|
+
skipPopoutReturn: true,
|
|
511
|
+
skipPopoutAssociated: !!popoutReferenceGroup,
|
|
512
|
+
});
|
|
513
|
+
}
|
|
311
514
|
}
|
|
312
515
|
}
|
|
313
|
-
group.model.location = 'floating';
|
|
516
|
+
group.model.location = { type: 'floating' };
|
|
314
517
|
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
315
518
|
? Math.max(coord.x, 0)
|
|
316
519
|
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
@@ -320,16 +523,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
320
523
|
const overlay = new Overlay({
|
|
321
524
|
container: this.gridview.element,
|
|
322
525
|
content: group.element,
|
|
323
|
-
height: (
|
|
324
|
-
width: (
|
|
526
|
+
height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
|
|
527
|
+
width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
|
|
325
528
|
left: overlayLeft,
|
|
326
529
|
top: overlayTop,
|
|
327
530
|
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
328
531
|
? undefined
|
|
329
|
-
: (
|
|
532
|
+
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
330
533
|
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
331
534
|
? undefined
|
|
332
|
-
: (
|
|
535
|
+
: (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
333
536
|
});
|
|
334
537
|
const el = group.element.querySelector('.void-container');
|
|
335
538
|
if (!el) {
|
|
@@ -360,12 +563,15 @@ export class DockviewComponent extends BaseGrid {
|
|
|
360
563
|
}), {
|
|
361
564
|
dispose: () => {
|
|
362
565
|
disposable.dispose();
|
|
363
|
-
group.model.location = 'grid';
|
|
566
|
+
group.model.location = { type: 'grid' };
|
|
364
567
|
remove(this._floatingGroups, floatingGroupPanel);
|
|
365
568
|
this.updateWatermark();
|
|
366
569
|
},
|
|
367
570
|
});
|
|
368
571
|
this._floatingGroups.push(floatingGroupPanel);
|
|
572
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
|
|
573
|
+
this.doSetGroupAndPanelActive(group);
|
|
574
|
+
}
|
|
369
575
|
this.updateWatermark();
|
|
370
576
|
}
|
|
371
577
|
orthogonalize(position) {
|
|
@@ -457,8 +663,8 @@ export class DockviewComponent extends BaseGrid {
|
|
|
457
663
|
return this.panels.find((panel) => panel.id === id);
|
|
458
664
|
}
|
|
459
665
|
setActivePanel(panel) {
|
|
460
|
-
this.doSetGroupActive(panel.group);
|
|
461
666
|
panel.group.model.openPanel(panel);
|
|
667
|
+
this.doSetGroupAndPanelActive(panel.group);
|
|
462
668
|
}
|
|
463
669
|
moveToNext(options = {}) {
|
|
464
670
|
var _a;
|
|
@@ -519,7 +725,8 @@ export class DockviewComponent extends BaseGrid {
|
|
|
519
725
|
});
|
|
520
726
|
const popoutGroups = this._popoutGroups.map((group) => {
|
|
521
727
|
return {
|
|
522
|
-
data: group.
|
|
728
|
+
data: group.popoutGroup.toJSON(),
|
|
729
|
+
gridReferenceGroup: group.referenceGroup,
|
|
523
730
|
position: group.window.dimensions(),
|
|
524
731
|
};
|
|
525
732
|
});
|
|
@@ -537,7 +744,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
537
744
|
return result;
|
|
538
745
|
}
|
|
539
746
|
fromJSON(data) {
|
|
540
|
-
var _a, _b;
|
|
747
|
+
var _a, _b, _c;
|
|
541
748
|
this.clear();
|
|
542
749
|
if (typeof data !== 'object' || data === null) {
|
|
543
750
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -576,7 +783,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
576
783
|
const isActive = typeof activeView === 'string' &&
|
|
577
784
|
activeView === panel.id;
|
|
578
785
|
group.model.openPanel(panel, {
|
|
579
|
-
|
|
786
|
+
skipSetActive: !isActive,
|
|
580
787
|
skipSetGroupActive: true,
|
|
581
788
|
});
|
|
582
789
|
}
|
|
@@ -606,11 +813,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
606
813
|
}
|
|
607
814
|
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
608
815
|
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
609
|
-
const { data, position } = serializedPopoutGroup;
|
|
816
|
+
const { data, position, gridReferenceGroup } = serializedPopoutGroup;
|
|
610
817
|
const group = createGroupFromSerializedState(data);
|
|
611
|
-
this.addPopoutGroup(
|
|
818
|
+
this.addPopoutGroup((_c = (gridReferenceGroup
|
|
819
|
+
? this.getPanel(gridReferenceGroup)
|
|
820
|
+
: undefined)) !== null && _c !== void 0 ? _c : group, {
|
|
612
821
|
skipRemoveGroup: true,
|
|
613
822
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
823
|
+
overridePopoutGroup: gridReferenceGroup
|
|
824
|
+
? group
|
|
825
|
+
: undefined,
|
|
614
826
|
});
|
|
615
827
|
}
|
|
616
828
|
for (const floatingGroup of this._floatingGroups) {
|
|
@@ -657,6 +869,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
657
869
|
*/
|
|
658
870
|
throw err;
|
|
659
871
|
}
|
|
872
|
+
this.updateWatermark();
|
|
660
873
|
this._onDidLayoutFromJSON.fire();
|
|
661
874
|
}
|
|
662
875
|
clear() {
|
|
@@ -670,9 +883,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
670
883
|
if (hasActiveGroup) {
|
|
671
884
|
this.doSetGroupAndPanelActive(undefined);
|
|
672
885
|
}
|
|
673
|
-
if (hasActivePanel) {
|
|
674
|
-
this._onDidActivePanelChange.fire(undefined);
|
|
675
|
-
}
|
|
676
886
|
this.gridview.clear();
|
|
677
887
|
}
|
|
678
888
|
closeAllGroups() {
|
|
@@ -713,6 +923,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
713
923
|
const group = this.orthogonalize(directionToPosition(options.position.direction));
|
|
714
924
|
const panel = this.createPanel(options, group);
|
|
715
925
|
group.model.openPanel(panel);
|
|
926
|
+
this.doSetGroupAndPanelActive(group);
|
|
716
927
|
return panel;
|
|
717
928
|
}
|
|
718
929
|
}
|
|
@@ -724,6 +935,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
724
935
|
const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
|
|
725
936
|
if (options.floating) {
|
|
726
937
|
const group = this.createGroup();
|
|
938
|
+
this._onDidAddGroup.fire(group);
|
|
727
939
|
const o = typeof options.floating === 'object' &&
|
|
728
940
|
options.floating !== null
|
|
729
941
|
? options.floating
|
|
@@ -731,16 +943,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
731
943
|
this.addFloatingGroup(group, o, {
|
|
732
944
|
inDragMode: false,
|
|
733
945
|
skipRemoveGroup: true,
|
|
946
|
+
skipActiveGroup: true,
|
|
734
947
|
});
|
|
735
|
-
this._onDidAddGroup.fire(group);
|
|
736
948
|
panel = this.createPanel(options, group);
|
|
737
949
|
group.model.openPanel(panel);
|
|
738
|
-
this.doSetGroupAndPanelActive(group);
|
|
739
950
|
}
|
|
740
|
-
else if (referenceGroup.api.location === 'floating' ||
|
|
951
|
+
else if (referenceGroup.api.location.type === 'floating' ||
|
|
741
952
|
target === 'center') {
|
|
742
953
|
panel = this.createPanel(options, referenceGroup);
|
|
743
954
|
referenceGroup.model.openPanel(panel);
|
|
955
|
+
this.doSetGroupAndPanelActive(referenceGroup);
|
|
744
956
|
}
|
|
745
957
|
else {
|
|
746
958
|
const location = getGridLocation(referenceGroup.element);
|
|
@@ -748,10 +960,12 @@ export class DockviewComponent extends BaseGrid {
|
|
|
748
960
|
const group = this.createGroupAtLocation(relativeLocation);
|
|
749
961
|
panel = this.createPanel(options, group);
|
|
750
962
|
group.model.openPanel(panel);
|
|
963
|
+
this.doSetGroupAndPanelActive(group);
|
|
751
964
|
}
|
|
752
965
|
}
|
|
753
966
|
else if (options.floating) {
|
|
754
967
|
const group = this.createGroup();
|
|
968
|
+
this._onDidAddGroup.fire(group);
|
|
755
969
|
const o = typeof options.floating === 'object' &&
|
|
756
970
|
options.floating !== null
|
|
757
971
|
? options.floating
|
|
@@ -759,16 +973,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
759
973
|
this.addFloatingGroup(group, o, {
|
|
760
974
|
inDragMode: false,
|
|
761
975
|
skipRemoveGroup: true,
|
|
976
|
+
skipActiveGroup: true,
|
|
762
977
|
});
|
|
763
|
-
this._onDidAddGroup.fire(group);
|
|
764
978
|
panel = this.createPanel(options, group);
|
|
765
979
|
group.model.openPanel(panel);
|
|
766
|
-
this.doSetGroupAndPanelActive(group);
|
|
767
980
|
}
|
|
768
981
|
else {
|
|
769
982
|
const group = this.createGroupAtLocation();
|
|
770
983
|
panel = this.createPanel(options, group);
|
|
771
984
|
group.model.openPanel(panel);
|
|
985
|
+
this.doSetGroupAndPanelActive(group);
|
|
772
986
|
}
|
|
773
987
|
return panel;
|
|
774
988
|
}
|
|
@@ -780,13 +994,15 @@ export class DockviewComponent extends BaseGrid {
|
|
|
780
994
|
if (!group) {
|
|
781
995
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
782
996
|
}
|
|
783
|
-
group.model.removePanel(panel
|
|
997
|
+
group.model.removePanel(panel, {
|
|
998
|
+
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
999
|
+
});
|
|
784
1000
|
if (!options.skipDispose) {
|
|
785
|
-
|
|
1001
|
+
panel.group.model.renderContainer.detatch(panel);
|
|
786
1002
|
panel.dispose();
|
|
787
1003
|
}
|
|
788
1004
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
789
|
-
this.removeGroup(group);
|
|
1005
|
+
this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
|
|
790
1006
|
}
|
|
791
1007
|
}
|
|
792
1008
|
createWatermarkComponent() {
|
|
@@ -799,7 +1015,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
799
1015
|
}
|
|
800
1016
|
updateWatermark() {
|
|
801
1017
|
var _a, _b;
|
|
802
|
-
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
1018
|
+
if (this.groups.filter((x) => x.api.location.type === 'grid' && !x.api.isHidden).length === 0) {
|
|
803
1019
|
if (!this.watermark) {
|
|
804
1020
|
this.watermark = this.createWatermarkComponent();
|
|
805
1021
|
this.watermark.init({
|
|
@@ -845,36 +1061,42 @@ export class DockviewComponent extends BaseGrid {
|
|
|
845
1061
|
}
|
|
846
1062
|
else {
|
|
847
1063
|
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
1064
|
+
if (!options.skipSetActive) {
|
|
1065
|
+
this.doSetGroupAndPanelActive(group);
|
|
1066
|
+
}
|
|
848
1067
|
return group;
|
|
849
1068
|
}
|
|
850
1069
|
const target = toTarget(options.direction || 'within');
|
|
851
1070
|
const location = getGridLocation(referenceGroup.element);
|
|
852
1071
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
853
1072
|
this.doAddGroup(group, relativeLocation);
|
|
1073
|
+
if (!options.skipSetActive) {
|
|
1074
|
+
this.doSetGroupAndPanelActive(group);
|
|
1075
|
+
}
|
|
854
1076
|
return group;
|
|
855
1077
|
}
|
|
856
1078
|
else {
|
|
857
1079
|
this.doAddGroup(group);
|
|
1080
|
+
this.doSetGroupAndPanelActive(group);
|
|
858
1081
|
return group;
|
|
859
1082
|
}
|
|
860
1083
|
}
|
|
861
1084
|
removeGroup(group, options) {
|
|
1085
|
+
this.doRemoveGroup(group, options);
|
|
1086
|
+
}
|
|
1087
|
+
doRemoveGroup(group, options) {
|
|
862
1088
|
var _a;
|
|
863
1089
|
const panels = [...group.panels]; // reassign since group panels will mutate
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
1090
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
1091
|
+
for (const panel of panels) {
|
|
1092
|
+
this.removePanel(panel, {
|
|
1093
|
+
removeEmptyGroup: false,
|
|
1094
|
+
skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
|
|
1095
|
+
});
|
|
1096
|
+
}
|
|
869
1097
|
}
|
|
870
1098
|
const activePanel = this.activePanel;
|
|
871
|
-
|
|
872
|
-
if (this.activePanel !== activePanel) {
|
|
873
|
-
this._onDidActivePanelChange.fire(this.activePanel);
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
doRemoveGroup(group, options) {
|
|
877
|
-
if (group.api.location === 'floating') {
|
|
1099
|
+
if (group.api.location.type === 'floating') {
|
|
878
1100
|
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
879
1101
|
if (floatingGroup) {
|
|
880
1102
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -886,60 +1108,124 @@ export class DockviewComponent extends BaseGrid {
|
|
|
886
1108
|
floatingGroup.dispose();
|
|
887
1109
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
888
1110
|
const groups = Array.from(this._groups.values());
|
|
889
|
-
this.
|
|
1111
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
890
1112
|
}
|
|
891
1113
|
return floatingGroup.group;
|
|
892
1114
|
}
|
|
893
1115
|
throw new Error('failed to find floating group');
|
|
894
1116
|
}
|
|
895
|
-
if (group.api.location === 'popout') {
|
|
896
|
-
const selectedGroup = this._popoutGroups.find((_) => _.
|
|
1117
|
+
if (group.api.location.type === 'popout') {
|
|
1118
|
+
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
897
1119
|
if (selectedGroup) {
|
|
898
1120
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
899
|
-
|
|
1121
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
|
|
1122
|
+
const refGroup = selectedGroup.referenceGroup
|
|
1123
|
+
? this.getPanel(selectedGroup.referenceGroup)
|
|
1124
|
+
: undefined;
|
|
1125
|
+
if (refGroup) {
|
|
1126
|
+
this.removeGroup(refGroup);
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
selectedGroup.popoutGroup.dispose();
|
|
900
1130
|
this._groups.delete(group.id);
|
|
901
1131
|
this._onDidRemoveGroup.fire(group);
|
|
902
1132
|
}
|
|
903
|
-
selectedGroup.dispose();
|
|
1133
|
+
const removedGroup = selectedGroup.disposable.dispose();
|
|
1134
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
|
|
1135
|
+
this.doAddGroup(removedGroup, [0]);
|
|
1136
|
+
this.doSetGroupAndPanelActive(removedGroup);
|
|
1137
|
+
}
|
|
904
1138
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
905
1139
|
const groups = Array.from(this._groups.values());
|
|
906
|
-
this.
|
|
1140
|
+
this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
|
|
907
1141
|
}
|
|
908
|
-
|
|
1142
|
+
this.updateWatermark();
|
|
1143
|
+
return selectedGroup.popoutGroup;
|
|
909
1144
|
}
|
|
910
1145
|
throw new Error('failed to find popout group');
|
|
911
1146
|
}
|
|
912
|
-
|
|
1147
|
+
const re = super.doRemoveGroup(group, options);
|
|
1148
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
1149
|
+
if (this.activePanel !== activePanel) {
|
|
1150
|
+
this._onDidActivePanelChange.fire(this.activePanel);
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
return re;
|
|
913
1154
|
}
|
|
914
|
-
|
|
915
|
-
|
|
1155
|
+
movingLock(func) {
|
|
1156
|
+
const isMoving = this._moving;
|
|
1157
|
+
try {
|
|
1158
|
+
this._moving = true;
|
|
1159
|
+
return func();
|
|
1160
|
+
}
|
|
1161
|
+
finally {
|
|
1162
|
+
this._moving = isMoving;
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
moveGroupOrPanel(options) {
|
|
1166
|
+
var _a;
|
|
1167
|
+
const destinationGroup = options.to.group;
|
|
1168
|
+
const sourceGroupId = options.from.groupId;
|
|
1169
|
+
const sourceItemId = options.from.panelId;
|
|
1170
|
+
const destinationTarget = options.to.position;
|
|
1171
|
+
const destinationIndex = options.to.index;
|
|
916
1172
|
const sourceGroup = sourceGroupId
|
|
917
1173
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
918
1174
|
: undefined;
|
|
1175
|
+
if (!sourceGroup) {
|
|
1176
|
+
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
1177
|
+
}
|
|
919
1178
|
if (sourceItemId === undefined) {
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
1179
|
+
/**
|
|
1180
|
+
* Moving an entire group into another group
|
|
1181
|
+
*/
|
|
1182
|
+
this.moveGroup({
|
|
1183
|
+
from: { group: sourceGroup },
|
|
1184
|
+
to: {
|
|
1185
|
+
group: destinationGroup,
|
|
1186
|
+
position: destinationTarget,
|
|
1187
|
+
},
|
|
1188
|
+
});
|
|
923
1189
|
return;
|
|
924
1190
|
}
|
|
925
1191
|
if (!destinationTarget || destinationTarget === 'center') {
|
|
926
|
-
|
|
927
|
-
|
|
1192
|
+
/**
|
|
1193
|
+
* Dropping a panel within another group
|
|
1194
|
+
*/
|
|
1195
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
1196
|
+
skipSetActive: false,
|
|
1197
|
+
skipSetActiveGroup: true,
|
|
1198
|
+
}));
|
|
1199
|
+
if (!removedPanel) {
|
|
928
1200
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
929
1201
|
}
|
|
930
|
-
if (
|
|
931
|
-
|
|
1202
|
+
if (sourceGroup.model.size === 0) {
|
|
1203
|
+
// remove the group and do not set a new group as active
|
|
1204
|
+
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
932
1205
|
}
|
|
933
|
-
destinationGroup.model.openPanel(
|
|
1206
|
+
this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {
|
|
934
1207
|
index: destinationIndex,
|
|
1208
|
+
skipSetGroupActive: true,
|
|
1209
|
+
}));
|
|
1210
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
1211
|
+
this._onDidMovePanel.fire({
|
|
1212
|
+
panel: removedPanel,
|
|
935
1213
|
});
|
|
936
1214
|
}
|
|
937
1215
|
else {
|
|
1216
|
+
/**
|
|
1217
|
+
* Dropping a panel to the extremities of a group which will place that panel
|
|
1218
|
+
* into an adjacent group
|
|
1219
|
+
*/
|
|
938
1220
|
const referenceLocation = getGridLocation(destinationGroup.element);
|
|
939
1221
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
940
|
-
if (sourceGroup
|
|
1222
|
+
if (sourceGroup.size < 2) {
|
|
1223
|
+
/**
|
|
1224
|
+
* If we are moving from a group which only has one panel left we will consider
|
|
1225
|
+
* moving the group itself rather than moving the panel into a newly created group
|
|
1226
|
+
*/
|
|
941
1227
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
942
|
-
if (sourceGroup.api.location === 'grid') {
|
|
1228
|
+
if (sourceGroup.api.location.type === 'grid') {
|
|
943
1229
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
944
1230
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
945
1231
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -947,78 +1233,123 @@ export class DockviewComponent extends BaseGrid {
|
|
|
947
1233
|
// if a group has one tab - we are essentially moving the 'group'
|
|
948
1234
|
// which is equivalent to swapping two views in this case
|
|
949
1235
|
this.gridview.moveView(sourceParentLocation, from, to);
|
|
1236
|
+
return;
|
|
950
1237
|
}
|
|
951
1238
|
}
|
|
952
1239
|
// source group will become empty so delete the group
|
|
953
|
-
const targetGroup = this.doRemoveGroup(sourceGroup, {
|
|
1240
|
+
const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {
|
|
954
1241
|
skipActive: true,
|
|
955
1242
|
skipDispose: true,
|
|
956
|
-
});
|
|
1243
|
+
}));
|
|
957
1244
|
// after deleting the group we need to re-evaulate the ref location
|
|
958
1245
|
const updatedReferenceLocation = getGridLocation(destinationGroup.element);
|
|
959
1246
|
const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
|
|
960
|
-
this.doAddGroup(targetGroup, location);
|
|
1247
|
+
this.movingLock(() => this.doAddGroup(targetGroup, location));
|
|
1248
|
+
this.doSetGroupAndPanelActive(targetGroup);
|
|
961
1249
|
}
|
|
962
1250
|
else {
|
|
963
|
-
|
|
964
|
-
|
|
1251
|
+
/**
|
|
1252
|
+
* The group we are removing from has many panels, we need to remove the panels we are moving,
|
|
1253
|
+
* create a new group, add the panels to that new group and add the new group in an appropiate position
|
|
1254
|
+
*/
|
|
1255
|
+
const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {
|
|
1256
|
+
skipSetActive: false,
|
|
1257
|
+
skipSetActiveGroup: true,
|
|
1258
|
+
}));
|
|
1259
|
+
if (!removedPanel) {
|
|
965
1260
|
throw new Error(`No panel with id ${sourceItemId}`);
|
|
966
1261
|
}
|
|
967
1262
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
968
1263
|
const group = this.createGroupAtLocation(dropLocation);
|
|
969
|
-
group.model.openPanel(
|
|
1264
|
+
this.movingLock(() => group.model.openPanel(removedPanel, {
|
|
1265
|
+
skipSetGroupActive: true,
|
|
1266
|
+
}));
|
|
1267
|
+
this.doSetGroupAndPanelActive(group);
|
|
970
1268
|
}
|
|
971
1269
|
}
|
|
972
1270
|
}
|
|
973
|
-
moveGroup(
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1271
|
+
moveGroup(options) {
|
|
1272
|
+
const from = options.from.group;
|
|
1273
|
+
const to = options.to.group;
|
|
1274
|
+
const target = options.to.position;
|
|
1275
|
+
if (target === 'center') {
|
|
1276
|
+
const activePanel = from.activePanel;
|
|
1277
|
+
const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {
|
|
1278
|
+
skipSetActive: true,
|
|
1279
|
+
})));
|
|
1280
|
+
if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
|
|
1281
|
+
this.doRemoveGroup(from, { skipActive: true });
|
|
1282
|
+
}
|
|
1283
|
+
this.movingLock(() => {
|
|
981
1284
|
for (const panel of panels) {
|
|
982
|
-
|
|
983
|
-
|
|
1285
|
+
to.model.openPanel(panel, {
|
|
1286
|
+
skipSetActive: panel !== activePanel,
|
|
1287
|
+
skipSetGroupActive: true,
|
|
984
1288
|
});
|
|
985
1289
|
}
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
1290
|
+
});
|
|
1291
|
+
this.doSetGroupAndPanelActive(to);
|
|
1292
|
+
panels.forEach((panel) => {
|
|
1293
|
+
this._onDidMovePanel.fire({ panel });
|
|
1294
|
+
});
|
|
1295
|
+
}
|
|
1296
|
+
else {
|
|
1297
|
+
switch (from.api.location.type) {
|
|
1298
|
+
case 'grid':
|
|
1299
|
+
this.gridview.removeView(getGridLocation(from.element));
|
|
1300
|
+
break;
|
|
1301
|
+
case 'floating': {
|
|
1302
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
1303
|
+
if (!selectedFloatingGroup) {
|
|
1304
|
+
throw new Error('failed to find floating group');
|
|
999
1305
|
}
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1306
|
+
selectedFloatingGroup.dispose();
|
|
1307
|
+
break;
|
|
1308
|
+
}
|
|
1309
|
+
case 'popout': {
|
|
1310
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
1311
|
+
if (!selectedPopoutGroup) {
|
|
1312
|
+
throw new Error('failed to find popout group');
|
|
1006
1313
|
}
|
|
1314
|
+
selectedPopoutGroup.disposable.dispose();
|
|
1007
1315
|
}
|
|
1008
|
-
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
1009
|
-
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
1010
|
-
this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);
|
|
1011
1316
|
}
|
|
1317
|
+
const referenceLocation = getGridLocation(to.element);
|
|
1318
|
+
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
1319
|
+
this.gridview.addView(from, Sizing.Distribute, dropLocation);
|
|
1320
|
+
from.panels.forEach((panel) => {
|
|
1321
|
+
this._onDidMovePanel.fire({ panel });
|
|
1322
|
+
});
|
|
1012
1323
|
}
|
|
1013
1324
|
}
|
|
1014
|
-
|
|
1015
|
-
|
|
1325
|
+
doSetGroupActive(group) {
|
|
1326
|
+
super.doSetGroupActive(group);
|
|
1016
1327
|
const activePanel = this.activePanel;
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
this._onDidActivePanelChange.fire(
|
|
1328
|
+
if (!this._moving &&
|
|
1329
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
1330
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
1020
1331
|
}
|
|
1021
1332
|
}
|
|
1333
|
+
doSetGroupAndPanelActive(group) {
|
|
1334
|
+
super.doSetGroupActive(group);
|
|
1335
|
+
const activePanel = this.activePanel;
|
|
1336
|
+
if (group &&
|
|
1337
|
+
this.hasMaximizedGroup() &&
|
|
1338
|
+
!this.isMaximizedGroup(group)) {
|
|
1339
|
+
this.exitMaximizedGroup();
|
|
1340
|
+
}
|
|
1341
|
+
if (!this._moving &&
|
|
1342
|
+
activePanel !== this._onDidActivePanelChange.value) {
|
|
1343
|
+
this._onDidActivePanelChange.fire(activePanel);
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
getNextGroupId() {
|
|
1347
|
+
let id = this.nextGroupId.next();
|
|
1348
|
+
while (this._groups.has(id)) {
|
|
1349
|
+
id = this.nextGroupId.next();
|
|
1350
|
+
}
|
|
1351
|
+
return id;
|
|
1352
|
+
}
|
|
1022
1353
|
createGroup(options) {
|
|
1023
1354
|
if (!options) {
|
|
1024
1355
|
options = {};
|
|
@@ -1035,7 +1366,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
1035
1366
|
}
|
|
1036
1367
|
}
|
|
1037
1368
|
const view = new DockviewGroupPanel(this, id, options);
|
|
1038
|
-
view.init({ params: {}, accessor:
|
|
1369
|
+
view.init({ params: {}, accessor: this });
|
|
1039
1370
|
if (!this._groups.has(view.id)) {
|
|
1040
1371
|
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
1041
1372
|
this._onWillDragPanel.fire(event);
|
|
@@ -1043,20 +1374,48 @@ export class DockviewComponent extends BaseGrid {
|
|
|
1043
1374
|
this._onWillDragGroup.fire(event);
|
|
1044
1375
|
}), view.model.onMove((event) => {
|
|
1045
1376
|
const { groupId, itemId, target, index } = event;
|
|
1046
|
-
this.moveGroupOrPanel(
|
|
1377
|
+
this.moveGroupOrPanel({
|
|
1378
|
+
from: { groupId: groupId, panelId: itemId },
|
|
1379
|
+
to: {
|
|
1380
|
+
group: view,
|
|
1381
|
+
position: target,
|
|
1382
|
+
index,
|
|
1383
|
+
},
|
|
1384
|
+
});
|
|
1047
1385
|
}), view.model.onDidDrop((event) => {
|
|
1048
|
-
this._onDidDrop.fire(
|
|
1386
|
+
this._onDidDrop.fire(event);
|
|
1387
|
+
}), view.model.onWillDrop((event) => {
|
|
1388
|
+
this._onWillDrop.fire(event);
|
|
1389
|
+
}), view.model.onWillShowOverlay((event) => {
|
|
1390
|
+
if (this.options.disableDnd) {
|
|
1391
|
+
event.preventDefault();
|
|
1392
|
+
return;
|
|
1393
|
+
}
|
|
1394
|
+
this._onWillShowOverlay.fire(event);
|
|
1049
1395
|
}), view.model.onDidAddPanel((event) => {
|
|
1396
|
+
if (this._moving) {
|
|
1397
|
+
return;
|
|
1398
|
+
}
|
|
1050
1399
|
this._onDidAddPanel.fire(event.panel);
|
|
1051
1400
|
}), view.model.onDidRemovePanel((event) => {
|
|
1401
|
+
if (this._moving) {
|
|
1402
|
+
return;
|
|
1403
|
+
}
|
|
1052
1404
|
this._onDidRemovePanel.fire(event.panel);
|
|
1053
1405
|
}), view.model.onDidActivePanelChange((event) => {
|
|
1054
|
-
this.
|
|
1406
|
+
if (this._moving) {
|
|
1407
|
+
return;
|
|
1408
|
+
}
|
|
1409
|
+
if (event.panel !== this.activePanel) {
|
|
1410
|
+
return;
|
|
1411
|
+
}
|
|
1412
|
+
if (this._onDidActivePanelChange.value !== event.panel) {
|
|
1413
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
1414
|
+
}
|
|
1055
1415
|
}));
|
|
1056
1416
|
this._groups.set(view.id, { value: view, disposable });
|
|
1057
1417
|
}
|
|
1058
|
-
// TODO: must be called after the above listeners have been setup,
|
|
1059
|
-
// not an ideal pattern
|
|
1418
|
+
// TODO: must be called after the above listeners have been setup, not an ideal pattern
|
|
1060
1419
|
view.initialize();
|
|
1061
1420
|
return view;
|
|
1062
1421
|
}
|
|
@@ -1082,4 +1441,3 @@ export class DockviewComponent extends BaseGrid {
|
|
|
1082
1441
|
return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;
|
|
1083
1442
|
}
|
|
1084
1443
|
}
|
|
1085
|
-
//# sourceMappingURL=dockviewComponent.js.map
|